mdzio / ccu-jack

CCU-Jack bietet einen einfachen und sicheren REST- und MQTT-basierten Zugriff auf die Datenpunkte der Zentrale (CCU) des Hausautomations-Systems HomeMatic. Zudem können einfach Fremdgeräte an die CCU angebunden werden.
GNU General Public License v3.0
112 stars 11 forks source link

Lesen / Setzen einer Geräte- pzw. Kanalkonfiguration funktioniert nicht anhand der CURL Wiki Beispiele #168

Closed Baxxy13 closed 5 months ago

Baxxy13 commented 5 months ago

Da es heute Thema im Forum war wollte ich das lesen/setzen einer Geräte- pzw. Kanalkonfiguration über die REST-API mittels der CURL-Beispiel selbst mal ausprobieren.

Leider war ich komplett erfolglos und weiß jetzt nicht ob die Beispiele falsch sind, ich sie falsch interpretiere oder es ein generelles Problem gibt.

Lesen: https://github.com/mdzio/ccu-jack/wiki/CURL#lesen-einer-ger%C3%A4te--pzw-kanalkonfiguration Setzen: https://github.com/mdzio/ccu-jack/wiki/CURL#setzen-einer-ger%C3%A4te--pzw-kanalkonfiguration

Ausgeführt wurden die Befehle direkt auf der Konsole der Zentrale auf der auch der Jack läuft. (RaspberryMatic - VM auf Proxmox) Port 2121 ist in der Firewall freigegeben.

HM-Gerät: HM-ES-PMSw1-Pl

1.Lesen: Adresse: /device/LEQ1314446/1/$MASTER 5 Parameter: AES_ACTIVE / POWERUP_ACTION / STATUSINFO_MINDELAY / STATUSINFO_RANDOM_A / TRANSMIT_TRY_MAX Wiki-Beispiel: curl http://localhost:2121/device/NEQ0123456/1/$MASTER/~pv Mein Befehl:

# curl  http://localhost:2121/device/LEQ1314446/1/$MASTER/~pv
<a href="/device/LEQ1314446/1/~pv">Moved Permanently</a>.

2.Schreiben: Wiki-Beispiel: curl -X PUT -d '{"v":{"SOUND_ID":64}}' http://localhost:2121/device/NEQ0123456/1/$MASTER/~pv Mein Befehl: # curl -X PUT -d '{"v":{"STATUSINFO_MINDELAY":3.0}}' http://localhost:2121/device/LEQ1314446/1/$MASTER/~pv Keinerlei Ausgabe oder Reaktion.

HmIP-Gerät: HmIP-PCBS2

1.Lesen: Adresse: /device/00199A4992FB42/3/$MASTER 5 Parameter: EVENT_DELAY_UNIT / EVENT_DELAY_VALUE / EVENT_RANDOMTIME_UNIT / EVENT_RANDOMTIME_VALUE / LED_DISABLE_CHANNELSTATE

# curl  http://localhost:2121/device/00199A4992FB42/3/$MASTER/~pv
<a href="/device/00199A4992FB42/3/~pv">Moved Permanently</a>.

2.Schreiben: # curl -X PUT -d '{"v":{"EVENT_DELAY_VALUE":7}}' http://localhost:2121/device/00199A4992FB42/3/$MASTER/~pv Keinerlei Ausgabe oder Reaktion.

Zusammengefasst konnte ich weder bei HM noch bei HmIP ein MASTER-Paramset lesen oder einen MASTER-Parameter setzen. Im Log (testweise auf TRACE gestellt) konnte ich keine Fehlermeldungen sehen.

Als Ergänzung: Das Lesen und Setzen von Datenpunkten funktioniert problemlos.

1.Lesen # curl http://localhost:2121/device/LEQ1314446/1/STATE/~pv

{"ts":1705563608769,"v":false,"s":0}

2.Setzen # curl -X PUT -d '{"v":true}' http://localhost:2121/device/LEQ1314446/1/STATE/~pv Aktor schaltet.

Baxxy13 commented 5 months ago

Also es liegt irgendwie an den Linux-Befehlen. Hab das nun kurz von Windows aus ausprobiert, da geht alles. 1.Lesen: curl http://192.168.113.26:2121/device/LEQ1314446/1/$MASTER/~pv

{"ts":1705564921504,"v":{"AES_ACTIVE":false,"POWERUP_ACTION":0,"STATUSINFO_MINDELAY":2,"STATUSINFO_RANDOM_A":1,"TRANSMIT_TRY_MAX":6},"s":0}

2.Setzen: curl -X PUT -d "{""v"":{""STATUSINFO_MINDELAY"":7.0}}" http://192.168.113.26:2121/device/LEQ1314446/1/$MASTER/~pv

Gibt zwar keine Rückgabe, aber der Wert wird gesetzt.

mdzio commented 5 months ago

Das $-Zeichen macht anscheinend bei dem CURL von Linux probleme. Anscheinend abhängig von der Linux-Distribution. Es muss dann duch %24 ersetzt werden. Beispiel: curl -X PUT -d '{"v":{"LONG_PRESS_TIME":0.4}}' http://localhost:2121/device/000xxxxxxxxxxx/1/%24MASTER/~pv Das Wiki werde ich noch entsprechend abändern.

Baxxy13 commented 5 months ago

Sehr gut, Danke! Mit %24 anstatt $ funktioniert das nun bestens.

Dann mache ich mal zu.

Edit: Hab mir das nun nochmal angeguckt und eine "schönere Lösung" gefunden. Die URL in Single-Quotes verpacken.

curl -X PUT -d '{"v":{"STATUSINFO_MINDELAY":3.0}}' 'http://localhost:2121/device/LEQ1314446/1/$MASTER/~pv'

mdzio commented 5 months ago

Ich habe das Wiki entsprechend angepasst.