这个全面的教程解释了精确的布线,Zigbee2MQTT配置,家庭助理集成和Alexa。 单个仪表板按钮 + 真实状态反馈 + 语音命令 'Alexa 打开门户'。
我的三个目标domotisation门户网站
我已经设定了三个具体目标,将我的Came跳动门户配备ZL180控制卡。
- Home Assistant仪表板上的单个按钮通过精确的脉冲序列激活门户: 干接触500毫秒,打破500毫秒,然后关闭。
- 使用位置传感器显示门是否打开或关闭的实际状态返回。
- 使用 Alexa 进行语音控制: "Alexa,打开门户"或"Alexa,关闭门户"。
本教程使用QS-Zigbee-S10-C03模块取代旧版,该模块导致与Zigbee网络频繁断开连接。 过时文章: QS-Zigbee-S10-C03.
我的订单卡 Came ZL180
我的跳动门户与Came ZL180电子卡一起工作,该卡可以处理所有运动,安全和比赛结束。
正式技术资料表全文: 下载PDF ZL180.

ZL180卡订单终端
所有家庭自动化连接连接到ZL180卡右下角的终端块。 这10个终端允许控制门户和读取状态。

控制打开/关闭门户
ZL180卡通过终端2(COM)和7(IMP)之间的干接触(无电压)控制开/关闭。 干接触只是意味着在不施加电压的情况下关闭电路。
- 关闭终端接触2-7精确500毫秒(0.5秒)。
- 在重新订购前保持至少500毫秒的休息时间。
- 打开触点(OFF)以完成脉冲。
此脉冲序列是强制性的,并在包装传单ZL180第8页上描述。

打开/关闭的门户状态返回
ZL180卡不提供门状态的直接干接触。 当门户完全打开时,它在终端5(COM)和10(OUV)之间提供24V信号。

为了将0/24V信号转换为家庭自动化兼容的干接触,我在Came外壳中安装了24V IEC255继电器。 继电器将电路绝缘,并产生简单的开/闭合干接触。

以下是安装在Came房屋中的DIN支持上的IEC255继电器:



DIP 配置开关至关重要
常见问题: 有些冲动没有被考虑在内。 原因往往是ZL180卡的DIP开关2上激活的『停止』功能。 此功能在收到的每个冲动时都会停止门户。
解决办法: 将 DIP2 放置在 OFF 上以允许部分控制(正常打开/关闭)。

选择模块 Zigbee MOES
我测试了几个模块,但选择了MOES ZM-102-M,因为它的Zigbee稳定性,价格实惠和全门功能。
- IOMZB-110 FriEnt : 很好,但60欧元。
- 智能开关 ZG-005-RF : 4个出口在18欧元,但没有进入。
- NodOn Sin-4-1-20 : 无干接触入口。
- MOES 摩斯 ZM-102-M 选择在17,90€.
- QS-Zigbee-S10-C03 : 频繁的断开,被遗弃。
, MOES ZM-102-Ms 包括230V电源,脉冲输出,干接触输入和磁传感器。 ZM-102-M = 没有传感器的单模块。

哪里可以买到这些设备?
这里是专用于页面的链接。 ZM-102-M. 我参考了卖家和价格。
精确固定MOES ZM-102-M
- L 和 N : 230V相加中性电源。
- S4-S5 型 : 干接触输入(连接到IEC255中继用于门户状态)。
- S1-S2 型 : 脉冲输出到终端2-7卡ZL180。


完整的门户布线图

Zigbee2MQTT 模块
电源开启=自动配对模式(蓝色LED闪光10分钟)。 模块后面的按钮。 暂时靠近Zigbee协调器,如果距离很远。

在"Permit Join"模式下的Zigbee2MQTT中,模块显示为_TZE200 _fabuwqzo _ts0601。 我称之为『来门户』。


特征暴露的MOES
该模块列出了这些基本属性:
- 触发 器 (二进制): 发送脉冲 S1-S2. true=open, false=close。 情报: 如果状态已经正确,则不发送。
- _ 门 _ 联系 车库 (二进制): 状态 S4-S5. true=closed, false=open。
- 倒计时 数 时 (0-43200s): 延迟后的冲动。
- 运行 时 (-1至120): 超时运动 惊慌失措。
- 地位 状况 : 正常 / RunTimeAlarm / OpenTimeAlarm。

自动集成家庭助理
实体在重新启动或刷新 Zigbee2MQTT 后自动出现在 Home Assistant 中。

