Weekprofil: Topics und Weekdaytimer

Begonnen von morfey, 14 Dezember 2020, 16:54:19

Vorheriges Thema - Nächstes Thema

Beta-User

Na ja, letztlich geht es mir darum, einfach _einen_ (einfachen) Schalter auf eine bestimmte Position "umlegen" zu können, und der Rest funktioniert automatisch.

Dafür _glaubte_ ich beim Konzipieren der WDT+weekprofile-Geschichte, dass es sinnvoll wäre, v.a. das Topic-feature zu unterstützen, weil man eben über das Aktivieren eines Topics beliebig viele "Effektivprofile" an beliebig viele Clients senden kann, ohne dann noch groß darüber nachdenken zu müssen, auf welchen Client das jetzt wie im einzelnen übertragen werden muss, wenn die Struktur mal steht.

Wenn dir das zu kompliziert ist, kannst du das auch anders machen, solange du irgendwie dafür sorgst, dass der jeweilige WDT am Ende die Infos im passenden Format erhält... Das geht auch per Einzelanweisung an jeden WDT oder per Kommasepariertem Kommando via weekprofile, kein Ding.

Vielleicht nochmal ein Beispiel, wie ich mir das denke (und es wohl auch einige umgesetzt haben):
Bei mir ist eben z.B. einen Topic "alle_Kinder_abwesend" in Planung, das dann die Thermostate für einen ganzen Stock auf "niemand da" stellt (na ja, grade mache ich das über einen Moduswechsel an den Thermostaten auf "manuell xy Grad, aber sowas funktioniert z.B. mit dem Eurotronics Spirit afaik nicht so einfach, der braucht halt ein anderes "Profil" mit konstantem Wert).
Dabei sind dann diese zusätzlichen "topic:Einzelthermostat"-Paare nur Referenzen auf das "abwesend:default"-Profil...
Dann setze ich ggf. den Topic "alle_Kinder_abwesend" (=ein kurzer Befehl an weekprofile für alle Thermostate), und alle Thermostate, die den Topic haben, bekommen das betreffende Profil verpaßt, done...

Aber nochmal: TIMTOWTDI ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

morfey

Hi, ich nochmal ...
Ich habe nochmal in der Doku genau nachgelesen:
"(...) Topics sind z.B. Winter, Sommer, Urlaub, Party, etc. Innerhalb einer Topic kann es mehrere Wochenprofile
geben. Sinnvollerweise sollten es soviele wie Thermostate sein."
Das ist mir klar!
Bisher habe ich als Profil bad und default. Als Topic nur default.
nun kann ich ein neues Profil und Topic urlaub anlegen.
So wie ich das verstehe, muss ich ein Topic immer an ein Profil binden richtig? Es ist nicht möglich, ein Topic ohne Profil anzulegen?
Die Verknüpfung meines Topics urlaub aus dem Profil urlaub in das Profil bad mache ich durch referenzierung?
Hab ich das jetzt so richtig verstanden?
PS.: In der Doku sind mir mind. zwei kleinere Fehler aufgefallen, wie könnten wir die am einfachsten korrigieren?

Beta-User

Wie schon geschrieben, meine ich, es ist geschickter, bei Topic-Nutzung zu sagen, dass ein Profil immer durch "topic:entity" beschrieben wird.

Die Frage nach "topic" ohne "entity" macht daher in meinem Wording keinen Sinn.

Wenn du jetzt also ein neues "Basisprofil" für "Urlaub erstellen willst, geht das vermutlich am einfachsten, indem du eines als "Urlaub:default" erstellst, also unterhalb der "entity" "default", und dann in der "entity" "bad" machst du dann als "Urlaub:bad" nur eine Referenz auf "Urlaub:default". Das aber nur aus dem Grund, dass du leichter das (als einziges editierbare) Grundprofil wiederfindest, (in der "entity" "default").

Bei der Doku (soweit es um das Wiki geht?) gebe ich dir recht, die ist zum Thema Topics auch nach meinem Eindruck sehr kurz.
Vorschläge zur commandref kannst du gerne im Thread zu weekprofile einkippen, soweit es das Wiki betrifft, glaube ich die Sache soweit verstanden zu haben, dass ich einen kritischen Blick über eventuelle Änderungsvorschläge werfen kann und das dann reinbasteln.
Betr. Wiki wäre am geschicktesten, wenn du dir den Quelltext anzeigen läßt, den kopierst und dann mit einem (möglichst simplen) Texteditor einfach die Änderungen reinarbeitest. Bitte nicht groß um Formatierung kümmern (ggf. irgendwie als Text kennzeichnen). Dann gerne hier in Code-Tags oder als txt-Anhang, dto. mit Bildern usw.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

hadenia

Hallo, ich hänge mich hier mal mit dran da ich auch versuche, meine Euronic Spirit mit der Kombination Weekdaytimer und Weekprofil zum laufen zu bekommen.
Mein Problem ist, dass der Thermostat nicht auf das Temperaturprofil reagiert, also immer die gleiche Temperatur hat.
@Beta-User: Nochmal vielen Dank für deine unermüdliche Hilfe

Mein Setup:
Es gibt nur ein Wochenprofil:  Test_Weekprofile

In diesem Profil wird ein Heizkörper definiert:
Entity: Buero_Heizkoerper_rechts

Es gibt eine ,,Szene":
Topic: Winter

Das habe ich eingegeben:
define Test_Weekprofile weekprofile
set Test_Weekprofile weekprofile Test_Weekprofile:Winter:Buero_Heizkoerper_rechts

Dann habe ich Entity und Topic im Backend gesetzt und den Weekdaytimer definiert:

define HZ_Timer_Buero_Heizkoerper_rechts WeekdayTimer ZWave_THERMOSTAT_4 weekprofile:Winter:Buero_Heizkoerper_rechts commandTemplate set $NAME $EVENT
set HZ_Timer_Buero_Heizkoerper_rechts weekprofile Test_Weekprofile:Winter:Buero_Heizkoerper_rechts
set Test_Weekprofile send_to_device Winter:Buero_Heizkoerper_rechts HZ_Timer_Buero_Heizkoerper_rechts

Anschließend habe ich im FTUI die Schaltzeiten eingegeben:
<div id="weekprofile_ftui"
      data-type="weekprofile"
      data-device="Test_Weekprofile"
      data-profile="Winter:Buero_Heizkoerper_rechts"
      data-title="Buero rechts"
      data-style="round"
      data-theme="green"
      data-height="400"
      data-width="auto">
      <div data-type="button"
        class="readonly"
        data-icon="fa-calendar"
        data-background-icon="fa-circle"
        data-on-background-color="green"
      > </div> </div>


Test_Weekprofile:
Internals:
   FUUID      5fd900bc-f33f-51ed-ba84-3aeb8704067d9edd
   NAME       Test_Weekprofile
   NR         138
   NTFY_ORDER 50-Test_Weekprofile
   STATE      created
   TYPE       weekprofile
   PROFILES:
     HASH(0x19683a0)
     HASH(0x1966c90)
   READINGS:
     2020-12-15 20:15:53   profile_count   2
     2020-12-15 20:15:53   state           created
     2020-12-15 20:15:53   topics          default:Winter
   SNDDEVLIST:
     HASH(0xb4fed8)
     HASH(0x1967500)
     HASH(0x1967590)
     HASH(0x19675f0)
     HASH(0x1967650)
     HASH(0x19676b0)
     HASH(0x1967710)
   TOPICS:
     default
     Winter
Attributes:
   useTopics  1


Das ist das Profil Test_Weekprofil:Winter:Buero_Heizkoerper_rechts:
{"Wed":{"temp":["18.0"],"time":["24:00"]},"Tue":{"temp":["18.0"],"time":["24:00"]},"Mon":{"time":["24:00"],"temp":["18.0"]},"Thu":{"time":["24:00"],"temp":["18.0"]},"Sun":{"time":["24:00"],"temp":["18.0"]},"Fri":{"time":["24:00"],"temp":["18.0"]},"Sat":{"time":["24:00"],"temp":["18.0"]}}

Der Thermostat:
Internals:
   DEF        e441b167 4
   FUUID      5fcf90c0-f33f-51ed-dce0-a4117a98896d0842
   IODev      ZWDongle_0
   LASTInputDev ZWDongle_0
   MSGCNT     11
   NAME       ZWave_THERMOSTAT_4
   NR         19
   STATE      ???
   STILLDONETIME 0
   TYPE       ZWave
   ZWDongle_0_MSGCNT 11
   ZWDongle_0_RAWMSG 000400040631050142079ab500
   ZWDongle_0_TIME 2020-12-16 10:11:53
   ZWaveSubDevice no
   endpointChildren ZWave_Node_4.1
   homeId     e441b167
   isWakeUp   
   nodeIdHex  04
   READINGS:
     2020-12-15 20:15:53   associatedWith  ZWave_Node_4.1
     2020-12-16 07:03:53   battery         65 %
     2020-12-16 07:03:53   batteryPercent  65
     2020-12-16 07:03:53   batteryState    ok
     2020-12-15 23:28:31   setpointTemp    18.0 C heating
     2020-12-16 10:11:53   temperature     19.46 C
Attributes:
   IODev      ZWDongle_0
   classes    ZWAVEPLUS_INFO ASSOCIATION ASSOCIATION_GRP_INFO VERSION MANUFACTURER_SPECIFIC DEVICE_RESET_LOCALLY PROTECTION SENSOR_MULTILEVEL SWITCH_MULTILEVEL THERMOSTAT_MODE THERMOSTAT_SETPOINT BATTERY CONFIGURATION ALARM POWERLEVEL SECURITY SECURITY_S2 TRANSPORT_SERVICE SUPERVISION FIRMWARE_UPDATE_MD
   room       Buero
   vclasses   ALARM:8 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CONFIGURATION:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:1 POWERLEVEL:1 PROTECTION:1 SECURITY:1 SECURITY_S2:1 SENSOR_MULTILEVEL:5 SUPERVISION:1 SWITCH_MULTILEVEL:1 THERMOSTAT_MODE:3 THERMOSTAT_SETPOINT:3 TRANSPORT_SERVICE:2 VERSION:2 ZWAVEPLUS_INFO:2



Mein Problem: Der Heizkörperthermostat weiss nichts von dem Weekprofile. Er ändert nicht seine Temperatureinstellung. AUch nicht nach einem Shutdown Restart.
Was habe ich falsch gemacht, irgendeine Idee?

Beta-User

Ähm, da sind auch irgendwie ein paar Hänger drin...

Leider war in
Zitat von: Beta-User am 15 Dezember 2020, 15:04:20
Also: [...]
ein zwischenzeitlich korrigierter Fehler drin, den du leider hierher kopiert hast:

Richtig sollte sein (zwei Kommandos => zwei Zeilen!):
defmod HZ_Timer_Buero_Heizkoerper_rechts WeekdayTimer ZWave_THERMOSTAT_4 weekprofile:Test_Weekprofile
attr HZ_Timer_Buero_Heizkoerper_rechts weekprofile Buero_Heizkoerper_rechts
attr HZ_Timer_Buero_Heizkoerper_rechts commandTemplate set $NAME $EVENT


Leider ist es (derzeit noch?, Anfrage an Risiko läuft, das zu ändern) so, dass man danach das weekprofile-Device nochmal "überreden muss", seine "Clients" zu suchen. Das geht am einfachsten (hoffe ich zumindest), indem man die DEF anfasst:
defmod HZ_Timer_Buero_Heizkoerper_rechts WeekdayTimer ZWave_THERMOSTAT_4 weekprofile:Test_Weekprofile:true

(das ":true" ist mAn. sowieso sinnvoll, damit an $we-Tagen das "Sonntagsprofil" läuft; wer das nicht will, kann die beiden defmod-Zeilen umdrehen).

Zum Thema "commandTemplate":

Die richtige Syntax wäre
attr HZ_Timer_Buero_Heizkoerper_rechts commandTemplate set $NAME $EVENT
Ich empfehle, das hier zu LÖSCHEN (es wird neu mit "desired-temp" angelegt, nehme ich an), denn du willst ja den Temperaturwert weitergeben, und nicht, wie irgendwo hier neutlich dargestellt das "tmHeating" oder "tmEnergySaveHeating".

Dass da was im "Ausgangs-WDT" nicht stimmen kann, wäre aus einem list dieses Devices zu sehen gewesen, aber gerade das fehlt ;D .

Dann schaust du mal, ob der WDT "sauber" aussieht, erst dann sehen wir weiter... (ggf. bis auf FTUI, da habe ich keine Ahnung von, bitte verschone uns hier damit und adressiere es woanders, wenn es in der Basis (FHEMWEB) funktioniert und dann noch was offen sein sollte...)

Aber was der WDT "anstellt", sehe jedenfalls ich nur an einem "list" ;) .



Bzgl. ZWave noch: Setz' mal an ZWDongle " setReadingOnAck" auf "1", siehe https://forum.fhem.de/index.php/topic,112955.msg1100503.html#msg1100503
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

hadenia

Ob ich jemals die Syntax richtig verstehe?  ;D

Ich habe mich nach deiner Hilfe gerichtet und voila, der Thermostat hat reagiert. Ich werde mal weiter beobachten, ob er die für heute vorgegeben Temperaturwechsel alle durchführt. In der Hoffnung, dass es anderen Anfängern ebenso hilft, fass ich nochmal zusammen was ich gemacht habe:

Wochenprofil angelegt:
define Test_Weekprofile weekprofile
attr Test_Weekprofile useTopics

Dann im FHEM-Backend im Abschnitt Test_Weekprofile das Topic Winter und das Entity HZ_Timer_Buero_Heizkoerper von Hand angelegt und das Tagestemperaturventil eingetragen.

Jetzt klappt es auch das WDT aufzulisten, deswegen habe ich es in meinem vorherigen Beitrag nicht posten können:
Internals:
   CFGFN     
   COMMAND   
   CONDITION 
   DEF        ZWave_THERMOSTAT_4 weekprofile:Test_Weekprofile:true
   DEVICE     ZWave_THERMOSTAT_4
   FUUID      5fd9fe6d-f33f-51ed-fae5-8a4e3a5cbe94af42
   GlobalDaylistSpec
   LANGUAGE   en
   NAME       HZ_Timer_Buero_Heizkoerper_rechts
   NR         665
   Profil 0: Sunday 00:10:00 18.0
   Profil 1: Monday 00:10:00 18.0, 06:00:00 22.0, 23:00:00 18.0
   Profil 2: Tuesday 00:10:00 18.0
   Profil 3: Wednesday 00:10:00 18.0, 07:00:00 20.5, 13:45:00 22.0, 14:00:00 21.0, 15:00:00 19.0
   Profil 4: Thursday 00:10:00 18.0
   Profil 5: Friday 00:10:00 18.0
   Profil 6: Saturday 00:10:00 18.0
   Profil 7: weekend 00:10:00 18.0
   STATE      22.0
   STILLDONETIME 0
   TYPE       WeekdayTimer
   READINGS:
     2020-12-16 13:45:00   currValue       22.0
     2020-12-16 13:45:00   nextUpdate      2020-12-16 14:00:00
     2020-12-16 13:45:00   nextValue       21.0
     2020-12-16 13:45:00   state           22.0
     2020-12-16 13:32:45   weekprofiles    Test_Weekprofile:default:default
   SWITCHINGTIMES:
     5|00:10|18.0|w
     1|00:10|18.0|w
     1|06:00|22.0|w
     1|23:00|18.0|w
     6|00:10|18.0|w
     0|00:10|18.0|w
     7|00:10|18.0
     4|00:10|18.0|w
     2|00:10|18.0|w
     3|00:10|18.0|w
     3|07:00|20.5|w
     3|13:45|22.0|w
     3|14:00|21.0|w
     3|15:00|19.0|w
   TIMER:
     HZ_Timer_Buero_Heizkoerper_rechts_12:
       HASH       HZ_Timer_Buero_Heizkoerper_rechts
       MODIFIER   12
       NAME       HZ_Timer_Buero_Heizkoerper_rechts_12
     HZ_Timer_Buero_Heizkoerper_rechts_13:
       HASH       HZ_Timer_Buero_Heizkoerper_rechts
       MODIFIER   13
       NAME       HZ_Timer_Buero_Heizkoerper_rechts_13
     HZ_Timer_Buero_Heizkoerper_rechts_14:
       HASH       HZ_Timer_Buero_Heizkoerper_rechts
       MODIFIER   14
       NAME       HZ_Timer_Buero_Heizkoerper_rechts_14
     HZ_Timer_Buero_Heizkoerper_rechts_SetTimerOfDay:
       HASH       HZ_Timer_Buero_Heizkoerper_rechts
       MODIFIER   SetTimerOfDay
       NAME       HZ_Timer_Buero_Heizkoerper_rechts_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     HZ_Timer_Buero_Heizkoerper_rechts_delayed:
       HASH       HZ_Timer_Buero_Heizkoerper_rechts
       MODIFIER   delayed
       NAME       HZ_Timer_Buero_Heizkoerper_rechts_delayed
   dayNumber:
     !$we       8
     $we        7
     fr         5
     mo         1
     sa         6
     su         0
     th         4
     tu         2
     we         3
   helper:
     daysRegExp (su|mo|tu|we|th|fr|sa|\$we|\!\$we)
     daysRegExpMessage (su|mo|tu|we|th|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         00:10:00   18.0
       1:
         00:10:00   18.0
         06:00:00   22.0
         23:00:00   18.0
       2:
         00:10:00   18.0
       3:
         00:10:00   18.0
         07:00:00   20.5
         13:45:00   22.0
         14:00:00   21.0
         15:00:00   19.0
       4:
         00:10:00   18.0
       5:
         00:10:00   18.0
       6:
         00:10:00   18.0
       7:
         00:10:00   18.0
     WEDAYS:
       3          1
       4          1
   longDays:
     de:
       Sonntag
       Montag
       Dienstag
       Mittwoch
       Donnerstag
       Freitag
       Samstag
       Wochenende
       Werktags
     en:
       Sunday
       Monday
       Tuesday
       Wednesday
       Thursday
       Friday
       Saturday
       weekend
       weekdays
     fr:
       Dimanche
       Lundi
       Mardi
       Mercredi
       Jeudi
       Vendredi
       Samedi
       weekend
       jours de la semaine
     nl:
       Zondag
       Maandag
       Dinsdag
       Woensdag
       Donderdag
       Vrijdag
       Zaterdag
       weekend
       werkdagen
   profil:
     1:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         5
     10:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         3
     11:
       EPOCH      1608098400
       PARA       20.5
       TIME       07:00
       WE_Override 1
       TAGE:
         3
     12:
       EPOCH      1608122700
       PARA       22.0
       TIME       13:45
       WE_Override 1
       TAGE:
         3
     13:
       EPOCH      1608123600
       PARA       21.0
       TIME       14:00
       WE_Override 1
       TAGE:
         3
     14:
       EPOCH      1608127200
       PARA       19.0
       TIME       15:00
       WE_Override 1
       TAGE:
         3
     2:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         1
     3:
       EPOCH      1608094800
       PARA       22.0
       TIME       06:00
       WE_Override 1
       TAGE:
         1
     4:
       EPOCH      1608156000
       PARA       18.0
       TIME       23:00
       WE_Override 1
       TAGE:
         1
     5:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         6
     6:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         0
     7:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         7
     8:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         4
     9:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 1
       TAGE:
         2
   profile_IDX:
     0:
       00:10:00   7
     1:
       00:10:00   2
       06:00:00   3
       23:00:00   4
     2:
       00:10:00   9
     3:
       00:10:00   10
       07:00:00   11
       13:45:00   12
       14:00:00   13
       15:00:00   14
     4:
       00:10:00   8
     5:
       00:10:00   1
     6:
       00:10:00   7
     7:
       00:10:00   7
   shortDays:
     de:
       so
       mo
       di
       mi
       do
       fr
       sa
       $we
       !$we
     en:
       su
       mo
       tu
       we
       th
       fr
       sa
       $we
       !$we
     fr:
       di
       lu
       ma
       me
       je
       ve
       sa
       $we
       !$we
     nl:
       zo
       ma
       di
       wo
       do
       vr
       za
       $we
       !$we
   weekprofiles:
     Test_Weekprofile:
       PROFILE    default:default
       PROFILE_JSON {"Thu":{"time":["24:00"],"temp":["18.0"]},"Sun":{"time":["24:00"],"temp":["18.0"]},"Fri":{"time":["24:00"],"temp":["18.0"]},"Sat":{"time":["24:00"],"temp":["18.0"]},"Wed":{"time":["07:00","13:45","14:00","15:00","24:00"],"temp":["18.0","20.5","22.0","21.0","19.0"]},"Tue":{"temp":["18.0"],"time":["24:00"]},"Mon":{"time":["06:00","23:00","24:00"],"temp":["18.0","22.0","18.0"]}}
       SunAsWE    true
       PROFILE_DATA:
         Fri:
           temp:
             18.0
           time:
             24:00
         Mon:
           temp:
             18.0
             22.0
             18.0
           time:
             06:00
             23:00
             24:00
         Sat:
           temp:
             18.0
           time:
             24:00
         Sun:
           temp:
             18.0
           time:
             24:00
         Thu:
           temp:
             18.0
           time:
             24:00
         Tue:
           temp:
             18.0
           time:
             24:00
         Wed:
           temp:
             18.0
             20.5
             22.0
             21.0
             19.0
           time:
             07:00
             13:45
             14:00
             15:00
             24:00
Attributes:
   commandTemplate set $NAME desired-temp $EVENT


Das mit dem
ZitatSetz' mal an ZWDongle " setReadingOnAck" auf "1"
habe ich noch nicht hinbekommen. Werde noch etwas lesen, wie es geht.

Ein Problem habe ich noch in dem Zusammenhang:
Pro Raum habe ich mehr als einen Heizkörper. Momentan in dem Beispiel oben kann ich nur einen Heizkörper ansprechen. Ich habe die jeweils zusammenghörigen Heizkörper immer dem gleichen room zugeordnet. Wie kann ich denn die jeweils zu einem room gehörigen Heizkörper zusammen ansprechen? Oder bildet man andere Gruppen um verschiedene Heizkörperthermostate zusammen anzusprechen?


Beta-User

Aua, da sind noch ein paar Dinge, die wir klären sollten:
1. "version WeekdayTimer"? Scheint "uralt" zu sein => update!

2. "attr HZ_Timer_Buero_Heizkoerper_rechts weekprofile xyz"
"xyz" ist dabei ein Kenner, den auch mehrere WDT haben können, z.B. alle im gleichen room ;) . Dieser Kenner ist die Variable "entity" in meinen bisherigen Beiträgen hier. (Hoffe, so langsam kommt Licht ins Dunkel).

3. Da die eigentlichen Zielgeräte ZWave-TYPE sind, würde ich zumindest für Topic-Wechsel empfehlen, das "Entzerr"-Attribut am weekprofile zu setzen. (Nein, sinnvolle Werte kenne ich (noch) nicht...).

4. in "global" scheint keine language gesetzt zu sein. Wenn du "de" in WDT haben willst und die deutsche cref, wo (verfügbar), wäre das die Stelle, an der man eingreifen könnte...
Und wenn du schon da bis, stelle cref auch gleich auf "modular" ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

hadenia

Hallo beta-user, es klappt immer besser  :)

1.) FHEM habe ich aktualisiert.
2.) Das mit dem Entity habe ich glaube ich verstanden. Ich habe den gleichen Entity 2 Heizkörpern zugeordnet und momentan haben beide reagiert. Ich habe noch ein paar Umschaltzeiten für den weiteren Tagesverlauf eingegeben und mal schauen, ob es klappt wie angedacht.
3.)
Zitatfür Topic-Wechsel empfehlen, das "Entzerr"-Attribut am weekprofile zu setzen
.... sorry, da verstehe ich nur Bahnhof
4.) In "global" habe ich nun DE gesetzt.

Ich beobachte es nun mal über den Tagesverlauf und wenn es funktioniert poste ich eine Zusammenfassung zum c&p.

Beta-User

Zitat von: hadenia am 16 Dezember 2020, 15:38:58
Hallo beta-user, es klappt immer besser  :)

1.) FHEM habe ich aktualisiert.
2.) Das mit dem Entity habe ich glaube ich verstanden. Ich habe den gleichen Entity 2 Heizkörpern zugeordnet und momentan haben beide reagiert. Ich habe noch ein paar Umschaltzeiten für den weiteren Tagesverlauf eingegeben und mal schauen, ob es klappt wie angedacht.
Danke für die Rückmeldung, freut mich, wenn sich der Nebel lichtet :) .

Ob der jeweilige WDT die richtigen Schalt-Daten hat, kann man im list sehen, das sollte jetzt deutlich aufgeräumter sein ;) .

Zitat
3.)  .... sorry, da verstehe ich nur Bahnhof
Ist denn die cref noch zu lang :P ?
https://fhem.de/commandref_modular.html#weekprofile ->Attributes ->sendDelay
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

hadenia

Funktioniert doch noch nicht so ganz. Es reagiert nur ein Heizkörper, der andere nicht.
Die Heizkörper heißen:
ZWave_THERMOSTAT_3 und ZWave_THERMOSTAT_4

Ich habe die Zuordnung in zwei Befehlen vorgenommen:
defmod HZ_Timer_Heizkoerper_Buero WeekdayTimer ZWave_THERMOSTAT_3 weekprofile:Flo_Weekprofile
defmod HZ_Timer_Heizkoerper_Buero WeekdayTimer ZWave_THERMOSTAT_4 weekprofile:Flo_Weekprofile


Er führt die Änderungen am zweiten Thermostat ZWave_THERMOSTAT_4 aus, also derjenige, dessen Befehl ich zuletzt eingegeben habe. Damit wird offensichtlich der erste überschrieben.

Im WDT finde ich beide Heizkörper unter DEVICE, aber nur den ZWave_THERMOSTAT_4 unter DEF
Internals:
   CFGFN     
   COMMAND   
   CONDITION 
   DEF        ZWave_THERMOSTAT_4 weekprofile:Flo_Weekprofile
   DEVICE     ZWave_THERMOSTAT_3,ZWave_THERMOSTAT_3
   FUUID      5fda1a63-f33f-51ed-11af-bd261da26a71762e
   GlobalDaylistSpec
   LANGUAGE   de
   NAME       HZ_Timer_Heizkoerper_Buero
   NR         163
   Profil 0: Sonntag 00:10:00 18.0,
   Profil 1: Montag 00:10:00 18.0,
   Profil 2: Dienstag 00:10:00 18.0,
   Profil 3: Mittwoch 00:10:00 18.0, 07:00:00 20.0, 15:35:00 21.0, 15:45:00 22.0, 15:55:00 22.5, 16:55:00 20.0, 23:30:00 18.0,
   Profil 4: Donnerstag 00:10:00 18.0,
   Profil 5: Freitag 00:10:00 18.0,
   Profil 6: Samstag 00:10:00 18.0,
   STATE      active
   STILLDONETIME 0
   TYPE       WeekdayTimer
   READINGS:
     2020-12-16 16:10:50   currValue       22.5
     2020-12-16 16:10:50   nextUpdate      2020-12-16 16:55:00
     2020-12-16 16:10:50   nextValue       20.0
     2020-12-16 16:10:50   state           active
     2020-12-16 15:32:03   weekprofiles    Flo_Weekprofile:default:default
   SWITCHINGTIMES:
     5|00:10|18.0
     1|00:10|18.0
     6|00:10|18.0
     0|00:10|18.0
     4|00:10|18.0
     2|00:10|18.0
     3|00:10|18.0
     3|07:00|20.0
     3|15:35|21.0
     3|15:45|22.0
     3|15:55|22.5
     3|16:55|20.0
     3|23:30|18.0
   TIMER:
     HZ_Timer_Heizkoerper_Buero_12:
       HASH       HZ_Timer_Heizkoerper_Buero
       MODIFIER   12
       NAME       HZ_Timer_Heizkoerper_Buero_12
     HZ_Timer_Heizkoerper_Buero_13:
       HASH       HZ_Timer_Heizkoerper_Buero
       MODIFIER   13
       NAME       HZ_Timer_Heizkoerper_Buero_13
     HZ_Timer_Heizkoerper_Buero_SetTimerOfDay:
       HASH       HZ_Timer_Heizkoerper_Buero
       MODIFIER   SetTimerOfDay
       NAME       HZ_Timer_Heizkoerper_Buero_SetTimerOfDay
       SETTIMERATMIDNIGHT 1
     HZ_Timer_Heizkoerper_Buero_delayed:
       HASH       HZ_Timer_Heizkoerper_Buero
       MODIFIER   delayed
       NAME       HZ_Timer_Heizkoerper_Buero_delayed
   helper:
     daysRegExp (so|mo|di|mi|do|fr|sa|\$we|\!\$we)
     daysRegExpMessage (so|mo|di|mi|do|fr|sa|$we|!$we)
     SWITCHINGTIME:
       0:
         00:10:00   18.0
       1:
         00:10:00   18.0
       2:
         00:10:00   18.0
       3:
         00:10:00   18.0
         07:00:00   20.0
         15:35:00   21.0
         15:45:00   22.0
         15:55:00   22.5
         16:55:00   20.0
         23:30:00   18.0
       4:
         00:10:00   18.0
       5:
         00:10:00   18.0
       6:
         00:10:00   18.0
     WEDAYS:
       3          1
       4          1
   profil:
     1:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         5
     10:
       EPOCH      1608129900
       PARA       22.0
       TIME       15:45
       WE_Override 0
       TAGE:
         3
     11:
       EPOCH      1608130500
       PARA       22.5
       TIME       15:55
       WE_Override 0
       TAGE:
         3
     12:
       EPOCH      1608134100
       PARA       20.0
       TIME       16:55
       WE_Override 0
       TAGE:
         3
     13:
       EPOCH      1608157800
       PARA       18.0
       TIME       23:30
       WE_Override 0
       TAGE:
         3
     2:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         1
     3:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         6
     4:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         0
     5:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         4
     6:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         2
     7:
       EPOCH      1608073800
       PARA       18.0
       TIME       00:10
       WE_Override 0
       TAGE:
         3
     8:
       EPOCH      1608098400
       PARA       20.0
       TIME       07:00
       WE_Override 0
       TAGE:
         3
     9:
       EPOCH      1608129300
       PARA       21.0
       TIME       15:35
       WE_Override 0
       TAGE:
         3
   profile_IDX:
     0:
       00:10:00   4
     1:
       00:10:00   2
     2:
       00:10:00   6
     3:
       00:10:00   7
       07:00:00   8
       15:35:00   9
       15:45:00   10
       15:55:00   11
       16:55:00   12
       23:30:00   13
     4:
       00:10:00   5
     5:
       00:10:00   1
     6:
       00:10:00   3
   weekprofiles:
     Flo_Weekprofile:
       PROFILE    default:default
       PROFILE_JSON {"Wed":{"time":["07:00","15:35","15:45","15:55","16:55","23:30","24:00"],"temp":["18.0","20.0","21.0","22.0","22.5","20.0","18.0"]},"Mon":{"temp":["18.0"],"time":["24:00"]},"Tue":{"time":["24:00"],"temp":["18.0"]},"Thu":{"time":["24:00"],"temp":["18.0"]},"Sat":{"temp":["18.0"],"time":["24:00"]},"Sun":{"temp":["18.0"],"time":["24:00"]},"Fri":{"time":["24:00"],"temp":["18.0"]}}
       SunAsWE    0
       PROFILE_DATA:
         Fri:
           temp:
             18.0
           time:
             24:00
         Mon:
           temp:
             18.0
           time:
             24:00
         Sat:
           temp:
             18.0
           time:
             24:00
         Sun:
           temp:
             18.0
           time:
             24:00
         Thu:
           temp:
             18.0
           time:
             24:00
         Tue:
           temp:
             18.0
           time:
             24:00
         Wed:
           temp:
             18.0
             20.0
             21.0
             22.0
             22.5
             20.0
             18.0
           time:
             07:00
             15:35
             15:45
             15:55
             16:55
             23:30
             24:00
Attributes:
   commandTemplate set $NAME desired-temp $EVENT
   userattr   weekprofile
   weekprofile Heizkoerper_Buero


Habe leider nichts gefunden, wie bekomme ich beide Heizkörper dem gleichen WDT zugeordnet?

Beta-User

Hm, "an sich" ist die Logik bei WDT: Ein WDT, ein echtes HK-Device (oder anderes Zieldevice). Du überschreibst also immer den einen mit dem anderen.
Man kann das Umgehen, indem man mit dem commandTemplate trickst und da dann beide Thermostate mit Komma getrennt aufführt, aber ehrlich gesagt halte ich das nicht für einen guten Workaround. Eher könnte man beide in eine structure packen und dann mit dem WDT die structure schalten.

Hier die direkte Lösung mit 2 WDT:
defmod HZ_Timer_Heizkoerper_Buero1 WeekdayTimer ZWave_THERMOSTAT_3 weekprofile:Flo_Weekprofile
defmod HZ_Timer_Heizkoerper_Buero2 WeekdayTimer ZWave_THERMOSTAT_4 weekprofile:Flo_Weekprofile
attr HZ_Timer_Heizkoerper_Buero1,HZ_Timer_Heizkoerper_Buero2 weekprofile HZ_Timer_Heizkoerper_Buero

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

hadenia

Genial, es hat geklappt! Werde die einzelnen Temperaturänderungen bis morgen mal beobachten. Wenn es klappt, mache ich einen WIKI Eintrag mit Schritt für Schritt Anleitung.
Das hatte ich mir gedacht, dass ein WDT ein echtes Device ist, aber mir fehlt da noch etliches an Erfahrung und Wissen um alleine auf die Lösung zu kommen.
Ich werde nun als nächstes nun die Fenstersensoren mit einbinden. Mal sehen über welche Probleme ich dabei stolpere.
Nochmals vielen Dank!

Beta-User

Freut mich, wenn der Groschen jetzt endgültig gefallen ist.

Ist alles etwas abstrakt, solange man nicht konkret sieht, was passiert, das ist schon so. Deswegen hatte ich ganz am Anfang auch mal geschrieben: ausprobieren und einfach mal machen (auch das mit den Referenzierungen), dann wird es klarer.

WDT ist zwar auch ein "echtes Device", aber gemeint war: Je WeekdayTimer sollte es ein zu kontrollierendes anderes Device geben. Das kann ein Thermostat sein, oder eben eine via structure gebündelte Gruppe von Thermostaten (oder Rollläden...), und zum Testen geht (ausnahmsweise ::) ) auch ein dummy. (Wiki-Beispiele aber bitte mit realer Hardware, nicht dass einer auf die Idee kommt, man braucht den dummy und müßte dann ein notify oder whatever da drauf ansetzen, um es an die Hardware zu übermitteln ;D ...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

morfey

Hi zusammen,
Toll, dass auch noch andere mitdiskutieren.
@Hadenia: könnte ich dich doch um eine Kurzanleitung bitten, nur damit ich abgleichen kann? Der Punkt des Verknüpfens ist mir noch nicht klar und ich verstehe in deinem Beispiel nicht genau, was bei dir Profil und was Topic ist :-)

Beta-User

Zitat von: morfey am 17 Dezember 2020, 15:08:59
Der Punkt des Verknüpfens ist mir noch nicht klar
Aus Sicht des Moduls weekprofile geht die Verknüpfung über die Angabe im jeweiligen Attribut "weekprofile" aller "Clients" (also hier des WDT-Devices):
attr HZ_Timer_Heizkoerper_Buero1,HZ_Timer_Heizkoerper_Buero2 weekprofile HZ_Timer_Heizkoerper_BueroDie Verknüpfung bezieht sich auf "entity" aus dem, was weekprofile unter einem <profilename> versteht

Zitat von: morfey am 17 Dezember 2020, 15:08:59
was bei dir Profil und was Topic ist :-)
Wieder "falsches" wording bei Topic-Nutzung: Die einfache Formel war
ZitatProfil = Topic:entity (= <profilename>)

In der commandref steht dazu zwar nirgends "entity", aber dieser Befehl aus der cref funktioniert mWn. nur sinnvoll, wenn man beides angibt:
get <name> profile_data <profilename>
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors