Vorrei fare in modo che la mia cassetta delle lettere mi comunichi quando passa il postino. Vorrei usare un device con Tasmota a bordo. Vediamo come ci sono riuscito!
Problema : la mia buca per le lettere viene controllata poco, visto che è in una posizione non proprio di passaggio per noi.
Soluzione : fare in modo che la cassetta postale diventi smart e ci avvisi in caso di posta giacente.
Agli inizi della mia infatuazione con la domotica ho analizzato il tutto meditando di usare un microswitch collegato in parallelo al pulsante standard di un Sonoff con il firmware Tasmota a bordo.
La cosa non era fattibile, secondo me, perchè se il postino avesse lasciato una rivista mezza infilata, il coperchio sarebbe risultato aperto. Questo, dopo 60 secondi, avrebbe portato ad un reset del dispositivo con Tasmota.
Poi ho accantonato il tutto, per farmi prima una cultura in ambito Tasmota.
Ultimamente, complice l'acquisto di altri 5 Sonoff su Banggood dato che erano a buon prezzo (e se vuoi leggere qualcosa su come controllare i prezzi su Banggood e su Gearbest c'è un bel post in merito) mi sono rivolto alla Wiki di Tasmota.
Mi ricordavo che c'era una sezione dedicata ai pulsanti ed interruttori ed ho subito controllato per vedere se ci sono delle novità.
Novità perchè avevo già affrontato in maniera abbastanza approfondita il discorso che coinvolgeva i comandi SwitchMode e SwitchTopic con un post dedicato solo a questi.
Dal momento che si sono aggiunti altri "modi" speravo che qualcuno facesse al caso mio, ma nulla di fatto.
Visto che dalle versione 6.3.0.15 è possibile avere, sui dispositivi Sonoff, un secondo pulsante che non è collegato al relè di bordo, ho pensato che potesse essere una soluzione.
Certo, forse non immediata come saldare due fili in parallelo al pulsante standard (come ho fatto per il Sonoff a basso impatto domestico) ma ci si accontenta.
La modifica da fare consiste nel saldare un cavo al pin GPIO2, ovvero questo :
Immagine via Byte4Geek |
Questa non è farina del mio sacco, ma è roba di peppebytes su Byte4Geek
Una volta fatta questa modifica, è il momento di pensare a che cosa usare per la cassetta delle lettere. Stavo pensando ad un microswitch NC (normalmente chiuso) che viene "aperto" quando si apre il coperchio della cassetta delle lettere. Oppure NA (normalmente aperto) che si "chiude" all'apertura della buca delle lettere. Beh, insomma, una cosa simile :-)
Ho parlato tempo fa delle varie famiglie di pulsanti ed interruttori, in caso ti fossi perso il post e volessi rispolverare le tue conoscenze...
Tornando a noi, per la mia esigenza il microswitch è la soluzione ottimale. Ho quindi configurato il mio Sonoff Basic con Tasmota in questo modo :
Prima di iniziare a fare dei test, pensiamo un momento all'analisi dei possibili stati della cassetta delle lettere. A seguito di questo individuiamo i comandi ottimali!
Stato A
Il coperchio della cassetta è chiuso.
Il contatto non avviene.
Stato B
Il coperchio della cassetta viene aperto e richiuso.
Il contatto avviene per pochi secondi.
Stato C
Il coperchio della cassetta viene aperto e lasciato aperto
Il contatto avviene fino a che non si chiude il coperchio.
Lo Stato A e lo Stato B sono tutto sommato nella norma, mentre lo Stato C avviene quando ti portano la pubblicità dei supermercati o ti inseriscono una rivista. Almeno, qui da me è così...
Per prima cosa, quindi, mettiamoci al riparo dall'eventualità che uno Stato C prolungato venga visto da Tasmota come un "reset alle condizioni di default" . Questo è il comportamento normale del dispositivo, una pressione di 60 secondi sul pulsante fa un reset al firmware caricato.
Ovviamente esiste un modo per disabilitare questo comportamento, è il comando SetOption1
21:08:32 CMD: setoption1 1
21:08:32 MQT: tasmota/basic_test/stat/RESULT = {"SetOption1":"ON"}
E qui abbiamo messo la prima pezza al funzionamento. Se il coperchio viene lasciato aperto, ora il dispositivo non si resetta.
Andiamo avanti!
Ora facciamo una cosa che pare scema, ma ha il suo motivo. Specifichiamo che il pulsante di bordo deve funzionare regolarmente come da default.
Per fare questo usiamo il comando SwitchMode 0 puntato allo Switch1 :
07:30:56 CMD: switchmode1 0
07:30:56 MQT: tasmota/basic_test/stat/RESULT = {"SwitchMode1":0}
Mica per altro, ma esplicitare questo modo di funzionamento mi risulta comodo quando vado a salvare tutti i parametri o quando vado a controllare una configurazione che mi sta dando problemi.
Il microswitch, come da immagine che ho messo poco prima, lo ho configurato come Button2. Questo perchè voglio che mi sia mandato un messaggio "particolare" quando viene premuto.
Di default, verrebbe mandato lo stesso messaggio di attivazione del pulsante originale, cosa che non mi serve a nulla.
Quindi ho lanciato il comando ButtonTopic per vedere quale era il messaggio erogato :
07:50:46 CMD: buttontopic
07:50:46 MQT: tasmota/basic_test/stat/RESULT = {"ButtonTopic":"basic_test"}
Ok, il ButtonTopic è il nome host, come di default. Ora specifico che il Topic del comando MQTT, quando viene attivato il Button2 deve essere "lettera"
07:50:55 CMD: buttontopic lettera
07:50:55 MQT: tasmota/basic_test/stat/RESULT = {"ButtonTopic":"lettera"}
Ora, alla chiusura del contatto sul microswitch, che è stato configurato come Button, viene erogato questo messaggio MQTT
07:52:15 MQT: tasmota/lettera/cmnd/POWER = TOGGLE
Benissimo!
Ora ogni volta che il coperchio della mia buca delle lettere sarà aperto (per breve o lungo tempo) verrà pubblicato un messaggio come quello sopra.
Così mi piace di più, anche perchè mi lascia il relè libero!
Ora non resta altro che intercettare questo messaggio e farsi inviare un messaggio via Telegram sul canale di casa :-)
Se ti è piaciuto questo articolo, ho fatto tutta una serie di post che potrebbero piacerti a tema automazione domestica, dove ti spiego cosa ho automatizzato io e perchè!
Nessun commento:
Posta un commento
Sei davvero sicuro di voler sprecare tempo prezioso per scrivere qualcosa? Non è che preferisci andare su Google?