HASS+温度传感器自动化控制继电器

前期准备

  • 树莓派3B
  • NodeMCU ESP8266 CH340
  • 5v继电器
  • 温度传感器DS18b20

该教程是在继电器已经接入ESP8266,且ESP8266的基本配置已经完成的基础上的延伸。基本配置参考前期的文章《nodemcu+树莓派控制继电器实现智能插座》。

一.ESP8266接入温度传感器

1.硬件连接

HASS+温度传感器自动化控制继电器_第1张图片

继电器的连接与上一教程一致,温度传感器的VCC接3.3V,GND接地,DQ端接ESP8266的D4脚。

2.ESP8266配置

这里只写温度传感器的配置,继电器配置看上一教程。

在浏览器地址栏输入ESP8266的ip,点击Devices项,在新的空白一栏点击Edit。

HASS+温度传感器自动化控制继电器_第2张图片


Device栏选择DS18b20,Name自定义,Enabled勾选,1st GPIO就是硬件上DQ端与ESP8266连接的引脚,Delay延时自行设置调整,Value自定义,后面会用到。

HASS+温度传感器自动化控制继电器_第3张图片

配置完成后submit,close。

二.配置HASS

在configuration.yaml中添加如下代码:

sensor:
  - platform: mqtt
    name: "temperature"
    state_topic: "/ESP_Easy/temperature/Temperature"
    qos: 1
    unit_of_measurement: "℃"
 

其中name自定义,state_topic: "/ESP_Easy/temperature/Temperature"中的ESP_Easy是你的ESP设备的名字,temperature是当时在Devices中设置的Name,Temperature是当时设置的Value中的Name。
保存重启HASS,应该能在HASS界面中出现温度了。

HASS+温度传感器自动化控制继电器_第4张图片

三.设置自动化

Home Assistant 中的自动化遵循触发条件trigger —— 环境条件condition —— 执行动作 action 的三步逻辑。

触发条件是我们传统意义上的条件,即某个事件的发生启动了自动化的进程;环境条件是附加条件,可为空,即在触发条件发生下,自动化还受某些环境因素所制约;动作则是自动化的目标和终点,即自动化最终要实现的操作。

自动化设置规则参照

在这里,我设置了当温度超过26℃,且低于30℃时,打开继电器。在configuration.yaml中添加如下代码:

automation:
    - alias: 'Rule - temperature high'
    # 定义该自动化规则的名字
    trigger:
    # 触发条件
      platform: numeric_state
      # 数字状态触发器
      entity_id: sensor.temperature
      # 实体id是温度传感器
      above: 26
      below: 30
      # 如果从低到高越过26,或者从高到低越过30,就触发。换句话说,就是从[26,30]之外的范围进入这个范围。
    action:
    # 调用服务,打开继电器
      service: switch.turn_on
      entity_id:
        - switch.switch

保存,重启HASS。能在HASS界面中看到该自动化规则,且测试当传感器温度高于26℃,低于30℃时,能控制继电器打开。

HASS+温度传感器自动化控制继电器_第5张图片

你可能感兴趣的:(homeassistant,nodemcu,树莓派)