CONVERSIONE VALORI - MOLTIPLICA O DIVIDI PER UN FATTORE DI SCALA - OPERAZIONI E CONVERSIONI DI VALORE - Domotica KNX MyHOME Modbus e soluzioni IOT


CONVERSIONE VALORI - MOLTIPLICA O DIVIDI PER UN FATTORE DI SCALA

Lo script presentato in questo tutorial permette di moltiplicare o dividere, a seconda dei casi, un valore in ingresso per un fattore di scala prefissato. Questa funzione spesso è utile per convertire valori rilevati da gateway con altre tecnologie, es. Modbus, spesso codificati come intero moltiplicando il valore per 10.

 

CREAZIONE DELLO SCRIPT

Il primo passo consiste nel creare uno SCRIPT, procedendo come segue:

Per moltiplicare il valore ricevuto in ingresso per un fattore di scala, creare il seguente script:

//This script multiplies received input value with a fixed scaling factor (e.g. 10)
$factor = 10;
$value = floatval( input() ) * $factor;
output( $value );

Qualora si voglia dividere il valore ricevuto per un fattore di scala, il codice deve essere il seguente:

//This script multiplies received input value with a fixed scaling factor (e.g. 10)
$factor = 10;
$value = floatval( input() ) * $factor;
output( $value );

Salvare mediante l'apposito pulsante SALVA.

 

CREAZIONE DELLO SCRIPT RUNNER

Per ogni dato che si desidera convertire, è necessario configurare un nuovo SCRIPT RUNNER nel seguente modo:

A questo punto inserire nella sezione "DATI GENERALI" un nome identificativo per il nuovo oggetto, e selezionare lo SCRIPT creato in precedenza nell'omonimo menu a tendina; lasciare inalterate le altre opzioni della sezione "ASPETTO".

Nella sezione "INGRESSI" trascinare l'oggetto che contiene il valore da moltiplicare o dividere; prestare attenzione a indicare "$VAL" come valore. Trascinare invece nella sezione "USCITE" l'oggetto (ad es. una variabile) che deve contenere il valore convertito.

E' possibile effettuare il debug dello script nella sezione in basso della scheda dello SCRIPT RUNNER, simulando il calcolo cambiando il valore in ingresso e verificando che il valore in uscita sia correttamente moltiplicato o diviso per il fattore di scala specificato (default: 10).