Feiertagsberechnung - Skript

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

Moderator: Co-Administratoren

torsten_pf
Beiträge: 10
Registriert: 07.02.2007, 16:46
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal

Re: Feiertagsberechnung - Skript

Beitrag von torsten_pf » 27.04.2022, 09:35

Hallo Petrus,

auch von mir vielen Dank für deine Skripte - sie erleichtern die Migration meiner Rollladensteuerung von IP-Symcon zu Raspberrymatic ungemein!

Eine Ergänzung hätte ich noch für die Feiertagsliste: In Thüringen ist seit 2019 der Weltkindertag (20.09.) ein gesetzlicher Feiertag. Nimmst du ihn bitte mit in das Skript auf?

Code: Alles auswählen

  if(BLand=="TH"){s_Feiertage=s_Feiertage#";20.09.=Weltkindertag";}
Torsten

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.04.2022, 15:14

DANKE für die Unterstützung Torsten! Wurde im Skript ergänzt.

Gruß
Petrus

JuMatic
Beiträge: 32
Registriert: 09.10.2022, 09:57
System: CCU
Hat sich bedankt: 19 Mal

Re: Feiertagsberechnung - Skript

Beitrag von JuMatic » 01.11.2022, 21:26

Hallo und vielen Dank für das Script.

Ich habe folgendes Problem gefunden - oder mache ich etwas falsch ?

Code: Alles auswählen

WriteLine(svObj);
if (svObj){
  WriteLine("svObj - true");
  WriteLine(svObj.ValueType());
  WriteLine(ivtString);
  if (svObj.ValueType() == ivtString) {string holydays=svObj.Value();} else {
    if (svObj.ValueType() == ivtInteger) {string holydays=svObj.ValueList();} else {WriteLine(svObj.Name()#" = Falscher ValueTyp. Script wird beendet!"); quit;}
  }
  WriteLine(svObj.Value());
  WriteLine(svObj.Value(0));
Ausgabe:
2.11.;3.11.-4.11.
svObj - true
20
20
! "Hier wird svObj.Value() nicht richtig ausgewertet"
2.11.;3.11.-4.11. ! "Hier wird svObj.Value(0) richtig ausgewertet"
Keine Urlaubsdaten vorhanden. Script beendet
Frage also: Ist das Coding so richtig, wie im Script "string holydays=svObj.Value()" - und wenn ja, warum funktioniert es bei mir scheinbar nicht ?

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 » 03.11.2022, 17:02

Hallo JuMatic,

kann man davon ausgehen, dass das dein eigener Code ist? Denn im aktuellen Urlaubsscript sind die Zeilen so nicht vorhanden.
Poste mal dein komplettes Script. Ohne ist die Fehlersuche schwierig!

Ich habe mal deine geposteten Zeilen übernommen und davor die Objekte entsprechend deklariert. Daraufhin wird in der Ausgabe auch alles korrekt angezeigt. Mehr kann ich dazu nicht sagen.

Code: Alles auswählen

object svObjects = dom.GetObject(ID_SYSTEM_VARIABLES);
object svObj=svObjects.Get("Urlaubstage");

WriteLine(svObj);
if (svObj){
  WriteLine("svObj - true");
  WriteLine(svObj.ValueType());
  WriteLine(ivtString);
  if (svObj.ValueType() == ivtString) {string holydays=svObj.Value();} else {
    if (svObj.ValueType() == ivtInteger) {string holydays=svObj.ValueList();} else {WriteLine(svObj.Name()#" = Falscher ValueTyp. Script wird beendet!"); quit;}
  }
  WriteLine(svObj.Value());
}
Urlaubstage
svObj - true
20
20
2.11.;3.11.-4.11.

JuMatic
Beiträge: 32
Registriert: 09.10.2022, 09:57
System: CCU
Hat sich bedankt: 19 Mal

Re: Feiertagsberechnung - Skript

Beitrag von JuMatic » 05.11.2022, 19:13

Hallo Petrus,

vielen Dank für deine Rückmeldung.
Ist aus dem Script "Urlaubstage_V4.07_complete.txt" ab Zeile 184 (! *** Objekt definieren und Urlaubsdaten aus der SV holen)
Ich habe ein paar Ausgaben für Debug Zwecke dazu eingefügt.
Das ganze Script im Anhang.

EDIT: Script mit meinen LOG Ausgaben nochmal hier ausgetauscht

Viele Grüße
Dateianhänge
Urlaubstage_V4.07_complete_JuMatic.txt
(16.67 KiB) 35-mal heruntergeladen
Window_20221105 191626.jpg
Zuletzt geändert von JuMatic am 05.11.2022, 20:54, insgesamt 2-mal geändert.

JuMatic
Beiträge: 32
Registriert: 09.10.2022, 09:57
System: CCU
Hat sich bedankt: 19 Mal

Re: Feiertagsberechnung - Skript

Beitrag von JuMatic » 05.11.2022, 19:53

Ich habe die Variablen gerade nochmal anlegen lassen.
Dabei fällt mir das auf:
Urlaub-Heute : ValueTyp OK!
Urlaub-Morgen : ValueTyp OK!
Urlaub-Tage-bis : ValueTyp OK!
5.11.;4.11.-10.11. : Systemvariable create!

JuMatic
Beiträge: 32
Registriert: 09.10.2022, 09:57
System: CCU
Hat sich bedankt: 19 Mal

Re: Feiertagsberechnung - Skript

Beitrag von JuMatic » 05.11.2022, 20:52

Hier nochmal das Script mit meinen Log-Ausgaben (habe ich oben drüber auch ersetzt, falls das schon jemand angeschaut hat)
Dateianhänge
Urlaubstage_V4.07_complete_JuMatic.txt
(16.67 KiB) 46-mal heruntergeladen

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

JuMatic hat geschrieben:
05.11.2022, 20:52
Hier nochmal das Script...
Alles klar. Die Ursache liegt in Zeile 64. Du hast dort deine Urlaubsdaten eingetragen. Dort gehört aber der Name der Systemvariablen hin (im Beispiel im Originalscript: "Urlaubstage"). Deine Urlaubsdaten musst du dann in der CCU in dieser Systemvariablen eingetragen und eben nicht im Script selbst.

Wenn du das änderst, funktioniert auch alles wie gewünscht.

Gruß
Petrus

JuMatic
Beiträge: 32
Registriert: 09.10.2022, 09:57
System: CCU
Hat sich bedankt: 19 Mal

Re: Feiertagsberechnung - Skript

Beitrag von JuMatic » 06.11.2022, 17:44

Oh Gott, wie peinlich :roll: :oops:
Tut mir sehr leid, dass ich damit deine Zeit verplempert habe ...

Läuft jetzt (natürlich)

Herzlichen Dank nochmal

Jürgen

H3llF15H
Beiträge: 13
Registriert: 18.06.2021, 07:14
System: CCU und Access Point
Hat sich bedankt: 9 Mal

Re: Feiertagsberechnung - Skript

Beitrag von H3llF15H » 11.12.2022, 16:15

Moin Petrus!

Zu aller erst: vielen Dank für Dein Skript und auch dass Du nach 12 Jahren immer noch supportest.

JuMatic ggü. hast Du erwähnt, dass der Urlaub (in meinem Fall vom 27.12.2022-30.12.2022) in der SV "Urlaubstage" einzutragen ist.

Dazu folgende Frage, denn möglicherweise habe ich als Laie etwas nicht verstanden: beim Durcharbeiten Deiner Anleitung im Post 1 wurde die SV "Urlaubstage" automatisch als Zeichenkette angelegt. Um dort aber den Urlaub eintragen zu können müsste dies doch eine Werteliste sein, so dass ich den Urlaub als Datum (z.B. 08.12.2022-12.12.2022;27.12.2022-30.12.2022; ) dort eintragen kann, oder?

Vorab vielen Dank :)

Antworten

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