Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

HMIP Sender und Empfänger der Serie Homematic IP

Moderator: Co-Administratoren

frd030
Beiträge: 3573
Registriert: 14.07.2019, 20:49
System: CCU
Hat sich bedankt: 830 Mal
Danksagung erhalten: 532 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von frd030 » 09.07.2021, 23:24

Mat hat geschrieben:
09.07.2021, 21:36
Die Ventilfahrt wird meines Wissens auch in Stellung Manuell EIN einmal wöchentlich ausgeführt werden und diese Ventilfahrt ist bei mir natürlich auch aktiviert. Trotzdem war bei einem Heizkörper mit älterem Ventil dieses am Beginn der Heizphase jedes Jahr festgefressen. Als ich in der Bedienungsanleitung las, dass man die Ventile im Sommer ganz öffnen soll, wollte ich es mal damit versuchen.
Wenn ein Ventil schon so geschädigt ist, dass die wöchentliche Ventilfahrt nicht mehr hilft, dann hilft offenhalten vermutlich auch nicht mehr.
Das steht in der Anleitung, weil bei herkömmlichen mechanischen Thermostatköpfen eben niemand eine Ventilfahrt macht, schon gar nicht wöchentlich im Sommer. Dann ist offen lassen besser als geschlossen, das stimmt, aber das rettet m.E. keine alten schon zu stark korrodierten Ventile. Aber probiere es ruhig aus, schadet zumindest nicht, solange man die Ventilfahrt nicht abschaltet.

Gleiches Problem übrigens bei den Absperrventilen unter der Küchespüle, die auch keiner regelmässig auf- und zudreht. Die sind in der Regel immer offen! Bis man dann nach zwanzig Jahren mal die Spülmaschine tauschen möchte und versucht sie wieder zuzudrehen... auch daran sieht man, dass offenhalten auch kein Allheilmittel ist.

Mat
Beiträge: 63
Registriert: 19.10.2010, 17:25
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Mat » 10.07.2021, 10:06

Baxxy hat geschrieben:
09.07.2021, 22:02
Mat hat geschrieben:
09.07.2021, 21:36
Wenn man in den letzten beiden Zeilen channels.Get (kanalname) durch oCHANNEL ersetzt, funktioniert alles bei 7 meiner 9 Thermostate.
Hmm, bei meinem Testgerät (HmIP-STHD) ging das so sauber durch. oCHANNEL enthält den gleichen String wie kanalname.
Die Variable channels wird in dem Code nicht definiert. Deshalb hatten bei mir die letzten beiden Zeilen so nicht funktioniert.
Vermutlich ist der Code aus einem größeren Script herauskopiert.

Benutzeravatar
Baxxy
Beiträge: 10647
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Baxxy » 10.07.2021, 12:00

Mat hat geschrieben:
10.07.2021, 10:06
Die Variable channels wird in dem Code nicht definiert.
Ach bitte... es gibt nicht mal eine Scriptvariable "channels", deswegen muss da auch nix deklariert werden. :roll:
Mat hat geschrieben:
10.07.2021, 10:06
Vermutlich ist der Code aus einem größeren Script herauskopiert.
Falsch vermutet. :? Der Mittelteil wurde durch Black's SDV erstellt und nur eine Zeile von mir minimal angepasst damit der Kanalname nur in der ersten (von mir hinzugefügten) Scriptzeile eingetragen werden muss.
Die letzten beiden Zeilen sind auch von mir.

Habe das nun noch mit einer IP-Heizgruppe getestet, geht auch wunderbar.

Grüße
Baxxy

Mat
Beiträge: 63
Registriert: 19.10.2010, 17:25
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Mat » 10.07.2021, 12:55

Ja, channels scheint eine Abkürzung für dom.GetObject (ID_CHANNELS) zu sein.
Zumindest gibt
WriteLine(channels);
WriteLine(dom.GetObject (ID_CHANNELS));
beides mal Root channels aus.
Keine Ahnung, warum das bei mir so nicht funktioniert hat.

Ich bin nun froh, dass ich die Maximaltemperatur bei den HMIP-eTRV-2 setzen kann.
Leider funktioniert das Script aber bei meinen HomeMatic Heizkörperthermostaten HM-CC-RT-DN nicht.
Hierfür habe ich bisher auch keinerlei Beschreibung der Parameter gefunden, die keine Datenpunkte sind.

Benutzeravatar
Baxxy
Beiträge: 10647
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Baxxy » 10.07.2021, 13:56

