FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: wmr72 am 10 Dezember 2014, 13:19:31

Titel: Heizung über dummys steuern
Beitrag von: wmr72 am 10 Dezember 2014, 13:19:31
Hallo,

ich hab lange im Forum gesucht und nix fertiges gefunden und es am Ende dann eben selbst gebastelt. Ich habe mehrere FHT- und Homematic-Funkthermostate, die im Webfrontend ja bekanntlich ein Dropdown für desired-temp haben. Über das Dropdown kann man die Temperatur setzen, allerdings springt es auf den alten Wert zurück bis der Thermostat den Wert auch bestätigt hat. Das hat einen ziemlich schlechten WAF, da es insbesondere bei den FHTs schon mal eine ganze Weile dauert. Also hab ich das über dummys und notifys gelöst, damit ich nicht für jeden einzeln ein Notify brauche hab ich ein einheitliches Namensschema und das Ganze sieht jetzt so aus:

* Die Thermostate heißen og_heizung_<zimmer> und dg_heizung_<zimmer>
* Die Dummys heißen wie die Thermostate mit vorangestelltem helper, also z.B. helper_og_heizung_kueche
* Es gibt ein notify was den Dropdown der helper-Dummys an die Thermostate überträgt:

define n_helper_heizung notify helper_[od]g_heizung_.*:[0-9][0-9].[05] {
    Log 4, "$NAME triggered event $EVENT, replicating to " . substr($NAME, 7);
    fhem "set ". substr($NAME, 7) . " desired-temp $EVENT";
}


* Es gibt ein notify was die bestätigte desired-temp der Thermostate an die Dummys überträgt, damit händische Änderungen am Thermostat im Frontend ankommen. Um Rückkopplungen zu vermeiden wird der erste Notify währenddessen abgeschaltet:

define n_heizung_desired notify [od]g_heizung_.*desired-temp:.* {
    fhem "attr n_helper_heizung disable 1; set helper_$NAME $EVTPART1; attr n_helper_heizung disable 0";
    Log 4, "desired-temp on $NAME set to $EVTPART1, replicating to helper_$NAME";
}


Vielleicht kann es ja jemand gebrauchen. Falls das alles schon irgendwo aufgeschrieben steht würde mich interessieren wo, ich hab es nämlich wie gesagt nicht gefunden.
Titel: Antw:Heizung über dummys steuern
Beitrag von: PichlAlex am 10 Dezember 2014, 14:14:28
Bitte ins Wiki aufnehmen!