Ne avevo parlato già nell'articolo introduttivo "Tasmota - Perchè ampliare il firmware" per il supporto alla matematica "di base" utile per fare dei confronti e nulla più. Ma potendo fare dei confronti si aprono delle possibilità decisamente interessanti!
Rivediamo i concetti di base
Nel post "Rule Tasmota - Introduzione alle rule" avevo introdotto brevemente l'argomento, parlando degli operatori matematici presenti.
Rispolveriamo il concetto di base andando nuovamente a vedere quasi sono e cosa fanno gli operatori presenti:
= uguale a
Si usa per confrontare delle stringhe di dati e non i valori numerici
== uguale a
Si usa per confrontare valori numerici e non delle stringhe di dati
> maggiore di
< minore di
!= diverso da
>= maggiore o uguale a
<= minore o uguale a
| diviso
Si usa solo per le divisioni esatte, non viene quindi tenuto conto del resto
Con questo set di strumenti matematici possiamo già fare diverse cose interessanti, in accoppiata con i trigger che abbiamo visto poco tempo fa nel post "Rule Tasmota - Sintassi dei trigger".
Una breve introduzione la avevo data con questa Rule :
ON Power1#state=0 DO status 5 ENDON
Ovvero "se relè 1 ha il carico uguale a zero esegui Status 5".
Avevo poi ampliato la cosa rendendo più specifica la Rule anche per coinvolgere l'accensione del carico :
ON Power1#state=0 DO status 5 ENDON ON Power1#state=1 DO status 1 ENDON
Ovvero "se relè 1 ha il carico uguale a zero esegui Status 5, se il relè 1 ha il carico uguale a uno esegui Status 1".
Potremo, però, cambiare la Rule sopra in questo modo :
ON Power1#state=0 DO status 5 ENDON ON Power1#state!=0 DO status 1 ENDON
In questo caso vuol dire "se relè 1 ha il carico uguale a zero esegui Status 5, se il relè 1 ha il carico diverso da zero esegui Status 1".
Roba semplice e veloce, no?
Ma se andiamo a coinvolgere un sensore?
Lanciamo intanto uno Status 8 per vedere con che sensore abbiamo a che fare :
{"StatusSNS":{"Time":"2022-03-10T19:01:32","SI7021":{"Temperature":26.3,"Humidity":78.1},"TempUnit":"C"}}
Ok, il sensore quindi è un SI7021 ed i trigger sono la temperatura e l'umidità.
La Rule quindi potrebbe essere questa :
ON SI7021#Temperature>25 DO Power=1 ENDON
Ovvero, se la temperatura è maggiore di 25 accendi il carico collegato al relè 1.
Ma di tutto quello che gravita attorno ai sensori ne parliamo più approfonditamente in un post dedicato, visto che ci sono un paio di cose da tenere bene a mente.
Conclusione
Per ora abbiamo capito come muoverci nell'ambito delle Rule facendo delle operazioni semplici di confronto in relazione ad un valore noto.
Ma se serve una matematica un pelino più avanzata?
Tipo una moltiplicazione?
Esiste anche questa possibilità, ovviamente!
Ma bisogna aggiungere ancora un pezzettino al nostro amato firmware Tasmota, cosa del resto facile e che abbiamo già visto nel post "Tasmota - Personalizzare il firmware", quindi nulla di nuovo.
Sarà comunque la base per un prossimo post dove vedremo come usare tutte le formule per essere liberi di fare un sacco di operazioni matematiche!
Nel frattempo , dato che abbiamo parlato dei comandi di Status, se non ti ricordi i diversi livelli uttilizzabili, ti consiglio di darti una veloce lettura al post "Console Tasmota - Status", vedrai che è tutto spiegato molto bene!
Nessun commento:
Posta un commento
Sei davvero sicuro di voler sprecare tempo prezioso per scrivere qualcosa? Non è che preferisci andare su Google?