Nuki Callback nutzen
Moderator: Co-Administratoren
- Jailbraik
- Beiträge: 429
- Registriert: 26.07.2013, 06:53
- Hat sich bedankt: 11 Mal
- Danksagung erhalten: 2 Mal
Re: Nuki Callback nutzen
Leider änder sich die SV nicht, wenn ich verschliesse oder öffne am Nuki...
NACHTRAG: habe den Fehler gefunden:
Musste alle Callback Einträge löschen und abfragen, dann neue ISE ID angelegt als Callback Adresse.
Jetzt wird der Status gesendent.
Jetzt habe ich das Problem, das ich nicht unterscheiden kann welcher meiner zwei Nuki Türschlosser offen oder zu ist.
Gibt es da einen Lösungsansatz?
Danke
NACHTRAG: habe den Fehler gefunden:
Musste alle Callback Einträge löschen und abfragen, dann neue ISE ID angelegt als Callback Adresse.
Jetzt wird der Status gesendent.
Jetzt habe ich das Problem, das ich nicht unterscheiden kann welcher meiner zwei Nuki Türschlosser offen oder zu ist.
Gibt es da einen Lösungsansatz?
Danke
@
Raspberry 4 / Home Assistant / 80 Aktoren /
Raspberry 4 / Home Assistant / 80 Aktoren /
-
- Beiträge: 176
- Registriert: 29.03.2011, 10:35
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 13 Mal
Re: Nuki Callback nutzen
Ich würde einfach ein ein neues Programm, eine neue Callback URL und neue Variablen für das zweite Schloss anlegen. Dann kannst Du ganz einfach in der CCU alles sehen und auch Verknüpfungen machen.
- Jailbraik
- Beiträge: 429
- Registriert: 26.07.2013, 06:53
- Hat sich bedankt: 11 Mal
- Danksagung erhalten: 2 Mal
Re: Nuki Callback nutzen
,, aber der gleiche TOKEN wird mir doch dann die selben sachen senden, wie der erste . Nur in eien andere SV.
Weiss nicht wie das unterschieden weden kann.
Weiss nicht wie das unterschieden weden kann.
@
Raspberry 4 / Home Assistant / 80 Aktoren /
Raspberry 4 / Home Assistant / 80 Aktoren /
Re: Nuki Callback nutzen
Hi, eine Lösung gefunden? Ich habe bei mir zwei bridge's da ist es einfacher wenn du die Antwort der web Adresse deiner Bridge postest kann ich mal schauen, ich denke man muss den Script umstellen da bei dir beide schlösser in einer bridge angezeigt werden.Jailbraik hat geschrieben: ↑30.10.2020, 20:47Leider änder sich die SV nicht, wenn ich verschliesse oder öffne am Nuki...
NACHTRAG: habe den Fehler gefunden:
Musste alle Callback Einträge löschen und abfragen, dann neue ISE ID angelegt als Callback Adresse.
Jetzt wird der Status gesendent.
Jetzt habe ich das Problem, das ich nicht unterscheiden kann welcher meiner zwei Nuki Türschlosser offen oder zu ist.
Gibt es da einen Lösungsansatz?
Danke
Grüsse
-
- Beiträge: 9
- Registriert: 03.12.2020, 08:59
- System: CCU und Access Point
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: Nuki Callback nutzen
VIELEN DANK für die Code-Schnipsel
Ich habe alles ein wenig erweitert und zusammengefasst:
Nicht meine Glanzleistung bei der Variablenbenennung, aber es tut
Die Lock-States sind direkt aus der API-Beschreibung von Nuki:
https://developer.nuki.io/page/nuki-bri ... ock-states
Ich hatte ein wenig Probleme mit dem Callback gesetzt bekommen über
Da kam ein "401 Authentifizierung"-Fehler
Ich habe dies geändert in:
Damit wird die Callback_Systemvariable erfolgreich geändert.
Ich habe alles ein wenig erweitert und zusammengefasst:
Code: Alles auswählen
string stdout;
string stderr;
integer anfang_state;
integer ende_state;
integer state;
integer anfang_battery;
integer ende_battery;
integer battery;
integer anfang_battery_crit;
integer ende_battery_crit;
integer battery_crit;
integer anfang_doorsensor;
integer ende_doorsensor;
integer doorsensor;
string url="http://1.2.3.4:8080/list?token=12345";
system.Exec("wget -q -O - " # url, &stdout, &stderr);
WriteLine(stdout);
! Türstatus abrufen
anfang_state=stdout.Find("state");
anfang_state=anfang_state+8;
ende_state=anfang_state+1;
state=stdout.Substr(anfang_state,1);
WriteLine(state);
dom.GetObject("Nuki_State").State(state);
! Batteriestatus abrufen
anfang_battery=stdout.Find("batteryChargeState");
anfang_battery=anfang_battery+21;
ende_battery=anfang_battery+1;
battery=stdout.Substr(anfang_battery,3);
WriteLine(battery);
dom.GetObject("Nuki_Batterie").State(battery);
! BatterieKritisch abrufen
anfang_battery_crit=stdout.Find("batteryCritical");
anfang_battery_crit=anfang_battery_crit+18;
ende_battery_crit=anfang_battery_crit+1;
battery_crit=stdout.Substr(anfang_battery_crit,5);
WriteLine(battery_crit);
dom.GetObject("Nuki_Batterie_Kritisch").State(battery_crit);
! Doorsensor abrufen
anfang_doorsensor=stdout.Find("doorsensorState");
anfang_doorsensor=anfang_doorsensor+18;
ende_doorsensor=anfang_doorsensor+1;
doorsensor=stdout.Substr(anfang_doorsensor,1);
WriteLine(doorsensor);
dom.GetObject("Nuki_Doorsensor").State(doorsensor);
! dekodieren der Lock States
if ( state == 0 ) {dom.GetObject("Nuki_StateName").State("uncalibrated") }
if ( state == 1 ) {dom.GetObject("Nuki_StateName").State("locked") }
if ( state == 2 ) {dom.GetObject("Nuki_StateName").State("unlocking") }
if ( state == 3 ) {dom.GetObject("Nuki_StateName").State("unlocked") }
if ( state == 4 ) {dom.GetObject("Nuki_StateName").State("locking") }
if ( state == 5 ) {dom.GetObject("Nuki_StateName").State("unlatched") }
if ( state == 6 ) {dom.GetObject("Nuki_StateName").State("unlocked (lock n go)") }
if ( state == 7 ) {dom.GetObject("Nuki_StateName").State("unlatching") }
if ( state == 254 ) {dom.GetObject("Nuki_StateName").State("motor blocked") }
if ( state == 255 ) {dom.GetObject("Nuki_StateName").State("undefined") }
! dekodieren der Doorsensor States
if ( doorsensor== 1 ) {dom.GetObject("Nuki_DoorsensorName").State("deactivated") }
if ( doorsensor== 2 ) {dom.GetObject("Nuki_DoorsensorName").State("door closed") }
if ( doorsensor== 3 ) {dom.GetObject("Nuki_DoorsensorName").State("door opened") }
if ( doorsensor== 4 ) {dom.GetObject("Nuki_DoorsensorName").State("door state unknown") }
if ( doorsensor== 5 ) {dom.GetObject("Nuki_DoorsensorName").State("calibrating") }
Die Lock-States sind direkt aus der API-Beschreibung von Nuki:
https://developer.nuki.io/page/nuki-bri ... ock-states
Ich hatte ein wenig Probleme mit dem Callback gesetzt bekommen über
Code: Alles auswählen
http://ip-deiner-ccu:8181/nuki.exe?sagt=(dom.GetObject(17705).State('tttop'))
Ich habe dies geändert in:
Code: Alles auswählen
http://ip-deiner-ccu/addons/xmlapi/statechange.cgi?ise_id=17705&new_value=tttop
-
- Beiträge: 11
- Registriert: 06.08.2017, 15:17
- Hat sich bedankt: 7 Mal
Re: Nuki Callback nutzen
Eine Frage dazu: Welcher Art sind die SV? (Zeichenkette/Zahl/bei Werteliste welche Werteinträge?)
-
- Beiträge: 11
- Registriert: 06.08.2017, 15:17
- Hat sich bedankt: 7 Mal
-
- Beiträge: 176
- Registriert: 29.03.2011, 10:35
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 13 Mal
Re: Nuki Callback nutzen
Mittlerweile habe ich einen Weg mit Redmatic gefunden, beschrieben hier
https://developer.nuki.io/t/node-red-re ... backs/8816
Das ist etwas geschickter, weil man nicht den Callback bekommt und dann Nuki abfragen muss, was denn passiert ist, sondern direkt die Daten bekommt. Lohnt sich aber nur, wenn man sowieso Redmatic nutzt.
https://developer.nuki.io/t/node-red-re ... backs/8816
Das ist etwas geschickter, weil man nicht den Callback bekommt und dann Nuki abfragen muss, was denn passiert ist, sondern direkt die Daten bekommt. Lohnt sich aber nur, wenn man sowieso Redmatic nutzt.