beschäftige mich gerade intensiver damit meine UVR1611 in fhem zu kontrollieren, soweit funktioniert auch schon sehr viel.
ich hänge momentan dabei sollwerte für diverse temperaturen auf die UVR zu übergeben und habe folgendes konstrukt:
define Heizung_FBHNeubauSollAbsenk dummy
attr Heizung_FBHNeubauSollAbsenk alias FBH Neubau Absenktemperatur
attr Heizung_FBHNeubauSollAbsenk group Heizung
attr Heizung_FBHNeubauSollAbsenk room Spielwiese
attr Heizung_FBHNeubauSollAbsenk setList state:slider,10,1,22
attr Heizung_FBHNeubauSollAbsenk sortby 5
attr Heizung_FBHNeubauSollAbsenk webCmd state
define n_Heizung_FBHNeubauSollAbsenk notify Heizung_FBHNeubauSollAbsenk:.* {GetFileFromURL('http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto={ReadingsVal("Heizung_FBHNeubauSollAbsenk", "state", 0)}', , , , 5)}
also dummy mit slider erzeugt und im notify soll via httputils der aktuelle state auf die steuerung geschrieben werden, allerdings klappt bei der übergabe irgendwas nicht und das beschäftigt mich jetzt schon den ganze nachmittag ;)
deshalb die bitte, ob hier wer auf die schnelle erkennen kann wo der hase im pfeffer sitzt
die steuerung wird mittels
http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=
gefolgt mit dem gewünschten temperaturwert nach dem = zeichen beschrieben
niemand? :(
ich komm hier immer noch nicht weiter...
Zitat von: fl_Indigo am 04 Januar 2017, 18:10:19
allerdings klappt bei der übergabe irgendwas nicht
Wenn irgendwas nicht klappt, dann muss man das irgendwie ändern ;)
Statt des GetFileFromURL(...) Aufrufs 'Log 1, ...' verwenden und ins Log schauen was irgendwie nicht funktioniert.
danke für die aufschlussreiche antwort, ich hab weiter gespielt:
define n_Heizung_FBHNeubauSollAbsenk notify Heizung_FBHNeubauSollAbsenk:.* {my $sliderwert = ReadingsVal("Heizung_FBHNeubauSollAbsenk","state", 0);; fhem (GetFileFromURL('http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=$sliderwert', , , , 5));;}
aber ich komme immer noch auf keinen grünen zweig, zum verzweifeln
das log sagt nach verändern des sliders folgendes:
2017.01.07 15:34:04 5: Triggering n_Heizung_FBHNeubauSollAbsenk
2017.01.07 15:34:04 4: n_Heizung_FBHNeubauSollAbsenk exec {my $sliderwert = ReadingsVal("Heizung_FBHNeubauSollAbsenk","state","");; fhem (GetFileFromURL('http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=$sliderwert', , , , 5));;}
2017.01.07 15:34:04 5: Cmd: >{my $sliderwert = ReadingsVal("Heizung_FBHNeubauSollAbsenk","state",""); fhem (GetFileFromURL('http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=$sliderwert', , , , 5));}<
2017.01.07 15:34:04 4: HttpUtils url=http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=$sliderwert
2017.01.07 15:34:06 4: http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=$sliderwert: HTTP response code 200
2017.01.07 15:34:06 4: HttpUtils http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto=$sliderwert: Got data, length: 3
2017.01.07 15:34:06 5: Cmd: >OK
<
2017.01.07 15:34:06 3: OK
: Unknown command OK
, try help.
2017.01.07 15:34:06 3: n_Heizung_FBHNeubauSollAbsenk return value: Unknown command OK
, try help.
2017.01.07 15:34:06 4: name: /fhem?cmd=set%20Heizung_FBHNeubauSollAbsenk%2016&XHR=1&fw_id=216 / RL:20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
warum wird $sliderwert nicht durch den tatsächlichen wert ersetzt im aufruf?
Weil in perl innerhalb einfacher Hochkommata nicht ersetzt wird. Also im Aufruf entweder doppelte Hochkommata oder Stringconcatenation (die Sache mit dem Punkt) verwenden.
Gruß
Hans
danke für den hinweis :)
damit gehts jetzt:
define n_Heizung_FBHNeubauSollAbsenk notify Heizung_FBHNeubauSollAbsenk:.* {my $sliderwert = ReadingsVal("Heizung_FBHNeubauSollAbsenk","state","");; fhem (GetFileFromURL('http://xxx:yyy@10.0.0.249/change.cgi?changeadr=01B007300D&changeto='.$sliderwert, , , , 5));;}