我的目标
- 在仪表板上有一个按钮来激活门户(Order=On + pause + Off)
- 返回门户的真实状态(打开/关闭)
- 例如,链接HA和Alexa可以说"Alexa打开门户"
背景 背景
我有一个跳跃的Came门户网站,Map ZL180。

订单卡的列报
一切都会发生在控制卡的终端在右下方,这里是终端的识别。

如何打开/关闭门户?
它是一种干接触,可以用这个序列来表示,它将打开(或关闭)门户:
- 2 号航站楼 - 7 号航站楼
- 暂停 500 毫秒
- 2 号航站楼 - 7 号航站楼
这些内容记录在通知第8页:

如何知道门户是打开还是关闭?
我没有发现一个可访问的干接触者提供这些信息,我使用了一个『开门』信号装置,在终端5和10之间潜在的24v下,这些信息记录在通知的第6页:

我更喜欢使用没有电位的干开/关闭接触,即开放或闭路,我将此信息0/24v转换为开/关。

为了实现这个组装,没有什么更简单的了,4根电缆和24V继电器。 我已经有一个继电器,所以我用了这个,它是IEC255看起来像这样:
在Came的铂金箱里,我有足够的空间将这个继电器放在右上角。
以下是支持的布线:

哪些家庭自动化设备?
在此阶段,有必要选择哪些家庭自动化设备将打开/关闭的门户信息发送给家庭助理,哪些设备能够控制触发打开的干接触。 理想情况下,相同的设备可以两者兼而有。
我做了几次测试,最初用门/窗口探测器发送打开/关闭的门户,在Zigbee,但我认为transfo的接近是一个问题,我不知道,这是不令人信服的。 然后,该设备不允许订购继电器。
我真的更喜欢使用Zigbee,因为对我来说,Wi-Fi不是一个家庭自动化协议。
最后,下面是我简单的选择: A 个 索诺夫 基础
这台设备不久前价值不到4欧元,在我写这篇文章时,它的价格在5到6欧元之间。 速卖 速 快递 14欧元以内 亚马逊 亚马逊.
小心,我不得不修补一点,焊接,但为了这个价格,这是值得的(和成本)。
Sonoff 基础 的
修改 Sonoff Basic,以便输出为干接触
在我的案例中,Sonoff Basic,R2是一个在GPIO12上发送On or Off命令时切换继电器的设备。

这种配置中的问题是我在输出端之间发送220V的输入电位,所以我们有0v或220v。 这不是我需要的,我只需要关闭输出端子之间的电路(短路)。 因此,我需要这种方案:

为了做出这个改变,我做了这个复选:
连接 设备
(这可以在软件配置后完成,这是您的选择)
这里是完整的图表。

我没有忘记向底部终端块上的索诺夫提供220v,并将继电器放在黑色支撑上。
闪存 Sonoff Basic 并安装 ESP Home
将 Sonoff Basic 集成到家庭助理中
一旦在ESP Home中闪烁,新设备将在集成中在Home Assistant中识别。

我可以开始配置实体。

恢复有关 esphome.io 的信息
从源头检索信息总是更好的,否则,许多网站,教程或论坛可以提供必要的配置元素。
对于我的Sonoff Basic,我要继续
显然,我不是Doc,我更改了导致能够订购它,并将Rx和Tx配置为另外两个输入:
Esphome : 姓名: esphome-web-a8d117 friendly_name: 门户网站esp8266: 董事会: 埃斯普8285 # 启用日志记录器 : # 启用 Home Assistant API api: 加密 : 键 : "XX" Ota: binary_sensor : 平台: GPIO 引脚 : 编号: GPIO0 模式: 输入 : 真正的上拉: 真正的倒置: 真名: "Bouton" - 平台: GPIO 引脚 : 编号: GPIO1模式: 输入 : 真正的上拉: 真正的倒置: 真名: "TX" - 平台: GPIO 引脚 : 编号: GPIO3模式: 输入 : 真正的上拉: 真正的倒置: 真名: "RX"开关: 平台: GPIO名称: "Relay" 引脚: GPIO12 id: Relay on _turn _on : 延迟: 0.5s - switch.turn _off : Relay - 平台: GPIO名称: "led" 引脚: GPIO13 id: LED wifi: SSID: XXX 密码 : 三十 届 # 在WiFi连接失败的情况下启用后退热点(捕获门户): SSID: XXX 密码 : XXX俘虏_portal:
我保留了上面的代码作为其他设备的参考,但最终对于我的门户域名化,我通过删除对项目不有用的所有内容来进一步简化代码:
Esphome : 姓名: esphome-web-a8d117 friendly_name: 门户网站esp8266: 董事会: 埃斯普8285 # 启用日志记录器 : # 启用 Home Assistant API api: 加密 : 键 : "XX/xx=" Ota: binary_sensor : 平台: GPIO 引脚 : 编号: GPIO1模式: 输入 : 真正的上拉: 真正的倒置: 真名: "TX"开关: 平台: GPIO名称: "Relay" 引脚: GPIO12 id: Relay on _turn _on : 延迟: 0.5s - switch.turn _off : WiFi中继: SSID: XX 密码 : 二十 世 # 在WiFi连接失败的情况下启用后退热点(捕获门户): SSID: esp_portail 密码 : 二十 世
在 Sonoff 上安装代码
然后保存,然后安装。


一旦安装完成,模块重新启动,你必须有点耐心。
注: 我遇到了一些问题,因为!秘密变量在家里没有配置,我把它用简单的语言,它起作用了。 秘密变量配置在ESP Home接口的右上角。

SSID 的: 秘密!Secret wifi _ssid 密码 密码: 秘密!Secret wifi_password 的
一体化的结果
随着一切进展顺利,我发现自己在他新创建的ESP上有几个实体。

在HA上配置实体
配置 Portal Sensor
我使用Tx输入(GPIO01)来检测门户的干接触。

我将此传感器重命名为"Portal",并将其"打开"以使其状态打开/关闭。


![]()
我改变他的身份证,这将是: binary_sensor.portal_open_ferme
我禁用了另外两个对我无用的传感器(Bouton和Rx)。
配置控制门户命令

这是我用id重命名为Portal Command的中继开关: switch.portal _relais

配置 Cover Portal
有必要有一个封面来允许两件事:
- 使状态从传感器上升 门户 门户 门 (binary_sensor.portal_open_close)当命令传递给控件时 订购 Portal (switch.portal _relais)
- 要管理 turn_off,它实际上是一个 turn_on
隐藏在封面的代码 封面.yaml 情况如下:
平台: 模板涵盖: 门户 : device_class : 窗口友好_name : 单_id "Portal": cover.portal value _template: {{ is_state('binary_sensor.portal _open_ferme', 'on')}}" open_cover: 服务: switch.turn_on 目标 : entity_id : switch.portal_relais close_cover : 服务: switch.turn_on 目标 : entity_id : switch.portal _relais icon_template: >- {% if is_state('binary_sensor.portal_ouvert_ferme', 'on') %MDI:gate-open {% 其他 其它 %MDI:gate {% Endif 的 %}
请注意,在此代码中,我管理要使用的图标。 显示按钮时,颜色将在按钮卡中进行管理。
我使用了 _class 设备: 窗口是因为它最接近门户(打开或关闭),但其他类在语音命令中强制使用4位数代码,如果我想要求Alexa打开门户,则我不想要它。
创建按钮卡


类型 : 自定义:button-card show_name : 假tap_action : 行动: 切换实体 : cover.portal state : 值 : 近色 : Gray - 值 : 打开颜色 : 红色 红色
链接HA和Alexa通过语音命令
说"Alexa打开门户"仍然是这一切的绊脚石。
我仍然需要建立联系。
为此,我转到设置/语音助手


在左下角,我点击 x 暴露的实体(ies)
![]()
我活着寻找我的 封面.portal
就这样了!
奖金 : Ping 检查设备是否在线
![]()
我对Wi-Fi设备(与Zigbee不同)充满信心,并通过不时检查其连接性来安心。
为此,没有什么比这更简单了,每5分钟通过一个二进制_sensor给我一个小ping,它给我在我的仪表板上的信息,我把这个配置放在我的文件中。 binary_sensor.yaml
平台: ping host : 秘密 ip_portail 名称: ping_portal 的
当然,你必须配置!secret或用原始IP替换它。

图标的自定义在另一个副本上讨论:
一个问题,一个评论?一个补充。
使用 使用 这次讨论 为了唤起这个Retex:

