Hallo Robert, hallo Jens,
stimmt, hier fehlt noch die Beschreibung des Cron-Moduls.
Robert_Mini hat geschrieben: ↑So Dez 01, 2019 5:20 pm
Hier muss uns @S. Kolbinger aufklären, dann kann ich das auch in der KB ergänzen.
ich habe es nicht vergessen. Aber beim ersten Versuch der Beschreibung ist mir noch ein Bug aufgefallen, denn ich in RC11 behoben habe.
blaubaerli hat geschrieben: ↑So Dez 08, 2019 7:53 pm
PS: ich nehme an, dass der Thread hier ggf. untergegangen ist...?
Aber nun zum Thema.
Die Syntax für das Cron-Modul lautet:
$Start: Boolscher Eingang.
True schaltet den Timer aktiv (triggert bei nächsten Cron-Zeitpunkt).
Falseschaltet den Timer inaktiv (nichts passiert).
$Alarm: Boolscher Ausgang. Wird zum Cron-Zeitpunkt
true ansonsten
false
$NextTrigger: Integer Ausgang: Gibt den Cron-Zeitpunkt aus (in Unix-Zeit), wann der Timer das nächste mal triggert. Oder den Wert 0, falls der Timer inaktiv ist.
$CronExpr: Der Cron-String (um Sekunden erweitert) der die Trigger-Zeitpunkte festlegt.
Damit das ganze etwas klarer wird, hier zum Test eine Custom-Logik mit zwei Cron-Triggern:
Code: Alles auswählen
{
"Level": [
["$In","bool",false],
["$Out1","bool",false],
["$Next1","integer",0],
["$CronEpr1","string","0/10 * * * * *"],
["$Out2","bool",false],
["$Next2","integer",0],
["$CronEpr2","string","5/10 * * * * *"]
],
"Module": [
["Cron","$In","$Out1","$Next1","$CronEpr1"],
["Cron","$In","$Out2","$Next2","$CronEpr2"]
],
"Input": [
["Aktiv","Schaltet die Timer scharf","$In","c"]
],
"Output": [
["Weckzeit 1","Nächste Weckzeit von Timer 1 (Unix-Zeit)","$Next1","c"],
["Alarm 1","Timer 1 hat ausgelöst","$Out1","c"],
["Weckzeit 2","Nächste Weckzeit von Timer 2 (Unix-Zeit)","$Next2","c"],
["Alarm 2","Timer 2 hat ausgelöst","$Out2","c"]
]
}
Der Crom-Timer 1 triggert bei Sekunde 0, 10, 20, 30, 40, 50.
Der Crom-Timer 2 triggert bei Sekunde 5, 15, 25, 35, 45, 55.
Das sieht dann so aus:
Nicht vergessen den Eingang "Aktiv" auf
true zu setzen (im Doktor-Modus).
Ich habe mal in Grafana die Werte dargestellt:
Und jetzt noch zu dem Bug
der bis einschließlich RC10 drin war:
Hier wurde nicht der nächste Cron-Zeitpunkt ausgegeben, sonder der letzte Zeitpunkt an dem der Timer getriggert wurde.
Allen viel Spaß beim ausprobieren.