community italiana di domotica personale
 
Gestione intelligente delle piante con la domotica Home Assistant

Gestione intelligente delle piante con la domotica Home Assistant

4 minuti di lettura
Scopi del PROGETTO:
  • Definire entità e automatismi per gestire la cura delle piante tramite Home Assistant
  • Livello di difficoltà: basso
  • Costo: nullo (al netto dei sensori necessari)
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:
Dispositivi fisici utilizzati:
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione progetto: 1.0

Abstract

Pur possedendo il pollice verde o meno, tutti sanno quanto gli elementi per il buono stato di salute di una pianta siano sostanzialmente tre: umidità del terriccio, fertilità dello stesso, quantità di luce ricevuta nell’arco di un dato tot di tempo.

Home Assistant, HUB per la gestione della propria domotica personale, può essere un valido alleato nella cura delle nostre piante: integrando in sé multi-sensori come per esempio lo Xiaomi Mi Flora Smart, oppure lo Xiaomi RoPot, consente di tenere sotto controllo gli indicatori di cui sopra.

Ma come sapere se la pianta sia in sofferenza o meno, e altro?

Certo: partendo dai singoli sensori potremmo scrivere delle automazioni che, al superamento di determinate soglie, ci avvisino della situazione; meglio ancora, però, sarebbe avere a disposizione un’entità virtuale che rappresenti lo stato complessivo di salute della pianta, così da poterla usare per essere avvisati di eventuali anomalie e innescare, volendo, qualche altro automatismo (come l’irrigazione automatica).

In questo progetto vedremo come utilizzare il componente “Plant Monitor” di Home Assistant a tale scopo.

Si parte

Assunti

Si assume di avere a disposizione dei sensori integrati a Home Assistant che forniscano, per la pianta oggetto del monitoraggio, le letture di uno o più (meglio tutti) i seguenti sensori:

  • di umidità del terriccio;
  • di temperatura ambientale;
  • di fertilità del terriccio;
  • di luminosità.

Inoltre, “Plant Monitor” di Home Assistant è in grado di monitorare anche un eventuale indicatore di batteria residua del multi-sensore.

Fermo restando che tali sensori possono essere il risultato dell’uso di una qualsiasi piattaforma di integrazione presente su Home Assistant, l’interezza di tali sensori specifici per piante si ottiene per esempio tramite l’integrazione di Xiaomi Mi Flora Smart tramite piattaforma ufficiale o tramite BRIDGE/Gateway Bluetooth↔︎Wi-Fi ESPHome (o altre modalità).


Per gli esempi del presente progetto ipotizzeremo quindi di disporre delle seguenti entità sensore:

  • sensor.xiaomi_miflora_umidita
  • sensor.xiaomi_miflora_temperatura
  • sensor.xiaomi_miflora_conduttivita_terriccio
  • sensor.xiaomi_miflora_illuminazione
  • sensor.xiaomi_miflora_batteria

Come funziona Plant Monitor

Il componente “Plant Monitor” è in grado, tramite una configurazione ad hoc, di generare un’entità di tipo “plant“, la quale contiene nel suo stato la condizione complessiva della pianta (può assume gli stati “OK” e “Problema“), mentre negli attributi vengono elencati gli stati del sensori che stanno alla sua base (quelli elencati sopra) nonché l’eventuali cause della segnalazione di un problema.

Ogni sensore incluso nella sua configurazione prevede un range operativo entro il quale la pianta “è a suo agio”, per esempio l’umidità, la temperatura eccetera. Quando un indicatore esce dal range previsto, l’entità assume stato “Problema“, mentre il campo “problem” negli attributi contiene la motivazione, ovvero quale indicatore è fuori range.

Per quanto riguarda la luminosità, Plant Monitor consente di impostare tre valori:

  • la luminosità minima e massima prima di segnalare un problema. Contrariamente agli altri valori, questi controlli non verificano la situazione istantanea, ma quella media degli ultimi giorni. Viene segnalato un problema solo quando la luminosità è stata fuori range. In pratica, questo indicatore serve per verificare se la pianta riceva abbastanza luce nel corso dell’arco temporale impostato;
  • l’intervallo di valutazione, in giorni, ovvero quanti giorni tenere in considerazione per il calcolo dell’irraggiamento luminoso.

Infine, Plant Monitor permette anche di controllare la batteria del sensore, avvertendoci quando scende sotto una determinata soglia, anch’essa configurabile.

