Na dann ist ja gut, ich hatte es anders in Erinnerung.Stoni hat geschrieben:Eigentlich nicht, die Ausgabe ist identisch.
Alchy
Moderator: Co-Administratoren
Na dann ist ja gut, ich hatte es anders in Erinnerung.Stoni hat geschrieben:Eigentlich nicht, die Ausgabe ist identisch.
Das stimmt mich zuversichtlich! Danke.Schatn hat geschrieben:das Schloss reagiert auf die Eingabe sofort, braucht keine 7-10 Sekunden.
Moin,alchy hat geschrieben:Du kennst doch das Spielchen.
Wenn Probleme, dann JSON Ausgabe des Executers.
Alchy
Code: Alles auswählen
{
"tmp3": "true",
"OUTPUTBAT": "Nuki_Batterie",
"state": "nicht kalibriert",
"srueck": "\"batteryCritical\":false,\"state\":3,\"stateName\":\"unlocked\",\"success\":true",
"OUTPUTSTAT": "Nuki_Status",
"sessionId": "",
"tmp1": "\"unlocked\"",
"httpUserAgent": "",
"tmp2": "0",
"url": "http:\/\/IPderBridge:8080\/lockState?nukiId=blablabla&token=jajaja",
"STDOUT": ""
}
macht:Stoni hat geschrieben: habe mal den Executor als Addon installiert, die Ausgabe Deines Scripts 0.4 sieht bei mir so aus:Code: Alles auswählen
"\"batteryCritical\":false,\"state\":3,\"stateName\":\"unlocked\",\"success\":true";
machtSchatn hat geschrieben:Code: Alles auswählen
"\"state\": 1, \"stateName\": \"locked\", \"batteryCritical\": false, \"success\": true";
Dir fällt etwas auf? Die Ausgabe ist mitnichten identisch.Stoni hat geschrieben:Eigentlich nicht, die Ausgabe ist identisch.alchy hat geschrieben: Fakt ist, er kriegt eine andere Rückgabe als du damals.
Alchy
Code: Alles auswählen
! Nuki Software Bridge Status auslesen by Alchy v 0.4 for Stoni
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-1&token-EIGENERTOKEN";
! +++++++++++++ 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(",",0).StrValueByIndex(":",1); ! battery
integer tmp2 = (srueck.StrValueByIndex(",",1).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");
}