Feiertagsberechnung - Skript

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

Moderator: Co-Administratoren

rucksman007
Beiträge: 138
Registriert: 04.11.2018, 13:17
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Feiertagsberechnung - Skript

Beitrag von rucksman007 » 25.12.2018, 18:40

Petrus hat geschrieben:
20.12.2018, 21:15
Hier mal auf die Schnelle ein modifiziertes Complete-Skript für die Auswertung von Urlaub und Reise:
Sorry für die späte Rückmeldung, aber Du weisst ja, Weihnachten und so ... Vielen Dank für das Skript, das schau ich mir die nächsen Tage Mal an. Ich hab noch ein anderes Skript hier im Forum gefunden: Heizung_V2.13.txt. Ist das zusätzlich oder ergänzend zu dem Feiertagsberechnungs-Skript zu sehen?
Petrus hat geschrieben:
20.12.2018, 21:15
Du könntest aber auch, anstatt des modifizierten Skripts, deine Anwesenheit im Haus mit einfließen lassen. Ansätze dazu und auch andere gibt es hier im Forum einige.
blackbasket hat geschrieben:
21.12.2018, 11:25
Ich löse dies, indem ich in den Heizungsprogrammen zusätzlich die Anwesenheit abfrage. Wenn ich zu Hause bin, wird morgens aufgewärmt, wenn ich unterwegs bin nicht.
Welchen Trigger für An- bzw. Abwesenheit verwendet ihr denn? Einbuchung Smartphone ins WLAN? Oder gibt es noch etwas anderes?

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.12.2018, 20:36

rucksman007 hat geschrieben:
25.12.2018, 18:40
Sorry für die späte Rückmeldung, aber Du weisst ja, Weihnachten und so ...
Jep, dito.

rucksman007 hat geschrieben:
25.12.2018, 18:40
..Ich hab noch ein anderes Skript hier im Forum gefunden: Heizung_V2.13.txt. Ist das zusätzlich oder ergänzend zu dem Feiertagsberechnungs-Skript zu sehen?
Das Heizungsscript ist als Ergänzung zu betrachten. Vor Anwendung solltest du dir unbedingt meine Infos zum Script < H I E R > durchlesen, ob es überhaupt Sinn macht, dieses einzusetzen.

rucksman007 hat geschrieben:
25.12.2018, 18:40
Welchen Trigger für An- bzw. Abwesenheit verwendet ihr denn? Einbuchung Smartphone ins WLAN? Oder gibt es noch etwas anderes?
Ich nutze das Smartphone für die Anwesenheitserkennung. Auf Basis des WLANs kannst du dieses Addon (hm_pdetect) <H I E R > oder per Bluetooth dieses Addon (Anwesenheit BT) < H I E R > einsetzen.

Gruß
Petrus

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Ferro » 28.12.2018, 11:59

Hallo,

ich habe eine Webseite gefunden wo man sich die deutschen Feiertage, pro Bundesland oder auch nur die bundesweiten, abrufen kann und das Ergebnis in einer JSON Funktion gekapselt zurückerhält.

Den Service findet man auf https://feiertage-api.de/ und ein Abruf für z.B. BW sieht dann folgendermassen aus: https://feiertage-api.de/api/?jahr=2019 ... =test_2019

Ich dachte mir das könnte eventuell noch für einige Andere interessant sein.

Grüsse und einen guten Rutsch nach 2019
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

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 » 28.12.2018, 16:25

Ferro hat geschrieben:
28.12.2018, 11:59
... und das Ergebnis in einer JSON Funktion gekapselt zurückerhält...
Mich würde dann interessieren, wie du die JSON in der CCU verarbeitest bzw. auswertest? Mit einem Script? Wie sieht das Ergebnis aus?

Viele Grüße und ebenfalls einen guten Start in das Jahr 2019
Petrus

Ferro
Beiträge: 48
Registriert: 13.06.2016, 20:37
System: CCU
Hat sich bedankt: 12 Mal

Re: Feiertagsberechnung - Skript

Beitrag von Ferro » 28.12.2018, 16:43

Hallo Petrus,

war nur als Tipp gedacht falls jemand so etwas sucht. Ich denke schon, dass man die Rückgabe mit einem sh script auswerten und verarbeiten könnte.

die Rohdaten der Rückgabe sehen so aus:

Code: Alles auswählen

{"Neujahrstag":{"datum":"2019-01-01","hinweis":""},"Heilige Drei K\u00f6nige":{"datum":"2019-01-06","hinweis":""},"Gr\u00fcndonnerstag":{"datum":"2019-04-18","hinweis":"Gem\u00e4\u00df \u00a7 4 Abs. 3 des Feiertagsgesetzes von Baden-W\u00fcrttemberg[10] haben Sch\u00fcler am Gr\u00fcndonnerstag und am Reformationstag schulfrei. In der Regel legt das Kultusministerium die Ferientermine so fest, dass diese beiden Tage in die Osterferien bzw. in die Herbstferien fallen."},"Karfreitag":{"datum":"2019-04-19","hinweis":""},"Ostermontag":{"datum":"2019-04-22","hinweis":""},"Tag der Arbeit":{"datum":"2019-05-01","hinweis":""},"Christi Himmelfahrt":{"datum":"2019-05-30","hinweis":""},"Pfingstmontag":{"datum":"2019-06-10","hinweis":""},"Fronleichnam":{"datum":"2019-06-20","hinweis":""},"Tag der Deutschen Einheit":{"datum":"2019-10-03","hinweis":""},"Reformationstag":{"datum":"2019-10-31","hinweis":"Gem\u00e4\u00df \u00a7 4 Abs. 3 des Feiertagsgesetzes von Baden-W\u00fcrttemberg[10] haben Sch\u00fcler am Gr\u00fcndonnerstag und am Reformationstag schulfrei. In der Regel legt das Kultusministerium die Ferientermine so fest, dass diese beiden Tage in die Osterferien bzw. in die Herbstferien fallen."},"Allerheiligen":{"datum":"2019-11-01","hinweis":""},"1. Weihnachtstag":{"datum":"2019-12-25","hinweis":""},"2. Weihnachtstag":{"datum":"2019-12-26","hinweis":""}}
"Theorien wie "Stringtheorien und Paralleluniversen" sind mindestens genauso gewagt wie die Vorstellung, dass hier pausenlos irgendwelche Außerirdischen landen." [Professor Dr. Harald Lesch]

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

Re: Feiertagsberechnung - Skript

Beitrag von Xel66 » 28.12.2018, 17:47

Jegliche Webabfragen per HM-Script sind eine der denkbar ungünstigsten Lösungen. Erst recht bei so statischen und lokal berechnenbaren Dingen wie den Feiertagen. Hängt eine Webabfrage, hängt das ganze Scipt und der dazugehörige Prozess. Ein Internetausfall ist nun mal aus vielerlei Grunden nicht unwahrscheinlich (Router-, Netzwerk-, Provider-, Strom-, Anwenderfehler und -ausfall).

Die Berechnung per Script muss in Abhängigkeit vom aktuellen Datum einmalig erledigt werden und gut (mit CCU und Charly nun kein Poblem). Stell Dir nur mal ein Systemstart nach einem Stromausfall vor. Mit einem Script ist schnell festgestellt, ob der aktuelle Tag z.B. ein Feiertag ist und entsprechende Systemvariablen oder Zustände entsprechend gesetzt werden müssen. Was ist, wenn der Internetanschluss nicht schnell genug mit dem A... hochkommt.

Bis der soweit ist, sind alle Messen gesungen und er Anwender wundert sich, dass das ach so smarte Home nicht das macht, was eigentlich erwartet wird. Es ist auf externe Kommunikation für Werte, die es nicht selbst ermitteln oder berechnen kann angewiesen. Mit einer solchen Webabfrage stellt man sich nur noch eine zusätzliche Fußangel ins System. Aber jeder wie er will. Ich beobachte hier im Forum sowieso einen Trend, alles immer über den möglichst kompliziertesten Lösungsweg zu erledigen. Gerade Neueinsteiger sind von diesem Virus betroffen, aber bei Problemen eben nicht in der Lage, sich selbst zu helfen.

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

rucksman007
Beiträge: 138
Registriert: 04.11.2018, 13:17
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Feiertagsberechnung - Skript

Beitrag von rucksman007 » 28.12.2018, 17:59

Ferro hat geschrieben:
28.12.2018, 16:43
war nur als Tipp gedacht falls jemand so etwas sucht. Ich denke schon, dass man die Rückgabe mit einem sh script auswerten und verarbeiten könnte.
Das funktioniert auf der Shell mit jq sehr gut. Gibts in allen Paketquellen eigentlich.
Petrus hat geschrieben:
27.12.2018, 20:36
Das Heizungsscript ist als Ergänzung zu betrachten.
Ich hab das System Homematic immer noch nicht durchdrungen. Fangen wir mal einfach an. Ich habe das Feiertagsberechnungs-Skript erfolgreich im Einsatz und will nun meine Heizkörperthermostate damit steuern. Ich gehe also in der GUI auf "Programme und Verknüpfungen" - "Programme & Zentralenverknüpfungen" und lege ein neues Programm an. Ab hier sind das jetzt Mutmaßungen, weil ich die Logik echt noch nicht verstanden habe:
  1. Systemzustand "Feiertag-Heute" bei "Ja" "bei Aktualisierung auslösen"
  2. Aktivität Geräteeauswahl <Thermostat> "sofort" ...
Und jetzt?
  • "Auto-Modus" macht keinen Sinn, in dem Modus ist der Heizkörperthermostat ja
  • "Comfort-Temperatur" macht auch keinen Sinn, denn wenn die Aktualisierung auf "Feiertag-Heute" mitten in der Nacht erfolgt, soll ja nicht geheizt werden
Ich will einfach nur den normalen Wochenend-Modus triggern, wenn "Feiertag-Heute" wahr ist. Aber bloß wie???
Und etwas komplizierter: Würde ich das Heizungsscript einsetzen wollen, genügt dann ein Programm für alle Heizkörperthermostate? Ich besitze keine Raumthermostate, daher die Frage. Ich hab in dem Skript die einzelnen Variablen einigermassen verstanden, aber die Variablen "zeitleiste_mon" etc. geben mit Rätsel auf. Deren Struktur hab ich noch nicht erraten.

Aber ich wäre schon mal damit zufrieden, über die GUI einfach eine simple Feiertags-/Urlaubssteuerung hinzukriegen....

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

Re: Feiertagsberechnung - Skript

Beitrag von Xel66 » 28.12.2018, 18:08

Heizung geht relativ einfach. Du hast ja an Sonn- und Feiertagen eine bestimmte Aufstehzeit, zu der Du möchtest, dass die Bude geheizt werden soll (ich nehme mal einfach 8:00 Uhr an). Also ist die grundsätzliche Triggerung schon mal die Uhrzeit. Damit dieses nicht täglich ausgeführt wird, ist als zusätzliche Bedingung der Feiertag ganz nützlich. Ja und was soll passieren? Es soll geheizt werden. Daraus folgt das Programm:

Code: Alles auswählen

WENN Zeitmodul täglich 8:00 Uhr zu zeitpunkten auslösen
UND Feiertag_heute ist WAHR nur prüfen
DANN Thermostat1... Komforttemperatur sofort
     Thermostat2.... Komforttemperatur verzögert x Sekunden usw.
Nun wird zur Aufstehzeit das/die Thermostat(e) auf Komforttemperatur geschaltet (ohne den Automatikmodus zu verlassen) und bis zur abendlichen Absenkzeit gehalten. Damit das nicht bei sommerlichen Feiertagen in die Suppe spuckt, wenn die Heizung eigentlich deaktiviert ist, kann man noch solche zusätzlichen Bedingungen wie Heizperiode (oder sonstiger Erkennung des Heizbetriebes z.B. Thermostat auf Automatik) oder auch die Anwesenheit (damit nicht im Winterurlaub geheizt wird) eingefügt werden.

Zum Heizungsscript kann ich nichts sagen, weil das ebenso für mich in die Katerorie "komplizierteste denkbare Lösung"/Pflegefall fällt. Ist mir auch viel zu kompliziert, mich da reinzudenken, da ich mit dem Einsatz der aktuellen Thermostat-Hardware keinerlei Anwendungszweck sehe (erst recht nicht, wenn man IP-Geräte verwendet). Es kann nichts, was die normale Lösung (Heizungsprofile) nicht auch kann, nur vieles viel schlechter. Es hatte seinen Zweck bei den alten Thermostaten mit Stellantrieb, weil die noch etwas eingeschränkt in der Steuerung waren. Aber für aktuelle Hardware und Einsteiger nur unnötig kompliziert.

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

rucksman007
Beiträge: 138
Registriert: 04.11.2018, 13:17
Hat sich bedankt: 7 Mal
Danksagung erhalten: 1 Mal

Re: Feiertagsberechnung - Skript

Beitrag von rucksman007 » 28.12.2018, 18:39

Xel66 hat geschrieben:
28.12.2018, 18:08
Heizung geht relativ einfach.
Das liegt im Auge des Betrachters :D Aber Spaß beiseite: Daraus lerne ich, dass ich auf die bereits hinterlegten Zeitfenster/Wochentagsprogramme der Heizkörperthermostate nicht direkt zugreifen kann.

ch muss diese Zeitfenster/Wochentagsprogramme also quasi nachbauen mit der Erweiterung "Feiertag". Ich muss aber, wenn ich das jetzt richtig sehe, nicht wie von Dir vorgeschlagen, die Wochenend-Aufstehzeit als Ausgangspunkt nehmen, sondern die Mo-Fr Aufstehzeit, sonst würde ja an Feiertagen schon zu dieser Zeit geheizt und nicht erst ab der Wochenend-Aufstehzeit. Oder bin ich da auf dem falschen Dampfer?

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

Re: Feiertagsberechnung - Skript

Beitrag von Xel66 » 28.12.2018, 18:56

rucksman007 hat geschrieben:
28.12.2018, 18:39
Daraus lerne ich, dass ich auf die bereits hinterlegten Zeitfenster/Wochentagsprogramme der Heizkörperthermostate nicht direkt zugreifen kann.
Bei der klassischen Serie nicht direkt. Bei den IP-Geräten kannst Du das Profil umschalten und dort entsprechende Heizzeiten hinterlegen. Für die klassischen Wandthermostate gibt es eine Umschaltmöglichkeit per Script. Die klassischen Heizkörperthermostate haben sowieso nur ein Profil. Insofern ist die Profillösung eher keine Option.
rucksman007 hat geschrieben:
28.12.2018, 18:39
...die Wochenend-Aufstehzeit als Ausgangspunkt nehmen, sondern die Mo-Fr Aufstehzeit, sonst würde ja an Feiertagen schon zu dieser Zeit geheizt und nicht erst ab der Wochenend-Aufstehzeit.
Der Ansatz ist mir schon wieder zu kompliziert gedacht. Wieviele Feiertage im Jahr gibt es an denen "zu früh" geheizt würde und was macht das im Energieverbrauch aus. Dort auf eine möglichst komplizierte Lösung zu setzen, die Dir an anderen Stellen wieder auf die Füße fällt, ginge mir schon wieder am Ziel vorbei. Und ob Du schon um 7:00 Uhr hochheizt oder erst um 8:00 Uhr macht energetisch so viel nicht aus.

Die Frage ist eher, wie sieht es nach der morgendlichen Heizzeit aus? Ich habe meine Heizungsprogrammierung im Forum schon oft vorgestellt und es ist hier auch ein wenig OT, aber meine Thermostatprogrammierung deckt nur den kleinestn gemeinsamen Nenner ab. Eine Heizzeit am Morgen (in den genutzten Räumen) und dann ab frühen Nachmittag das ganze Haus. Ich setze an Feiertagen einfach nach der morgendlichen Heizzeit (also wenn schon wieder auf Absenken geschaltet wurde) einfach die Komforttemperatur im Haus, die dann bis zur spätabendlichen Absenkzeit gehalten wird, und fertig. Einfacher und effektiver Lösungsansatz.

Solche Spirenzien, wie Anwesenheitserkennung in bestimmten Räumen und dann dort heizen benötigt mir persönlich viel zu viel Energie und man hält sich tendenziell immer in zu kühlen Räumen auf, denn der Raum ist im ungünstigsten Fall erst auf Solltemperatur, wenn man ihn wieder verlassen hat. Aber solche Wünsche werden hier im Forum immer wieder formuliert. Das ist wie beim Autofahren, ständig zwischen Gas und Bremse zu wechseln. Wer weiß, wieviel ein Auto beim Beschleunigen verbraucht, kann das auch auf das Heizen umdenken und kommt zu dem Schluss, dass eine kontinuierliche Beheizung über den wahrscheinlichen Nutzungszeitraum die effektivste und kostengünstigste Lösung ist. Aber jeder wie er will.

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!“