FHEM - Hausautomations-Systeme > Kalendermodule

[neues feature] WeekdayTimer mit weekprofile steuern

<< < (15/17) > >>

Wardancer:
Hi,

versuche mich gerade daran zu verstehen, wie ich weekprofiles einsetzen könnte. Gibt es mittlerweile ein Beispiel, was jemand einmal posten könnte? Ein einfaches ohne Profile wäre ja schonmal ein Anfang. Ich stehe gerade auf dem Schlauch was ich jetzt wo, wie eintragen müsste und wie ich die WDT-Device(s?) einstellen müsste damit is klappt.

Danke für jeden Denkanstoß :)

guhu:
Hier ein Beispiel für meinen Flur:

--- Code: ---defmod HCF WeekdayTimer HzThrmst7_Clima weekprofile:weekprf:true {\
my $offset= ReadingsVal("HControl","offset",0);;\
my $tmp=$EVENT - $offset;;\
if ($tmp < 14) { $tmp=$EVENT;;}\
fhem "set $NAME desired-temp $tmp"\
}\

attr HCF userattr Heating_Control Heating_Control_map structexclude weekprofile
attr HCF alias Flur
attr HCF commandTemplate 1
attr HCF disable 0
attr HCF group Heizplan
attr HCF room Flur,Heizung
attr HCF switchInThePast 1

setstate HCF 20.0
setstate HCF 2021-01-01 08:30:00 currValue 20.0
setstate HCF 2020-10-12 21:51:02 disabled 0
setstate HCF 2021-01-01 08:30:00 nextUpdate 2021-01-01 21:00:00
setstate HCF 2021-01-01 08:30:00 nextValue 16.0
setstate HCF 2021-01-01 08:30:00 state 20.0
setstate HCF 2021-01-01 06:00:00 weekprofiles weekprf:default:FlurHO
--- Ende Code ---

Wardancer:
Danke!

soweit ich das jetzt verstanden habe, braucht man weiterhin ein WDT pro Thermostat ( wegen dem Device, was man schalten möchte ), aber wieviele Weeprofiles gibts denn dann sinnvollerweise? Wie habt ihr das gelöst? Ein Weekprofile pro Thermostat, oder pro Thermostat-Gruppe? macht ihr das über Profile? Und wo kommen jetzt die Topics ins Spiel? Topics wären wohl dann sinnvoll, wenn man noch eine Urlaubsschaltung, oder einen Party-Mode möchte, oder?

guhu:
ich habe alles in einem Device, ohne Topics gemacht. KISS

Beta-User:

--- Zitat von: guhu am 01 Januar 2021, 22:12:26 ---ich habe alles in einem Device, ohne Topics gemacht. KISS

--- Ende Zitat ---
Danke mal für die Rückmeldung, dass auch das stressfrei funktioniert.

Gedacht hatte ich das aber MIT Topics, und ich finde, das ist ebenfalls simpel, wenn man's mal verstanden hat...

Mal eine Erweiterung des Code-Beispiels:

1. Verbindung vom weekprofile-Device (weekprf) zum WeekdayTimer herstellen:

--- Code: ---attr HCF weekprofile Flur
--- Ende Code ---
Unter der "entity" "Flur" ist dann (mind. der Heizkörper "HzThrmst7_Clima") bekannt. Das könnten auch mehrere sein.

2. weekprofile-Device (weekprf) für Topic-Nutzung zulassen:

--- Code: ---attr weekprf useTopics 1

--- Ende Code ---

3. Beispiele für Profile im topic:entity-Format (weekprofiles ist mein weekprofile-Device):

--- Code: ---get weekprofiles profile_data default:Flur
--- Ende Code ---
liefert:

--- Code: ---{"Mon":{"temp":["19.0","21.5","20.5","21.0","19.0"],"time":["05:30","08:00","12:30","22:00","24:00"]},"Thu":{"temp":["19.0","21.5","20.5","21.0","19.0"],"time":["05:30","08:00","12:30","22:00","24:00"]},"Fri":{"temp":["19.0","21.5","20.5","21.0","19.0"],"time":["05:30","08:00","12:30","23:00","24:00"]},"Tue":{"time":["05:30","08:00","12:30","22:00","24:00"],"temp":["19.0","21.5","20.5","21.0","19.0"]},"Wed":{"time":["05:30","08:00","12:30","22:00","24:00"],"temp":["19.0","21.5","20.5","21.0","19.0"]},"Sun":{"time":["06:00","22:30","24:00"],"temp":["19.0","22.0","19.0"]},"Sat":{"temp":["19.0","22.0","20.5"],"time":["06:00","22:30","24:00"]}}
--- Ende Code ---

--- Code: ---get weekprofiles profile_data Ferien:Flur
--- Ende Code ---

--- Code: ---{"Tue":{"temp":["19.5","22.5","21.0","22.5","20.0"],"time":["06:30","07:30","09:00","22:30","24:00"]},"Wed":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.5","22.5","21.0","22.5","20.0"]},"Sat":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.0","20.0","21.0","22.0","20.0"]},"Sun":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.0","20.0","21.0","22.5","20.0"]},"Thu":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.5","22.5","21.0","22.5","20.0"]},"Mon":{"temp":["19.5","22.5","21.0","22.5","20.0"],"time":["06:30","07:30","09:00","22:30","24:00"]},"Fri":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.5","22.5","21.0","22.5","20.0"]}}
--- Ende Code ---
(Das ist weekprofile-intern nur eine Referenz auf ein anderes Profil).
Du kannst dann ja testweise diese Daten einfach mal nehmen und beide Profile mal als Musterprofile in weekprf anlegen. Das geht mit den obigen JSON schnell und einfach, z.B.:

--- Code: ---set weekprofiles profile_data Ferien:Flur {"Tue":{"temp":["19.5","22.5","21.0","22.5","20.0"],"time":["06:30","07:30","09:00","22:30","24:00"]},"Wed":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.5","22.5","21.0","22.5","20.0"]},"Sat":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.0","20.0","21.0","22.0","20.0"]},"Sun":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.0","20.0","21.0","22.5","20.0"]},"Thu":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.5","22.5","21.0","22.5","20.0"]},"Mon":{"temp":["19.5","22.5","21.0","22.5","20.0"],"time":["06:30","07:30","09:00","22:30","24:00"]},"Fri":{"time":["06:30","07:30","09:00","22:30","24:00"],"temp":["19.5","22.5","21.0","22.5","20.0"]}}
--- Ende Code ---

Hier hatte ich dazu auch mal was geschrieben:

--- Zitat von: Beta-User am 23 Dezember 2020, 10:14:04 ---In das Eingabefeld (so man das überhaupt direkt nutzen will...!?!) gehören:

--- Code: ---set <m2-devicename> weekprofile <weekprofile-devicename> <weekprofile-identifier>
--- Ende Code ---

<weekprofile-identifier> ist dabei ein Paar aus <topic>:<entity>.

Rund um diesen Beitrag sollte da etwas mehr dazu zu finden sein, gilt hier 1:1 genauso.

Kurzfassung:
(Mind.) ein weekprofile-Device muss existieren, dort sollte useTopics aktiviert sein.
Dann sollte es da einige Profile geben, wobei eben immer das, was "dasselbe Ziel" hat, unter einer "entity" gruppiert wird.
Im m2-Device sollte diese "entity" dann im Attribut "weekprofile" angegeben sein, damit weekprofile seine "Clients" darüber findet. (Im Moment sollte da der Name des m2-Device drin stehen, das kann man aber ändern). Nach jeder Anpassung des Attributs bitte einmal die DEF des m2-Device anfassen, damit weekprofile seine Clients aktualisiert.

Dann kann man über einen Topic-Wechsel direkt alle Clients ansteuern, weekprofile sendet dann genau den passenden Befehl an die "Schnittstelle" weekprofile-setter am m2-Device.

--- Ende Zitat ---
Ist zwar zu MQTT2_DEVICE, aber die Funktionalität ist hier wie dort identisch...

Es wäre gut, wenn jemand mal eine kleine Muster-Implementierung für's Wiki liefern würde; ich fand das ganze auch relativ komplex, bis das erst mal stand. Jetzt ist es so einfach, wie ich mir das ursprünglich mal gedacht hatte.

An der Stelle mal mein Testcode (!) für den Spirit. Der ist im Hauswirtschaftsraum, der hin und wieder auch zum Wäschetrocknen genutzt wird. Dann soll da geheizt werden, sonst nur ein Grundlevel gehalten, die Umschaltung der Topics macht ein THRESHOLD, der auf die Raumsensor-humidity "hört". Dabei macht es keinen Unterschied, ob da nur der eine WDT diese "entity" repräsentiert, oder ob es mehrere sind (oder auch "echte" HK-Thermostate direkt addressiert werden, was weekprofile ja auch kann), oder ob dann noch weitere Device da sind, die dieselben Topics kennen:
--- Code: ---get weekprofiles profile_data normal:Abstellkammer

--- Ende Code ---

--- Code: ---{"Sat":{"time":["08:00","10:00","12:00","13:00","17:00","18:00","24:00"],"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"]},"Sun":{"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"],"time":["08:10","10:10","12:10","13:10","17:10","18:10","24:00"]},"Tue":{"time":["08:00","10:00","12:00","13:00","17:00","18:00","24:00"],"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"]},"Wed":{"time":["08:00","10:00","12:00","13:00","17:00","18:00","24:00"],"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"]},"Fri":{"time":["08:00","10:00","12:00","13:00","17:00","18:00","24:00"],"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"]},"Thu":{"time":["08:00","10:00","12:00","13:00","17:00","18:00","24:00"],"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"]},"Mon":{"time":["08:00","10:00","12:00","13:00","17:00","18:00","24:00"],"temp":["18.0","19.0","18.5","19.0","18.0","18.5","18.0"]}}
--- Ende Code ---

--- Code: ---get weekprofiles profile_data Trocknen:Abstellkammer
--- Ende Code ---

--- Code: ---{"Sat":{"time":["24:00"],"temp":["22.0"]},"Sun":{"temp":["22.0"],"time":["24:00"]},"Wed":{"temp":["22.0"],"time":["24:00"]},"Tue":{"time":["24:00"],"temp":["22.0"]},"Fri":{"time":["24:00"],"temp":["22.0"]},"Mon":{"time":["24:00"],"temp":["22.0"]},"Thu":{"time":["24:00"],"temp":["22.0"]}}
--- Ende Code ---

--- Code: ---defmod thd_Abstellkammer THRESHOLD Raumfuehler_Abstellkammer:humidity:3:60 weekprofiles |set @ restore_topic Trocknen|set @ restore_topic normal|0
attr thd_Abstellkammer desiredActivate 1
attr thd_Abstellkammer state_cmd1_gt on
attr thd_Abstellkammer state_cmd2_lt off

--- Ende Code ---

Kurz: man kann mit einem einzigen kurzen Befehl den kompletten Heizmodus eines Gebäudes umstellen, indem man das Topic wechselt. Ich finde das eher KISS als dann jeden WDT oder Thermostaten einzeln anfassen zu müssen ;) .

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln