Curl auf Homematic ausführen, wie?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
Henke
Beiträge: 1536
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 309 Mal

Re: Curl auf Homematic ausführen, wie?

Beitrag von Henke » 21.07.2023, 20:19

Code: Alles auswählen

system.Exec("curl -m 3 -X PUT 'http://172.21.80.15/devices/5' --data '{\"name\":\"GOTO_POS_CMD\",\"value\": 50}'");

Benutzeravatar
strohi2000
Beiträge: 9
Registriert: 29.06.2020, 10:19
System: CCU
Wohnort: Korb

Re: Curl auf Homematic ausführen, wie?

Beitrag von strohi2000 » 01.11.2023, 21:51

Hallo, ich habe leider ein Update meines HomePilots auf v5.x gemacht und nun funktionieren die bisherigen Befehle nicht mehr. Bei der Suche bin ich auf diesen Post gefunden, der mir schon mal sehr weitergeholfen hat. Ich bräuchte aber nun noch einen ähnlichen Curl-Befehl, mit dem ich den Status der Rollläden auch auslesen kann. Kann mir dazu bitte jemand weiterhelfen. Vielen Dank vorab.
Grüße
strohi2000
strohi2000

HomeMatic mit CCU3, HUE, HomePilot ...

Benutzeravatar
Henke
Beiträge: 1536
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 309 Mal

Re: Curl auf Homematic ausführen, wie?

Beitrag von Henke » 01.11.2023, 21:58

Ganz einfach. Aufgrund des von dir genannten Gerätes x und der damit gefundenen Dokumentation der Schnittstelle y, steht auf Seite z, Zeile y der folgende Befehl zum Auslesen. Umgesetzt in curl:

Code: Alles auswählen

system.Exec("curl -m 3 -X PUT 'http://x.y.z.15/devices/y' --data '{\"Leider ist heute die Glaskugel kaput\":\"GOTO_POS_CMD\",\"value\": 50}'");

Benutzeravatar
strohi2000
Beiträge: 9
Registriert: 29.06.2020, 10:19
System: CCU
Wohnort: Korb

Re: Curl auf Homematic ausführen, wie?

Beitrag von strohi2000 » 01.11.2023, 22:24

Mag sein, dass ich zu blöd bin, den Humor zu verstehen, aber das Problem ist, dass ich zwar mit dem PUT-Befehl den Rollladen dort hinbekomme, wo ich ihn hinhaben will:
system.Exec("curl -m 3 -X PUT 'http://192.168.1.210/devices/1010000' --data '{\"name\":\"GOTO_POS_CMD\",\"value\": 65}'");

Da ich ihn aber manuell am Rollladen betätigen kann und das auch tue, frage ich zyklisch von der HomeMatic über den HomePilot die Position ab.
Dafür hatte ich bisher folgenden Script benutzt:
string stdout;
string stderr;
var RolloSysVar = dom.GetObject("Rollo.AZ.F");
system.Exec("wget -q -O - 'http://192.168.1.210/deviceajax.do?device=1010000'", &stdout, &stderr);
RolloSysVar.State(100-(stdout.Substr(stdout.Find("position")+10,3).ToInteger()));

Wie gesagt, dies funktioniert bei HomePilot ab v5.x nicht mehr und deshalb benötige ich den Curl-Script mit dem ich die Position abfragen kann.

Damit habe ich es bereits versucht:
string stdout;
string stderr;
var RolloSysVar = dom.GetObject("Rollo.AZ.F");
system.Exec("curl -m 3 -X GET 'http://192.168.1.210/devices/1010000'", &stdout, &stderr);
RolloSysVar.State(100-(stdout.Substr(stdout.Find("CURR_POS_CFG")+11,3).ToInteger()));

Leider erfolglos.

Wäre super, wenn mir da jemand weiterhelfen könnte.
Danke.
strohi2000

HomeMatic mit CCU3, HUE, HomePilot ...

Benutzeravatar
Henke
Beiträge: 1536
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 309 Mal

Re: Curl auf Homematic ausführen, wie?

Beitrag von Henke » 01.11.2023, 22:52

LINK: https://kapet.de/archives/118

Damit würde ich folgendes testen:

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("curl -m 3 -X GET 'http://192.168.1.210/v4/devices?devtype=Actuator", &stdout, &stderr);
WriteLine (stdout);

Benutzeravatar
strohi2000
Beiträge: 9
Registriert: 29.06.2020, 10:19
System: CCU
Wohnort: Korb

Re: Curl auf Homematic ausführen, wie?

Beitrag von strohi2000 » 01.11.2023, 23:13

Danke!.
Ich habe es durch Try and Error inzwischen auch herausgefunden und funktioniert prima.

string stdout;
string stderr;
var RolloSysVar = dom.GetObject("Rollo.AZ.F");
system.Exec("curl -m 3 \"http://192.168.1.210/v4/devices/1010000\"", &stdout, &stderr);
RolloSysVar.State(100-(stdout.Substr(stdout.Find("Position")+10,3).ToInteger()));

Gute Nacht.
strohi2000

HomeMatic mit CCU3, HUE, HomePilot ...

Antworten

Zurück zu „HomeMatic allgemein“