RACCOLTA INFORMAZIONI

Ovviamente, prima di concentrarsi sulla configurazione presso Home Assistant della propria pianta è necessario, per quest’ultima, raccogliere i range ideali per i vari indicatori.

Se si va integrando i sensori provenienti da un multi-sensore Xiaomi (che sia il sensore singolo piuttosto che il vaso), allora l’app Xiaomi Mi Home (per Android e iOS) oppure l’app Flower Care (per Android e iOS) ci consente di consultare il database di oltre 3000 piante censite  avendo cura di identificarle tramite il proprio nome latino – in questo Google è nostro amico più di sempre.

Xiaomi Mi Flora - Indicatori pianta
un esempio di vari range ottimali per una pianta.

Diversamente, basterà cercare su Internet i necessari dettagli sulla propria pianta per capire quali siano i range ottimali per luminosità, temperatura dell’aria, umidità e conduttività del terriccio.

Configurazione

Per configurare Plant Monitor su Home Assistant è sufficiente e necessario aggiungere una o più voci (in base a quante piante vengono monitorate) al proprio file di configurazione in notazione YAML.

Un esempio:

plant:
  ficus_benjamin:
    sensors:
      moisture: sensor.xiaomi_miflora_umidita
      temperature: sensor.xiaomi_miflora_temperatura
      conductivity: sensor.xiaomi_miflora_conduttivita_terriccio
      brightness: sensor.xiaomi_miflora_illuminazione
      battery: sensor.xiaomi_miflora_batteria
    min_battery: 10
    min_moisture: 20
    max_moisture: 60
    min_conductivity: 350
    max_conductivity: 2000
    min_temperature: 10
    max_temperature: 32
    min_brightness: 200
    max_brightness: 7000
    check_days: 5

In pratica, l’entità derivante da questa configurazione, chiamata plant.ficus_benjamin, virerà dallo stato “OK” a “Problema” quando si verificherà una o più delle seguenti condizioni:

  • batteria al di sotto del 10%;
  • umidità inferiore al 20% o maggiore del 60;
  • temperatura inferiore ai 10 gradi o superiore ai 32;
  • luminosità media, sui cinque giorni, inferiore ai 200 lux o superiore ai 7000.
Home Assistant - Plant Monitor - Dettagli
un esempio di dettagli forniti dall’entità plant presso l’interfaccia Lovelace UI di Home Assistant.

Automazioni

La più semplice delle automazioni è quella che ci avvisa di un potenziale problema. Ovviamente, nel blocco action è possibile indicare ciò che meglio si crede; nell’esempio che riportiamo, proponiamo per esempio una notifica verso uno smartphone dotato di app Home Assistant Companion:

automation:
  - alias: "Ficus benjamin"
    trigger:
      platform: state
      entity_id: plant.ficus_benjamin
      to: "Problem"
    condition: []
    action:
      service: notify.marco
      data:
        title: Domotica
        message: "Attenzione, Rilevato problema {{ trigger.to_state.attributes.problem }} su {{ trigger.to_state.attributes.friendly_name }}"

Quest’automazione si limita a fornire l’indicazione “grezza” del problema indicato dall’entità plant. Ovviamente è possibile scrivere automazioni ben più strutturate:

automation:
  - alias: "Ficus benjamin"
    trigger:
      platform: state
      entity_id: plant.ficus_benjamin
      to: "Problem"
    condition: []
    action:
      service: notify.marco
      data:
        title: Domotica
        message: >
          {% if trigger.to_state.attributes.problem = 'moisture_high' %}
          Umidità eccessiva nella pianta
          {% elif trigger.to_state.attributes.problem = 'moisture_low' %}
          Terriccio troppo secco nella pianta
...eccetera
          {% endif %}

Oppure una che attivi un innaffiatoio integrato a Home Assistant, per esempio:

automation:
  - alias: "Ficus benjamin"
    trigger:
      platform: state
      entity_id: plant.ficus_benjamin
      value_template: "{{ state.attributes.problem }}"
      to: "moisture_low"
    condition: []
    action:
      - service: switch.turn_on
        entity_id: switch.annaffiatoio
      - delay:
        minutes: 15
      - service: switch.turn_off
        entity_id: switch.annaffiatoio

Come al solito, il limite è la fantasia.


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.

   
Telegram News Channel