SCOPI DELLA GUIDA
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
|
GUIDA maggiormente indicata per: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.0 |
L’adozione del firmware Tasmota sui dispositivi ITEAD Sonoff “Smart Home” (e molti altri) abilita tutta una serie di funzionalità che, di fabbrica, non sarebbero previste.
Innanzitutto, questo approccio libera questi dispositivi domotici dalla “gabbia” indirettamente imposta dal produttore nell’uso esclusivo della propria app “eWeLink” per configurarli e controllarli; inoltre, apre a funzionalità non previste (si pensi, banalmente, all’implementazione del protocollo MQTT) nonché ad ampissime possibilità di configurazione, ben oltre quelle di fabbrica.
Il firmware Tasmota mette a disposizione, infatti, una lunga lista di comandi i quali possono essere utilizzati per personalizzare in modo molto puntuale il comportamento del proprio dispositivo Sonoff, con specificità diverse da modello a modello (eg. non sarà possibile utilizzare i comandi relativi alla gestione di temperatura e umidità su modelli che non offrano queste funzionalità).
In questa occasione ci concentreremo sul comando “SetOption36“, il quale tipicamente si applica virtualmente a qualsiasi dispositivo adatto ad ospitare Tasmota.
Come funziona il “boot loop”
Il cosiddetto “boot loop” è una funzione esistente da tempo atta a intercettare eventuali anomalie software/hardware sul componente dotato di firmware Tasmota. In buona sostanza, se si verifica più un riavvio inaspettato entro i 10 secondi dall’accensione del componente (configurazione di default), Tasmota interpreta la cosa come “malfunzionamento” ed entra appunto in “boot loop”, modalità che attua le seguenti politiche:
- al riavvio successivo, disabilita i GPIO generici dell’ESP8625;
- se si verifica un altro riavvio, disabilita le rules che possano aver causato il reboot;
- se si verifica un altro riavvio, disabilita tutte le rules;
- se si verifica un altro riavvio, disabilita qualsiasi componente esterno collegato il GPIO;
- se si verifica un altro riavvio, resetta completamente il componente e si imposta il modalità “Sonoff Basic” (incluse le credenziali per l’accesso al Wi-Fi).
Questo comportamento è voluto. L’impostazione SetOption36 è, di default, impostata a “1“, ovvero il numero di riavvii inaspettati prima di entrare in boot loop. Il numero di secondi di monitoraggio, come detto di 10 secondi, è impostato sul parametro BOOT_LOOP_TIME oggetto di configurazione all’atto della (eventuale) compilazione manuale del firmware.
Il problema
Questo meccanismo, per quanto utile, nasconde anche un lato oscuro. C’è infatti da domandarsi cosa accada quando “salta la corrente” per motivi voluti o non voluti (a proposito: qui ne parliamo). Specie quando si sta lavorando sull’impianto elettrico, può capitare di dare/togliere corrente più volte, talvolta in brevi lassi di tempo.
Tale comportamento può essere mal interpretato dal componente come un malfunzionamento, portando l’unità in boot loop la quale, sempre inavvertitamente, può rapidamente arrivare allo step 5 di cui sopra, ovvero resettarsi completamente. Questo causa la completa perdita di configurazione del componente, incluse le coordinate Wi-Fi.
Ci si potrebbe trovare quindi nella svantaggiosa situazione di avere componenti installati sull’impianto (magari dentro scatole murali) completamente abbandonate a se stesse, le quali avrebbero bisogno di essere ricontattate in modalità AP Wi-Fi per essere riconfigurate sia nell’accesso alla Wi-Fi domestica sia nelle proprie configurazioni specifiche. Non proprio il massimo.
Come configurare
Capito il potenziale problema, è necessario porsi la domanda su come tutelarsi di fronte al potenziale problema.
Tutto è risolvibile utilizzando il comando SetOption36: è possibile o completamente disabilitare la funzionalità boot loop oppure fare in modo che il numero di riavvii inattesi da interpretare come “malfunzionamento” debbano essere talmente elevati dal numero da far sì che le eventuali alimentazioni/disalimentazioni sull’impianto non possano realisticamente avere una conseguenza (20?).
Per disabilitare “boot loop” recarsi presso la voce “Console” ed insierire seguito da un invio il seguente comando:
SetOption36 0
se si vuole applicare tale impostazione su tutti i componenti Tasmota della propria rete domestica, eseguire il comando
cmnd/tasmotas/SetOption36 0
N.b. Affinché il comando funzioni, tutti i componenti che si vogliono coinvolgere nella modifica debbono essere connessi a un comune un broker MQTT, incluso il componente dal quale si lancia il comando. Ovviamente il GROUPTOPIC dev’essere configurato coerentemente (default “tamotas“). |
Se invece si vuole alzare il numero di riavii minimi pre-boot loop, è necessario indicarne il numero maggiore di 0:
SetOption36 X
oppure
cmnd/tasmotas/SetOption36 X
dove ovviamente X è il numero di riavvii minimo da specificare.
Come disattivare
Se invece si preferisce disabilitare del tutto la funzione, allora il comando da usarsi è SetOption65:
cmnd/tasmotas/SetOption65 0
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. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |