FHEM > Codeschnipsel

39_VALVES - kleines Helferlein um Positionen von Heizungsthermostate auszuwerten

(1/20) > >>

epsrw1:
hier ein kleines helferlein um einen halbwegs sinnvollen und individuell gewichteten durchschnittswert der ventilpositionen mehrerer heizungsthermostate zu berechnen.
die idee ist quasi aus der not entstanden, es war mir zu umständlich die readings einzeln von einem remote fhem zu holen der selbst remote des systems ist das die daten haben will (rekursivproblem...). so kann ich direkt auf meinem heizungs-rechner mit den daten arbeiten die von einem anderen server verarbeitet werden.

die liste aller thermostate wird in einem attr eingestellt, name des readings in einem weiteren. das modul prüft dann regelmäßig (attr: poll interval) die daten des fhem-devices und berechnet neu wenn ein update vorhanden ist.
für die berechnung kann man folgende einstellungen vorgeben:
-ignoriere niedrigste 0...3 positionen
-ignoriere höchste 0...3 positionen
-ignoriere namentlich genannte devices
-priority-device liste (zählen doppelt)
-optionale einzeleinstellung für jeden thermostat, multipliziere mit attr-wert (zB:0,95 um 5% der position abzuziehen) um schlechten hydraulischen abgleich zu kompensieren

readings:
state ->mittelwert nach oben beschriebener berechnung
valve_<Devicename> -> berechnete virtuelle ventilstellung pro gerät
valveDetail_<Devicename> -> debug info mit details
raw_average -> simpler mittelwert ohne berücksichtigung der gewichtungen (ignores werden auch hier ignoriert)
valve_max -> größte aktuelle ventilöffnung
valve_min -> kleinste aktuelle ventilöffnung

in der theorie sollte es mit allen möglichen thermostaten funktionieren, falls jemand feststellt daß es mit irgendeinem hersteller inkompatibel ist versuche ich gerne das nachzurüsten.

doku ist nicht meine stärke, aber es gibt wie immer den befehl "get attrHelp ....."

LG, florian



--- Code: ---# $Id: 39_VALVES.pm 1015 2016-12-04 09:55:00Z Florian Duesterwald $


--- Ende Code ---

http://www.fhemwiki.de/wiki/Raumbedarfsabh%C3%A4ngige_Heizungssteuerung
http://www.fhemwiki.de/wiki/VALVES

CQuadrat:
Hallo Florian,

an genau so etwas bastele ich zur Zeit auch herum. Allerdings wollte ich das mit dummys realisieren. Dein Ansatz ist da deutlich schicker  ;)

Was ich aber nicht sehe, wo die Gewichtung der einzelnen Heizkörper herkommt. Ich vermute mal, dass jeder Heizkörper nach seiner Größe/Heizleistung in die Mittelwertberechnung einfließt. Korrekt?


Viele Grüße

Christoph

epsrw1:
christoph,
die dummy lösung watr mir zu unhandlich, insbesondere das einzelne abrufen vom remote fhem...


--- Zitat ---Was ich aber nicht sehe, wo die Gewichtung der einzelnen Heizkörper herkommt. Ich vermute mal, dass jeder Heizkörper nach seiner Größe/Heizleistung in die Mittelwertberechnung einfließt.
--- Ende Zitat ---

zu Deiner frage:
die individuelle gewichtung kann über attr. eingestellt werden.
die attr sind zunächst nicht vorhanden, und werden der attr.List erst hinzugefügt wenn Du attr valvesDeviceList Heizg1,Heizg2,Heitg3,... ausführst. danach ist im attr dropdown valvesHeizg1Gewichtung valvesHeizg2Gewichtung usw.. vorhanden.
(beim start ohne eigenes List attr werden nur die defaults verwendet, dabei auch nicht die extra attr angelegt.)

ich würde statt heizleistung/fläche etc... eher einen individuellen erfahrungswert als maß der dinge nehmen für diese einstellung, man weiß ja, im raum weit weg von der heizung mit dem sehr kleinen heizkörper ist die ventilstellung in der regel eher 60% statt 50%, d.h. unterschied für das einzelattr wäre 1.2 (durchschnitt(50%) * attr (1.2) = 60%
edit (hab ich falsch erklärt):d.h. unterschied für das einzelattr wäre
--- Code: ---0.8 (durchschnitt(60%) * attr (0.8) = 50%
--- Ende Code ---
->50% werden für die berechnung angenommen obwohl tatsächliche ventilpos. höher

rechnerisch könnte man mit einigem aufwand das verhältnis heizleistung./.wärmebedarf des raums (aus: raumvolumen./.isolierungsqualität./.wunschtemperatur./. ... ... usw) nehmen um auf das gleiche zu kommen. dazu bin ich persönlich jedoch zu bequem ;)

LG, florian

epsrw1:
mini-doku

edit: in ersten beitrag des threads verschoben

cwagner:
Hi Florian,

die abzufragenden Ventile müssen als Liste, können nicht als RegEx á la "Aktor.*" eingetragen werden?

Herzliche Grüße

Christian

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln