Van egy lámpánk az éjjeli szekrényen, a feleségem oldalán. Ő szokott hamarabb elaludni, olyankor vagy nagyon óvatosan átnyúlok felette, hogy lekapcsoljam a lámpát, vagy odasettenkedek lábujjhegyen a recsegő parkettán az ágy másik oldalára. Ritkán szokott sikerülni, ellenben van, hogy felébred a lámpa lekapcsolási műveletre. Nem volt, mit tenni, be kellett kötnöm a lámpát is az okos otthonba. Ez egy buta lámpa, a tápvezetéken egy kapcsolóval. Vettem tehát egy Sonoff Socket S20 nevű kütyüt. Annyit tud, hogy ki/be kapcsolja azt a fogyasztót ami rá van csatlakoztatva. Lehet vezérelni a rajta lévő gomb segítségével, vagy mobil alkalmazással.
Program feltöltése
Le kellett cserélnem a firmware-t, hogy beköthessem a rendszerbe. Amit találtam, az valamiért nem tetszett. Szóval, inkább írtam egyet. Ehhez először is a számítógépre kellett kötni, ezért szétszedtem az eszközt. Így néz ki a belseje:
Egy ESP8266 chip, relé, gomb, LED-ek vannak benne. Ahogy a fenti képen is látszik, van 4 lyuk az alsó LED alatt, oda forrasztottam egy tüskesort, mert az az UART (soros) portja. Oda kell csatlakoztatni a Soros - USB átalakítót, figyelve arra, hogy a Vcc-re 3,3 V kerüljön és az RX, TX csatlakozókat keresztbe kell bekötni. (azaz az átalakító RX-e megy a socket TX-ére és fordítva).
Ha ez megvan, akkor be kell állítani az Arduino IDE-t.
- Alaplap: Generic ESP8266
- CPU frekvencia: 80 MHz
- Flash méret: 1M (64K SPIFFS)
- Programozó: AVR ISP
Ahhoz, hogy a programot fel lehessen tölteni a Sonoff Socket-re, programozó módba kell váltani az alábbiak szerint:
- Csatlakoztassuk az USB átalakítót a számítógéphez
- Nyomjuk le és tartsuk lenyomva a Sonoff Socket gombját
- Húzzuk ki az USB soros átalakítót a számítógép USB portjából (ugye még mindig nyomva van az a gomb?)
- Dugjuk vissza az USB soros átalakítót a számítógépbe
- Most lehet elengedni a gombot
Program funkciók
A firmware a következőket tudja:
- Csatlakozik a WiFi hálózathoz, ha szükséges, újracsatlakozik
- Csatlakozik az MQTT brokerhez, ha szükséges, újracsatlakozik
- A relé állapotát beküldi a beállított témába
- Feliratkozik a megadott témára és a kapott üzenetek alapján kapcsolgatja a relét
- Kétféleképpen támogatja az OTA frissítést:
- Az egyik témában az új firmware URL-jét várja, azt letölti, feltelepíti, végül újraindul
- A másik témában magát a firmwaret várja, azt feltelepíti és újraindul
- A Sonoff Socket-en lévő gombal is lehet kapcsolgatni a relét
- Van egy egyszerű webes felülete, ahol megjelenít néhány állapot információt
A firmware frissítés nagyon egyszerű, a második módon a következő parancsot kell beírni:
> mosquitto_pub -h {MQTT_BROKER_ADDRESS} -t '{MQTT_DEVICE_TOPIC}{DEVICE_ID}/update' -r -f ./sonoff_socket.ino.bin
Értelemszerűen be kell helyettesíteni a megfelelő adatokat a parancs megfelelő helyére.
A firmware forrása megtalálható GitHub-on.
Home Assistant
Ahhoz, hogy a Home Assistant segítségével tudjuk vezérelni a Sonoff Socket-et, a következő sorokat kell beírni a Home Assistant configuration.yaml nevű fájljába:
switch:
- platform: mqtt
name: "Éjjeli lámpa"
state_topic: "smarthome/bedroom/nightlamp/state"
command_topic: "smarthome/bedroom/nightlamp"
payload_on: "on"
payload_off: "off"
qos: 1
retain: true
group:
haloszoba:
name: Hálószoba
control: hidden
entities:
- switch.ejjeli_lampa
Így most már le tudom kapcsolni a lámpát anélkül, hogy a feleségem felébredne.