Nuki Callback nutzen

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Nuki Callback nutzen

Beitrag von WAdler 68 » 24.02.2023, 17:39

das kann man auch ohne extra Software. die Komandos liegen weiter oben im Text. Die kopiere doch mal in den Browser....

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: Nuki Callback nutzen

Beitrag von Chemieka » 02.03.2023, 21:13

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?

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

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: Nuki Callback nutzen

Beitrag von Chemieka » 03.03.2023, 13:33

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

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Nuki Callback nutzen

Beitrag von WAdler 68 » 04.03.2023, 14:29

Ich mache es mit der CL Software.

Chemieka
Beiträge: 649
Registriert: 03.01.2017, 17:39
Hat sich bedankt: 4 Mal
Danksagung erhalten: 9 Mal

Re: Nuki Callback nutzen

Beitrag von Chemieka » 04.03.2023, 17:55

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

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Nuki Callback nutzen

Beitrag von WAdler 68 » 26.03.2023, 20:45

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?

Xel66
Beiträge: 14145
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 582 Mal
Danksagung erhalten: 1497 Mal

Re: Nuki Callback nutzen

Beitrag von Xel66 » 26.03.2023, 21:44

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
-------------------------------------------------------------------------------------------
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

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Nuki Callback nutzen

Beitrag von WAdler 68 » 26.03.2023, 22:07

Xel66 hat geschrieben:
26.03.2023, 21:44
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
ja, das habe ich ja auch gemacht. Es geht jedoch nicht mehr. und mit Namen geht es aber auch nicht.

Benutzeravatar
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

Beitrag von Henke » 26.03.2023, 23:42

Die Variable ist vom Typ Zeichenkette?
Was liefert der Browser unter <sagt>true</sagt> zurück?

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Nuki Callback nutzen

Beitrag von WAdler 68 » 27.03.2023, 14:26

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

Antworten

Zurück zu „HomeMatic allgemein“