Feiertagsberechnung - Skript

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

Moderator: Co-Administratoren

Ralle14
Beiträge: 8
Registriert: 30.12.2018, 01:35

Re: Feiertagsberechnung - Skript

Beitrag von Ralle14 » 03.01.2019, 09:21

Hallo zusammen,
und zunächst einmal Danke für Eure Arbeit und Hilfe hier im Forum.
Ich hab eine Frage bzgl. des Urlaubs/Ferienscripts.
Ist es richtig,das wenn ich das Script installiere, ich keine Systemvariable Schulferien erhalte,
in der ich die Daten der Schulferien eintragen kann?
Die Variablen Schulferien heute, morgen und Schulferien-Tage bis,sind hinterlegt.
Muss ich die selbst anlegen?
Danke schonmal.

Ralle14
Beiträge: 8
Registriert: 30.12.2018, 01:35

Re: Feiertagsberechnung - Skript

Beitrag von Ralle14 » 03.01.2019, 10:52

Ich glaube,ich habe das Problem schon selbst gelöst.
Ich hatte vorher das "normale" Urlaubsscript installiert.
Jetzt habe ich zuerst die vorhandenen Variablen gelöscht und das Urlaubs/FerienScript neu getestet,
und siehe da alle Variablen wurden angelegt.
Scheint zu funktionieren.

Petrus
Beiträge: 103
Registriert: 13.01.2010, 20:53

Re: Feiertagsberechnung - Skript

Beitrag von Petrus » 03.01.2019, 11:37

Hallo Ralle14,
Ralle14 hat geschrieben:
03.01.2019, 09:21
...
Ist es richtig,das wenn ich das Script installiere, ich keine Systemvariable Schulferien erhalte,
in der ich die Daten der Schulferien eintragen kann?
Die Variablen Schulferien heute, morgen und Schulferien-Tage bis,sind hinterlegt.
Muss ich die selbst anlegen?
...
Die Systemvariablen musst du nicht selbst anlegen. Wenn du dich an die Anleitung im 1.Post, unter "Einrichtung Skript Urlaubstage", gehalten hast, dann werden nicht vorhandene SV's angelegt und bereits existierende auf den richtigen Typ hin untersucht. Sobald bei der Überprüfung festgestellt wird, dass eine SV existiert und den falschen Typ hat, bekommst du das angezeigt und das Skript wird an der Stelle automatisch abgebrochen. Damit kannst du dann entsprechend reagieren.

Und genau das wird bei dir geschehen sein.
Ralle14 hat geschrieben:
03.01.2019, 09:21
Jetzt habe ich zuerst die vorhandenen Variablen gelöscht und das Urlaubs/FerienScript neu getestet,
und siehe da alle Variablen wurden angelegt.
Viele Grüße
Petrus

Ralle14
Beiträge: 8
Registriert: 30.12.2018, 01:35

Re: Feiertagsberechnung - Skript

Beitrag von Ralle14 » 03.01.2019, 17:01

Vielen Dank und Gruß.

str1007
Beiträge: 5
Registriert: 06.01.2019, 18:43

Re: Feiertagsberechnung - Skript

Beitrag von str1007 » 06.01.2019, 18:59

Moin,

vielen Dank für diese unverzichtbaren Skripts! Ohne die macht eine echte Automation ja gar keinen Sinn.
Das Urlaub-+Reisetage Skript läuft jetzt seit 2 Wochen und die Ergebnisse kontrolliere ich über LEDs der Statusanzeige.
Ich habe jedoch eine Änderung vorgenommen, ohne die beim Löschen von Reise- bzw. Urlaubstagelisten die jeweiligen Flags einfach erhalten bleiben und nie gelöscht werden. Das Ende des Skripts sieht bei mir so aus:

Code: Alles auswählen

  } else { if (b_debug) { WriteLine("Keine " # s_data4 # " vorhanden."); }
      svObj=svObjects.Get(sv_holyday.StrValueByIndex(";", i_data0).StrValueByIndex(",", 0)); if (svObj){svObj.State(false);}
      svObj=svObjects.Get(sv_holyday.StrValueByIndex(";", i_data0).StrValueByIndex(",", 1)); if (svObj){svObj.State(false);}
      svObj=svObjects.Get(sv_count.StrValueByIndex(";", i_data0)); if (svObj){svObj.State(-1);}
  }
  i_data0 = i_data0 + 1;
}
Ist das richtig so? Funktionieren tut es jedenfalls.
Das System habe ich erst seit Weihnachten und muss mich an die Skriptsprache erst gewöhnen...

Gruß
Stephan

Petrus
Beiträge: 103
Registriert: 13.01.2010, 20:53

Re: Feiertagsberechnung - Skript

Beitrag von Petrus » 06.01.2019, 20:57

Hallo Stephan.
str1007 hat geschrieben:
06.01.2019, 18:59
...
Ich habe jedoch eine Änderung vorgenommen, ohne die beim Löschen von Reise- bzw. Urlaubstagelisten die jeweiligen Flags einfach erhalten bleiben und nie gelöscht werden.
...
Na ja, das passiert nur, wenn man in den normalen Ablauf eingreift und mitten oder am Ende eines Urlaubs die Daten von Hand löscht. Sind keine Daten mehr vorhanden, braucht das Skript auch nicht zu prüfen und der Zustand der SV bleibt bestehen.

Mal als Beispiel:
Urlaubsdaten: 24.12.2018-02.01.2019
Datum: 02.01.2019
- Skript schaut nach, ob Daten existieren
- Daten existieren => Skript prüft und stellt fest: Heute Urlaub (true) / Morgen kein Urlaub (false)
- Skript wird beendet

Datum: 03.01.2019
- Skript schaut nach, ob Daten existieren
- Alte Daten existieren => Heute kein Urlaub (false) / Morgen kein Urlaub (false) und alte Daten werden automatisch aus der SV entfernt!
- Skript wird beendet

Wenn du gemäß Beispiel am letzten Urlaubstag (02.01.2018) die Urlaubsdaten von Hand löschen würdest und keine weiteren Daten existieren, würde das Skript beim nächsten Durchlauf auch keine Prüfung mehr durchführen und die SV "Urlaub Heute" auf true belassen.

Daher mein Empfehlung: Daten stets nur ändern und nicht löschen. Im besonderen die Daten, die den aktuellen Tag beinhalten.
str1007 hat geschrieben:
06.01.2019, 18:59
Ist das richtig so? Funktionieren tut es jedenfalls.
Das System habe ich erst seit Weihnachten und muss mich an die Skriptsprache erst gewöhnen...
Wenn du auf Nummer "ganz sicher" gehen möchtest (Option: Datenlöschung von Hand), dann ist das so korrekt!
str1007 hat geschrieben:
06.01.2019, 18:59
Das System habe ich erst seit Weihnachten und muss mich an die Skriptsprache erst gewöhnen...
Dafür klappt's aber schon sehr gut. :) Möchte wetten, dass du nicht das erste Mal programmierst. Richtig?

Viele Grüße
Petrus

str1007
Beiträge: 5
Registriert: 06.01.2019, 18:43

Re: Feiertagsberechnung - Skript

Beitrag von str1007 » 08.01.2019, 18:08

Moin Petrus,
Möchte wetten, dass du nicht das erste Mal programmierst. Richtig?
8) Richtig, und auch nicht erst seit 30 Jahren...

Danke für die Hinweise. Das Ganze ist natürlich erst dadurch entstanden, dass ich bei der ganzen rumexperimentiererei immer mal wieder Daten angelegt und wieder gelöscht habe. Da ich bisher noch keine komfortable Methode gefunden habe, um die Urlaubs- und Reisetage einfach in ein Feld einzutragen, manipuliere ich sie mit einem jedes Mal auf's Neue zu editiernden Hilfs-Skript. Solange behalte ich meinen kleinen doppelten Boden am besten drin.

Als nächstes muss ich mir das ganze Skript mal genauer anschauen, mit der Sprachbeschreibung daneben. So lerne ich wohl am Besten, ist ja doch etwas gewöhnungsbedürftig...

Gruß
Stephan

Petrus
Beiträge: 103
Registriert: 13.01.2010, 20:53

Re: Feiertagsberechnung - Skript

Beitrag von Petrus » 08.01.2019, 21:33

Hi Stephan,

dachte ich mir. Wenn dich der "Homematic-Virus" dann mal gepackt hat, können wir uns hier im Forum mit deiner Programmiererfahrung glücklich schätzen, wenn du diese mit uns teilst und vlt. irgendwann einmal deine eigenen Projekte vorstellst.

str1007 hat geschrieben:
08.01.2019, 18:08
Da ich bisher noch keine komfortable Methode gefunden habe, um die Urlaubs- und Reisetage einfach in ein Feld einzutragen, manipuliere ich sie mit einem jedes Mal auf's Neue zu editiernden Hilfs-Skript. Solange behalte ich meinen kleinen doppelten Boden am besten drin.
Die Daten stets per WebUI einzugeben ist nicht wirklich praktikabel. Auch aus diesem Grund nutze ich als iPhone/iPad Nutzer die App PocketControl und habe dafür die Systemvariable "Urlaubsdaten" als Zeichenkette definiert. Dadurch erhalte ich ein einfaches Eingabefeld in der App und kann so komfortabel die Daten eingeben oder ändern. Für Android Nutzer gibt es auch einige App's, wie HomeNow, TinyMatic oder Home24, die ich aber nicht kenne.

str1007 hat geschrieben:
08.01.2019, 18:08
Als nächstes muss ich mir das ganze Skript mal genauer anschauen, mit der Sprachbeschreibung daneben. So lerne ich wohl am Besten, ist ja doch etwas gewöhnungsbedürftig...
Aus diesem Grund stelle ich auch meine Skripte ausführlich kommentiert zur Verfügung. Zumindest so gut es eben geht. Dadurch kann man als Neueinsteiger die Hommatic-Script Sprache besser nachvollziehen. So habe ich irgendwann auch mal mit dieser Sprache begonnen - learning by doing. Gewöhnungsbedürftig ist sie definitiv, im Vergleich zu anderen Programmiersprachen.

Viele Grüße
Petrus

rucksman007
Beiträge: 69
Registriert: 04.11.2018, 13:17
Hat sich bedankt: 4 Mal

Re: Feiertagsberechnung - Skript

Beitrag von rucksman007 » 24.01.2019, 16:23

Hallo Petrus,

Dein Skript braucht ein Update :D : Wir armen Berliner haben ab jetzt am 8. März einen neuen Feiertag 8)

Petrus
Beiträge: 103
Registriert: 13.01.2010, 20:53

Re: Feiertagsberechnung - Skript

Beitrag von Petrus » 24.01.2019, 20:50

Jep, der Frauentag. Heute morgen im Radio gehört...und schon erledigt :!:

Ihr armen Berliner bekommt im nächsten Jahr noch einen zusätzlichen - aber einmaligen - Feiertag.
Zum 75. Jahrestag der Befreiung vom Nationalsozialismus am 8. Mai 2020.

Viele Grüße
Petrus

Antworten

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