FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: Loredo am 02 Juli 2019, 12:26:42

Titel: [DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 12:26:42
Hallo,


wie zuvor im Astro Thread (https://forum.fhem.de/index.php/topic,73951.msg950266.html#msg950266) erwähnt, habe ich die von mir geplanten Funktionen nun in ein eigenes Modul namens DaySchedule ausgelagert.
Dabei sind nun auch weitere Funktionen hinzugekommen, die ursprünglich auch nicht für Astro vorgesehen waren. Das Modul ist nun auf einem Entwicklungsstand, bei dem ich gerne Rückmeldungen von Testern hätte. Man kann es derzeit nur über Github laden (https://github.com/fhem/mod-DaySchedule) und muss es selbstständig installieren und aktualisieren. Es ist also derzeit nichts für Ungeübte, bis das Modul über das SVN offiziell verteilt wird.
Freiwillige, die bei der Dokumentation helfen, sind ebenfalls gerne gesehen  ;D




Also, was macht das Modul nun?


DaySchedule ermöglicht die vorausschauende Planung eines Tages sowie die Unterteilung eines Tages in Abschnitte, so dass man darauf basierende Automationen programmieren kann. Diese Tagesabschnitte basieren auf den Sonnenauf- bzw. Untergangszeiten von Astro und sind daher über das Jahr weg variabel. Das bedeutet, man kann seine Automationen damit auch losgelöst von festen Uhrzeiten anstoßen, sind aufgrund der relativen Tageszeit wie zum Beispiel Vormittag, Mittag, Nachmittag ... In der Standardeinstellung wird der Tag in 2x zwölf gleiche Teile eingeteilt, eben ausgehend vom Sonnenauf- und Untergang. Das haben schon die alten Römer mit ihren Sonnenuhren so gemacht und nannten es "Temporale Stunden (https://de.wikipedia.org/wiki/Temporale_Stunden)", ich habe das Rad also nicht neu erfunden. Die Römer haben ihren Tag an der Sonne ausgerichtet, was liegt also näher als dass man bestimmte Hausautomationen auch wieder auf dieses Prinzip zurückführt und nur dort feste Uhrzeiten hernimmt, wo es für den gesellschaftlich getakteten Tag notwendig ist? Jeder der 12 temporalen Stunden am Tag und in der Nacht sind Namen zugeordnet, so dass man auch eine hübsche Anzeige bekommt. Natürlich werden mehrere Sprachen unterstützt: EN, DE, FR, ES, IT, PL, NL.


Weiterhin stellt DaySchedule eine dritte Jahreszeit bereit, die Phänologische Jahreszeit (https://de.wikipedia.org/wiki/Ph%C3%A4nologie#Ph%C3%A4nologische_Jahreszeiten_Mitteleuropas). Zum einen gibt es hier eine feinere Einteilung in 10 statt nur 4 Jahreszeiten, weshalb man eine genauere Steuerung darüber machen kann. Zum anderen sind die Übergänge von Winter>Frühling und Sommer>Herbst dynamisch aufgrund der Geo-Position des Hauses berechnet (funktioniert nur innerhalb von Zentraleuropa). Es ist also keine wahrhaftige Phänologische Jahreszeit, denn dabei würde man ja normal ständig schauen, welche Pflanzen blühen etc - darauf hat aber sicher niemand Lust, der sich um die Hausautomation bemüht  ;)
Also folgt die Berechnung der Annahme, dass der Frühling bzw. der Herbst an jeweils einem bestimmten äußeren Punkt in Europa (Portugal und Finnland) startet und der Frühling bzw. Herbst sich dann mit etwa konstanter Geschwindigkeit von 40 km pro Tag auf den eigenen Standort bewegt. Erst wenn Frühling bzw. Herbst den eigenen Standort erreicht haben, ist dann tatsächlich Vollfrühling bzw. Vollherbst. Die nachgelagerten Abschnitte "Spätfrühling" und "Spätherbst" folgen dann nach einer Weile und schließlich ist dann Sommer oder Winter zu dem Zeitpunkt, an dem der Frühling/Herbst am Zielpunkt Portugal/Finnland angekommen ist.
Derzeit gibt es wohl noch einen Bug bei den Übergängen, da muss ich wohl nochmal ran. Ich wollte aber die Theorie hier trotzdem mal erklären.
Dabei auch der Aufruf: Ich bin kein Mathematiker und wäre dankbar für jede Hilfe, die mir jemand bei der Berechnung zukommen lassen könnte. Bestimmt kann man das ganze besser machen als eine simple lineare Berechnung mit ausgetüftelten Fixwerten. Wer sich dafür berufen fühlt ist herzlich eingeladen zu helfen  8)


Als nächstes gibt es Unterstützung für verschiedene Saisons oder auch "Annual FestivitiesEvents" bzw "Social Seasons". Der Begriff einer "Saison" ist im Deutschen sicherlich geläufig, in den anderen Sprachen fällt es mir schwer bessere Begriffe zu finden. Gemeint ist aber, dass es ja noch sowas wie die "5. Jahreszeit" gibt, also Karneval/Fasching oder die Starkbierzeit mit ihrem Starkbierfest. Aber auch Oktoberfest, Osterzeit, Jahreswechsel etc. All diese Saisons mögen bei dem ein oder anderen eine bestimmte Rolle spielen und neben der puren Anzeige kann man natürlich auch Automationen darauf basieren lassen. Lichtstimmungen beispielsweise könnten in der Adventszeit anders aussehen als zu Weihnachten oder während des Jahreswechsels. Oder man möchte während der Karnevalszeit gerne bestimmte Bilder auf einem Bilderrahmen anzeigen oder auf der LaMetric - sowas alles eben. Ich habe auch versucht dabei verschiedene Ausprägungen zu berücksichtigen, so sie denn für eine breitere Masse sinnvoll sein könnten. Ein gutes Beispiel ist, dass manche schon vor dem 1. Advent in Adventsstimmung sind, andere erst genau ab dem 1. Adventssonntag.


Zu guter Letzt gibt es noch Unterstützung für die Kategorisierung des Tages in die Kategorien Arbeitstag, Wochenende, Feiertag und Urlaubstag. Das globale FHEM Attribut "holiday2we" zusammen mit IsWe()/$we wird dabei unterstützt, ebenso die neusten Änderungen im Bezug auf Wochenenddienst. Allerdings hat DaySchedule auch eine eigene, alternative Logik eingebaut, bei der man nicht mit bestimmten Codewörtern arbeiten muss, sondern ein dediziertes holiday-Device oder sogar auch ein Calendar-Device für die Hinterlegung des Schichtplans nutzen kann. Wenn man das macht, dann können an Arbeitstagen auch Samstag/Sonntag als Arbeitstage markiert werden. Freie Tage unter der Woche werden dann als "Wochenende" behandelt. In der Darstellung bzw. dem Namen werden sie allerdings von regulären Samstag/Sonntag Wochenenden dadurch unterschieden, dass der Tagestyp dann als "Freizeit" bezeichnet wird. Hat man an einem Samstag/Sonntag frei, dann heißen diese Tage natürlich trotzdem Wochenende und nicht "Freizeit". Wer Schichtarbeit macht wird wahrscheinlich wissen, was ich meine  ;)
DaySchedule hat außerdem alle Feiertage in Deutschland direkt hinterlegt (in allen Sprachen, im Gegensatz zu den .holiday-Dateien, die das 95_holiday Modul verwendet). Diese werden auch als Beschreibung für den jeweiligen Tag angezeigt, haben aber erstmal grundsätzlich keinen Einfluss auf den Tagestyp (sprich, der Tagestyp wird dadurch nicht automatisch zu "Feiertag"). Man kann allerdings nun explizit eines oder mehrere Holiday Devices hinterlegen, bei denen die selben Tage hinterlegt sind (also so, wie man das bei holiday2we heute auch schon macht). Erst dann wird der Tagesstatus auch ein "Feiertag". Wenn der Beschreibungstext übereinstimmt, wird er auch nicht doppelt angezeigt. Damit kann man immer wissen, welcher Feiertag heute ggf. auch woanders ist für den Fall, dass man dort mit Leuten zusammenarbeitet. Über ein Attribut lässt sich steuern, ob welche Feiertage man angezeigt bekommen möchte. Man kann auch "none" angeben und dann ist alles abgeschaltet und man verlässt sich nur auf holiday- oder Calendar Devices, wenn man das möchte.


Eine weitere Spezialität ist, dass man den Wechsel Normalzeit<>Sommerzeit angezeigt bekommt (inkl. Richtung  ;) ). Außerdem kann man bereits am Vortag auswerten, ob am folgenden Tag eine Umstellung sein wird. Neben einer einfachen Erinnerungsfunktion lassen sich also auch Automationen an diesen beiden Tagen vor und nach der Umstellung explizit triggern.






There is one more thing...


Die vorausschauende Planung hatte ich oben ja schon erwähnt. Gemeint ist, dass man zu jedem beliebigen Datum oder Uhrzeit springen und schauen kann, welcher Status für diesen Zeitpunkt berechnet werden wird und welche Events über den Tag verteilt wann eintreten werden (zum Beispiel wann die Mittagszeit anfängt). Mir war dabei die Darstellung im Browser wichtig. Über ein weblink Device kann man diese auch auf jeder FHEM Raumseite einblenden, ein entsprechend vorkonfiguriertes weblink Device für den aktuellen Tag kann automatisch angelegt werden.
Wie das ganze aussieht, zeigen die angehängten Screenshots.




Soweit dann erstmal... happy testing!




Viele Grüße
Julian
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Kummer am 02 Juli 2019, 12:47:18
Hallo,

das klingt sehr interessant. Ich bin zwar die nächste Woche im Urlaub, aber danach werde ich es direkt testen.

Gruß
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: CQuadrat am 02 Juli 2019, 13:01:51
Hallo Julian,

sehr schön: da ist sowohl einiges drin, was ich schon durch diverse dummys, DOIFSs, etc. gelöst habe, als auch das ein oder andere, was in meiner Ideen-Pipeline ist. Ich werde es mir im jeden Fall ansehen.

Beim ersten Durchlesen ist mir auch schon gleich ein Feature-Wunsch gekommen 8) :
Bei der Kategorisierung des Tages in die Kategorien Arbeitstag, Wochenende, Feiertag und Urlaubstag fehlt mir so etwas wie die Kategorie "Home Office": bei einem "normalen" Arbeitstag bin ich außer Haus; bei Home Office aber zuhause, so dass dann z.B. das Büro (im Winter) geheizt werden muss.

Weiteres Feedback folgt, wenn ich das Modul installiert habe...


Viele Grüße

Christoph
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 13:07:47
Ich antworte hier mal auf einen Beitrag aus einem anderen Thread:

Zitat von: Beta-User am 02 Juli 2019, 12:58:56
Ohne mich jetzt im Detail mit den Optionen von diesem neuen Modul DaySchedule befaßt zu haben und dem, was mit "Wert von IsWe() an einem bestimmten Tag navigieren" gemeint ist:

Nach meinem Eindruck (!, muß also nicht richtig sein), sollte man den Code von IsWe() nicht noch weiter aufbohren.
Da Calendar ein sehr flexibles Tool ist, aber state seit langem nicht "none" liefert, ist es insbesondere kaum möglich, ein Calendar-Device im Rahmen von h2we sinnvoll zu verwenden (für gestern und morgen ggf. schon, wenn man - über welche Logik auch immer - passende Readings erzeugt). Was aber - wenn man die richtigen Parameter wählt - recht einfach ist, ist eine holiday-Datei zu erzeugen (jetzt mit yyyy-mm-dd vielleicht sogar noch einfacher), und die "ganz normal" einzubinden.
Hast du vor, da eine Art automatischen Export einzubauen? Oder soll das Modul einen passenden "state" haben und "klassisch" wie ein "normales" holiday-Device abfragbar sein?

Der Code von IsWe() ist auch nicht weiter aufgebohrt, es ist eben in ein eigenes Modul verlagert bzw. erweitert.
Mit Navigieren meine ich erstmal nichts anderes als eine Alternative zum Eingeben von {IsWe('YYYY-MM-DD')} (https://forum.fhem.de/index.php/topic,98583.msg954221.html#msg954221) in der FHEM Kommandozeile. Wenn man in DaySchedule nichts besonderes einstellt, dann wird mit IsWe() gearbeitet und man kann etwas komfortabler sehen, was meine globalen holiday2we Einstellungen über das Jahr bewirken werden.


Wie du richtig sagst, in holiday2we kann man eben kein Calendar Device hinterlegen, in den DaySchedule Attributen HolidayDevices, InformativeDevices, VacationDevices, WorkdayDevices, WeekendDevices aber schon.


DaySchedule hat keinen Export, sondern generiert daraus das Reading "DayType". Ggf. baue ich noch eine Funktion analog zu IsWe() in DaySchedule ein, damit man es in der selben Art und Weise als Alternative verwenden kann.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 13:10:55
Zitat von: CQuadrat am 02 Juli 2019, 13:01:51
Beim ersten Durchlesen ist mir auch schon gleich ein Feature-Wunsch gekommen 8) :
Bei der Kategorisierung des Tages in die Kategorien Arbeitstag, Wochenende, Feiertag und Urlaubstag fehlt mir so etwas wie die Kategorie "Home Office": bei einem "normalen" Arbeitstag bin ich außer Haus; bei Home Office aber zuhause, so dass dann z.B. das Büro (im Winter) geheizt werden muss.


Das als Tagestyp anzusehen macht in meinen Augen keinen Sinn, da es um die Reine Anwesenheit geht. Ob du an einem Arbeitstag zuhause bist oder nicht sollte deine Heizung steuern, und nicht welchen Tagestyp du hast ;)
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Frank_Huber am 02 Juli 2019, 13:18:19
Zitat von: Loredo am 02 Juli 2019, 13:10:55

Das als Tagestyp anzusehen macht in meinen Augen keinen Sinn, da es um die Reine Anwesenheit geht. Ob du an einem Arbeitstag zuhause bist oder nicht sollte deine Heizung steuern, und nicht welchen Tagestyp du hast ;)
Macht eventuell doch Sinn:
- andere Wckzeiten da der Weg wegfällt
- andere Zimmer heizen.
- evtl PC hochfahren etc
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 13:21:53
Ich muss da mal drüber nachdenken.
Noch ist nicht klar wie die Verbindung zu ROOMMATE (https://forum.fhem.de/index.php/topic,19040.0.html) (RESIDENTS) und ROOMSTATE (https://forum.fhem.de/index.php/topic,71692.msg954656.html#msg954656) (HOMESTATE) aussehen wird, sprich ob es sich bei einem DaySchedule Device eher um ein persönliches Device im Sinne von "jeder Bewohner hat sein eigenes Device" handelt oder ob es sich um ein räumlich bezogenes Device handelt. Man vergisst immer schnell, dass es nicht nur Single Haushalte gibt, bei denen immer alles so einfach erscheint ;-)


Edit: Da der Tagestyp ja über ein holiday und/oder Calendar Device gesteuert wird, sind es eigentlich diese Eingangsgrößen, die du in deiner Anwesenheitssteuerung mit der Heizung, dem Wecker, etc. berücksichtigen solltest. Der Tagestyp ist und bleibt davon unberührt, denn DaySchedule soll sich eigentlich mehr auf kalendarische Zusammenhänge fokussieren, nichts was mit Anwesenheit zu tun hat.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: CQuadrat am 02 Juli 2019, 13:30:07
Da ist genau das Problem: wie grenzt man das zu ROOMMATE, etc. ab.

Auch ein Urlaubstag am Meer ist etwas anderes als ein Urlaubstag zuhause.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 13:31:57
Zitat von: CQuadrat am 02 Juli 2019, 13:30:07
Da ist genau das Problem: wie grenzt man das zu ROOMMATE, etc. ab.

Auch ein Urlaubstag am Meer ist etwas anderes als ein Urlaubstag zuhause.


Siehe editierter Beitrag oben. ROOMMATE/-STATE sollte auf das selbe Calendar und/oder Holiday Device zugreifen und seine eigenen Rückschlüsse dann für das Thema Anwesenheit und "Raumstatus" ableiten. So wird ein Schuh draus.


Also, damit wird auch klar, dass DaySchedule eher einen räumlichen Bezug haben wird. So war das auch von mir gedacht, dass jeder Raum sein eigenes DaySchedule Device haben kann, wenn man die Wohnung oder das Haus nicht als ganzes behandeln möchte.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Frank_Huber am 02 Juli 2019, 13:42:03
fair comments.
dem ist nichts mehr hinzuzufügen. ;)
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: rischbiter123 am 02 Juli 2019, 14:31:22
Moin,

ich wollte das Modul gerade installieren, bekomme aber nach einem reload Modul folgende Meldung:
"timelocal_modern" is not exported by the Time::Local module
"timegm_modern" is not exported by the Time::Local module
Can't continue after import errors at ./FHEM/95_DaySchedule.pm line 33.
BEGIN failed--compilation aborted at ./FHEM/95_DaySchedule.pm line 33.


Es fehlt mir wohl ein Perl-Modul, leider erkenne ich nicht, welches. Im log erscheint auch bei verbose 5 nichts dazu.

LG

Andreas
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: andies am 02 Juli 2019, 14:34:33
Kurze Frage: Ich hatte für vergleichbare Ziele bisher auch YAAHM im Kopf. Wo sind da Unterschiede und Erweiterungen?
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 14:40:48
Zitat von: andies am 02 Juli 2019, 14:34:33
Kurze Frage: Ich hatte für vergleichbare Ziele bisher auch YAAHM im Kopf. Wo sind da Unterschiede und Erweiterungen?


YAAHM kennt keine Temporalen Stunden, hat keine phänologische Jahreszeit und ist generell nicht auf kalendarische Inhalte fokussiert. Auch gibt es keine Unterstützung für die saisonalen Sitten und Gebräuche. Außerdem liegt es administrativ bei pah und Zusammenarbeit bei größeren Vorhaben gestaltet sich schwierig (siehe Änderungshistorie bei Astro).


DaySchedule ist spezialisierter und wird keine Unterstützung bei Automationen wie YAAHM liefern, das wird es in HOMESTATE und Co geben, welche dann darauf spezialisiert sind Räume, Zonen und das Haus bzw. die Wohnung zu definieren. Das Konzept gibt es seit 20162017 bereits vor der Entstehung von YAAHM und ist modularer angelegt als YAAHM. Es spricht aber technisch nichts dagegen, dass YAAHM mit einem DaySchedule Device zusammenarbeiten könnte.


Zitat von: rischbiter123 am 02 Juli 2019, 14:31:22
ich wollte das Modul gerade installieren, bekomme aber nach einem reload Modul folgende Meldung:
"timelocal_modern" is not exported by the Time::Local module
"timegm_modern" is not exported by the Time::Local module
Can't continue after import errors at ./FHEM/95_DaySchedule.pm line 33.
BEGIN failed--compilation aborted at ./FHEM/95_DaySchedule.pm line 33.


Es fehlt mir wohl ein Perl-Modul, leider erkenne ich nicht, welches. Im log erscheint auch bei verbose 5 nichts dazu.


Offenbar sind diese Funktionen nur in neueren Perlversionen verfügbar, ich hatte nicht erwartet, dass sie _so_ neu sein muss ;-)
Ich passe das bei Gelegenheit für ältere Perl Versionen an.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: rischbiter123 am 02 Juli 2019, 15:27:10
Moin,

Nur als Info. Bei mir läuft (noch) Stretch mit Perl-Version 5.24.1.

LG

Andreas
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 02 Juli 2019, 15:46:29
Ich habe eine aktualisierte Version eingecheckt, die mit älteren Perl Installationen kompatibel sein sollte.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: rischbiter123 am 02 Juli 2019, 20:39:58
Moin,

bin erst jetzt dazu gekommen. Modul konnte geladen werden und ein Device ist angelegt. Werde versuchen, morgen ein bischen damit zu arbeiten.

LG

Andreas
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: rischbiter123 am 03 Juli 2019, 11:56:15
Moin,

habe jetzt mal ein bischen mit dem Modul 'gespielt' und keine Fehler gefunden. Da ich allerdings auch Morgen in den Urlaub fahre, kann ich mich noch nicht intensiv mit den Anwendungsmöglichkeiten (z.B. Zeitsteuerung nach Tageszeit bzw.  Saison oder Sonnenstand) beschäftigen.
Allerdings ist mir eine kosmetische Sache aufgefallen. Wenn man im Attribut Schedule 'zu viele' Möglichkeiten auswählt, geht das Ganze, da es Einzeilig ist, ganz schön in die Breite.
Ansonsten erst mal Danke für das Modul. Wird mir, wenn ich Zeit habe, wahrscheinlich einige Szenarien-Steuerungen erleichtern.

LG

Andreas
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 03 Juli 2019, 12:03:02
Danke dir.

Die kosmetische Sache kann das Modul nicht beeinflussen, da es eine Angelegenheit von FHEMWEB ist.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 03 Juli 2019, 16:59:06
Es gibt Überlegungen, wie/ob man DaySchedule mit IsWe() arrangiert, damit man auch für andere Module, die nur IsWe() benutzen, ein konsistentes Verhalten erzeugen kann, ohne dass diese speziell für DaySchedule angepasst werden müssten.


Die Diskussion dazu läuft hier (https://forum.fhem.de/index.php/topic,98583.msg955043.html#msg955043) separat.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: jsChris am 03 Juli 2019, 21:19:20
Hi Julian,

ich finde das Modul, bzw. ganz speziell den Ansatz bestimmte Zeiten dynamischer zu gestalten ganz spannend. Ich habe mehrere solcher Zeiten, die ich momentan mit von-bis löse, was aber im Laufe des Jahres nicht immer so passt.

Ich habe das Modul mal ausprobiert, aber ich bekomme noch nicht so recht den Überblick :) Wie kann ich denn die Übersicht aus deinem ersten Beitrag, erstes Bild herstellen? Also diese Tagesplanung für heute, morgen etc.?

Danke
Chris
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 03 Juli 2019, 22:27:58
Ich nahm an das sei offensichtlich. Schau dir mal den get Befehl "schedule" an.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 04 Juli 2019, 17:29:11
Zitat von: Loredo am 03 Juli 2019, 16:59:06
Es gibt Überlegungen, wie/ob man DaySchedule mit IsWe() arrangiert


Dazu wäre noch hinzuzufügen, dass DaySchedule im globalen Modus noch weitere Funktionen global (also für alle Module und auch für selbstgeschriebenen Perl Code) bereitstellt, die etwas genauer als IsWe() funktionieren:


IsWorkday()
IsVacation()
IsWeekend()
IsHoliday()


Der Unterschied zwischen IsWe() und IsWeekend() ist dabei, dass IsWeekend() wirklich nur am Samstag und Sonntag eine 1 zurückliefert, IsWe() jedoch auch an Feiertagen, Urlaubstagen. Sprich, IsWe() wird nur an Arbeitstagen eine 0 liefern, an allen anderen Tagen eine 1, ganz gleich warum es kein Arbeitstag ist.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: jsChris am 04 Juli 2019, 20:58:08
Alles klar, hatte ich übersehen. Jetzt habe ich auch die Übersicht gefunden.

Zitat von: Loredo am 04 Juli 2019, 17:29:11
Dazu wäre noch hinzuzufügen, dass DaySchedule im globalen Modus noch weitere Funktionen global (also für alle Module und auch für selbstgeschriebenen Perl Code) bereitstellt, die etwas genauer als IsWe() funktionieren:
IsWorkday()
IsVacation()
IsWeekend()
IsHoliday()

Wäre denn auch so etwas denkbar wie:
DaySchedule::isBetween('Später Nachmittag','Sonne Untergang')
oder besser
DaySchedule::isBetween('DaySeasonalHrT11','DaySeasonalHrT-12')
(Ich weiß, das könnte ich mir natürlich selber schreiben, aber wie machst du das denn oder war deine Idee dazu?)

Und wäre es nicht übersichtlicher, denn das hat mich nämlich etwas irritiert, von
0 - 24 durchzuzählen, anstatt
01-12 und -01 - -12?

Ich weiß, du hast dir sicher etwas dabei gedacht, aber ich gehe hier ganz praktisch ran... 

lg
Chris
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: l2r am 05 Juli 2019, 09:07:08
hi Loredo,

ich habe das Modul auch bei mir am Laufen und es sieht soweit alles gut aus. Eine Sache habe ich allerdings doch noch:

Könntest du ähnlich wie beim Abfall-Modul https://github.com/uniqueck/fhem-abfall/blob/develop/controls_fhemabfall.txt (https://github.com/uniqueck/fhem-abfall/blob/develop/controls_fhemabfall.txt) eine Controls-Datei zu deinem Git hinzufügen, dann könnte man das Modul in den Update-Prozess von FHEM einbinden und muss nicht immer alles von Hand kopieren? Oder ist das noch zu früh und das Modul zu instabil?

Gruß Michael
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 05 Juli 2019, 10:06:21
Zitat von: l2r am 05 Juli 2019, 09:07:08
Könntest du ähnlich wie beim Abfall-Modul https://github.com/uniqueck/fhem-abfall/blob/develop/controls_fhemabfall.txt (https://github.com/uniqueck/fhem-abfall/blob/develop/controls_fhemabfall.txt) eine Controls-Datei zu deinem Git hinzufügen, dann könnte man das Modul in den Update-Prozess von FHEM einbinden und muss nicht immer alles von Hand kopieren?


Nein, weil mir der Update Mechanismus nicht gefällt, da man die controls Datei bei jeder Änderung neu erstellen und mit einchecken muss.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: nils_ am 05 Juli 2019, 10:22:36
Zitat von: Loredo am 05 Juli 2019, 10:06:21
Nein, weil mir der Update Mechanismus nicht gefällt, da man die controls Datei bei jeder Änderung neu erstellen und mit einchecken muss.
könnte man diesen teil nicht "automatisieren"? --> https://de.atlassian.com/git/tutorials/git-hooks
und die datei dann erstellen lassen.....?
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 05 Juli 2019, 10:25:35
Zitat von: jsChris am 04 Juli 2019, 20:58:08
Wäre denn auch so etwas denkbar wie:
DaySchedule::isBetween('Später Nachmittag','Sonne Untergang')
oder besser
DaySchedule::isBetween('DaySeasonalHrT11','DaySeasonalHrT-12')
(Ich weiß, das könnte ich mir natürlich selber schreiben, aber wie machst du das denn oder war deine Idee dazu?)


Ziel ist es jetzt eigentlich nicht Unmengen an neuen (zentralen) Perl Subroutinen bereitzustellen... ich möchte auch nicht die Logik-Module wie DOIF etc. kopieren, DaySchedule ist vornehmlich ein Datenlieferant.


Zitat von: jsChris am 04 Juli 2019, 20:58:08
Und wäre es nicht übersichtlicher, denn das hat mich nämlich etwas irritiert, von
0 - 24 durchzuzählen, anstatt
01-12 und -01 - -12?


Also eine Sonnenuhr hat leider nur 12 Stunden und nachts funktioniert sie eher schlecht ;)
In der CommandRef habe ich ja schon geschrieben, dass DaySeasonalHr tagsüber positiv ist und nachts negativ. Deshalb kann man ganz leicht von/bis Vergleiche damit anstellen.
Auch macht es keinen Sinn das mit der normalen Uhrzeit leicht zu verwechseln.


Für die Umwandlung der Temporalen/Saisonalen Stunden in die relative Tageszeit (also die Textform) gibt es aber auch einen nummerischen Wert im Reading DaytimeN, welcher in der Tat den Wertebereich 0..23 hat (wenn man SeasonalHrs bei 12 belässt, ansonsten natürlich entsprechend anders). Man kann also in Steuerungen mit beiden Werten arbeiten, je nachdem was gerade besser passt. Aber für die Darstellung als Zahl und im Sprachgebrauch macht nur DaySeasonalHr Sinn.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 05 Juli 2019, 10:27:04
Zitat von: nils_ am 05 Juli 2019, 10:22:36
könnte man diesen teil nicht "automatisieren"? --> https://de.atlassian.com/git/tutorials/git-hooks (https://de.atlassian.com/git/tutorials/git-hooks)
und die datei dann erstellen lassen.....?


Das lohnt nicht, denn der Plan ist, dass der FHEM Installer einmal einen erweiterten Update Mechanismus bekommt. Das baue ich nicht mal eben schnell nur so halb für DaySchedule. Es ist auch nicht vorgesehen, dass DaySchedule noch so lange aus dem SVN fern bleibt, wir reden hier also nicht von Monaten oder Jahren.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 07 Juli 2019, 13:54:00
Zitat von: Loredo am 03 Juli 2019, 16:59:06
Es gibt Überlegungen, wie/ob man DaySchedule mit IsWe() arrangiert, damit man auch für andere Module, die nur IsWe() benutzen, ein konsistentes Verhalten erzeugen kann, ohne dass diese speziell für DaySchedule angepasst werden müssten.


Die Diskussion dazu läuft hier (https://forum.fhem.de/index.php/topic,98583.msg955043.html#msg955043) separat.


Die Überlegungen führten schließlich dazu (https://forum.fhem.de/index.php/topic,98583.msg955974.html#msg955974), dass es keinerlei Abstimmung geben kann/soll. In der Praxis bedeutet dass, dass IsWe() u.U. andere Ergebnisse liefert als das DaySchedule Modul darstellt. Das ist von Rudi so gewollt und als Benutzer hat man somit die Qual der Wahl, sich für eine Datenquelle mehrfach neu zu entscheiden (nämlich bei jedem Zugriff darauf). Andere Module, die auf diese Daten Bezug nehmen, bieten dann entweder an diese Wahl ebenfalls dort zu treffen oder eben nicht.


That's life ...
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Christoph Morrison am 11 Juli 2019, 16:52:21
(JFTR: Weil ich das Modul bereits benutzen möchte, habe ich einen Fork mit FHEM-update-Unterstützung (https://raw.githubusercontent.com/christoph-morrison/mod-DaySchedule/dev/controls_DaySchedule.txt) angelegt)
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 11 Juli 2019, 17:24:22
Finde ich nicht gut.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Christoph Morrison am 11 Juli 2019, 20:39:08
Zitat von: Loredo am 11 Juli 2019, 17:24:22
Finde ich nicht gut.

Tut mir leid. Weshalb findest du das nicht gut?
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Rudy am 15 Juli 2019, 22:36:59
Habe das Modul mal getestet und bekomme einen FHEM-Absturz (friert sofort ein, GUI ist nicht mehr erreichbar und nach ein paar Minuten erfolgt automatisch ein FHEM-Neustart) wenn ich dem Attribut HolidayDevices meinen Urlaubskalender (ein Calendar-Modul) zuweise. Im Log heißt es dazu PERL WARNING: Use of uninitialized value in string eq at ./FHEM/95_DaySchedule.pm line 1928.
Undefined subroutine &FHEM::DaySchedule::Calendar_Get called at ./FHEM/95_DaySchedule.pm line 4321.

Ich hoffe mit den Infos lässt sich zur Problemlösung was anfangen.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 16 Juli 2019, 10:00:52
Danke für die Meldung, ich habe einen Fix dafür eingecheckt.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Rudy am 16 Juli 2019, 18:36:49
Danke. Läuft jetzt.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Rudy am 17 Juli 2019, 21:09:39
Hab es wieder kaputt gekriegt.  :-[ Wenn ich bei AnnualEvents alle Häkchen rausnehme und keines bei "none" setze stürzt mir FHEM wieder ab mit der Meldung:Undefined subroutine &FHEM::DaySchedule::IsSeason1 called at ./FHEM/95_DaySchedule.pm line 4230.Mit "none" geht es hingegen.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 19 Juli 2019, 14:05:54
Danke, den fehlenden Validator habe ich ergänzt.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: chr2k am 08 September 2019, 14:15:54
Zitat von: Loredo am 02 Juli 2019, 12:26:42
muss es selbstständig installieren und aktualisieren.

Für gewöhnlich installiere ich Module, wenn diese noch nicht eingecheckt sind so, dass ich die .pm-Datei in das /fhem/FHEM/ Verzeichnis kopiere. Dort sind ja auch alle anderen Modul-Dateien vorhanden. Dann ein Neustart von FHEM und schon kann ich mit "define Tagesplan dayschedule" ein neues Device anlegen. Funktioniert bei mir nicht.

Hat sich bei dieser Vorgehensweise irgendwas geändert? Habe ich doch irgendwo einen Fehler?

Danke.

Gruß
Christian
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 08 September 2019, 14:17:38
Nein, das ist das Vorgehen. Wenn du nicht präziser wirst, kann ich dir keine andere Antwort geben.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: chr2k am 08 September 2019, 14:18:43
Zitat von: Loredo am 08 September 2019, 14:17:38
Nein, das ist das Vorgehen. Wenn du nicht präziser wirst, kann ich dir keine andere Antwort geben.

Pardon, mein FHEM gibt mir folgende Meldung aus " Unknown module dayschedule"
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 08 September 2019, 14:19:26
Groß und Kleinschreibung ist wichtig, das Modul heißt DaySchedule.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: chr2k am 08 September 2019, 14:23:14
Zitat von: Loredo am 08 September 2019, 14:19:26
Groß und Kleinschreibung ist wichtig, das Modul heißt DaySchedule.

Ich meine, dies auch probiert zu haben und dann dieselbe Meldung bekommen zu haben.

Ich habe es aber nun erneut ausprobiert und bekomme diese Meldung: "Cannot load module DaySchedule"
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 08 September 2019, 14:23:57
Logfile, verbose 5. Das übliche.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: chr2k am 08 September 2019, 14:27:25
Zitat von: Loredo am 08 September 2019, 14:23:57
Logfile, verbose 5. Das übliche.

Ich hoffe das ist das übliche:

Zitat2019.09.08 14:26:19 2: SONOS1: MusicServices-Service-subscribing successful with SID=uuid:RINCON_5CAAFD537E9E01400_sub0000007270
2019.09.08 14:26:28 1: reload: Error:Modul 95_DaySchedule deactivated:
Excessively long <> operator at ./FHEM/95_DaySchedule.pm line 21.

2019.09.08 14:26:28 0: Excessively long <> operator at ./FHEM/95_DaySchedule.pm line 21.

2019.09.08 14:26:28 2: HUEBridge: http request failed: write error: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: chr2k am 08 September 2019, 14:28:25
Ich bekomme auf dem GitHub übrigens nur in dem dev-Pfad eine pm-Datei angezeigt. Im Master-Pfad nicht. Ist das auch korrekt?
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 08 September 2019, 14:31:01
Sicher ist das korrekt, es gibt noch keinen Production Release.

In Zeile 25 gibt es kein <>.
Der Verdacht liegt nahe, dass du die Datei als komplette HTML Homepage von Github geladen hast. Du brauchst natürlich das Raw File:


https://raw.githubusercontent.com/fhem/mod-DaySchedule/dev/95_DaySchedule.pm
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: chr2k am 08 September 2019, 14:33:56
Zitat von: Loredo am 08 September 2019, 14:31:01
Der Verdacht liegt nahe, dass du die Datei als komplette HTML Homepage von Github geladen hast. Du brauchst natürlich das Raw

Ja, jetzt gehts.

Das ist bitter. Das ist mir bisher noch nie passiert  ::) ::) ::)

Danke dir.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Phiolin am 14 Oktober 2019, 12:28:26
Glaube die "recomputeAt" funktionieren noch nicht ganz wie geplant?

Internals:
   CFGFN     
   FUUID      5da43ffb-f33f-8c0c-2f5c-0a71af6dc5953336
   INTERVAL   3600
   NAME       daySchedule
   NEXTUPDATE 2019-10-14 13:01:47
   NOTIFYDEV  global,Astro
   NR         55821
   NTFY_ORDER 00-daySchedule
   STATE      Forenoon
   TYPE       DaySchedule
   READINGS:
     2019-10-14 11:29:32   AnnualEvent     ---
     2019-10-14 11:29:32   AnnualEventAdvent 0
     2019-10-14 11:29:32   AnnualEventCarnival 0
     2019-10-14 11:29:32   AnnualEventChristmas 0
     2019-10-14 11:29:32   AnnualEventEaster 0
     2019-10-14 11:29:32   AnnualEventHalloween 0
     2019-10-14 11:29:32   AnnualEventOktoberfest 0
     2019-10-14 11:29:32   AnnualEventSym  ➰
     2019-10-14 11:29:32   AnnualEventTurnOfTheYear 0
     2019-10-14 11:54:05   Day             today
     2019-10-14 11:29:32   DayChangeIsDST  0
     2019-10-14 11:29:32   DayChangeSeason 0
     2019-10-14 11:29:32   DayChangeSeasonMeteo 0
     2019-10-14 11:29:32   DayChangeSeasonPheno 0
     2019-10-14 12:01:00   DayDatetime     Monday, 14 October 2019 PM CEST
     2019-10-14 12:01:00   DayDatetimeS    Mon, 14 Oct 2019 PM CEST
     2019-10-14 11:54:05   DayDesc         Workday
     2019-10-14 11:29:32   DayN            14
     2019-10-14 11:30:03   DaySeasonalHr   5
     2019-10-14 11:29:32   DaySeasonalHrLenDay 00:53:59
     2019-10-14 11:29:32   DaySeasonalHrLenNight 01:06:00
     2019-10-14 11:30:03   DaySeasonalHrNextT 12:23:43
     2019-10-14 11:30:03   DaySeasonalHrR  V
     2019-10-14 11:29:32   DaySeasonalHrT-01 06:49:09
     2019-10-14 11:29:32   DaySeasonalHrT-02 05:42:49
     2019-10-14 11:29:32   DaySeasonalHrT-03 04:36:29
     2019-10-14 11:29:32   DaySeasonalHrT-04 03:30:09
     2019-10-14 11:29:32   DaySeasonalHrT-05 02:23:49
     2019-10-14 11:29:32   DaySeasonalHrT-06 01:17:29
     2019-10-14 11:29:32   DaySeasonalHrT-07 00:11:09
     2019-10-14 11:29:32   DaySeasonalHrT-08 23:05:41
     2019-10-14 11:29:32   DaySeasonalHrT-09 21:59:40
     2019-10-14 11:29:32   DaySeasonalHrT-10 20:53:40
     2019-10-14 11:29:32   DaySeasonalHrT-11 19:47:39
     2019-10-14 11:29:32   DaySeasonalHrT-12 18:41:38
     2019-10-14 11:29:32   DaySeasonalHrT01 07:55:29
     2019-10-14 11:29:32   DaySeasonalHrT02 08:49:09
     2019-10-14 11:29:32   DaySeasonalHrT03 09:42:49
     2019-10-14 11:29:32   DaySeasonalHrT04 10:36:29
     2019-10-14 11:30:03   DaySeasonalHrT05 11:30:09
     2019-10-14 11:29:32   DaySeasonalHrT06 12:23:43
     2019-10-14 11:29:32   DaySeasonalHrT07 13:17:43
     2019-10-14 11:29:32   DaySeasonalHrT08 14:11:42
     2019-10-14 11:29:32   DaySeasonalHrT09 15:05:41
     2019-10-14 11:29:32   DaySeasonalHrT10 15:59:40
     2019-10-14 11:29:32   DaySeasonalHrT11 16:53:40
     2019-10-14 11:29:32   DaySeasonalHrT12 17:47:39
     2019-10-14 11:29:32   DaySeasonalHrsDay 12
     2019-10-14 11:29:32   DaySeasonalHrsNight 12
     2019-10-14 11:54:05   DayType         Workday
     2019-10-14 11:29:32   DayTypeN        0
     2019-10-14 11:54:05   DayTypeS        WD
     2019-10-14 11:29:32   DayTypeSym      👔
     2019-10-14 11:54:05   DayWeekday      Monday
     2019-10-14 11:29:32   DayWeekdayN     1
     2019-10-14 11:54:05   DayWeekdayS     Mon
     2019-10-14 11:54:05   Daytime         Forenoon
     2019-10-14 11:30:03   DaytimeN        16
     2019-10-14 11:54:05   Month           October
     2019-10-14 11:29:32   MonthN          10
     2019-10-14 11:29:32   MonthProgress   45
     2019-10-14 11:29:32   MonthRemainD    17
     2019-10-14 11:54:05   MonthS          Oct
     2019-10-14 11:29:32   MoonCompass     ---
     2019-10-14 11:29:32   MoonCompassI    ---
     2019-10-14 11:29:32   MoonCompassS    ---
     2019-10-14 11:29:32   MoonPhaseSym    🌕
     2019-10-14 11:29:32   MoonSignSym     ♈
     2019-10-14 11:29:32   ObsSeasonSym    🍂
     2019-10-14 12:01:47   ObsTimeR        XII:I:XLVII
     2019-10-14 11:59:17   SchedLast       Daytime Forenoon
     2019-10-14 11:30:03   SchedLastT      11:29:44
     2019-10-14 11:59:17   SchedNext       Daytime Late forenoon
     2019-10-14 11:30:03   SchedNextT      12:23:43
     2019-10-14 11:59:17   SchedRecent     Daytime Forenoon, Daytime Early forenoon, Daytime Morning, Daytime Early morning, Daytime Breaking dawn, Daytime Dawn, Daytime First morning light, Daytime Cock-crow, Daytime Late night, Daytime After midnight, Daytime Midnight, Daytime Before midnight
     2019-10-14 11:59:17   SchedUpcoming   Daytime Late forenoon, Daytime Noon, Daytime Early afternoon, Daytime Afternoon, Daytime Afternoon, Daytime Late afternoon, Daytime First dusk, Daytime Dusk, Daytime Early evening, Daytime Evening, Daytime Late evening, Daytime Early night
     2019-10-14 11:54:05   SeasonMeteo     Fall
     2019-10-14 11:29:32   SeasonMeteoN    3
     2019-10-14 11:29:32   SeasonMeteoSym  🍂
     2019-10-14 11:54:05   SeasonPheno     Full Fall
     2019-10-14 11:29:32   SeasonPhenoN    8
     2019-10-14 11:29:32   SeasonPhenoSym  🍂
     2019-10-14 11:54:05   SunCompass      South-Southeast
     2019-10-14 11:29:32   SunCompassI     7
     2019-10-14 11:54:05   SunCompassS     SSE
     2019-10-14 11:29:32   SunCompassSym   ⬊
     2019-10-14 11:29:32   SunSignSym      ♎
     2019-10-14 11:29:32   WeekdayN        1
     2019-10-14 11:29:32   Weekofyear      42
     2019-10-14 11:29:32   YearIsLY        0
     2019-10-14 11:29:32   YearProgress    79
     2019-10-14 11:29:32   YearRemainD     78
     2019-10-14 12:01:47   state           Updated
Attributes:
   AnnualEvents Carnival,Easter,Oktoberfest,Halloween,Advent,TurnOfTheYear,Christmas
   AstroDevice Astro
   HolidayDevices Feiertage_NRW
   Schedule   Daytime
   event-on-change-reading .*
   group      Umgebungswerte
   icon       time_calendar
   recomputeAt NewDay,SeasonalHr
   room       Helper
   stateFormat Daytime


Um 12:23:43 hätte nach meinem Verständnis DaySeasonalHr von 5 auf 6 wechseln sollen, da "recomputeAt" auf "SeasonalHr" eingestellt ist. Das List oben ist von etwa 12:25, definitiv (auch nach Serverzeit) nach dem Beginn der DaySeasonalHrT06.
Passiert ist aber nichts. Wäre schön, weil ich die DaytimeHours/Stages aus Homestate schon in einigen Abfragen verwende und wenn das mal der Ersatz dafür werden soll, dann sollten diese Werte schon zeitnah umspringen, auch ohne das ich das Intervall auf 1 Minute heruntersetzen muss. :)

Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Timmäää am 10 Dezember 2019, 06:37:29
Hallo,

ist geplant das Modul offiziell einzuchecken?

Danke und Gruß,
Tim
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Loredo am 11 Dezember 2019, 19:21:30
Grundsätzlich ja.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Rudy am 12 Januar 2020, 19:42:15
Hallo. Ich nutze das Modul inzwischen seit einiger Zeit und bin damit grundsätzlich auch sehr zufrieden. Es läuft bis auf einen Punkt aus super.

Probleme gibt es, wenn ich als Tagestyp einen mehrtägigen Urlaub abbilden will. Dazu habe ich meinen Kalender aus Nextcloud heraus mit dem Modul als VacationDevice verknüpft und dort einen Termin angelegt. Dieser Termin ist definiert als ganztägig und reicht über den gesamten Urlaubszeitraum bspw. vom 06.01. - 10.01.2020. Am ersten Tag, also dem 06.01. wird vom Modul auch der Tagestyp richtig als Vacation erkannt. Die Folgetage 07.01. - 10.01. werden jedoch als normale Arbeitstage beim Tagestyp angezeigt. Oder mache ich nur was falsch bei der Definition des Urlaubs im Kalender? Ich wollte es zumindest vermeiden, dass ich für jeden Urlaubstag einen eigenen Termin anlegen muss (also im Beispiel 5 einzelne Termine).

Und außerdem hätte ich noch einen Feature-Wunsch. Bei den Readings werden alle Einträge nur für den aktuellen Tag angezeigt. Für einige Auswertungen wäre es jedoch hilfreich, wenn man zusätzlich zumindest die wichtigsten Readings wie Tagestyp usw. auch für den Folgetag und den Vortag anzeigen lassen könnte. Gerne auch optional.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: trinitywhm am 15 Januar 2020, 06:50:47
Hallo, ich wollte mit DaySchedule ein wenig rumspielen und habe ein notify auf DaySeasonalHr gemacht. Im Log zeigt er mir allerdings ein anderes Reading an. Ich kann mir da gerade kein Reim drauf machen.

DaySchedule Device
Internals:
   CHANGED   
   FUUID      5d1d0e40-f33f-3b28-fabb-f1fb203de02d91bb
   INTERVAL   3600
   NAME       Tagesplan
   NEXTUPDATE 2020-01-15 06:59:38
   NOTIFYDEV  global,OUT_Astro
   NR         128
   NTFY_ORDER 00-Tagesplan
   RECOMPUTEAT NewDay,SeasonalHr
   STATE      Erstes Morgenlicht
   TYPE       DaySchedule
   READINGS:
     2020-01-07 00:00:00   AnnualEvent     ---
     2019-12-24 00:00:00   AnnualEventAdvent 0
     2019-07-03 22:21:23   AnnualEventCarnival 0
     2019-12-27 00:00:00   AnnualEventChristmas 0
     2019-07-03 22:21:23   AnnualEventEaster 0
     2019-11-01 00:00:01   AnnualEventHalloween 0
     2019-10-07 00:00:00   AnnualEventOktoberfest 0
     2020-01-07 00:00:00   AnnualEventSym  ➰
     2020-01-07 00:00:00   AnnualEventTurnOfTheYear 0
     2019-07-03 22:21:23   Day             heute
     2019-10-28 00:00:00   DayChangeIsDST  0
     2019-12-23 00:00:01   DayChangeSeason 0
     2019-12-02 00:00:00   DayChangeSeasonMeteo 0
     2019-11-30 00:00:00   DayChangeSeasonPheno 0
     2020-01-15 00:00:00   DayDatetime     Mittwoch, 15 Januar 2020 CET
     2020-01-15 00:00:00   DayDatetimeS    Mi, 15 Jan 2020 CET
     2020-01-14 00:00:00   DayDesc         Freizeit
     2020-01-15 00:00:00   DayN            15
     2020-01-15 05:42:41   DaySeasonalHr   -2
     2020-01-15 00:00:00   DaySeasonalHrLenDay 00:43:02
     2020-01-15 00:00:00   DaySeasonalHrLenNight 01:16:57
     2020-01-15 05:42:41   DaySeasonalHrNextT 06:59:38
     2020-01-15 05:42:41   DaySeasonalHrR  XI
     2020-01-14 08:00:09   DaySeasonalHrT-01 06:59:38
     2020-01-15 06:42:41   DaySeasonalHrT-02 05:42:18
     2020-01-15 05:25:43   DaySeasonalHrT-03 04:25:31
     2020-01-15 04:08:46   DaySeasonalHrT-04 03:08:44
     2020-01-15 02:51:47   DaySeasonalHrT-05 01:51:57
     2020-01-15 01:34:50   DaySeasonalHrT-06 00:35:10
     2020-01-15 00:00:00   DaySeasonalHrT-07 23:17:51
     2020-01-14 23:00:12   DaySeasonalHrT-08 22:00:54
     2020-01-14 21:43:03   DaySeasonalHrT-09 20:43:56
     2020-01-14 20:25:54   DaySeasonalHrT-10 19:26:58
     2020-01-14 19:08:46   DaySeasonalHrT-11 18:10:01
     2020-01-14 16:51:38   DaySeasonalHrT-12 16:53:03
     2020-01-14 09:00:09   DaySeasonalHrT01 08:16:36
     2020-01-14 09:43:14   DaySeasonalHrT02 08:59:38
     2020-01-14 09:43:14   DaySeasonalHrT03 09:42:40
     2020-01-14 11:08:46   DaySeasonalHrT04 10:25:42
     2020-01-14 11:08:46   DaySeasonalHrT05 11:08:45
     2020-01-14 12:34:28   DaySeasonalHrT06 11:51:47
     2020-01-14 13:17:19   DaySeasonalHrT07 12:34:49
     2020-01-14 14:00:11   DaySeasonalHrT08 13:17:51
     2020-01-14 14:43:03   DaySeasonalHrT09 14:00:54
     2020-01-14 15:25:54   DaySeasonalHrT10 14:43:56
     2020-01-14 16:08:46   DaySeasonalHrT11 15:26:58
     2020-01-14 16:51:38   DaySeasonalHrT12 16:10:01
     2019-07-03 22:21:23   DaySeasonalHrsDay 12
     2019-07-03 22:21:23   DaySeasonalHrsNight 12
     2020-01-14 00:00:00   DayType         Freizeit
     2020-01-14 00:00:00   DayTypeN        2
     2020-01-14 00:00:00   DayTypeS        AF
     2020-01-14 00:00:00   DayTypeSym      🧘
     2020-01-15 00:00:00   DayWeekday      Mittwoch
     2020-01-15 00:00:00   DayWeekdayN     3
     2020-01-15 00:00:00   DayWeekdayS     Mi
     2020-01-15 05:42:41   Daytime         Erstes Morgenlicht
     2020-01-15 05:42:41   DaytimeN        10
     2020-01-01 00:00:01   Month           Januar
     2020-01-01 00:00:01   MonthN          1
     2020-01-15 00:00:00   MonthProgress   48
     2020-01-15 00:00:00   MonthRemainD    16
     2020-01-01 00:00:01   MonthS          Jan
     2020-01-15 06:42:41   MoonCompass     Südwest
     2020-01-15 06:42:41   MoonCompassI    10
     2020-01-15 06:42:41   MoonCompassS    SW
     2020-01-15 05:25:43   MoonCompassSym  ⬋
     2020-01-11 19:05:09   MoonPhaseSym    🌖
     2020-01-13 15:24:52   MoonSignSym     ♍
     2019-12-22 00:00:00   ObsSeasonSym    ⛄
     2020-01-15 06:42:41   ObsTimeR        VI:XLII:XL
     2020-01-15 06:42:41   SchedLast       AstroTwilightMorning
     2020-01-15 06:42:41   SchedLastT      06:21:46
     2020-01-15 06:42:41   SchedNext       DaySeasonalHr -1, Daytime Morgendämmerung
     2020-01-15 06:42:41   SchedNextT      06:59:38
     2020-01-15 06:42:41   SchedRecent     AstroTwilightMorning, Daytime Erstes Morgenlicht, DaySeasonalHr -2, MoonTransit, Daytime Hahnenschrei, DaySeasonalHr -3, Daytime Späte Nacht, DaySeasonalHr -4, Daytime Nach Mitternacht, DaySeasonalHr -5, Daytime Mitternacht, DaySeasonalHr -6, ObsDate 15.01.2020
     2020-01-15 06:42:41   SchedUpcoming   DaySeasonalHr -1, Daytime Morgendämmerung, NauticTwilightMorning, CivilTwilightMorning, SunRise, DaySeasonalHr 1, Daytime Tagesanbruch, CustomTwilightMorning, DaySeasonalHr 2, Daytime Früher Morgen, DaySeasonalHr 3, Daytime Morgen, DaySeasonalHr 4, Daytime Früher Vormittag, DaySeasonalHr 5, Daytime Vormittag, MoonSet, DaySeasonalHr 6, Daytime Später Vormittag, SunTransit, DaySeasonalHr 7, Daytime Mittag, DaySeasonalHr 8, Daytime Früher Nachmittag, DaySeasonalHr 9, Daytime Nachmittag, DaySeasonalHr 10, Daytime Nachmittag, DaySeasonalHr 11, Daytime Später Nachmittag, DaySeasonalHr 12, Daytime Erste Dämmerung, CustomTwilightEvening, SunSet, DaySeasonalHr -12, Daytime Abenddämmerung, CivilTwilightEvening, NauticTwilightEvening, DaySeasonalHr -11, Daytime Früher Abend, AstroTwilightEvening, DaySeasonalHr -10, Daytime Abend, DaySeasonalHr -9, Daytime Später Abend, DaySeasonalHr -8, Daytime Frühe Nacht, MoonRise, DaySeasonalHr -7, Daytime Vor Mitternacht
     2019-12-01 00:00:00   SeasonMeteo     Winter
     2019-12-01 00:00:00   SeasonMeteoN    0
     2019-12-01 00:00:00   SeasonMeteoSym  ⛄
     2019-11-29 15:41:22   SeasonPheno     Winter
     2019-11-29 15:41:22   SeasonPhenoN    0
     2019-11-29 15:41:22   SeasonPhenoSym  ⛄
     2020-01-14 16:51:38   SunCompass      ---
     2020-01-14 16:51:38   SunCompassI     ---
     2020-01-14 16:51:38   SunCompassS     ---
     2020-01-14 14:00:11   SunCompassSym   ⬋
     2019-12-22 05:22:06   SunSignSym      ♑
     2020-01-15 00:00:00   WeekdayN        3
     2020-01-13 00:00:00   Weekofyear      3
     2020-01-01 00:00:01   YearIsLY        1
     2020-01-13 00:00:00   YearProgress    4
     2020-01-15 00:00:00   YearRemainD     351
     2020-01-15 06:42:41   state           Updated
Attributes:
   AnnualEvents Carnival,Fasching,Easter,Oktoberfest,Halloween,Advent,TurnOfTheYear,Christmas
   AstroDevice OUT_Astro
   DbLogExclude .*
   InformativeDays ValentinesDay,WalpurgisNight,AshWednesday,MothersDay,FathersDay,HarvestFestival,Martinmas,LastSundayBeforeAdvent,StNicholasDay,BiblicalMagi,Pentecost
   Schedule   MoonPhaseS,MoonRise,MoonSet,MoonSign,MoonTransit,ObsDate,ObsIsDST,SeasonMeteo,SeasonPheno,ObsSeason,DaySeasonalHr,Daytime,SunRise,SunSet,SunSign,SunTransit,AstroTwilightEvening,AstroTwilightMorning,CivilTwilightEvening,CivilTwilightMorning,NauticTwilightEvening,NauticTwilightMorning,CustomTwilightEvening,CustomTwilightMorning
   VacationDevices bw
   WorkdayDevices mircoSchicht
   event-on-change-reading DaySeasonalHrR
   icon       time_calendar
   language   DE
   recomputeAt NewDay,SeasonalHr
   room       Haus,Helfer->Kalender
   stateFormat Daytime


notify auf DaySeasonalHr (also auf den Zahlenwert)
Tagesplan:DaySeasonalHr.* {
my $residents = ReadingsVal('rgr_Bewohner', 'residentsTotalPeoplePresentDevs', '');

#fhem ("msg text debug " .$EVTPART1);
if ($EVTPART1 == 3){
#ToDo vorlesen lassen
fhem ("msg audio \@[rgr_Bewohner:residentsHomeDevs] Es stehen noch folgende Dinge auf der Tudu-Liste:" . ReadingsVal("myEcho","tou","") . " und " . ReadingsVal('dum_Hauswerte', 'zeit', ''));
}
elsif ($EVTPART1 == 5){
fhem ("msg audio \@[rgr_Bewohner:residentsHomeDevs] Hey " . ReadingsVal('dum_Hauswerte', 'zeit', ''));
}
elsif ($EVTPART1 == -10){
fhem ("set HouseAnn kurz");
}
elsif ($EVTPART1 == -3){
fhem ("set HouseAnn lang");
}


}



Log zeigt dass im Event DaySeasonalHrR steht und das dann logischerweise nicht von meinem notify abgefangen wird.
2020.01.15 05:42:41 3: eval: my $SELF='not_TemporaleStunden';my $EVTPART0='DaySeasonalHrR:';my $EVTPART1='XI';my $TYPE='DaySchedule';my $NAME='Tagesplan';my $EVENT='DaySeasonalHrR: XI';{
my $residents = ReadingsVal('rgr_Bewohner', 'residentsTotalPeoplePresentDevs', '');

#fhem ("msg text debug " .$EVTPART1);
if ($EVTPART1 == 3){
#ToDo vorlesen lassen
fhem ("msg audio \@[rgr_Bewohner:residentsHomeDevs] Es stehen noch folgende Dinge auf der Tudu-Liste:" . ReadingsVal("myEcho","tou","") . " und " . ReadingsVal('dum_Hauswerte', 'zeit', ''));
}
elsif ($EVTPART1 == 5){
fhem ("msg audio \@[rgr_Bewohner:residentsHomeDevs] Hey " . ReadingsVal('dum_Hauswerte', 'zeit', ''));
}
elsif ($EVTPART1 == -10){
fhem ("set HouseAnn kurz");
}
elsif ($EVTPART1 == -3){
fhem ("set HouseAnn lang");
}


}


Habe ich hier irgendwo einen kapitalen Denkfehler oder was ist das Problem?
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: Christoph Morrison am 15 Januar 2020, 10:31:35
Tagesplan:DaySeasonalHr.* matcht auf:

Zitat
     2020-01-15 05:42:41   DaySeasonalHr   -2
     2020-01-15 00:00:00   DaySeasonalHrLenDay 00:43:02
     2020-01-15 00:00:00   DaySeasonalHrLenNight 01:16:57
     2020-01-15 05:42:41   DaySeasonalHrNextT 06:59:38
     2020-01-15 05:42:41   DaySeasonalHrR  XI
     2020-01-14 08:00:09   DaySeasonalHrT-01 06:59:38
     2020-01-15 06:42:41   DaySeasonalHrT-02 05:42:18
     2020-01-15 05:25:43   DaySeasonalHrT-03 04:25:31
     2020-01-15 04:08:46   DaySeasonalHrT-04 03:08:44
     2020-01-15 02:51:47   DaySeasonalHrT-05 01:51:57
     2020-01-15 01:34:50   DaySeasonalHrT-06 00:35:10
     2020-01-15 00:00:00   DaySeasonalHrT-07 23:17:51
     2020-01-14 23:00:12   DaySeasonalHrT-08 22:00:54
     2020-01-14 21:43:03   DaySeasonalHrT-09 20:43:56
     2020-01-14 20:25:54   DaySeasonalHrT-10 19:26:58
     2020-01-14 19:08:46   DaySeasonalHrT-11 18:10:01
     2020-01-14 16:51:38   DaySeasonalHrT-12 16:53:03
     2020-01-14 09:00:09   DaySeasonalHrT01 08:16:36
     2020-01-14 09:43:14   DaySeasonalHrT02 08:59:38
     2020-01-14 09:43:14   DaySeasonalHrT03 09:42:40
     2020-01-14 11:08:46   DaySeasonalHrT04 10:25:42
     2020-01-14 11:08:46   DaySeasonalHrT05 11:08:45
     2020-01-14 12:34:28   DaySeasonalHrT06 11:51:47
     2020-01-14 13:17:19   DaySeasonalHrT07 12:34:49
     2020-01-14 14:00:11   DaySeasonalHrT08 13:17:51
     2020-01-14 14:43:03   DaySeasonalHrT09 14:00:54
     2020-01-14 15:25:54   DaySeasonalHrT10 14:43:56
     2020-01-14 16:08:46   DaySeasonalHrT11 15:26:58
     2020-01-14 16:51:38   DaySeasonalHrT12 16:10:01
     2019-07-03 22:21:23   DaySeasonalHrsDay 12
     2019-07-03 22:21:23   DaySeasonalHrsNight 12
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: trinitywhm am 15 Januar 2020, 11:08:58
OK, guten Morgen....

Vielen Dank für den Stups in die richtige Richtung. Hätte ich natürlich auch selbst sehen können.
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: dora71 am 10 Juli 2020, 10:01:18
Hallo Julian,

bin erst jetzt auf Dein Modul aufmerksam geworden und habe es erfolgreich installieren können. Dafür auf jeden Fall schon einmal vielen Dank. Ich hoffe, dass Du noch aktiv an dem Modul arbeitest, denn ich hätte noch 2 Fragen dazu:

1. Im beigefügten Bildschirmabgriff sieht man, dass mir wohl noch irgendwelche Icons fehlen, welche muss ich nachinstallieren, damit das so aussieht wie bei Dir? => hat sich nach einem Neustart von FHEM erledigt

2. Die Tageszeiten (Morgen, Mittag, etc.) finde ich extrem hilfreich, aber im Bildschirmabgriff finde ich etwas merkwürdig:
    - "vor Mitternacht" beginnt um 00:56 Uhr, das ist doch eindeutig nach Mitternacht  ???
    - "Mittag" beginnt um 13:35 Uhr (Studentenzeitrechnung?)  ???

3. Einige Readings (SunCompass, MoonCompass) haben bei mir mit den Umlauten Schwierigkeiten.

Da ich die Tageszeiten in meinem "Demenz-Statusdisplay" nutzen möchte, passen die nicht so ganz. Zumindest nach meinem Verständnis ist ja "vor Mitternacht" und "nach Mitternacht" eindeutig, ebenso würde ich "Mittag" dem Bereich um 12:00 Uhr zuordnen.

Habe ich da noch einen Verständnisfehler oder habe ich etwas nicht beachtet?

Gruß Rainer
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: kjmEjfu am 10 Juli 2020, 12:56:53
Zitat von: dora71 am 10 Juli 2020, 10:01:18
2. Die Tageszeiten (Morgen, Mittag, etc.) finde ich extrem hilfreich, aber im Bildschirmabgriff finde ich etwas merkwürdig:
    - "vor Mitternacht" beginnt um 00:56 Uhr, das ist doch eindeutig nach Mitternacht  ???
    - "Mittag" beginnt um 13:35 Uhr (Studentenzeitrechnung?)  ???


Julian nutzt die temporalen Stunden. Dadurch kommt es zu diesen Auswirkungen (s. auch https://de.wikipedia.org/wiki/Temporale_Stunde#Astronomische_Grundlagen)
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: dora71 am 11 Juli 2020, 12:20:55
Ah ok, danke für die Erklärungen ... trotzdem ein wenig verwirrend  :o

Dann hätte ich eine Ergänzung des Moduls dahingehend vorzuschlagen, dass auch die äquinoktialen (gleichlangen) Stunden bzw. Tageszeiten abgebildet werden mit Zugriff auf die Bezeichnungen wie Vormittag, früher Abend, etc. Eventuell wäre es auch eine Idee, zwischen den beiden Systemen per Set Befehl umschalten zu können.

PS: Wikipedia sei Dank, das war mir so nicht bekannt. Hoffe, ich habe das so richtig verstanden.

Grüße und schönes Wochenende.

Rainer
Titel: Antw:[DaySchedule] Tagesablaufplanung und Tagesstatus
Beitrag von: trinitywhm am 07 April 2022, 08:44:11
Weiß jemand aus welchem Reading ich ablesen kann ob wir derzeit Sommer- oder Winterzeit haben. Ich denke ich stehe ein wenig auf dem Schlauch.