- binary_sensor.portal_came_garage_door_contact : 真实状态(off=closed, on=open)。
- switch.portal_came_trigger : 脉冲按钮(ON 500ms 然后自动关闭)。
- 传感器.portal_came_status : 模块状态 。
我 配置 覆盖 门户
我创建了一个统一的覆盖实体,结合了真实状态(二进制_sensor)和命令(switch)。 Cover Home Assistant 代表任何可行的元素: 门,门,滚筒快门
在模板下添加config.yaml → cover:
封面: 姓名: _id Single Portal : cover.portal device_class : 门图标 : > {% if is_state('binary_sensor.portal_came_garage_door_contact', 'off') %MDI:gate {% 其他 其它 %MDI:gate-open {% Endif 的 %} 国家: > {% if is_state('binary_sensor.portal_came_garage_door_contact', 'off') %闭合 {% 其他 其它 %{ } 开 {% Endif 的 %open_cover : 服务: script.actionne_le_portal_toggle close_cover: 服务: 脚本.actionne _le _porttail _toggle

仪表板门户按钮

简单按钮卡版本

类型 : 自定义:button-card show_name : 假tap_action : 行动: 切换实体 : cover.portal state : 值 : 封闭色 : Gray - 值 : 打开颜色 : 红色 红色
高级版本图片元素


类型: 自定义:button-card color_type : 卡实体: cover.portal show_name : 假tap_action : 行动: 切换状态 : 值 : 打开颜色 : 》#4f010a"图标: MDI:gate-open 样式: 卡 : 动画 - 动画: Blink 2s 轻松无穷 - 运算符: 默认颜色 : 》#49556c"图标: MDI:gate 样式: 卡 : 高度: 110px - 宽度: 110px风格: 顶部: 93% 左: 5%
Alexa 语音 控制 门户
将 cover.portal 实体公开给 Alexa 进行语音控制。
- 设置 → 语音助手 → "x实体(ies)要公开"。
- 选择
封面.portal. - 命令 : "Alexa,打开门户","Alexa,关闭门户"。



视觉脉搏奖金

通过闪烁图标发送脉冲的即时视觉确认。 通过设置 → Devices & Services → Helpers → Switch 创建 input_boolean.pulse_portal。

类型 : custom:button-card 实体: input_boolean. impulse_portail 名称: Impulsion Portal show_state : 假的 show_name : 假图标 : MDI:access-point 样式: 图标 : 颜色: | [[ if(entity.state === 'on')返回'#39FF14'; 『透明』回归; ]] - 动画: | [[[ if(entity.state === 'on')返回 'blink 0.4s线性无穷'; 返回『无』; ]]卡: 宽度: 150px - 高度: 150px - border-radius: 12px - 背景颜色: 透明 - 盒子阴影: 无
脚本操作 _le _portal _toggle(要在 scripts.yaml 中创建):
序列 : 服务: switch.turn_on 目标 : entity_id : switch.portal_came_trigger - 服务: input_boolean.turn_on 目标: entity_id : input_boolean. impulse_portal - 延迟: 第二: 1 - 服务: input_boolean.turn_off 目标: entity_id : input_boolean. impulse_portal别名: 运营门户网站
奖金 Rustine 开幕
我发现,由于我仍然无法理解的原因,大约每20个中就有一次打开门户的命令被正确触发: 脉冲被发送到模块,没有出现错误……但什么也没发生。
一切都表明该模块在排序时处于待机模式,并且根本没有反应。
另一方面,如果我在几秒钟内返回第二个脉冲,门户就会立即打开。
我通常对『锈病』过敏。 我喜欢从源头理解和纠正问题。 但在这种情况下,在我看来,最务实的解决方案似乎是添加一个追赶机制。
想法很简单:
如果在打开命令后,在几秒钟后仍然检测到门户关闭,则脚本会自动返回第二个脉冲。
最糟糕的是,我们输了两秒钟。
最多只能为用户纠正看不见的危险。
因此,我设置了以下脚本:
序列 : 化名: 在脉冲变量之前保存门户的状态: etat_portal_avant: "{{States('binary_sensor.portal_came_garage_door_contact')}" -别名: 将冲动发送到动作门户: switch.toggle 目标 : entity_id : switch.portal _came _trigger 数据: {} - 并行: 化名: 闪烁在仪表板序列上发送的脉冲: 行动: input_boolean.turn_on 目标: entity_id : input_boolean. impulse_portal 数据: {} - 延迟: 第二: 1 - 行动: input_boolean.turn_off 目标: entity_id : input_boolean. impulse_portal 数据: {} - 别名: Rustine 仅当门户是封闭序列时: 如果: 条件: 模板值 _template : {{ Etat _porttail _avant == 'off'}} : 化名: 最大等待 2s 才能打开 wait_template: { is_state('binary_sensor.portal_came_garage_door_contact', 'on')} } 超时: 第二: 2 继续 _on _timeout : 真 - 如果: 条件: 模板值 _template : "{{ not wait.completed }}" : 化名: 如果门户没有响应动作,则重新启动冲动: switch.toggle 目标 : entity_id : switch.portal _came _trigger 数据: {}别名: 操作描述门户: ) 》
该脚本在向门户发送脉冲后设置了一个简单的验证机制,并在出现问题时具有追赶逻辑。
第一步是在任何操作之前记住门户的状态。 它被记录在发送命令时是打开还是关闭(binary_sensor.portal_came_garage_door_contact)。 这些信息很重要,因为它可以知道是否激活备份逻辑。
保存此状态后,脚本通过模块(switch.portal_came_trigger)将脉冲发送到门户,就像正常操作一样。 同时,一个小的视觉指示器被激活一秒钟(input_boolean.pulse_portal),只是为了实现发送脉冲到仪表板。
就这样,"Rustine"开始发挥作用,但只有在一个非常具体的情况下: 如果门在订购时关闭了。 这种预防措施避免了不良影响,特别是当门户关闭时,因为在这种情况下,反应可能需要几秒钟,并且重要的是不要返回冲动。
如果门户关闭,脚本将等待两秒钟,看看它是否进入打开状态(binary_sensor.portal_came_garage_door_contact)。 这种期望是积极的: 如果变化发生得很快,脚本会立即检测到它并停止在那里。
另一方面,如果在这两秒内没有发生任何事情,则认为最初的冲动没有被考虑在内,可能是因为模块仍处于待机模式。 然后脚本通过模块自动发送第二个脉冲(switch.portal _came _trigger)。
最终,该机制充当安全网。 在大多数情况下,它是无用的,并且是看不见的。 但在极少数情况下,门户没有反应,它允许在没有人工干预的情况下纠正问题,只需两秒钟的延迟。
完整的技术文件
论坛 交流 反馈 体验
问题、反馈、附加图: HACF 论坛 讨论.
