我用ESP Wifi将我的门户网站混为一谈

我的目标 

  • 在仪表板上有一个按钮来激活门户(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命令时切换继电器的设备。

ESP1 的

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

ESP2 的

为了做出这个改变,我做了这个复选:

连接 设备

(这可以在软件配置后完成,这是您的选择)

这里是完整的图表。 

我没有忘记向底部终端块上的索诺夫提供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: