HM-CC-RT-DN Reading Gruppe

Begonnen von TNT0068, 25 August 2014, 13:22:46

Vorheriges Thema - Nächstes Thema

Roaster

Das hatte wir ja schon mehrfach, dass Firefox und Derivate besser funktionieren als der Internet Explorer...

igami

Was haltet ihr von folgendem Layout?
Noch okay oder schon zu gequetscht?

Grüße
Igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Roaster

#47
Igami,

gefällt mir gut, wollte gerade die erste Version nachbasteln und bin dann erst später über dein letztes Posting vom 30.10. gestolpert. Du könntest bitte Mal den kompletten Code einstellen, weil ich leider den Überblick verloren habe :-(

Ich habe die Max! HK-Thermostate, die sich, was die Zeitpläne angeht, wohl ein wenig anders als die HM Teile verhalten, ich gehe zumindest davon aus.

Meine Definition sieht so aus:

Internals:
   CFGFN      /opt/fhem/FHEM/obergeschoss.cfg
   DEF        HeatingThermostat 0c8125
   HEALTH_MONITORED_BY myDeviceMonitor
   HEALTH_STATE dead
   HEALTH_TIME 2014-11-03 20:39:48
   IODev      cm
   LASTInputDev cm
   MSGCNT     35
   NAME       HeizungEltern
   NR         333
   RSSI       -50
   STATE      18.5 °C
   TYPE       MAX
   addr       0c8125
   backend    cm
   cm_MSGCNT  35
   cm_TIME    2014-11-03 19:34:47
   dstsetting 1
   mode       1
   rferror    0
   type       HeatingThermostat
   Readings:
     2014-09-11 17:32:28   TimeInformationHour 0
     2014-11-03 19:34:47   battery         ok
     2014-09-12 13:54:58   comfortTemperature 21
     2014-11-03 19:34:47   desiredTemperature 18.5
     2014-11-02 20:11:59   desiredtemp_new 00
     2014-09-12 13:54:58   ecoTemperature  17
     2014-09-13 09:47:38   firmware        1.0
     2014-09-13 09:47:38   groupid         0
     2014-09-12 13:54:58   maximumTemperature on
     2014-09-11 17:37:46   measurementOffset 0
     2014-09-12 17:35:26   minimumTemperature 5.0
     2014-11-03 19:34:47   mode            manual
     2014-11-03 19:34:40   msgcnt          183
     2014-11-03 19:34:47   state           18.5 °C
     2014-11-03 12:34:23   temperature     19.2
     2014-09-13 09:47:38   testresult      160
     2014-11-03 19:34:47   valveposition   13
     2014-09-12 14:18:12   weekprofile-0-Sat-temp 17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-0-Sat-time 00:00-06:00  /  06:00-22:00  /  22:00-00:00
     2014-11-03 20:55:34   weekprofile-1-Sun-temp 17.0 °C  /  22.0 °C
     2014-11-03 20:55:34   weekprofile-1-Sun-time 00:00-08:00  /  08:00-00:00
     2014-09-12 14:18:12   weekprofile-2-Mon-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-2-Mon-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-3-Tue-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-3-Tue-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-4-Wed-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-4-Wed-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-5-Thu-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-5-Thu-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 14:18:12   weekprofile-6-Fri-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
     2014-09-12 14:18:12   weekprofile-6-Fri-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00
     2014-09-12 15:19:04   windowOpenDuration 0
     2014-09-12 15:19:13   windowOpenTemperature 5.0
   Internals:
     interfaces thermostat;battery;temperature
Attributes:
   IODev      cm
   alias      Heizung Eltern
   device_timeout 65
   group      Obergeschoss
   icon       sani_heating
   room       Eltern


wobei ich momentan noch nicht so den Plan habe, wie ich die einzelnen Wochenprofile einstellen kann. Ein Beispiel ist wohl set HeizungEltern weekProfile Sun 17,08:00,22 und stellt dann am Thermostat die folgenden Werte ein:

weekprofile-1-Sun-temp 17.0 °C  /  22.0 °C
weekprofile-1-Sun-time 00:00-08:00  /  08:00-00:00


Ich würde gerne je Wochentag für zwei unterschiedliche Zeitintervalle unterschiedliche Temperaturen einstellen können. Bspw.:
1) Montag 00:00 bis 16:00 Uhr -> 18 °C
2) Montag 16:00 bis 20:00 Uhr -> 21 °C
3) Montag 20:00 bis 00:00 Uhr -> 18 °C

Ich habe dies erreicht mit dem folgenden Befehl: set HeizungEltern weekProfile Mon 18,16:00,21,20:00,18,00:00 wobei eigentlich der dritte Temperaturwert sich autom. einstellen sollte. Tat er aber nicht, ich musste es vorgeben indem ich noch ,18,00:00 angefügt habe. Denke Mal, das könnte man aber in der Endausbaustufe mit der Endezeit 20:00 Uhr von 2) und der Startzeit von 1) automatisch zusammenstückeln.

Ergebnis:
weekprofile-2-Mon-temp 18.0 °C  /  21.0 °C  /  18.0 °C
weekprofile-2-Mon-time 00:00-16:00  /  16:00-20:00  /  20:00-00:00


Nichtsdestotrotz fehlt mir momentan der Ansatz dies in eine readingsGroup einzubauen.

Du hast in der ersten Version noch mit Dummy-Werte (Stichwort: room Hausmeisterklitsche) gearbeitet, irgendetwas mit define d_dayTemp dummy
attr d_dayTemp room Hausmeisterklitsche
attr d_dayTemp setList state:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0
attr d_dayTemp webCmd state


Ist dies immer noch Bestandteil deiner jetzigen Lösung? Wenn ja, wie bekommt man diese Werte je Wochentag mit zwei unterschiedlichen Anfangs- und Endezeit in die readingsGroup und dann noch je Thermostat?

Viele Fragen und viel Verwirrung, momentan noch. Vielleicht könntest du, wie bereits gefragt, Mal deine momentan Lösung (komplett) einstellen? Ich denke das würde bereits einige der Fragen beantworten.

Danke,
Michael

Edit: und was mir momentan mehr Kopfzerbrechen bereitet: ich kann die derzeit eingestellten Werte nicht auslesen, die bspw. für den Montag eingestellt sind:

weekprofile-2-Mon-temp 18.0 °C  /  21.0 °C  /  18.0 °C
weekprofile-2-Mon-time 00:00-16:00  /  16:00-20:00  /  20:00-00:00


Zum einen habe ich noch keinen "Befehl" gefunden, der mir die Readings für diese beiden Zeile liefert und was wahrscheinlich noch ein etwas größeres Problem wird, die einzelnen Werte der beiden Zeile können x-beliebige Werte haben, etwas sowas wie 
weekprofile-4-Wed-temp 17.0 °C  /  21.0 °C  /  17.0 °C  /  21.0 °C  /  17.0 °C
weekprofile-4-Wed-time 00:00-06:00  /  06:00-09:00  /  09:00-17:00  /  17:00-23:00  /  23:00-00:00


Ok, Plan ist, nur drei Werte je Tag einzustellen und zurück zu bekommen, wie am Beispiels des Montags oben. Für eine Initial-Darstellung in der readingsGroup wird's wohl problematisch werden, wenn drei Werte erwartet werden, aber per Default der Thermostat möglicherweise fünf hat.
???[/code]

igami

Vom 30.10. gibt es noch keinen Code, ist bisher nur ein Layout ohne Funktion, wenn ich die Woche über Zeit finde werde ich die noch fertig machen.
Es ist dabei geplant für jeden Raum ein dummy Device zu haben in dem die Wochenprogramme stehen, und nicht mehr wie in der ersten Version eins für alle.
Ich gucke mal ob ich es schaffe morgen einen CodeAnsatz zu posten.
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Roaster

Ah, ich sehe gerade du hast noch vor meiner letzten Ändeurng gepostet.

Danke dir, mach dir keinen Stress meinetwegen, freue mich aber über jeden Codeschnipsel.

Schöne Grüße,
Michael

igami

Hallo Michael,

Wie versprochen hier nun das update, mittlerweile auch fast voll Funktionsfähig. Was noch nett wäre, beim klick auf den alias zum Device springen, und den Abstand zwischen den Spalten verringern.
rg_42

define rg_42 readingsGroup <>,Heizung@d_Label,<|>,Temperatur@d_Label,<|>,Status@d_Label,<|>,<Wochenplan>,<|>,Werktag@d_Label,<|>,Samstag@d_Label,<|>,Sonntag@d_Label,<|>,<Kommando>\
(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima:battery@{rg($DEVICE."§device")},impossible@{$DEVICE},alias,<|>,<Soll>,desired-temp,<Tag>,dayTemp@{rg($DEVICE."§clima")},impossible@{$DEVICE},<|>,controlMode,R-globalBtnLock@{rg($DEVICE."§device")},<|>,<Vormittag>,<|>,weekday_am_start@{rg($DEVICE."§clima")},weekday_am_end@{rg($DEVICE."§clima")},<|>,saturday_am_start@{rg($DEVICE."§clima")},saturday_am_end@{rg($DEVICE."§clima")},<|>,sunday_am_start@{rg($DEVICE."§clima")},sunday_am_end@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},<%system_fhem_update>,<br>,state@{rg($DEVICE."§device")},<%getConfig>,<|>,<Ist>,measured-temp,<Nacht>,nightTemp@{rg($DEVICE."§clima")},<|>,<Ventil>,ValvePosition,<|>,<Nachmittag>,<|>,weekday_pm_start@{rg($DEVICE."§clima")},weekday_pm_end@{rg($DEVICE."§clima")},<|>,saturday_pm_start@{rg($DEVICE."§clima")},saturday_pm_end@{rg($DEVICE."§clima")},<|>,sunday_pm_start@{rg($DEVICE."§clima")},sunday_pm_end@{rg($DEVICE."§clima")},<|>,impossible@{$DEVICE},impossible@{rg($DEVICE."§device")},<%burstXmit>

attr rg_42 commands {'desired-temp' => 'desired-temp:'  ,'dayTemp' => 'dayTemp:'  ,'controlMode' => 'trigger ntfy_rg $DEVICE controlMode'  ,'R-globalBtnLock' => 'trigger ntfy_rg $DEVICE globalBtnLock'  ,'weekday_am_start' => 'weekday_am_start:'  ,'weekday_am_end' => 'weekday_am_end:'  ,'saturday_am_start' => 'saturday_am_start:'  ,'saturday_am_end' => 'saturday_am_end:'  ,'sunday_am_start' => 'sunday_am_start:'  ,'sunday_am_end' => 'sunday_am_end:'  ,'rg_42.system_fhem_update' => 'trigger ntfy_rg $DEVICE setTimeTable'  ,'rg_42.getConfig' => 'set $DEVICE getConfig'  ,'nightTemp' => 'nightTemp:'  ,'weekday_pm_start' => 'weekday_pm_start:'  ,'weekday_pm_end' => 'weekday_pm_end:'  ,'saturday_pm_start' => 'saturday_pm_start:'  ,'saturday_pm_end' => 'saturday_pm_end:'  ,'sunday_pm_start' => 'sunday_pm_start:'  ,'sunday_pm_end' => 'sunday_pm_end:'  ,'rg_42.burstXmit' => 'set $DEVICE burstXmit'  }
attr rg_42 group Visualisierung
attr rg_42 mapping {'desired-temp' => ''  ,'dayTemp' => ''  ,'weekday_am_start' => ''  ,'weekday_am_end' => ''  ,'saturday_am_start' => ''  ,'saturday_am_end' => ''  ,'sunday_am_start' => ''  ,'sunday_am_end' => ''  ,'nightTemp' => ''  ,'weekday_pm_start' => ''  ,'weekday_pm_end' => ''  ,'saturday_pm_start' => ''  ,'saturday_pm_end' => ''  ,'sunday_pm_start' => ''  ,'sunday_pm_end' => '' }
attr rg_42 nameStyle {($READING eq "Wochenplan"  ||$READING eq "Kommando"  )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "Soll" ||$READING eq "Tag" ||$READING eq "Vormittag" ||$READING eq "%getConfig" ||$READING eq "Ist" ||$READING eq "Nacht" ||$READING eq "Ventil" ||$READING eq "Nachmittag"  )?'style="text-align:right"' :($READING eq "%system_fhem_update" ||$READING eq "%burstXmit"  )?'style="text-align:center"' :'style=""'}
attr rg_42 nonames 1
attr rg_42 room Hausmeisterklitsche
attr rg_42 sortDevices 1
attr rg_42 valueColumns { 'Heizung' => 'colspan="2"' , 'Temperatur' => 'colspan="4"' , 'Status' => 'colspan="2"' , 'Werktag' => 'colspan="2"' , 'Samstag' => 'colspan="2"' , 'Sonntag' => 'colspan="2"' , 'alias' => 'colspan="2"' }
attr rg_42 valueFormat { 'measured-temp' => "  %0.1f &deg;;C", 'ValvePosition' => "%0.1f %%" }
attr rg_42 valueIcon { 'controlMode.auto' => 'sani_heating_automatic@green','controlMode.set_auto' => 'sani_heating_automatic@orange','controlMode.manual' => 'sani_heating_manual@red','controlMode.set_manual' => 'sani_heating_manual@orange', 'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'R-globalBtnLock.on' => 'secur_locked@green', 'R-globalBtnLock.on ' => 'secur_locked@green', 'R-globalBtnLock.set_on ' => 'secur_locked@orange', 'R-globalBtnLock.off' => 'secur_open@red', 'R-globalBtnLock.off ' => 'secur_open@red', 'R-globalBtnLock.set_off ' => 'secur_open@orange'}
attr rg_42 valueStyle {($READING eq "Heizung" ||$READING eq "Temperatur" ||$READING eq "Status" ||$READING eq "Werktag" ||$READING eq "Samstag" ||$READING eq "Sonntag"  )?'style="font-size:20px;;color:RoyalBlue;;text-align:center"' :($READING eq "alias"  )?'style="font-size:11px;;font-weight:bold;;text-align:left"' :($READING eq "ValvePosition" &&$VALUE > 40  )?'style="font-weight:bold;;color:Red;;text-align:left"' :($READING eq "desired-temp" ||$READING eq "measured-temp"  )?'style="text-align:center"' :($READING eq "state" ||$READING eq "R-globalBtnLock" ||$READING eq "ValvePosition"  )?'style="text-align:left"' :'style="text-align:right"'}

d_Label

define d_Label dummy

default_climaControl

define default_climaControl dummy
attr default_climaControl comment d_climaControl_(.|.....) icon setList
attr default_climaControl group 08.0 Dummy
attr default_climaControl icon Icon_Fisch
attr default_climaControl room Vorgaben
attr default_climaControl setList dayTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 nightTemp:5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0,25.5,26.0,26.5,27.0,27.5,28.0,28.5,29.0,29.5,30.0 weekday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 weekday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 saturday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_am_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_start:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00 sunday_pm_end:00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,24:00

ntfy_setreading

define ntfy_setreading notify d_.* {\
if(\
($EVENT ~~ / /)\
and\
($EVENT !~ /: /)\
)\
{fhem("setreading $NAME $EVENT")}\
}
attr ntfy_setreading group Dummy
attr ntfy_setreading icon audio_mic
attr ntfy_setreading room Meta

ntfy_rg

define ntfy_rg notify ntfy_rg {rg($EVENT)}
attr ntfy_rg group readingsGroup
attr ntfy_rg icon audio_mic
attr ntfy_rg room Meta

Noch was für die myUtils
sub makefine

sub makefine{
#d_climaControl definieren und Initialisiern
my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));

foreach my $device (@devices){
my $room = AttrVal($device, 'room', 'undef');
if(!($room =~ /undef|CUL_HM/)){
  my $roomNumber = $room;
  $roomNumber =~ s/\D//g;
  my $climaControl = ('d_climaControl_'.$roomNumber);
  if(!(defined($defs{$climaControl}))){
   {fhem("define $climaControl dummy")}
   {fhem("setreading $climaControl dayTemp 21.0")}
   {fhem("setreading $climaControl nightTemp 17.0")}
   {fhem("setreading $climaControl saturday_am_end 12:00")}
   {fhem("setreading $climaControl saturday_am_start 06:30")}
   {fhem("setreading $climaControl saturday_pm_end 24:00")}
   {fhem("setreading $climaControl saturday_pm_start 24:00")}
   {fhem("setreading $climaControl sunday_am_end 24:00")}
   {fhem("setreading $climaControl sunday_am_start 24:00")}
   {fhem("setreading $climaControl sunday_pm_end 24:00")}
   {fhem("setreading $climaControl sunday_pm_start 24:00")}
   {fhem("setreading $climaControl weekday_am_end 18:00")}
   {fhem("setreading $climaControl weekday_am_start 06:30")}
   {fhem("setreading $climaControl weekday_pm_end 24:00")}
   {fhem("setreading $climaControl weekday_pm_start 24:00")}
   {fhem("attr $climaControl room $room")}
  }
}
}

#Attribute aus Vorgaben übernehmen
my @defaults = split('\n', fhem('LIST room=Vorgaben'));

foreach my $default (@defaults){
  my @attributes = split(' ', AttrVal($default,'comment','comment error'));
  my $wildcard =  $attributes[0];
  splice(@attributes,0,1);
   foreach my $attribut (@attributes){
    my $attrval = AttrVal($default, $attribut, 'attrval error');
    fhem("attr $wildcard $attribut $attrval")
   }
}

#alias als Reading hinzufügen
my @climas = split('\n', fhem('LIST (CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima'));

foreach my $clima (@climas){
  my $alias = AttrVal($clima,'alias',$clima);
  fhem("setreading $clima alias $alias")
}
}

sub rg

sub rg($){
my @input    = split(/[§\s]+/,shift);
my $device   = $input[0];
my $function = $input[1];


if($function eq "clima"){
my $room =  AttrVal($device, 'room', 'undef');
    $room =~ s/\D//g;

return(("d_climaControl_".$room));
}
elsif($function eq "device"){
return InternalVal($device,"device","device error");
}
elsif($function eq "controlMode"){
my $controlMode = ReadingsVal($device,"controlMode","controlMode error");

if($controlMode ~~ /manual/)
  {fhem("set $device controlMode auto")}
elsif($controlMode ~~ /auto/)
  {fhem("set $device controlMode manual")};
}
elsif($function eq "globalBtnLock"){
my $globalBtnLock = ReadingsVal($device,"R-globalBtnLock","globalBtnLock error");

if($globalBtnLock ~~ /off/){
  {fhem("set $device regSet globalBtnLock on")}
  {fhem ("set $device getConfig")}
}
elsif($globalBtnLock ~~ /on/){
  {fhem("set $device regSet globalBtnLock off")}
  {fhem ("set $device getConfig")}
};
}
elsif($function eq "setTimeTable"){
my $room         =  AttrVal(shift, 'room', 'undef');
   $room         =~ s/\D//g;
my $climaControl = ("d_climaControl_".$room);

my $dayTemp           = ReadingsVal( $climaControl, "dayTemp"          , 21.0    );
my $nightTemp         = ReadingsVal( $climaControl, "nightTemp"        , 17.0    );
my $workday_am_start  = ReadingsVal( $climaControl, "workday_am_start" , "06:30" );
my $workday_am_end    = ReadingsVal( $climaControl, "workday_am_end"   , "18:00" );
my $workday_pm_start  = ReadingsVal( $climaControl, "workday_pm_start" , "24:00" );
my $workday_pm_end    = ReadingsVal( $climaControl, "workday_pm_end"   , "24:00" );
my $saturday_am_start = ReadingsVal( $climaControl, "saturday_am_start", "06:30" );
my $saturday_am_end   = ReadingsVal( $climaControl, "saturday_am_end"  , "12:00" );
my $saturday_pm_start = ReadingsVal( $climaControl, "saturday_pm_start", "24:00" );
my $saturday_pm_end   = ReadingsVal( $climaControl, "saturday_pm_end"  , "24:00" );
my $sunday_am_start   = ReadingsVal( $climaControl, "sunday_am_start"  , "24:00" );
my $sunday_am_end     = ReadingsVal( $climaControl, "sunday_am_end"    , "24:00" );
my $sunday_pm_start   = ReadingsVal( $climaControl, "sunday_pm_start"  , "24:00" );
my $sunday_pm_end     = ReadingsVal( $climaControl, "sunday_pm_end"    , "24:00" );

{fhem("set $device tempListMon prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListTue prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListWed prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListThu prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListFri prep $workday_am_start  $nightTemp $workday_am_end  $dayTemp $workday_pm_start  $nightTemp $workday_pm_end  $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListSat prep $saturday_am_start $nightTemp $saturday_am_end $dayTemp $saturday_pm_start $nightTemp $saturday_pm_end $dayTemp 24:00 $nightTemp")};
{fhem("set $device tempListSun exec $sunday_am_start   $nightTemp $sunday_am_end   $dayTemp $sunday_pm_start   $nightTemp $sunday_pm_end   $dayTemp 24:00 $nightTemp")};
}
}

Nun noch die Label im d_label erzeugen

set d_Label Heizung Heizung
set d_Label Temperatur Temperatur
set d_Label Status Status
set d_Label Werktag Werktag
set d_Label Samstag Samstag
set d_Label Sonntag Sonntag

Und schon ist alles geschehen :)
Es ist zu beachten, dass bei uns alle Raume nummeriert sind und sich diese Nummerierung auch in den d_climaControl devices wieder findet, sollten bei dir keine Nummern in den Räumen vorkommen musst du den sub makefine auch noch anpassen, aber musst du eh, da du andere Thermostate hast.

Grüße
Igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Roaster

Wow, das ging aber fix und umfänglich - DANKE!

Ich werd's mir jetzt nach und nach Mal reinziehen und schauen was ich davon umbauen muss, damit's mit meinen Max! Thermostaten funktioniert.

Vielen Dank nochmals - wenn ich Fragen habe, dann würde ich mich hier wieder melden.

Grüße,
Michael

Peter_64

Hallo Igami,
habe auch mal versucht das ganze zum laufen zu bringen, irgend was passt nicht. Habe einen HM-CC-RT-DN Regler, der sich über FHEM steuern lässt. Wie ist das mit den Räumen und den Nummern gemeint ! Muss ich mein Devices_clima irgend wo angeben oder sollte das autom. mit dem Code (my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)')) eingelesen werden.

Hier mein Device noch

CUL_HM_HM_CC_RT_DN_2B8D64_Clima ist keinem Raum zugeteilt, könnte es daran liegen ?

igami

Hallo Peter,

hast du in der readingsgroup die zweite Zeile in der DEF?

Die Ansicht wird bei uns in der Firma eingesetzt, da haben wir entsprechend viele Devices, wie auf dem Screenshot zu sehen. Die Räume haben neben den Namen auch Nummern. Nach denen orientiere ich mich immer. Die Dummys zum Wochenplan setzen heißen also für den Raum
1.1.050:RoterSalon
d_climaControl_11050
Die Nummer ziehe ich mir dabei automatisch aus dem Raumnamen, wenn du keine Nummern in den Raumnamen hast, weil du nur 'Küche', 'Bad', etc hast, dann wird er die nicht anlegen, sofern du nicht die myUtils umschreibst.
Aber ich werde das bei mir demnächst auch zu Hause einsetzten, da muss ich dann eh noch dran rum schreiben.

Grüße
Igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

justme1968

wenn du so weit bist wäre es schön das ganze im wiki zu haben :)

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

igami

Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Peter_64

Hallo Igami,
besten Dank für die Info, dann werd ich mal warten bis Du soweit bist

Gruß



igami

Aber warum denn das? Ein bisschen umschreiben sollte doch nicht so schwer sein ;)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Roaster

#58
Igami,

ich hätte da noch ein paar Fragen bezüglich des Codings, das du mir zur Verfügung gestellt hast.

Zum einen wegen der Definition von d_Label. Ich habe dies hier in meiner fhem.cfg (verkürzt):
define d_Label dummy
set d_Label Heizung Heizung
set d_Label Temperatur Temperatur
set d_Label Status Status
set d_Label Montag Montag

und zusätzlich, ebenfalls in der fhem.cfg (verkürzt):
define rg_heizungswerte2 readingsGroup <%sani_heating>,Heizung@d_Label,<|>,Temperatur@d_Label,<|>,Status@d_Label,<|>,<Wochenplan>,<|>,
Nur steht bei mir, wenn ich die readingsGroup anzeigen lasse, kein Text zwischen den | Zeichen. Wo hast du das Dummy Label definiert?

Dann noch eine Frage zum Ausschnitt aus der ersten Zeile deiner readingsGroup:
,<Kommando>\
(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima


Das bedeutet doch eigentlich, dass alle Geräte des CULs mit dem Namen CUL_HM und vom Gerätetyp/-namen(?): HM_CC_RT_DN_ angezeigt werden?
Die Frage die sich mir zum einen hier stellt, nach CUL_HM steht noch ein Unterstrich: CUL_HM_, mein CUL für die Max! Thermostatet lauten schlichtweg auf CUL_MAX. Ich gehe davon aus, dass dies die Bezeichnung ist, die ich an dieser Stelle (ohen Unterstrich?) verwenden muss.

Gehe ich richtig davon aus, dass deine Geräte mit dem Namen HM_CC_RT_DN_ beginnen. Was bedeuten dann die vielen Punkte? Das sind meines Wissen RegEx Wildcards, oder? Damit haben deine Gerätenamen wohl noch 6 bzw. 10 folgende Buchstaben und enden jeweils auf _Clima. Stimmts?

Gleiches gilt dann wohl auch für das folgende Coding (Ausschnitt):

sub makefine{
#d_climaControl definieren und Initialisiern
my @devices = split('\n', fhem('LIST ((CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima|dk_....._.)'));


Die letzte Zeile, nehme ich an, sucht sich zum CUL die entsprechenden Devices die auf den Namen HM_CC_RT_DN_......_Clima bzw. HM_CC_RT_DN_.........._Clima und dk_....._. lauten. Liege ich mit meiner Vermutung richtig?

Vielleicht wird es einfacher zu verstehen, wenn du mir mal zwei dieser Geräte Definitionen, die mit HM_CC_RT und dk_ beginnen, hier reinstellst?

Wäre prima, wenn du meine bisherigen Fragen beantworten könntest.

Edit: Ach ja noch eine Frage: die room Attribute enthalten bei dir auch nur Ziffern und keine anderweitigen Zeichen, also Buchstaben, damit du dir bspw. mit der folgenden Zeile
my $room = AttrVal($device, 'room', 'undef'); die korrekte Ziffer bersorgen kannst?

Danke,
Michael


igami

Hi Michael,

durch

define ntfy_setreading notify d_.* {\
if(\
($EVENT ~~ / /)\
and\
($EVENT !~ /: /)\
)\
{fhem("setreading $NAME $EVENT")}\
}
attr ntfy_setreading group Dummy
attr ntfy_setreading icon audio_mic
attr ntfy_setreading room Meta

werden die Labels einfach mit set d_Label <Labelname> <Labelvalue> erzeugt.

(CUL_HM_|)HM_CC_RT_DN_(......|..........)_Clima
Ist nur für den Namen, Haben das | steht für ein or, der . für ein Zeichen, also
müssen die mit CUL_HM_ anfangen oder eben nix und danach kommt HM_CC_RT_DN_ gefolgt von 6 oder 10 Zeichen und endet auf _Clima. Ich weiß nicht mehr genau woran es liegt, dass wir so viele unterschiedlich Namen haben, ober ich da mal manuell was geänder habe oder im autocreate was verändert wurde.

beim makefine kommt das dk_....._. noch von unserer Klimaanlage, hat keine Bewandnis für dich.

Ich kann morgen mal Verschiedene Namen posten. Komme grad nicht an die config.

Grüße
Igami

PS: wiki Account ist schon beantragt
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED