neues Modul: HCS - Zur erweiterten Heizungssteuerung (FHT & HomeMatic)

1,982 views
Skip to first unread message

Martin Fischer

unread,
Nov 3, 2012, 1:07:18 AM11/3/12
to fhem-...@googlegroups.com
hiya @all,

ich habe so eben ein neues modul bereit gestellt:
HCS - heating control system

angeregt durch einen wiki eintrag habe ich diese idee übernommen und weiter
verfeinert. das ganze dann in ein modul "verpackt". somit ist die umsetzung
mittels 99_myUtils.pm nicht mehr nötig.

auf meiner homepage findet man unter
http://www.fischer-net.de/hausautomation/fhem/53-fhem-modul-zur-erweiterten-heizungssteuerung.html
eine ausführliche beschreibung, sowie einen kompletten aufbau mittels
HomeMatic Funk-Schaltaktor, 1-fach (HM-LC-Sw1-SM) einer HomeMatic Statusanzeige
(HM-OU-LED16) in kombination mit einem vaillant atmoTEC classic "Gas-Wandheizgerät".

an dieser stelle geht noch ein dank an benjamin für seine unterstützung!
während ich mich ums coden gekümmert habe, übernahm er freundlicherweise die
dokumentation! frei nach dem motto: anwender unterstützt entwickler.

das neue modul sollte heute bereits über "update" verteilt werden.

viel spass damit...

gruss martin

hier eine kurze beschreibung:

Das HCS (Heating Control System) Device überwacht in einem frei definierbarem
Interval (Default: 10 Minuten) den Zustand aller gefundenen Ventile. Anhand von
ebenfalls frei definierbaren Schwellwerten kann geregelt werden, bei welcher
Ventilstellung Heizbedarf anliegt, bzw. die Anforderung unterbunden werden soll.
Dabei berücksichtigt das HCS Device die Hysterese zwischen den jeweiligen
Zuständen.

Das HCS Device erkennt automatisch ignorierte Devices. Darüber hinaus können
auch bestimmte Ventile von der Überwachung ausgeschlossen werden.

Weiterhin unterstützt HCS das Übersteuern der Ventilstellungen durch einen
frei definierbaren Temperatursensor.

Es kann also gesteuert werden ob man den Heizbedarf nur über die Ventilstellungen
anfordert oder aber zusätzlich noch durch einen Temperatursensor beeinflussen
will.

Steffen

unread,
Nov 3, 2012, 3:38:27 AM11/3/12
to fhem-...@googlegroups.com
Guten Morgen!

Erstmal Danke für dieses schöne Modul, genau sowas hatte ich schon gesucht...

Doch hätte ich noch eine frage, wie kann ich ein TC in diesem Fall "Heizung_OG_BA" von dem HCS ignorien lassen???

Mfg Steffen

strauch

unread,
Nov 3, 2012, 4:31:30 AM11/3/12
to fhem-...@googlegroups.com
Hallo Martin,

super in die Richtung geht mein nächstes Produkt. Vielen Dank an dichbzw. Euch beiden.

Martin Fischer

unread,
Nov 3, 2012, 7:06:18 AM11/3/12
to fhem-...@googlegroups.com
über das attribut "valvesExcluded", also
attr foobar valvesExcluded Heizung_OG_BA

das attribut hatte ich in der commandref vergessen zu erwähnen... ist nun
korrigiert..

gruss

littlebilly

unread,
Nov 3, 2012, 1:47:49 PM11/3/12
to fhem-...@googlegroups.com
Hallo Martin,
vielen Dank für das Modul!
Habe das ganze mal zum Test ausprobiert und habe einige Ungereimtheiten.
Logfile in Anlage!
Ich habe zur Zeit 3 TC's mit 6 VD's im Einsatz.
Das Modul meldet jedoch 11 VD's wenn ich das richtig sehe?
HCS Waermebedarf Found 11 Device(s): 0 FHT, 11 HM-CC-TC. demand: 0, idle: 11, ignored: 0, excluded: 0, overdrive: no
Weiteres in Anlage.
Gruss Billy
LogfileHCS.txt

Martin Fischer

unread,
Nov 3, 2012, 3:35:45 PM11/3/12
to fhem-...@googlegroups.com
hallo billy,

Am Samstag, 3. November 2012, 10:47:49 schrieb littlebilly:
> [...]
> Habe das ganze mal zum Test ausprobiert und habe einige Ungereimtheiten.
> Logfile in Anlage!

das wundert mich doch sehr... ich habe ausführlich seit tagen getestet und
kann da im moment keine probleme sehen (ausser natürlich die nicht abgefangene
variable)...

kannst du mir bitte deine fhem.cfg posten (gerne auch per email), sowie je HM-
CC-TC ein jsonlist auszug? das ganze bitte so wie eben in einer datei (wegen
zeilenumbrüchen, etc.).

gruss martin

fhem-hm-knecht

unread,
Nov 3, 2012, 5:25:25 PM11/3/12
to FHEM users
Hi Martin, habe gerade dein Modul ausprobiert :)

Erste Hürde, nach beispiel definiert
define Wärmebedarf HCS EG_Hut_4 10 40 35
choose one of blablabla
das "ä" mag er nicht.
dann will er " EG_Hut_4 " erst definiert ist

also define Waermebedarf HCS EG_Hut_4 10 40 35 zum schluß in die
Konfig

bis jetzt noch kein Problem,

aber, du hast deine TC noch nicht neu angelernt,
da jeder TC vier mal in der konfig auftaucht , als
eg_Schlafzimmer_Climate_demand 0 2012-11-03 22:18:54
eg_Schlafzimmer_Climate_state % 2012-11-03 22:18:54
eg_Schlafzimmer_Weather_demand 0 2012-11-03 22:18:54
eg_Schlafzimmer_Weather_state % 2012-11-03 22:18:54
eg_Schlafzimmer_WindowRec_demand 0 2012-11-03 22:18:54
eg_Schlafzimmer_WindowRec_state % 2012-11-03 22:18:54
eg_Schlafzimmer_demand 0 2012-11-03 22:18:54
eg_Schlafzimmer_state % 2012-11-03 22:18:54

ein TC besteht aus dem Device selber , plus seinen drei Kanaelen

also da mußt du noch mal ran

Hary

Martin Fischer

unread,
Nov 3, 2012, 5:51:21 PM11/3/12
to fhem-...@googlegroups.com
hallo hary,

Am Samstag, 3. November 2012, 14:25:25 schrieb fhem-hm-knecht:
> [...]
> Erste Hürde, nach beispiel definiert
> define Wärmebedarf HCS EG_Hut_4 10 40 35
> choose one of blablabla
> das "ä" mag er nicht.

ok... da will man einfach... und nimmt deutsch.. rofl.. nicht dran gedacht,
das fhem dat net mag..

> dann will er " EG_Hut_4 " erst definiert ist

korrekt! siehe commandref:
<device> the name of a _predefined_ device to switch.

> [...]
> aber, du hast deine TC noch nicht neu angelernt,
> da jeder TC vier mal in der konfig auftaucht , als

ja, das ist in der tat ein problem, welches ich aber (vermutlich) gerade
gefixt habe..

scheinbar ist an mir die info vorbeigegangen, das durch die entwicklung an
CUL_HM die HM-CC-TCs _neu_ angelernt werden müssen...

das ist eben der mist, wenn STABLE mit DEVELOPMENT vermischt wird, denn ich
habe es auf einem produktivsystem getestet, mit den angelernten HM-CC-TCs so
wie es schon länger war... und meine haben die kanäle noch nicht: ergo bei der
entwicklung von HCS nicht berücksichtigt...

wenns recht ist, schick ich dir per email die geänderte version zum testen,
dann geht es heute noch ins svn und ist morgen per update da...

gruss martin

fhem-hm-knecht

unread,
Nov 3, 2012, 5:55:42 PM11/3/12
to FHEM users
Ich muß Dich loben für dein Modul, will ja auch nicht immer meckern :)
auch wenn es sich so angehört hat, war nicht so gemeint., sorry

Schick ruhig,... schau auf mail,, ist ja schon da :)
moment teste...
Hary

Martin Fischer

unread,
Nov 3, 2012, 6:04:16 PM11/3/12
to fhem-...@googlegroups.com
Am Samstag, 3. November 2012, 14:55:42 schrieb fhem-hm-knecht:
> Ich muß Dich loben für dein Modul, will ja auch nicht immer meckern :)
> auch wenn es sich so angehört hat, war nicht so gemeint., sorry

das habe ich so auch nicht aufgefasst.. nicht mal dran gedacht es so verstehen
zu können! ich bin ja froh, das du / ihr mich drauf hingewiesen habt und es
auch gleich testet..

gruss martin

Martin Fischer

unread,
Nov 3, 2012, 6:56:30 PM11/3/12
to fhem-...@googlegroups.com
dank tatkräftiger unterstützung konnte das problem (HM-CC-TC nutzt nun
channels, die bei mir noch nicht vorhanden waren) schnell eingegrenzt
werden...

via update ist die korrigierte version morgen verfügbar!

gruss und danke an alle mitwirkenden...

Alexander Petrovic

unread,
Nov 4, 2012, 3:55:53 AM11/4/12
to fhem-...@googlegroups.com
Super Idee mal das ganze Heizungssystem ordentlich anzugehen mit dem
Ansatz das Takten zu reduzieren.

Im Haus meiner Mutter wäre das Setup mit FTH8v/S300TH + PID für die
Ventilsteuerung, die Wärmeerzeugung erfolgt über Fernwärme, wobei ich
noch keinen Weg gefunden habe in die Steuerung einzugreifen.

2012/11/3 Martin Fischer <m_fi...@gmx.de>:
> --
> To unsubscribe from this group, send email to
> fhem-users+...@googlegroups.com

Steffen

unread,
Nov 4, 2012, 7:39:38 AM11/4/12
to fhem-...@googlegroups.com
Hallo!

Bis jetzt läuft das Modul sehr gut und bin sehr sehr zufrieden damit, genau das was ich gesucht hatte.
Das einzige was ich noch nicht hinbekommen habe es das event-on-change oder update, 
um nicht das Log so voll zu müllen;-) und könnte mir jemand einen Rat dazu geben???

Mfg Steffen

Hermann

unread,
Nov 5, 2012, 10:18:42 AM11/5/12
to fhem-...@googlegroups.com
Hi,

Danke, genau das was ich gesucht habe. Und funktioniert sogar bei mir FHEM Laie auf Anhieb mit 3 HM-CC-TC und 5 Stellantrieben.

Eins schaffe ich leider noch nicht, vielleicht kann mir da jemand weiterhelfen.
a.) Ich würde gerne die Heizungssteuerung über einenON/OFF Button ein/ausschalten können
b.) Ich möchte mir einen Plot anzeigen lassen in dem ich die Zeiten sehe wann die Heizung an war.

Danke für Eure Unterstützung,
Hermann

strauch

unread,
Nov 5, 2012, 12:30:27 PM11/5/12
to fhem-...@googlegroups.com
In der Doku steht ein Fehler dort steht:
define <name> HCE <device> <interval> <valveThresholdOn> <valveThresholdOff>
es müsste aber

define <name> HCS <device> <interval> <valveThresholdOn> <valveThresholdOff>

heißen

Martin Fischer

unread,
Nov 5, 2012, 4:10:54 PM11/5/12
to fhem-...@googlegroups.com
Am Montag, 5. November 2012, 09:30:27 schrieb strauch:
> In der Doku steht ein Fehler dort steht:
> define <name> HCE <device> <interval> <valveThresholdOn> <valveThresholdOff>
> es müsste aber
>
> define <name> HC*S* <device> <interval> <valveThresholdOn>
> <valveThresholdOff>
>
> heißen

danke.. fixed..

Tom

unread,
Nov 6, 2012, 6:53:44 AM11/6/12
to fhem-...@googlegroups.com
Hallo Martin,

> ich habe so eben ein neues modul bereit gestellt:
> HCS - heating control system

sieht aus, als hättest Du mit dem HCS meinen "Rohbau" perfektioniert?
Schönes Ding!
Vor allem die Idee mit dem Extra-Thermometer hat was.

Persönlich hatte ich allerdings vor, die von dem Timer-Modell abzugehen:

> Das HCS (Heating Control System) Device überwacht in einem frei definierbarem
> Interval (Default: 10 Minuten) den Zustand aller gefundenen Ventile. Anhand von

Das finde ich nämlich ein wenig problematisch, da die FHTs eh recht
"träge" sind.
Nehmen wir mal an, ich habe eine Nachtabsenkung laufen. Es ist früh am
Morgen, das Bad ist ziemlich ausgekühlt (aber nicht so weit, als dass
die Ventile öffnen wurden). Nun drücke ich am Thermostat auf "Tag"
oder setze manuell eine Temperatur, damit mir nicht den Ar... auf der
Schüssel anfriert. ;-)
Dummerweise ist das Sendeintervall gerade vorbei gewesen, also macht
der FHT erst nach 2-3 Minuten überhaupt das Ventil auf. Zu meinem Pech
sind nun auch gerade die 10min des Timers herum gewesen, also noch mal
warten, bis das HCS davon was mitkriegt. Nach einer Viertelstunde also
springt dann tatsächlich mal der Brenner an; bis die Heizung
ausreichend Heißwasser hat, bin ich erfroren. :-P
Ein konstruierter Extremfall, ja, aber durchaus im Bereich des Möglichen...
Daher war mein neuer Ansatz, doch mittels Notify auf die
Actuator-Meldungen zu reagieren. Da weiß ich allerdings nicht, wie
stark das das System belastet - meinst Du, das kann man riskieren?

Die einzige Einschränkung, die ich vor habe, ist dass das verbundene
Gerät "nicht öfter als alle X Minuten" geschaltet wird, weil das
vermutlich dem Brenner nicht gut tut, egal ob mir gerade kalt wird. ;)

A propos Aktuator, ich bin mir nicht sicher, ob Deine Routine auch den
Fall abfängt, dass mehr als 1 Ventil an einem FHT80b gepaart ist...?

Weiterhin sendest Du den "Ein/Aus"-Befehl bei jedem Durchlauf, auch
wenn Idle. Das habe ich zugunsten der Funklast (und des Logs ;)) zu
vermeiden gesucht, und nur dann geschaltet, wenn erkennbarer
Handlungsbedarf ist. Vielleicht noch Optimierungspotential? Natürlich
ist es besser, wenn man die Heizung per Draht schaltet, da Funkt
prinzipiell unsicher ist, aber wenn das nicht geht, sollte zumindest
der EIN-Zustand möglichst "sicher" sein. Da hatte ich aber auch noch
keine überzeugende Idee, wie ich ein "besser noch mal schalten"
erkenne...

Gruß
Torsten

strauch

unread,
Nov 6, 2012, 7:46:24 AM11/6/12
to fhem-...@googlegroups.com
Den Punkt wollte ich gerade anschreiben. Das Log läuft schon sehr voll und es ist schwer andere Dinge rauszusehen. Vielleicht kann man das einfach immer nur auf "Änderungen" reduzieren. Ändert sich zum vorherigen Status nichts, das dann auch nichts neues geloggt wird?

puschel74

unread,
Nov 6, 2012, 11:34:22 AM11/6/12
to fhem-...@googlegroups.com
Hallo,

so vllt?

if ($brauche_hitze != 0) {\
fhem("set Wasserpumpe on") if ($Wasserpumpe_status ne "Ein");;\
Log (3,"Wasserpumpe Ein")\
}\
else {\
if ($ventile_im_leerlauf == @@fhts) {\
fhem("set Wasserpumpe off") if ($Wasserpumpe_status ne "Aus");;\
Log (3,"Wasserpumpe Aus")\
}\
else {\
Log(3,"Heizbedarf: " . $ventile_im_leerlauf . " von " . @@fhts . " Stellantrieben im Leerlauf.")\
}\

Ok. Ich hab im Log immer noch die Einträge drinnen aber nur weil ich diese mit Log (3,"Text") schreiben
lasse - kann man ja weglassen.
Ich hab mir das neue Modul noch nicht angeschaut aber sowas sollte sich doch relativ einfach integrieren
lassen?

Sieht bei mir dann so aus:

2012.11.06 05:56:30 3: Wasserpumpe Ein
2012.11.06 06:00:00 2: FHT set OG_Badezimmer_Heizung desired-temp 17.0
2012.11.06 06:06:30 2: FS20 set Wasserpumpe off
2012.11.06 06:06:30 3: Wasserpumpe Aus
2012.11.06 17:06:30 3: Wasserpumpe Aus 2012.11.06 17:16:30 3: Wasserpumpe Aus 2012.11.06 17:26:30 3: Wasserpumpe Aus

Lösche ich das Log (3,....) raus sind auch die Logeinträge weg (oder sollten
zumindest weg sein ;-) ).

Grüße

puschel74

unread,
Nov 6, 2012, 12:46:06 PM11/6/12
to fhem-...@googlegroups.com
Hallo Borsti,

dein Einwand ist nicht unberechtigt - ich, oder schlimmer meine Frau, ist da schonmal reingelaufen.
Der WAF war im Keller ;-)

Da ich im Bad aber einen 4-fach Funktaster verbaut habe und noch 2 Kanäle frei sind habe ich einen
für die manuelle Übersteuerung der Heizung missbraucht.
Mein FHT80b läuft im manuellen Modus und wird durch FHEM gesteuert.
Die Automatik prüft um 01:00 Uhr auf die Variable $we und setzt mir, wenn ich nicht frei habe, ein
define um 04:30 welches eine desired-temp 24.0 an den FHT sendet.
Wenn das Ventil zu mehr als 50% geöffnet ist und die Heizungssteuerung vorbei schaut schaltet die
Wasserpumpe ein.
Da ich erst um ca. 05:15 aufstehe reicht das locker um das Bad wohlig warm zu heizen.
Zeitgleich wird ein define auf 05:30 gesetzt welches die desired-temp 17.0 sendet - Heizung ist wieder aus.

Der Wandtaster löst in fhem ein sofortiges senden der desired-temp 24.0 aus und schaltet auch direkt
die Wasserpumpe ein.
Gleichzeitig wird ein define auf eine Stunde später gesetzt welches wieder das desired-temp 17.0 sendet.
Wasserpumpe aus.

Der Unterschied zwischen deiner und meiner Heizung ist allerdings das ich die Vorlauftemperatur (noch)
ständig auf ca. 40 °C eingestellt habe und die Wasserpumpe bei mir sofort warmes Wasser fördert während
bei dir erst der Kessel hoch heizen muss.
Das war bei uns früher auch so - habe ich aber geändert da der Gasverbrauch schonm ganz schön dadurch
ansteigt.

Grüße

Am Dienstag, 6. November 2012 12:53:47 UTC+1 schrieb Borsti67:

Tom

unread,
Nov 6, 2012, 1:07:42 PM11/6/12
to fhem-...@googlegroups.com
> Der WAF war im Keller ;-)

=8)

> Da ich im Bad aber einen 4-fach Funktaster verbaut habe und noch 2 Kanäle

ich nicht, und nach Möglichkeit wollte ich das auch vermeiden. Die
Nummer mit dem "unteren rechten Knopf am Thermostat" war noch mit dem
WAF vereinbar, aber nun muss es gut sein...

> Der Unterschied zwischen deiner und meiner Heizung ist allerdings

... vermutlich größer als Du denkst. ;)
Bei meiner (schon älteren) Wolf-Therme ist zwar auch eine -
proprietäre - Regelung mittels Innenthermometer vorgesehen, aber da
kann/will ich mangels Kenntnissen gar nicht ran. Das Ding regelt also
nur per Außenfühler den Vorlauf mit bzw. macht eine Nachtabsenkung.
Somit bleibt mir nur der Umschalter zwischen Sommer- und
Winterbetrieb, der bei Winter die Umwälzpumpe aktiviert und eventuell
den Heizkreislauf überwacht (nur die Pumpe fernschalten spart zwar
definitiv Strom, kann aber die Anlage beschädigen, wenn die Wärme
nicht abtransportiert wird). Auch an diesen Schalter muss ich aber
mittels Kabeln 'ran, was ich mich bisher nicht getraut habe. Insofern
ist das ganze, was ich hier bisher gemacht habe, eher eine
"Trockenübung". ;-)

Gruß
Torsten

Alexander Petrovic

unread,
Nov 6, 2012, 1:40:04 PM11/6/12
to fhem-...@googlegroups.com

Den raumthermostat kann man über ein relais und einen passenden Widerstand im temperaturfuhler zum schalten der Themen missbrauchen

Von meinem Xperia™-Smartphone gesendet

Martin Fischer

unread,
Nov 6, 2012, 1:51:49 PM11/6/12
to fhem-...@googlegroups.com
hallo tom (und andere),

mal 'ne zwischenmeldung zu euren anmerkungen.

einige vorschläge, die ihr aufgezählt habt, sind sicherlich noch als
_zusätzliche_ optionen im modul denkbar.

aber auch die eine oder anmerkung habe ich dazu.
vorab: ich bin weder heizungsmonteur / -bauer oder habe damit was zu tun :-)
aber ich denke auch, das eine heizung (nicht dass das einer hier behauptet
hat) kein "lichtschalter" ist, frei nach dem motto: "mir ist kalt, heizung an,
mir wird warm."

was ich damit sagen will: eine gewisse trägheit will ich ja gerade provozieren
um ein einsparpotential zu erreichen. auf "privatem" weg wurde auch der
vorschlag an mich herangetragen, die abhängigkeit auch je thermostat (nicht
ventilantrieb) mit einer hysterese z.b. von 0.1 und 0.2 abzufangen.

wie gesagt, ich habe sicherlich nicht den "background", den ein fachmann
diesbzgl. hat aber die eine oder andere sache habe ich so bewusst gewählt.

beispiel:
wenn ich als "referenztemperatur" z.b. 21.5° setze und die heizung
ausgeschaltet werden soll, wenn 21.7 erreicht ist aber bei 21.4° wieder
eingeschaltet werden soll, und das ganze noch mit verschiedenen thermostaten
und den jeweiligen "refernztemperaturen", _vermute_ ich, das die
heizungsanlage wesentlich häufiger schaltet als bei der _bewussten_ trägheit
durch die ventilstellungen.

bzgl. des 10 min intervall besteht ja die möglichkeit diesen runterzusetzen,
damit sich auch keiner den "a... auf der schüssel" abfriert ;-)

das modul fragt zur zeit _ausschliesslich_ die FHT und HM-CC-TC readings bzgl.
der actuatoren ab. da dort auch nicht der zustand _mehrerer_ angelernter
ventile abgebildet wird, werden somit auch nicht alle einzelnen ventile
brücksichtigt. das ist im moment auch so gewollt da ja alle ventile (meist)
den gleichen öffnungsgrad haben, sofern es nicht innerhalb der geräte
angepasst wurde.

der ein/aus befehl wird auch hier bewusst _immer_ gesendet, da es ggf.
installationen gibt, wo aufgrund von entfernungen (heizung im keller / auf dem
boden) vielleicht auch mal ein telegramm "verschütt" gehen kann. hier sollte
man dann mit dem attribut event-on-change-reading arbeiten. das wurde ja
innerhalb in fhem bereit gestellt, damit man(n) so etwas damit regeln kann.
allerdings habe ich hier (glaube ich) noch ein fehler im modul, so dass das
attribut ignoriert wird. prüfe ich aber..

die "gesprächigkeit" des moduls werde ich dann noch anpassen... wem die
logeinträge zur zeit "über" sind, kann mittels attribut foobar loglevel 6
diese komplett unterdrücken.

zusammenfassend finde ich eure anregungen / wünsche an das modul interessant
und auch zum teil umsetzbar. allerdings passiert das nicht gleich morgen, da
ich noch an einem anderem grossen modul arbeite und "nebenbei" ja auch die
eine oder andere änderung (z.b. internationalisierung, survey bei update,
etc.) an fhem noch auf der todo habe, nachdem das "updatefhem, update und
backup" thema nun mit der release von 5.3 abgeschlossen ist.

nebenbei ist mir bei euren "ideen" noch das künftige attribut "idleperiod"
oder "blockingtime" ins auge gestossen, das ich auf jedenfall noch hinzufüge
um eine "sperrzeit" um nicht zu häufiges aus- und einschalten zu unterbinden.

wie gesagt: im moment muss ich erstmal ein paar "schritte" in dem "anderem"
modul nach vorne kommen, dann greife ich das thema HCS nochmals auf.

danke für das feedback!

gruss martin

puschel74

unread,
Nov 6, 2012, 2:46:26 PM11/6/12
to fhem-...@googlegroups.com
Hallo,

erstmal Hut ab vor deiner Leistung Martin.
Einwandfrei was du zu FHEM beträgst - tip top.
Die Beiträge sollten ja auch keine - mach mal voran und bau das ein - sein ;-)

@borsti
Ich werde meine Heizung nächstes Jahr auf eine Aussentemperaturgeführte "ausbauen".
Der Temp-Regler an der Heizung ist nur ein Poti und die Widerstandswerte kann ich mit meinem K8IO schön
nachbilden.
Die Relais mit der Widerstandskaskade werden dann über fhem und meinen Aussen-Temp-Sensor gesteuert.
Der "Umbau" unseres Vissmann Gaskessels war kein grosser Akt.
Steuergerät abklemmen - Heizung auf Ein - Wasserpumpe über einen FS20-Einkanal-Aufputz-Empfänger
ein- und ausschalten.
Und um deine Frau an die Wandtaster zu gewöhnen brauchst du nur genug zu verbauen ;-)
Lichtschalter raus - Funktaster dran und sie gewöhnt sich schon dran.
Meine ist zur Zeit - Heizperiode kommt - schwer begeistert von fhem - obwohl die technische Seite für sie
uninteressant ist :-)
Das Haus ist schön warm und der Gasverbrauch ist moderat.

Grüße

littlebilly

unread,
Nov 6, 2012, 4:09:51 PM11/6/12
to fhem-...@googlegroups.com
Hallo Martin,
nochmals alle Anerkennung für das Modul!


Am Dienstag, 6. November 2012 19:51:52 UTC+1 schrieb Martin Fischer:

aber ich denke auch, das eine heizung (nicht dass das einer hier behauptet
hat) kein "lichtschalter" ist, frei nach dem motto: "mir ist kalt, heizung an,
mir wird warm."

Stimmt absolut. Das ganze muss man auch systemisch betrachten!
Eine Heizung mit Gastherme ist anders zu behandeln was Ein/Ausschalten betrifft wie z.b. eine Heizung mit Pufferspeicher etc.
 
Anmerkung zum Verständnis: 
Ich habe kürzlich auf FHEM HM-CC-TC + HM-CC-VD umgestellt und bin absolut zufrieden.
Das Ein/Ausschalten der HK-Pumpe läuft bei mir schon seit 2 Jahren über das 1W Bifferboard das über wget die Raumtemperaturen
abfragt und dann abschaltet bzw. einschaltet, wenn die gewünschten Temperaturen (mit Hysterese) erreicht sind.

Ich habe die letzten 2 Tage dein Modul bezüglich der Einschaltzeiten mit meiner derzeitigen Lösung verglichen
und festgestellt dass die Einschaltzeiten deutlich über den bisherigen Einschaltzeiten liegt,
Was in meinem Fall (hochgedämmtes Zweifamilienhaus) einem höheren Energieverbrauch entspricht.
Das ist nachvollziehbar, da die Ventilöffnung zumindest bei HM der Raumtemperatur folgt, mit entsprechenden Verzugszeiten
auch durch das Regelverhalten des TC - VD Kreises.

Deshalb mein Vorschlag dein Modul um eine Variante Bezugsgrösse Raumtemperatur (Ist - versus - Soll) zu erweitern.

beispiel:
wenn ich als "referenztemperatur" z.b. 21.5° setze und die heizung
ausgeschaltet werden soll, wenn 21.7 erreicht ist aber bei 21.4° wieder
eingeschaltet werden soll, und das ganze noch mit verschiedenen thermostaten
und den jeweiligen "refernztemperaturen", _vermute_ ich, das die
heizungsanlage wesentlich häufiger schaltet als bei der _bewussten_ trägheit
durch die ventilstellungen.
 
Nach meinem Test siehe oben ist bei mir das Gegenteil der Fall.

Da ich nicht gut genug bin dein Super-Modul selbst zu erweitern, werde ich versuchen die "Heizungskontrolle Einfach mit HomeMatic"
so umzustricken, dass anstatt der Ventilöffnung die Desired-Temp Basis für das Ein/Ausschalten der HK-Pumpe ist bzw. wird.
Ich hoffe dass ich das hin bekomme. Natürlich ist 59_HCS.pm professioneller.

Nochmals grosses Lob
Gruss Billy


   

 

Tom

unread,
Nov 6, 2012, 4:42:43 PM11/6/12
to fhem-...@googlegroups.com
Danke euch für die Tipps hinsichtlich der Thermen-Regelung; aber wie
schon erwähnt, ich habe da keine Doku (und auch nicht vor, den
sauteuren Innen-Thermostat zu kaufen). Ich denke, ich werde es dabei
bewenden lassen, den Winterbetrieb zu schalten. Wenn ich mich denn
rantraue. ;)
Hat zufällig noch jemand einen FS20-Schaltaktor, ggf im Tausch gegen
einen FS20-LES? ;) Letztere ist dank Dewpoint mittlerweile auch
über...

@Martin: die "Trägheit" kompensiere ich ja durch die An- und
Ausschalt-Punkte. Daher hatte ich auch in meinem damaligen Posting
darauf hingewiesen, dass diese "Feintuning" brauchen! Setzt man den
Oberen Wert zu hoch ein, schaltet die Therme sehr spät, liegen die
Werte dicht beieinander, schaltet sie oft. Deine Standardwerte sind
IMHO so nah, dass man schon ein größeres Testintervall zum
"Entprellen" benötigt.

Ich bin bei der Entwicklung davon ausgegangen, dass die
Wassertemperatur nicht weiter geregelt wird, andernfalls ist ein
deutlich komplexeres Modul erforderlich. Der untere Schaltpunkt sollte
so liegen, dass man ziemlich sicher sein kann, dass man entweder im
Toleranzbereich der gefühlten Temperatur bleibt (=nicht fröstelt ;))
oder die Heizung das kurzfristig in Ordnung bringt, sobald sie wieder
auf AN geht. Umgekehrt gilt natürlich, je höher der obere Punkt, um so
"sparsamer". Aber das geht natürlich auf den Komfort. Und ein weiteres
Problem, das man nicht vergessen sollte: Die FHTs haben ihrerseits
eine PID-Regelung! Wenn man also die Werte zu weit auseinander zieht,
werden die FHTs auch "übersteuern", weil die ja nicht wissen, dass die
Wärmezufuhr nicht mehr ausschließlich durch die Ventile geregelt wird,
und versuchen das zu kompensieren.

