Mietwohnung - Ausgefallene Heizung erkennen

Begonnen von Markus Bloch, 09 Oktober 2018, 22:27:49

Vorheriges Thema - Nächstes Thema

Markus Bloch

Hallo zusammen,

da ja der Winter vor der Tür steht und ich in meiner Mietwohnung auf eine funktionierende Zentralheizung angewiesen bin (insbesondere in den kommenden Monaten), stehe ich mal wieder vor dem Problem eine ausgefallene Heizung erkennen zu wollen.

In der Vergangenheit kam dies leider immer wieder mal vor und es wurde erst recht spät bemerkt als der Kessel nur noch 25° warmes Wasser enthielt. An meinen HomeMatic Stellmotoren meiner Heizkörper kann man in FHEM einen Ausfall der Heizung bereits recht schnell erkennen, wenn die Heizleistung über einen definierten Zeitraum konstant bei 100% steht.

Bisher hatten wir das immer erst dann gemerkt, wenn es jemandem zu kalt in der Wohnung wurde, oder jemand unter die Dusche springen wollte und kein warmes Wasser mehr kam.

In meinen Graphen könnte man den Ausfall aber recht zeitnah sehen.

Nun bin ich am Überlegen, wie man das am einfachsten realisieren könnte zu erkennen, dass die Heizung über einen Zeitraum von X Minuten konstant auf 100% stehen bleibt und die Raumtemperatur sich nicht nach oben bewegt. So eine direkte Idee habe ich aber gerade nicht und wollte daher mal in die Runde fragen, ob das jemand bereits schon realisiert hat und wenn ja, wie.

Über Ideen und Anregungen freue ich mich sehr.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Damian

Hier mal z. B. mit DOIF-Perl:

DOIF
{ if ([Ventil] == 100 and !get_Exec("Timer")) { ## wenn Timer nicht läuft und Ventil auf 100 %
    $_temp=ReadingsVal("Sensor","temperature",0); ## merke die aktuelle Temperatur
    set_Exec("Timer",1800,'Log(1,"Ausfall!!!") if(ReadingsVal("Sensor","temperature",0) <= $_temp)'); ##logge wenn nach Ablauf von 1800 Sekunden Temperatur nicht gestiegen ist.
  }
}
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

peterk_de

Ich habe genau soetwas seit Anfang letzter Saison in Betrieb und es hat uns schon mehrmals vor Frostbeulen bewahrt bzw. sind wir immer die ersten, die dann den Hausmeister rufen ;-)

Erkennung mache ich allerdings über die zwangsverordneten Techem-HKVs, die praktischerweise alle 3 Minuten die HK-Oberflächentemperatur durch die Gegend funken und sich mit einem CUL868 prima auslesen lassen ...

Mit folgendem Notify befülle ich einen Dummy (system.heizmonitor) mit Readings für jeden HK:


