NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Rest-API nutz ich noch nicht, hatte noch keinen Bedarf
Ist halt der Nachfolger des Simple-API, und über den kann ich von extern keine DPs im ioB anlegen.
Port ist größer 1024? Darunter braucht man normalerweise root-Rechte, um darauf zuzugreifen. Dürfte bei Docker identisch sein.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Port ist größer 1024?
Ja, hab ja alles aus der alten conf soweit übernommen
Ich teste heut abend oder morgen weiter, jetzt ruft erstmal die Arbeit
-
@sborg also bin gerade nochmal am probieren, jedoch bekomme ich das nicht zum laufen, hab auch schon mit ecowitt probiert, allerdings denke ich passt schon von vorn herein etwas am docker nicht
update-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/nc.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist update-alternatives: warning: skip creation of /usr/share/man/man1/netcat.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist
das docker compose steht noch mit einem veralteten image: ubuntu:xenial-20210611in github
hab es auch schon mit einem neueren ubuntu:jammy-20240227 probiert, führt beides zum selben ErgebnisConnection to 10.1.1.10 8087 port [tcp/*] succeeded! Preparing to unpack .../33-gpg-wks-client_2.2.27-3ubuntu2.1_amd64.deb ... Unpacking gpg-wks-client (2.2.27-3ubuntu2.1) ... Selecting previously unselected package gpg-wks-server. Preparing to unpack .../34-gpg-wks-server_2.2.27-3ubuntu2.1_amd64.deb ... Unpacking gpg-wks-server (2.2.27-3ubuntu2.1) ... Selecting previously unselected package gpgsm. Preparing to unpack .../35-gpgsm_2.2.27-3ubuntu2.1_amd64.deb ... Unpacking gpgsm (2.2.27-3ubuntu2.1) ... Selecting previously unselected package gnupg. Preparing to unpack .../36-gnupg_2.2.27-3ubuntu2.1_all.deb ... Unpacking gnupg (2.2.27-3ubuntu2.1) ... Selecting previously unselected package libonig5:amd64. Preparing to unpack .../37-libonig5_6.9.7.1-2build1_amd64.deb ... Unpacking libonig5:amd64 (6.9.7.1-2build1) ... Selecting previously unselected package libjq1:amd64. Preparing to unpack .../38-libjq1_1.6-2.1ubuntu3_amd64.deb ... Unpacking libjq1:amd64 (1.6-2.1ubuntu3) ... Selecting previously unselected package jq. Preparing to unpack .../39-jq_1.6-2.1ubuntu3_amd64.deb ... Unpacking jq (1.6-2.1ubuntu3) ... Selecting previously unselected package libldap-common. Preparing to unpack .../40-libldap-common_2.5.17+dfsg-0ubuntu0.22.04.1_all.deb ... Unpacking libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ... Selecting previously unselected package libsasl2-modules:amd64. Preparing to unpack .../41-libsasl2-modules_2.1.27+dfsg2-3ubuntu1.2_amd64.deb ... Unpacking libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up libksba8:amd64 (1.6.0-2ubuntu0.2) ... Setting up libpsl5:amd64 (0.21.0-1.2build2) ... Setting up apt-transport-https (2.4.11) ... Setting up libbrotli1:amd64 (1.0.9-2build6) ... Setting up libsqlite3-0:amd64 (3.37.2-2ubuntu0.3) ... Setting up libsasl2-modules:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up libnghttp2-14:amd64 (1.43.0-1ubuntu0.1) ... Setting up libnpth0:amd64 (1.6-3build2) ... Setting up libassuan0:amd64 (2.5.5-1build1) ... Setting up libldap-common (2.5.17+dfsg-0ubuntu0.22.04.1) ... Setting up libsasl2-modules-db:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up gnupg-l10n (2.2.27-3ubuntu2.1) ... Setting up librtmp1:amd64 (2.4+20151223.gitfa8646d.1-2build4) ... Setting up sudo (1.9.9-1ubuntu2.4) ... Setting up libsasl2-2:amd64 (2.1.27+dfsg2-3ubuntu1.2) ... Setting up libssh-4:amd64 (0.9.6-2ubuntu0.22.04.3) ... Setting up nano (6.2-1) ... update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/editor.1.gz because associated file /usr/share/man/man1/nano.1.gz (of link group editor) doesn't exist update-alternatives: using /bin/nano to provide /usr/bin/pico (pico) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/pico.1.gz because associated file /usr/share/man/man1/nano.1.gz (of link group pico) doesn't exist Setting up libmd0:amd64 (1.0.4-1build1) ... Setting up openssl (3.0.2-0ubuntu1.15) ... Setting up libbsd0:amd64 (0.11.5-1) ... Setting up readline-common (8.1.2-1) ... Setting up publicsuffix (20211207.1025-1) ... Setting up libonig5:amd64 (6.9.7.1-2build1) ... Setting up pinentry-curses (1.1.1-1build2) ... Setting up libjq1:amd64 (1.6-2.1ubuntu3) ... Setting up libreadline8:amd64 (8.1.2-1) ... Setting up netcat-openbsd (1.218-4ubuntu1) ... update-alternatives: using /bin/nc.openbsd to provide /bin/nc (nc) in auto mode update-alternatives: warning: skip creation of /usr/share/man/man1/nc.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist update-alternatives: warning: skip creation of /usr/share/man/man1/netcat.1.gz because associated file /usr/share/man/man1/nc_openbsd.1.gz (of link group nc) doesn't exist Setting up bc (1.07.1-3build1) ... Setting up libldap-2.5-0:amd64 (2.5.17+dfsg-0ubuntu0.22.04.1) ... Setting up ca-certificates (20230311ubuntu0.22.04.1) ... debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.34.0 /usr/local/share/perl/5.34.0 /usr/lib/x86_64-linux-gnu/perl5/5.34 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.34 /usr/share/perl/5.34 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7.) debconf: falling back to frontend: Teletype Updating certificates in /etc/ssl/certs... 137 added, 0 removed; done. Setting up jq (1.6-2.1ubuntu3) ... Setting up gpgconf (2.2.27-3ubuntu2.1) ... Setting up libcurl4:amd64 (7.81.0-1ubuntu1.15) ... Setting up curl (7.81.0-1ubuntu1.15) ... Setting up gpg (2.2.27-3ubuntu2.1) ... Setting up gnupg-utils (2.2.27-3ubuntu2.1) ... Setting up gpg-agent (2.2.27-3ubuntu2.1) ... Setting up gpgsm (2.2.27-3ubuntu2.1) ... Setting up dirmngr (2.2.27-3ubuntu2.1) ... Setting up gpg-wks-server (2.2.27-3ubuntu2.1) ... Setting up gpg-wks-client (2.2.27-3ubuntu2.1) ... Setting up gnupg (2.2.27-3ubuntu2.1) ... Processing triggers for libc-bin (2.35-0ubuntu3.6) ... Processing triggers for ca-certificates (20230311ubuntu0.22.04.1) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. (standard_in) 1: syntax error /opt/wetterstation/wetterstation.sub: line 1950: dc: command not found /opt/wetterstation/wetterstation.sub: line 482: dc: command not found /opt/wetterstation/wetterstation.sub: line 483: dc: command not found (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error Runtime error (func=(main), adr=3): Parameter number mismatch (standard_in) 12: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 12: syntax error /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 728: printf: `%d Std, %d Min': not a valid identifier /opt/wetterstation/wetterstation.sub: line 1950: dc: command not found /opt/wetterstation/wetterstation.sub: line 482: dc: command not found /opt/wetterstation/wetterstation.sub: line 483: dc: command not found (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error Runtime error (func=(main), adr=3): Parameter number mismatch (standard_in) 12: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 12: syntax error /opt/wetterstation/wetterstation.sub: line 1950: dc: command not found /opt/wetterstation/wetterstation.sub: line 482: dc: command not found /opt/wetterstation/wetterstation.sub: line 483: dc: command not found (standard_in) 1: syntax error (standard_in) 1: syntax error (standard_in) 1: syntax error
EDIT
es kommen jetzt doch Daten im iobroker an, sehr merkwürdigedit
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dc: command not found
dc
fehlt in der docker compose, das hatte ich übersehen -
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dc fehlt in der docker compose, das hatte ich übersehen
Habe ich gerade so beim herunter scrollen gelesen und dachte dann noch, hm "Werte kommen".
Ja, aber längst nicht alle. "dc" ist eine Art Taschenrechner für die bash, da diese nur mit Ganzzahlen (oder integer) rechnen kann.
Hast du außer dem alten Image noch was ändern müssen? Dann passe ich später die yaml mal an. -
@sborg ne, nur ein neues image und dc hinzugefügt
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ja, aber längst nicht alle. "dc" ist eine Art Taschenrechner für die bash,
ja das hat ich schon gelesen, anfangs kamen allerdings überhaupt keine Werte, vllt hat da auch etwas anderweitig gesponnen, da zu Beginn die Station bei ecowitt auch auf offfline stand nach dem Wechsel, bzw keine Werte ankamen. (hatte ja bis dato wunderground laufen)
jetzt ist nur noch die große Hürde, Grafana/Influx, da ich da ebenfalls noch auf 1.x bin. Hab auch jetzt alles neu in userdata angelegt
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
jetzt ist nur noch die große Hürde, Grafana/Influx, da ich da ebenfalls noch auf 1.x bin.
Da hoffe ich inständig, dass hier zukünftig Updates einfacher werden. Influx 1 --> 2 ist schon "Mist". Mit der aktuellen Grafana 10.4.x ist nun alles was "Angular" betrifft ab gekündigt. Ich habe natürlich fast überall "Blendstat" als Panel im Einsatz und das nutzt Angular. Migrieren von Blendstat --> stat geht natürlich auch wieder nicht immer ganz so einfach
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@boronsbruder ... aber wir sollten den Thread hier nicht weiter volltexten sondern wenn du willst in einem Neuen.
Hallo @Boronsbruder
funktioniert bei dir das Skript noch da bei mir nur noch Fehler kommen.javascript.0 2464124 2024-04-01 13:20:34.292 error at processTicksAndRejections (node:internal/process/task_queues:95:5) javascript.0 2464124 2024-04-01 13:20:34.292 error at get_data (script.js.Wetter.Luftqualität:148:54) javascript.0 2464124 2024-04-01 13:20:34.291 error script.js.Wetter.Luftqualität: TypeError: Cannot read properties of undefined (reading '2024-04-01 12:00:00') javascript.0 2464124 2024-04-01 13:20:34.193 error at processTicksAndRejections (node:internal/process/task_queues:95:5) javascript.0 2464124 2024-04-01 13:20:34.193 error at get_data (script.js.Wetter.Luftqualität:148:54) javascript.0 2464124 2024-04-01 13:20:34.193 error script.js.Wetter.Luftqualität: TypeError: Cannot read properties of undefined (reading '2024-04-01 12:00:00')
-
@nashra
Der Thread ist abgekoppelt -> Hier geht es weiterNatürlich geht es bei mir! (Aber erst nach dem ich es auf deinen Hinweis repariert habe...)
-
Hallo
Kann mir jemand sagen, wo das Problem liegt?pi@Raspberrypi:~/Wetterstation $ systemctl status wetterstation × wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Sat 2024-04-06 18:47:20 CEST; 33s ago Duration: 839us Main PID: 2520 (code=exited, status=203/EXEC) CPU: 770us Apr 06 18:47:20 Raspberrypi (ation.sh)[2520]: wetterstation.service: Failed at step EXEC spawning /home/pi/wetterstation.sh: No such file or directory Apr 06 18:47:20 Raspberrypi systemd[1]: Started wetterstation.service - Service für ioBroker Wetterstation. Apr 06 18:47:20 Raspberrypi systemd[1]: wetterstation.service: Main process exited, code=exited, status=203/EXEC Apr 06 18:47:20 Raspberrypi systemd[1]: wetterstation.service: Failed with result 'exit-code'. pi@Raspberrypi:~/Wetterstation $
Ich habe unter pi einen Ordner Wetterstation angelegt und da sind auch die Dateien drin.
Gruß
-
@g-hawk Liegt das Script unter "/home/pi/wetterstation.sh"?
Das Script wird in "/home/pi/" gesucht aber du hast es wohl in "/home/pi/Wetterstation/wetterstation.sh".
-
@rushmed
Genau ich habe das aber in der Config geändert. -
@g-hawk DAs muss auch für systemd angepasst werden:
-
@rushmed
Danke läuft. -
Moin zusammen,
ich habe zwei Wetterstationen an unterschiedlichen Standorten laufen. Ich hatte lange Zeit die Statistik laufen, um hier die verläufe der letzten Tage besser sichtbar zu machen.
Seit graumer Zeit läuft die Statistik aber nicht mehr. Die aktuellen Werte werden aber nach wie vor geschrieben.
Ich habe jetzt schon alles mehrfach kontrolliert und bin alles nochmal Schritt für Schritt durchgegangen, kann aber den Fehler nicht beheben.
Das Wetterstation_Statistik Skript läuft auf dem IoBroker und was ich feststellen kann ist, dass jeden Tag um 01:03 Uhr das Skript einen Fehler wirft:Die Werte für die Organisation, Bucket und die Instanz habe ich schon ettliche Male kontrolliert und auch mit verschiedenen Einstellungen getestet.
Laut Fehlermeldung scheint der Zugriff auf die Datenbank auch nicht das Problem zu sein, sondern dass er einen Wert nicht richtig initialisieren kann.
Ich bin jetzt auch kein ausgewiesener Script-Experte und bräuchte wahrscheinlich Monate, um den Fehler zu finden.
Ich habe das Script Wetterstation_Statistik unverändert, bis auf die Werte der InfluxDB in der Version 2.0.3 laufen.
Die Statistik läuft jetzt seit September nicht mehr richtig, aber Kind und Kegel haben mich bisher davon angehalten, mit intensiver mit diesem Thema zu beschäftigen.
Ich habe eben auch nochmal alle Objekte des Knotens "Statistik" gelöscht, das Skript neu ausgeführt und die Objekte wurden neu angelegt. Dennoch kommt der Fehler bei der Ausführung.
P.S.: Die Aktuelle Zeit stammt aus dem Testen, regulär läuft das Skript um 01:03 Uhr.
Hat jemand eine Idee oder Hinweis, was bei mir schief läuft?
Ich bedanke mich schon mal im Voraus!
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
bei installierter Rest-API
hab das mal vor einigen Tagen einrichten wollen, bekomme das aber nicht zum laufen, muss man da etwas spezielles beachten/nachinstallieren?
der docker wirft dann Fehler und script läuft diesbezüglich nicht, irgendwas mit nc..hab das log gerade nicht parat0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB] Hit:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [2019 kB] Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1369 kB] Fetched 3617 kB in 2s (2168 kB/s) Reading package lists... Reading package lists... Building dependency tree... Reading state information... bc is already the newest version (1.07.1-3build1). dc is already the newest version (1.07.1-3build1). jq is already the newest version (1.6-2.1ubuntu3). nano is already the newest version (6.2-1). netcat-openbsd is already the newest version (1.218-4ubuntu1). ca-certificates is already the newest version (20230311ubuntu0.22.04.1). curl is already the newest version (7.81.0-1ubuntu1.16). gnupg is already the newest version (2.2.27-3ubuntu2.1). sudo is already the newest version (1.9.9-1ubuntu2.4). apt-transport-https is already the newest version (2.4.12). 0 upgraded, 0 newly installed, 0 to remove and 15 not upgraded. usage: nc [-46CDdFhklNnrStUxxxx] [-I length] [-i interval] [-M ttl] [-m minttl] [-O length] [-P proxy_username] [-p source_port] [-q seconds] [-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [destination] [port] usage: nc [-46CDdFhklNnrStUxxxx] [-I length] [-i interval] [-M ttl] [-m minttl] [-O length] [-P proxy_username] [-p source_port] [-q seconds] [-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [destination] [port]
Einstellung im Adapter
in der .conf ist aktuell
für Rest-api hatte ich die IPP bei simple-api rausgenommen und bei RESTAPI_URL http://10.1.1.10:8093 eingetragen#ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx] IPP=10.1.1.10:8087 #Protokoll, ioBroker-IP und Port der Rest-API [http(s)://xxx.xxx.xxx.xxx:xxxxx] / leer lassen falls nicht benutzt RESTAPI_URL= RESTAPI_USER= RESTAPI_PW= #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=DNS / default: 2 WS_PROTOKOLL=2 #Anzahl der vorhandenen Zusatzsensoren Froggit, Ecowitt und Bresser / default: 0 ... #Protokoll (HTTP oder HTTPS) / default: HTTP WEB=HTTP #Ignoriere Zertifikatsfehler bei der Simple-Restful-API [true/false] / default: false / nötig bei eigenen Zertifikaten WEB_IGN_SSL_ERROR=false #User-Authentifizierung falls benutzt; sonst leer lassen AUTH_USER= AUTH_PASS=
-
@chillmaster
Influx 1.x oder 2.x?Es sieht so aus, dass er die Daten nicht aus der DB holen kann und deswegen ein leeres Array bearbeiten muss, was zu dem Fehler führt.
Hast due irgendwelche Aliase vergeben? -
@boronsbruder
Vielen Dank für die Rückmeldung.
Also im Hintergrund läuft eine InfluxDB 2.7.6, im IOBroker ist DB Version 2.x eingestellt und bei Grafana wird Flux als Language verwendet. Habe ich ggf. eine Einstellung übersehen?
Gesonderte Aliase habe ich nicht verwendet. Im Grunde Standard -
@chillmaster
Teste mal ob das WLAN-Skript die InfluxDB überhaupt erreicht. Im Installationsverzeichnis einfach aufrufen./wetterstaion.sh --influx_test
Dann ließt er mal was aus der InfluxDB:
Dann wären die Daten aus der ".conf" die richtigen und auch für das Statistik-Skript gültig.
-
@crunchip
Außer dem Rest-API Adapter im ioB ist dafür nichts weiter nötig.Zum Verständnis:
- der Simple-API ist immer nötig. Der nimmt die Daten des WLAN-Skriptes entgegen
- der Rest-API (der zukünftige Nachfolger der Simple-API) macht aktuell nichts weiter wie Datenpunkte im ioB anlegen bei einem Update des WLAN-Skriptes sofern dies nötig ist bzw. es neue gibt.
Ich habe einen extra User für die API im ioB angelegt und diesen in der "conf" eingetragen:
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Zum Verständnis:
der Simple-API ist immer nötig
Das habe ich dann wohl falsch verstanden, dachte, der Rest-API sei der Nachfolger. Und kann den Simple-Abi abschalten.
Hab mich ehrlich gesagt auch noch nicht weiter mit dem Adapter auseinander gesetzt, da ich den anderweitig nicht benötige.Dieses Meldung *usage: NC... * kommt dann woher?