Modulfamilie für das Zuhause / 00_HOMESTATE, 01_ZONESTATE, 02_ROOMSTATE

Begonnen von Loredo, 08 Mai 2017, 10:51:48

Vorheriges Thema - Nächstes Thema

Loredo

Bevor es jetzt mit der Entwicklung von HOMESTATE/ZONESTATE/ROOMSTATE/OUTDOORSTATE weitergeht, habe ich einige der zentralen Funktionen in ein eigenes Modul namens DaySchedule ausgelagert. HOMESTATE und Co werden später mit diesem Modul eng zusammenarbeiten:


https://forum.fhem.de/index.php/topic,101942.0.html
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Phiolin

Anmerkung dazu:
Homestate hat seit Beginn der Winterzeit bei mir ordentlich Probleme.
Aktuell ist laut Modul noch "Sommer", dayTime bleibt hartnäckig auf "night", Schedules werden wohl auch nicht korrekt generiert.

Das hat allerlei andere Nebeneffekte, wie z.B. das der "security" state auch permanent auf "protected" bleibt, weil ja "Nacht" ist.
Ein schneller Blick in den Code hat mich leider bei der Fehlersuche nicht weitergebracht.

Aktuell bin ich dabei, möglichst viele meiner Funktionen umzubauen und mich nicht mehr auf Homestate zu verlassen. Das ist allerdings ordentlich Arbeit...

Im angehängten "list" wurde der Haus Mode manuell auf "morning" gesetzt um das größte Chaos im Haus zu beseitigen. ;)

Internals:
   FUUID      5c45a0bd-f33f-8c0c-bbdb-41f48616b1da0ff2
   NAME       Haus
   NEXT_EVENT 2019-10-28 08:33:28 - Begin of daytime stage 3
   NOTIFYDEV  global,Haus,rgr_Bewohner
   NR         146
   NTFY_ORDER 50-Haus
   READY      1
   RESIDENTS  rgr_Bewohner
   STATE      morning
   TYPE       HOMESTATE
   READINGS:
     2019-10-28 00:00:01   calTod          Monday, October 28
     2019-10-27 05:40:46   calTodDST       standard
     2019-10-28 00:00:01   calTodDaytimeStageLn 00:55:31
     2019-10-28 00:00:01   calTodDaytimeT  11:06:20
     2019-10-28 00:00:01   calTodDesc      0
     2019-07-01 00:00:00   calTodHoliday   1
     2019-05-14 11:26:44   calTodLeapyear  0
     2019-10-01 00:00:00   calTodMonth     October
     2019-10-01 00:00:00   calTodMonthN    10
     2019-10-01 00:00:00   calTodMonthS    Oct
     2019-10-28 00:00:01   calTodMonthday  28
     2019-10-28 00:00:01   calTodMonthdayRem 3
     2019-05-14 11:26:44   calTodRel       today
     2019-10-28 00:00:01   calTodS         October 28
     2019-06-23 00:00:00   calTodSAstro    Summer
     2019-06-24 00:00:00   calTodSAstroChng 0
     2019-06-01 00:00:00   calTodSMeteo    Summer
     2019-06-02 00:00:00   calTodSMeteoChng 0
     2019-07-01 00:00:00   calTodSPheno    Midsummer
     2019-07-02 00:00:00   calTodSPhenoChng 0
     2019-10-28 00:00:01   calTodSunrise   06:42:25
     2019-10-28 00:00:01   calTodSunset    17:48:45
     2019-05-14 11:26:44   calTodTodWeekend 2
     2019-10-28 00:00:01   calTodWeek      44
     2019-10-28 00:00:01   calTodWeekday   Monday
     2019-10-28 00:00:01   calTodWeekdayN  1
     2019-10-28 00:00:01   calTodWeekdayS  Mon
     2019-10-28 00:00:01   calTodWeekend   2
     2019-05-14 11:26:44   calTodYear      2019
     2019-10-28 00:00:01   calTodYearday   300
     2019-10-28 00:00:01   calTodYeardayRem 65
     2019-10-28 00:00:01   calTom          Tuesday, October 29
     2019-10-26 07:05:00   calTomDST       standard
     2019-10-27 01:00:01   calTomDesc      0
     2019-06-30 00:00:00   calTomHoliday   1
     2019-05-22 08:36:11   calTomLeapyear  0
     2019-09-30 00:00:00   calTomMonth     October
     2019-09-30 00:00:00   calTomMonthN    10
     2019-09-30 00:00:00   calTomMonthS    Oct
     2019-10-28 00:00:01   calTomMonthday  29
     2019-10-28 00:00:01   calTomMonthdayRem 2
     2019-05-14 11:26:44   calTomRel       tomorrow
     2019-10-28 00:00:01   calTomS         October 29
     2019-06-22 00:00:00   calTomSAstro    Summer
     2019-06-23 00:00:00   calTomSAstroChng 0
     2019-05-31 00:00:00   calTomSMeteo    Summer
     2019-06-01 00:00:00   calTomSMeteoChng 0
     2019-06-30 00:00:00   calTomSPheno    Midsummer
     2019-07-01 00:00:00   calTomSPhenoChng 0
     2019-10-27 01:00:01   calTomWeek      44
     2019-10-28 00:00:01   calTomWeekday   Tuesday
     2019-10-28 00:00:01   calTomWeekdayN  2
     2019-10-28 00:00:01   calTomWeekdayS  Tue
     2019-10-27 01:00:01   calTomWeekend   2
     2019-05-14 11:26:44   calTomYear      2019
     2019-10-28 00:00:01   calTomYearday   301
     2019-10-28 00:00:01   calTomYeardayRem 64
     2019-10-28 00:00:01   daytime         night
     2019-10-28 07:37:57   daytimeStage    2
     2019-05-14 11:26:44   daytimeStages   12
     2019-10-28 07:29:00   lastMode        night
     2019-10-28 07:29:00   lastSecurity    locked
     2019-10-28 07:29:00   lastState       night
     2019-10-28 07:29:00   mode            morning
     2019-10-28 07:29:00   security        unlocked
     2019-10-28 07:29:00   state           morning
Attributes:
   ResidentsDevices rgr_Bewohner
   alias      Mode
   devStateIcon {(HOMESTATEtk_devStateIcon($name),"toggle")}
   group      Home State
   icon       control_building_control
   room       Residents
   webCmd     mode


Hier noch die Schedule für heute. Wie man sieht, wird als einziges dayTime Event "midevening" generiert. Von Morning, Afternoon etc ist nichts zu sehen.

1572217200.01321:
      DESC       Begin of night time and new calendar day, holiday: 0
      TIME       2019-10-28 00:00:00
      TYPE       dayshift
    1572241345:
      DESC       Begin of daytime stage 1
      TIME       2019-10-28 06:42:25
      TYPE       daytimeStage
      VALUE      1
    1572244677:
      DESC       Begin of daytime stage 2
      TIME       2019-10-28 07:37:57
      TYPE       daytimeStage
      VALUE      2
    1572248008:
      DESC       Begin of daytime stage 3
      TIME       2019-10-28 08:33:28
      TYPE       daytimeStage
      VALUE      3
    1572251340:
      DESC       Begin of daytime stage 4
      TIME       2019-10-28 09:29:00
      TYPE       daytimeStage
      VALUE      4
    1572254672:
      DESC       Begin of daytime stage 5
      TIME       2019-10-28 10:24:32
      TYPE       daytimeStage
      VALUE      5
    1572258003:
      DESC       Begin of daytime stage 6
      TIME       2019-10-28 11:20:03
      TYPE       daytimeStage
      VALUE      6
    1572261335:
      DESC       Begin of daytime stage 7
      TIME       2019-10-28 12:15:35
      TYPE       daytimeStage
      VALUE      7
    1572264667:
      DESC       Begin of daytime stage 8
      TIME       2019-10-28 13:11:07
      TYPE       daytimeStage
      VALUE      8
    1572267998:
      DESC       Begin of daytime stage 9
      TIME       2019-10-28 14:06:38
      TYPE       daytimeStage
      VALUE      9
    1572271330:
      DESC       Begin of daytime stage 10
      TIME       2019-10-28 15:02:10
      TYPE       daytimeStage
      VALUE      10
    1572274662:
      DESC       Begin of daytime stage 11
      TIME       2019-10-28 15:57:42
      TYPE       daytimeStage
      VALUE      11
    1572277993:
      DESC       Begin of daytime stage 12
      TIME       2019-10-28 16:53:13
      TYPE       daytimeStage
      VALUE      12
    1572281325:
      DESC       End of daytime
      TIME       2019-10-28 17:48:45
      TYPE       daytime
      VALUE      midevening
    1572303600.01321:
      DESC       End of calendar day and begin night time, holiday: 0
      TIME       2019-10-28 24:00:00
      TYPE       dayshift

Loredo

Viele der Kalendar relevanten Infos sind in das DaySchedule Modul gewandert und werden über Kurz oder Lang aus HOMESTATE verschwinden.
DaySchedule ist aber noch nicht released, ich kann nicht sagen, wann das sein wird.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Phiolin

Ja, habe ich mir schon gedacht.
Habe mir das DaySchedule Modul aus dem entsprechenden Thema auch bereits installiert und bis auf ein paar Kleinigkeiten (siehe Kommentar zu recomputeAt im anderen Thema), funktioniert das aktuell wohl schon ganz gut.

Phiolin

Hierzu aber noch eine Anmerkung.
Im Juli gab es in UConv.pm eine größere Aufräumarbeit als Vorbereitung zum Aufräumen von HOMESTATEtk.

Aus meiner Sicht hätte das niemals eingecheckt werden dürfen. Damit wurden viele Funktionen in HOMESTATE quasi geschrottet, ohne die User ausreichend darauf hinzuweisen. Zumindest habe ich nirgendwo gelesen, dass man HOMESTATE jetzt besser nicht mehr benutzen sollte. Immerhin ist es noch Teil des offiziellen Repositories.
Ich hab jetzt sicherlich 3 Stunden mit dem Quellcode verbracht, um herauszufinden wo plötzlich die ganzen Probleme herkommen und nur durch Zufall jetzt gesehen, dass es durch das Update von UConv.pm im Juli passiert ist, nachdem ich mich vorher ewig gefragt habe, wo wohl die Jahreszeiten-Berechnung im Code versteckt ist... Klarer Fall: Seit dem Juli-Update ist diese Berechnung im Code nicht mehr enthalten.
Also wenn schon Änderungen eingecheckt werden, dann doch bitte "komplett" und nicht die eine Datei aufgeräumt und die andere nicht... das verursacht allerlei Inkonsistenzen die wie in meinem Fall nicht unbedingt sofort sichtbar sind. >:(

Immerhin handelt es sich hier um Module im "offiziellen" Repository. Da sollte man schon erwarten können, dass genau sowas nicht passiert.
Ich habe mir jetzt die UConv.pm aus Revision 19757 wiederhergestellt und natürlich funktioniert jetzt alles wieder. Das hätte man allerdings auch einfacher haben können.

Loredo

HOMESTATE ist kein offizielles Modul, es befand/befindet sich im Entwicklungsstadium und ist bisher nie für den produktiven Einsatz vorgesehen gewesen, sondern zum ausprobieren und Feedback geben. Man konnte HOMESTATE bisher nie ohne das herunterladen einer Datei hier aus dem Forum in Betrieb nehmen. Dass Bibliotheken in FHEM genutzt werden und diese Änderungen unterlegen, ist zweitrangig, denn die offiziellen Module aus dem Repository sind entsprechend gepflegt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Phiolin

Stimmt, du hast recht. Das Homestate nicht offiziell war ist mir entgangen, sorry.

Ein Hinweis auf die UConv Änderungen hier im Thema wäre aber trotzdem schön gewesen. Selbst wenn man den nicht sofort gesehen hätte, schaue ich meistens vor der Fehlersuche ins Forum und dann wäre es zumindest aufgefallen.

kjmEjfu

Gibt es hier eigentlich zufällig etwas neues? Bin gerade bei mir einiges am Umbauen und fände sowas wie echte Räume (sprich mit Eigenschaften und nicht als Filterfunktion) sehr praktisch und eventuell könnte das 02_ROOMSTATE in die Richtung gehen. Bevor ich mir da jetzt was selber zusammenbastele, ...  ;)
Migriere derzeit zu Home Assistant

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER