Gyengus™ weblapja

Vízmelegítő automatizálása

Nálunk a mosogatóhoz külön kis bojler tartozik. Hacsak nem tekerjük le a hőfokszabályzót, fűti a vizet. Ha kézzel állítottuk, akkor elfelejtettük feltekerni, vagy le. Ezért eszembe jutott, hogy vezérelni kellene, mert úgysem mosogatunk éjszaka, vagy, ha nem vagyunk otthon. Ha nem melegíti folyamatosan a vizet, akkor spórolunk az árammal és kíméljük a környezetet is.

A Sonoff Socket S20 már bevált az éjjeli lámpánál ezért rendeltem egy másikat a bojlerhez. A Home Assistant már úgyis tudja, hogy mikor, ki van otthon. Erre alapozva készítettem egy automatizációt. Két szabályt hoztam létre, egyet a vízmelegítő bekapcsolásához és egyet a kikapcsoláshoz.
Az első szabály bekapcsolja a vízmelegítőt, 06:00 és 21:00 között, ha valaki otthon van:

    - id: vizmelegito_be
      alias: Vízmelegítő automata bekapcsolása
      trigger:
      - entity_id: group.mi
        platform: state
        to: home
      - at: '06:00'
        platform: time
      condition:
      - after: '06:00'
        before: '21:00'
        condition: time
      - condition: state
        entity_id: group.mi
        state: home
      action:
      - data:
          entity_id: switch.vizmelegito
        service: switch.turn_on
      initial_state: 'on'

A második szabály kikapcsolja a bojlert 21:00-kor vagy, ha mindenki elment otthonról:

    - id: vizmelegito_ki
      alias: Vízmelegítő automata kikapcsolása
      trigger:
      - entity_id: group.mi
        from: home
        platform: state
      - at: '21:00'
        platform: time
      condition: []
      action:
      - data:
          entity_id: switch.vizmelegito
        service: switch.turn_off
      initial_state: 'on'

Természetesen be kellett állítani az eszközt:

      - platform: mqtt
        name: "Vízmelegítő"
        state_topic: "smarthome/kitchen/waterheater/state"
        command_topic: "smarthome/kitchen/waterheater"
        payload_on: "on"
        payload_off: "off"
        qos: 1
        retain: true

Elővettem és tovább fejlesztettem az éjjeli lámpánál használt firmwaret:

  • Frissítettem a pubsubclient libraryt, mivel jött ki belőle újabb verzió
  • Kivettem az url-ről való firmware frissítési lehetőséget, elegendő, ha MQTT-n keresztül tud frissíteni
  • Töröltem a HTML UI-t, mivel nem használtam, a JSON-t megtartottam és átraktam a /-re
  • Támogatja a felhasználói névvel és jelszóval való hitelesítést az MQTT brokerhez való csatlakozáskor
  • Létrehoztam egy mqttreconnect és egy mqttdisconnect endpointot a könnyebb tesztelhetőség miatt
  • Úgy döntöttem, hogy a chipID helyett inkább az általam megadott DEVICE_NAME konstanst használom, pl a frissítések fogadásakor
  • Az eszköz induláskor egy megadott MQTT témába beküldi néhány fontosabb adatát, nevét, IP címét, stb.
  • Gulp segítségével készítettem egy build folyamatot, ez a buildConfig.json-ben lévő adatok alapján elvégzi a
    • konfigurációs fájl generálását
    • a firmware fordítását
    • és az eszköz frissítését
  • Bekötöttem Travisba

A firmware forrása továbbra is megtalálható GitHub-on.
A lenti videóban látszik a fordítási és frissítési folyamat. A bal oldali konzolban indítom el, a képernyő jobb oldalán a soros konzol kimenetén látszik ahogy a Sonoff Socket S20 fogadja az új firmwaret, feltelepíti, végül újraindul.

Ha több eszköz van szétszórva a lakásban, akkor egyszerűbb, kényelmesebb MQTT-n keresztül frissíteni őket akár teljesen automatikusan, mint begyűjteni mindet és egy számítógép segítségével végezni el a frissítést.

Kategóriák: Elektronika, Programozás
Dátum: 2018. július. 20.
Ha tetszett a cikk, oszd meg barátaiddal:
« »