Hallo zusammen,
zwei Fragen an Euch:
1) Wie kann ich denn mittels Skript herausfinden, ob es um 0:01 Uhr einen Monatswechsel gegeben hat?
EDIT: sehe es gerad selber, ich lasse das Skript einfach am 1. Tag jeden 1. Monats laufen!
2) Und wie kann ich den Timecode (system.Date Integer) des vergangenen Monats-Ersten herausfinden.
--> noch ungeklärt
Mit diesen beiden Angaben würde ich dann nämlich gerne Werte aus meinem CCU-historian abholen.
Thx!
Gruß
duffy6
Monatsanfang per Skript herausfinden
Moderator: Co-Administratoren
-
- 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: Monatsanfang per Skript herausfinden
Ich verstehe Dein Problem nicht. Du kannst mit den Werkzeugen aus der Homematic-Scriptbeschreibung doch beliebige Zeitstrings zusammenbauen. Da ist es doch eher kein Problem vom aktuellen Monat einen abzuziehen. Dann wird doch automatisch der Monat des Vormonats draus. Lediglich beim Januar musst Du Dir was überlegen und auch vom Jahr einen abziehen. Ich würde es aber anders machen. Ich würde für den Tag des Scriptlaufes (Monatserster) einen Tag abziehen und lediglich den Tag im String durch eine Eins ersetzen.
Gruß Xel66
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
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
-
- Beiträge: 184
- Registriert: 14.03.2017, 10:29
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 1 Mal
Re: Monatsanfang per Skript herausfinden
Ich verstehe Deine Antwort leider nicht.
Gehen wir davon aus, dass das Skript am Monatsersten (sagen wir bspw. den 1.3.2020) um 0:00 Uhr startet.
Wie würdest Du nun den Timecode vom 1.2.2020 bestimmen?
Vielleicht liegt die Lösung so nahe und ich sehe sie nur nicht...
Grüße und Danke
duffy6
Gehen wir davon aus, dass das Skript am Monatsersten (sagen wir bspw. den 1.3.2020) um 0:00 Uhr startet.
Wie würdest Du nun den Timecode vom 1.2.2020 bestimmen?
Vielleicht liegt die Lösung so nahe und ich sehe sie nur nicht...
Grüße und Danke
duffy6
——-
Raspberrymatic auf einem Raspi 3B, Funkmodul HM-MOD-RPI-PCB
Raspberrymatic auf einem Raspi 3B, Funkmodul HM-MOD-RPI-PCB
-
- 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: Monatsanfang per Skript herausfinden
Timecode vom 1.3. nehmen einen Tag abziehen (dann hast Du den 29.02.) und im String die 29 gegen eine 1 austauschen und schon wird der 1.2. draus. Und für den Jahreswechsel gilt in diesem Falle das Gleiche, weil Du schon in dem Jahr bist, wenn Du vom 1.1. einen Tag abziehst (und dann die 31 durch eine 1 ersetzt).
Gruß Xel66
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
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
-
- Beiträge: 184
- Registriert: 14.03.2017, 10:29
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 1 Mal
Re: Monatsanfang per Skript herausfinden
ahhhh, sehr coole Idee! Danke!
Ich bin leider nicht so der Skripter. Hast Du da ein paar Code-Schnipsel für mich?
Ich bin leider nicht so der Skripter. Hast Du da ein paar Code-Schnipsel für mich?
——-
Raspberrymatic auf einem Raspi 3B, Funkmodul HM-MOD-RPI-PCB
Raspberrymatic auf einem Raspi 3B, Funkmodul HM-MOD-RPI-PCB
-
- Beiträge: 10754
- Registriert: 24.02.2011, 01:34
- System: CCU
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 673 Mal
Re: Monatsanfang per Skript herausfinden
Code: Alles auswählen
!Vom 01 des Monats auf den 01. des Vormonats
!by Alchy https://homematic-forum.de/forum/viewtopic.php?f=19&t=56839#p564080
time Zeit = @2020-03-01 00:00:05@;
WriteLine(Zeit.Format("%d.%m.%Y") #" = "#Zeit.ToInteger());
string sLastMF = (Zeit.ToInteger() - 86400).ToTime().Format("01"#".%m.%Y");
WriteLine(sLastMF #" = " #sLastMF.ToTime().ToInteger());
Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.
© Sandra Pulsfort (*1974)
Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.
Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.