WeatherScreen Pro, Raspberry Pi, Wswin

Fragen, Anregungen zur PC-Wetterstations-Software

Moderatoren: Werner, Tex, weneu

Antworten
harha
Beiträge: 13
Registriert: 19 Mär 2021 16:48

WeatherScreen Pro, Raspberry Pi, Wswin

Beitrag von harha »

Ich habe hier mal eine Schritt für Schritt Anleitung für die Anbindung einer Wetterstation „dnt WiFi-Wetterstation WeatherScreen Pro“ an die Software Wswin von Werner Krenn mittels eines Raspberry-Kleinrechners verfasst. Bisher habe ich eine Übertragung per MicroSD-Karte und x-csv-Import realisiert. Das ist aber nicht so optimal.
Genutzt wird dabei auch eine Scriptsammlung von olicat aus dem Wetterstationsforum. Die Anleitung ist vor allem für Anwender gedacht, die sich bisher an ein solches Projekt nicht heran getraut haben.

Ich fange mal mit dem Fazit an: Die Aufgabe ist lösbar, auch für Nicht-IT-Profis. Allerdings sollte man auch Geduld haben. Auf einigen Raspberry-Seiten wird von Installations- und Einrichtungszeiten von 10 Minuten gesprochen. Das gilt für Anfänger aber nicht. Das Ergebnis belohnt dann aber für die Bemühungen.

Die Daten der Wetterstation werden zum Raspberry geschickt, dort mit einem php-Script aufbereitet in eine Wswin-kompatible csv-Datei. Die wird per Batch-Datei zu einem Windows10-Rechner geholt auf dem auch Wswin läuft. Wswin holt dann die Daten per Dateiüberwachung ab und stellt sie in der Software zur weiteren Nutzung bereit.

Was nutze ich und was kostet das etwa:
Raspberry Pi 4 B, 8 GB RAM 76,70€
Gehäuse für Raspberry Pi 4,70€
Netzteil für Raspberry Pi 8,35€
Kühlkörpersatz für Raspberry Pi 2,20€
LAN-Kabel zur Verbindung mit dem Router 4,00€
MicroSD-Karte 32GB 5,99€

Wetterstation „dnt WiFi-Wetterstation WeatherScreen Pro“
Datei „Ecowitt-WSWin.zip“ von der Seite „https://www.wetterstationsforum.info/vi ... 3658#p3658

Los geht’s:

Installation Raspberry Pi 4 8GB

