HTTPMOD Sollwerte an Heizungsteuerung schicken

Begonnen von herry, 20 Oktober 2015, 23:30:50

Vorheriges Thema - Nächstes Thema

herry

Hallo

ich möchte gerne per HTTPMOD die Soll-Temperaturen meiner Roth Touchline Fußbodenheizungsreglung vorgeben.


Im Browser kann ich die Solltemperatur des Raums G1 z.B wie folgt vorgeben

http://192.168.1xx.xx/cgi-bin/writeVal.cgi?G1.SollTemp=1800

Nun versuche ich das per FHEM mittels HTTMOD und dem SET Befehl.


define Raumtemperaturen_EG_Set HTTPMOD http://192.1xx.1xx.32/cgi-bin/writeVal.cgi
attr Raumtemperaturen_EG_Set userattr set01Data set01Name set01URL
attr Raumtemperaturen_EG_Set set01Data {"set" :{"G1.SollTemp" :"$val" }}
attr Raumtemperaturen_EG_Set set01Name G1.SollTemp
attr Raumtemperaturen_EG_Set set01URL http://192.168.178.32/cgi-bin/writeVal.cgi?sid=$sid

Leider wird so der Sollwert nicht übergeben und im logfile bekomme ich folgendes Ergebnis.


LOGFILE

2015.10.20 23:06:03 3: Raumtemperaturen_EG_Set: Read callback: request type was Set01,
header: HTTP/1.1 200 OK
Server: Keil-EWEB/2.1
Content-Type: text/html
Cache-Control: no-cache
Connection: close, buffer empty,
Error read from http://192.168.1xx.xx:80 timed out


Was mache ich hier falsch?


Vielen Dank im Voraus

Herry



StefanStrobel

Hallo Herry,

Deine Konfiguration passt überhaupt nicht zu dem Request, mit dem es im Browser funktioniert.
Statt einem einfachen GET mit dem Wert als URL-Parameter hast Du einen Post konfiguriert, bei dem nicht der Wert sondern eine Session ID in der URL steht. Den Wert übergibst Du dann in POST Daten.

Ich würde setData weglassen und setURL entsprechend dem funktionierenden Request aufbauen.

Gruß
     Stefan

herry

Hi Stefan,

Vielen Dank für deine Hilfe.  Nun funktioniert es und der Wert (2000 entspricht 20.00°C) wird an das Gerät übergeben.


define Raumtemperaturen_EG_Set HTTPMOD http://192.168.1xx.xx/cgi-bin/writeVal.cgi
attr Raumtemperaturen_EG_Set userattr set01Data set01Name set01URL
attr Raumtemperaturen_EG_Set set01Name Temperatur
attr Raumtemperaturen_EG_Set set01URL http://192.168.1xx.xx/cgi-bin/writeVal.cgi?G1.SollTemp=2000

Mal noch eine blöde Anfängerfrage, ich will den Wert ja nicht fix in der URL haben.
Wie übergebe ich den jetzt ohne "set01Data" den Wert als Variable an die URL?

Also müsste ich doch irgendwie

set "Temperaturwert" = $Meine_Temperatur
attr Raumtemperaturen_EG_Set set01URL http://192.168.1xx.xx/cgi-bin/writeVal.cgi?G1.SollTemp=$Meine_Temperatur


Nochmal Danke

StefanStrobel

Hallo,

Einfach $val statt der 2000

Gruß
    Stefan

herry