Moin,
ich möchte gerne die IST-Temperatur von 3 Wandthermostaten (HM-TC-IT-WM-W-EU)
per HTTP an meine Brötje Heizung senden. Es soll eine Durchschnittstemperatur der
3 Thermostate gebildet werden und alle 15 Minuten gesetzt werden.
Der HTTP Befehl lautet: http://<IP-Adresse>/I10000=<Durchschnittstemperatur>
Über die Suchfunktion konnte ich leider nichts finden. Hat jemand eine Idee ?
Gruss
Jan
Raumtemperatur per http in Heizungszentrale setzen
Moderator: Co-Administratoren
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Raumtemperatur per http in Heizungszentrale setzen
Ich habe auch eine Brötje, jedoch aktuell ohne Lan Zugang.
Wie ist deine Brötje mit dem Lan verbunden?
Ich hab mal schnell was zusammen gebastelt, das Skript prüft so aber noch nicht, ob es den Datenpunkt gibt, oder ob ein Wert eingetragen ist etc...
daher kann das zu Fehlern führen, wenn z.B. der Aktor falsch benannt wurde:
Ich hätte es gerne noch getestet, aber ich habe keine Wandthermostate..
Edit 10.10.18: Korrektur - siehe Hinweise von Alchy
Wie ist deine Brötje mit dem Lan verbunden?
Ich hab mal schnell was zusammen gebastelt, das Skript prüft so aber noch nicht, ob es den Datenpunkt gibt, oder ob ein Wert eingetragen ist etc...
daher kann das zu Fehlern führen, wenn z.B. der Aktor falsch benannt wurde:
Code: Alles auswählen
string NameAktor1 = "Name1"; !hier Namen des Wandthermostat 1 eintragen
string NameAktor2 = "Name2"; !hier Namen des Wandthermostat 2 eintragen
string NameAktor3 = "Name3"; !hier Namen des Wandthermostat 3 eintragen
integer Temperatur1= dom.GetObject(ID_CHANNELS).Get(NameAktor1 #":1").DPByHssDP("TEMPERATURE").Value();
integer Temperatur2= dom.GetObject(ID_CHANNELS).Get(NameAktor2 #":1").DPByHssDP("TEMPERATURE").Value();
integer Temperatur3= dom.GetObject(ID_CHANNELS).Get(NameAktor3 #":1").DPByHssDP("TEMPERATURE").Value();
real dTemp = ((Temperatur1 + Temperatur2 + Temperatur3) / 3);
var url = "http://192.168.x.y/I10000=" # dTemp.ToString();
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - '"#url#"'");
Edit 10.10.18: Korrektur - siehe Hinweise von Alchy
Zuletzt geändert von Bratmaxe am 10.10.2018, 10:53, insgesamt 3-mal geändert.
Gruß Carsten
Re: Raumtemperatur per http in Heizungszentrale setzen
Moin,
vielen Dank, werde ich heute abend mal ausprobieren.
Meine Brötje habe ich mit BSB-LAN angeschlossen. Das funktioniert sehr gut:
viewtopic.php?f=47&t=33564&start=10
https://github.com/fredlcore/bsb_lan
https://forum.fhem.de/index.php?topic=29762.0
Gruss
Jan
vielen Dank, werde ich heute abend mal ausprobieren.
Meine Brötje habe ich mit BSB-LAN angeschlossen. Das funktioniert sehr gut:
viewtopic.php?f=47&t=33564&start=10
https://github.com/fredlcore/bsb_lan
https://forum.fhem.de/index.php?topic=29762.0
Gruss
Jan
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Raumtemperatur per http in Heizungszentrale setzen
Bitte nur als Hinweis ansehen:
Bei den Temperaturwerten der Wandthermostate handelt es sich um real Werte.
Das .ToFloat() bei der Berechnung von dTemp ist überflüssig.
dTemp.ToString() soll was bewirken?
Der korrekte CUxD Datenpunkt beim Senden der Daten per wget wäre CMD_EXEC
Alchy
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
-
- Beiträge: 1573
- Registriert: 28.05.2015, 12:48
- Wohnort: Willich
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 10 Mal
Re: Raumtemperatur per http in Heizungszentrale setzen
Hallo Alchy,
Danke für deine Hinweise/Kritik.
Das .ToString() habe ich eingeführt, da man mit dem # Strings zusammenführen kann. Daher habe ich vorher einen Steing daraus gemacht. Es mag sein, das der Kompiler das automatisch erledigt, dachte das wäre so "sauberer".
Gruß Carsten
Danke für deine Hinweise/Kritik.
Das .ToString() habe ich eingeführt, da man mit dem # Strings zusammenführen kann. Daher habe ich vorher einen Steing daraus gemacht. Es mag sein, das der Kompiler das automatisch erledigt, dachte das wäre so "sauberer".
Gruß Carsten
Gruß Carsten