-download „Raspberry Pi Imager“ (Vers.1.6.1) und installieren (https://www.raspberrypi.org/software/)
-Start „Raspberry Pi Imager“
-Auswahl Betriebssystem (Raspberry PI OS (32-BIT))
-Auswahl SD-Karte (sehr genau schauen!)
-Schreiben (dauert etwa 2 Minuten)
Alle Daten auf der MicroSD-Karte werden gelöscht.
-SD-Karte im Explorer öffnen
und im Stammverzeichnis eine Datei „ssh“ ohne Extension anlegen
-SD-Karte aus dem PC entnehmen und in den Raspberry Pi stecken
-Raspberry Pi mit LAN-Kabel mit dem Router verbinden
-den Raspberry nun mit Srom versorgen,
der Paspberry startet
-im Router gibt es unter Netzwerk einen neuen Eintrag (Gerät) „raspberrypi“
-in den Eigenschaften dieses Geräts einen Haken setzen bei „Diesem Netzwerkgerät immer die gleiche Ipv4-Adresse zuweisen“ und IP notieren.
-auf dem PC ein Powershell-Fenster öffnen (im Start-Fenster „Powershell“ eingeben)
-die ssh-Verbindung herstellen:
im Powershell-Fenster „ssh pi@IP“eingeben
-es kommt die Antwort: „pi@IP's password:“
-Anfangspasswort ist „raspberry“, eingeben.
Jetzt ist der Zugriff auf den Raspberry möglich. Über diese Fenster werden die folgenden Konfigurationen durchgeführt.

-Grundkonfiguration: Mit „sudo raspi-config“
Mit Hilfe der Pfeiltasten Punkte auswählen und mit der Tab-Taste oder der Enter- Taste bestätigen
Spracheinstellung unter „5 Localisation Options“. Hier „L1 Locale“ auswählen. Aus der Liste dann „de_DE.UTF-8“ und eventuell „de_DE ISO-8859-1“ mittels der Leertaste auswählen und mit „ok“ abschließen. Im folgenden Fenster „de_DE.UTF-8“ als Standard-Standorteinstellung für die Systemumgebung auswählen und wieder mit „ok“ bestätigen.
Mit „Finish“ kann „raspi-config“ jetzt erstmal verlassen werden.

-Passwort ändern.
Es ist wichtig, das Passwort des Benutzers zu ändern, da das Standardpasswort öffentlich dokumentiert ist. Laut Texten im Netz sollte die Änderung auch über die „raspi-config“ möglich sein. Ich habe das aber nicht gefunden.
Also über die Befehlszeile: Verwendet den Befehl „passwd“. Hierbei unbedingt vor dem Befehl ein Leerzeichen eingeben, damit das neue Passwort nicht in einer History-Datei gespeichert wird.

-An dieser Stelle noch der Hinweis auf einige nützliche Befehle (viele weitere sind im Netz zu finden):
sudo - gibt Administratorrechte (ohne sind viele Befehle nicht ausführbar)
cd „Pfad“ - wechselt in den angegebenen Pfad
cd .. - wechselt ins nächsthöhere Verzeichnis
cd / - wechselt ins oberste Verzeichnis
dir - listet die Verzeichnisse
ls -als - listet Verzeichnisse und Dateien mit vielen Infos
pwd - zeigt das aktuelle Verzeichnis an
mkdir - Anlegen eines Ordners (Verzeichnisses)
chmod - ändert Zugriffsrechte auf Dateien und Ordner
chown - Eigentümer und Gruppe von Datei oder Verzeichnis ändern

-Webserver installieren:
Aktualisiere zunächst alle Pakete (Software):
„sudo apt update“
„sudo apt full-upgrade“
Jetzt kann Apache (Webserver) installiert werden:
„sudo apt install apache2 -y“

Um die Funktion zu überprüfen kannst du die IP des Raspberry in einem Browser im selben Netz eingeben. Es sollte eine Infoseite des Servers angezeigt werden.

Nun noch PHP installieren:
„sudo apt-get install php -y“
Zum Test in das Verzeichnis /var/www/html/ wechseln
„cd /var/www/html/“
hier eine Datei phpinfo.php erstellen mit einem Editor (hier nano-Editor)
„sudo nano phpinfo.php“
Im Fenster gib dann folgendes ein
<?php
phpinfo();
?>
Speichern mit Strg+O und dann schließen des Fensters Strg+X eventuell noch Return
Zum Test jetzt im Browser folgendes eingeben
„IP des Raspberry/phpinfo.php“
Es sollte eine Infoseite erscheinen.
Zum Abschluss sollte man den Raspberry neu starten
„sudo reboot“
Damit ist die grundlegende Einrichtung des Raspberry Pi abgeschlossen.

Jetzt müssen die notwendigen Dateien auf den Raspberry gebracht werden.
Dazu im Verzeichnis /var/www/html/ einen Ordner „wswin“ erzeugen
„sudo mkdir wswin“
In dieses Verzeichnis muss die Datei „weatherdata.php“ kopiert werden. Für das Kopieren habe ich den Befehl „scp“ auf dem PC genutzt. Möglicherweise muss dieser noch ergänzt werden:
Unter Windows 10 öffne dazu in den Einstellungen das Dialogblatt „Apps & Features“ klicke auf den unscheinbaren Link „Optionale Features verwalten“ und dann auf „Feature hinzufügen“, wähle den Eintrag „OpenSSH-Client“ aus und installiere das Programm.

Mit dem Kopieren hatte ich da so meine Probleme – alles hing an den Zugriffsrechten. Daher habe ich für den Ordner wswin volle Zugriffsrechte vergeben
„sudo chmod 777 -c -R /var/www/html/wswin“
Jetzt kannst du auf dem PC eine Eingabeaufforderung öffnen „cmd.exe“ und dort den folgenden Kopierbefehl eingeben
„scp Pfad\weatherdata.php pi@IP des Rasp:/var/www/html/wswin“
Du musst dann das Passwort von pi eingeben.
Auf dem Raspberry solltest du nun mit dem Befehl
„ls /var/www/html/wswin“
die Datei weatherdata.php sehen.

Konfiguration der Wetterstation per WS View-App
(direkt an der Wetterstation kann man nicht alle Daten eintragen) (übernommen von „olicat““wetterstationsforum.info“)
An der Wetterstation muss das WLAN aktiviert sein, d.h. SSID und Passwort müssen eingegeben sein. Auf dem Display leuchtet die WLAN-Anzeige grün.
Nach dem Start der App WS View (Android/iOS) geht man links oben auf Menu und dann weiter auf Device List. Dort werden sämtliche erkannte Wetterstationen zur Auswahl gestellt.
Dort wählt man durch Antippen die gewünschte Wetterstation aus.
Jetzt steht man bereits im Konfigurationsmenue fuer die Wetterdienste.
Oben rechts mit Next klickt man sich so lange durch (viermal), bis Customized als Überschrift ausgegeben wird.
Hier wird das benutzerdefinierte Ziel für den Versand der Wetterdaten konfiguriert:
Enable
Typ: Ecowitt
Server: die IP-Adresse des Raspberry, auf dem das PHP-Script abgelegt ist - Achtung! Ohne http:// und ohne weitere Pfadangabe eintragen
Path: das Verzeichnis in dem auf diesem Server die weatherdata.php liegt sowie der Name der php-Datei selbst -
in meinem Beispiel /wswin/weatherdata.php
Port: 80
Upload Interval: beliebig - alle x Sekunden sendet die Station die Daten an das Ziel
Mit einem Klick auf Save wird diese Konfiguration in der Wetterstation gespeichert.

Im eingetragenen Intervall sendet nun die Station die Daten im Ecowitt-Format an das PHP-Script auf der angegebenen Adresse.
Nach einigen Minuten wird im wswin-Verzeichnis eine Datei error.log erzeugt. Öffne diese mit
„sudo nano error.log“
Kopiere bzw. notiere den Key der hier als „...is not allowed here“ gelistet wird.
Öffne mit dem Befehl
„sudo nano weatherdata.php“ die Datei weatherdata.php.
Gehe zur Variablen $EW_allowed und trage dort den Key ein. Mit Strg+O Datei speichern und mit Strg+x Editor verlassen.
Jetzt sollte im Verzeichnis wswin eine Datei Key-wswin.csv generiert werden.
Diese muss nun durch die Batchdatei auf dem PC abgeholt werden.

Auf dem Windows-PC
Folgende Anpassungen an der Datei wget-data.bat ist notwendig
„set INFILE=http://IP des Rasp/wswin/Key-wswin.csv“
Ich habe eine Verknüpfung für diese Datei angelegt und da bei Eigenschften unter Ziel vor den Pfad zur wget-data.bat diesen Eintrag ergänzt:
„C:\Windows\System32\cmd.exe /c“
Noch eine Ergänzung ist notwendig. Die Anwendung Wget.exe ist unter Windows10 standardmäßig nicht installiert. Ein Download ist z.B. hier möglich: https://www.heise.de/download/product/wget-3073. Die Datei muss in das Verzeichnis C:\Windows\System32 kopiert werden.
Klickt man jetzt die Verknüpfung von wget-data.bat doppelt an sollte im wswin-Verzeichnis ein Ordner IMPORT erzeugt werden. In diesem liegt dann die Datei WSWIN.CSV.
Diese kann nun von WSWIN eingelesen werden.

Anpassungen im WSWin zum automatischen Einlesen vornehmen (übernommen von „olicat““wetterstationsforum.info“)
Wetterstation/Interface/Dateiüberwachung:
Datei wählen - hier muss die Datei wswin.csv aim Verzeichnis wswin/IMPORT ausgewählen. Eventuell wswin neu starten.
vorher Daten konvertieren - aktivieren/Haken reinsetzen
Ueberwachung aktiv - aktivieren
10 Sekunden - eintragen

Datei/Optionen/Einstellungen
Aufzeichnung bei Start automatisch aktivieren - aktivieren
dabei Daten automatisch importieren/konvertieren - aktivieren

Datei/Optionen/Warnung/Pause:
bei Pause: 5m aktivieren - damit erfolgt nur alle 5 Minuten der Abruf der CSV-Datei

Nach einem Beenden und erneuten Start von WSWin werden die Dateien aus dem Verzeichnis wswin/IMPORT automatisch eingelesen und dann gelöscht.

Vorher muss man natürlich die Datei bzw. deren Verknüpfung wget-data.bat aufgerufen haben. Auch das ließe sich automatisieren – ich bin in diesem Fall für einen manuellen Aufruf.

Das wars schon. Korrekturen und Ergänzungen usw. sind gern gesehen.

Als nächstes werde ich das FOSHKplugin von olicat mal testen. Das bietet noch einige Möglichkeiten mehr.
Benutzeravatar
Werner
Site Admin
Beiträge: 5674
Registriert: 04 Dez 2001 01:00
Wohnort: Lackenhäuser
Danksagung erhalten: 58 mal
Kontaktdaten:

Re: WeatherScreen Pro, Raspberry Pi, Wswin

Beitrag von Werner »

@harba,

vielen Dank für Deine ausführliche Anleitung.

Drei Anmerkungen dazu von mir
1) ein Raspi 4 mit auch noch 8GB :? ist mehr als überdimensioniert
vollkommen aussreichend ist auch ein RasPi3 B oder RasPi 3B+ (hat 2GB)
Preis ca. dafür 38 Euro
2) an MicroSD Karte würde ich nicht sparen!
ich würde eine SLC MicroSD WesterDigital SDSDQED-032G-XI (z.b. www.mouser.de)
verwenden, kostet aber auch 57,80 Euro.
Die 16GB Version davon SDSDQED-016G-XI kostet 28,87 Euro und sollte auch reichen.
Warum so eine teure MicroSD Card?
Die biligen MicroSD Cards überleben im Dauereinsatz meisten kein Jahr!
3) Ich würde ausserdem zusätzlich einen Minilüfter verwenden - Satz mit Kühlkörper ca. 10 Euro

Zum Script von Oliver: ich habe dieses Scipt angepasst, dass es mit allen älteren Froggit-Stationen auch läuft, muss dann zwingend updateweatherstation.php heissen und muss
im Verzeichnis weatherstation liegen.
zu Downloaden im Benutzerbereich unter: /user/ecowitt_froggit_davislive_airlink
harha
Beiträge: 13
Registriert: 19 Mär 2021 16:48

Re: WeatherScreen Pro, Raspberry Pi, Wswin

Beitrag von harha »

@Werner
Danke für Deine Anmerkungen, für Dein Programm und deren Weiterentwicklung. Ja, manchmal ist weniger mehr. Aber vielleicht mache ich noch andere Projekte auf dem Raspi oder ich hol mir doch noch einen Raspi3 fürs Wetter. Macht jedenfalls Spaß damit zu arbeiten.
Gruß
Hartmut
Antworten