Hier ein Script, was den Status der Nuki über die Bridge abfragt und in zwei Stringvariablen einträgt.
Der Name der Variablen wird im Setup Teil eingetragen, die Variablen müssen vorher als Zeichenkettenvariablen in der CCU angelegt werden.
Dazu ein Programm anlegen, welches zyklisch ausgeführt wird und im Dann Teil das Script ausführt.
Hinweis: Den Intervall nicht zu hoch wählen, vor allem bei Verwendung des Schedulers der CCU
Code: Alles auswählen
! Nuki Hardware Bridge Status auslesen by Alchy v 0.4
var OUTPUTSTAT = "Nuki_Status"; ! Name der Variablen, wo der Status gespeichert wird (Nuki_Status)
var OUTPUTBAT = "Nuki_Batterie"; ! Name der Variablen, wo der Batteriestatus gespeichert wird (Nuki_Batterie)
var url = "http://IP.DEINER.EIGENEN.NUKI:8080/lockState?nukiID=EIGENE_ID&token=EIGENER_TOKEN";
! +++++++++++++ AB HIER FINGER WEG +++++++++++++++++
dom.GetObject("CUxD.CUX2801001:2.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:2.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:2.CMD_RETS").State();
srueck = srueck.Substr(1, srueck.Length()-2);
var tmp1 = srueck.StrValueByIndex(",",2).StrValueByIndex(":",1); ! battery
integer tmp2 = (srueck.StrValueByIndex(",",0).StrValueByIndex(":",1)).ToInteger(); ! state
var tmp3 = srueck.StrValueByIndex(",",3).StrValueByIndex(":",1); ! success
if (tmp3.Find("true")>-1) {
if (tmp1.Find("true")>-1) { (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTBAT).State("BATTERIEZUSTAND KRITISCH"); } else { (dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTBAT).State("BATTERIEZUSTAND OK"); }
string state = "unbekannt";
if (tmp2 == 0) { state = "nicht kalibriert"; }
if (tmp2 == 1) { state = "verschlossen"; }
if (tmp2 == 2) { state = "geoeffnet"; }
if (tmp2 == 3) { state = "sperren und gehen"; }
if (tmp2 == 4) { state = "ausgeklinkt"; }
if (tmp2 == 5) { state = "verriegeln"; }
if (tmp2 == 6) { state = "entriegeln"; }
if (tmp2 == 7) { state = "entriegelt"; }
if (tmp2 == 254) { state = "Motor blockiert"; }
if (tmp2 == 255) { state = "undefiniert"; }
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTSTAT).State(state);
} else {
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTSTAT).State("ABFRAGE NICHT ERFOLGREICH");
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get(OUTPUTBAT).State("ABFRAGE NICHT ERFOLGREICH");
}