Feiertagsberechnung - Skript

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

Moderator: Co-Administratoren

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 » 20.11.2018, 19:07

Junge Junge Du bist ja wirklich richtig auf Zack!
Ich danke Dir für Deine Mühe und Deine Arbeit - habe 4.02 gerade getestet und funktioniert tadellos. Das richtige Datum wird jetzt angezeigt.
urlaub.JPG
Dann Dir eine schöne Woche noch nochmals Danke.
"Das Dumme an Zitaten aus dem Internet ist, dass man nie weiß, ob sie wahr sind"
Leonardo da Vinci

Pappi22
Beiträge: 6
Registriert: 18.03.2017, 10:58

Re: Feiertagsberechnung - Skript

Beitrag von Pappi22 » 22.11.2018, 10:19

Hallo …

tolles Script. Hatte es aufgesetzt, aber im Anschluss folgenden Bug erhalten:

Sobald ich das Feiertags-Script erstellt habe und dessen Variable erzeugt wurden, kann ich bei jeglichen anderen Programmen, wenn ich bei
diesen eine Systemvariable hinzufügen will, keines mehr anfügen. "Systemzustand" in Programm auswählen und danach ist das Auswahl-Fenster "Systemvariablen" komplett leer.

Hatte hier im thread schon geschaut, ob das Phänomen noch jemand hatte, aber nichts gefunden.

Feedback wäre super …

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Sammy » 22.11.2018, 10:45

Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

umberto
Beiträge: 131
Registriert: 31.08.2010, 12:56
Wohnort: "Oberland"

Re: Feiertagsberechnung - Skript

Beitrag von umberto » 27.11.2018, 11:11

Hallo Zusammen, hallo Petrus,
arbeite zur Zeit noch mit einer sehr, sehr alten Version Urlaubstage und würde gerne auf diese aktuelle umsteigen.

Berechne zur Zeit recht umständlich mit nacheinander ablaufenden Programmen die Wochenenden, Feiertage und Urlaubstag
um dann eine Ausgabe Arbeitag-heute/Arbeitstag-morgen mit true/false zu erhalten.

Zwei Fragen bzw. Wünsche dazu:
Urlaubstage <-> Arbeitstage, gibt es die Möglichkeit, dass Samstag und Sonntag als "keine Arbeitstage bzw. Urlaubstag true"
ausgegeben werden???

und

Ich würde das Skript auch gerne für die Kids (Schulferien) verwenden. Kann man im Skript einfach alle Variablen von Urlaub auf Schule "replacen",
um ein Weiters Programm/skript für die Schultage zu erhalten?

Dort wäre es auch wieder gut, wenn man Samstag und Sonntag als "frei" bzw. Schultag false erhalten würde.

Möchte damit die Rollos, Wecker, Heizung usw. steuern.

Viele Grüsse
Hubert
zu viele Homematic Module ;-)

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 » 27.11.2018, 13:29

Hallo Hubert (umberto),

falls du dich mit der neuen Version anfreunden könntest, würde ich es speziell für deine Anforderungen so anpassen, dass alle benötigten Systemvariablen in einem Skript gesetzt werden.

Mein Vorschlag dafür wären dann folgende SysVars:
  • Urlaub-Heute & Urlaub-Morgen
  • Schulferien-Heute & Schulferien-Morgen
  • Urlaub-Tage-bis & Schulferien-Tage-bis
  • ggf. IST-Wochenende (falls erforderlich)
Diese Informationen sollten für eine Steuerung (Heizung, Rollo, Wecker) doch ausreichen - falls ich nichts übersehen habe.

Gruß
Petrus

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 » 27.11.2018, 14:20

@Hubert (umberto)

Bitte schön, hier auf die schnelle das spezielle Skript!

Urlaubstage_V4.02_complete_spezial.txt (siehe 2 Posts weiter unten)

Vorgehensweise (Einrichtung analog, wie im 1. Post beschrieben):

1. Das Skript unter "Skript testen" einfügen.
2. Die Variablen im Skript (Zeilen 87 und 89) auf: b_debug=true und b_CheckSVs=true
3. Skript ausführen
4. Programm anlegen, in dem das Skript dann einmal Nachts ausgeführt wird und damit die entsprechenden Systemvariablen setzt.
(b_debug und b_CheckSVs hierbei dann natürlich auf false setzen)

Viel Freude damit :D

Gruß
Petrus
Zuletzt geändert von Petrus am 27.11.2018, 18:42, insgesamt 2-mal geändert.

umberto
Beiträge: 131
Registriert: 31.08.2010, 12:56
Wohnort: "Oberland"

Re: Feiertagsberechnung - Skript

Beitrag von umberto » 27.11.2018, 18:09

Hallo Petrus,
erst mal vielen, vielen Dank für die schnelle Antwort!
Habe dein Spezialskript sofort nach deiner Anleitung auf einem Raspi installiert.
Das Skript hat die Variablen angelegt.
Habe mit einem zweiten Programm die Systemvariablen Schulferien und Urlaubstage einmalig gesetzt.
Anschließend das eigentliche Programm mit 5 Min periodischer Wiederholung (zum Testen) gestartet.
Kannst du mit einen Tipp geben, wieso die Sys-Variablen heute, morgen usw. nicht gesetzt werden?
Vielen Dank schon mal.
Gruß
Hubert
hc_pc13_2018.11.27_006.jpg
zu viele Homematic Module ;-)

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 » 27.11.2018, 18:42

Hallo Hubert,

klar kann ich dir einen Tipp geben. Die Quelle des Fehlers ist beim Programmierer zu suchen. :oops:

Hier nun das getestete und funktionierende Skript.
.
Urlaubstage_V4.06_compact_spezial.txt
Identisch mit Complete-Script, jedoch nur Code ohne Kommentare
(4.43 KiB) 279-mal heruntergeladen
Urlaubstage_V4.06_complete_spezial.txt
Code mit Kommentaren.
Zusätzlich zum Originalscript: Schulferien-Heute/-Morgen und Wochenende-Heute/-Morgen
(17.67 KiB) 443-mal heruntergeladen
.
EDIT (02.01.2020): Version 4.06. Berechnung korrigiert, wenn Zeiträume ohne Jahrezahl angegeben werden, die über die Jahresgrenze hinaus gehen.

Gruß
Petrus
Zuletzt geändert von Petrus am 02.01.2020, 18:22, insgesamt 10-mal geändert.

umberto
Beiträge: 131
Registriert: 31.08.2010, 12:56
Wohnort: "Oberland"

Re: Feiertagsberechnung - Skript

Beitrag von umberto » 27.11.2018, 19:12

Hallo Petrus,
perfekt, meine Testeinträge passen jetzt 100%ig! Vielen Dank.

Wie im ersten Post beschrieben, will ich ja eigentlich erfahren, ob heute bzw. morgen ein Arbeitstag bzw. Schultag ist oder nicht.
Auf Seite 1 gibt es ja auch ein Feiertagsskript. Kann man die Feiertage dann in die Sys-Var von den Urlaubstagen/Schulferien hinzukopieren oder wie würdest Du dies erledigen?

Zur Zeit erledige ich dies ja total umständlich mit einem Programm, das die true/false von Feiertag, Urlaubstag und Wochenenden abfrägt und dann eine weitere Variable Arbeitstag-heute bzw. Arbeitstag-morgen setzt.

Hast Du vielleicht noch einen Tipp für mich?
Vielen Dank schon mal und Gruß
Hubert
zu viele Homematic Module ;-)

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 » 27.11.2018, 20:02

umberto hat geschrieben:
27.11.2018, 19:12
...Kann man die Feiertage dann in die Sys-Var von den Urlaubstagen/Schulferien hinzukopieren oder wie würdest Du dies erledigen?
Würde ich nicht machen, da zu umständlich und unkomfortabel. Die Feiertagsdaten ändern sich ja jährlich und du müsstest da jedesmal Hand anlegen.

Wenn du das Feiertagsskript, so wie es ist, zusätzlich zum Urlaubs-/Ferienskript einsetzt und dieses ebenfalls täglich Nachts ausführst, dann hast du doch alle Informationen.

Wenn Feiertag oder Urlaub oder Wochenende, dann kein Arbeitstag.
Wenn Feiertag oder Ferien oder Wochenende, dann kein Schultag.

Diese Infos kannst du doch in jedem Programm für deine Anwendungen nutzen, ohne diese in einer Systemvariablen (Arbeitstag) zusammenzufassen. Denn dafür setzt du ja extra ein eigenes Programm ein. Das ist aus meiner Sicht überflüssig.
umberto hat geschrieben:
27.11.2018, 19:12
...Zur Zeit erledige ich dies ja total umständlich mit einem Programm, das die true/false von Feiertag, Urlaubstag und Wochenenden abfrägt und dann eine weitere Variable Arbeitstag-heute bzw. Arbeitstag-morgen setzt.
Wie bereits erwähnt: Aus meiner Sicht überflüssig. Kannst du aber so machen, wenn's dir besser gefällt.
umberto hat geschrieben:
27.11.2018, 19:12
...Hast Du vielleicht noch einen Tipp für mich?
Außer dem bereits gesagten, nicht wirklich. Sollte ich etwas übersehen haben, dann immer raus damit.

Viele Grüße
Petrus

Antworten

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