[HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Henke » 14.12.2022, 13:24

Meine Frage dabei ist, wann soll die Heizung überhaupt angeschaltet werden?
Wenn ein Ventil offen ist? Getestet, schlecht.
Wenn ein Ventil mehr als 10% offen ist? Getestet, schlecht.
Wenn der Durchschnitt über alle Ventile > 14% ist? Läuft so bei mir, die 14% habe ich kontinuierlich angepasst.

Wenn, wie Xel66 sagt, die Werte alle 3 Minuten kommen, ist der Neustart vollkommen egal. Da muss dann eher darauf geachtet werden, das die Heizung nicht häufig an/aus geschaltet wird. Entweder über einen Timer oder über Grenzwerte, wie an bei > 14%, aus bei < 10%.

sct
Beiträge: 139
Registriert: 02.03.2016, 15:12
Hat sich bedankt: 1 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von sct » 14.12.2022, 13:38

Henke hat geschrieben:
14.12.2022, 13:24
Meine Frage dabei ist, wann soll die Heizung überhaupt angeschaltet werden?
Wenn ein Ventil offen ist? Getestet, schlecht.
Wenn ein Ventil mehr als 10% offen ist? Getestet, schlecht.
Wenn der Durchschnitt über alle Ventile > 14% ist? Läuft so bei mir, die 14% habe ich kontinuierlich angepasst.
Momentan bei mir 'Wenn ein Ventil mehr als 15% offen ist'. Das haut eigentlich hin soweit. Bei Durchschnittsberechnungen und auch schon bei Summen geht es ja dann auch nur noch über ein Script denn leider bietet die WebUI Oberfläche keine Berechnungen.
Henke hat geschrieben:
14.12.2022, 13:24
Wenn, wie Xel66 sagt, die Werte alle 3 Minuten kommen, ist der Neustart vollkommen egal. Da muss dann eher darauf geachtet werden, das die Heizung nicht häufig an/aus geschaltet wird. Entweder über einen Timer oder über Grenzwerte, wie an bei > 14%, aus bei < 10%.
Ja klar, mit Hysterese natürlich. Das mit der Summenbildung wäre natürlich am besten aber ich kann leider diese Scriptsprache gar nicht.

Ciao
sct

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Henke » 14.12.2022, 14:27

sct hat geschrieben:
14.12.2022, 13:38
Das mit der Summenbildung wäre natürlich am besten aber ich kann leider diese Scriptsprache gar nicht.
Das ist ein Problem... 8)

1. Gewerk anlegen mit allen Thermostaten Name: "Heizkörper"
2. Programm anlegen, das das folgende Script alle, was weiß ich, 5 Minuten triggert.

Code: Alles auswählen

! Script Durchschnitt LEVEL Stellmotoren und Alarm bei Fehlern
! Copyleft M. Henke
string sListe = "Heizung.Ventile.Stellmotoren";
string sAlarmStell = "Stellmotoren Alarm";
string sSysVar_StellSchnitt= "Stellmotoren Durchschnitt";

! ------------- ab hier am besten Finger weg :-)

boolean bDebug=false;

integer iAnz = 0;
integer iAnzErr = 0;
real rLevelSum = 0.0;

  object oListe = dom.GetObject(sListe);
  if (!oListe) { WriteLine( "Gewerk: " # sListe # " nicht vorhanden." ); quit;}

    string sItemId;
    foreach(sItemId, oListe.EnumUsedIDs())
    {
      object oItem = dom.GetObject(sItemId);
      if (oItem.IsTypeOf(OT_CHANNEL))
      {
        object oDevice = dom.GetObject(oItem.Device());
         var hssType = oDevice.HssType();
!        WriteLine (hssType );

		if ( hssType == "HM-CC-RT-DN" )
        {
         real level = (oItem.DPByHssDP("VALVE_STATE").Value() * 1.0 );
        object oDp_valve_state =  oItem.DPByHssDP("FAULT_REPORTING");
        integer iErr = 0;
         }
         else
         {
         real level = (oItem.DPByHssDP("LEVEL").Value() * 100.0);
        object oDp_valve_state =  oItem.DPByHssDP("VALVE_STATE");
        integer iErr = 4;
         }
        rLevelSum = rLevelSum + level;
        iAnz = iAnz + 1;

       if ( bDebug ) {WriteLine(sItemId #" " #oDevice.Name() #": "# level.ToString(1) #" % geöffnet");}

        integer iState = oDp_valve_state.Value();
        if (iState > iErr)
        {
        	iAnzErr = iAnzErr + 1;
        	string valve_state = oDp_valve_state.ValueList().StrValueByIndex(";",iState);
	   	    WriteLine(sItemId #" " #oDevice.Name() #": "#iState #" " #valve_state);
        }

      }
  }

object oAlarm = dom.GetObject (ID_SYSTEM_VARIABLES).Get (sAlarmStell);
if (!oAlarm) {
  object svObj = dom.CreateObject(OT_ALARMDP,sAlarmStell);
  svObj.DPInfo("Alarm, wenn Stellmotor Probleme meldet");
  svObj.ValueUnit(""); !- Einheit der Systemvariablen
  dom.GetObject (ID_SYSTEM_VARIABLES).Add(svObj);
  svObj.ValueType(ivtBinary);
  svObj.ValueSubType(istAlarm);
  svObj.ValueName0("nicht ausgelöst"); !- Text der bei Zustand false angezeigt wird
  svObj.ValueName1("ausgelöst"); !-Text der bei Zustand wahr angezeigt wird
  dom.RTUpdate(0); !- Am Ende aller Initialisierungen
  oAlarm = svObj;
}

if ( iAnzErr > 0 ) {oAlarm.State( true); }
  if ( iAnz == 0 ) { quit;}

real rSchnitt =  ((1.0 * rLevelSum)/iAnz).Round(1);
if(bDebug) {WriteLine("Anzahl: " # iAnz # " Summe: " # rLevelSum # " Schnitt: " # rSchnitt.ToString(1) );}

object oVeSchnitt = dom.GetObject (ID_SYSTEM_VARIABLES).Get (sSysVar_StellSchnitt);
if (!oVeSchnitt) {
  object svObj = dom.CreateObject(OT_VARDP,sSysVar_StellSchnitt);
  svObj.DPInfo("Durchschnitt LEVEL");
  svObj.ValueUnit(""); !- Einheit der Systemvariablen
  dom.GetObject (ID_SYSTEM_VARIABLES).Add(svObj);
  svObj.ValueType(ivtFloat);
  svObj.ValueSubType(istGeneric);
  svObj.ValueMin(-100); !- Minimalbereich der Systemvariablen
  svObj.ValueMax(100); !- Maximalbereich der Systemvariablen
  svObj.State (0); !- Zustand der Sysvar nach dem Anlegen
  dom.RTUpdate(0); !- Am Ende aller Initialisierungen
  oVeSchnitt = svObj;
}
oVeSchnitt.State(rSchnitt);
3. Variable "Stellmotoren Durchschnitt" im Programm auswerten.

Da ich schon mal dabei war, checkt das Script auch gleich ob ein Fehler bei den Stellmotoren aufgetreten ist und setzt dann einen entsprechenden Alarm.

Die 3 Variablen kannst du nach Wunsch anpassen.

LG
Michael

Edit: An HM-CC-RT-DN angepasst.
Zuletzt geändert von Henke am 14.12.2022, 19:14, insgesamt 2-mal geändert.

sct
Beiträge: 139
Registriert: 02.03.2016, 15:12
Hat sich bedankt: 1 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von sct » 14.12.2022, 14:47

Henke hat geschrieben:
14.12.2022, 14:27
sct hat geschrieben:
14.12.2022, 13:38
Das mit der Summenbildung wäre natürlich am besten aber ich kann leider diese Scriptsprache gar nicht.
:
3. Variable "Stellmotoren Durchschnitt" im Programm auswerten.
:
LG
Michael
Ah Cool, Dankesehr. Eine Frage aber noch bitte: Muß ich dazu die Variablen "Stellmotoren Durchschnitt" und "Stellmotoren Alarm" vorher noch anlegen?
Ich denke ja, stimmts? Also "Stellmotoren Durchschnitt" ist dann wohl ein numerischer Wert und "Stellmotoren Alarm" wohl ein boolscher. Entschuldige, ich verstehe diese Scriptsprache leider gar nicht.

Ciao
sct


Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Xel66 » 14.12.2022, 15:45

Henke hat geschrieben:
14.12.2022, 13:24
Wenn der Durchschnitt über alle Ventile > 14% ist? Läuft so bei mir, die 14% habe ich kontinuierlich angepasst.
14% ist ein Öffnungsgrad, der in normal konfigurierten Systemen so gut wie nicht vorkommt. Und wenn, dann ist die Vorlauftemperatur viel zu hoch eingestellt. Der wahre Öffnungsgrad eines Heizkörperverntils ist auch alles andere als linear. Rein technisch kann ich mir nichts vorstellen, was für den Durchschnittsöffnungsgrad spricht, aber jeder wie er will. Wenn man unbedingt einen Mindestöffnungsgrad benötigt, denn legt man den Triggerpunkt in den Programmen in den Räumen mit dem größten Wärmebedarf eben nicht bei 10%, sondern höher an. Die 10% sind sowieso ein willkürlich gewählter Wert, um einen gewissen Mindestduchsatz zu gewährleisten. Und wenn man die Vorlauftemperatur absenkt, wird man nie so geringe Öffnugnsgrade haben. Und es ist ein Irrglaube, dass die Heizung kaputtgeht, wenn sie mal "kurz" gegen geschlossene Ventile läuft. Die Heizung erfasst eine Vorlauftemepraturerhöhung bei mangelndem Durchsatz sowieso und deaktiviert den Brenner und die Pumpenleistung ist so gering, dass eher keine Kavitationseffekte zu erwarten sind. Das soll nur kein Dauerzustand sein, weil die Heizung dann taktet und ist in einer smarten Umgebung mit wärmebedarfsabhängiger Heizungsdeaktivierung eher sowiso nicht der Fall.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Henke » 14.12.2022, 15:50

Xel66 hat geschrieben:
14.12.2022, 15:45
14% ist ein Öffnungsgrad, der in normal konfigurierten Systemen so gut wie nicht vorkommt
bla, bla, bla

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Xel66 » 14.12.2022, 16:21

Henke hat geschrieben:
14.12.2022, 15:50
bla, bla, bla
Wenn Du diesbezügliche Kompetenz besitzt, dann lege doch mal dar, warum das funktioniert/funktionieren soll, und wie ggf. die verschiedenen Wärmebedürfnisse/Durchsätze der einzelnen Heizkörper berücksichtigt werden. Der Durchschnittswert kann sich mal aus strömungsgünstigen geöffneten Ventilen ergeben, mal auch ist ein weiter entferntes mit einem langen Rohrweg und entsprechenden Widerstand das in der Rechnung bestimmende. Da Du das eher nicht berücksichtigst, ist Dein Script reine Augenwischerei. Mit einem direkt konfigurieren Öffnungsgad im Programm könnte man das berücksichtigen. Außerdem funktioniert solche Durchschittsberechnung nicht mehr, wenn mal ein einzelner exponierter Raum Wärmebedarf hat (bei mir wäre das in einer Hausecke gelegene Gästeklo, bei anderen Anwendern ist es vielleicht der Kellerraum). Ehe dann bei vielen Thermostaten der Durchschnitt ausreichend groß ist, um die Heizung zu starten, ist die Bude schon unterkühlt. Hauptsache es läuft mal wieder ein zyklisches Script in einer Steuerung mit reinem logischem Abfragebedarf. Wer das selbst warten kann, kann ja solche Spielereien machen. Aber Anwendern ohne die notwendigen Kenntnisse sollte man sowas eben nicht aufs Auge drücken.

Danach können wir uns über den hochqualifizierten Kommentar unterhalten. Ich hoffe nur, der steht nicht stellvertretend für was anderes... Insofern, macht weiter mit den Spielerreien. Bin raus. Ich ärgere mich sowieso schon, dass ich in dem Thread ein Detail übersehen habe, weil ich am Smartphone nicht weit genug gescrollt habe.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Tyfys
Beiträge: 551
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 125 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Tyfys » 14.12.2022, 17:07

Henke hat geschrieben:
14.12.2022, 14:27
1. Gewerk anlegen mit allen Thermostaten Name: "Heizkörper"
Ich habe bei mir nur HM-CC-RT-DN Heizkörperthermostaten.
Deshalb wollte ich das Skript mal ausprobieren.
mit boolean bDebug=true;

Wurde aber nichts ausgegeben.

liegt das evtl. an dier Zeile :

Code: Alles auswählen

     real level = (oItem.DPByHssDP("LEVEL").Value() * 100.0);
Meine HM-CC-RT-DN haben diesen Datenpunkt nicht.
Oder woher stammt der?
Gruß
Harry

Benutzeravatar
Henke
Beiträge: 1524
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 141 Mal
Danksagung erhalten: 306 Mal

Re: [HM-CC-RT-DN] Heizkörperthermostat : Ist Ventilstellung bei CCU Neustart bekannt ?

Beitrag von Henke » 14.12.2022, 17:15

Tyfys hat geschrieben:
14.12.2022, 17:07
Ich habe bei mir nur HM-CC-RT-DN Heizkörperthermostaten.
HmIP-eTRV-2 und FALMOT

Script angepasst. Kann ich leider nicht selber mit HM-CC-RT-DN testen.
Zuletzt geändert von Henke am 14.12.2022, 17:37, insgesamt 1-mal geändert.

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“