Timer mit Verzögerung um mehr als 24h

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

AF-Mobil
Beiträge: 315
Registriert: 25.11.2016, 19:52
Hat sich bedankt: 4 Mal
Danksagung erhalten: 20 Mal

Timer mit Verzögerung um mehr als 24h

Beitrag von AF-Mobil » 16.01.2022, 07:24

Hallo, die Frage ist:
Kann man in der RaspberryMatic im Zeitmodul eine grössere Auslöse-Verzögerung als 24 Stunden einstellen?
Gruss AF

Edit: Bin im falschen Forumsbereich gelandet, bitte um Verschiebung.
Zuletzt geändert von Roland M. am 16.01.2022, 11:19, insgesamt 1-mal geändert.
Grund: Thema verschoben

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von manfredh » 16.01.2022, 10:00

Sag uns doch mal, was du erreichen möchtest.

Ereignisse in der ferneren Zukunft lassen sich evtl. leichter und sicherer mit einer gesetzten Systemvariable triggern.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

AF-Mobil
Beiträge: 315
Registriert: 25.11.2016, 19:52
Hat sich bedankt: 4 Mal
Danksagung erhalten: 20 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von AF-Mobil » 16.01.2022, 11:03

Hallo, zum Jahresbeginn erhalte ich immer Termine, an denen unser Mistentsorger kommt.
Zu diesen Zeitpunkten wird durch ein Programm unsere Torsteuerung in den "Entsorgermodus" versetzt,
um ungehinderten Zugang zum Grundstück zu gewähren.
Diese Termine pflege ich von Hand ein und schicke in einem gesonderten Programm drei Tage vor dem
nächsten anstehendenTermin eine Nachricht an alle "Betroffenen".
Nun war mein Gedanke, in einem Programm erst hinweisen zu lassen und dann mit drei Tagen Verzögerung den o.g. Modus zu aktivieren.
Im Moment sind das zwei Programme mit zwei Terminlisten.
Das dieses Verfahren Fallstricke wie z.Bsp. einen zwischenzeitlichen Reboot ist mir schon bewusst. Ist erstmal eine grundsätzlichen Frage.
MfG AF
Zuletzt geändert von AF-Mobil am 16.01.2022, 11:56, insgesamt 1-mal geändert.

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

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von Black » 16.01.2022, 11:55

Was ginge, wenn du mit 2 Programmen arbeitest:

Ist:
Programm 1 wird 72 Stunden vor Programm 2 aufgerufen.
Programm 1 wird aus einer ZeitTabelle bedient

Ich würde das ist so lassen, aber:
in Programm 1 nimmst du den Aktuellen Istzeitpunkt, Addierst dort 72 Stunden dazu, und lädst mit diesem Wert das auslösende Zeitmodul von Programm2,welches dir dann brav 3 Tage später triggern wird und die Aktion auslösen wird.

ein Neustart zwischen den 3 Tagen wäre kein Problem, weil zum Zeitpunkt 1 wäre ja der zeitpunkt 2 absolut berechnet worden.

EIn Ansatz, wie es geht, steht in meiner SIg mit dem AstroZeitmodul, da benutze ich das gleiche Prinzip

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

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

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von Black » 16.01.2022, 13:00

Da es ja abgewandelt auch von allgemeinem Interesse ist, mal einen schnellen dokumentierten Lösungsanatz von mir, sollte so Nachvollziehbar sein und auch für eigene Anwendungen abwandelbar.

Fangen wir an wie in dem Rolladen Astroscript auch: ein Programm 2, von mir in dem Fall genannt: PRG2_Delay3Tage, wird der Name geändert, muss natürlich auch das Script später auf den Namen angepasst werden.

EIn primitiv Programm, wichtig ist, das Zeitmodul muss GANZ OBEN stehen, also Rule0, Condition0 und SInglecondition0.
ich habs mal angelegt als Zeitspanne zwischen 9 und 17.00 Uhr, ist für die Manipulation nachher aber irrelevant, Zeitpuntkt und konkrete Uhrzeit geht genauso. WIchtig ist nur das : einmalig am mit Datum

Beim Triggern würde das Programm dann das Script: TUE ETWAS auslösen, den AUsführungsteil natürlich auch mit eigenem Code versehen

Das Programm also ganz normal in der WEB-UI anlegen.

Z1.PNG

Nun ist allerdings ein Editor und Inspektor ausserhalb der Möglichkeiten der WebUI wesentlich hilfreicher.
Schnell das Zeitmodul kontrolliert, der Auslösezeitpunkt wäre heute 17:00 Uhr. Klar, ich habs heute kurz vor eins angelegt.

Z2.png

Nun brauchen wir ein Script, welches uns nun das Zeitmodul, welches eigentlich statisch ist, ein bisschen dynamisch modifiziert. Geht alles mit bisschen scripten.

Code: Alles auswählen

!DemoScript Zeitmodul Ändern für AF-Mobil
! by Black 2022
object oPRG=dom.GetObject(ID_PROGRAMS).Get("PRG2_Delay3Tage");
if (oPRG) {
   object oSCND= oPRG.Rule().RuleConditions().GetAt(0).CndSingleConditions().GetAt(0);
   if (oSCND.LeftValType()==ivtCurrentDate) { !Das Zeitmodul steht an der richtigen Stelle
      object oCalDP= dom.GetObject(oSCND.RightVal1());
      if (oCalDP) {
        if (oCalDP.Type()==OT_CALENDARDP) {
           ! Das *3 ist die Verzögerung in Tagen zum jetzigen Zeitpunkt
           time Later= ((localtime+(86400*3)).Format("%Y-%m-%d 00:00:00")).ToTime();
           oCalDP.CalRepeatTime(Later);
           dom.RTUpdate(2);
           WriteLine ("Erfolgreich um 3 Tage versetzt angelegt");
        }
      }
   }
} 
Angepasst werden sollte natürlich:
Der Programmname des Programms mit dem Zeitmodul (hier PRG2_Delay3Tage)
und die gewünschte Verzögerung in Tagen in der Zeitle (86400*3) siehe auch der KOmmentar

Aufgerufen werden müsste das Script dann in dem Programm 1, welches dir die Erinnerung schickt und von dem Calender bedient wird.

Nach erfolgreichen durchlauf (hier im Scripteditor)

Z3.PNG

sollte das Zeitmodul nun geändert sein und wenn alles richtig ist, auf dem 19.01.2022 auf 09:00 stehen:

Blick im SDV verrät, hat geklappt:
z4.png

in der WebUI ist das Zeitmodul nun auch mit dem neuen Auslösezeitpunkt sichtbar:

Z5.PNG

Black
Zuletzt geändert von Black am 16.01.2022, 22:29, 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

[sprotte80]
Beiträge: 331
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 23 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von [sprotte80] » 16.01.2022, 13:19

HI
AF-Mobil hat geschrieben:
16.01.2022, 11:03
Diese Termine pflege ich von Hand ein und schicke in einem gesonderten Programm drei Tage vor dem
nächsten anstehendenTermin eine Nachricht an alle "Betroffenen".
Nun war mein Gedanke, in einem Programm erst hinweisen zu lassen und dann mit drei Tagen Verzögerung den o.g. Modus zu aktivieren.
Im Moment sind das zwei Programme mit zwei Terminlisten.
Geht einfach mit dem Kalenderscript ohne Handstand
viewtopic.php?f=31&t=31640

Eine Termiliste und 1 Prog.
Prog:

Code: Alles auswählen

WENN
    IST-Abfall-Sonstiges-Tage = 3
   DANN 
     Nachricht
 SONST WENN 
    IST-Abfall-Sonstiges-HEUTE = WAHR
   DANN
    Tor auf    
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

MichaelN
Beiträge: 9534
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 692 Mal
Danksagung erhalten: 1604 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von MichaelN » 16.01.2022, 13:23

Naja, nicht jeder setzt gerne Skripte ein, die er nicht versteht - und 470 Systemvariablen zu bedienen - im Ernst WER braucht sowas?
Ich bevorzuge da auch lieber überschaubare Lösungen, die ich auch selber warten und anpassen kann. Geht evt. dem einen oder anderen auch so.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

[sprotte80]
Beiträge: 331
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 23 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von [sprotte80] » 16.01.2022, 13:31

Hi
MichaelN hat geschrieben:
16.01.2022, 13:23
und 470 Systemvariablen zu bedienen - im Ernst WER braucht sowas?
470 ist ja kein muss sondern ein kann.
Brauchst ja nicht alle anlegen sondern nur wo du brauchen tust.
komplett flexibel
alle Einstellungen können per Systemvariablen durchgeführt werden
es müssen nur die Systemvariabeln angelegt werden, welche man selbst auch tatsächlich benötigt
bedient bis zu 451 Systemvariabeln in einem Aufwasch
Flexibilität benötigt keine Änderungen am Skript selbst.
Benutzer kann den Typ der Systemvariabeln für Ein- und Ausgaben in den meisten Fällen selbst festlegen
Namen der Systemvariabeln bei Bedarf frei wählbar
Thomas
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

AF-Mobil
Beiträge: 315
Registriert: 25.11.2016, 19:52
Hat sich bedankt: 4 Mal
Danksagung erhalten: 20 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von AF-Mobil » 16.01.2022, 14:21

Hallo und danke für die umfangreiche Hilfe, heute komme ich leider nicht mehr dazu, die Lösung zu übernehmen bzw. anzupassen.
Die Tage wird's bei mir ruhiger, dann probier ich's mal aus.
Ist also anzunehmen, dass die RaspberryMatic sich in dem Fall wie das Zeitmodul der CCU... verhält?!
Danke und einen schönen Sonntag noch, AF

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Timer mit Verzögerung um mehr als 24h

Beitrag von manfredh » 16.01.2022, 14:30

Pragmatischste Lösung:

Für jeden Termin ein(zwei) Programm(e) mit Trigger "Zeitsteuerung - einmalig am..."
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

Antworten

Zurück zu „RaspberryMatic“