NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
jetzt hat es funktioniert. Keine Ahnung warum.
dietpi@DietPi:/home/iobroker$ ./ws_updater.sh --patch ┌────────────────────────┐ │ │ │ WS-Updater V2.11.0 │ │ │ └────────────────────────┘ Soll die wetterstation.conf nun auf eine neue Version gepatcht werden? [J/N]: J Lege Sicherungskopie der wetterstation.conf an... Patche wetterstation.conf auf V2.11.0 ... Fertig... Parameter für Kommunikationsfehler ggf. ändern. Per Default verbleibt er im Zustand 'true' bei einem Fehler.
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
./ws-updater.sh --patch
Fehler gefunden!!
Falsch ist: .
./ws-updater.sh --patch
Richtig ist:./ws_updater.sh --patch
du hast dich verschrieben
-
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ups, ist ja blöd. Hoffentlich brauchen die nicht den halben Tag
nope, um 14:00 war strom wieder da, aber dann hab ich eine stunde gebraucht damit alles wieder funktioniert hat...
modem vom provider hat sich natürlich nicht selbstständig wieder richtig angemeldet...
naja, anruf bei der hotline hats dann in 5min erledigt... reboot machts wieder gut. mein hardreboot hats nicht gebracht...
alles wieder jut! -
@da_woody sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@nashra sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Ups, ist ja blöd. Hoffentlich brauchen die nicht den halben Tag
nope, um 14:00 war strom wieder da, aber dann hab ich eine stunde gebraucht damit alles wieder funktioniert hat...
modem vom provider hat sich natürlich nicht selbstständig wieder richtig angemeldet...
naja, anruf bei der hotline hats dann in 5min erledigt... reboot machts wieder gut. mein hardreboot hats nicht gebracht...
alles wieder jut! -
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
du hast dich verschrieben
Nö, nur in der Jahreszeit vertan. Sollte eigentlich sein "Wer findet den Fehler..."
Normalerweise bekomme ich die Fehler immer durch ein C&P. Diesmal tippe ich + prompt ist es wieder falsch...
Danke, ist oben korrigiert. -
@sborg
Hallo,wollte mir gerade das "Update" aufspielen, habe mir aber irgendwie aus eigener Dummheit alles zerballert
Nun habe ich erstmal auf dem Pi mittels Befehl "rm" alles wieder gelöscht.
Wollte mir dann wieder die 2.10.1 (war vorher drauf und lief) einspielen, aber beim Kopieren der 3 Dateien (wetterstation.sh, wetterstation.sub und wetterstation.conf) per WinSCP sagt der auf einmal für alle 3 Dateien:
Wie kann ich das beheben?
-
Das alte Rechtespiel vermute ich. Darf der user, als der du da unterwegs bist dem iobroker in dessen /home-Verzeichnis schreiben?
-
Ja, da hast Du wohl recht. Mein User ist im Moment (standardmäßig) der User "pi" und der hat eine root-Rechte (nehme ich mal an).
Habe gerade gelesen, das man deshalb und wenn man WinSCP "anständig" nutzen will, vorher auf dem Raspi den "root-user" aktivieren soll mit:
sudo passwd root
Dann soll das mit dem WinSCP auch laufen. Werde das gleich mal ausprobieren, oder was meinst Du dazu?
-
Nein, der root user wird NICHT aktiviert.
Ich kenn jetzt WinSCP nicht, aber da wird man ja wohl user und passwort für Dateioperationen angeben können. -
Ja, sehe ich auch so. Root zu aktivieren gefällt mir gar nicht.
Ich will ja eigentlich nur die 3 Dateien von meinem Windows-Rechner auf den Raspi kopieren, daher WinSCP.
Welche alternativen Methoden gäbe es denn noch die Du mir empfehlen könntest (bin noch nicht so fit im Linux)?
-
@qqolli
Ich kopiere da gar nix von einem Windows-Rechner aus irgendwohin.Ich würde mir ein Verzeichnis anlegen:
sudo -u iobroker mkdir /home/iobroker/wetterstation
Dann in das neue Verzeichnis stellen:
cd /home/iobroker/wetterstation
Und dann per
sudo -u iobroker wget https://github.com/SBorg2014/WLAN-Wetterstation/releases/download/V2.10.1/WLAN-Wetterstation.zip sudo -u iobroker unzip WLAN-Wetterstation.zip sudo -u iobroker chmod 744 *
alles runterladen und ausführbar machen. Fertig.
Sieht dann so aus:
echad@chet:/home/iobroker/wetterstation $ ls -la total 168 drwxr-xr-x 2 iobroker iobroker 4096 Dec 16 20:49 . drwxr-xr-x 10 iobroker iobroker 4096 Dec 16 20:48 .. -rwxr--r-- 1 iobroker iobroker 5706 Nov 3 09:48 wetterstation.conf -rwxr--r-- 1 iobroker iobroker 20079 Nov 3 09:40 wetterstation.js -rwxr--r-- 1 iobroker iobroker 15285 Nov 29 10:20 wetterstation.sh -rwxr--r-- 1 iobroker iobroker 65767 Nov 29 10:19 wetterstation.sub -rwxr--r-- 1 iobroker iobroker 29299 Dec 7 10:18 WLAN-Wetterstation.zip -rwxr--r-- 1 iobroker iobroker 16368 Nov 29 10:19 ws_updater.sh
Ich hab jetzt aber nicht geschaut, ob es noch weitere Hinweise des skript-Erstellers gibt. Nur so als grundsätzlicher Hint, wie man unter Linux sowas machen kann. Ganz ohne Desktop oder gar Kopiererei von einem Windows-System per WinSCP oder sowas unschönem.
-
@qqolli sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Habe gerade gelesen, das man deshalb und wenn man WinSCP "anständig" nutzen will, vorher auf dem Raspi den "root-user" aktivieren soll
Das ist dann wiedermal eine 'Anleitung' die von kompletter Ahnungslosigkeit zeugt.
Wenn eine Anleitung enthält: "Zuerst beschaffen wir uns mal vollen Zugriff, indem wir da mit root-Rechten über das System rutschen", dann vergiss den Krampf sofort. -
Das hat, wie von Dir gewohnt, super funktioniert! Station lebt wieder
Noch eine kurze Frage. Kann man mit dem wget-Befehl auch direkt eine "Adresse" auf z. B. dem Windows-PC angeben, z. B. "c:\User\Test\testdatei.txt" anstatt eine Webadresse?
-
Wenn es denn erforderlich wäre...
Ich würde das dann mit scp oder pscp oder ähnlichem machen.
Zum Beispiel so:pscp -pw password c:\User\Test\testdatei.txt user@192.168.33.10:/etc/var/test/test.txt
pscp kommt aus der puTTY-Ecke. Keine Ahnung, ob das mit einer Grundinstallation von puTTY mitinstalliert wird.
-
Da ich puTTY habe, ist es (wie bereits von Dir vermutet) dabei:
pscp /? PuTTY Secure Copy client Release 0.73 Usage: pscp [options] [user@]host:source target pscp [options] source [source...] [user@]host:target pscp [options] -ls [user@]host:filespec Options: -V print version information and exit -pgpfp print PGP key fingerprints and exit -p preserve file attributes -q quiet, don't show statistics -r copy directories recursively -v show verbose messages -load sessname Load settings from saved session -P port connect to specified port -l user connect with specified username -pw passw login with specified password -1 -2 force use of particular SSH protocol version -4 -6 force use of IPv4 or IPv6 -C enable compression -i key private key file for user authentication -noagent disable use of Pageant -agent enable use of Pageant -hostkey aa:bb:cc:... manually specify a host key (may be repeated) -batch disable all interactive prompts -no-sanitise-stderr don't strip control chars from standard error -proxycmd command use 'command' as local proxy -unsafe allow server-side wildcards (DANGEROUS) -sftp force use of SFTP protocol -scp force use of SCP protocol -sshlog file -sshrawlog file log protocol details to a file
-
Mit der Windows PowerShell geht es ähnlich:
PS C:\Users\212396433\Documents\Vodafone_speedtests> scp '.\2021-05-11 20_28_53-Echarts [ioBroker].jpg' echad@chet.fritz.box:/home/echad/testdatei.jpg
-
@SBorg Ich muss hier auch noch mal nachfragen: Dein Script läuft bei mir im Docker-Container. Ich habs heute mal geschafft, das Script im debug laufen zu lassen. Hier viel mir folgendes auf:
WLAN-Wetterstation V2.11.0 - (c)2019-2021 by SBorg
Config-Version: V2.11.0
Sub-Version : V2.11.0'bc' installiert: [✓]
'jq' installiert: [✓]/opt/weather/wetterstation.sub: line 752: sudo: command not found
/opt/weather/wetterstation.sub: line 756: sudo: command not found
┌────────────────────────────────────────────────────────────┐
│ │
│ "netcat" ist nicht in der benötigten Version installiert! │
│ │
│ Soll er nun installiert werden? [J/N]: j │
│ │
└────────────────────────────────────────────────────────────┘/opt/weather/wetterstation.sub: line 772: sudo: command not found.
In meinem Dockerfile ist aber explizit die 'netcat-openbsd' installiert.
Weiterhin fiel mir auf, dass der Datenstring seltsam aufhört:
Datenstring für ioBroker: 0_userdata.0.Wetterstation.Innentemperatur=19.11&0_userdata.0.Wetterstation.Aussen...<gekürzt>.....Wetterstation.Windrichtung_Text=SSW&0_userdata.0.Wetterstation.Info.Hitzeindex=
Hast du dazu eine Meinung - oder zwei? -
@rene55 Fangen wir mit dem einfachen an:
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Datenstring für ioBroker: 0_userdata.0.Wetterstation.Innentemperatur=19.11&0_userdata.0.Wetterstation.Aussen...<gekürzt>.....Wetterstation.Windrichtung_Text=SSW&0_userdata.0.Wetterstation.Info.Hitzeindex=
Ist normal und Ok. Aktuell gibt es keinen Wert für den Hitzeindex, deswegen endet der direkt mit einem "=". So wird ein ggf. vorher existierender Index gelöscht/resettet und gleichzeitig kein Wert geschrieben (hilfreich zB. beim Influx-Logging).
Kleiner Exkurs / Rechnung: 86400 sek. (pro Tag) / 30 sek. (Standardintervall der Datenübertragung) = 2.880 Daten-/Messwerte
Rechnen wir mal grob (IMHO noch viel mehr als die gleich angenommen 250 Tage) die Nächte, Winter, teils Herbst und Frühjahr und teilweise den Sommer ab, wären das 250 Tage x 2.880 = 720.000 Messwerte in denen nur drin steht "es liegt kein Hitzeindex vor".
Ähnliches gilt für den Regen. Es ergibt ja keinen Sinn dauernd zu melden "kein Regen".
Da ist es doch einfacher (weil es auch nicht andauernd regnet) keine Meldung = kein Regen und nur was melden wenn es dann auch tatsächlich regnet
Docker bin ich leider außen vor, aber um zB. die netcat-Alternative korrekt einzustellen werden "sudo" - Rechte benötigt. Das meckert er auch an:
/opt/weather/wetterstation.sub: line 752: sudo: command not found /opt/weather/wetterstation.sub: line 756: sudo: command not found
Er findet "sudo" nicht, wahrscheinlich für/im Container nicht aktiviert/verfügbar. Das ist aber nur die Überprüfung ob netcat korrekt ist. Wenn es das sowieso schon war bzw. installiert ist, macht es auch nichts wenn die Prüfung fehlschlägt, solange es die "openbsd"-Variante ist.
-
@SBorg Danke für die ausführlichen Erklärungen - das hilft mir weiter. Tatsächlich gibt es in dem Container kein sudo. Ich könnte ja mal spaßeshalber einen Container mit Sudo bauen und nochmal testen.
Beim Hitzeindex war ich mir nicht so sicher, da ich immer noch Probleme habe, den Simple-API mit User/Kennwort zu betreiben. Ich dachte, der Datenstring wäre unvollständig und deswegen kämen User und Passwort nicht mit rüber. Auch das werde ich dieser Tage nochmals testen. Auf jeden Fall, nochmals Danke für Script und Erklärung. -
@rene55 immer gerne
@rene55 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
...da ich immer noch Probleme habe, den Simple-API mit User/Kennwort zu betreiben
Habe ich auch offen gestanden nie probiert und der Aufruf ist nur lt. Doku umgesetzt. Muss ich mal Zeit dafür finden (ggf. ein Issue auf GitHub, dann vergesse ich es auch nicht )