Skriv et skript for en virtuell tagg

Beregn verdien til en tagg ut fra andre tagger — leseskript, skriveskript og gjennomarbeidede eksempler.

ProsjekterDitt prosjektTagger

En virtuell tagg får verdien sin fra et skript i stedet for fra en enhet. Denne guiden viser hvordan du skriver et. For hele listen over funksjoner, se referansen for virtuelle tagger.

1. Legg til en virtuell tagg

I prosjektets visning Tagger klikker du på Ny, velger Tagg og typen Virtuell tagg. Gi den et navn og en datatype, og skriv deretter leseskriptet dens.

2. Referer til andre tagger

Skript leser andre tagger via stien, som sendes til funksjonen value(). I stedet for å skrive inn stien kan du trykke på Shift + Alt + T for å velge en tagg og sette den inn; trykk på Shift + Alt + A for å sette inn en alarm. Autofullføring (Ctrl/⌘ + mellomrom) viser alle funksjonene du kan kalle.

// The current value of another tag
value("Meters/Main meter");

3. Skriv leseskriptet

Et leseskript returnerer verdien til taggen. Noen vanlige mønstre:

Kombiner tagger — summer to målere:

value("Meters/Meter A") + value("Meters/Meter B");

Konverter enheter — Wh til kWh:

value("Boiler/Energy") / 1000;

Utled en status — 1 når en alarm er aktiv, ellers 0:

alarmValue("Boiler/High temperature") ? 1 : 0;

Bruk historikk — midtpunktet i variasjonsområdet den siste timen, med tidsfunksjonene:

const now = getCurrentTime();
const from = getTimeBefore("1h", now);
const high = historyMax("Outdoor/Temperature", from, now);
const low = historyMin("Outdoor/Temperature", from, now);
(high + low) / 2;

Angi et Intervall for ny beregning (i sekunder) hvis verdien skal oppdateres etter en tidtaker; ellers beregnes den på nytt når taggene den refererer til, endres.

4. Legg til et skriveskript (valgfritt)

For å gjøre en virtuell tagg skrivbar legger du også til et skriveskript — en virtuell tagg er bare skrivbar når den har begge. Skriveskriptet kjører når noen skriver til taggen, og mottar den innkommende verdien fra inputValue(). Videresend den til faktiske tagger med writeValue().

Et eksempel: ta en prosentverdi (0–100) som skrives til den virtuelle taggen, og send den til en vifte som et settpunkt på 0–10 V:

writeValue("AHU/Fan", (inputValue() / 100) * 10);

5. Lagre og kontroller

Lagre taggen og bekreft at den viser en fornuftig verdi i visningen Tagger. Redigereren markerer syntaksfeil direkte mens du skriver; hvis verdien ser feil ut, kontrollerer du taggstiene og at datatypen samsvarer med det skriptet returnerer.