WeatherScreen Pro, Raspberry Pi, WSWIN

Für Geräte von froggit
Antworten
harha
Offline
Beiträge: 16
Registriert: 07 Apr 2021, 11:56
Hat sich bedankt: 1 mal
Danksagung erhalten: 2 mal

WeatherScreen Pro, Raspberry Pi, WSWIN

#1

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 „viewtopic.php?p=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 Raspberry 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 fuür 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 Eigenschaften 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
LE-Wetter
Offline
Beiträge: 369
Registriert: 27 Nov 2020, 18:58
Wohnort: Leipzig
Hat sich bedankt: 22 mal
Danksagung erhalten: 28 mal
Kontaktdaten:

Re: WeatherScreen Pro, Raspberry Pi, WSWIN

#2

Beitrag von LE-Wetter »

Was für ein Mammut-Prozedere - aber wenn es funktioniert - Klasse - das hilft vielleicht doch einigen Usern, die sich an so eine Aufgabe heranwagen wollen - danke harha :thumbup:
Liebe Grüße von LE-Wetter

WS 888, Mete-On1 und WD4000 und
alte Barometer, Blitzortung, Radioaktivität
https://www.leipzig-wetter.de
www.regionalwetter-sa.de
www.wetternetz-sachsen.de
www.wetterhistorie-leipzig.de
Benutzeravatar
olicat
Offline
Beiträge: 383
Registriert: 07 Dez 2020, 19:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 5 mal
Danksagung erhalten: 96 mal
Kontaktdaten:

Re: WeatherScreen Pro, Raspberry Pi, WSWIN

#3

Beitrag von olicat »

Hallo Hartmut,

vielen Dank fuer das gelungene HowTo.

Ein paar Anmerkungen haette ich noch dazu.
Die Leistungsfaehigkeit eines Raspi 4 mit 8GB ist fuer diese Aufgabe absolut unnoetig. Das darf auch gern auf einem Raspi einer aelteren Generation oder mit weniger Speicher laufen. Vielleicht kann man da noch ein paar Euro sparen. Auch hinsichtlich der Stromkosten (immerhin soll das Ding 24/7 laufen) und des wohl beim 4er noetigen Luefters habe ich hier die 4. Generation bisher nicht in Betrieb.
Diverse Anbieter (Amazon, Reichelt, Pollin etc.) bieten fertige Bundles bestehend aus Raspi, Gehaeuse, SD-Karte, Netzteil etc. an. Auch hier laesst sich eventuell noch etwas Geld einsparen. Als Beispiel hier ein Set mit dem Raspi 3B+ fuer knapp ueber 50EUR.

Statt wget empfehle ich inzwischen eher, curl zu benutzen (auch wenn ich aus Gewohnheit meist selbst wget nutze).
Zumindest in meiner Windows 10-Installation ist curl.exe bereits Bestandteil der Windows-Installation und ist ohne Aufstaende von ueberall startbar, weil diese im Suchpfad eingetragen ist. Ein zusaetzliches wget (Downloaden, Installieren und ggf. Konfigurieren/Pfade anpassen) entfaellt somit. In meiner Script-Loesung ist auch eine Batchdatei zum Abruf der Daten via curl enthalten.

Das aufwendige Kopieren kann man sich sparen, wenn man auf der (ssh-)Konsole des Raspis die ZIP-Datei mit dem PHP-Script direkt laedt:

Code: Alles auswählen

curl https://www.wetterstationsforum.info/download/file.php?id=640 --output /var/www/html/wswin/Ecowitt-WSWin.zip
Anschliessend kann man dort dann auch gleich die zip-Datei auspacken:

Code: Alles auswählen

unzip /var/www/html/wswin/Ecowitt-WSWin.zip -d /var/www/html/wswin/
Wobei es ganz sicher kein Fehler ist, sich gleich mal mit der Infrastruktur fuer den Austausch zwischen Windows und Linux auszustatten. Insofern ist auch dies bitte nicht als Kritik am HowTo zu verstehen.

Als ssh-Programm nutze ich (wie viele andere auch) Putty.

Tatsaechlich ist die groesste Huerde beim Einstieg in die Linux-Welt die Rechteverwaltung. Auch und gerade im Webserver-Verzeichnis /var/www/html. Im Allgemeinen muessen alle Dateien, die per Browser aufrufbar sein sollen, dem Nutzer www-data der Gruppe www-data gehoeren und entsprechende Lese-Rechte besitzen. Ein

Code: Alles auswählen

chown -R www-data:www-data /var/www/html/
chmod -R ug+r /var/www/html/
sollte dies fuer alle dort enthaltenen Dateien sicherstellen.

Man koennte im Uebrigen tatsaechlich die Installation auf unter 10 Minuten druecken. Man muesste nur einfach ein fertiges Image erzeugen und zum Download anbieten. Der Ablauf waere dann bzgl. der Raspi-Installation tatsaechlich nur noch Image downloaden, auf SD-Karte schreiben, einstecken und anschalten.
Ich habe nur noch immer keine Zeit gefunden, so ein Image zu erzeugen.
:-#

Ansonsten:
Die Raspis sind eine wunderbare Geschichte mit extrem vielen Moeglichkeiten. Es ist absolut lohnenswert, anhand dieses durchaus ueberschaubaren Projekts einen ersten Einstieg zu versuchen. Es lohnt sich! Und Erfolgserlebnisse sind hier mit diesem HowTo sehr schnell zu erlangen.
Und man kann dabei nicht viel kaputt machen. Im schlimmsten Falle muss das Image erneut auf die SD-Karte geschrieben werden und der Apache und das PHP installiert werden. Das dauert beim zweiten Mal dann auch nur noch halb so lang!
;-)

Im Uebrigen habe ich jetzt hier durch meinen Beta-Test der Firmware fuer die Konsole noch zwei weitere Male ein CSV fuer WSWin mit dem Prograemmchen aus diesem Thread erzeugt. Insgesamt habe ich es nun also schon dreimal mit Erfolg genutzt. EWCSVmerge erstellt aus allen Dateien der SD-Karte EINE umfassende CSV-Datei, die ueber X-CSV in WSWin importiert werden kann. Fuer alle, die lieber die Daten ab und zu (und manuell) von der SD-Karte aus ins WSWin bringen wollen, statt sie ueber die hier im HowTo beschriebene Loesung quasi in Echtzeit und automatisch reinzubekommen, vielleicht eine Alternative.

Schoenen Abend, Oliver
harha
Offline
Beiträge: 16
Registriert: 07 Apr 2021, 11:56
Hat sich bedankt: 1 mal
Danksagung erhalten: 2 mal

Re: WeatherScreen Pro, Raspberry Pi, WSWIN

#4

Beitrag von harha »

@olicat
Hallo,
Danke für Deine ergänzenden Infos. Vielleicht nutze ich den Raspi4 noch für andere Projekte oder legen mir fürs Wetter noch einen Raspi3 zu. Hast schon recht - manchmal ist weniger mehr.
Es macht jedenfalls Spass mit den Teilen zu arbeiten und es gibt auch sehr viele Infos im Netz, falls man mal einen Befehl nicht zur Hand hat - passiert mir immer wieder, dann dauert es halt etwas länger.
An alle: Gibt es eigentlich eine Notfalllösung wenn der Server mal ausfällt? Ich habe ja in der Basisstation noch die MicroSD--Karte, da sind ja die Daten auf jeden Fall. Gibts noch andere Möglichkeiten?
Grüße
Hartmut
Antworten