NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
beim Change auf V3 und dem Umzug der DPs von javascript.0.Wetterstation.xxx auf 0_userdata.0.Wtterstation.xxx muß ich die InfluxDaten der DPs aus javascript in die neuen DPs aus 0_userdata manuell kopieren. Gehe ich da richtig in der Annahme?
-
@sborg
ich denke im Statistik-Skript V2.0.0 hat sich ein fehlendes_
eingeschlichen, da beim "Vortag.Windboee_max" keine Werte kommen (und vermutlich auch beim Monatswechsel wird´s so sein). Der DP wird mit 0 belegt.
Im "from bucket ..."-Statement steht bei Wind_maxr.measurement == "' + WET_DP + '.Wind_max"
, sollte jedoch r._
measurement == "' + WET_DP + '.Wind_max" lauten (ist zumindest bei Aussentemperatur und Regen_Tag so).
Bitte kannst du das gelegentlich mal prüfen.Vielen Dank!
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
beim Change auf V3 und dem Umzug der DPs von javascript.0.Wetterstation.xxx auf 0_userdata.0.Wtterstation.xxx muß ich die InfluxDaten der DPs aus javascript in die neuen DPs aus 0_userdata manuell kopieren. Gehe ich da richtig in der Annahme?
Am einfachsten exportiert (egal ob aus Influx V1 oder V2) man sich die entsprechende(n) Datenreihe(n) zB. mittels "Killer-Befehl" aus der V1 :
echo '#datatype measurement,dateTime:RFC3339,boolean,string,double,double' > export.csv && influx -database [Datenbankname] -username [username] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur","javascript.0.Wetterstation.Regen_Tag","javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv
Nun ersetzt man "javascript." durch "0_userdata." :
sed -i "s/^javascript\./0_userdata\./g" ./export.csv
Dann sollten die Einträge in der export.csv in etwa so aussehen:
0_userdata.0.Fuellstand,2023-02-15T05:02:37.015Z,true,system.adapter.influxdb.0,0,54
Nun droppt man die alten Datenserien (sofern man sie schon in V2 hat) und importiert die neue csv:
influx write -b [Bucketname] -f ./export.csv
-
@latzi sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Statistik-Skript V2.0.0 hat sich ein fehlendes
_
eingeschlichen...Wohl eher davon geschlichen
...und noch einer, der aber schon seit langer Zeit drin ist.Jepp, jepp, checked, fixed, danke --> V2.0.1
Neue Version des JavaScriptes Wetterstation-Statistik auf GitHub V2.0.1
- ~Bugfix Influx-Abfrage "Wind" (@Latzi)
- ~Bugfix fester Datenpunkt auf "javascript.0..." bei Trockenperiode
Wie immer zu finden im GitHub
Update ist erforderlich, da es sich um einen Fehler handelt der die Funktion einschränkt.
-
@sborg Ok, danke. Irgendwie kommen die 24h Werte aber auch nicht. Die sind aber sicher in Influx.
-
@rushmed Fällt mir nur noch ein, hast du den ioB zwischenzeitlich mal neu gestartet oder zumindest den SimpleAPI? Der macht gelegentlich die "lustigsten" Fehler wenn man neue DPs per Javascript anlegt...
Mich macht da "Null" stutzig. Sieht so aus als könnte er aktuell den Wert nicht schreiben. -
@sborg ich hab gerade gesehen, dass heute Nacht wohl auch was schief lief.. schau mal, hier haste mal die Windboe auf Windboee geaendert aber irgendwie existiert der alte Datenpunkt noch der neue wird nicht geschrieben.. ?
2023-02-24 01:03:00.013 - info: javascript.0 (976157) script.js.common.Klimatisierung.Wetterstation-Statistik: Auswertung durchgeführt... 2023-02-24 01:03:00.149 - warn: javascript.0 (976157) State "0_userdata.0.Statistik.Wetter.VorTag.Windboee_max" not found 2023-02-24 01:03:00.151 - warn: javascript.0 (976157) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1731:20) 2023-02-24 01:03:00.151 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:226:5) 2023-02-24 01:03:00.151 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.151 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.151 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:00.151 - warn: javascript.0 (976157) getState "0_userdata.0.Statistik.Wetter.aktueller_Monat.Max_Windboee" not found (3) 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:247:8) 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) State "0_userdata.0.Statistik.Wetter.aktueller_Monat.Max_Windboee" not found 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1731:20) 2023-02-24 01:03:00.152 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:247:78) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) getState "0_userdata.0.Statistik.Wetter.Jahreswerte.Windboee_max" not found (3) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:283:12) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:00.153 - warn: javascript.0 (976157) State "0_userdata.0.Statistik.Wetter.Jahreswerte.Windboee_max" not found 2023-02-24 01:03:00.154 - warn: javascript.0 (976157) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1731:20) 2023-02-24 01:03:00.154 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:283:79) 2023-02-24 01:03:00.154 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.154 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.154 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:00.155 - warn: javascript.0 (976157) getState "0_userdata.0.Statistik.Wetter.Rekordwerte.value.Windboee" not found (3) 2023-02-24 01:03:00.155 - warn: javascript.0 (976157) at Rekordwerte (script.js.common.Klimatisierung.Wetterstation-Statistik:655:9) 2023-02-24 01:03:00.155 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:302:5) 2023-02-24 01:03:00.155 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.155 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) State "0_userdata.0.Statistik.Wetter.Rekordwerte.value.Windboee" not found 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1731:20) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at Rekordwerte (script.js.common.Klimatisierung.Wetterstation-Statistik:656:9) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at Object.cb (script.js.common.Klimatisierung.Wetterstation-Statistik:302:5) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5816:71) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:324:37) 2023-02-24 01:03:00.156 - warn: javascript.0 (976157) at processImmediate (node:internal/timers:466:21) 2023-02-24 01:03:05.159 - warn: javascript.0 (976157) getState "0_userdata.0.Statistik.Wetter.Rekordwerte.value.Windboee" not found (3) 2023-02-24 01:03:05.160 - warn: javascript.0 (976157) at Template_Rekordwerte (script.js.common.Klimatisierung.Wetterstation-Statistik:669:16) 2023-02-24 01:03:05.160 - warn: javascript.0 (976157) script.js.common.Klimatisierung.Wetterstation-Statistik: Object "0_userdata.0.Statistik.Wetter.Rekordwerte.value.Windboee" does not exist 2023-02-24 01:03:05.164 - error: javascript.0 (976157) script.js.common.Klimatisierung.Wetterstation-Statistik: TypeError: Cannot read properties of null (reading 'common') 2023-02-24 01:03:05.164 - error: javascript.0 (976157) at Template_Rekordwerte (script.js.common.Klimatisierung.Wetterstation-Statistik:670:66) 2023-02-24 01:06:24.817 - info: admin.0 (2420357) <== Disconnect system.user.admin from ::ffff:192.168.0.5 javascript
wetterstation V3.0 und javascript 7.0.1
-
hast du die
Windboe
-DP´s in0_userdata.0.Statistik.Wetter
gemäß Ankündigung geändert?@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
"Windboe" heißt nun überall korrekt "Windboee". Am einfachsten klont man den alten DP und trägt den neuen korrekten Namen ein, kopiert sich dessen Wert und trägt ihn in den neuen ein
Wetterstation-Statistik V2.0.1 eingesetzt?
-
@latzi sagte in [Linux Shell-Skript] WLAN-Wetterstation:
hast du die
Windboe
-DP´s in0_userdata.0.Statistik.Wetter
gemäß Ankündigung geändert?noe, dachte das Script legt nicht vorhandene automatisch an.. dachte ich..
Wetterstation-Statistik V2.0.1 eingesetzt?
ja, mal schauen obs jetzt laeuft.. dachte wenn man sowas im Script aendert dann macht das Script auch die Aenderung.. hach.. ok, der User soll auch noch was zu tun haben..
Edit: kaum macht man's richtig, funktionierts!
-
@ilovegym sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dachte wenn man sowas im Script aendert dann macht das Script auch die Aenderung.. hach.. ok, der User soll auch noch was zu tun haben.
Das Script macht da mal nüscht.
weniger Arbeit für euch = mehr Arbeit für mich
...und a bisserl dürft ihr auch arbeiten
Aber Späßken beiseite, das ist Userseitig in nicht mal 5 Minuten erledigt, ich muss/müsste dann erst mal wieder feststellen in welchem Pfad die Objekte liegen, unter welcher Instanz...
Es wäre da halt einfacher eine feste Struktur vorzugeben. Da bin ich aber kein Freund von. Jeder soll da einstellen können was er/sie/diverse will -
@sborg ja klar, verstaendlich, in manchen Dingen ist man verwoehnt..
Laeuft ja jetzt, Daten werden geschrieben, alles gut! Danke nochmals !
-
@ilovegym Ich habe es auch nicht negativ aufgefasst
Mir fällt nur gerade auf, ich hätte es eh nicht automatisieren können. Ich habe mich noch nie damit beschäftigt, ob ich auch auslesen könnte ob der DP zB. mittels Influx geloggt wird, um dies dann im neuen DP wieder zu setzen. -
Das Grafana-Dashboard habe ich mittlerweile kpl. auf Flux umgestellt, weiß nur nicht woher das noch kommt:
Scheint nicht benutzt zu werden, denn es funktioniert soweit bzw. es fehlt nichts und der entsprechende DP ist in InfluxDB V1 bereits gedroppt und nicht mehr existent. Schön ist das aber nicht
-
Ab sofort steht "mein" Dashboard in der V3 auf GitHub zur Verfügung wer denn will: https://github.com/SBorg2014/WLAN-Wetterstation
Nur noch für InfluxDB V2.x, Abfrage nur in Flux, konfigurierbar in den Settings per Variablen.
Neues Windrose-Plugin (Installation in der Read.Me). -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Nur noch für InfluxDB V2.x, Abfrage nur in Flux, konfigurierbar in den Settings per Variablen.
Danke für deine Arbeit
Bei mir funktioniert es leider noch nicht.
Bucket ist bei mir
iobroker
. Das hab ich in den Variablen eingetragen.
Data_Prefix
-_Instanz
und-_Ordnername
passen auch.
0_userdata.0.Wetterstation
Hab ich irgendwo noch was vergessen?
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hab ich irgendwo noch was vergessen?
Jepp
Zitat aus der Read.ME:
Hier besteht die Möglichkeit mit zwei unterschiedlichen Buckets zu arbeiten. Nutzt man nur eines für alles (was ich nicht unbedingt empfehlen würde) trägt man bei beiden den gleichen Bucketnamen ein.
Musst also auch beim "shorttermBucket" iobroker eintragen.
Überlesen, oder ist das missverständlich ausgedrückt? Falls ja, wie besser?
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Überlesen, oder ist das missverständlich ausgedrückt? Falls ja, wie besser?
mittlerweile die Readme gelesen und angepasst
Leider noch immer leer
-
@negalein Hast du mal ein refresh/reload der Seite erzwungen (STRG+F5)? Ev. hat er da noch die alte Einstellung gecached.
Falls immer noch nicht:
Wenn du den "Query-Inspector" öffnest sollte es dann in etwa so aussehen:
"291" = es wurden 291 Messwerte gelesen (für "Innen" 569) und die Variablen für Bucket etc. wurden in der Abfrage korrekt ersetzt. Der Abfragezeitraum sollte dann "jetzt" - 24 Stunden sein. -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wenn du den "Query-Inspector" öffnest sollte es dann in etwa so aussehen:
da steht nichts
Query schaut so aus:
from(bucket: "${longtermBucket}") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r._measurement == "${Data_Prefix}.${Data_Instanz}.${Data_Ordnername}.Aussentemperatur" and r._field == "value") |> aggregateWindow(every: v.windowPeriod, fn: last, createEmpty: false) |> set(key: "_field", value: "Aussen") |> yield(name: "Aussen")
Trage ich den Query von Influx-DataExplorer ein, funktionierts:
from(bucket: "iobroker") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Wetterstation.Aussentemperatur") |> filter(fn: (r) => r["_field"] == "value") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean")
hast du noch eine Idee?
-
Ich würde gerne eine Windrose in meine Vis einbauen.
Am Bestenüber Grafana. Bekomme aber die Query in Flux nicht hin.
Hat da jemand einen Input für mich?