NEWS
Timestamp per JS beliebig setzten beim Werte speichern?
-
Ich habe die Wettervorhersage mit FLOT umgesetzt wie in:
https://forum.iobroker.net/topic/16770/wettervorhersage-mit-flot
beschrieben. Konnte dort aber irgendwie keinen neuen Post erstellen, daher neues Topic.@ratte-rizzo Vielen Dank für das Script, das funktioniert schonmal!
Ich habe damit aber ein Problem, das ich selbst noch nicht lösen konnte.
Das Script schreibt ja die stündlichen Vorhersagen jede Minute in denselben Datenpunkt und der History Adapter kann dann genutzt werden das zu visualisieren. Aber da passt dann natürlich der Timestamp nicht zur wirklichen Stunde der Vorhersage.Ich möchte die Vorhersage gerne zusammen mit der wirklichen Temperatur im selben FLOT Diagramm darstellen. Quasi als "Verlängerung" der gemessenen Daten. Ich habe ein Diagramm mit fixem Ende auf den Tag (7-Tage Rückblick).
Gibt es eine Möglichkeit beim abpeichern der Stunden-Temperaturen aus weatherundergrund den Timestamp per Javascript so zu setzen, dass die Werte mit dem "richtigen" Timestamp gespeichert werden? Also Vorhersagewert für in 2h soll mit Timestamp = Jetzt + 2h abgespeichert werden. Geht sowas?Danke schonmal!!
Mein Diagram, zur besseren Vorstellung:
2021-12-09 15_27_15-.png -
@badsnoopy667 sagte in Timestamp per JS beliebig setzten beim Werte speichern?:
Gibt es eine Möglichkeit beim abpeichern der Stunden-Temperaturen aus weatherundergrund den Timestamp per Javascript so zu setzen, dass die Werte mit dem "richtigen" Timestamp gespeichert werden?
nein
-
@badsnoopy667 Hast Du eine Lösung zu den TimeStamps gefunden?
Ich stehe gerade am selben Punkt wegen Tiden-Vorhersage
Gruss von der Ostsee
Chris
-
@chris-1
Das was mir als ersten einfällt wäre unter 0_userdata mir die Datenpunkte zu erstellen und sie per Skript zu dem Zeitpunkt zu setzen den ich brauche. -
Wert manuell in sql speichern, so:
var theDate = new Date(); var ts_wert = theDate.getTime() + (2 * 60 * 60 * 1000); log ("ts_wert: " + ts_wert); sendTo('sql.0', 'storeState', {id: 'javascript.0.Sonstige.xxx', state: {val: 600, ts: ts_wert,ack:true}});
-
Hatte mal genau das selbe Problem.
Hier meine Lösung:
Die Zeit komvetiere ich so oft, da man so die Uhrzeit schöner eingeben kann.
Ziehe erst einen ganzen Tag ab und setzte dann die Uhrzeit. Geht natürlich in jede Richtung.{ let statement = ` REPLACE INTO iobroker.ts_number (id, ts, val, ack, _from, q) VALUES ((SELECT id FROM iobroker.datapoints WHERE name = "${id}"), ${ts}, ${value}, ${ack}, ${from}, ${q}) ` sendTo("sql.0", "query", statement, e => { if (e && e.error) { log(e.error) } else { // log("Done!") } }) }
Der DP muss aber zuvor einmal Regulär vom Histoty Adapter in der Datenbank angelegt werden.
-
Vielen Dank für Eure Beiträge, damit kann ich auch mein Problem lösen, den Stromverbrauch auf die passende Stunde schreiben!
Was ich noch nicht verstehe, ist warum addierst Du zu getTime() noch 26060*1000 dazu?
@bahnuhr sagte in Timestamp per JS beliebig setzten beim Werte speichern?:var ts_wert = theDate.getTime() + (2 * 60 * 60 * 1000);
Vielen Dank
-
Baue dir doch mal ein paar logs ein, dann siehts du es schon.
Stichwort:
Millisekunden, Sekunden