
SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
|
Progetto indicato per utenti con installazione:![]() |
|
NOTE E DISCLAIMER
|
|
Revisione progetto: 1.5 |
Abstract
La crescente e benedetta sensibilità rispetto ai temi ambientali sta lentamente ma inesorabilmente cambiando le nostre abitudini quotidiane, a partire, senza dubbio, dall’introduzione della raccolta differenziata, spesso in modalità di raccolta porta a porta. Trattandosi di un tema “casalingo”, è naturale pensare come la domotica personale possa intervenire per rendere l’esperienza di raccolta e smaltimento più efficiente, sopratutto rispetto al ricordarci i diversi giorni di raccolta – specialmente in caso di pianificazioni particolarmente articolate.
In questo progetto vedremo come, tramite l’adozione del componente custom “Garbage Collection”, sia possibile definire presso Home Assistant, dei sensori virtuali che indichino agli utilizzatori della domotica basata su questo HUB personale quanti giorni manchino alla raccolta di questa o di quella tipologia di rifiuto.
Il componente è piuttosto semplice da utilizzare e al contempo piuttosto flessibile: non solo consente di definire sensori settimanali, ma anche di diversa natura, ovvero con una ciclicità temporale anche molto specifica (nel caso per esempio raccolte mensili in un dato giorno del mese, o altre casistiche).
Assunti
Per questo progetto assumeremo la presenza di un’entità di tipo “Notifications” chiamata notify.marco e di un’altra, analoga, derivante dall’integrazione di Amazon Echo (Alexa) come Media Player (e quindi come sistema di notifica), chiamata media_player.alexa.
Utilizzeremo queste due entità come elementi per definire delle automazioni di notifica a fronte dell’avvicinarsi delle giornate di raccolta.
Installazione
Trattandosi di un custom component (quindi non incluso ufficialmente sull’HUB), prima di poterne sfruttare le funzionalità è necessario installarlo. Per farlo è possibile utilizzare sia la modalità manuale (non descritta in questo progetto) sia quella – molto facilitata – via HACS.
Per farlo è necessario che HACS sia stato, ovviamente, precedentemente installato su Home Assistant. Una volta ottenuto accesso al pannello di HACS, effettuare una ricerca nel suo store (voce “Integrazioni”) cercando nello specifico il componente “Garbage Collection“.
Una volta identificato, provvedere al installarlo:
Dopodiché provvedere ad un riavvio di Home Assistant.
Sensori
Ipotizziamo dunque che ci si trovi nella situazione esemplificativa di una raccolta porta a porta la quale preveda:
- la raccolta della carta il martedì e il sabato;
- la raccolta della frazione indifferenziata il lunedì e il venerdì;
- la raccolta della frazione biodegradabile/compostabile il lunedì e il mercoledì;
- la raccolta della plastica, il martedì e il sabato;
- la raccolta dei materiali ingombranti, il primo e il terzo sabato del mese.
Per definire i sensori aggiungeremo dunque in configurazione, nella sezione dedicata ai “Sensor“, delle voci di questo tipo:
garbage_collection: sensors: - name: "Indifferenziato" frequency: "weekly" verbose_state: true collection_days: - mon - fri - name: "Bio" frequency: "weekly" verbose_state: true collection_days: - mon - wed - name: "Carta" frequency: "weekly" verbose_state: true collection_days: - tue - sat - name: "Plastica e metallo" frequency: "weekly" verbose_state: true collection_days: - tue - sat - name: "Rifiuti ingombranti" frequency: "monthly" collection_days: "sat" verbose_state: true monthly_day_order_number: - 1 - 3
Configurazione la quale, dopo il riavvio necessario di Home Assistant, genererà delle entità così chiamate:
- sensor.indifferenziato
- sensor.bio
- sensor.carta
- sensor.plastica_e_metallo
- sensor.rifiuti_ingombranti
rappresentati, presso l’interfaccia dell’HUB, per esempio così:
Come si nota, gli stati delle entità visualizzano il tempo rimanente alle prossime raccolte (la foto è stata scattata mercoledì 9 ottobre 2019).
Spiegazione dei campi disponibili per la configurazione:
platfom | (Obbligatorio) Deve necessariamente essere “Garbage_collection“. |
collection_days | (Obbligatorio) Giorni, indicati in inglese e con tre lettere: “mon“, “tue“, “wed“, “thu“, “fri“, “sat“, “sun“ |
frequency | (Opzionale) Frequenza di raccolta, espressa in inglese, scelta tra questi elementi: “weekly“, “even-weeks“, “odd-weeks” “every-n-weeks” o “monthly“. Default: “weekly“. |
name | (Opzionale) Nome del sensore. Default: “garbage_collection“. |
first_month | (Opzionale) Primo mese in cui viene effettuata la raccolta, espresso in tre lettere e in inglese (eg. “jan“). |
last_month | (Opzionale) Ultimo mese in cui viene effettuata la raccolta, espresso in tre lettere e in inglese (eg. “dec“). |
monthly_day_order_number |
(Opzionale) Indica quale giorno del mese ricorre la raccolta. Se per esempio collection_days contiene “sat” e questo parametro viene impostato a 2, la raccolta avverrà il secondo sabato del mese. |
period | (Opzionale) Si utilizza in abbinamento al parametro “frequency” impostato a “every-n-weeks“: indica le “n” settimane ogni quanto avviene la raccolta. |
first_week | (Opzionale) Prima settimana dell’anno dalla quale parte la raccolta (1-53). |
excude_dates | (Opzionale) Lista di date da escludere in formato “yyyy-mm-dd“. |
include_dates | (Opzionale) Lista di date da includere in formato “yyyy-mm-dd“. |
icon_normal | (Opzionale) Icona del sensore. Default “mdi:trash-can“ |
icon_today | (Opzionale) Icona del sensore in occorrenza del giorno di raccolta. Default “mdi:delete-restore“ |
icon_tomorrow | (Opzionale) Icona del sensore in occorrenza del giorno precedente di raccolta. Default “mdi:delete-circle“ |
verbose_state | (Opzionale) Quando impostato a true, il sensore riporta nello stato la prossima data prevista di raccolta. In caso di false (default), visualizza un numero intero rappresentate il numero di giorni mancanti (0 per il giorno di raccolta). |
Notifiche
Ovviamente questo paragrafo non sarà risolutivo: scegliere quando (e se) venire allertati rispetto al giorno di raccolta è una scelta personale. Ci limiteremo quindi a spiegare tecniche di notifica, ma la personalizzazione sarà a carico proprio (come sempre, alla fine).
Come sappiamo le automazioni di Home Assistant si basano sul cambio di stato di una o più entità impostate quali trigger dell’automazione/i. Le entità definite tramite “Garbage Collection” contengono un attributo (“days“) il quale contiene il numero di giorni rimanenti alla raccolta; utilizzando i passaggi di stato di questo attributo possiamo innescare delle notifiche classiche e/o degli annunci da parte del nostro smart speaker (o altro).
Un’automazione tipo potrebbe essere la seguente:
automation:
alias: "Notifica ritiro biodegradabile"
trigger:
platform: numeric_state
entity_id: sensor.bio
value_template: "{{ state.attributes.days }}"
below: 1
condition: []
action:
service: notify.famiglia
data:
title: "Domotica"
message: "Attenzione: domani è giorno di ritiro frazione biologica."
oppure, nel caso si voglia far parlare Alexa (oppure Google Nest):
automation:
alias: "Notifica ritiro biodegradabile"
trigger:
- platform: numeric_state
entity_id: sensor.carta
value_template: "{{ state.attributes.days }}"
below: 1
- platform: numeric_state
entity_id: sensor.bio
value_template: "{{ state.attributes.days }}"
below: 1
condition: []
action:
service: notify.alexa
data:
target: media_player.alexa
data:
type: tts
message: "Attenzione: domani è giorno di ritiro frazione {{ trigger.from_state.attributes.friendly_name }}."
In questa seconda automazione abbiamo anche colto l’occasione di utilizzare più sensori come trigger, in modo da poter scrivere un’unica automazione anziché una per ogni sensore. Ovviamente anche il messaggio di notifica è stato adeguato per segnalare la raccolta prevista corretta.
Ovviamente il cambio di stato avviene ogni giorno alla mezzanotte, orario non proprio adatto per farsi notificare l’eventuale, prossima raccolta differenziata. In caso si preferisca essere allertati ad un altro orario – oppure su trigger specifici – sarà necessario adottare un blocco action diverso, il quale interpreti lo stato del/dei sensori e notifichi quel che si crede.
⚠️ 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. Se ti sei perso, a tua disposizione c'è la mappa. |
