Nuki Callback nutzen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
Jailbraik
Beiträge: 429
Registriert: 26.07.2013, 06:53
Hat sich bedankt: 11 Mal
Danksagung erhalten: 2 Mal

Re: Nuki Callback nutzen

Beitrag von Jailbraik » 30.10.2020, 20:47

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
Dateianhänge
Nuki.jpg
@
Raspberry 4 / Home Assistant / 80 Aktoren /

ueffchen
Beiträge: 176
Registriert: 29.03.2011, 10:35
Hat sich bedankt: 4 Mal
Danksagung erhalten: 13 Mal

Re: Nuki Callback nutzen

Beitrag von ueffchen » 03.11.2020, 09:12

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.

Benutzeravatar
Jailbraik
Beiträge: 429
Registriert: 26.07.2013, 06:53
Hat sich bedankt: 11 Mal
Danksagung erhalten: 2 Mal

Re: Nuki Callback nutzen

Beitrag von Jailbraik » 03.11.2020, 22:03

,, 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.
@
Raspberry 4 / Home Assistant / 80 Aktoren /

ueffchen
Beiträge: 176
Registriert: 29.03.2011, 10:35
Hat sich bedankt: 4 Mal
Danksagung erhalten: 13 Mal

Re: Nuki Callback nutzen

Beitrag von ueffchen » 03.11.2020, 22:25

Der Token ist dich spezifisch für jedes Nuki, oder nicht?
Oder meinst Du den Wert in der Variablen?

Mikeldk
Beiträge: 157
Registriert: 24.03.2016, 10:25
Danksagung erhalten: 3 Mal

Re: Nuki Callback nutzen

Beitrag von Mikeldk » 23.11.2020, 20:06

Jailbraik hat geschrieben:
30.10.2020, 20:47
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
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.

Grüsse

kalanthes
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

Beitrag von kalanthes » 03.12.2020, 09:04

VIELEN DANK für die Code-Schnipsel

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") }
Nicht meine Glanzleistung bei der Variablenbenennung, aber es tut :D

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'))
Da kam ein "401 Authentifizierung"-Fehler
Ich habe dies geändert in:

Code: Alles auswählen

http://ip-deiner-ccu/addons/xmlapi/statechange.cgi?ise_id=17705&new_value=tttop
Damit wird die Callback_Systemvariable erfolgreich geändert.
Dateianhänge
SV.jpg

thomas.flaechsig.allianz
Beiträge: 11
Registriert: 06.08.2017, 15:17
Hat sich bedankt: 7 Mal

Re: Nuki Callback nutzen

Beitrag von thomas.flaechsig.allianz » 02.01.2021, 17:59

Eine Frage dazu: Welcher Art sind die SV? (Zeichenkette/Zahl/bei Werteliste welche Werteinträge?)

kalanthes
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

Beitrag von kalanthes » 08.01.2021, 08:48

hier sind die SV-Einträge:
SV.jpg

thomas.flaechsig.allianz
Beiträge: 11
Registriert: 06.08.2017, 15:17
Hat sich bedankt: 7 Mal

Re: Nuki Callback nutzen

Beitrag von thomas.flaechsig.allianz » 08.01.2021, 08:52

kalanthes hat geschrieben:
08.01.2021, 08:48
hier sind die SV-Einträge:
SV.jpg

Dankeschön - Läuft jetzt :roll:

ueffchen
Beiträge: 176
Registriert: 29.03.2011, 10:35
Hat sich bedankt: 4 Mal
Danksagung erhalten: 13 Mal

Re: Nuki Callback nutzen

Beitrag von ueffchen » 12.01.2021, 11:07

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.

Antworten

Zurück zu „HomeMatic allgemein“