---
title: "Espressioni / Linguaggio di script"
description: "Riferimento del linguaggio di script TapHome: contesti nelle smart rule, nelle notifiche, in Modbus e Packet parser, il risultato dello script, tipi di dati, operatori e tutte le 104 funzioni."
url: "https://taphome.com/it/docs/script/"
language: it
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","expressions","functions","data-types","smart-rules","parsing"]
  questions: ["Come si scrivono script su più righe in TapHome?","Dove posso usare il linguaggio di script TapHome?","Come si usano le istruzioni IF/ELSE nelle espressioni TapHome?","Come si analizzano dati JSON in uno script TapHome?","Qual è la differenza tra le funzioni MIN e MINSTRICT?","Come si lavora con data e ora negli script TapHome?","Come si usa la funzione LINEAR per l'interpolazione dei valori?","Quale valore restituisce uno script TapHome?","Che cosa può restituire uno script di lettura del dispositivo?"]
---

# Espressioni / Linguaggio di script

Ultimo aggiornamento: 2026-11-06

![Icona TapHome](https://taphome.com/documentation/script/script-icon.png)

TapHome ha un unico linguaggio di script per smart rule, notifiche e integrazioni dei dispositivi. La sintassi e le funzioni sono le stesse ovunque; solo le variabili, le costanti e le funzioni disponibili dipendono da dove viene eseguito lo script. Nell'editor degli script l'app per Android, Windows e macOS evidenzia la sintassi; l'app per iOS mostra lo script senza evidenziazione.

## Dove si usano gli script

Lo stesso linguaggio di script viene eseguito nelle smart rule, nelle notifiche e nelle integrazioni Modbus e Packet parser:

| Contesto | Che cosa fa lo script | Specifico del contesto |
|---|---|---|
| Smart rule **Equazione** | Un'espressione sui valori dei dispositivi. `TRUE` esegue le azioni per vero, `FALSE` quelle per falso. | `LastState`, `TriggerName` |
| Smart rule **Formula** | Calcola un valore che viene scritto in ogni dispositivo di uscita. | `LastState`, `TriggerName` |
| Smart rule **Script** | Legge i valori dei dispositivi e ne assegna di nuovi; ogni assegnazione diventa un'azione sul dispositivo. | Variabili di lettura e scrittura, `TriggerName` |
| Condizione limitante **Formula** | Decide se una smart rule può essere eseguita. | `TRUE` lascia eseguire la regola |
| Titolo e messaggio di una **notifica** | Compone il testo di una notifica. | Deve restituire testo; costanti delle notifiche |
| **Script di lettura del modulo** Modbus | Interroga il modulo, di solito per generare errori dei dispositivi. | Funzioni `MODBUS*` |
| **Script di lettura e scrittura del dispositivo** Modbus | Converte i registri in un valore del dispositivo e un valore richiesto di nuovo in registri. | Il risultato della lettura diventa il valore del dispositivo |
| **Script di inizializzazione** Modbus | Viene eseguito una volta dopo che il modulo si è connesso. | Di solito `MODBUSWNE` |
| **Script di lettura e scrittura** Packet parser | Invia una richiesta o un comando via HTTP, FTP, TCP, UDP o MQTT; per HTTP e FTP elabora anche la risposta. | `SENDHTTPREQUEST`, `SENDDATA`, `MQTTPUBLISH` |
| **Script listener** Packet parser | Gestisce ogni pacchetto TCP o UDP e ogni messaggio MQTT in arrivo. | `RECEIVEDMSG` |
| **Attributi di servizio e azioni di servizio** (Modbus, Packet parser) | Righe diagnostiche e pulsanti con parametri nell'app. | Parametri dell'azione per abbreviazione |

`SLEEP` viene rifiutato nelle smart rule e nelle notifiche (l'eccezione è la condizione limitante Formula). `ADDERROR`, `ADDWARNING` e `ADDINFO` funzionano solo negli script dei dispositivi. Che cosa passa ogni smart rule al suo script è descritto in [Script nelle smart rule e nelle notifiche](https://taphome.com/it/docs/script/smart-rules/); le integrazioni hanno pagine proprie, [Funzioni Modbus](https://taphome.com/it/docs/script/modbus/) e [Funzioni Packet parser](https://taphome.com/it/docs/script/packet-parser/).

## Risultato dello script

Uno script è un elenco di istruzioni. Il valore dell'ultima istruzione valutata è il risultato dello script. [`RETURN`](https://taphome.com/it/docs/script/basics/#return) termina lo script in anticipo con il valore indicato.

```taphome
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3
```

Il risultato di uno script di lettura del dispositivo deve essere adatto al valore del dispositivo, altrimenti lo script fallisce con `Return value 'X' does not match required return type constraint`:

| Valore del dispositivo | Risultato consentito |
|---|---|
| Stato dell'interruttore, contatto reed | `TRUE` o `FALSE` (i numeri sono accettati), `NaN`, `Null` |
| Stato dell'interruttore multivalore | Numero (un numero intero seleziona lo stato; un valore decimale non viene rifiutato), `NaN`, `Null` |
| Qualsiasi altro valore | Numero, `NaN`, `Null` |

`NaN` significa "il valore è sconosciuto", `Null` significa "non c'è alcun valore". Come si comportano i due nelle espressioni è descritto in [Null e NaN](https://taphome.com/it/docs/script/data-types/#null-and-nan).

## Pagine di riferimento

### Basi del linguaggio

- [Sintassi e flusso di controllo](https://taphome.com/it/docs/script/basics/) — Istruzioni, commenti, letterali, `IF`, `SWITCH`, cicli `WHILE` e `DO`, `RETURN`
- [Tipi di dati](https://taphome.com/it/docs/script/data-types/) — Numeri, testo, tipi strutturati ed enum, collezioni, `.Type`, promozione dei tipi, `Null` e `NaN`
- [Variabili e costanti](https://taphome.com/it/docs/script/variables/) — Variabili dei dispositivi, valori di gruppo, variabili del modulo, `VAR` e dichiarazioni tipizzate, proprietà, costanti di contesto
- [Operatori](https://taphome.com/it/docs/script/operators/) — Elenco degli operatori, precedenza, valutazione a corto circuito, equivalenti in Excel

### Smart rule e diagnostica

- [Smart rule e notifiche](https://taphome.com/it/docs/script/smart-rules/) — Equazione, Formula, Script, la condizione limitante Formula e le notifiche
- [Logica e diagnostica](https://taphome.com/it/docs/script/logic-and-diagnostics/) — `ISNULL`, `ISNAN`, `EQUALS`, `SLEEP`, `ADDERROR`, `ADDWARNING`, `ADDINFO`, `DEBOUNCE`
- [Errori](https://taphome.com/it/docs/script/errors/) — Messaggi di errore di parsing e in fase di esecuzione e come risolverli

### Numeri e tempo

- [Statistiche e Info valore](https://taphome.com/it/docs/script/value-info/) — Statistiche di un dispositivo, Info valore con l'ora dell'ultima modifica, il valore precedente e i valori dei periodi conclusi
- [Funzioni matematiche](https://taphome.com/it/docs/script/mathematical-functions/) — `MIN`, `MAX`, `AVG` (saltano i valori sconosciuti, le varianti `…STRICT` no), `ABS`, `SIGN`, `SQRT`, `POWER`, `MOD`, `LOG`, `LN`, `DEWPOINT`
- [Arrotondamento e numeri casuali](https://taphome.com/it/docs/script/rounding-and-random/) — `ROUND`, `CEIL`, `FLOOR`, `RAND`, `RANDINT`
- [Interpolazione e soglie](https://taphome.com/it/docs/script/interpolation-and-thresholds/) — `LINEAR` mappa un valore da un intervallo a un altro (per esempio una curva di dimmerazione), `HYSTERESIS`
- [Data e ora](https://taphome.com/it/docs/script/date-and-time/) — `NOW`, `DATETIME`, `DATETIMEADD`, `TIMESPAN`, `LOCALTIMEZONE`

### Testo, collezioni e colori

- [Testo e collezioni](https://taphome.com/it/docs/script/text-string-and-byte-array/) — `LENGTH`, `GETAT`, `SETAT`, `APPEND`, `INSERT`, `REMOVEAT`, `COPY`, `INDEXOF`, `REPLACE`, `SPLIT`, `COMPARE`, `BYTECOLLECTION`, `UINT16COLLECTION`, `BOOLCOLLECTION`
- [Ordinamento](https://taphome.com/it/docs/script/sorting/) — `ORDER`, `ORDERINDEX` e le loro varianti decrescenti e strict
- [Conversioni tra tipi di dati](https://taphome.com/it/docs/script/data-type-conversions/) — `TOSTRING`, `TODOUBLE`, `TOBYTES`, `ENCODE`, `DECODE`
- [Colori](https://taphome.com/it/docs/script/colours/) — `HSVTORGB`, `RGBTOHSV`
- [Funzioni di parsing](https://taphome.com/it/docs/script/parsing-functions/) — `PARSETEXT`, `PARSEJSON` (legge un valore da un JSON tramite il suo percorso), `PARSEXML`

### Dati binari e sicurezza

- [Operazioni sui bit](https://taphome.com/it/docs/script/bit-operations/) — `GETBIT`, `GETBITS`, `SETBIT`, `SETBITS`, `GETBYTE`, `SETBYTE`, `TOBCD`, `FROMBCD`
- [Dati binari](https://taphome.com/it/docs/script/binary-data/) — `PACKVALUE`, `UNPACKVALUE`
- [Crittografia e hash](https://taphome.com/it/docs/script/encryption-and-hashes/) — `AESENCRYPT`, `AESDECRYPT`, `HASH`, `HMAC`, `RANDBYTES`
- [Codifiche di byte e checksum](https://taphome.com/it/docs/script/byte-encodings/) — `TOBASE64`, `FROMBASE64`, `TOHEX`, `FROMHEX`, `CRC16`, `CRC32`

### Integrazioni dei dispositivi

- [Funzioni Modbus](https://taphome.com/it/docs/script/modbus/) — Tipi di registro, `MODBUSR`, `MODBUSW`, `MODBUSWNE`, `MODBUSRBLOCK`, `MODBUSWBLOCK`, `MODBUSWBLOCKNE`
- [Script Modbus](https://taphome.com/it/docs/script/modbus-scripts/) — Quali script hanno un modulo e un dispositivo Modbus, quando vengono eseguiti, prefetch e cache
- [Tipi di dati Modbus](https://taphome.com/it/docs/script/modbus-data-types/) — Tipi di dati delle funzioni Modbus, varianti dell'ordine dei byte, tipi a 64 bit, testo
- [Funzioni Packet parser](https://taphome.com/it/docs/script/packet-parser/) — `HTTPREQUEST`, `SENDHTTPREQUEST`, `SENDDATA`, `MQTTPUBLISH`, `FTPDOWNLOAD`, `FTPUPLOAD`, `COMPLETESERVICEATTRIBUTE`, `COMPLETESERVICEACTION`
- [Script listener](https://taphome.com/it/docs/script/listener-scripts/) — Lo script listener di un modulo Packet parser, `RECEIVEDMSG` e `RECEIVEDBYTES`

### Esempi e riferimenti

- [Esempi](https://taphome.com/it/docs/script/examples/) — Script completi da modelli di dispositivi reali
- [Requisiti di versione](https://taphome.com/it/docs/script/version-requirements/) — La build del Core richiesta da ogni funzione
- [Funzioni A–Z](https://taphome.com/it/docs/script/functions-a-z/) — Ogni funzione con una frase e un collegamento

