FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Kalendermodule => Thema gestartet von: Adimarantis am 15 Februar 2024, 09:22:35

Titel: Abfrage ob heute/morgen Ferientag/Feiertag mit CALVIEW
Beitrag von: Adimarantis am 15 Februar 2024, 09:22:35
Hallo,

Zur Steuerung von Heizung und Rollos wäre es sinnvoll zu wissen, ob heute (Rollos später hoch, Heizung später an) und morgen (Heizung länger an) ein freier Tag ist.
Dazu habe ich mittels CALVIEW und Calender Devices entsprechende Ferien- und Feiertagskalender eingebunden.
Insbesondere bei den Ferien (mehrtägige Events) ist es allerdings nicht trivial rauszufinden ob heute (oder morgen) ein Ferientag ist.
Die Readings c-today und c-tomorrow liefern hier keine brauchbaren Werte (ich finde jetzt auf Anhieb aber auch gar nicht, wofür die genau gedacht sind).

Aktuell behelfe ich mich mit einer myUtils Routine, aber der Anwendungsfall sollte doch eigentlich recht gängig sein.
Gibt es das eventuell schon? Oder könnte man CALVIEW so erweitern, dass in einem Reading ein Flag steht für "heute gilt ein ganztägiges oder mehrtägiges Ereignis" und das selbe auch für morgen?

Jörg
Titel: Aw: Abfrage ob heute/morgen Ferientag/Feiertag mit CALVIEW
Beitrag von: Beta-User am 15 Februar 2024, 10:10:21
Zitat von: Adimarantis am 15 Februar 2024, 09:22:35Hallo,

Zur Steuerung von Heizung und Rollos wäre es sinnvoll zu wissen, ob heute (Rollos später hoch, Heizung später an) und morgen (Heizung länger an) ein freier Tag ist.
Dazu habe ich mittels CALVIEW und Calender Devices entsprechende Ferien- und Feiertagskalender eingebunden.
Insbesondere bei den Ferien (mehrtägige Events) ist es allerdings nicht trivial rauszufinden ob heute (oder morgen) ein Ferientag ist.
Die Readings c-today und c-tomorrow liefern hier keine brauchbaren Werte (ich finde jetzt auf Anhieb aber auch gar nicht, wofür die genau gedacht sind).

Aktuell behelfe ich mich mit einer myUtils Routine, aber der Anwendungsfall sollte doch eigentlich recht gängig sein.
Gibt es das eventuell schon? Oder könnte man CALVIEW so erweitern, dass in einem Reading ein Flag steht für "heute gilt ein ganztägiges oder mehrtägiges Ereignis" und das selbe auch für morgen?

Jörg

Ich löse das über eine calendar2holiday-Konvertierung (ohne calview). Sollte bei Interesse unter diesem Stichwort zu finden sein.
Titel: Aw: Abfrage ob heute/morgen Ferientag/Feiertag mit CALVIEW
Beitrag von: Adimarantis am 15 Februar 2024, 13:15:14
Ok, ich hatte mich da jetzt etwas zu sehr auf CALVIEW versteif (den ich aber trotzdem wegen Anzeige auf FTUI brauche).
Calendar bietet indirekt Optionen. Ein Reading wär mir zwar lieber, aber mit einem relativ einfachen DOIF definier ich mir zwei Dummys.
Um rauszufinden ob morgen frei ist, kombiniere ich Wochenende, Feiertag und Ferien - scheint zumindest gerade (Winterferien) zu klappen.
{
 if ("[Feiertage_Bayern:tomorrow]" eq "none" and (fhem("get Ferien events limit:when=tomorrow") eq "") and $wday<5) {
   fhem("set Ferientag_Morgen 0");
 } else {
   fhem("set Ferientag_Morgen 1");
 }
 if ("[Feiertage_Bayern:today]" eq "none" and (fhem("get Ferien events limit:when=today") eq "") and $we==0) {
   fhem("set Ferientag_Heute 0");
 } else {
   fhem("set Ferientag_Heute 1");
 }
}

Muss ich erstmal beobachten, ob es sonst auch tut, bevor ich es produktiv verwende.
Titel: Aw: Abfrage ob heute/morgen Ferientag/Feiertag mit CALVIEW
Beitrag von: Beta-User am 15 Februar 2024, 13:29:31
Zitat von: Adimarantis am 15 Februar 2024, 13:15:14Ok, ich hatte mich da jetzt etwas zu sehr auf CALVIEW versteif (den ich aber trotzdem wegen Anzeige auf FTUI brauche).
Calendar bietet indirekt Optionen. Ein Reading wär mir zwar lieber, aber mit einem relativ einfachen DOIF definier ich mir zwei Dummys.
Um rauszufinden ob morgen frei ist, kombiniere ich Wochenende, Feiertag und Ferien - scheint zumindest gerade (Winterferien) zu klappen.
{
 if ("[Feiertage_Bayern:tomorrow]" eq "none" and (fhem("get Ferien events limit:when=tomorrow") eq "") and $wday<5) {
   fhem("set Ferientag_Morgen 0");
 } else {
   fhem("set Ferientag_Morgen 1");
 }
 if ("[Feiertage_Bayern:today]" eq "none" and (fhem("get Ferien events limit:when=today") eq "") and $we==0) {
   fhem("set Ferientag_Heute 0");
 } else {
   fhem("set Ferientag_Heute 1");
 }
}

Muss ich erstmal beobachten, ob es sonst auch tut, bevor ich es produktiv verwende.

Hier bei uns ist halt noch "holiday2we" im Einsatz, und damit ist es - je nachdem, welche holiday-Devices definiert sind - eben hilfreich, das ganze mit
{IsWe("tomorrow")}abfragen zu können. Gilt dann halt systemweit und wird z.B. auch von AutoShuttersControl direkt mit beachtet. Geht natürlich auch, wenn man entsprechende Readings z.B. an einem dummy füllt.
Titel: Aw: Abfrage ob heute/morgen Ferientag/Feiertag mit CALVIEW
Beitrag von: Dr. Boris Neubert am 15 Februar 2024, 14:34:34
Zitat von: Adimarantis am 15 Februar 2024, 09:22:35Zur Steuerung von Heizung und Rollos wäre es sinnvoll zu wissen, ob heute (Rollos später hoch, Heizung später an) und morgen (Heizung länger an) ein freier Tag ist.

Ich hatte so etwas vor ein paar Jahren am Laufen, finde aber den Code nicht mehr.

Für Ferientag heute lässt es sich leicht lösen, wenn man auf die Events start und stop ein Notify legt (Beispiel in der CommandRef) und damit einen Dummy "FerienHeute" schaltet. Für Ferientag morgen könntest Du per Plug-in einen Alarm einen Tag vor Ende des Termins an den Termin dranfummeln und eine zweiten Dummy "FerienMorgen" abschalten, wenn das Event alarm kommt.
Titel: Aw: Abfrage ob heute/morgen Ferientag/Feiertag mit CALVIEW
Beitrag von: D3ltorohd am 27 März 2024, 18:57:16
Hallo zusammen. Ich hatte mich glaub letztes Jahr auch durchgekämpft und auch hinbekommen, das die Rollos in den Ferien, später fahren. In diesem Jahr wars das natürlich, weil denke ich mal, die URLS zu den Tagen nicht aktuell waren. Diese hab ich nun angepasst. Aber wo kann ich jetzt nachprüfen oder sehen, ob die Rollos morgen später fahren. Müsste die Uhrzeit dann bei den Rollos auf 8 Uhr stehen, das ist die WE Time Up ?

Denn dann hab ich noch irgendwo nen Fehler drin. Ich weiß auch gar nicht mehr richtig wie ich das damals hinbekommen habe. ::)  :P

Kann aber auch sein, das ich das über die URL's nicht hinbekommen habe. Aber was ich mit der Datei gemacht hab, weiß ich auch nicht mehr.

So sieht es momentan aus.

Ferien 2.png

Ferien 3.png

Ferien.png

Hm wenn ich die Datei bw.holiday bearbeite und dort folgendes Eintrage, geht es sofort.  4 03-24 04-05 Osterferien. Die Rollos fahren morgen später bei den Kids.

Aber wie kann ich das mit den Urls über die Kalender automatisieren ? Das ich das nicht händisch eintragen muss ? Oder geht das mit den Calender Devices nicht ?

Grüße,
D3ltoro