Sonoff Smart Socket és Home Assistant

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:
Sonoff Socket S20 inside
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:

  1. Csatlakoztassuk az USB átalakítót a számítógéphez
  2. Nyomjuk le és tartsuk lenyomva a Sonoff Socket gombját
  3. 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?)
  4. Dugjuk vissza az USB soros átalakítót a számítógépbe
  5. 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

Sonoff Socket Web UI
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.

Kategória: Elektronika, IT, Programozás Címke: , , , , ,
Top