『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1621|回复: 12

[技术探讨] {求助}小白编程上遇到点问题

[复制链接]

6

主题

186

帖子

1230

积分

金牌会员

Rank: 6Rank: 6

积分
1230
金钱
1044
HASS币
0
发表于 2023-11-28 14:48:16 | 显示全部楼层 |阅读模式


                               
登录/注册后可看大图
上图是我根据论坛里面大佬的智能开关方案DIY的 家里传统双控开关改智能控制的方案,现在接入HA能正常控制,但是灯的状态跟B开关的状态不能同步,导致在HA中反馈的状态也不对。
方案中采用光耦采集了灯的状态,当灯亮时,光耦的输出端会有一个脉冲信号,我将这个脉冲信号输入到了ESP,但是怎么利用这个信号,让灯的实际状态跟HA中的状态同步呢。
我举例说明一下现在我的灯控情况:
如果我的灯是关的状态,面板B也是关的状态 此时HA的状态是灯是关的,我通过面板A 开灯,此时灯实际状态是开,但是由于HA是通过面板B的输入状态反馈的,所以这个时候虽然灯实际是开的,但是HA中灯还是关的状态。

以上这种情况 通过ESPhome 或者tasmota 怎么实现 通过光耦的信号 让HA中的灯的状态跟实际的一样?
求大佬们指导一二
回复

使用道具 举报

6

主题

186

帖子

1230

积分

金牌会员

Rank: 6Rank: 6

积分
1230
金钱
1044
HASS币
0
 楼主| 发表于 2023-11-28 15:15:54 | 显示全部楼层
图片附在一楼
QQ图片20231128151525.png
回复

使用道具 举报

25

主题

224

帖子

1032

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1032
金钱
808
HASS币
0
发表于 2023-11-28 18:32:54 | 显示全部楼层
右侧接地是啥意思 第二个开关盒里还要拉地线嘛
回复

使用道具 举报

3

主题

143

帖子

1558

积分

金牌会员

Rank: 6Rank: 6

积分
1558
金钱
1415
HASS币
0
发表于 2023-11-29 00:36:19 | 显示全部楼层
既然改了,为啥不把A面板改成跟B面板一样接弱电信号。
还接啥火线
回复

使用道具 举报

6

主题

186

帖子

1230

积分

金牌会员

Rank: 6Rank: 6

积分
1230
金钱
1044
HASS币
0
 楼主| 发表于 2023-11-29 08:28:55 | 显示全部楼层
yybl 发表于 2023-11-29 00:36
既然改了,为啥不把A面板改成跟B面板一样接弱电信号。
还接啥火线

节约钱....也没必要
回复

使用道具 举报

10

主题

1332

帖子

4254

积分

论坛元老

Rank: 8Rank: 8

积分
4254
金钱
2922
HASS币
0
发表于 2023-11-29 10:44:58 | 显示全部楼层
图画错了吧,我是这么办的,双控其中一个盒子直接把线连起来,安装无线开关,另一个盒子装单火开关。既能同步,又能双控。
回复

使用道具 举报

3

主题

51

帖子

514

积分

论坛DIY达人

积分
514
金钱
463
HASS币
0
发表于 2023-11-29 10:49:59 | 显示全部楼层
我明白你的意思,相当于你的ESP设备有一个开关和一个信号检测,你想用信号检测来同步灯开关的状态,确实有点麻烦这里假设你的检测输入ID是binary_sensor.1,开关是switch.1
思路就是再创建一个虚拟开关,开关同步binary_sensor.1,主动开关的话再根据条件去控制switch.1
比如用Node_RED或者HA自带的虚拟开关,
我举个例子,实际你根据你的情况修改
可以尝试在config文件中定义一个switch
switch:
  - platform: template
    switches:
      light1:
        friendly_name: "light1"
        value_template: "{{ is_state('binary_sensor.1', 'on') }}"
        turn_on:
          service: switch.turn_on
          target:
            entity_id: switch.1
        turn_off:
          service: switch.turn_off
          target:
            entity_id: switch.1

具体可以看看Template Switch - Home Assistant (home-assistant.io)

回复

使用道具 举报

3

主题

51

帖子

514

积分

论坛DIY达人

积分
514
金钱
463
HASS币
0
发表于 2023-11-29 11:02:45 | 显示全部楼层
我大概做了个NODE-RED流程,思路都是一样
QQ截图20231129110202.jpg
回复

使用道具 举报

3

主题

51

帖子

514

积分

论坛DIY达人

积分
514
金钱
463
HASS币
0
发表于 2023-11-29 12:04:21 | 显示全部楼层
本帖最后由 happyfoeverq 于 2023-11-29 12:05 编辑

另外ESPhome的代码也可以实现这个效果的在ESPhome里面额外增加一个虚拟switch
switch:
  - platform: template
    name: "light all"
    lambda: |-
      if (id(some_binary_sensor).state) {
        return true;
      } else {
        return false;
      }
    turn_on_action:
      - switch.turn_on: switch1
    turn_off_action:
      - switch.turn_off: switch1



详细可以看Template Switch — ESPHome
回复

使用道具 举报

3

主题

51

帖子

514

积分

论坛DIY达人

积分
514
金钱
463
HASS币
0
发表于 2023-11-29 12:15:11 | 显示全部楼层
甚至ESPhome里面只留这个虚拟SWITCH,控制继电器和检测光耦输出的代码都挪到里面去,自己改下代码合并就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 08:53 , Processed in 0.134270 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表