Heizungskontrolle_Einfach

Begonnen von abc2006, 21 Mai 2013, 11:10:14

Vorheriges Thema - Nächstes Thema

abc2006

Moinmoin,

ich habe von hier http://www.fhemwiki.de/wiki/Heizungskontrolle_Einfach den Code kopiert.
Darin findet sich folgende Zeile:

fhem("set K101_THERME on") if ($heizung_status == 00)\

Ich habe noch nie eine If-abfrage gesehen (was nichts heissen muss), bei der zuerst der Code und dann die Bedingung kommt ..
Leider funktioniert der Code nicht wie er soll, sonst hätte ich mich ja vielleicht sogar damit zufrieden gegeben ..

Wenn eines meiner Ventile über 20% ist, setzt er die K101 auf on.
Wenn aber alle unter 20% sind, setzt er K101 nicht auf off.

Ich würde das ändern, aber wollte nochmal fragen, ob es nicht vielleicht doch einen Sinn hat :-)

Danke und lg
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

MisterEltako

Sinn erschliesst sich mir auch nicht, bringt mich immer durcheinander. Es soll wohl einfacher, kürzer und übersichtlicher Sein. ;o)

ich würde z.B. alle 30min Test auf Ventilstellung prüfen (aber auch abwandelbar auf dein Proiblem):

define Testung der Ventile at +00:30:00 {
my @@fhts=devspec2array("TYPE=FHT");
 foreach(@@fhts) {
   my $ventil=ReadingsVal($_, "actuator", "101%");
   $ventil=(substr($ventil, 0, (length($ventil)-1)));
 }
 if ((Value("K101_THERME") eq "off") && ($ventil > 20)) {
     fhem("set K101_THERME on");
 }elsif ((Value("K101_THERME") eq "on") && ($ventil < 20)) {
     fhem("set K101_THERME off");
 }
}

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

abc2006

Ja, sowas macht auf jeden Fall mehr Sinn und ist einfacher ...
Oder ist jemand anderer Meinung ?

lg
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

borsti67

ob's vorne oder hinten steht ist perl egal. ;)

Du hast nur die EINSCHALT-Zeile zitiert, die aber Deinen Worten nach funktioniert; viel interessanter ist also die AUSSCHALT-Zeile...?
In meinem Codebeispiel sind Log-Zeilen drum herum, an denen Du sehen müsstest, wie weit der Code kommt bzw. was er tut...?
Leider sind im WIKI nicht mehr alle Einträge aktuell, so ist da z.B. an einer Stelle noch (bzw. wieder) "set heater off" statt "set heizung off". Hast Du alle Einträge - incl der richtigen Groß-/Kleinschreibung) auf Deine Devices angepasst?
cu/2
Borsti
---
FHEM 5.8 auf Synology DS211j (bis 11/17) | FHEM 6.0 auf Raspi Zero W (bis 11/20) | FHEM 6.2 als VM in Synology DS1815+ (ab 11/20)

abc2006

Hey,

die Ausschaltzeile ist identisch, nur dass halt Status 11 und off drin stehen/standen.
Bei mir läufts jetzt mittlerweile so:


define n_heizung notify n_heizung {\
   my $brauche_waerme=0;;\
   my $ventile_im_leerlauf=0;;\
   my @@fhts=devspec2array("TYPE=FHT");;\
   my $thermenstatus=Value("K101_THERME");;\
     foreach(@@fhts) {\
       my $ventil=ReadingsVal($_, "actuator", "101%");;\
       Log(5,"HZG:" . $_ . ":" . $ventil);;\
       $ventil=(substr($ventil, 0, (length($ventil)-1)));;\
       if ($ventil > 50) {\
         $brauche_waerme=1\
       }\
       if ($ventil < 20) {\
         $ventile_im_leerlauf++\
       }\
     }\
  if ($brauche_waerme != 0) {\
    Log(5,"HZG: Waerme benoetigt. Thermenstatus: " . $thermenstatus);;\
if (Value("K101_THERME") eq "off") {\
          Log(3,"HZG: Waerme benötigt. Schalte Therme ein");;\
 fhem("set K101_THERME on");;\
} else {\
Log(5,"HZG: Therme ist bereits eingeschaltet");;\
}\
  } elsif ($ventile_im_leerlauf == @@fhts) {\
          Log(5,"HZG: Keine Waerme benoetigt. Thermenstatus: " . $thermenstatus);;\
if (Value("K101_THERME") eq "on") {\
          Log(3,"HZG: Keine Waerme benoetigt. Schalte Therme aus");;\
          fhem("set K101_THERME off");;\
} else {\
Log(5,"HZG: Therme ist bereits ausgeschaltet");;\
}\
  }\
}



Das macht nach bisherigen Tests das, was ich will und produziert auch noch aussagekräftige Fehlermeldungen bzw. Logeinträge.

lg
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

MisterEltako

Wenn es dauerhaft funktioniert, dann bitte ins Wiki stellen.

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

abc2006

Gerne - wer schaltet mich frei?

Hatte schon Kontakt mit Jörg - er hat z.Zt. keine Berechtigung ...

lg
stephan

PS: deins ersetzen oder dazu tun ?
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX