|
<< 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.