Integrare un sensore per piante Xiaomi Flora Smart a Home Assistant

4 minuti di lettura
SCOPI DELLA GUIDA
CONCETTI AFFRONTATI:
  • Utilizzo e configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI
DISPOSITIVI FISICI UTILIZZATI:
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
Revisione guida: 1.0

Abstract

Xiaomi Mi Flora Smart - vertical

Il sensore per piante Xiaomi Flora Smart è un piccolo componente domotico particolarmente apprezzato per design, prezzo e funzionalità.

Si tratta di un piccolo elemento che, una volta conficcato nel terriccio di un vaso, è in grado di fornire letture in tempo reale dei parametri essenziali per la cura della pianta: umidità del terriccio, quantità di nutrienti, temperatura esterna, quantità di luce ricevuta. La sua più interessante caratteristica sta nel fatto di essere dotato di antenna Bluetooth LE, la quale gli consente di collegarsi ai più comuni smartphone/tablet e quindi all’app di gestione della sua famiglia prodotti, la Xiaomi Smart Home oppure ad una specifica, “Flower Care”, la quale fornisce anche l’analisi puntuale della condizione di benessere della pianta in base alla tipologia della stessa rispetto ai parametri rilevati.

La sua capacità di collegamento è sfruttabile anche per integrare tale componente ai più comuni HUB personali, tra i quali Home Assistant. A tale scopo, Home Assistant mette a disposizione un componente ad hoc chiamato “Mi Flora plant sensor“.

In questa guida vediamo come implementare tale integrazione al fine di dotarci di più sensori a partire dalle letture di questo piccolo sensore.

Indirizzo MAC

Per integrare il sensore è necessario scoprirne l’indirizzo MAC bluetooth.
A tal scopo si utilizzerà un tool software per effettuare uno scan dell’ambiente alla ricerca del MAC address del sensore che ci interessa.

RASPBIAN/LINUX

In caso si usi Raspbian su Raspberry e/o Linux è possibile utilizzare il tool hcitool.

In caso non lo si possegga, installarlo tramite i seguenti comandi:

sudo apt-get install bluetooth bluez bluez-tools rfkill rfcomm
sudo apt install expect
sudo systemctl start bluetooth.service
sudo systemctl enable bluetooth.service

Ciò fatto, il comando per effettuare lo scan è il seguente:

sudo hcitool lescan

il quale dovrebbe ritornare un output di questo tipo:

LE Scan ...
38:01:95:84:A8:B1 (unknown)
00:1A:22:0A:91:CF (unknown)
00:1A:22:0A:91:CF Flower Mate

Solitamente i MAC address di questi sensori si riconoscono facilmentetramite l’etichetta “Flower Mate”.

Un’alternativa è l’utilizzo del comando

bluetoothctl

Il quale dovrebbe ritornare un output di questo tipo:

[bluetooth]# scan on
Discovery started
[CHG] Controller XX:XX:XX:XX:XX:XX Discovering: yes
[NEW] Device 4C:65:A8:D2:31:7F Flower Mate

Integrazione

A questo punto è possibile configurare l’integrazione tra il sensore e Home Assistant.
La configurazione del componente presso il file configuration.yaml è piuttosto semplice.

Sarà infatti sufficiente inserire un’entry di questo tipo:

# Esempio di configurazione
sensor:
  - platform: miflora
    mac: 'XX:XX:XX:XX:XX:XX'
    name: FC-Lavanda
    force_update: true
    median: 3
    monitored_conditions:
      - moisture
      - light
      - temperature
      - conductivity
      - battery

Spiegazione dei campi:

CampoSpiegazione
mac(Stringa, obbligatorio) Indirizzo MAC del sensore.
monitored_conditions(Lista, opzionale) Lista delle metriche da censire. Gli elementi possono essere: “moisture”, “light”, “temperature”, “conductivity”, “battery”.
name(Stringa, opzionale) Nome dell’entità.
force_update(Booleano, opzionale) Se forzare l’aggiornamento anche se il valore non è variato. Default: false
median(Interno, opzionale) A volte il sensore rileva dei picchi nelle letture.  Impostare “median” a un valore >1 fa sì che vengano effettuate delle medie sulla base delle ultime n rilevazioni, dove n è per l’appunto il valore indicato su questa voce. Default: 1
adapter(Stringa, opzionale) Serve per indicare quale antenna bluetooth utilizzare, in caso se ne utilizzi più di una. Default: hci0

Provvedere ora al riavvio di Home Assistant.
La configurazione genererà una serie di nuove entità:

Home Assistant - Mi Flora plant sensor

Ovviamente in caso di più sensor sarà sufficiente indicare più MAC address:

# Esempio di configurazione
sensor:
  - platform: miflora
    mac: 'XX:XX:XX:XX:XX:XX'
    name: FC-Lavanda
    force_update: true
    median: 3
    monitored_conditions:
      - moisture
      - light
      - temperature
      - conductivity
      - battery
  - platform: miflora
    mac: 'YY:YY:YY:YY:YY:YY'
    name: FC-Rosmarino
    force_update: true
    median: 3
    monitored_conditions:
      - moisture
      - light
      - temperature
      - conductivity
      - battery

N.b. il corretto funzionamento della piattaforma è subordinato alla copertura radio dell’attuatore da parte dell’antenna Bluetooth del computer sul quale è in esecuzione Home Assistant.

Uso

L’uso presso Home Assistant ovviamente è legato alla disponibilità dei sensori forniti dall’integrazione, sopratutto (oltre alla consultazione delle informazioni) rispetto alle automazioni.

La più banale – ma forse più utile – delle automazioni realizzabili è quella che provveda alla segnalazione di bassa umidità nel terriccio, una delle cause più frequenti di prematura morte delle piante.

Restando nel solco dell’esempio di integrazione di cui sopra,  un’integrazione mirata al monitoraggio dell’umidità potrebbe essere:

automation:
- alias: "Notifica pianta secca"
  hide_entity: true
  initial_state: 'on'
  trigger:
    platform: numeric_state
    entity_id: sensor.fc_lavanda_moisture
    below: 10
  condition: []
  action:
    - service: notify.alexa_media
      data:
        target: media_player.alexa
        data:
          type: announce
        message: "Si consiglia di innaffiare la pianta."
    - condition: template
      value_template: "{{ states.group.awesome_people.state != 'home' }}"
    - service: notify.marco
      data:
        title: Domotica
        message: "La pianta sta soffrendo per mancanza d'acqua."

L’automazione assume che il sensore derivante dall’integrazione relativo all’umidità del terriccio si chiami sensor.fc_lavanda_moisture.

In caso l’umidità rilevata scenda sotto il 10%, l’automazione provvede a far pronunciare a un dispositivo Alexa (“media_player.alexa“) un messaggio di allerta e, in caso i membri della famiglia (gruppogroup.awesome_people“) non siano in casa, invii al capofamiglia (entità di tipo “Notifications” chiamata “notify.marco“) una notifica testuale che segnali la condizione:

Home Assistant - Notifica mancanza acqua


Home Assistant Official LogoATTENZIONE: 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.


Please comment below