Skriv ett skript för virtuell tagg

Beräkna en taggs värde utifrån andra taggar — lässkript, skrivskript och genomarbetade exempel.

ProjektDitt projektTaggar

En virtuell tagg får sitt värde från ett skript i stället för en enhet. Den här guiden visar hur du skriver ett. För den fullständiga listan över funktioner, se referensen för virtuella taggar.

1. Lägg till en virtuell tagg

I ett projekts Taggar-vy, klicka på Ny, välj Tagg och välj typen Virtuell. Ge den ett namn och en datatyp, och skriv sedan dess lässkript.

2. Referera till andra taggar

Skript läser andra taggar via sökväg, som skickas till funktionen value(). I stället för att skriva sökvägen, tryck Shift + Alt + T för att välja en tagg och infoga den; tryck Shift + Alt + A för att infoga ett larm. Autokomplettering (Ctrl/⌘ + Space) listar varje funktion du kan anropa.

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

3. Skriv lässkriptet

Ett lässkript returnerar taggens värde. Några vanliga former:

Kombinera taggar — summera två mätare:

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

Konvertera enheter — Wh till kWh:

value("Boiler/Energy") / 1000;

Härled en status — 1 när ett larm är aktivt, annars 0:

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

Använd historik — mittpunkten av senaste timmens intervall, med tidshjälparna:

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;

Ange ett omräkningsintervall (i sekunder) om värdet ska uppdateras på en timer; annars räknas det om när de taggar det refererar till ändras.

4. Lägg till ett skrivskript (valfritt)

För att göra en virtuell tagg skrivbar, lägg även till ett skrivskript — en virtuell tagg är skrivbar endast när den har båda. Skrivskriptet körs när någon skriver till taggen och tar emot det inkommande värdet från inputValue(). Vidarebefordra det till riktiga taggar med writeValue().

Ta till exempel en procentandel (0–100) skriven till den virtuella taggen och skicka den till en fläkt som ett 0–10 V-börvärde:

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

5. Spara och kontrollera

Spara taggen och bekräfta att den visar ett rimligt värde i Taggar-vyn. Redigeraren flaggar syntaxfel inline medan du skriver; om värdet ser fel ut, kontrollera taggsökvägarna och att datatypen matchar vad skriptet returnerar.