Timberwolf Server 3500 - 35% bis 60% Rabatt
Inkl. V4 ULTRA! Auch mit Inzahlungnahme von WireGate Server und älteren Timberwolf Server
Kunden mit TWS 350Q / 950Q / 960Q können einen kostenfreien PBM mit gleicher Aktivierung erhalten
Limitiert auf 99 Geräte und bis 15. Oktober 2023. Alle Fragen hierzu bitte nur an service at elabnet dot de.
Alle Details hier: https://elab.news/aktion-3500
Inkl. V4 ULTRA! Auch mit Inzahlungnahme von WireGate Server und älteren Timberwolf Server
Kunden mit TWS 350Q / 950Q / 960Q können einen kostenfreien PBM mit gleicher Aktivierung erhalten
Limitiert auf 99 Geräte und bis 15. Oktober 2023. Alle Fragen hierzu bitte nur an service at elabnet dot de.
Alle Details hier: https://elab.news/aktion-3500
[V4.0 IP4] Verständnisfrage Cron Syntax als Trigger
Forumsregeln
- Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
- Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
- Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
- Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
-
- Reactions:
- Beiträge: 88
- Registriert: Fr Jul 24, 2020 6:44 am
- Wohnort: Hamburg
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 51 Mal
[V4.0 IP4] Verständnisfrage Cron Syntax als Trigger
Hi,
ich trigere gerade Logiken zu bestimmten Zeiten. Wöchentlich bekomme ich als Zeitplan ja hin, indem ich Montags und Sonntags um bestimmte Zeiten triggere. Bei Monat und Jahr müsste ich nun die Cron Syntax bemühen. Und genau dazu habe ich eine Verständnisfrage.
Ich habe mit minütlich begonnen zu spielen. Ich fand mehrere Cron-Generatoren, die aber unterschiedliche Ergebnisse ausgaben und ein Check im jeweils anderen ergab einen Fehler.
Getestet in der Logik funktionierte auch nur bestimmte von denen, nicht alle. Es gibt also irgendwie Unterschiede.
Mein wöchentlicher und täglicher Timer mit Cron Syntax funktionierte nicht. Also trug ich das im Trigger der Logik als Zeitpunkt ein und lies mir die Cron Syntax ausgebben. Was soll ich sagen? Sie sah anders aus, als die von einem Generator erzeugte von einer Website, die zum testen von stündlich aber eine funktionierende Syntax ausgab.
Ich erzeugte nun einen Trigger, der jeden Tag schalten sollte. Die Logik gibt dafür dann das hier aus: "0 0 0 * * 0,1,2,3,4,5,6".
Prüfe ich das in einem Generator, bekomme ich einen Fehler: "Day-of-Week values must be between 1 and 7", was ich nach meinem bisherigen Verständnis auch unlogisch finde…
Warum gibt die Logik vom TWS auch die 0 für Tag aus und nicht nur 1-7? Ist das ganze nicht richtig genormt? Warum gibt es Unterschiede? Ich möchte mir sicher sein, was ich hier eintrage, kann es aber nicht, da ich verschiedene und, wie ich finde, im letzten Fall mit der 0 (Tag) eine für mich unlogische Syntax bekomme.
Kann mir das jemand erklären?
Ich würde halt gerne wissen, was man angeben muss, damit es funktioniert, wenn es ja offensichtlich verschiedene Möglichkeiten zu geben scheint.
Viele Grüße
Nils
ich trigere gerade Logiken zu bestimmten Zeiten. Wöchentlich bekomme ich als Zeitplan ja hin, indem ich Montags und Sonntags um bestimmte Zeiten triggere. Bei Monat und Jahr müsste ich nun die Cron Syntax bemühen. Und genau dazu habe ich eine Verständnisfrage.
Ich habe mit minütlich begonnen zu spielen. Ich fand mehrere Cron-Generatoren, die aber unterschiedliche Ergebnisse ausgaben und ein Check im jeweils anderen ergab einen Fehler.
Getestet in der Logik funktionierte auch nur bestimmte von denen, nicht alle. Es gibt also irgendwie Unterschiede.
Mein wöchentlicher und täglicher Timer mit Cron Syntax funktionierte nicht. Also trug ich das im Trigger der Logik als Zeitpunkt ein und lies mir die Cron Syntax ausgebben. Was soll ich sagen? Sie sah anders aus, als die von einem Generator erzeugte von einer Website, die zum testen von stündlich aber eine funktionierende Syntax ausgab.
Ich erzeugte nun einen Trigger, der jeden Tag schalten sollte. Die Logik gibt dafür dann das hier aus: "0 0 0 * * 0,1,2,3,4,5,6".
Prüfe ich das in einem Generator, bekomme ich einen Fehler: "Day-of-Week values must be between 1 and 7", was ich nach meinem bisherigen Verständnis auch unlogisch finde…
Warum gibt die Logik vom TWS auch die 0 für Tag aus und nicht nur 1-7? Ist das ganze nicht richtig genormt? Warum gibt es Unterschiede? Ich möchte mir sicher sein, was ich hier eintrage, kann es aber nicht, da ich verschiedene und, wie ich finde, im letzten Fall mit der 0 (Tag) eine für mich unlogische Syntax bekomme.
Kann mir das jemand erklären?
Ich würde halt gerne wissen, was man angeben muss, damit es funktioniert, wenn es ja offensichtlich verschiedene Möglichkeiten zu geben scheint.
Viele Grüße
Nils
Zuletzt geändert von Mibr85 am Mo Sep 18, 2023 9:47 am, insgesamt 3-mal geändert.
TWS 3500XL ID:1080 (VPN offen, Reboot nach Rücksprache)
-
- Reactions:
- Beiträge: 3560
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1032 Mal
- Danksagung erhalten: 1937 Mal
Der Cron Syntax ist hier beschrieben:
https://elabnet.atlassian.net/wiki/spac ... /431390748
Im Prinzip wurde die gebräuchliche Variante um Sekunden erweitert.
Lg
Robert
https://elabnet.atlassian.net/wiki/spac ... /431390748
Im Prinzip wurde die gebräuchliche Variante um Sekunden erweitert.
Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan
-
- Reactions:
- Beiträge: 88
- Registriert: Fr Jul 24, 2020 6:44 am
- Wohnort: Hamburg
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 51 Mal
Moin Robert,
danke für den Link. Das habe ich im Wiki mit dem Begriff "cron" heute Nacht komischerweise nicht gefunden. Da gab es 1 Ergebnis und das war keineswegs zielführend. Nun sind es mehrere. Verstehe das, wer will.
Gibt es denn verschiedene Varianten/Notationen der Cron-Syntax?
Denn, die in der Logik wird mir für jeden Tag ja "0,1,2,3,4,5,6" am Ende erstellt. Das Wiki & Wikipedia sagen selber "Wochentag 0-6".
Cron-Generatoren können mit der 0 teils nichts anfangen und sagen, es gibt nur 1-7.
0-6 oder 1-7 macht ja schon einen Unterschied und man sieht, dass die Syntax nicht immer gleich ist.
Ich habe für den selben Zeitpunkt mit Generatoren mehrere verschiedene Ergebnisse bekommen. Einige wurde vom TWS einfach nur nicht ausgeführt. Kann ich irgendwo die Cron-Syntax testen oder muss ich das immer so versuchen zu ändern, dass ich es manuell testen kann und dann zurück wandeln? Ich dachte zuvor, ich lasse meine Eingabe in einem Generator prüfen und dann kann ich das verwenden, aber das stimmt so wohl nicht. So etwas wie "letzter Tag im Monat" oder "erster Sonntag im Monat" z.B. lässt sich halt schwer testen, daher die Frage nach Prüfungsmöglichkeit.
Viele Grüße
Nils
danke für den Link. Das habe ich im Wiki mit dem Begriff "cron" heute Nacht komischerweise nicht gefunden. Da gab es 1 Ergebnis und das war keineswegs zielführend. Nun sind es mehrere. Verstehe das, wer will.
Gibt es denn verschiedene Varianten/Notationen der Cron-Syntax?
Denn, die in der Logik wird mir für jeden Tag ja "0,1,2,3,4,5,6" am Ende erstellt. Das Wiki & Wikipedia sagen selber "Wochentag 0-6".
Cron-Generatoren können mit der 0 teils nichts anfangen und sagen, es gibt nur 1-7.
0-6 oder 1-7 macht ja schon einen Unterschied und man sieht, dass die Syntax nicht immer gleich ist.
Ich habe für den selben Zeitpunkt mit Generatoren mehrere verschiedene Ergebnisse bekommen. Einige wurde vom TWS einfach nur nicht ausgeführt. Kann ich irgendwo die Cron-Syntax testen oder muss ich das immer so versuchen zu ändern, dass ich es manuell testen kann und dann zurück wandeln? Ich dachte zuvor, ich lasse meine Eingabe in einem Generator prüfen und dann kann ich das verwenden, aber das stimmt so wohl nicht. So etwas wie "letzter Tag im Monat" oder "erster Sonntag im Monat" z.B. lässt sich halt schwer testen, daher die Frage nach Prüfungsmöglichkeit.
Viele Grüße
Nils
TWS 3500XL ID:1080 (VPN offen, Reboot nach Rücksprache)
-
- Reactions:
- Beiträge: 998
- Registriert: Mi Okt 10, 2018 2:39 pm
- Hat sich bedankt: 669 Mal
- Danksagung erhalten: 796 Mal
Hallo Nils
Nein, das macht überhaupt keinen Unterschied. 1 ist immer Montag und ob nun 0 oder 7 den Sonntag markieren, spielt keine Rolle. Die Wikipedia sagt dazu bspw. das Folgende:
Ansonsten wie Robert schon antwortete...Für „Tag der Woche“ (Feld 5) sind sowohl 0 als auch 7 für Sonntag erlaubt, obwohl einige Versionen von Unix wie AIX die Ziffer 7 in der Manpage nicht als zulässig auflisten.
-
- Reactions:
- Beiträge: 1811
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 614 Mal
- Danksagung erhalten: 734 Mal
Um das Ende eines Monats zu bestimmen habe ich hier
viewtopic.php?f=65&t=3782&p=43750&hilit ... den#p43750
ein Workauround benutzt. Wenn ich mich richtig erinnere, dann ermittel ich dort, ob der nächste Tag jeweils der erste eines Monats ist und wenn ja, dann ist folglich der aktuelle Tag der letzte eines Monats.
Für sowas wie "den ersten Sonntag im Monat" müsstest du meines Erachtens auch ein wenig customlogik basteln.
viewtopic.php?f=65&t=3782&p=43750&hilit ... den#p43750
ein Workauround benutzt. Wenn ich mich richtig erinnere, dann ermittel ich dort, ob der nächste Tag jeweils der erste eines Monats ist und wenn ja, dann ist folglich der aktuelle Tag der letzte eines Monats.
Für sowas wie "den ersten Sonntag im Monat" müsstest du meines Erachtens auch ein wenig customlogik basteln.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 1811
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 614 Mal
- Danksagung erhalten: 734 Mal
Und vielleicht zur Ergänzung... In einem anderen Topic bist Du ja schon auf Roberts Modul 3 für Zählerstanderfassung aufmerksam gemacht worden.
Dort wird ein Zählerstand täglich gesendet und würde in einer Zeitreihe somit täglich verfügbar sein. Für eine Visu ist das optimal, willst Du aber stattdessen Monatswerte in Grafana darstellen, so ist das Problem heute, dass Grafana nicht auf Kalendermonate aggregieren kann... Dort hat ein Monat immer genau 30 Tage und das führt zu Ungenauigkeiten in der Darstellung, die teils recht blöd sind.
Deshalb habe ich mal einen Code geschaffen, der wirklich Kalendermonatsgerecht wenige Sekunden vor dem Ende eines Monats einen Wert sendet... Damit ist es in Grafana immernoch nicht so richtig perfekt, aber deutlich besser.
Dort wird ein Zählerstand täglich gesendet und würde in einer Zeitreihe somit täglich verfügbar sein. Für eine Visu ist das optimal, willst Du aber stattdessen Monatswerte in Grafana darstellen, so ist das Problem heute, dass Grafana nicht auf Kalendermonate aggregieren kann... Dort hat ein Monat immer genau 30 Tage und das führt zu Ungenauigkeiten in der Darstellung, die teils recht blöd sind.
Deshalb habe ich mal einen Code geschaffen, der wirklich Kalendermonatsgerecht wenige Sekunden vor dem Ende eines Monats einen Wert sendet... Damit ist es in Grafana immernoch nicht so richtig perfekt, aber deutlich besser.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 88
- Registriert: Fr Jul 24, 2020 6:44 am
- Wohnort: Hamburg
- Hat sich bedankt: 37 Mal
- Danksagung erhalten: 51 Mal
Moin Sven,
mich interessiert Stunde/Tag/Monat/Jahr. Bei dem Modul müsste ich mich also für das stündliche einarbeiten, da das noch nicht mit drin ist und ich mich mit der Custom-Logik nicht auskenne. Ist für mich also mal eben implementierter momentan. Das mit Grafana hatte ich auch schon rausbekommen und finde das nicht wirklich toll, daher dachte ich, schreibe ich es erst einmal "einfach" mit vorhandener Logik, bis ich darauf stieß, dass die cron-Syntax nicht immer gleich war und der TWS teils auf erstellte nicht reagierte und ich mich fragte, warum das so ist.
Den Code aus deinem Link hatte ich am Wochenende mal probiert und bekomme immer einen Fehler:
Ich habe zwar schon Custom-Logiken genutzt, weiß also, wie ich diese einfüge. Allerdings kenne ich mich im Code nicht aus und daher habe ich an dieser Stelle das nicht weiter untersucht und weiter verfolgt.
Das und die für mich notwendige Änderung im Modul von Robert bewogen mich dazu, das mit vorhandenen Logiken zu nutzen.
Viele Grüße
Nils
mich interessiert Stunde/Tag/Monat/Jahr. Bei dem Modul müsste ich mich also für das stündliche einarbeiten, da das noch nicht mit drin ist und ich mich mit der Custom-Logik nicht auskenne. Ist für mich also mal eben implementierter momentan. Das mit Grafana hatte ich auch schon rausbekommen und finde das nicht wirklich toll, daher dachte ich, schreibe ich es erst einmal "einfach" mit vorhandener Logik, bis ich darauf stieß, dass die cron-Syntax nicht immer gleich war und der TWS teils auf erstellte nicht reagierte und ich mich fragte, warum das so ist.
Den Code aus deinem Link hatte ich am Wochenende mal probiert und bekomme immer einen Fehler:
Code: Alles auswählen
Code inkorrekt
Logik konnte nicht angelegt werden, da der Code fehlerhaft ist.
1. Unbekannte Trigger oder Sendefilter in Ports: Zähler (A)Verbrauch Aktueller Tag (C)Verbrauch Aktuelle Woche (C)Verbrauch Aktueller Monat (C)Verbrauch Aktuelles Jahr (C)
Das und die für mich notwendige Änderung im Modul von Robert bewogen mich dazu, das mit vorhandenen Logiken zu nutzen.
Viele Grüße
Nils
TWS 3500XL ID:1080 (VPN offen, Reboot nach Rücksprache)
-
- Reactions:
- Beiträge: 3201
- Registriert: So Aug 12, 2018 10:20 am
- Hat sich bedankt: 1111 Mal
- Danksagung erhalten: 1411 Mal
Ich habe es nicht ausprobiert inwieweit das auch auf einer influx1.9 funktioniert, in einer influx 2.x lassen sich mittlerweile auch ordentliche Monate bauen, sind dann aber ähnliche Formeln im SQL wie sie die Logikbausteine realisieren.
Und weil das die Tage auch diskutiert wurde, Rohdaten würde ich immer in UTC abspeichern, wie man das dann abfragt ob nach MEZ mit ohne Sommerzeit ist dann rein von der ausgebenden Software abhängig.
Und weil das die Tage auch diskutiert wurde, Rohdaten würde ich immer in UTC abspeichern, wie man das dann abfragt ob nach MEZ mit ohne Sommerzeit ist dann rein von der ausgebenden Software abhängig.
Grüße
Göran
-- --Timberwolf 2600 Velvet Red-- -- TWS #225 / VPN aktiv / Reboot OK
Göran
-- --Timberwolf 2600 Velvet Red-- -- TWS #225 / VPN aktiv / Reboot OK
-
- Reactions:
- Beiträge: 1811
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 614 Mal
- Danksagung erhalten: 734 Mal
Senden zum Ende einer Stunde kannst Du recht simple mit irgendeinem zusätzlichen Standard-Modul und einem Trigger Eingang realisieren. In meiner Logik wäre das jetzt ein wenig aufwändig und würde da nicht gut reinpassen. Ich würde es über - wenn ich den Bedarf selbst hätte - auch in einer extra Logik lösen.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK
-
- Reactions:
- Beiträge: 1811
- Registriert: Di Okt 09, 2018 9:26 am
- Hat sich bedankt: 614 Mal
- Danksagung erhalten: 734 Mal
Habe es gerade bei mir ausprobiert... Ich bin auf der offiziellen Hauptversion V3.5.1 und konnte problemfrei eine neue Logik mit dem Code aus dem
verlinkten Post (also V5 des Code-Schnipsels) anlegen. Auf welcher TWS Version arbeitest Du?
Zuletzt geändert von Robosoc am Mo Sep 18, 2023 4:02 pm, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK