community italiana di domotica personale
 
Domotizzare con semplicità l’irrigazione di piante e giardini con Home Assistant (parte 2)

Domotizzare con semplicità l’irrigazione di piante e giardini con Home Assistant (parte 2)

SCOPI DEL PROGETTO:
  • Domotizzare un impianto d’irrigazione con Home Assistant
  • Livello di difficoltà: medio
  • Costo: n.a.
CONCETTI AFFRONTATI:
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
  • Un sistema d’irrigazione tradizionale domotizzato tramite le tecniche spiegate nella “parte 1” di questo progetto (oppure un sistema d’irrigazione domotico dotato di interfaccia MQTT nativa).
PROGETTO INDICATO a UTENTI CON ISTALLAZIONE:
Ambienti Home Assistant HassOS-Supervised-Core
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione progetto: 1.2

Abstract

Nella “parte 1” del presente progetto abbiamo modificato un’elettrovalvola da irrigazione al fine di controllarla (oltre che a mano) tramite comandi impartiti a un attuatore a contatti puliti multipli (nello specifico dei nostri esempi, un Sonoff 4CH PRO).

In questa seconda parte vedremo come integrare l’attuatore utilizzato a Home Assistant al fine di rendere controllabile il tutto tramite la nostra domotica personale, automazioni incluse. Vedremo inoltre come integrare allo stesso scopo anche l’alternativa più semplice di attestare un attuatore a singolo canale a un’elettrovalvola comune. In entrambi questi casi si darà per scontata la presenza di un firmware custom (eg. Tasmota) che abiliti la disponibilità del protocollo MQTT.

N.b. Prima di affrontare questa seconda parte di progetto si consiglia un ripasso (o uno studio mediamente approfondito) del tema MQTT.

Si parte

Analisi

Come abbiamo detto, le strade che portano a questo punto del progetto sono due:

  • la prima: domotizzare un’elettrovalvola da irrigazione tramite un attuatore a doppio contatto pulito, come spiegato nella “parte 1” del progetto;
  • la seconda: domotizzare un’elettrovalvola generica tramite un attuatore a singolo canale, come spiegato qui.

Ovviamente le configurazioni degli attuatori variano in base a modello, firmware e configurazioni utente. Ipotizzando la presenza del firmware Tasmota (ma potrebbe essere anche un altro) in configurazione standard e di utilizzare i canali 1 e 2 di un Sonoff 4Ch PRO (prima strada) o il canale singolo di un Sonoff Basic (seconda strada), i comandi MQTT a disposizione sarebbero:

  Sonoff 4Ch PRO (prima strada) Sonoff Basic (seconda strada)
Avvio irrigazione cmnd/Sonoff/POWER1 ON cmnd/Sonoff/POWER ON
Interruzione irrigazione cmnd/Sonoff/POWER2 ON cmnd/Sonoff/POWER OFF

Per la prima strada, i casi sono due:

  • senza bisogno di chiamare in causa la definizione di un dispositivo virtuale MQTT tramite Node-RED, ci limitiamo a definire due interruttori che inviino i due diversi comandi di avvio e interruzione;
  • vogliamo definire un’unico, elegante accessorio “irrigatore” che provveda a inviare il giusto comando in base a come lo si aziona.

Per la seconda strada è  tutto più facile: è infatti possibile definire direttamente un unico accessorio “irrigatore”, dato che il topic di comando MQTT è già uno solo (“cmnd/Sonoff/POWER“) e a cambiare è solo il payload (“ON” od “OFF“).

Prima strada

Definire due interruttori

Implementare in configurazione due interruttori a partire da un Sonoff a due canali dotato di firmware Tasmota (o altri, abilitanti al protocollo MQTT) è quanto di più banale:

mqtt:
  switch:
  - name: "Avvio irrigazione"
    icon: mdi:water
    state_topic: "stat/Sonoff/RESULT1"
    value_template: "{{ value_json.POWER }}"
    command_topic: "cmnd/Sonoff/POWER1"
    availability_topic: "tele/Sonoff/LWT1"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false
  - name: "Stop irrigazione"
    icon: mdi:water-off
    state_topic: "stat/Sonoff/RESULT2"
    value_template: "{{ value_json.POWER }}"
    command_topic: "cmnd/Sonoff/POWER2"
    availability_topic: "tele/Sonoff/LWT2"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"
    retain: false

Tale configurazione genera entità di questo tipo:

Home Assistant - Due interruttori irrigazione

Le due entità si chiameranno “switch.avvio_irrigazione” e “switch.stop_irrigazione” e potranno ora essere attivati per comandare l’elettrovalvola sia in modo manuale sia tramite automazioni.

Definire un dispositivo virtuale

L’approccio più elegante, invece, prevede la definizione, tramite Node-RED, di un dispositivo virtuale MQTT il quale consenta di ottenere un unico interruttore presso Home Assistant.

Quello che faremo tramite Node-RED (applicando le logiche spiegate in questa guida) è definire un flusso logico il quale faccia convergere i due comandi MQTT in uno unico, così da permetterci la configurazione di un’unica entità tramite la piattaforma “MQTT Switch”. Creeremo un topic virtuale di comando da “convertire” in due diversi topic di comando MQTT (in base alla condizione) e un topic virtuale di telemetria verso il quale “canalizzare” le telemetrie dei due canali del Sonoff.

Ecco la mappatura da realizzare per quanto riguarda il comando virtuale “cmnd/sprinkler

cmnd/sprinkler ON da convertire in
cmnd/Sonoff/POWER1 ON
cmnd/sprinkler OFF cmnd/Sonoff/POWER2 ON

Ecco invece la mappatura delle telemetrie provenienti dai due canali del Sonoff (“stat/Sonoff/RESULTx“) verso due telemetrie virtuali (perché siano due lo spieghiamo dopo – “stat/sprinkler“, “inuse/sprinkler“):

stat/Sonoff/POWER1 da convertire in
stat/sprinkler ON

inuse/sprinkler ON

stat/Sonoff/POWER2 stat/sprinkler OFF

inuse/sprinkler OFF

Realizzare i flussi è particolarmente semplice (se ben compresa la guida su questo tipo di attività): si tratta di intercettare i vari topic e “girarli” in diversi topic di uscita:

Node-RED - convertire topic MQTT per virtualizzare irrigatore

 

Arrivati a questo punto sarà sufficiente cliccare su “Deploy” e passare ad occuparsi della configurazione di Home Assistant:

mqtt:
  switch:
  - name: "Irrigazione"
    icon: mdi:water
    state_topic: "stat/sprinkler"
    command_topic: "cmnd/sprinkler"
    availability_topic: "inuse/sprinker"
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "ON"
    payload_not_available: "OFF"

N.b. il topic “inuse/sprinkler” viene configurato solo per questioni “estetiche”. In assenza, l’accessorio irrigatore funziona comunque, ma riporta uno stato “Idle” anziché “Running”, quando sta operando.

La configurazione genera la definizione di un’unica entità interruttore, come da attese, chiamata “switch.irrigazione“:

Home Assistant - Un interruttore irrigazione

Seconda strada

In questo caso è tutto molto più semplice. Trattandosi di un singolo attuatore Sonoff il quale, in stato ON attiva l’elettrovalvola scelta, e in stato OFF la chiude (o viceversa, in base allo stato normale dell’elettrovalvola scelta), non abbiamo bisogno di usare Node-RED per “trasformare” i topic: sarà infatti sufficiente utilizzare direttamente quelli a disposizione:

mqtt:
  switch:
  - name: "Irrigazione"
    icon: mdi:water
    state_topic: "stat/Sonoff/RESULT"
    command_topic: "cmnd/Sonoff/POWER"
    availability_topic: "tele/Sonoff/LWT"
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"

Uso

A questo punto non bisogna far altro che controllare l’accessorio così domotizzato in modo manuale, agendo direttamente tramite il frontend Home Assistant (web o tramite app) oppure configurando un’automazione e/o degli script che provvedano all’ingaggio automatico dell’irrigazione delle vostre piante.

Un consiglio è quello di adottare singoli sensori meteo-previsionali e/o dei sensori di umidità del terreno al fine di utilizzarli in automazione: questo consente, per esempio, di evitare di irrigare laddove il terreno sia già umido, oppure laddove sia prevista, nel giro di poche ore, pioggia naturale.

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.