Configurare il “boot loop” di Tasmota (ed evitare problemi)

3 minuti di lettura
SCOPI DELLA GUIDA
  • Utilizzare il comando “SetOption36” del firmware Tasmota al fine di pilotare un interruttore intelligente Sonoff in diverse modalità di comportamento
  • Livello di difficoltà: basso
CONCETTI AFFRONTATI:
  • Configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
  • Un componente domotico basato su SOC ESP8266 / ESP32 riprogrammato Tasmota (qui una MASTERGUIDE sulla procedura di riprogrammazione)
GUIDA maggiormente indicata per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.0

Tasmota Full Logo

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:

  1. al riavvio successivo, disabilita i GPIO generici dell’ESP8625;
  2. se si verifica un altro riavvio, disabilita le rules che possano aver causato il reboot;
  3. se si verifica un altro riavvio, disabilita tutte le rules;
  4. se si verifica un altro riavvio, disabilita qualsiasi componente esterno collegato il GPIO;
  5. 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.


ITEAD Sonoff Basic ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica ai Sonoff (e più generalmente ai dispositivi ESP8266), per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.

   
Telegram News Channel