NEWS
Diagramm für Wettervorhersage
-
@mcu Das ist nun wiederum eine textuelle Darstellung, die ich schon habe.
Bild: (http://www.heit-tech.de/wetter/bergneustadt/mini_currentt.gif)
sowas würde ich gerne für die VORHERSAGE haben. Und die Vorhersage habe ich in Datenpunkten von dem Adapter "daswetter"- Ordner
Datenpunkt Temp (z.B. 5 Grad)
Datenpunkt Uhrzeit (02:00) - Ordner
Datenpunkt Temp (z.B. 7 Grad)
Datenpunkt Uhrzeit (05:00) - Ordner
Datenpunkt Temp (z.B. 8 Grad)
Datenpunkt Uhrzeit (08:00) - Ordner
Datenpunkt Temp (z.B. 10 Grad)
Datenpunkt Uhrzeit (11:00) - Ordner
Datenpunkt Temp (z.B. 12 Grad)
Datenpunkt Uhrzeit (14:00) - Ordner
Datenpunkt Temp (z.B. 10 Grad)
Datenpunkt Uhrzeit (17:00) - Ordner
Datenpunkt Temp (z.B. 7 Grad)
Datenpunkt Uhrzeit (20:00) - Ordner
Datenpunkt Temp (z.B. 5 Grad)
Datenpunkt Uhrzeit (23:00)
- Ordner
-
-
-
@mcu
EDIT: ist doch noch zu früh. Nicht richtig geguckt. Wie hast du das umgesetzt? Temperatur und Niederschlag wäre meine Ziel.Original:
Sieht gut aus. Ich kenne und nutze den eChart Adapter auch. Aber auch da ist das Problem, das er die Werte aus der Datenbank bekommt die aus einem Datenpunkt dort eingetragen wurden. Die Werte werden bei Änderung mit dem dann aktuellen Zeitpunkt der Änderung in die Datenbank geschrieben. Das geht jedoch nur, für Vergangenheit bzw aktuelle Werte. Ich möchte jedoch die Zukunft darstellen.Erstens habe ich nicht nur einen Datenpunkt, sondern 8 Datenpunktpaare und zweitens ist der Zeitpunkt der Änderung nicht gleich der Zeit, die ich auf der X-Achse anzeigen möchte. D.h. der Datenpunkt der Temperaturvorhersage (z.b. für heute 20 Uhr) Ändert sich zu einer anderen Zeit (z.b. heute 8 Uhr und nochmal um 15 Uhr). Wenn ich den Datenpunkt also mit dem SQL Adapter loggen lassen, wird er die Temperatur für 20.Uhr um 8 Uhr und um 15 Uhr anzeigen. Ich möchte einmal am Tag
(z.b. frühs um 6 Uhr) alle Vorhersagen nehmen und daraus entsprechend ein Diagramm erstellen.Eine Lösung wäre z.b. wenn ich per Skript Daten in die Datenbank eintragen kann und ich den Zeitstempel so manipulieren, dass er nicht den Zeitstempel der änderung da rein schreibt, sondern den für wann diese Temperatur gilt (in der Zukunft). Das habe ich jedoch noch keinen Ansatz, wie das gehen kann.
-
@anno171986 Script ist fertig. Muss ich noch dokumentieren. Also mehrere Tage?Andere Werte?
Im Script sindTemperatur
Luftfeuchtigkeit
Wind
UV Index
Regenmenge
LuftdruckFür einen Tag day1
1 Tag -> heute Abend
Mehrere Tage -> dauert ein wenig -
@mcu ich nehme es so, wie es dir am besten passt. Ich hatte mir gedacht immer nur einen Tag in ein Diagramm, aber vlt dann auch die Vorschau für in x Tagen (also für in 2 bis 5 Tagen).
-
-
@mcu schonmal Recht vielen Dank. Habe mir jetzt erstmal nur die Beschreibung angeguckt, werde es heute nicht mehr testen können. Geht es nur mit dem History Adapter/DB oder auch mit SQL?
-
@anno171986
Zurzeit nur history.0.
Bin noch dabei es für andere Adapter (influxdb, sql) und unterschiedliche Instanzen vorzubereiten. -
@mcu setzt du das mit SQL zeitnah um? Dann muss ich nicht extra einen neuen Adapter und evtl neue Datenbank anlegen.
Da ich auch noch einen Fehler mit canvas habe, kann ich das Diagramm wahrscheinlich eh nicht per telegram schicken, was mein Ziel ist, daher ist zeitnah relativ weit gefasst. -
@anno171986 Doku aktualisieren. Ist umgesetzt, schon gestern.
Programm Version 1.0.6 -
@mcu super, ich hatte wie gesagt noch keine Zeit zum testen, ich hoffe heute Abend
-
@mcu Hallo, ich habe es jetzt das erste Mal ausprobiert. Es kallp schonmal soweit, dass die Datenpunkte gesetzt werden.
Ich nutze daswetter.0.NextDaysDetailed.Location_1.Day_1.Hour_1.hour_value, das habe ich auch angepasst. Dort ist jedoch .Hour_8, das maximum, da nur alle 3 Stunden Werte vorhanden sind. Dazu bekomme ich im Log bekomme ich jetzt den Fehler:
javascript.0 2022-11-19 20:29:55.157 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.157 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.157 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.157 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.156 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.155 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.155 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.155 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.154 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_22.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.155 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.155 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_23.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.153 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.153 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.154 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.153 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.152 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_21.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.153 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.151 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.151 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.152 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.151 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.150 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_20.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.151 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.149 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.149 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.150 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.149 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.149 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.148 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.147 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.147 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.147 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_19.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.146 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.146 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.146 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.145 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_18.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.142 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.141 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.141 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.140 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_17.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.141 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.141 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.139 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.139 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.139 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.138 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_16.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.139 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.137 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.137 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.137 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.138 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.136 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_15.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.136 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.137 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.137 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.136 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.135 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:29:55.136 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:29:55.135 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_14.uv_index_value" not found (3) javascript.0 2022-11-19 20:29:55.134 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:29:55.135 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:29:55.134 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:29:55.134 warn at processTimers (node:internal/timers:502:7)
Und dann noch einen Fehler bezüglich doppelter Einträge in der DB:
sql.0 2022-11-19 20:29:58.507 error Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES (32, 1669071600000, 14, 0, 8, 0);: Error: Duplicate entry '32-1669071600000' for key 'PRIMARY' (id: 0_userdata.0.daswetter.futureWind) sql.0 2022-11-19 20:29:58.488 error Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES (31, 1669071600000, 0, 0, 8, 0);: Error: Duplicate entry '31-1669071600000' for key 'PRIMARY' (id: 0_userdata.0.daswetter.futureUV_Index) sql.0 2022-11-19 20:29:58.481 error Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES (32, 1669068000000, 17, 0, 8, 0);: Error: Duplicate entry '32-1669068000000' for key 'PRIMARY' (id: 0_userdata.0.daswetter.futureWind) sql.0 2022-11-19 20:29:58.464 error Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES (31, 1669068000000, 0, 0, 8, 0);: Error: Duplicate entry '31-1669068000000' for key 'PRIMARY' (id: 0_userdata.0.daswetter.futureUV_Index) sql.0 2022-11-19 20:29:58.459 error Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES (32, 1669057200000, 16, 0, 8, 0);: Error: Duplicate entry '32-1669057200000' for key 'PRIMARY' (id: 0_userdata.0.daswetter.futureWind) sql.0 2022-11-19 20:29:58.456 error Cannot insert INSERT INTO `iobroker`.ts_number (id, ts, val, ack, _from, q) VALUES (28, 1669071600000, 94, 0, 8, 0);: Error: Duplicate entry '28-1669071600000' for key 'PRIMARY' (id: 0_userdata.0.daswetter.futureHumidity)
-
@anno171986 Was hast du in den DP eingetragen?
0_userdata.0.daswetter.daswetterDP
Zeig bitte die Datenstruktur von
daswetter.0.NextDaysDetailed.Location_1.Day_1
-
@mcu daswetter.0.NextDaysDetailed.Location_1.Day_1
Es geht ja soweit. Das Problem ist nur, dass er nicht bei daswetter.0.NextDaysDetailed.Location_1.Day_1.Hour_8.hour_value aufhört, sondern bis daswetter.0.NextDaysDetailed.Location_1.Day_1.Hour_24.hour_value weiter sucht, die es aber ab daswetter.0.NextDaysDetailed.Location_1.Day_1.Hour_9.hour_value nicht mehr gibt. Deibne Unterscheidung ob Werte für jede, oder nur jede 3 Stunden da sind, scheint nicht ganz zu funktionieren, jedenfalls für daswetter.0.NextDaysDetailed.Location_1 nicht
-
@mcu hier erstmal das Ergebnis, dass es funktioniert:
Und hier die Struktur:
-
@anno171986 Das kann es eigentlich nicht, da er nur die Hour-Werte liest, die auch da sind!
-
@mcu Habe es gerade nochmal durchlaufen lassen;
javascript.0 2022-11-19 20:59:52.338 warn at processTimers (node:internal/timers:502:7) javascript.0 2022-11-19 20:59:52.338 warn at listOnTimeout (node:internal/timers:559:17) javascript.0 2022-11-19 20:59:52.338 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2396:34) javascript.0 2022-11-19 20:59:52.338 warn at Object.<anonymous> (script.js.common.DasWetter_Vorhersage:44:9) javascript.0 2022-11-19 20:59:52.338 warn at getWeatherData (script.js.common.DasWetter_Vorhersage:451:44) javascript.0 2022-11-19 20:59:52.337 warn getState "daswetter.0.NextDaysDetailed.Location_1.Day_3.Hour_20.uv_index_value" not found (3)
Bei uv_index_value scheint er bis 24 zu suchen.
-
@anno171986 Du hast die Dir Version (detailed) ausgesucht, die ich nicht getestet hatte. Hole mir gerade die Daten. Mal sehen.
-
@mcu Alles gut. Soweit funktioniert es ja, dass sind jetzt Details. Ich habe jetzt noch ein viel größeres Problem zu lösen. Ich versuche mir das Diagramm per Telegram schicken zu lassen, da kommt dann leider folgender Fehler;
Cannot find required modules: Error: The module '/opt/iobroker/node_modules/canvas/build/Release/canvas.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 72. This version of Node.js requires NODE_MODULE_VERSION 93. Please try re-compiling or re-installing the module (for instance, using `npm rebuild` or `npm install`).
Habe schon ziemlich viele Tipps aus dem Netz versucht, aber alles ohne Erfolg.