GETCCUSYSVAR
Syntax :
GETCCUSYSVAR(Systemvariablenname,Zielvariable,IP_der_CCU)
Mit dieser Anweisung können Systemvariablen der CCU gelesen werden. Der Wert der Systemvariablen steht nach Ausführung der Anweisung in der angegebenen Variablen bzw. im Objekt zur Verfügung. Der Typ der als Ziel angegebenen Variablen oder des Objekts muss kompatibel mit dem Typ der Systemvariablen sein, soweit möglich wird der Typ konvertiert.
Bei Systemvariablen des Typs "Logikwert" wird in einer Textvariablen "true" oder "false" zurückgegeben, in einer Zahlenvariablen 1 oder 0.
Mit dieser Anweisung können nicht nur Systemvariablen der CCU, sondern auch Systemwerte ausgelesen werden. Dazu wird als Variablenname der Systemwert mit einem führenden * angegeben. Also z.B. "*SunsetTime". Wichtig ist, dass Gross/Kleinschreibung des Systemwerts genau eingehalten werden.
Als IP der CCU wird für die aktuelle Zentrale normalerweise "127.0.0.1" angegeben, es kann allerdings auch die IP-Adresse einer beliebigen CCU im Netzwerk angegeben werden. Die Angabe "localhost" funktioniert bei der CCU nicht zuverlässig, daher sollte besser die localhost-IP "127.0.0.1" verwendet weden.
Die Ausführung dieser Anweisung wird im Hintergrund durchgeführt. Während das passiert werden andere Makros weiter ausgeführt. Nachdem die CCU-Logikschicht geantwortet hat wird die Ausführung des Makros fortgesetzt. Die Ausführung der Anweisung kann je nach Auslastung der CCU und individueller Umgebung einige Sekunden dauern.
Daher muss unbedingt darauf geachtet werden dass die Abfragen nicht ständig in einem kürzeren Zeitintervall durchgeführt werden. Wenn das Zeitintervall bei permanenten Abfragen unter Antwortzeit des Requests liegt, kommt es nach einiger Zeit zu einem Überlauf des Buffers, was zur Folge hat, dass Speicher blockiert wird und keine weiteren HTTP-Requests mehr möglich sind. Daher sollte das Abfrageintervall für ständige Abfragen keinesfalls unter 5 Sekunden gewählt werden.
Beispiele:
GetCCUSysVar("Anwesenheit",CCU.Anwesenheit,"127.0.0.1")
GetCCUSysVar("*SunriseTime",Text1,"192.168.0.81")
Varname:="Anwesenheit"
GetCCUSysVar(Varname,MeineVariable,"127.0.0.1")
Bei diesem Beispiel wird nicht der Name der CCU-Systemvariablen angegeben, sondern die CL-Variable Varname, in der der Name der CCU-Systemvariablen steht.
|