Na ja, ich hoffe, es gelingt mir in nächster Zeit mal, mit der
Notify-Variante zu experimentieren. %-)

Martin Fischer

unread,
Nov 6, 2012, 5:28:34 PM11/6/12
to fhem-...@googlegroups.com
Am Samstag, 3. November 2012, 06:07:18 schrieb Martin Fischer:
> hiya @all,
>
> ich habe so eben ein neues modul bereit gestellt:
> HCS - heating control system

aaalso...

ich habe dann doch mal eben (naja.. mal eben wars nicht, aber egal..) das
modul noch erweitert:

neues attribut <idleperiod>

die angabe ist in minuten. damit kann eine "sperrzeit" definiert werden, wie
lange _kein_ befehl an das angebene device gesendet werden soll. damit kann
z.b. der intervall runtergesetzt werden und gleichzeitig eine "sperrzeit"
festgelegt werden.

beispiel:
<interval> 1 minute, <idleperiod> 10 minuten

es wird also jede minute geprüft ob ein oder mehrere ventile den schwellenwert
erreicht hat und dann wird geschaltet. es wird aber nur dann geschaltet, wenn
die 10 minuten verstrichen sind.

dann habe ich noch die sache mit der "funklast" gefixed. um diese zu
reduzieren kann nun das attribute <event-on-change-reading> genutzt werden.

beispiel:
<event-on-change-reading state,demand>

es wird nur dann ein befehl zum schalten gesendet, wenn der status sich
verändert hat.

und "last but not least":
auch das attribute <loglevel> kann nun genutzt werden um die logeinträge zu
reduzieren.

default ist loglevel 3 und 4.

in loglevel 3 wird angezeigt:
2012.11.06 22:05:33 3: HCS KG.hz.CC.HCS.01 Found 11 Device(s): 10 FHT, 1 HM-
CC-TC. demand: 0, idle: ....

in loglevel 4 wird angezeigt:
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 EG.bz.CC.TC.01: 5%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 EG.ez.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 EG.kz.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 EG.sz.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 EG.wz.CC.TC.01: 32%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 OG.bz.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 OG.ku.CC.TC.01: 3%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 OG.kz.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 OG.sz.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 OG.wz.CC.TC.01: 0%
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 ignore_2ec5: 0% (ignored)
2012.11.06 22:05:33 4: HCS KG.hz.CC.HCS.01 Found 11 Device(s): 10 FHT, 1 HM-
CC-TC. demand: 0, idle: ....

bei gebrauch von <idleperiod> wird _zusätzlich_ noch angezeigt:
2012.11.06 22:32:11 4: HCS KG.hz.CC.HCS.01 device KG.hz.LC.SW1.01 blocked by
idleperiod (2 min.)

möchte man nun _weniger_ logeinträge, bzw. gar keine mehr, dann kann man mit
<attr $name loglevel 4>
die ausgabe des loglevels 3 auf 4 schieben und 4 wird 5.

d.h. bei <loglevel 4> wird nur noch die zeile
2012.11.06 22:05:33 3: HCS KG.hz.CC.HCS.01 Found 11 Device(s): 10 FHT, 1 HM-
CC-TC. demand: 0, idle: ....
angezeigt.

setzt man <loglevel 5> wird _keine_ zeile mehr angezeigt, setzt man <loglevel
3> oder gar keinen loglevel, dann gelten die default ausgaben wie oben
beschrieben..

viel spass damit...

feedback (besonders zu <idleperiod>) nach tests sind erwünscht! bei mir läuft
es wie erwartet in den letzten 2 stunden...

gruss..

Martin Fischer

unread,
Nov 6, 2012, 5:36:34 PM11/6/12
to fhem-...@googlegroups.com
Am Dienstag, 6. November 2012, 13:09:51 schrieb littlebilly:
> [...]
> Nach meinem Test siehe oben ist bei mir das Gegenteil der Fall.

wie ich ja schon sagte: es war eine _vermutung_ von mir ;-)


ABER:
> Da ich nicht gut genug bin dein Super-Modul selbst zu erweitern, werde ich
> versuchen die "Heizungskontrolle Einfach mit HomeMatic"
> so umzustricken, dass anstatt der Ventilöffnung die Desired-Temp Basis für
> das Ein/Ausschalten der HK-Pumpe ist bzw. wird.
> Ich hoffe dass ich das hin bekomme. Natürlich ist 59_HCS.pm professioneller.

das heisst ja nicht, das ich es ausgeschlossen habe, das modul dahingehend zu
erweitern.. heute habe ich ja schon ein paar andere erweiterungen vorgenommen
obwohl ich im moment eigentlich den fokus auf ein anderes (weitaus)
komplexeres modul habe. allerdings bin ich mir ziemlich sicher, dass das modul
dann auch mit "offenen händen" angenommen wird ;-)

also... lass mir noch a bisserl zeit, vielleicht versuchst du das mit dem
"umstricken" zu überbrücken und dann setz ich mich mit dem thema nochmals
auseinander.. hier sind nämlich ein paar änderungen mehr zu machen, als die,
die ich eben "mal nebenbei" gemacht habe..

gruss martin

littlebilly

unread,
Nov 7, 2012, 2:00:11 AM11/7/12
to fhem-...@googlegroups.com
Hallo Martin, danke

also... lass mir noch a bisserl zeit, vielleicht versuchst du das mit dem
"umstricken" zu überbrücken und dann setz ich mich mit dem thema nochmals
auseinander..
gruss martin
 
Hatte mir das einfach vorgestellt? Im Prinzip so.

if  (desired-temp +Hyst.) > measured-temp --> HK aus
if  (desired-temp -Hyst.) < measured-temp --> HK ein 

aber die Hoffnung auf deine Hilfe stirbt zuletzt!

Billy 

Michael Bussmann

unread,
Nov 7, 2012, 3:36:38 AM11/7/12
to fhem-...@googlegroups.com
Hi,


Am Dienstag, 6. November 2012 23:28:38 UTC+1 schrieb Martin Fischer:

feedback (besonders zu <idleperiod>) nach tests sind erwünscht! bei mir läuft
es wie erwartet in den letzten 2 stunden...

Ich habe nur eine Kleinigkeit, die nur beim Betrieb mit FHT-Komponenten auffällt:
In 59_HCS:407 fehlt noch die Abfrage, ob model definiert ist.

Mit

$sumHMCCTC++  if(defined($attr{$d}{model}) && $attr{$d}{model} eq "HM-CC-TC");

gibt es dann keine lästigen Meldungen im Log.

MfG
MB

Tom

unread,
Nov 7, 2012, 12:57:07 PM11/7/12
to fhem-...@googlegroups.com
Heee Martin,

Du kannst doch nicht einfach "mal eben" umsetzen, worüber ich noch grüble?! ;-)


> es wird also jede minute geprüft ob ein oder mehrere ventile den schwellenwert
> erreicht hat und dann wird geschaltet. es wird aber nur dann geschaltet, wenn
> die 10 minuten verstrichen sind.

Exzellent. Damit brauche ich in der Tat mit Notify nicht mehr herumhampeln; öfter als 1x pro Minute wäre eh Quatsch.


> dann habe ich noch die sache mit der "funklast" gefixed. um diese zu
> reduzieren kann nun das attribute <event-on-change-reading> genutzt werden.
>
> beispiel:
> <event-on-change-reading state,demand>

Da gibt es offenbar ein Problem:

2012.11.07 17:35:20 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC. demand: 1, idle: 5, ignored: 0, excluded: 0, overdrive: no
Argument "state,demand" isn't numeric in numeric eq (==) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 285.

A propos, da kommen noch mehr Fehler beim FHEM-Start bei mir (das war, bevor ich die neuen Attribute eingesetzt habe):


