lunedì 18 luglio 2022

Rule Tasmota - La compressione

 

Le regole di Tasmota occupano spazio e cicli di processore, vediamo come ottimizzarle senza penalizzare la velocità usando il comando SetOption93!

L'uso da parte mia delle Rule sta diventando un bel divertimento. Ma mi ha sempre incuriosito il messaggio che si riceve dopo aver scritto una Rule, simile a questo :

RUL: Stored uncompressed, would compress from 51 to 46 (-10%)

Allora ho iniziato a documentarmi ed ho capito alcune cose sulla compressione delle Rule!

Sapevo già che le Rule vengono compresse automaticamente, ma non mi ero reso conto di quanto. Il messaggio dopo una rule, dice quanto è stato recuperato di spazio comprimendo la Rule in automatico, in questo caso è il 10%.

Grazie a questo tipo di compressione, si può arrivare anche a risparmiare il 60% di spazio.

C'è sempre un però da analizzare!

Si che comprimendo le Rule si ha un risparmio di spazio, ma si ha anche un consumo di processore. Questo perchè ogni Rule, prima di essere eseguita, deve essere decompressa.

Questo porta ad un carico di lavoro sulla cpu ed un potenziale rallentamento.

Bisogna quindi pensare se la Rule che si comprime viene chiamata spesso (ogni minuto, ogni 5 minuti) oppure se viene chiamata una volta ogni tanto.

Altra considerazione da fare è legata ai dispositivi collegati al modulo con il firmware Tasmota.

Se ci sono diversi sensori, il carico della CPU sarà già elevato ed andare ad aumentarlo con la decompressione di una Rule non è una cosa furba.

Per fortuna esiste un meccanismo intelligente che si chiama caching delle rule.

Questo meccanismo riserva una parte di memoria nella quale viene conservata la Rule non compressa e viene eseguita ad ogni richiamo. Questo permette di non avere carico sul processore, perchè la Rule viene decompressa una volta all'avvio del sistema e resta caricata in memoria.

Ovvio, se il dispositivo ha abbastanza RAM.

Se il meccanismo del caching della Rule ti piace, non serve cambiare nulla.

Se invece per qualche motivo si vuole che ad ogni trigger si decomprima ex novo la rule specifica, bisogna lanciare il comando SetOption93 0

Per tornare allo stato di default, si lancia invece il comando SetOption93 1

Siccome io sto facendo un uso base delle Rule, non sento la necessità di cambiare il funzionamento di default, ma è sempre utile sapere che si può andare ad agire anche in maniera diversa!


Se vuoi approfondire la tua conoscenza delle Rule ed il loro uso nel firmware Tasmota, ho scritto diverti articoli, li trovi tutti raggruppati qui


Nessun commento:

Posta un commento

Sei davvero sicuro di voler sprecare tempo prezioso per scrivere qualcosa? Non è che preferisci andare su Google?

Cerca nel blog

I post più letti di sempre