[DaySchedule] Tagesablaufplanung und Tagesstatus

Begonnen von Loredo, 02 Juli 2019, 12:26:42

Vorheriges Thema - Nächstes Thema

rischbiter123

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
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

rischbiter123

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
4*Raspi, Max Thermostate und Fensterkontakte, FB7590, Mysensors und NanoCUL, IT und Sonoff, zigbee2mqtt2

Loredo

Danke dir.

Die kosmetische Sache kann das Modul nicht beeinflussen, da es eine Angelegenheit von FHEMWEB ist.
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

Loredo

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 separat.
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

jsChris

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

Loredo

Ich nahm an das sei offensichtlich. Schau dir mal den get Befehl "schedule" an.
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

Loredo

#21
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.
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

jsChris

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

l2r

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 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
Wissen ist Macht.
Ich weiß nix.
Macht nix.

Loredo

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 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.
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

nils_

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.....?
viele Wege in FHEM es gibt!

Loredo

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.
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

Loredo

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
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.
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

Loredo

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 separat.


Die Überlegungen führten schließlich dazu, 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 ...
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

Christoph Morrison

(JFTR: Weil ich das Modul bereits benutzen möchte, habe ich einen Fork mit FHEM-update-Unterstützung angelegt)