NEWS
Intelligentere Lösung gesucht - exakter Cronjob
-
Hallo zusammen,
ich benötige bitte Hilfe bei einem Skript, welches mir exakt jede Viertelstunde einen Verbrauchswert, evtl. in separaten Objektpunkten, erfasst.
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
Zudem möchte ich die Möglichkeit haben, die Werte in einer Google Sheets Tabelle zu archivieren, d.h. die Objektpunkte sollen zum Tageswechsel in genannter Tabelle archiviert werden.Mein Weg ist bisher:
Ich hab 96 Objektpunkte angelegt und hab 96 einzelne Cronjobs (00:00, 00:15, 00:30...) in einem Skript, die mir die Objektpunkte mit Daten befüllen.
Ist natürlich ein wahnsinniger Aufwand.Gibt es eine intelligentere Lösung, vielleicht mit einer Liste oder Array, die Objektpunkte zu speichern und auch für den "exakten" Cronjob ?
Danke schonmal im voraus.
Gruß
Martin -
Hallo zusammen,
ich benötige bitte Hilfe bei einem Skript, welches mir exakt jede Viertelstunde einen Verbrauchswert, evtl. in separaten Objektpunkten, erfasst.
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
Zudem möchte ich die Möglichkeit haben, die Werte in einer Google Sheets Tabelle zu archivieren, d.h. die Objektpunkte sollen zum Tageswechsel in genannter Tabelle archiviert werden.Mein Weg ist bisher:
Ich hab 96 Objektpunkte angelegt und hab 96 einzelne Cronjobs (00:00, 00:15, 00:30...) in einem Skript, die mir die Objektpunkte mit Daten befüllen.
Ist natürlich ein wahnsinniger Aufwand.Gibt es eine intelligentere Lösung, vielleicht mit einer Liste oder Array, die Objektpunkte zu speichern und auch für den "exakten" Cronjob ?
Danke schonmal im voraus.
Gruß
Martin@MJAS said in Intelligentere Lösung gesucht - exakter Cronjob:
exakt jede Viertelstunde
aber
@MJAS said in Intelligentere Lösung gesucht - exakter Cronjob:
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
wo ist da der Unterschied?
-
Hallo zusammen,
ich benötige bitte Hilfe bei einem Skript, welches mir exakt jede Viertelstunde einen Verbrauchswert, evtl. in separaten Objektpunkten, erfasst.
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
Zudem möchte ich die Möglichkeit haben, die Werte in einer Google Sheets Tabelle zu archivieren, d.h. die Objektpunkte sollen zum Tageswechsel in genannter Tabelle archiviert werden.Mein Weg ist bisher:
Ich hab 96 Objektpunkte angelegt und hab 96 einzelne Cronjobs (00:00, 00:15, 00:30...) in einem Skript, die mir die Objektpunkte mit Daten befüllen.
Ist natürlich ein wahnsinniger Aufwand.Gibt es eine intelligentere Lösung, vielleicht mit einer Liste oder Array, die Objektpunkte zu speichern und auch für den "exakten" Cronjob ?
Danke schonmal im voraus.
Gruß
Martin@MJAS said in Intelligentere Lösung gesucht - exakter Cronjob:
Hallo zusammen,
ich benötige bitte Hilfe bei einem Skript, welches mir exakt jede Viertelstunde einen Verbrauchswert, evtl. in separaten Objektpunkten, erfasst.
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
Zudem möchte ich die Möglichkeit haben, die Werte in einer Google Sheets Tabelle zu archivieren, d.h. die Objektpunkte sollen zum Tageswechsel in genannter Tabelle archiviert werden.Was ist an dem 'normalen' Cron nicht genau genug ? Wie ungenau ist das denn aktuell.
Mein Weg ist bisher:
Ich hab 96 Objektpunkte angelegt und hab 96 einzelne Cronjobs (00:00, 00:15, 00:30...) in einem Skript, die mir die Objektpunkte mit Daten befüllen.
Ist natürlich ein wahnsinniger Aufwand.Aufwand, und letztendlich auch witzlos, weil der Eintrag
*/15 * * * *letztendlich genau das gleiche Ergebnis hat wie deine 96 Datenpunkte. Die Ungenauigkeiten kommen aus der Laufzeit im System, sprich der Zeit zwischendas OS erkennt das der Zeitpunkt erreicht istundder Wert ist im DP gespeichert.Gibt es eine intelligentere Lösung, vielleicht mit einer Liste oder Array, die Objektpunkte zu speichern und auch für den "exakten" Cronjob ?
Gibt es: Nutz den normalen Cron mit
*/15 * * * *, stell sicher dass:- der Aktuelle Verbrauchswert bereits im Speicher ist (so das du den nicht aus dem Objektbaum oder sogar vom Gerät holen musst)
- sämtliche notwendigen Berechnungen bereits erfolgt sind
- das System ansonsten möglichst wenig Zeit-basierte Aktionen macht (sprich idealerweise genau einen cron-Job der zur vollen 1/4 Stunde aktiv wird.
- Die Systemzeit auf die µs exakt ist (viel Spass dabei)
- Das System sich zu dem Zeitpunkt idealerweise langweilt, und nicht mit
shared resourcesarbeitet. (Also auf dedizierter Hardware nativ läuft, ohne Docker, VM, Proxxmox, etc, und auch nicht auf einem NAS)
Unterm Strich stellt sich die Frage wozu das ganze ? Was muss mit so genauen Heartbeats geschehen das Verzögerungen im 100-300 ms Bereich (und das sollte hoch gegriffen sein) problematisch sind ?
Danke schonmal im voraus.
Gruß
MartinA.
-
Hallo zusammen,
ich benötige bitte Hilfe bei einem Skript, welches mir exakt jede Viertelstunde einen Verbrauchswert, evtl. in separaten Objektpunkten, erfasst.
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
Zudem möchte ich die Möglichkeit haben, die Werte in einer Google Sheets Tabelle zu archivieren, d.h. die Objektpunkte sollen zum Tageswechsel in genannter Tabelle archiviert werden.Mein Weg ist bisher:
Ich hab 96 Objektpunkte angelegt und hab 96 einzelne Cronjobs (00:00, 00:15, 00:30...) in einem Skript, die mir die Objektpunkte mit Daten befüllen.
Ist natürlich ein wahnsinniger Aufwand.Gibt es eine intelligentere Lösung, vielleicht mit einer Liste oder Array, die Objektpunkte zu speichern und auch für den "exakten" Cronjob ?
Danke schonmal im voraus.
Gruß
Martin@MJAS said in Intelligentere Lösung gesucht - exakter Cronjob:
Der normale Cronjob "alle 15 Minuten" ist mir hierfür nicht exakt genug.
hääää.. definiere nicht exakt genug ...
-
Mit "nicht exakt" war gemeint, dass ich dann Werte um 00:17 (anstatt 00:15) oder 00:46 (anstatt 00:45) hatte, was ich mir nicht durch eine Systemlatenz erklären konnte.
Ich hab jetzt auf einem Cronjob [ 0,15,30,45 * * * * ] umgebaut.Die Datenpunkte hab ich gelöscht und einen JSON-Datenpunkt angelegt.
-
Mit "nicht exakt" war gemeint, dass ich dann Werte um 00:17 (anstatt 00:15) oder 00:46 (anstatt 00:45) hatte, was ich mir nicht durch eine Systemlatenz erklären konnte.
Ich hab jetzt auf einem Cronjob [ 0,15,30,45 * * * * ] umgebaut.Die Datenpunkte hab ich gelöscht und einen JSON-Datenpunkt angelegt.
@MJAS said in Intelligentere Lösung gesucht - exakter Cronjob:
dass ich dann Werte um 00:17 (anstatt 00:15) oder 00:46 (anstatt 00:45)
Das liegt definitiv nicht am Cronjob selbst.
Lies dir mal den Post von @Asgothian genau durch, vielleicht trifft da etwas auf dich zu
-
Es geht wahrscheinlich darum, nicht nur den Messwert exakt alle Viertelstunde zu erfassen, sondern er sollte nicht durch Zwischenspeicherung veraltet sein.
Vielleicht muss man da nicht nur den letzten Wert in einer Variablen im Skript speichern, sondern auch noch Zeitstempel des letzten und vorletzten Wertes ablegen, und daraus den Wert für die vollen Viertelstunden interpoliert.Interessant wäre auch, ob die Viertelstundenwerte sofort, oder auch etwas später vorliegen können.
Dazu müsste man wissen, ob es um Aufzeichnung oder irgendwelche Regelschleifen geht.
-
Es geht wahrscheinlich darum, nicht nur den Messwert exakt alle Viertelstunde zu erfassen, sondern er sollte nicht durch Zwischenspeicherung veraltet sein.
Vielleicht muss man da nicht nur den letzten Wert in einer Variablen im Skript speichern, sondern auch noch Zeitstempel des letzten und vorletzten Wertes ablegen, und daraus den Wert für die vollen Viertelstunden interpoliert.Interessant wäre auch, ob die Viertelstundenwerte sofort, oder auch etwas später vorliegen können.
Dazu müsste man wissen, ob es um Aufzeichnung oder irgendwelche Regelschleifen geht.
@MartinP
Alles Spekulation. Die entscheidenden Informationen liegen uns nicht vor. Weder wo die Verzögerungen her kommen, noch warum sie so problematisch sein sollen.Bevor da nicht mehr Informationen kommen macht es wenig Sinn sich den Kopf an der Glaskugel aufzureiben.

A.