Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

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

Moderator: Co-Administratoren

Sammydk
Beiträge: 123
Registriert: 04.10.2019, 11:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 4 Mal
Danksagung erhalten: 8 Mal

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von Sammydk » 16.03.2020, 17:56

Danke für die Erklärung,
das habe ich so erst mal nicht verstanden, jetzt wird es klar.
Dann auf ein Neues.

Gruß Sammydk
2* Intel NUC7i3BNH Proxmox V8.1.3 Kernel 6.5.11-6 Raspberrymatic 3.75.6.20240316, HB-RF-ETH, 2* IOBroker, InfluxDB V1.83, InfluxDB V2.4.0, Grafana V9.2.2, ALEXA, ESP32-CAM (WASSERUHR) mit"AI-on-the-edge", Gasuhr ESPEASY, Stromzähler Tasmota, PV Wasserheizung mit ESPEasy)
--------------------------------------------
587 Kanäle in 83 Geräten:
1x HmIP-PMFS, 1x HmIP-SMO-A-2, 2x HM-RC-19, 2x HM-Sen-EP, 2x HM-RC-P1, 1x HM-Dis-WM55, 1x HM-Dis-EP-WM55, 1x HmIP-WRCD, 2x HmIP-RC8, 6x HM-Sec-SCo, 6x HMIP-SWDO, 2x HmIP-HAP, 1x HmIP-MOD-OC8, 1x HmIP-RCV-50, 8x HM-CC-RT-DN, 2x HM-TC-IT-WM-W-EU, 6x HmIP-eTRV-2, 1x HM-CC-VG-1, 3x HmIP-HEATING, 1x HmIP-STHD, 1x HmIP-WTH-2, 2x HmIP-RGBW, 2x HmIP-SLO, 2x HmIP-STHO, 4x HmIP-BROLL, 2x HmIP-FROLL, 1x RPI-RF-MOD, 10x HMIP-PS, 1x HMIP-PSM, 1x HmIP-PCBS, 3x HmIP-FSI16, 1x HM-LC-Sw1-FM, 1x HmIP-SWDM, 1x HmIP-FCI1, 1x HmIP-BSM
--------------------------------------------

HolgerN.
Beiträge: 47
Registriert: 18.04.2015, 19:54

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von HolgerN. » 01.04.2020, 18:35

Bei mir wird der Sonnenaufgang (Astrotag) um genau zwölf Stunden versetzt gesetzt - also z.B. auf 18:51 wenn Sonnenaufgang in der Web-UI mit aktuell
6:51 Uhr angezeigt wird.

Gruß Holger

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von Black » 01.04.2020, 18:50

Setz mal dein Script mit deinen einstellungen hier rein bitte und einen screenshot von den einstellungen von deinem zeitmodul
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

HolgerN.
Beiträge: 47
Registriert: 18.04.2015, 19:54

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von HolgerN. » 01.04.2020, 19:54

Das Skript habe ich 1:1 wie das von sammydk genommen und die Systemvariable als Zeichenkette erstellt.

Code: Alles auswählen

!- Flexibles Astro Zeit Programm mit Zeitmodul
!- Kommt ohne verbiegung der Ortskoordinaten aus
!- Black in Mai 2019
!- viewtopic.php?f=31&t=50498
! - https://homematic-forum.de/forum/viewtopic.php?f=31&t=50498&hilit=zeitmodul+black
!--------------------------------------------------
!- WICHTIG
!- Das programm muss vom Aufbau her dem WEBUI entsprechen, welches von mir in dem thread im Homematik-forum beschrieben wurde
!- Das zeitmodul muss in RUle 0, Condition 0 , Singlecondition 0 sein
!- Condition bzw Singlecondition sind anpassbar (nur wenns wirklich gebraucht und man weiss was man tut

integer SunriseOffset = 3600; !- Offset Sonnenaufgang in Sekunden (Minus = vor Sonnenaufgang)
integer SunsetOffset = 3600; !- Offset Sonnenunetergang in Sekunden (Minus = vor Sonnenunetergang)
string LimitTag = "07:15"; !- Kein öffnen vor dieser urzeit , keine Sekunden, zeit SOOO schreiben
string LimitNacht = "22:00"; !- Spätenstens Nacht um diese uhrzeit
!- Addon für Wochenende:
if (currenttime.Weekday () & 96) { !- Limit für Samstag Sonntag
string LimitTag = "08:00"; !- Kein öffnen vor dieser urzeit , keine Sekunden, zeit SOOO schreiben
string LimitNacht = "22:15"; !- Spätenstens Nacht um diese uhrzeit
}
object oPRG= dom.GetObject (ID_PROGRAMS).Get ("ZEIT_00_Astrozeit"); !- hier den Programmnamen mit dem zeitmodul eintragen, welches geändert werden soll

!- Ab hier nix mehr verändern
!----------------------------
if (!oPRG) {WriteLine ("Na toll, wenigstens der Programmname sollte richtig sein: Abbruch"); quit; }
object oZM= oPRG.Rule().RuleCondition (0).CndSingleCondition (0);
if (oZM.LeftValType () == ivtCurrentDate) { !- Wir sind ein Zeitmodul
oZM = dom.GetObject (oZM.RightVal1 () );
integer s= (system.SunriseTime ("%M").ToInteger () + SunriseOffset + system.SunriseTime ("%H").ToInteger ()*60).Max (30) ;
integer limit= (LimitTag.StrValueByIndex (":",1).ToInteger () + LimitTag.StrValueByIndex (":",0).ToInteger ()*60).Max (s);
time tZeit= "2020-01-01 00:00:00".ToTime ()+ limit*60;
oZM.Time (tZeit); !- Damit ist der Tagbeginn schon mal gesetzt
s= (system.SunsetTime ("%M").ToInteger () + SunsetOffset + system.SunsetTime ("%H").ToInteger ()*60).Min (1430) ;
limit= ((LimitNacht.StrValueByIndex (":",1).ToInteger () + LimitNacht.StrValueByIndex (":",0).ToInteger ()*60).Min (s))-limit;
dom.GetObject ("AstroTagzeit").State (tZeit.Format ("%H:%M"));
dom.GetObject ("AstroNachtzeit").State ((tZeit+(limit*60)).Format ("%H:%M"));
dom.GetObject ("AstroRolloAUF").State ((tZeit+SunriseOffset).Format ("%H:%M"));
dom.GetObject ("AstroRolloZU").State ((tZeit+(limit*60)+SunsetOffset).Format ("%H:%M"));
WriteLine (tZeit.Format ("%H:%M"));
WriteLine ((tZeit+(limit*60)).Format ("%H:%M"));
WriteLine ((tZeit+SunriseOffset).Format ("%H:%M"));
WriteLine ((tZeit+(limit*60)+SunsetOffset).Format ("%H:%M"));
oZM.CalDuration ((limit*60).Max (10).ToInteger () ); !- Dauer berechnet und gesetzt (Tagdauer mindestens 10 Minuten, falls jemand Müll konfiguriert hat
dom.RTUpdate (2);
! WriteLine ("Zeitmodul gesetzt");
} else { WriteLine ("Kein zeitmodul da, wo es sein sollte: Abbruch "); quit; }
Und das Zeitmodul in ZEIT_00_Astrozeit sieht so aus:
zeitmodul.jpg
Gruß
Holger
Zuletzt geändert von alchy am 02.04.2020, 21:39, insgesamt 4-mal geändert.
Grund: Code in Codetags posten

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von Black » 01.04.2020, 19:56

den offset in minuten angeben, nicht in sekunden... dann müsste es passen

integer SunriseOffset = 3600; !- Offset Sonnenaufgang in Sekunden (Minus = vor Sonnenaufgang)
integer SunsetOffset = 3600; !- Offset Sonnenunetergang in Sekunden (Minus = vor Sonnenunetergang)

wenn du eine Stunden Offset haben willst ist die Zahl 60

da müsste sammydk auch mal gucken, weil die 3600 sind mal definitiv falsch... bei Beiträgen von mir oder auch vielen anderen ist der erste Threat immer das aktuelle Script oder Programm.

Edit: ich hab im ersten treat im Kommentar angepasst: Offset ist in Minuten anzugeben.

Black
Zuletzt geändert von Black am 01.04.2020, 20:06, insgesamt 4-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

HolgerN.
Beiträge: 47
Registriert: 18.04.2015, 19:54

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von HolgerN. » 01.04.2020, 19:59

Perfekt - das war es !

Herzlichen Dank für die schnelle Aufklärung

Holger

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von Black » 27.04.2020, 21:02

Script geändert aufgrund einer Ungereimtheit von currenttime in localtime !!!

bitte korrigieren bei Einsetzen des Scriptes.


Thnx, Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

pusemuckel
Beiträge: 30
Registriert: 11.04.2015, 20:52

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von pusemuckel » 29.05.2020, 12:22

Hallo zusammen,
ich habe angefangen Ordnung in meine Scripte zu bringen un möchte meine Rolladensteuerung vereinfachen. Ich würde gerne das Script einsetzen, aber noch ein Limit für Abends auf nicht vor 18:00 Uhr einbauen. Kann mir jemand sagen wie ich das in dem Script umsetzen müsste ?
Vielen Dank im Voraus.
Jörg
_____________________________________________
RaspBerryMatic auf RaspBerry PI3B+
Homematic 25 Geräten
IoBroker

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von Black » 29.05.2020, 12:57

ja, das kann man erweitern in etwa so:

Code: Alles auswählen

!- Flexibles Astro Zeit Programm mit Zeitmodul
!- Kommt ohne Verbiegung der Ortskoordinaten aus
!- Copyright by Black in Mai 2019
!--------------------------------------------------
!- WICHTIG
!- Das Programm muss vom Aufbau her dem WEBUI Programm entsprechen, welches von mir in dem Thread im Homematik-forum beschrieben wurde
!- Das Zeitmodul muss in Rule 0, Condition 0 , Singlecondition 0 sein
!- Condition bzw Singlecondition sind anpassbar (nur wenns wirklich gebraucht und man weiss was man tut

integer SunriseOffset = -30; !- Offset Sonnenaufgang in Minuten !!! (Minus = vor Sonnenaufgang)
integer SunsetOffset  =  30; !- Offset Sonnenunetergang in Minuten !!!! (Minus = vor Sonnenunetergang)
string  LimitTag      = "05:30"; !- Kein öffnen vor dieser urzeit , keine Sekunden, zeit SOOO schreiben
string  LimitNacht    = "22:15"; !- Spätenstens Nacht um diese uhrzeit
string  LimitNachtEarliest= "22:18";  !- Wert ist Optional Kein Schliessen vor dieser uhrzeit , keine Sekunden, zeit SOOO schreiben wenn nicht verwendet Leerstring schreiben
object oPRG= dom.GetObject (ID_PROGRAMS).Get ("ZEIT_00_Astrozeit");  !- hier den Programmnamen mit dem zeitmodul eintragen, welches geändert werden soll

!- Ab hier nix mehr verändern
!----------------------------
if (!oPRG) {WriteLine ("Na toll, wenigstens der Programmname sollte richtig sein: Abbruch"); quit; }
object oZM= oPRG.Rule().RuleCondition (0).CndSingleCondition (0);
if (oZM.LeftValType () == ivtCurrentDate) { !- Wir sind ein Zeitmodul
   oZM = dom.GetObject (oZM.RightVal1 () );
   integer s= (system.SunriseTime ("%M").ToInteger () + SunriseOffset + system.SunriseTime ("%H").ToInteger ()*60).Max (30) ;
   integer limit= (LimitTag.StrValueByIndex (":",1).ToInteger () + LimitTag.StrValueByIndex (":",0).ToInteger ()*60).Max (s);
   time tZeit= "2007-01-01 00:00:00".ToTime ()+ limit*60;
   oZM.Time (tZeit); !- Damit ist der Tagbeginn schon mal gesetzt
   s= (system.SunsetTime ("%M").ToInteger () + SunsetOffset + system.SunsetTime ("%H").ToInteger ()*60).Min (1430) ;
   if (LimitNachtEarliest) {
      s= (LimitNachtEarliest.StrValueByIndex (":",1).ToInteger () + LimitNachtEarliest.StrValueByIndex (":",0).ToInteger ()*60).Max (s);
   }
   limit= ((LimitNacht.StrValueByIndex (":",1).ToInteger () + LimitNacht.StrValueByIndex (":",0).ToInteger ()*60).Min (s))-limit;
   oZM.CalDuration ((limit*60).Max (10).ToInteger () );  !- Dauer berechnet und gesetzt  (Tagdauer mindestens 10 Minuten, falls jemand Müll konfiguriert hat
   dom.RTUpdate (2);
   WriteLine ("Zeitmodul gesetzt");
} else { WriteLine ("Kein zeitmodul da, wo es sein sollte: Abbruch "); quit; }       
     
Black
Zuletzt geändert von Black am 08.07.2020, 10:09, insgesamt 1-mal geändert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

pusemuckel
Beiträge: 30
Registriert: 11.04.2015, 20:52

Re: Howto - AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens

Beitrag von pusemuckel » 29.05.2020, 16:34

@Back, Vielen Dank für die schnelle Antwort!
Schönes Wochenende...
_____________________________________________
RaspBerryMatic auf RaspBerry PI3B+
Homematic 25 Geräten
IoBroker

Antworten

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