Mat hat geschrieben:
10.07.2021, 12:55
Leider funktioniert das Script aber bei meinen HomeMatic Heizkörperthermostaten HM-CC-RT-DN nicht.
Das Prozedere mit HM Geräten ist ähnlich. Nur das hier die Parameter eben direkt im Gerät liegen und nicht innerhalb eines Kanals wie bei IP.
Ein bisschen das Script angepasst und dann läuft's. (Zumindest mit einem Wandthermostat, HM-Heizkörperthermostate habe ich nicht also ausprobieren)

Code: Alles auswählen

string geraet_name = "Klima BX Thermostat: HM-TC-IT-WM 080";
!- PutParamset Zuweisung vom SDV V4.07.01E LCL für Gerät: HM-TC-IT-WM-W-EU
string stdErr=""; string stdOut="";
string TCL="";
TCL= TCL # " {TEMPERATURE_MAXIMUM {double 30.5}}"; !- DatenTyp double beachten
object oDEVICE= dom.GetObject (ID_DEVICES).Get (geraet_name);
object oIFace= dom.GetObject (oDEVICE.Interface () );
string sTCL= ^puts [xmlrpc ^ #oIFace.InterfaceUrl()# ^/ putParamset [list string \"^#oDEVICE.Address()#^\"] [list string \"MASTER\"] [list struct \"^#TCL#^\"]]^;
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; " # sTCL # "\" |tclsh'",&stdOut,&stdErr);
dom.GetObject("BidCos-RF."# oDEVICE.Address()#":2.MANU_MODE").State(30.5, 5000); 
Grüße
Baxxy

Mat
Beiträge: 63
Registriert: 19.10.2010, 17:25
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Mat » 13.07.2021, 19:26

Danke Braxxy,
die Übertragung zu den Thermostaten und den Heizgruppen funktioniert jetzt so weit. :D
Ich kann jetzt zwei mal im Jahr bei Beginn und Ende der Heizphase das Script mit einer Schleife über die 9 HmIP-eTRV-2-Heizkörperthermostate, drei Heizgruppen und ein HM-CC-RT-DN Heizkörperthermostat ausführen, um den Maximalwert auf 30,5°C oder 24°C und den Sollwert auf manuell 30,5°C oder Auto zu stellen. Nur die alten HM-CC-TC sind nicht enthalten, haben keinen einstellbaren Maximalwert und können nur bis 30,0°C geöffnet werden, ohne dass dies einem Sonderverhalten entspräche. Da muss ich noch prüfen, ob sie bei Fensteröffnung schließen, was ja dem Batteriespargedanken widerspricht.
Manchmal sind allerdings mehrere Aufrufe des Skripts notwendig, weil manche Geräte das Setzen des Sollwerts trotz Verzögerung nicht mitbekommen. Das Setzen des Maximalwerts funktioniert aber problemlos.

flehmann36
Beiträge: 7
Registriert: 08.02.2018, 17:01
Hat sich bedankt: 1 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von flehmann36 » 16.09.2022, 12:34

Hallo,

ich habe genau das gleiche Problem und würde gern bei allen Thermostaten die ich habe die Maximale Temperatur einstellen wollen.

Bei einem Thermostaten hat es schon funktioniert:

Code: Alles auswählen

string kanalname = "HmIP-STHD_Test_Kanal1"; !- Kanalname von Kanal:1 des Thermostates oder der IP-Heizgruppe eintragen
!------------------------------------------------------------------
!- PutParamset Zuweisung vom SDV V4.07.03A LCL für Gerät: HmIP-STHD
string stdErr=""; string stdOut=""; string TCL="";
TCL= TCL # " {TEMPERATURE_MAXIMUM {double 30.5}}"; !- DatenTyp Double beachten, Wertebereich: 15.000000 ... 30.500000
object oCHANNEL= dom.GetObject (ID_CHANNELS).Get (kanalname);
object oIFace= dom.GetObject (oCHANNEL.Interface () );
string sTCL= ^puts [xmlrpc ^ #oIFace.InterfaceUrl()# ^/ putParamset [list string \"^#oCHANNEL.Address()#^\"] [list string \"MASTER\"] [list struct \"^#TCL#^\"]]^;
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; " # sTCL # "\" |tclsh'",&stdOut,&stdErr);


Ohne zu wissen wie das Thermostat heißt, hat jemand hier eine Lösung?

Danke vielmals!

Mat
Beiträge: 63
Registriert: 19.10.2010, 17:25
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Mat » 16.09.2022, 20:46

Ich verwende folgendes Script für die Einstellung der Maximaltemperatur der HmIP-Heizkörperthermostate:

Code: Alles auswählen

string sTemp = "30.5"; ! Im Sommer Ventile ganz öffnen
!string sTemp = "24.0"; ! Im Winter Maximaltemperatur auf 24°C setzen
string s_device;
object o_device;
string s_channel;
object o_channel;
foreach(s_device, dom.GetObject(ID_DEVICES).EnumUsedIDs()) {
  var o_device = dom.GetObject(s_device);
  if ((o_device.Address() != "BidCoS-Wir") && (o_device.Address() != "BidCoS-RF")) {
    if (o_device.HssType() == "HmIP-eTRV-2") { ! HmIP Heizkörperthermostat
      foreach(s_channel, o_device.Channels().EnumUsedIDs()) {
        o_channel = dom.GetObject(s_channel);
        string sChannelName = o_channel.Name();
        if (sChannelName.Substr(sChannelName.Length()-2,2) == ":1") {
          ! WriteLine(sChannelName);
          string kanalname = sChannelName; ! Kanalname von Kanal:1 des Thermostates eintragen
          string stdErr=""; string stdOut=""; string TCL="";
          TCL= TCL # " {TEMPERATURE_MAXIMUM {double "#sTemp#"}}"; !- DatenTyp Double beachten, Wertebereich: 15.000000 ... 30.500000
          object oCHANNEL= dom.GetObject (ID_CHANNELS).Get (kanalname);
          object oIFace= dom.GetObject (oCHANNEL.Interface () );
          string sTCL= ^puts [xmlrpc ^ #oIFace.InterfaceUrl()# ^/ putParamset [list string \"^#oCHANNEL.Address()#^\"] [list string \"MASTER\"] [list struct \"^#TCL#^\"]]^;
          system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; " # sTCL # "\" |tclsh'",&stdOut,&stdErr);
		  if (sTemp == "30.5") {
            oCHANNEL.DPByHssDP ("CONTROL_MODE").State(1, 5000); !- stellt das Thermostat nach 5s auf MANU
            oCHANNEL.DPByHssDP ("SET_POINT_TEMPERATURE").State(30.5, 10000); !- setzt den Sollwert nach 10s auf 30.5 also EIN
          } else {
            oCHANNEL.DPByHssDP ("CONTROL_MODE").State(0, 5000); !- stellt das Thermostat nach 5s auf AUTO
          }
        }
      }
    }
  }
}
Zusätzlich stelle ich noch die Maximaltemperatur der Heizgruppen ein.
HmIP-STHD ist ja eigentlich nur ein Temperatur- und Luftfeuchtigkeitssensor.
Damit habe ich keine Erfahrung.
Sollwert und vermutlich auch Maximaltemperatur stellt man aber beim Heizkörperthermostat ein, der den Istwert des Sensors für die Regelung verwendet.

Matsch
Beiträge: 5359
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 113 Mal
Danksagung erhalten: 722 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von Matsch » 17.09.2022, 10:54

Mat hat geschrieben:
16.09.2022, 20:46
HmIP-STHD ist ja eigentlich nur ein Temperatur- und Luftfeuchtigkeitssensor.
Laut Werksbezeichnung ja, aber in Wirklichkeit ein vollwertiger Wandthermostat.

flehmann36
Beiträge: 7
Registriert: 08.02.2018, 17:01
Hat sich bedankt: 1 Mal

Re: Maximale Temperatur bei HMIP-eTRV-2 über Script einstellen

Beitrag von flehmann36 » 21.09.2022, 08:27

Hallo Mat,

tausend Dank für Deine Antwort, es hat auf Anhieb funktioniert!!! :D :D :D

Jetzt habe ich nur noch ein klitzekleines Problem, (ich bin wirklich ein absoluter Script Neuling).
Zum Teil habe ich 60+ Thermostate in einem Haus und die CCU3 rödelt nach dem Script ne ganze Zeit bis ich diese wieder nutzen kann.
Ich bin mir nicht sicher ob das Script wirklich bis zum Ende durchläuft und alle Thermostate erfasst.

Ich würde gern über zweites Script nur mit einem kleinen "Echo" den Kanalnamen und den Max Wert alle Thermostate ausgeben lassen.

Den Aufbau des Scriptes verstehe ich, nur ein GET TEMPERATURE_MAXIMUM bekomme ich absolut nicht hin

Es wäre super, super nett wenn du da nochmal einen kurze Zeile(n) einfügen könntest...???? :D :D :D

Danke

Fabian

Antworten

Zurück zu „HomeMatic IP Aktoren und Sensoren“