Feiertagsberechnung - Skript

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Petrus
Beiträge: 134
Registriert: 13.01.2010, 20:53
Hat sich bedankt: 1 Mal
Danksagung erhalten: 25 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Petrus » 24.09.2018, 18:10

Korrekt!

Benutzeravatar
dogfight76
Beiträge: 322
Registriert: 27.08.2014, 16:26
Hat sich bedankt: 12 Mal
Danksagung erhalten: 1 Mal

Re: Feiertagsberechnung - Skript

Beitrag von dogfight76 » 31.10.2018, 13:01

Hallo,

mir wird für morgen 01.11.2018 "Allerheiligen" angezeigt. Da dies in Niedersachsen kein Feiertag ist wäre meine Frage:
Wie diesen Feiertag löschen ?

Gruß
RaspberryMatic CCU3 mit aktueller FW

Benutzeravatar
SHC
Beiträge: 202
Registriert: 24.10.2007, 13:57

Re: Feiertagsberechnung - Skript

Beitrag von SHC » 31.10.2018, 13:09

Hallo Petrus,

vielen Dank für diese tollen Scripte. Finde ich große Klasse, dass Du Dir für die Community solch eine Mühe machst.

Seit diesem Jahr gibt es auch in Hamburg den Reformationstag am 31.10. Vielleicht könntest Du das bei der nächsten Überarbeitung mit einpflegen?


Vielen Dank!
SHC

Benutzeravatar
SHC
Beiträge: 202
Registriert: 24.10.2007, 13:57

Re: Feiertagsberechnung - Skript

Beitrag von SHC » 31.10.2018, 17:18

Hallo Petrus,

evtl. habe ich bei dem Urlaubsscript noch einen kleinen Bug gefunden, oder der Bug sitzt vor dem Bildschrim. :D

Wenn ich die Funktion "chrono" auf true setze, wird nur noch das erste Datum bei der (debug-)Verarbeitung angezeigt, auch wenn es nicht das chronologisch erste Datum ist.

Urlaubstage

Code: Alles auswählen

08.11.18;03.11.18
Einstellungen

Code: Alles auswählen

  boolean b_debug  = true;
  string  s_today  = "2018-10-31";
  boolean b_CheckSVs= false;
Ergebnis

Code: Alles auswählen

(Jahrestage) Heute: 304 | Morgen: 305
1. Eintrag: 08.11.18: (312)

(Debug) Heute : Kein Urlaub
(Debug) Morgen: Kein Urlaub
(Debug) Tage bis Urlaub: 8
Ich hätte die Beschreibung so verstanden, dass der 03.11.18 zuerst angezeigt wird? Aber vielleicht ist das auch ein Denkfehler?


Danke Dir,
SHC

Petrus
Beiträge: 134
Registriert: 13.01.2010, 20:53
Hat sich bedankt: 1 Mal
Danksagung erhalten: 25 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Petrus » 01.11.2018, 11:56

Hallo Zusammen,

@docfight76
Wenn du die Liste der Feiertage mit dem Skript "Feiertagsliste_V2" erzeugt und dort als Bundesland "NI" für Niedersachen angegeben hast, dann wird die Liste ohne den 1.11. (Allerheiligen) korrekt erzeugt. Habe ich soeben kontrolliert.

Falls du das Complete-Skript bei dir einsetzt, dann kannst du die Korrektur ganz einfach durchführen. Füge in Zeile 46 (string s_Feiertage=...) die korrekten Feiertage ein (ggf. nochmal neu erzeugen). Setzte dann in Zeile 76 (b_debug) auf true und führe das Programm einmal manuell aus. Damit ist die Korrektur erledigt. Bitte nicht vergessen, b_debug wieder auf false zu setzen.
Alternativ, falls du das Compact-Skript bei dir einsetzt: In der CCU unter "Skript testen" das Complete-Skript einmal manuell ausführen (natürlich mit "b_debug=true" und korrekter Feiertagsliste). Damit wäre der Fehler behoben.

***EDIT***
Eine weitere, schnelle alternative wäre, die Feiertagsdaten im Skript zu korrigieren und abschließend in der Systemvariablen "Feiertag-Daten" die führende Jahreszahl (aktuell also 2018) auf z.B. 2017 ändern. Dadurch werden beim nächsten Programmdurchlauf die Feiertagsdaten automatisch neu berechnet und in deinem Fall Allerheiligen entfernt.

Wenn's die Zeit erlaubt, werde ich das dann in einem neuen Release optimieren, so dass mögliche Fehleingaben noch einfacher "ausgebügelt" werden können.


@SHC
SHC hat geschrieben:
31.10.2018, 13:09
Hallo Petrus,

vielen Dank für diese tollen Scripte. Finde ich große Klasse, dass Du Dir für die Community solch eine Mühe machst.
Danke!

SHC hat geschrieben:
31.10.2018, 13:09
Seit diesem Jahr gibt es auch in Hamburg den Reformationstag am 31.10. Vielleicht könntest Du das bei der nächsten Überarbeitung mit einpflegen?
Danke für den Hinweis. Ich habe diesen für HH und andere Bundesländer ergänzt und die neue Version V2.1 dem 1.Post hinzugefügt.

SHC hat geschrieben:
31.10.2018, 17:18
...evtl. habe ich bei dem Urlaubsscript noch einen kleinen Bug gefunden, oder der Bug sitzt vor dem Bildschrim. :D

Wenn ich die Funktion "chrono" auf true setze, wird nur noch das erste Datum bei der (debug-)Verarbeitung angezeigt, auch wenn es nicht das chronologisch erste Datum ist.
Das ist auch so korrekt. Wenn du "chrono" auf true setzt, dann teilst du dem Skript mit, dass "du" die Urlabsdaten in der SV chonologisch angibst und damit auch nur der 1. Eintrag auf Urlaub geprüft werden muss. Setzt du "chrono" auf false, dann werden alle vorhandenen Daten überprüft und der erste bzw. dem aktuellen Datum am nächsten liegende Urlaubstag entsprechend verarbeitet. In deinem Fall dann auch der 03.11.
Schaue dir dazu am Besten mal die Beschreibung zu "chrono" im Complete-Skript an.

Viele Grüße
Petrus
Zuletzt geändert von Petrus am 01.11.2018, 19:23, insgesamt 2-mal geändert.

Benutzeravatar
SHC
Beiträge: 202
Registriert: 24.10.2007, 13:57

Re: Feiertagsberechnung - Skript

Beitrag von SHC » 01.11.2018, 12:01

Hallo Petrus,

vielen Dank! Dann saß der Bug doch vor dem Monitor. :D
Das ist auch so korrekt. Wenn du "chrono" auf true setzt, dann teilst du dem Skript mit, dass "du" die Urlabsdaten in der SV chonologisch angibst und damit auch nur der 1. Eintrag auf Urlaub geprüft werden muss. Setzt du "chrono" auf false, dann werden alle vorhandenen Daten überprüft und der erste bzw. dem aktuellen Datum am nächsten liegende Urlaubstag entsprechend verarbeitet.
Ich hatte es tatsächlich so verstanden, dass das Script die Daten sortiert - aber jetzt ist alles klar! Danke! :-)

Viele Grüße,
SHC

Lupoo
Beiträge: 208
Registriert: 04.09.2017, 20:50
Hat sich bedankt: 9 Mal
Danksagung erhalten: 2 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Lupoo » 12.11.2018, 22:34

Ich würde gern mal einen Wissenden befragen, ob dieses Programm so funktionieren würde. In Ermangelung eines Feiertages konnte ich es noch nicht testen.
Profil 1 ist Standard-Wochentagsheizung und Profil 2 ist eine Kopie der Einstellungen für einen Sonntag. Zum Feiertag soll also die Heizung/Thermostate auf Profil 2 umgeschalten werden und wie an einem Sonntag laufen. Ich bin mir nur unsicher, ob "Bei Änderung auslösen" die richtige Einstellung ist.
eeeeeeeee.JPG
Danke für eure Mühe
"Das Dumme an Zitaten aus dem Internet ist, dass man nie weiß, ob sie wahr sind"
Leonardo da Vinci

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Xel66 » 12.11.2018, 22:55

Lupoo hat geschrieben:
12.11.2018, 22:34
Ich würde gern mal einen Wissenden befragen, ob dieses Programm so funktionieren würde.
Funktionieren würde es, aber ob es das dann macht, was Du Dir vorstellst, ist eine andere Sache. Erst mal würde ich es in Abhängigkeit von der Zeit triggern (also zu Zeitpunkten auslösen) und den Feiertag nur prüfen. Ferner würde ich so ein SONST tunlichst unterlassen, weil sonst jede Nacht diese Umschaltung erfolgt (Bedingung im WENN nicht erfüllt, aber getriggert durch Zeitmodul). Im Sommer könnte Dir das in die Suppe spucken.

Warum man für einen einzelnen Tag das komplette Profil wechseln muss, erklärt sich mir auch nicht. Ich setze an solchen Tagen zu einer passablen Zeit (bei mir 8:00 Uhr, weil die Heizzeit am Morgen bis zum Verlassen des Hauses bis um 7:30 Uhr geht) die Comforttemperatur als Solltemperatur und fertig. Kein Profil- und kein Modus-Wechsel. So muss man auch nichts zurückstellen. Das aktive Profil richtet das dann selbst wieder. Ab frühen Nachmittag greift ja wieder die normale Heizzeit. Dieses Vorgehen nutze ich an Feiertagen, wenn ich (Heim-)Urlaub habe, in meiner Schichtfreiwoche, wenn Besuch im Hause ist, wenn jemand tagsüber anwesend ist (Ferien des Nachwuchses) und, und, und. Seit nunmehr fünf Heizperioden läuft das so zu meiner Zufriedenheit.

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Lupoo
Beiträge: 208
Registriert: 04.09.2017, 20:50
Hat sich bedankt: 9 Mal
Danksagung erhalten: 2 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Lupoo » 13.11.2018, 13:45

Sorry dass ich erst jetzt antworte; ich hab den Mailreminder vergessen anzuhaken.
Also erstmal danke für Deine Antwort - hab das aber nicht so richtig verstanden. Bin noch Anfänger und deshalb ist mir alles nicht so geläufig.
Mit den Profilen das würde ich so lassen wollen; nur mit der Auslösung hab ich so meine Probleme.

Es soll ergo jedem Morgen um 01:00Uhr prüfen ob ein Feiertag ist --> wenn JA auf Profil 2 schalten; wenn Nein --> Profil 1 belassen.
Und ich bin mir nun unsicher, ob das so funktioniert und warum ist das "WENN" ein Problem?
"Das Dumme an Zitaten aus dem Internet ist, dass man nie weiß, ob sie wahr sind"
Leonardo da Vinci

Xel66
Beiträge: 14085
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 580 Mal
Danksagung erhalten: 1492 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Xel66 » 13.11.2018, 15:55

Lupoo hat geschrieben:
13.11.2018, 13:45
Es soll ergo jedem Morgen um 01:00Uhr prüfen ob ein Feiertag ist ...
Ja, das wäre eine geeignete Vorgehensweise, um Deine Profilumschaltung zu realisieren. Es fällt ja selten ein Feiertag genau auf Tage der Sommer-/Winterzeitumstellung. Insofern ist der Zeitpunkt geeignet.
Lupoo hat geschrieben:
13.11.2018, 13:45
...und warum ist das "WENN" ein Problem?
Das Wenn ist keins, das SONST ist problematisch, weil es immer ausgeführt wird, wenn keines der vorherigen Bedingungen zutrifft. Also jede Nacht um 1:00 Uhr, auch wenn ggf. im Sommer die Heizung eigentlich deaktiviert ist. Warum das so ist, steht in den Einsteigertipps und im WebUI-Handbuch zur Programmabarbeitung. Ich lege das nie detailliert dar, um die Einsteiger zur Lektüre dieser Dokumentationen anzuhalten. Und warum soll ich mühsam etwas immer wieder aufschreiben, was anderswo viel ausführlicher dargelegt ist. :-)

Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“