Monatsanfang per Skript herausfinden

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
duffy6
Beiträge: 184
Registriert: 14.03.2017, 10:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 1 Mal

Monatsanfang per Skript herausfinden

Beitrag von duffy6 » 15.02.2020, 11:30

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
——-
Raspberrymatic auf einem Raspi 3B, Funkmodul HM-MOD-RPI-PCB

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: Monatsanfang per Skript herausfinden

Beitrag von Xel66 » 15.02.2020, 12:12

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

duffy6
Beiträge: 184
Registriert: 14.03.2017, 10:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 1 Mal

Re: Monatsanfang per Skript herausfinden

Beitrag von duffy6 » 15.02.2020, 12:17

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
——-
Raspberrymatic auf einem Raspi 3B, Funkmodul HM-MOD-RPI-PCB

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: Monatsanfang per Skript herausfinden

Beitrag von Xel66 » 15.02.2020, 12:19

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

duffy6
Beiträge: 184
Registriert: 14.03.2017, 10:29
Hat sich bedankt: 29 Mal
Danksagung erhalten: 1 Mal

Re: Monatsanfang per Skript herausfinden

Beitrag von duffy6 » 15.02.2020, 12:21

ahhhh, sehr coole Idee! Danke!

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

alchy
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

Beitrag von alchy » 15.02.2020, 14:43

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());
Alchy

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.

Antworten

Zurück zu „HomeMatic allgemein“