HASS+溫度傳感器自動化控制繼電器

前期準備

  • 樹莓派3B
  • NodeMCU ESP8266 CH340
  • 5v繼電器
  • 溫度傳感器DS18b20

該教程是在繼電器已經接入ESP8266,且ESP8266的基本配置已經完成的基礎上的延伸。基本配置參考前期的文章《nodemcu+樹莓派控制繼電器實現智能插座》

一.ESP8266接入溫度傳感器

1.硬件連接

繼電器的連接與上一教程一致,溫度傳感器的VCC接3.3V,GND接地,DQ端接ESP8266的D4腳。

2.ESP8266配置

這裏只寫溫度傳感器的配置,繼電器配置看上一教程。

在瀏覽器地址欄輸入ESP8266的ip,點擊Devices項,在新的空白一欄點擊Edit。



Device欄選擇DS18b20,Name自定義,Enabled勾選,1st GPIO就是硬件上DQ端與ESP8266連接的引腳,Delay延時自行設置調整,Value自定義,後面會用到。


配置完成後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界面中出現溫度了。

三.設置自動化

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℃時,能控制繼電器打開。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章