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 egymqttdisconnect
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.