EisBaer spezifische Erweiterungen

<< Click to Display Table of Contents >>

Navigation:  Komponenten > Steuerung, Logik & Zeit > Script IDE (LUA / Python) >

EisBaer spezifische Erweiterungen

Besondere Funktionen:

Beschreibung

LUA

Python

Prüfen, ob ein bestimmter Eingang ein Auslöser war (am Ende des Eingangsnamens "_triggered" hinzufügen) oder

ob das zyklische Triggern Ausgelöst hat.

if inputName_triggered == true then ... end

if inputArrayName_triggered[index] == true then ... end

_cyclic_triggered

if inputName_triggered == True ...

if inputArrayName_triggered[index] == True: ...

_cyclic_triggered

Abrufen des letzten Wertes eines Eingangs (fügen Sie "_lastValue" am Ende des Eingabenamens hinzu):

lastValueOfVariable = channelName_lastValue

lastValueOfArrayElement = channelArrayName_lastValue[index]

lastValueOfVariable = channelName_lastValue

lastValueOfArrayElement = channelArrayName_lastValue[index]

Abfrage der Anzahl der Elemente für Eingabe-/Ausgabe-Arrays (fügen Sie "_count" am Ende des Eingabe-/Ausgabe-Namens hinzu, ohne [])

elementCount = channelName_count

elementCount = len(channelName)

Direktes Setzen eines Ausgabedatenpunkts innerhalb des Skripts (wird auch dann gesetzt, wenn das Skript noch läuft [z. B. warten oder verarbeiten]):

(forceOutput = true für Werte werden immer geschrieben oder false für Wert wird nur geschrieben, wenn er sich auch geändert hat).

eisbaerComponent:SetOutputSpFromLua("outputName", valueToSet)

eisbaerComponent:SetOutputSpFromLua("outputName", valueToSet, forceOutput)

eisbaerComponent:SetOutputSpFromLua("outputArrayName", valueToSet, index)

eisbaerComponent:SetOutputSpFromLua("outputArrayName", valueToSet, index, forceOutput)

Eisbaer_SetOutputSp("outputName", valueToSet)

Eisbaer_SetOutputSp("outputName", valueToSet, forceOutput)

Eisbaer_SetOutputSp("outputArrayName", valueToSet, index)

Eisbaer_SetOutputSp("outputArrayName", valueToSet, index, forceOutput)

Direktes Setzen eines Ausgangsdatenpunktes mit Definition des KNX DPT innerhalb des Skripts (wird gesetzt, auch wenn das Skript noch läuft [z.B. Warten oder Verarbeiten])

eisbaerComponent:SetOutputSpFromLuaAsDpt("outputName", valueToSet, dataPointType)

Eisbaer_SetOutputSpAsDpt("outputName", valueToSet, dataPointType) valid dataPointTypes are:

•DataPointByteArrayValue

•DataPoint1OctetGenericValue

•DataPoint14OctetGenericValue

Der Eingang muss vom Typ Byte Array sein

Direktes Lesen des aktuellen Eingabedatenpunkts innerhalb des Skripts (der aktuelle Wert wird auch dann gelesen, wenn das Skript noch läuft [z.B. beim Warten oder Verarbeiten]):

eisbaerComponent:ReadInputSpFromLua("inputName")

eisbaerComponent:ReadInputSpFromLua("inputArrayName", index)

Eisbaer_ReadInputSp("inputName")

Eisbaer_ReadInputSp("inputArrayName", index)

Text auf der Debug-Ausgabe ausgeben:

eisbaerComponent:SetOutputSpFromLua("#DEBUG#", text)

eisbaerComponent:SetOutputSpFromLua("#DEBUG_VERBOSE#", text)

Eisbaer_SetOutputSp("#DEBUG#", text, True)

Eisbaer_SetOutputSp("#DEBUG_VERBOSE#", text, True)

Einen Wert speichern (kann bei einem späteren Skriptlauf gelesen werden):

