Nuki Callback nutzen
Moderator: Co-Administratoren
Re: Nuki Callback nutzen
das kann man auch ohne extra Software. die Komandos liegen weiter oben im Text. Die kopiere doch mal in den Browser....
-
- Beiträge: 649
- Registriert: 03.01.2017, 17:39
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 9 Mal
Re: Nuki Callback nutzen
Eine Frage. Meine CCU scheint immer mal wieder Probleme mit Scripten mit SystemExe zu haben.
Wie könnte ich das Programm umschreiben das die Cuxd den Befehl ausführt?
Wie könnte ich das Programm umschreiben das die Cuxd den Befehl ausführt?
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;
string url="http://192.168.1.94:8080/list?token=00000";
system.Exec("wget -q -O - " # url, &stdout, &stderr);
WriteLine(stdout);
state=stdout.Substr(anfang_state,1);
WriteLine(state);
dom.GetObject("Nuki_State").State(state);
! 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);
! 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") }
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge
-
- Beiträge: 649
- Registriert: 03.01.2017, 17:39
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 9 Mal
Re: Nuki Callback nutzen
Macht das keine ohne System.exe?
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge
-
- Beiträge: 649
- Registriert: 03.01.2017, 17:39
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 9 Mal
Re: Nuki Callback nutzen
Das Script läuft ja super, ich wollte nur gern weg von System.exe.
PI3+ mit RaspberryMatic; PI4 mit IOBroker; Samsung Tab A mit Mediola Visualisierung; Harmony Hub; Philips Hue; Drei IP Cams; Zwei Leseköpfe an den Stromzählern; Reedkontakt (Arduino) am Wasserzähler; Drucksensor (Arduino); CUL433 für Intertechno und Somfy RTS; Nuki Bridge
Re: Nuki Callback nutzen
Ich habe nun bemerkt, das das hier mit dem Callback seit dem Umstieg auf den Raspi nicht mehr funktioniert. Ja es hat sich die Nummer von der Variable "NukiCallback" geändert. Das habe ich korrigiert. Doch es geht imemrnoch nicht.
Ich habe es so wie im Original Probiert:
http://xxx.xxx.xxx.xxx:8080/callback/ad ... .exe?sagt=(dom.GetObject(3085).State('tttop'))&token=xxxxxx
und habe es auch mal so probiert:
http://xxx.xxx.xxx.xxx:8080/callback/ad ... %3Fsagt%3D(dom.GetObject(%27NukiCallback%27).State(%27tttop%27))&token=ua41c3
(das müsste doch auch gehen?)
rufe ich die Liste der Callbacks auf sieht es auch ok aus:
callbacks
0
id 0
url "http://xxx.xxx.xxx.xxxx:8181/nuki.exe?sagt=(dom.GetObject(3085).State('tttop'))"
1
id 1
url "http://xxx.xxx.xxx.xxx:8181/nuki.exe?sagt=(dom.GetObject('NukiCallback').State('tttop'))"
doch die Variable ändert nicht ihre Zeit.
Was ist hier los?
Ich habe es so wie im Original Probiert:
http://xxx.xxx.xxx.xxx:8080/callback/ad ... .exe?sagt=(dom.GetObject(3085).State('tttop'))&token=xxxxxx
und habe es auch mal so probiert:
http://xxx.xxx.xxx.xxx:8080/callback/ad ... %3Fsagt%3D(dom.GetObject(%27NukiCallback%27).State(%27tttop%27))&token=ua41c3
(das müsste doch auch gehen?)
rufe ich die Liste der Callbacks auf sieht es auch ok aus:
callbacks
0
id 0
url "http://xxx.xxx.xxx.xxxx:8181/nuki.exe?sagt=(dom.GetObject(3085).State('tttop'))"
1
id 1
url "http://xxx.xxx.xxx.xxx:8181/nuki.exe?sagt=(dom.GetObject('NukiCallback').State('tttop'))"
doch die Variable ändert nicht ihre Zeit.
Was ist hier los?
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Nuki Callback nutzen
Du sprichst die Geräte mit ihrer ID an. Die kann sich unter Umständen schon mal ändern. In einem statischen System eher nicht, wenn man auf ein anderes System umsteigen, kann das schon mal vorkommen. Du musst also die neue ID ermitteln oder eben die Geräte unter ihrem Namen ansprechen.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
Re: Nuki Callback nutzen
ja, das habe ich ja auch gemacht. Es geht jedoch nicht mehr. und mit Namen geht es aber auch nicht.Xel66 hat geschrieben: ↑26.03.2023, 21:44Du sprichst die Geräte mit ihrer ID an. Die kann sich unter Umständen schon mal ändern. In einem statischen System eher nicht, wenn man auf ein anderes System umsteigen, kann das schon mal vorkommen. Du musst also die neue ID ermitteln oder eben die Geräte unter ihrem Namen ansprechen.
Gruß Xel66
- Henke
- Beiträge: 1520
- Registriert: 27.06.2022, 20:51
- System: CCU
- Hat sich bedankt: 140 Mal
- Danksagung erhalten: 306 Mal
Re: Nuki Callback nutzen
Die Variable ist vom Typ Zeichenkette?
Was liefert der Browser unter <sagt>true</sagt> zurück?
Was liefert der Browser unter <sagt>true</sagt> zurück?
Re: Nuki Callback nutzen
Ja die Variable ist eine Zeichenkette. (es hatte ja auch alles auf der CCU2 noch funktioniert)
Wie soll ich das zwischen sagt ... aufrufen?
ich habe nur das: "http://xxx.xxx.xxx.xxx:8181/nuki.exe?sagt=(dom.GetObject('NukiCallback').State('tttop'))"
und das {"success": true} beim Anlegen
Wie soll ich das zwischen sagt ... aufrufen?
ich habe nur das: "http://xxx.xxx.xxx.xxx:8181/nuki.exe?sagt=(dom.GetObject('NukiCallback').State('tttop'))"
und das {"success": true} beim Anlegen