NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@entraax
Hi, ja, sollte zumindest. Wissen tut man es allerdings erst wirklich wenn es läuft...
Da du sie eh schon hast, ist das Risiko ziemlich gering.Es bestehen drei Möglichkeiten:
- die Station unterstützt eigene Wetterserver. Dann kannst du einfach die IP + URL (siehe WiKi) von dem Rechner eingeben auf dem das Skript läuft
- die DNS-Anfrage umleiten (PiHole, dnsmasq,...), also die Daten die an WU geschickt werden sollten landen auf dem Rechner auf dem das Skript läuft.
- die Daten an AWEKAS schicken und dann mittels des (ev. bald erscheinenden) AWEKAS-Adapters abholen.
-
danke für das aufzählen der Möglichkeiten. Ich werde es mal testen.
-
@SBorg
kannst Du mir sagen was da heute Nacht schiefgelaufen ist2023-10-01 01:02:12.184 - info: linux-control.0 (2530934) successful received data from Proxmox (192.168.1.13:22) 2023-10-01 01:03:00.082 - error: javascript.0 (2529042) Error in callback: SyntaxError: Unexpected token o in JSON at position 1 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at JSON.parse () 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at VorJahr (script.js.Wetter.Statistik-WS:417:24) 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at Object.main (script.js.Wetter.Statistik-WS:158:4) 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1617:34) 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15) 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7) 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at listOnTimeout (node:internal/timers:569:17) 2023-10-01 01:03:00.083 - error: javascript.0 (2529042) at processTimers (node:internal/timers:512:7) 2023-10-01 01:04:00.048 - info: host.ioBroker instance system.adapter.weatherunderground.0 started with pid 841580
Node 18.18.0
Admin 6.10.1
Javascript 7.1.4
IOB 5.0.12 -
Error in callback: SyntaxError: Unexpected token o in JSON at position 1
Ich würde behaupten, der Json den er vom Vorjahr parsen wollte, ist kein JSON (von der Formatierung), sondern ein Object?
Meiner sah z.B. so aus:
[{'Tiefstwert':2.1,'Hoechstwert':24.7,'Temp_Durchschnitt':12.14,'Max_Windboee':47.87,'Max_Regenmenge':19.304,'Regenmenge_Monat':60.51,'warme_Tage':9,'Sommertage':0,'heisse_Tage':0,'Frost_Tage':0,'kalte_Tage':0,'Eistage':0,'sehr_kalte_Tage':0}]
-
Jupp, alt bekanntes Problem. So wie es aktuell erstellt wird ist es auch kein ioB valides JSON. Das ist nur "hin- und zusammen gefrickelt" damit es "irgendwie" mit allem anderen funktioniert (zumindest mehr oder weniger).
Plan: korrektes JSON erstellen, Konverter für die Alt-Datensätze erstellen, um sie in korrektes JSON umzuwandeln, Skripte ggf. anpassen
Umsetzung: unbekannt, nicht in absehbarer Zeit meinerseits -
Hi, sorry war 3 Tage im Krankenhaus, daher erst jetzt. Kein Problem @SBorg , wird ja trotzdem alles korrekt angezeigt.
Also ganz in Ruhe irgendwann mal wenn Du Zeit hast. -
@nashra
Hoffe alles wieder gut, auf jeden Fall gute Besserung.Also ganz in Ruhe irgendwann mal wenn Du Zeit hast.
Also nie ?
Hier "stapelt" nix mehr, das "türmt" sich schon, von wegen Arbeit und so...
Prio hat jetzt aktuell meine Solaranlagenerweiterung, dann steht die Klima auf der ToDo und so weiter -
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra
Hoffe alles wieder gut, auf jeden Fall gute Besserung.Also ganz in Ruhe irgendwann mal wenn Du Zeit hast.
Also nie ?
Na Na Na, so war das aber jetzt auch nicht gemeint
Hier "stapelt" nix mehr, das "türmt" sich schon, von wegen Arbeit und so...
Prio hat jetzt aktuell meine Solaranlagenerweiterung, dann steht die Klima auf der ToDo und so weiterOk, wichtiger. Dann mal ran...
-
@sugomojawe said in [Linux Shell-Skript] WLAN-Wetterstation:
Hallo zusammen,
ich hätte da mal eine Frage. mein Vater hat mich mit dem ganzen Thema etwas angefixt. Er ist Amateurfunker und hat in seinem Hobbyraum eine ganze Station um Wetterbilder von Meteosat zu empfangen.
Aber zu meiner Frage, ich habe vor mir die Froggit HP1000SE PRO Display inkl. Innensensor + DP40 Aussen Temperatur/Luftfeuchte + DP80 Regensensor + DP300 Anemometer zu kaufen. Wie läuft das mit dem DP80 Regensensor? Der steht ja nicht in der Liste der Zusatzsensoren, wird der mit dem Display verbunden und dann so an ioBroker übermittelt oder wie kann ich mir das vorstellen?Danke und liebe Grüße aus dem Westerwald
MichaelHi,
ich habe von Froggit die HP1000SE PRO Single Sensor Edition und zusätzlich einen zweiten Außentemperatursensor und einen Blitzdetektor.
In der Single Sensor Edition ist auch der DP80 enthalten und das funktioniert ohne Probleme, er sendet also seine Werte als "regulärer Sensor" und muss nicht als zusätzlicher Sensor hinzugefügt werden.
In der config habe ich bei folgenden Sensoren eine 1 stehen:ANZAHL_WH31=1 #Außen Thermo-Hygrometer ANZAHL_DP40=1 #zusätzliches Außen Thermo-Hygrometer ANZAHL_DP50=1 #Innen Thermo-Hygrometer ANZAHL_DP60=1 #Blitzdetektor ANZAHL_DP300=1 #Anemometer und Lichtsensor
-
@sborg Ich habe gestern () festgestellt, dass die Werte von
0_userdata.0.Wetterstation.Info.Temp_Aussen_24h_max
(und ähnliche) nicht da sind. Kannst du mir kurz einen Hinweis geben, wo da was falsch läuft, bzw. wann die von wem geschrieben werden? Ich blick gerade nicht mehr durch. -
@rene55 Wird aus der InfluxDB gelesen.
Dazu nötig:
- loggen der Außentemperatur per Influx
- InfluxDB-Verbindung
- Bucket
- Token
- Organisation
- IP-Adresse und Port
Falls du also was an der InfluxDB geändert haben solltest...
Kleiner Test (auch im laufenden Betrieb) im Installationsverzeichnis stehen:./wetterstation.sh --influx_test
-
@sborg Danke, sowas hab ich gesucht. Ja, ich hatte eine andere Influx angebunden. Nach bestem Wissen sind alle Parameter richtig.
Bei dem Test bekomme ich jetzt:./wetterstation.sh: line 161: [: V3.2.0: unary operator expected Testing InfluxDB... min/max Aussentemperatur 24h: °C °C
Hab nachgesehen: Alle Dateien haben intern die V3.2.0 stehen.
EDIT: Ich hab die .conf neu gemacht - der unary-Fehler ist weg, sonst unverändert keine Werte!
-
@rene55
Schau mal- Ob Daten in der DB sind
- Ins Log der DB, ob da nicht vielleicht der Zugriff durch das Skript zurückgwiesen wird
-
@boronsbruder Grundsätzlich sind Daten in der DB drin. _24h_max ist leer.
Log der DB??? Wo und wie? -
@rene55 Weil wir es schon mal hatten, dein Token in der wetterstation.conf endet mit "==" ?
Da das Ganze URL basierend ist und ich noch nicht überall korrigiert habe, hast du ev. ein Sonderzeichen (auch Leerzeichen) im Bucket bzw. Organisation? Soweit ich mich noch erinnere ist die Organisation bei Influx auch case sensitiv.Standardmäßig loggt InfluxDB ins syslog. Ich weiß aber nicht ob er da fehlende Rechte, User etc. pp. von Influx mit loggt.
Mach noch mal den Influx-Test von oben gefolgt von einemsudo dmesg|tail
ob da was von Influx steht. -
@sborg Das stimmt. Mein Token enden mit "==". Ich hab gerade den Befehl von oben nochmal ausgeführt und danach den dmesg gemacht
dmesg: read kernel buffer failed: Operation not permitted
.Ich hatte extra ein Bucket für "weather" erstellt. Unter den meisten Einträgen sind Werte drin. Nur eben nicht bei den min/max-Werten.
-
@rene55 Du hast als User kein Recht das syslog zu lesen (das ist die Fehlermeldung), deswegen der "sudo".
Unter den meisten Einträgen sind Werte drin. Nur eben nicht bei den min/max-Werten
Dann funktioniert eigentlich auch dein Influx-Zugriff (wahrscheinlicher ist aber das es genau die Werte sind die nicht aus der Influx kommen). Zumindest wenn alles funktionieren würde, müsste der Test Werte liefern. Der ließt einfach die Außentemperatur von 0:00 Uhr bis jetzt (oder 23:59 Uhr wenn es ein anderer Tag ist) und überlässt dann Influx den kleinsten/größten Wert zu ermitteln. Ich mache an der Stelle nichts als eine "simple" Influx-Abfrage.
Mir fällt gerade noch was ein. Einen Alias nutzt du nicht beim loggen im ioB für die Außentemperatur?
Ansonsten, siehst du einen Graphen in der InfluxDB-GUI wenn du die Außentemperatur abfragst? -
@sborg Oh, mag das der Fehler sein?
Graph für "Aussentemperatur" ist da.
-
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Oh, mag das der Fehler sein?
Nö, das isser
So kann er den DP unter Influx nicht abfragen. -
@sborg Also Alias raus und nativ schreiben lassen! Oder gibt es noch eine Alternative (für mich)?