eisbaerComponent:StoreValue("freeKeyName", valueToStore)

Eisbaer_StoreValue("freeKeyName", valueToStore)

Einen Wert persistent speichern (kann bei einem späteren Skriptlauf gelesen werden, auch nachdem das Projekt neu geladen wurde):

eisbaerComponent:StoreValue("freeKeyName", valueToStore, true)

Eisbaer_StoreValue("freeKeyName", valueToStore, True)

Abrufen eines gespeicherten Wertes:

storedValue = eisbaerComponent:RecallValue("freeKeyName")

storedValue = Eisbaer_RecallValue("freeKeyName")

Entfernen eines gespeicherten Wertes aus dem Speicher:

eisbaerComponent:RemoveValueFromStorage("freeKeyName")

Eisbaer_RemoveValueFromStorage("freeKeyName")

Löschen des Speichers:

eisbaerComponent:ClearStorage()

Eisbaer_ClearStorage()

Sleep/Verzögerungsfunktion:

eisbaerComponent:Sleep(delayInMs)

Phyton eigene Implementierung.

Funktion DataPointValue umwandeln.

Um einen Wert in einen EisBär Datenpunkt-Typ zu wandeln, kann diese Funktion verwendet werden.

convertedValue = eisbaerComponent:GetValueFromDpt(value)

eisbaerComponent:SetOutputSpFromLuaAsDpt("MeinKanalName", "Byte-Array mit korrekter Länge")

convertedValue = Eisbaer_GetValueFromDpt(value)

Web-Anfrage durchführen

 

requestType: GET=0, PUT=1, POST=2, DELETE=3

queryFormat: Unspecified=0, TEXT_HTML=1, APPLICATION_JSON=2, APPLICATION_XML=3, APPLICATION_URL_ENCODED=4, TEXT_XML=5, TEXT_JSON=6, TEXT_PLAIN=7, MULTIPART_FORM_DATA=8, VND_API_PLUS_JSON=9, APPLICATION_FORM_URL_ENCODED=10, APPLICATION_JSONP=11

authType: None=0, Basic=1, HttpBasic=2, BearerToken=3

header["User-Agent"] = "Firefox"

header["andererKey"] = "andererWert"

eisbaerComponent:DoWebRequest(url, body, [requestType], [queryFormat], [authType], [user], [password], [headers])

 

 

 

Beispiel:

Answer = eisbaerComponent:DoWebRequest(Url, "", 0, 0, 0, nil, nil, header)

Eisbaer_DoWebRequest(url, body, [requestType], [queryFormat], [authType], [user], [password], [headers])

requestType: GET=0, PUT=1, POST=2, DELETE=3

queryFormat: Unspecified=0, TEXT_HTML=1, APPLICATION_JSON=2, APPLICATION_XML=3, APPLICATION_URL_ENCODED=4, TEXT_XML=5, TEXT_JSON=6, TEXT_PLAIN=7, MULTIPART_FORM_DATA=8, VND_API_PLUS_JSON=9, APPLICATION_FORM_URL_ENCODED=10, APPLICATION_JSONP=11

authType: None=0, Basic=1, HttpBasic=2, BearerToken=3

oder Python eigene Implementierung.

Letzten Webanforderungsfehler abfragen:

eisbaerComponent:WebRequestGetLastError()

Eisbaer_WebRequestGetLastError()

Ermittelt den Statuscode der letzten Webanforderung:

eisbaerComponent:WebRequestGetLastStatus()

Eisbaer_WebRequestGetLastStatus()

 

Gültige dataPointType sind:

 

DataPoint2OctetFloatValue

DataPoint2OctetSignedValue

DataPoint2OctetUnsignedValue

DataPoint4OctetFloatValue

DataPoint4OctetSignedValue

DataPoint4OctetUnsignedValue

DataPoint8BitSignedValue

DataPoint8BitUnsignedValue

DataPoint8OctetSignedValue

 

string- und bool-Werte werden immer automatisch erkannt und müssen nicht explizit angegeben werden.