[neues feature] Thermostatsteuerung mit WeekdayTimer + weekprofile

Begonnen von Beta-User, 04 Dezember 2019, 07:37:30

Vorheriges Thema - Nächstes Thema

Beta-User

Hallo zusammen,

seit dem update vom Wochenende arbeiten die Module weekprofile und WeekdayTimer enger zusammen.

Damit besteht (für Temperaturprofile) die Möglichkeit, die über WeekdayTimer ausgeführten Wochenprofile dynamisch während des Betriebs zu ändern (ohne dabei dessen Definition anzufassen), und dabei die vollen Möglichkeiten zu nutzen, die weekprofile bietet, wie "Topics", die Integration verschiedener Hardware-Tyen und das Eingabewidget in FHEMWEB.

So ist es z.B. auf einfache Weise möglich, neben den bereits von weekprofile unmittelbar unterstützten Hardware-Typen auch einen Z-Wave- oder MQTT2_DEVICE-Thermostat, das selbst keine Wochenprofile verwalten kann, zwischen Normal- und Urlaubs-Modus umzuschalten, oder zwischen "Arbeit im Büro" und Home-Office, oder entsprechend des jeweiligen Schichtplans, usw..

Das Zusammenspiel sieht wie folgt aus:

1. Auf der WeekdayTimer-Seite

Im WeekdayTimer ist ein weekplan-Device in der Definition so anzugeben: "weekprofile:<device-name>[:true]".

"weekprofile" wird als Schlüsselbegriff verwendet, dann kommt der Name des weekprofile-Devices, zuletzt kann (optional) durch ein ":true" festgelegt werden, ob das Profil des Sonntags verwendet werden soll, wenn $we ist (also auch für Sa., wenn man nichts spezielles über holiday2we eingestellt hat).

Zunächst wird als Profilname (und Topic) "default" verwendet, es gibt einen setter "weekprofile", hier kann man "<weekprofile-device>:<topic>:<profile>" einstellen. Hat man mindestens eine weekprofile-Angabe in der DEF, gibt es ein Reading namens "weekprofiles". Dieses enthält beim Start/bei der Neuanlage mindestens eine Angabe mit dem Namen des ersten weekprofile in der DEF und :default:default" am Ende.

Nutzt man später den setter, wird für jedes gültige weekprofile-Device (Prüfung, ob Name und TYPE passen) dann das triplett wie oben angegeben in das Reading geschrieben, das ganze für mehrere weekprofile-Devices Leerzeichen-separiert, wobei immer nur ein Eintrag pro weekprofile-Device gültig ist, ungültige Angaben/Versuche findet man mit verbose-3-Level im log. Theoretisch können also auch mehrere Profile kombiniert werden, ob dies allerdings wirklich einen Mehrwert bietet, sei mal dahingestellt.

Nutzt man keine Topics, ist stattdessen immer "default" als Topic anzugeben.

Als erste Schaltzeit wird statt 00:00 Uhr 00:10 Uhr verwendet, da der WDT täglich erst die eigene Tagesauswertung fahren muß, bevor anschließend sämtliche Timer für den Tag gesetzt werden können.

Beispiel einer Definition eines WeekdayTimers:
defmod Timer_ZWaveThermostat WeekdayTimer myZWave_Thermostat weekprofile:myWeekprofiles

Festlegen eines bestimmten im weekprofile-Device vorhandenen Profils (Topic: Urlaub, Profilname: Wohnzimmer, das Profil wird direkt zur Ermittlung der Schaltzeiten übernommen):
set Timer_ZWaveThermostat weekprofile myWeekprofiles:Urlaub:Wohnzimmer

2. Auf der weekprofile-Seite

Aus weekprofile-Sicht verhält sich ein WeekdayTimer wie ein normales Thermostat. Ein aktualisiertes oder anderes Profil kann also von weekprofile her auch so aktiviert werden:

set myWeekprofiles send_to_device Urlaub:Wohnzimmer Timer_ZWaveThermostat

Eine Umstellung von mehreren Geräten unterschiedlicher Device-Typen sieht dann z.B. so aus:
set myWeekprofiles send_to_device Urlaub:Wohnzimmer Timer_ZWave_Thermostat,myMAX_Thermostat,myCUL_HM_Climate_Thermostat

Unser Dank gilt @FHEM-User22, der den Impuls zu dieser gemeinsamen Entwicklung geliefert hat.

Wir wünschen euch viel Freude an den erweiterten Möglichkeiten!

Risiko und Beta-User

PS:
Sollte was nicht so funktionieren wie erwartet, bitte feedback im jeweils zum Modul gehörenden Bereich (weekprofile: Frontends, WeekdayTimer: Unterstützende Dienste bzw. der Entwicklungs-Thread hier), sofern das nicht so eindeutig zu klären ist, kann auch ein Link hier gepostet werden.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files