Progetto Home Automation: Configuriamo dei Sonoff e controlliamoli con HomeAssistant via MQTT


A casa ho attualmente 3 Sonoff Basic coi quali controllo vari elettrodomestici o ciabatte in base a delle regole di automazione di HomeAssistant. I Sonoff sono dispositivi interessanti che possono essere controllati tramite la loro app e sono compatibili con Google Assistant e Amazon Alexa. Se vogliamo comandarli via MQTT da HomeAssistant bisogna farci qualche piccola modifica. Vediamo come fare!

Configuriamo il Sonoff

Siccome come dicevo i device Sonoff sono fatti per essere controllati dalla propria app tramite un servizio cloud per poterli controllare da HomeAssistant in locale via MQTT bisogna installare un firmware specifico: Tasmota.

Per installare questo firmware bisogna seguire questa guida.

NOTA 10/10/20: Ho appena scoperto che c’è un “nuovo” tool molto comodo scritto in python per installare Tasmota su un Sonoff: Tasmotizer.

Per quanto riguarda il collegamento hardware per interfacciarci col computer vi rimando a questo tutorial su youtube, che potrete anche seguire per tutta la procedura di flash del firmware.

Io tuttavia per flashare Tasmota ho utilizzato Visual Studio Code, dal quale ho anche modificato i files platforms.ini e user_config.h.

In particolare su user_config.h si modificano le impostazioni per connettersi al WiFi e per la comunicazione MQTT, mentre in platforms.ini le impostazioni per il flash, in particolare upload_port va settata su COM 1,2,ecc se utilizzate Windows, mentre su /dev/ttyUSB0,1,2,ecc se utilizzate Linux.

Non mi sono addentrato di più sull’installazione del firmware perchè le guide che vi ho citato sono molto ben fatte e sicuramente vengono tenute più aggiornate di questo articolo. Cosa importante ricordate di installare il firmware relativo al vostro modello di Sonoff.
Una volta installato non vi resta che collegarlo alla corrente e in automatico, se l’avrete configurato correttamente, si connetterà al wifi e avrà la comunicazione MQTT impostata.

Aggiungiamo il dispositivo ad HomeAssistant

Adesso è arrivato il momento di aggiungere uno switch su Home Assistant. Andando poi a creare delle Automazioni da UI potrete facilmente controllarlo in base a certe condizioni (io per esempio mi baso sull’ora del giorno o sulla produzione dei pannelli). Ma è così semplice e legato alle proprie esigenze che non lo tratterrò.

Non so se con gli aggiornamenti hanno aggiunto un qualche modo testuale o se con l’autodiscovery di MQTT vengano aggiunti da soli, ma io preferisco la via dei file di testo.
Quindi aggiungiamo la seguente riga al file configuration.yaml

switch: !include switch.yaml

Ora creiamo il file switch.yaml con la configurazione dei nostri switch:

- platform: mqtt
  name: "Boiler"
  state_topic: "BoilerSwitch/state/POWER"
  command_topic: "BoilerSwitch/command/POWER"
  availability_topic: "BoilerSwitch/tele/LWT"
  qos: 1
  payload_on: "ON"
  payload_off: "OFF"
  state_on: "ON"
  state_off: "OFF"
  optimistic: false
  payload_available: "Online"
  payload_not_available: "Offline"
  retain: true

Questo è il blocco che dovrete aggiungere per ogni switch che vorrete aggiungere. I topic son quelli che avete configurato durante il flash del firmware (oppure tramite la schermata di configurazione del Tasmota).
Per il significato dei vari topic vi rimando alla documentazione ufficiale.
Una volta riavviato HomeAssistant dovrete avere il vostro switch attivo e potrete sbizzarrivi a controllare il mondo! 😉

Bonus: creiamo un timer per vedere il tempo di attività di un componente

Siccome (come avrete notato dal pezzo di codice sopra) ho un sonoff che mi controlla un boiler elettrico mi faceva comodo avere un timer che mi mostrasse quanto in una giornata il boiler restasse acceso.

Per farlo basta aggiungere tra i sensori in sensors.yaml

# boiler activation
    - platform: history_stats
      name: boiler ON today
      entity_id: switch.boiler
      state: 'on'
      type: time
      start: '{{now().replace(hour=0).replace(minute=0).replace(second=0)}}'
      end: '{{now()}}'

Per maggiori informazioni vi rimando alla documentazione ufficiale.

Questa voce è stata pubblicata in Arch Linux, Home automation e contrassegnata con , , , , , , , , , , , , , , . Contrassegna il permalink.

Lascia un commento