@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du ev. Simple-API (die _muss sein) mit Rest-API (die ist optional) verwechselt?
Arghhhhhhhhhh.
Ja, vielen Dank fürs Augen öffnen.
Kaum nimmt man die richtige Api, schon geht es.
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du ev. Simple-API (die _muss sein) mit Rest-API (die ist optional) verwechselt?
Arghhhhhhhhhh.
Ja, vielen Dank fürs Augen öffnen.
Kaum nimmt man die richtige Api, schon geht es.
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Oder der User "pi" darf einfach kein Influx, was ich eher vermute...
Knapp daneben.
Der user pi durfte kein nc.
sudo chmod u+s /usr/bin/nc
hat das geändert.
Jetzt darf Dein Script nicht mehr als root laufen. Soll und braucht es aber ja auch nicht mehr.
Vielen Dank und viele Grüße
Björn
@björn-günther sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Als Service gestartet wird /var/log/syslog weiterhin mit Fehlern befüllt
Ich habe jetzt versuchsweise in /etc/systemd/system/wetterstation.service das ExecStart geändert und ein sudo davor gesetzt.
[Unit]
Description=Service für ioBroker Wetterstation
[Service]
User=pi
Group=pi
ExecStart=sudo /home/pi/wetterstation/wetterstation.sh
[Install]
WantedBy=multi-user.target
Das scheint, zumindest bei mir die Lösung gebracht zu haben.
Nochmal vielen Dank @SBorg
Viele Grüße
Björn
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Check bitte mal deine Influx-Einstellungen: IP, Port, Datenbankname, User und PW
Ich hatte für die Datenbank keinen User und PW gesetzt und das in der Config deshalb frei gelassen.
Nachdem ich im Influx-Adapter User und PW eingerichtet und in der .conf eingetragen habe, geht es jetzt offenbar mit auf der Shell gestartetem Script.
Als Service gestartet wird /var/log/syslog weiterhin mit Fehlern befüllt:
ul 30 12:46:06 raspberrypi2 influxd-systemd-start.sh[6789]: InfluxDB started
Jul 30 12:46:06 raspberrypi2 systemd[1]: Started InfluxDB is an open-source, distributed, time series database.
Jul 30 12:46:19 raspberrypi2 systemd[1]: Started Service für ioBroker Wetterstation.
Jul 30 12:46:19 raspberrypi2 wetterstation.sh[6880]: Connection to 127.0.0.1 8087 port [tcp/*] succeeded!
Jul 30 12:46:20 raspberrypi2 influxd-systemd-start.sh[6790]: ts=2022-07-30T10:46:20.731418Z lvl=info msg="Executing query" log_id=0b~gFMU0000 service=query query="SELECT min(value) FROM iobroker.autogen.\"javascript.0.Wetterstation.Aussentemperatur\" WHERE time <= now() AND time >= '2022-07-30 00:00:00'"
Jul 30 12:46:20 raspberrypi2 influxd-systemd-start.sh[6790]: [httpd] 127.0.0.1 - pi [30/Jul/2022:12:46:20 +0200] "GET /query?db=iobroker&epoch=s&p=%5BREDACTED%5D&pretty=true&q=SELECT+min%28value%29+FROM+%22javascript.0.Wetterstation.Aussentemperatur%22+WHERE+time+%3C%3D+now%28%29+and+time+%3E%3D+%272022-07-30+00%3A00%3A00%27&u=pi HTTP/1.1" 200 525 "-" "curl/7.74.0" d90542dc-0ff4-11ed-8002-dca6327ecb3b 153937
Jul 30 12:46:20 raspberrypi2 influxd-systemd-start.sh[6790]: ts=2022-07-30T10:46:20.889196Z lvl=info msg="Executing query" log_id=0b~gFMU0000 service=query query="SELECT max(value) FROM iobroker.autogen.\"javascript.0.Wetterstation.Aussentemperatur\" WHERE time <= now() AND time >= '2022-07-30 00:00:00'"
Jul 30 12:46:20 raspberrypi2 influxd-systemd-start.sh[6790]: [httpd] 127.0.0.1 - pi [30/Jul/2022:12:46:20 +0200] "GET /query?db=iobroker&epoch=s&p=%5BREDACTED%5D&pretty=true&q=SELECT+max%28value%29+FROM+%22javascript.0.Wetterstation.Aussentemperatur%22+WHERE+time+%3C%3D+now%28%29+and+time+%3E%3D+%272022-07-30+00%3A00%3A00%27&u=pi HTTP/1.1" 200 525 "-" "curl/7.74.0" d93480e8-0ff4-11ed-8003-dca6327ecb3b 1437
Jul 30 12:46:21 raspberrypi2 wetterstation.sh[6945]: (standard_in) 1: syntax error
Jul 30 12:46:21 raspberrypi2 wetterstation.sh[6971]: (standard_in) 1: syntax error
Jul 30 12:46:22 raspberrypi2 wetterstation.sh[6998]: (standard_in) 1: syntax error
Jul 30 12:46:23 raspberrypi2 wetterstation.sh[7024]: (standard_in) 1: syntax error
Jul 30 12:46:23 raspberrypi2 wetterstation.sh[7050]: (standard_in) 1: syntax error
Jul 30 12:46:24 raspberrypi2 wetterstation.sh[7078]: (standard_in) 1: syntax error
Jul 30 12:46:25 raspberrypi2 wetterstation.sh[7104]: (standard_in) 1: syntax error
Jul 30 12:46:25 raspberrypi2 wetterstation.sh[7130]: (standard_in) 1: syntax error
Jul 30 12:46:26 raspberrypi2 wetterstation.sh[7157]: (standard_in) 1: syntax error
Jul 30 12:46:26 raspberrypi2 wetterstation.sh[7185]: (standard_in) 1: syntax error
Jul 30 12:46:27 raspberrypi2 wetterstation.sh[7211]: (standard_in) 1: syntax error
Jul 30 12:46:27 raspberrypi2 systemd[1]: Stopping Service für ioBroker Wetterstation...
Jul 30 12:46:27 raspberrypi2 systemd[1]: wetterstation.service: Succeeded.
Jul 30 12:46:27 raspberrypi2 systemd[1]: Stopped Service für ioBroker Wetterstation.
Jul 30 12:46:27 raspberrypi2 systemd[1]: wetterstation.service: Consumed 3.240s CPU time.
Viele Grüße
Björn
@björn-günther said in [Linux Shell-Skript] WLAN-Wetterstation:
Kaum nimmt man die richtige Api, schon geht es.
Allerdings offenbar nur im debug-Modus.
Starte ich das Script als Service läuft folgendes in /var/log/syslog:
Jul 29 13:58:43 raspberrypi2 systemd[1]: Started Service für ioBroker Wetterstation.
Jul 29 13:58:43 raspberrypi2 wetterstation.sh[7220]: Connection to 127.0.0.1 8087 port [tcp/*] succeeded!
Jul 29 13:58:44 raspberrypi2 influxd[543]: ts=2022-07-29T11:58:44.004058Z lvl=info msg="Executing query" log_id=0bwJcch0000 service=query query="SELECT min(value) FROM iobroker.autogen.\"javascript.0.Wetterstation.Aussentemperatur\" WHERE time <= now() AND time >= '2022-07-29 00:00:00'"
Jul 29 13:58:44 raspberrypi2 influxd[543]: [httpd] 192.168.0.49 - - [29/Jul/2022:13:58:44 +0200] "GET /query?db=iobroker&epoch=s&p=&pretty=true&q=SELECT+min%28value%29+FROM+%22javascript.0.Wetterstation.Aussentemperatur%22+WHERE+time+%3C%3D+now%28%29+and+time+%3E%3D+%272022-07-29+00%3A00%3A00%27&u= HTTP/1.1" 200 77 "-" "curl/7.74.0" cb7d7d39-0f35-11ed-80b1-000000000000 909
Jul 29 13:58:44 raspberrypi2 influxd[543]: ts=2022-07-29T11:58:44.033079Z lvl=info msg="Executing query" log_id=0bwJcch0000 service=query query="SELECT max(value) FROM iobroker.autogen.\"javascript.0.Wetterstation.Aussentemperatur\" WHERE time <= now() AND time >= '2022-07-29 00:00:00'"
Jul 29 13:58:44 raspberrypi2 influxd[543]: [httpd] 192.168.0.49 - - [29/Jul/2022:13:58:44 +0200] "GET /query?db=iobroker&epoch=s&p=&pretty=true&q=SELECT+max%28value%29+FROM+%22javascript.0.Wetterstation.Aussentemperatur%22+WHERE+time+%3C%3D+now%28%29+and+time+%3E%3D+%272022-07-29+00%3A00%3A00%27&u= HTTP/1.1" 200 77 "-" "curl/7.74.0" cb81eb49-0f35-11ed-80b2-000000000000 940
Jul 29 13:58:44 raspberrypi2 wetterstation.sh[7277]: (standard_in) 1: syntax error
Jul 29 13:58:44 raspberrypi2 wetterstation.sh[7305]: (standard_in) 1: syntax error
Jul 29 13:58:45 raspberrypi2 wetterstation.sh[7331]: (standard_in) 1: syntax error
Jul 29 13:58:45 raspberrypi2 systemd[1]: Stopping Service für ioBroker Wetterstation...
Jul 29 13:58:45 raspberrypi2 systemd[1]: wetterstation.service: Succeeded.
Jul 29 13:58:45 raspberrypi2 systemd[1]: Stopped Service für ioBroker Wetterstation.
Jul 29 13:58:45 raspberrypi2 systemd[1]: wetterstation.service: Consumed 1.190s CPU time.
Starte ich es ohne debug auf der Konsole ist alles prima, das Problem scheint nur im Service-Modus aufzutreten.
@SBorg Könnte ich noch etwas anderes übersehen haben?
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Hast du ev. Simple-API (die _muss sein) mit Rest-API (die ist optional) verwechselt?
Arghhhhhhhhhh.
Ja, vielen Dank fürs Augen öffnen.
Kaum nimmt man die richtige Api, schon geht es.
@sborg said in [Linux Shell-Skript] WLAN-Wetterstation:
Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.16.0
Vielen Dank.
Jetzt hatte ich gedacht, mein Problem löst sich mit dem Update, war aber nicht.
Ich habe eine Bresser 7 in 1 WLAN-Station deren Wunderground-Verbindung auf rtupdate.wunderground.com ich per Pihole auf meinen iobroker-raspi mit der IP 192.168.0.49 umleite.
Ein sudo nc -l -p 80 auf dem raspi bringt erwartungsgemäß
GET /weatherstation/updateweatherstation.php?ID=<meineStation>&PASSWORD=<meinPW>&action=updateraww&realtime=1&rtfreq=5&dateutc=now&baromin=30.06&tempf=77.5&dewptf=47.6&humidity=35&windspeedmph=1.5&windgustmph=1.5&winddir=0&rainin=0.0&dailyrainin=0.0&solarradiation=42.50&UV=0.0&indoortempf=74.8&indoorhumidity=55 HTTP/1.1
Host: rtupdate.wunderground.com
Connection: keep-alive
Ein sudo ./wetterstation.sh --debug zeigt, dass das Script grundsätzlich funktioniert, auch die Weiterleitung an wunderground, denn dort werden die Daten aktualisiert, wunderground gibt "success" zurück.
Leider wirft es aber einige Fehlermeldungen, die ich selbst nicht nachvollziehen kann:
Connection to 127.0.0.1 8093 port [tcp/*] succeeded!
parse error: Invalid numeric literal at line 1, column 10
(standard_in) 1: syntax error
(standard_in) 1: syntax error
/home/pi/wetterstation/wetterstation.sub: line 786: [: : integer expression expected
(standard_in) 1: syntax error
(standard_in) 2: syntax error
(standard_in) 2: syntax error
(standard_in) 1: syntax error
(standard_in) 2: syntax error
(standard_in) 3: syntax error
(standard_in) 1: syntax error
(standard_in) 2: syntax error
(standard_in) 2: syntax error
(standard_in) 3: syntax error
(standard_in) 4: syntax error
(standard_in) 5: syntax error
(standard_in) 5: syntax error
(standard_in) 5: syntax error
(standard_in) 1: syntax error
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /setBulk</pre>
</body>
</html>
Messwerteblock: 23.77 25.55 9.38 25.55 55 36 0 0 324 1017.95 0 0 0 44.87 0.0 28.07.2022%2020:13:29
Auch der Datenstring für iobroker ist dabei befüllt. In iobroker kommen aber leider keine Daten an.
Datenstring für ioBroker:
javascript.0.Wetterstation.Innentemperatur=23.77&javascript.0.Wetterstation.Aussentemperatur=25.55&javascript.0.Wetterstation.Taupunkt=9.38&javascript.0.Wetterstation.Gefuehlte_Temperatur=25.55&javascript.0.Wetterstation.Innenfeuchtigkeit=55&javascript.0.Wetterstation.Aussenfeuchtigkeit=36&javascript.0.Wetterstation.Wind=0&javascript.0.Wetterstation.Wind_max=0&javascript.0.Wetterstation.Windrichtung=324&javascript.0.Wetterstation.Druck_relativ=1017.95&javascript.0.Wetterstation.Regenrate=0&javascript.0.Wetterstation.Regen_Tag=0&javascript.0.Wetterstation.Regen_Jahr=0&javascript.0.Wetterstation.Sonnenstrahlung=44.87&javascript.0.Wetterstation.UV_Index=0.0&javascript.0.Wetterstation.Zeitstempel=28.07.2022%2020:13:29&javascript.0.Wetterstation.Regenstatus=&javascript.0.Wetterstation.UV_Belastung=keine&javascript.0.Wetterstation.Windrichtung_Text=NW&javascript.0.Wetterstation.Info.Hitzeindex=
DATA von Wetterstation:
GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=74.8&indoorhumidity=55 HTTP/1.1
Debug VAR:
Installationsverzeichnis: /home/pi/wetterstation
IPP: 127.0.0.1:8093 WS_PORT: 80 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation
WEB: HTTP WS_PROT: DNS DP35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
WH31: 0
Script-Version: V2.16.0 Config-Version: V2.16.0 Sub-Version: V2.16.0
Ohne Debug läuft die Konsole mit
(standard_in) 1: syntax error
voll. Ich vermute der gestartete Service agiert ähnlich.
Während der ganzen Zeit, wird wunderground aktualisiert, in iobroker blinken immer mal die Werte grün auf, werden aber nicht aktualisiert.
Wo könnte ich ansetzen?
Vielen Dank und viele Grüße
Björn
@liv-in-sky said in IP Devices im Netzwerk - HTML Tabelle vis, Iqontrol:
@björn-günther überprüfe aber mal, ob er alles gefunden hat - das root war pflicht bei mir, sonst fehlten geräte
vergleiche die tabelle , die du jetzt erzeugst mit dem output direkt auf der console - sind das gleich viele ?
Ich schulde Dir noch eine Antwort, kam aber die ganze Zeit nicht dazu: Das funktionierte dann irgendwie. Ich glaube nach einem Neustart.
@dominik-f Danke für den Tipp. Ich müsste aber alles in 1%-Schritten von 1 bis 100 eingeben. Ich weiss ja nie, auf welchen Wert am Wanddimmer gestellt wird.
@dominik-f
Ich habe das Lichtüberwachungsskript bei mir 3x im Einsatz, für 3 Überwachungskreise.
Jetzt ist mir aufgefallen, dass bei einem Dimmer eine Fehlermeldung im Log erscheint, weil das Skript mit dem LEVEL nichts anzufangen weiß.
Kannst Du (oder jemand anderes ) mir einen Tip geben, ab welcher Zeile ich für den Dimmer was erweitern müsste?
Vielen Dank im Voraus
Björn
@liv-in-sky
Ich habe keine Ahnung wieso, jetzt habe ich im Blockly nochmal das sudo -u root rausgenommen, dann kam nach wenigen Sekunden ein Ergebnis. Das gleiche habe ich dann in Deinem Script versucht, ebenfalls nach wenigen Sekunden ein Ergebnis.
Nochmal vielen Dank für Deine Mühe, jetzt geht es.