.*\.heizung.zaehler:temp2.*  {

  if($NAME =~ /^(.*)\.zaehler$/) {
    my $hk = $1;
    my $hkVentilPos = ReadingsVal($hk,"ValvePosition","N/A");
    my $hkTemp = ReadingsVal("$NAME","temp2","N/A");
   
    my $AusfallTempThreshold = 35;
    my $AusfallVentilThreshold = 25;
    my $AusfallWaitTime = 17*60;
   
    my $DaueranTempThreshold = 40;
    my $DaueranVentilThreshold = 1;
    my $DaueranWaitTime = 60*60;

    my $curstate = ReadingsVal("system.heizmonitor",$hk,"N/A");

    if ($curstate ne "warten" && $curstate ne "ausfall" && $hkVentilPos > $AusfallVentilThreshold && $hkTemp < $AusfallTempThreshold) {
      fhem("setreading system.heizmonitor $hk warten;sleep $AusfallWaitTime sl_".$hk."_ausfall quiet; setreading system.heizmonitor $hk ausfall");
    } elsif (($hkVentilPos < $AusfallVentilThreshold || $hkTemp > $AusfallTempThreshold) && $curstate ne "ok") {
      fhem("setreading system.heizmonitor $hk ok");
      if ($curstate eq "warten") {
         fhem("cancel sl_".$hk."_ausfall");
      }
    }
   
    $curstate = ReadingsVal("system.ventilmonitor",$hk,"N/A");
   
    if ($curstate ne "warten" && $curstate ne "ausfall" && $hkVentilPos < $DaueranVentilThreshold && $hkTemp > $DaueranTempThreshold) {
      fhem("setreading system.ventilmonitor $hk warten;sleep $DaueranWaitTime sl_".$hk."_ventil quiet; setreading system.ventilmonitor $hk ausfall");
    } elsif ((($hkVentilPos > ($DaueranVentilThreshold - 1)) || ($hkTemp < $DaueranTempThreshold)) && $curstate ne "ok") {
      fhem("setreading system.ventilmonitor $hk ok");
      if ($curstate eq "warten") {
         fhem("cancel sl_".$hk."_ventil");
      }
    }
   
  }


Das überwacht außerdem auch gleich, ob ein HK heiß ist, obwohl das Ventil ,,zu" meldet. Mit einem DOIF Benachrichtige ich dann bei einem Ausfall (inkl. Zahl der zu kalte. HKs und deren Temperatur):



(["system.heizmonitor:ausfall$"]) {

my $deviceAlias = "$EVENT";
my $deviceName;
my $deviceState;
if($deviceAlias =~ /([^:]*):.([^:]*)/) {
$deviceName = $1;
}

if ($deviceName) {
  $deviceAlias = AttrVal($deviceName,'alias',$deviceName);
}

my $ventil = ReadingsVal($deviceName,"ValvePosition","N/A");
my $temp = ReadingsVal($deviceName.".zaehler","temp2","N/A");
my $anzahlAusgefallen = ReadingsVal("system.heizmonitor","anzahlAusgefallen","N/A");

fhem("set msgRouter exec route_mt_Heizungen_Ausfall p_msgtitle='$deviceAlias ausgefallen ($anzahlAusgefallen HK insgesamt)' p_msgtext='Oberflächentemperatur $temp°C, Ventil $ventil%'");

} DOELSEIF ([system.heizmonitor:anzahlAusgefallen] eq "0") {

fhem("set msgRouter exec route_mt_Heizungen_OK p_msgtitle='Heizungsanlage OK' p_msgtext='Alle ausgefallenen Heizungen in Betrieb.'");
}


Für dein Szenario ohne Temp.sensoren kannst du das aber eigentlich noch deutlich vereinfachen und eleganter machen: Nimm das Monitoring-Modul mit einem Regex für 100% Ventilposition als ErrorAdd -Kriterium und Ventilposition ungleich 99% als ErrorRemove-Kriterium. Als Waittime nimmst du ne Viertelstunde oder so, je nachdem wie lahm eure Heizung ist. Viel kürzer als meine Version und macht genau was du willst ...

LG!
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

MadMax-FHEM

Ich habe in meinem "Absperrkästchen" für die Heizung einen HomeMatic Differenztemperatursensor womit ich die Vor-/Rücklauftemperatur messe...

Da merke ich schnell, wenn die Heizung ausgefallen ist.

Vielleicht gibt es ja sowas bei dir auch...

Aktuell bin ich noch dabei es zu verfeinern (unabhängig von der Sommereinstellung o.ä. zu werden):

wenn einer der HK aufdreht sollte die Vor-/Rücklauftemperatur zumindest (deutlich) höher sein als die gewünschte Temperatur ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Prof. Dr. Peter Henning

Ich würde nicht die Raumtemperatur überwachen - die kann ja sehr stark variieren. Sondern die Vorlauftemperatur am Heizkörper zusammen mit der Stellung des Ventils auswerten - somit hat man das klare Signal Hohe Wärmeanforderung bei geringer Wärmelieferung.

LG

pah

volschin

#5
Ich finde das alles etwas komplex. Aus meiner Sicht würde bereits ein Watchdog Deine Anforderung erfüllen. Wenn er auf 100 geht aktiviert er sich und wenn innerhalb z.B. einer halben Stunde kein kleinerer Wert kommt, triggert er den Alarm. Nachteil des Watchdogs: 1 pro Device.

Einen Wert bei 100 über einen längeren Zeitraum habe ich bei funktionierendem Heizkreislauf noch nie gesehen. Daher ist die Temperaturmessung aus meiner Sicht überflüssig.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Prof. Dr. Peter Henning

Zitatich bei funktionierendem Heizkreislauf noch nie gesehen

Gibt es aber durchaus, das ist alleine kein eindeutiges Signal.

LG

pah

Markus M.

Zitat von: volschin am 11 Oktober 2018, 17:09:27Nachteil des Watchdogs: 1 pro Device
Wozu? 1x pro Heizkreislauf reicht doch.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

volschin

Wenn Du sichergehen kannst, dass sich alle Devices des Heizkreislaufs gleich verhalten, ja. Sonst resettet Dir einer den Watchdog und der Alarm fällt aus.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

peterk_de

Warum man (in ner Mietwohnung ohne Zugang zu Umwälzpumpe und co) mehrere Heizkörper überwachen will? Na weil nicht in jedem Raum die Solltemperatur unterschritten sein muss, wenn die Heizung ausfällt.  Wenn dein einer Raum mit dem überwachten Heizkörper gerade warm genug ist, bekommst du den Ausfall ja nicht (oder zu spät) mit.

Gilt auch, wenn du nicht wie ich die Oberflächentemperaturen misst, sondern die Vorlauftemperatur an zentraler Stelle überwachst: Alle Ventile zu und kalter Vorlauf ist OK, mindestens eins offen und zu lang kalter Vorlauf nicht ...

Also m.E. ist es ohne alle HK-Ventile anzugucken keine optimale Lösung.
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...