TapHome

Script nelle smart rule e nelle notifiche

Che cosa passano a uno script le smart rule Equazione, Formula e Script, la condizione limitante Formula e gli script delle notifiche, e che cosa fanno con il suo risultato: LastState, TriggerName, uscite, errori e SLEEP.

Panoramica

Le smart rule passano al loro script i valori dei dispositivi scelti come variabili, con le loro abbreviazioni, e usano il risultato in modi diversi:

Dove viene eseguito lo scriptChe cosa fa il risultatoLastStateTriggerName
Smart rule EquazioneTRUE esegue le azioni per vero, FALSE quelle per falsoRisultato precedente, FALSE all’inizioSì
Smart rule FormulaViene scritto in ogni variabile di uscitaRisultato precedente, Null all’inizioSì
Smart rule ScriptLe assegnazioni alle variabili di lettura e scrittura diventano azioni sui dispositiviNoSì
Condizione limitante FormulaTRUE lascia eseguire la smart ruleNoNo
Titolo e messaggio di una notificaIl testo della notificaNoSolo nelle azioni di Equazione

SLEEP viene rifiutato in tutti gli script delle smart rule e delle notifiche con SLEEP function not allowed in this context. L’unica eccezione è la condizione limitante Formula, che lo accetta; non usarlo nemmeno lì, perché blocca la valutazione delle smart rule. ADDERROR, ADDWARNING e ADDINFO qui falliscono con ADDERROR function not supported here.; funzionano solo negli script dei dispositivi.

Smart rule Equazione

La smart rule Equazione valuta il suo script ogni volta che cambia una delle sue variabili, dopo il salvataggio e dopo l’avvio del Core. Il risultato viene letto come booleano, dove un numero diverso da zero è TRUE. Le azioni vengono eseguite solo quando il risultato cambia, quindi le azioni una tantum e le notifiche scattano una volta per ogni cambiamento.

  • Un risultato Null o un errore dello script rilascia i dispositivi controllati dalla regola; il successivo risultato TRUE o FALSE applica di nuovo le sue azioni. Un risultato di tipo testo viene segnalato come errore della formula.
  • LastState è il risultato precedente dello script, FALSE alla prima esecuzione e dopo un risultato Null o un errore.
  • TriggerName è l’abbreviazione della variabile il cui cambiamento ha causato la valutazione, vuoto dopo un salvataggio o un riavvio. Disponibile dal Core 2026.1, build 35936.

Una luce che si accende sotto 20 lx e resta accesa fino a 60 lx:

(!LastState AND Li < 20) OR (LastState AND Li < 60);
# Result: TRUE below 20, then TRUE until Li reaches 60

La stessa configurazione passo per passo si trova in Configurazione con LastState.

Smart rule Formula

La smart rule Formula scrive il risultato del suo script in ogni variabile di uscita. In Modalità di valutazione scegli quando viene eseguita: Quando una delle variabili di input è cambiata, oppure Su evento personalizzato, dove la avviano solo i trigger della regola e le variabili vengono soltanto lette.

  • Il risultato può essere di qualsiasi tipo accettato dall’uscita. Anche un risultato Null viene scritto.
  • LastState è il risultato precedente. È Null alla prima esecuzione e dopo un errore dello script, quindi proteggilo prima di usarlo in un calcolo.
  • TriggerName è l’abbreviazione della variabile di ingresso che è cambiata, oppure il nome del trigger che è scattato.
  • Un dispositivo mancante viene letto come Null; controlla questi ingressi con ISNULL.

Conteggio delle aperture di una porta con la modalità a evento personalizzato (il trigger è l’apertura del contatto della porta):

IF(ISNULL(LastState), 0, LastState) + 1;
# Result: 1 on the first run, then 2, 3 and so on

Un termostato con HYSTERESIS usa la stessa protezione:

HYSTERESIS(Se, 23, 21, 0, 1, IF(ISNULL(LastState), 0, LastState));

Smart rule Script

La smart rule Script ha due elenchi di variabili, Variabili di sola lettura e Variabili di lettura e scrittura. L’assegnazione di una variabile di lettura e scrittura crea un’azione sul dispositivo; più assegnazioni allo stesso dispositivo vengono unite in un’unica azione. L’editor mostra Lo Script deve contenere almeno un'assegnazione. finché lo script non contiene :=.

IF Se > 25
    Mu := 1;
ELSE
    Mu := 0;
END
  • Viene eseguita quando Qualsiasi variabile di sola lettura cambia, oppure Su evento personalizzato.
  • Vengono scritte solo le variabili assegnate in questa esecuzione. Quando la regola mantiene le sue azioni, un’esecuzione che assegna solo alcune variabili di lettura e scrittura rilascia le altre, e un’esecuzione che non ne assegna nessuna le rilascia tutte. Subentra allora una regola con priorità più bassa o il valore predefinito. Assegna ogni uscita in ogni ramo, come nell’esempio sopra.
  • Un errore dello script rilascia tutte le uscite mantenute. Un valore di tipo errato per un dispositivo scarta l’intera esecuzione, comprese le assegnazioni precedenti.
  • TriggerName è l’abbreviazione della variabile di sola lettura che è cambiata. Resta vuoto quando nessuna variabile di sola lettura è contrassegnata come trigger. Con gli eventi personalizzati è il nome del trigger che è scattato. Lo script può anche assegnarlo.
  • LastState non c’è.

Condizione limitante Formula

Il tipo Formula di una condizione limitante valuta uno script sulle proprie variabili. TRUE lascia eseguire la smart rule; FALSE, Null o un errore dello script la bloccano.

Te < 22 AND Hu < 70;

Script delle notifiche

Il titolo e il messaggio di una notifica sono script che devono restituire testo. Possono leggere i dispositivi scelti per la notifica e le costanti della notifica elencate in Costanti di contesto.

"Temperature in " + LocationName + " is " + TOSTRING(Te, "F1") + " °C";