2012.11.07 17:22:46 1: update A new version of fhem.pl was installed, 'shutdown restart' is required!
2012.11.07 17:23:04 0: Server shutdown
2012.11.07 17:23:07 1: Including /usr/syno/synoman/webman/3rdparty/fhem/var/fhem.cfg
2012.11.07 17:23:07 3: telnetPort: port 7072 opened
2012.11.07 17:23:08 3: WEB: port 8083 opened
2012.11.07 17:23:08 3: WEBphone: port 8084 opened
2012.11.07 17:23:08 3: WEBtablet: port 8085 opened
2012.11.07 17:23:08 3: Opening myCUNO device 192.168.1.123:2323
2012.11.07 17:23:08 3: myCUNO device opened
2012.11.07 17:23:08 3: myCUNO: Possible commands: mBCFiAGMRTVWXOefltuxEq
2012.11.07 17:23:08 1: Including /usr/syno/synoman/webman/3rdparty/fhem/FHEM/icals.cfg
Use of uninitialized value in substitution (s///) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 341, <$fh> line 173.
Use of uninitialized value in concatenation (.) or string at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 369, <$fh> line 173.
Use of uninitialized value in numeric ge (>=) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 378, <$fh> line 173.
Use of uninitialized value in substitution (s///) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 341, <$fh> line 173.
Use of uninitialized value in concatenation (.) or string at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 369, <$fh> line 173.
Use of uninitialized value in numeric ge (>=) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 378, <$fh> line 173.
Use of uninitialized value in substitution (s///) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 341, <$fh> line 173.
Use of uninitialized value in concatenation (.) or string at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 369, <$fh> line 173.
Use of uninitialized value in numeric ge (>=) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 378, <$fh> line 173.
Use of uninitialized value in substitution (s///) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 341, <$fh> line 173.
Use of uninitialized value in concatenation (.) or string at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 369, <$fh> line 173.
Use of uninitialized value in numeric ge (>=) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 378, <$fh> line 173.
Use of uninitialized value in substitution (s///) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 341, <$fh> line 173.
Use of uninitialized value in concatenation (.) or string at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 369, <$fh> line 173.
Use of uninitialized value in numeric ge (>=) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 378, <$fh> line 173.
Use of uninitialized value in substitution (s///) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 341, <$fh> line 173.
Use of uninitialized value in concatenation (.) or string at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 369, <$fh> line 173.
Use of uninitialized value in numeric ge (>=) at /usr/syno/synoman/webman/3rdparty/fhem/FHEM/59_HCS.pm line 378, <$fh> line 173.
2012.11.07 17:23:19 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC. demand: 0, idle: 6, ignored: 0, excluded: 0, overdrive: no
2012.11.07 17:23:19 2: FS20 set Winterbetrieb off
2012.11.07 17:23:20 1: Including /usr/syno/synoman/webman/3rdparty/fhem/var/fhem.save
Use of uninitialized value in string lt at /usr/syno/synoman/webman/3rdparty/fhem/fhem.pl line 1802, <$fh> line 69.
Use of uninitialized value in string lt at /usr/syno/synoman/webman/3rdparty/fhem/fhem.pl line 1802, <$fh> line 131.
Use of uninitialized value in string lt at /usr/syno/synoman/webman/3rdparty/fhem/fhem.pl line 1802, <$fh> line 208.
Use of uninitialized value in string lt at /usr/syno/synoman/webman/3rdparty/fhem/fhem.pl line 1802, <$fh> line 293.
Use of uninitialized value in string lt at /usr/syno/synoman/webman/3rdparty/fhem/fhem.pl line 1802, <$fh> line 357.
Use of uninitialized value in string lt at /usr/syno/synoman/webman/3rdparty/fhem/fhem.pl line 1802, <$fh> line 415.
2012.11.07 17:23:20 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute. Running with root privileges. Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2012.11.07 17:23:20 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2085 2012-11-05 07:32:55Z rudolfkoenig $, pid 16314)

> es wird nur dann ein befehl zum schalten gesendet, wenn der status sich
> verändert hat.

nahezu perfekt! :)

Jetzt fehlt mir persönlich eigentlich nur noch eins - sicherstellen (so gut es geht), dass "verschluckte" Funkbefehle keinen größeren Schaden anrichten.
Ich würde mir das etwa so vorstellen:

für den EIN-Status: 
Ich gehe davon aus, dass die Thermostate wenn die Therme nicht liefert immer höher aufdrehen werden (irgendwann gehen zumindest die FHT darüber hinaus auch noch in den "warning"-Status, keine Ahnung, wie das bei HM aussieht).
Daher würde ich noch einen Parameter (ein Attribut) "AlwaysSend_Threshold" hernehmen. Das wäre dann eine Ventilstellung, bei der der "ON"-Befehl IMMER gesendet wird (also auch bei "event-on-change-reading").

für den AUS-Status:
Dieser Fall ist zumindest nicht "lebensgefährlich", spielt aber durchaus eine Rolle hinsichtlich der Sparsamkeit. Im ungünstigsten Fall wird der AUS-Befehl am Ende des Winters nicht empfangen, und die Therme läuft den ganzen Sommer unnütz durch (wenn das keiner kontrolliert und FHEM nie neu gestartet wird)...
Diesen Fall würde ich im Grunde mit einem Watchdog abfangen, was zwar wohl auch ohne HCS ginge, aber deutlich uneleganter wäre: ;)
Jeweils 24 Stunden (besser: eine etwas "krummere" Zahl, damit man systematische Störungen zu einer bestimmten Uhrzeit vernachlässigen kann, also z.B. alle 23h23min) nach dem letzten SET-Befehl für den Aktor wird dieser wieder gesendet. Das belastet nichts, stellt aber sicher, dass auch OFF irgendwann passiert.

Was hältst Du davon?

> auch das attribute <loglevel> kann nun genutzt werden um die logeinträge zu
> reduzieren.

Auch sehr cool!
Frage hierzu:
Bei kleinem "interval" müllt auch bei Level 4 das Log noch ziemlich voll.

> d.h. bei <loglevel 4> wird nur noch die zeile
> 2012.11.06 22:05:33 3: HCS KG.hz.CC.HCS.01 Found 11 Device(s): 10 FHT, 1 HM-
> CC-TC. demand: 0, idle: ....
> angezeigt.

... gefolgt vom FHEM-SET-Befehl, sofern nicht durch das on-change-Attribut vermieden.
Könnte man das so realisieren, dass die Zeile da oben mit einem um 1 höheren Level geloggt wird, aber nur wenn der SET folgt?
Das würde dann bewirken, dass man auch bei loglevel 5 die Statusmeldung zusammen mit dem SET geloggt bekommt - aber auch NUR dann.

> bei gebrauch von <idleperiod> wird _zusätzlich_ noch angezeigt:
> 2012.11.06 22:32:11 4: HCS KG.hz.CC.HCS.01 device KG.hz.LC.SW1.01 blocked by
> idleperiod (2 min.)

Da fände ich es schick, wenn die Zahl in Klammern die verbleibende Wartezeit angeben würde anstelle der Konstante. =8)

Nachtrag: Noch ein Problem gerade gefunden:
Wenn man die Werte innerhalb von FHEM ändert und nicht per editieren der fhem.cfg, werden die Werte inkonsistent:

define myHCS HCS Winterbetrieb 10 40 20
attr myHCS device Winterbetrieb
attr myHCS deviceCmdOff off
attr myHCS deviceCmdOn on
attr myHCS idleperiod 10
attr myHCS interval 1
attr myHCS valveThresholdOff 20
attr myHCS valveThresholdOn 40
attr myHCS loglevel 4

...nach einem SAVE sah das so aus, nach einem FHEM-restart prüft HCS wieder alle 10 Minuten statt jeder... :(

PS2: doch nicht so inkonsistent; scheinbar ist lediglich das ERSTE Prüfintervall gemäß define-Zeile, danach kommen die Abfragen minütlich. Vielleicht sogar noch ein Überbleibsel aus dem save-status...

Allerdings habe ich auch bei loglevel 4 gerade keinerlei Einträge im Log, außer jenem vom FHEM-Start?!? :(

Jedenfalls nochmals vielen Dank für Deine Arbeit an diesem Modul!

Gruß 
Torsten

Ludger

unread,
Nov 7, 2012, 1:38:49 PM11/7/12
to fhem-...@googlegroups.com


Am Dienstag, 6. November 2012 12:53:47 UTC+1 schrieb Borsti67:


Hi,

die Idee per Notitify die Actuator Events als trigger finde ich gut.
Habe eine ähnliche Lösung  für die Beeinflussung der Brennersteuerung für den Heizkreislauf seit drei Tagen im Einsatz.

In der letzten Heizperiode  erfolgte die Steuerung  lediglich periodisch in einem 8 minütigen Intervall per "at" aufgrund der aktuellen Actuator-Zuständen der  FHTs im Haus.
Der  Wärmebedarf  in der unteren Etage im Haus wird hauptsächlich (in der Übergangszeit bis zu 80 -90 %) durch einen Specksteinofen gedeckt. Aufgrund der Abwärme von unten besteht in der  oberen Etage (Schlafzimmer, Badez. , Fitnes Hobby, Bügelzimmer)  wenig  kontinuierlicher Wärmebedarf insbesondere in der Übergangszeit.  Aber wenn, dann jedoch adhoc. Dies ist nun durch Auswerten der Actuator  Events möglich.  Eine Erhöhung der gewünschten Zimmertemperatur im Fitness-Raum  führt direkt nach der Erhöhung des Herzkörperreglers zum Brennerstart der Gasterme (Buderus GB112). (ausser sie befindet sich gerade im Warmwasser Modus).  Da der Gasbrenntwertkessel auf dem Dachboden direkt über dem Fitnessraum sich befindet, hat meine Frau direkt ein leicht hörbares feedback.

Das direkte Ansprechen des Brenners habe ich wie folgt erreicht.

     -  Umstellung der Heizungsregelung von gemischter Führung (Innen plus Außen) auf reine Außentemperatur-Steuerung.
     -  Deklaration des Hauses in der Heizungssteuerung (Buderus RC 35)  als nicht gedämmt.
     -  Durch Deaktivierung der zuvor aktivierten Brennerdrosselung durch Vorgaukeln einer höheren Außentemeratur (Reduktion des Außenfühlerwiderstandes durch schalten von parallelen Widerständen).

By the way, eine Brennerstörung durch Hin- und Herschalten von "Winter- auf Sommertemperaturen" habe  ich bisher nur bei den ersten Tests im letzten Jahr bekommen, als versehentlich mehrfach innerhalb einer Minute die Außentemperatur von 10 auf 34 Celsius und zurück geschaltet wurde.  Der Zeitpunkt des letzten Statuswechsels wird nun vorher überprüft (mindestens 1 Min) um einen derartigen Fall zu verhindern.    

Um zu verhindern, das meine Frau den Heizungstechniker holen muss,  wenn ich allein im Skiurlaub  bin, besteht folgender "Selbstheilungsprozess".
Falls von dem Fhem server , aus welchen Gründen auch immer, kein (Funk-) Schaltbefehl an das AS4 Schaltmodul (benutzt für die  Manipulation des Außentemperaturwiderstandes) gelangt, läuft der timer für die parallel Schaltung eines Parallel-Widerstandes zum Außenfühler aus und die Buderusheizungsanlage kehrt in ihren autarken Betrieb zurück.
Für den Extremfall, dass der Fhem Server permanent die Brennerdrosselung per Funk anfordert und die Anlage sich somit im "Hochsommer" wähnt, hat meine Frau die Anweisung einfach den Trafo für das AS4 Schaltmodul aus der Steckdose zu ziehen und wenn alle Stricke reißen noch einen reset  an der Buderus Anlage.  Das letztere gilt auch für den  Fall, dass widererwarten deri 15 Jahre alte Gasbrennwertkessel muckt.   Der Widerstand des Außenfühlers ist nun wieder völlig normal und die vorherige Manipulation weder äußerlich erkennbar ( da irgendwo auf der Strecke zwischen Dachboden und Fühler in 2m Höhe) noch messbar. 

Gruß,
Ludger
 

   

Hermann

unread,
Nov 7, 2012, 1:46:19 PM11/7/12
to fhem-...@googlegroups.com
Hi,

nach einem updatefhem habe ich nun folgende Einträge nach einem speichern von fhem.cfg:

2012.11.07 19:41:09 3: CUL_1: Possible commands: BCFiAGMRTVWXefmltux
Use of uninitialized value $valveState in substitution (s///) at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 341, <$fh> line 583.
Use of uninitialized value $valveState in concatenation (.) or string at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 369, <$fh> line 583.
Use of uninitialized value $valveState in numeric ge (>=) at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 378, <$fh> line 583.
Use of uninitialized value $valveState in substitution (s///) at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 341, <$fh> line 583.
Use of uninitialized value $valveState in concatenation (.) or string at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 369, <$fh> line 583.
Use of uninitialized value $valveState in numeric ge (>=) at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 378, <$fh> line 583.
Use of uninitialized value $valveState in substitution (s///) at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 341, <$fh> line 583.
Use of uninitialized value $valveState in concatenation (.) or string at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 369, <$fh> line 583.
Use of uninitialized value $valveState in numeric ge (>=) at /var/InternerSpeicher/fhem/FHEM/59_HCS.pm line 378, <$fh> line 583.
2012.11.07 19:41:13 3: HCS Waermebedarf Found 3 Device(s): 0 FHT, 3 HM-CC-TC. demand: 0, idle: 3, ignored: 0, excluded: 0, overdrive: no

Hermann


Am Samstag, 3. November 2012 06:07:20 UTC+1 schrieb Martin Fischer:
hiya @all,

ich habe so eben ein neues modul bereit gestellt:
HCS - heating control system

angeregt durch einen wiki eintrag habe ich diese idee übernommen und weiter
verfeinert. das ganze dann in ein modul "verpackt". somit ist die umsetzung
mittels 99_myUtils.pm nicht mehr nötig.

auf meiner homepage findet man unter
http://www.fischer-net.de/hausautomation/fhem/53-fhem-modul-zur-erweiterten-heizungssteuerung.html
eine ausführliche beschreibung, sowie einen kompletten aufbau mittels
HomeMatic Funk-Schaltaktor, 1-fach (HM-LC-Sw1-SM) einer HomeMatic Statusanzeige
(HM-OU-LED16) in kombination mit einem vaillant atmoTEC classic "Gas-Wandheizgerät".

an dieser stelle geht noch ein dank an benjamin für seine unterstützung!
während ich mich ums coden gekümmert habe, übernahm er freundlicherweise die
dokumentation! frei nach dem motto: anwender unterstützt entwickler.

das neue modul sollte heute bereits über "update" verteilt werden.

viel spass damit...

gruss martin

hier eine kurze beschreibung:

Das HCS (Heating Control System) Device überwacht in einem frei definierbarem
Interval (Default: 10 Minuten) den Zustand aller gefundenen Ventile. Anhand von

Martin Fischer

unread,
Nov 7, 2012, 4:27:08 PM11/7/12
to fhem-...@googlegroups.com
Am Samstag, 3. November 2012, 06:07:18 schrieb Martin Fischer:
> hiya @all,
>
> ich habe so eben ein neues modul bereit gestellt:
> HCS - heating control system

na sowas... da hat aber in diesem modul diesmal der fehlerteufel
zugeschlagen.. kenne ich ja garnicht von mir ;-)

anyway..

ich habe neben den hier berichteten fehlern noch einen weitaus schlimmeren
gefunden: die "sperrzeit" blockte auch das ausschalten aber der devicestate
wurde dennoch auf "off" gesetzt. folge: heizung lief weiter = unschön...

das habe ich gerade noch gefixed... kommt gleich ins svn..

alle weitern vorschläge schaue ich mir später an.. das wird aber etwas länger
dauern, da ich jetzt erstmal an dem anderen modul arbeite..

ein tip:
wenn _nach_ einem neustart evtl. fehlermeldungen "geschmissen" werden, kann
das auch an veralteten (durch die umstellung nicht mehr benutzen) readings
liegen.. dazu am besten _alle_ readings des HCS devices aus fhem.save löschen
(fhem beenden, fhem.save mit editor bearbeiten, fhem starten).. der "profi"
macht es direkt via perl in der commandline ;-)

noch ein tip:
ihr helft einem entwickler ungemein weiter, wenn ihr

a) die config des devices (nicht die ganze fhem-config! da hat keiner lust
drauf; es sei denn man wird dazu aufgefordert) postet

und unterstützend

b) ein "jsonlist <name_des_devices_>" sowie

c) die entsprechenden logeinträge postet

ABER: das ganze in einem "gesunden" verhältnis, also nur relevante
"ausschnitte"

:-)

gruss martin

borsti

unread,
Nov 9, 2012, 12:33:27 AM11/9/12
to fhem-...@googlegroups.com
Hi Martin,

> ich habe neben den hier berichteten fehlern noch einen weitaus
schlimmeren

das funktioniert leider immer noch noch nicht richtig (vor ca. 30min
UPDATE gemacht):

2012.11.09 06:22:28 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC.
demand: 1, idle: 5, ignored: 0, excluded: 0, overdrive: no
2012.11.09 06:23:28 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC.
demand: 1, idle: 5, ignored: 0, excluded: 0, overdrive: no
2012.11.09 06:24:28 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC.
demand: 1, idle: 5, ignored: 0, excluded: 0, overdrive: no
Use of uninitialized value in concatenation (.) or string at
/usr/syno/synoman/webman/3rdparty/fhem/FHEM/01_FHEMWEB.pm line 731.
2012.11.09 06:25:28 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC.
demand: 1, idle: 5, ignored: 0, excluded: 0, overdrive: no
2012.11.09 06:26:28 3: HCS myHCS Found 6 Device(s): 6 FHT, 0 HM-CC-TC.
demand: 0, idle: 6, ignored: 0, excluded: 0, overdrive: no

(keine Ahnung, wo der uninitialized value herkommt?)

Da h�tte ja nun zum Schluss ein OFF-Befehl kommen m�ssen, oder?

so ist das Device definiert:

define myHCS HCS Winterbetrieb 1 40 20
attr myHCS device Winterbetrieb
attr myHCS deviceCmdOff off
attr myHCS deviceCmdOn on
attr myHCS icon icoTermHaus
attr myHCS idleperiod 10
attr myHCS interval 1
attr myHCS valveThresholdOff 20
attr myHCS valveThresholdOn 40
attr myHCS event-on-change-reading state,demand


Gru�
Torsten

Steffen

unread,
Nov 9, 2012, 7:59:41 AM11/9/12
to fhem-...@googlegroups.com
Hallo!

Ich habe noch ein Problem mit event-on-change-reading, mit dieser Einstellung(siehe unten),
wird die Device bei demand nicht geschaltet, wenn ich diese entferne da ja!
Woran könnte es liegen, ein Fehler bei nur bei mir oder hat das jemand schon anders??

Readings
Heizung_OG_BA_demand
02012-11-09 13:53:17
Heizung_OG_BA_state
0% (excluded)2012-11-09 13:53:17
Wz_Heizung1_demand
12012-11-09 13:53:17
Wz_Heizung1_state
28%2012-11-09 13:53:17
device
on2012-11-09 13:53:17
overdrive
02012-11-09 13:53:17
sensor
20.22012-11-03 17:57:39
state
demand2012-11-09 13:53:17

 Warmebedarf 
device
LuefterHeizung
deleteattr
deviceCmdOff
off
deleteattr
deviceCmdOn
on
deleteattr
event-on-change-reading
state,demand
deleteattr
interval
5
deleteattr
loglevel
5
deleteattr
sensor
Wz_Heizung1
deleteattr
sensorReading
measured-temp
deleteattr
valveThresholdOff
10
deleteattr
valveThresholdOn
15
deleteattr
valvesExcluded
Heizung_OG_BA
deleteattr





Willi

unread,
Nov 9, 2012, 8:39:52 AM11/9/12
to fhem-...@googlegroups.com
Gemäß Deinem Screenshot heisst das Reading "Wz_Heizung1_demand" und nicht "demand".
Daher musst Du das bei event-on-change vermutlich auch entsprechend setzen.

MfG Willi

Steffen

unread,
Nov 9, 2012, 8:57:03 AM11/9/12
to fhem-...@googlegroups.com
Hallo!

Danke für deine schnelle Antowrt, aber leider klappt es mit deinem Tip auch nicht!
Hatte auch versucht: event-on-change-reading Wz_Heizung1_state,Wz_Heizung1_demand aber kein erfolg!
mfg Steffen

Hermann

unread,
Nov 9, 2012, 11:59:33 AM11/9/12
to fhem-...@googlegroups.com
Hallo,

Ich weiss nicht ob es hier passt aber ich hab da mal ne prinzipielle Frage zur Heizungssteuerung.
Bei mir z.B. kann ich die Steuerung nur realisieren in dem ich die Heizkreisumwälzpumpe mit HCS EIN/AUS-schalten lasse. Kann ich denn überhaupt eine Einspaarung erzielen wenn ich eine moderne Umwälzpumpe eingebaut habe, die ihre Leistung bei wenig Abnahme zurückfährt ?
Bzw. ist es bei grosser Kälte nicht prinzipiell gut wenn eine Zirkulation stattfindet (auch wenn die Heizkörper nicht offen sind) ? Vieleicht hat sich von Euch auch schon der eine oder andere den Kopf darüber zerbrochen und kann mir seine Sicht der Dinge dazu sagen. Wenns hier nicht passt gerne auch per PM.
Hermann


Am Samstag, 3. November 2012 06:07:20 UTC+1 schrieb Martin Fischer:
hiya @all,

ich habe so eben ein neues modul bereit gestellt:
HCS - heating control system

littlebilly

unread,
Nov 9, 2012, 1:50:40 PM11/9/12
to fhem-...@googlegroups.com
Hallo,


Bei mir z.B. kann ich die Steuerung nur realisieren in dem ich die Heizkreisumwälzpumpe mit HCS EIN/AUS-schalten lasse. Kann ich denn überhaupt eine Einspaarung erzielen wenn ich eine moderne Umwälzpumpe eingebaut habe, die ihre Leistung bei wenig Abnahme zurückfährt ?

Ich denke das hängt von der Systemauslegung ab. Du hast recht, beim Einsatz dieser modernen Differenzdruck gesteuerten Pumpen ist der Einspareffekt auf jeden Fall geringer.
 
Bzw. ist es bei grosser Kälte nicht prinzipiell gut wenn eine Zirkulation stattfindet (auch wenn die Heizkörper nicht offen sind) ?

Wie gesagt, das hängt vom Gesamtsystem Haus ab. Ich habe z.B. eine 16cm starke Aussenisolierung angebracht und komme an Tagen wie heute
mit etwa 3-4 einstündigen Laufzeit der HK-Pumpe aus! Die HK-Pumpe ist von 22:00 - 05:00 komplett ausgeschaltet und trotzdem habe ich nur einen Temp- Abfall von ca. 1-max 2° in diesen 7h. Eine Zirkulation ist in diesem Fall absolut unnötig!
Hätte ich eine Fussbodenheizung würde ich das auf Grund der höheren Trägheit des Systems anders regeln.

Gruss
Billy 
Reply all
Reply to author
Forward
0 new messages