Controllare lo stato di accensione di Tv con Wemos D1 Mini
di Antonio Mario Longo
19 Novembre 2020
Guide
Aggiungendo i vari dispositivi su Home assistant, soprattutto i media player con il custom component Smart Ir, abbiamo notato che nelle varie configurazioni viene richiamato il power_sensor che, se presente, indica lo stato di accensione dei dispositivi.
Il più delle volte, se abbiamo prese domotiche con controllo dei consumi, possiamo creare questi particolari sensori avvalendoci del consumo istantaneo espresso in Watt, oppure se le nostre prese smart non dispongono dell'energy meter, i wemos d1 mini possono aiutarci.
Queste piccole Board nascono come circuiti integrati, dove in base ai pin presenti possiamo inserire degli input che comandano l'output e le possiamo gestire tramite Wifi e firmware creati appositamente.
Questi pin sono identificati dalla maggior parte dei firmware come GPIO.
I pin che comandano gli ingressi o le uscite sono :
D0 = GPIO16
D1 = GPIO5
D2 = GPIO4
D3 = GPIO0
D4 = GPIO2
D5 = GPIO14
D6 = GPIO12
D7 = GPIO13
D8 = GPIO15
Ovviamente nelle board sono presenti i pin per l'alimentazione, a 3.3V o 5V , da considerarsi come parte positiva identificata con il simbolo + , e la parte negativa con la scritta GND corrispondente a -
Ma se vogliamo, possiamo alimentare il tutto con una semplice presa micro usb, presente sulla board, ed è questo il caso nostro.
Partiamo analizzando i componenti necessari per questo progetto:
- Wemos D1 Mini: https://amzn.to/3fedJzu
- Cavo Micro usb da 30 Centimetri https://amzn.to/3fedMeE (per poter alimentare la board e nasconderla dietro la Tv)
La teoria del progetto è questa :
Collegare tramite porta USB della Tv il Wemos D1 mini, in modo che quando alimentato dica al nostro server domotico che il nostro dispositivo è acceso, al contrario, quando il dispositivo è spento (quindi l'USB della Tv non è alimentata) non passando più informazioni al server domotico, quest'ultimo capisca che il dispositivo non è disponibile e faccia risultare spento il dispositivo a cui è associato questo particolare sensore.
Iniziamo a far le cose sul serio:
- Aprite Home Assistant e cliccate su ESPHome nella barra laterale (se durante l'istallazione di tale addon avete esposto il programma con l'apposita funzione)
- Cliccate sul tasto + in basso a destra e create un nuovo nodo immettendo come nome power_sensor_tv
- Cliccate su Next e selezionate Wemos D1 and Wemos D1 mini dal menù a tendina per la scelta della board.
- Procediamo allo step successivo con il pulsante Next e immettiamo i dati della nostra rete Wifi dove si connetterà il Wemos, indicando su SSID il nome della rete e la relativa Password.
- Cliccate nuovamente su Next e infine su Submit
- Infine dalla pagina principale dell'addon clicchiamo su edit, nella scheda relativa al nodo appena creato (power_sensor_tv)
- Quando si aprirà l'eiditor, eliminate le righe dalla n°10 sino alla n°24.
- Incollate il seguente codice:
ap:
ssid: "power_sensor_tv_hotspot"
password: "12345678"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
web_server:
port: 80
sensor:
- platform: wifi_signal
name: "Segnale Wifi Power Senosr Tv"
update_interval: 5s
binary_sensor:
- platform: status
device_class: moving
name: "Tv da Controllare stato"
filters:
- delayed_on: 1ms
- delayed_off: 1ms
text_sensor:
- platform: version
name: "Versione ESPHOME Power Sensor tv"
Analizziamo le varie parti di codice:
- Ap con ssd e password: indicano, che nell'eventualità, il nostro dispositivo non riesca a connettersi alla Rete Wifi crei una Rete propria chiamata power_sensor_tv_hotspot, sulla quale potrete connettervi e modificare la rete wifi con la relativa password.
- Logger: Abilita il dispositivo a trasmettere i dati di Log
- api: indispensabile per far si, che il dispositivo si colleghi ad Home Assistant tramite api
- ota: abilita il dispositivo a ricevere aggiormenti via Ota
- Web Server port:80 : abilita a visualizzare le informazioni del dispositivo raggiungendo l'ip del dispositivo sulla porta 80.
- Sensor Wifi Signal : indica la potenza del segnale del dispositivo connesso alla nostra rete wifi, e lo aggiorna ogni 5 secondi con il comando update_interval
- Binary_sensor: Questa stringa da via effettivamente alla creazione del sensore, oggetto della guida, per capire se il dispositivo è acceso o spento mandando un segnale con ritardo di accensione o spegnimento di 1ms.
- text_sensor: indica,invece, un sensore testuale con il quale è indicata la versione di Esphome per eventuali aggiornamenti.
Terminato il tutto premete Validate e attendetevi il famoso pollicione verso l'alto, che indica che il file è corretto ed è valido e che quindi potrete procedere senza intoppi, cliccando su compile.
Terminata questa procedura, recatevi sulla pagina principale dell'addon e in alto a destra selezionare /dev/ttyUSB0
Se la scirtta /dev/ttyUSB0 non dovesse comparire, bisognerà necessariamente riavviare il Raspberry (non solo Home Assistant), recandovi sul menù laterale alla voce Supervisor e selezionando Reboot alla scheda Host System.
Una volta selezionata la porta USB premete sul pulsante Upload
Attendete 5 minuti circa, in modo tale che il processo di upload termini e vedrete su Home Assistant una notifica che vi indicherà la scoperta di un nuovo dispositivo. Aggiungete l'integrazione della nuova entità al vostro sistema, cliccando sulla scritta Check it Out.
Alla fine, nei vostri file di configurazione, dove è indicato il power sensor del dispositivo da comandare, potrete inserire il binary_sensor appena creato, e controllare se una Tv è effettivamente accesa o spenta.
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.