Installation - SBorg2014/WLAN-Wetterstation GitHub Wiki
Die Installation bedarf zwar etwas Aufwand, stellt aber selbst für Ungeübte kein unüberwindbares Hindernis dar und sollte binnen kurzer Zeit erledigt sein.
Voraussetzung:
- ein Device auf dem Linux (welches ist nicht maßgeblich) läuft, auf dem später die Datenaufbereitung erfolgt. Im folgenden Linux-Client genannt
- ein PC zum einrichten (wir nehmen hier mal einen Rechner mit Windows)
- ein Netzwerk (Linux-Device -- Windows-PC -- WLAN-Wetterstation)
- zumindest temporär einen Internetzugang
- einen Terminal-Client zum verbinden Windows-PC <--> Linux-Device wie bspw. Putty* oä.
- der Einfachheit halber ein Datentransferprogramm wie bspw. WinSCP*
- eine WLAN fähige Wetterstation die ihre Daten im "Wunderground"- oder "Ecowitt"-Format sendet
* in der weiteren Anleitung gehen wir von diesen Programmen aus
Das Linux-Device kann z.B. der ioBroker-Server selbst sein (solange er unter Linux läuft), ein Raspberry PI, ein x-beliebiger Linux-Rechner usw. Wenn wir die Daten durchgängig haben möchten, muss er eben nur 24/7* laufen. Die Hardwareausstattung des Systems ist dabei nicht entscheidend. Es wird bei der Abarbeitung nur kurzfristig etwas CPU-Leistung und Arbeitsspeicher gefordert, diese sind aber minimal und nur extrem kurz. Keine Sorge, ein Uralt-PI ist dafür mehr als überdimensioniert, selbst wenn er gleichzeitig noch andere Dinge verrichten soll.
*24/7 = 24 Stunden am Tag, 7 Tage die Woche, oder einfach ausgedrückt immer/rund um die Uhr
Einstellungen in der WS VIEW App (bei Stationen ohne WS VIEW App: siehe DNS-Server)
Um die Daten der WLAN-Wetterstation einlesen zu können, sind in der App einige Einstellungen vorzunehmen. Dies kann entweder bei der Erstinstallation oder auch später erfolgen (In den App-Einstellungen unter "Device List"). Aktuelle Version der App erforderlich, damit "customized server" überhaupt erst erscheint (am Ende der möglichen Wetterdienste).
Bei Nutzung des "Wunderground"-Protokolles ("Ecowitt" ist hinsichtlich Funktionalität und Unterstützung von Zusatzsensoren zu bevorzugen):
- Customized Server: muss eingeschaltet sein (Enable)
- Protocol type same as: Wunderground auswählen
- Server IP/Hostname: IP-Adresse des Rechners ("Linux-Client") der die Daten verarbeiten soll (im Format xxx.xxx.xxx.xxx), dorthin werden die Daten gesendet. [Beispiel: 192.168.1.3]
- Path: /weatherstation/updateweatherstation.php?
- Station ID: Name der Wetterstation, (WS_ID) in der Datei wetterstation.conf [Beispiel: ZuHause]
- Station Key: Passwort der Wetterstation (derzeit nicht benutzt), Eingabe jedoch erforderlich
- Port: Die Portnummer ist innerhalb des zulässigen Bereichs beliebig wählbar, muss aber frei* sein. Wird später in der Datei wetterstation.conf benötigt (WS_PORT) [Beispiel: 1080]
- Upload interval: zeitliche Schrittweite der Datensendung, wird ebenso in der Datei wetterstation.conf benötigt (WS_POLL). Mindestwert sind 16 Sekunden. Einige Stationen senden im Mindestintervall von 30 Sekunden, obwohl lt. App der Mindestwert 16 Sekunden beträgt.
* Bei einigen Linux-Distributionen benötigen Ports unter 1025 root-Rechte. Sollte es beim testen zu einem Fehler wie nc: permission denied kommen, dann einen Port größer als 1024 nutzen.
Bei Nutzung des "Ecowitt"-Protokolles:
- Customized Server: muss eingeschaltet sein (Enable)
- Protocol type same as: Ecowitt auswählen
- Server IP/Hostname: IP-Adresse des Rechners ("Linux-Client") der die Daten verarbeiten soll (im Format xxx.xxx.xxx.xxx), dorthin werden die Daten gesendet. [Beispiel: 192.168.1.3]
- Path: /
- Port: Die Portnummer ist innerhalb des zulässigen Bereichs beliebig wählbar, muss aber frei* sein. Wird später in der Datei wetterstation.conf benötigt (WS_PORT) [Beispiel: 1080]
- Upload interval: zeitliche Schrittweite der Datensendung, wird ebenso in der Datei wetterstation.conf benötigt (WS_POLL). Mindestwert sind 16 Sekunden. Einige Stationen senden im Mindestintervall von 30 Sekunden, obwohl lt. App der Mindestwert 16 Sekunden beträgt.
* Bei einigen Linux-Distributionen benötigen Ports unter 1025 root-Rechte. Sollte es beim testen zu einem Fehler wie nc: permission denied kommen, dann einen Port größer als 1024 nutzen.
Allgemeine Informationen
In einigen Distributionen (zB. Debian im Proxmox-Container) ist in der Grundinstallation weder ein Userkonto angelegt, noch das Paket "sudo" installiert (was in diesem Fall auch nicht notwendig ist, denn ohne Userkonto wird als root gearbeitet). Es gibt keinen Grund ein oder im System als root zu betreiben/arbeiten! Ich empfehle dringendst ein Userkonto einzurichten:
- "sudo" Paket nachinstallieren:
apt-get install sudo
- neuen User z.B. "wetter" anlegen:
adduser wetter
aufrufen und Passwort eintragen. Bei allen anderen Abfragen kann der leere Default mit Enter übernommen werden - der User "wetter" muss der "sudo" Gruppe zugeordnet werden:
usermod -aG sudo wetter
- danach mit User "wetter" und vergebenem Passwort einloggen und mit der Installation fortfahren
Benötigte Adapter
Um WLAN-Wetterstation verwenden zu können ist der Simple RESTful API Adapter im ioBroker zu installieren (Im ioBroker links auf "Adapter" und in Suchfeld "Filter" "simple" eingeben, den Adapter auswählen und unter "Installieren" auf das PLUS-Symbol klicken). Nach der Installation des Adapters sind keine weiteren Einstellungen nötig, zu notieren ist allerdings die Portnummer des Adapters. Dazu links auf "Instanzen" und den simple-api.x (x steht für eine Zahl meist 0, je nach Anzahl der Instanzen) mit einem Klick auf den Gabelschlüssel öffnen. Hieraus kann der Port entnommen werden (meist 8087). Dieser Port wird in der Datei wetterstation.conf benötigt (IPP Teil2 nach ":").
Benötigte Packages
Das Vorhandensein der Funktion "bc", "jq" und "dc" ist auf dem Linux-Client notwendig (die Abhängigkeiten können mittels der Option --debug [oder bei Nutzung des ws_updater] automatisch geprüft und ggf. automatisch nachinstalliert werden).
Alternativ öffnen wir eine Terminal-Sitzung mittels Putty zum Linux-Client und prüfen das Vorhandensein von "bc" mittels which bc
, "jq" mittels which jq
und "dc" mittels which dc
. Bei einer Rückmeldung von bspw. "/usr/bin/bc" ist "bc" (analog "jq" und "dc") installiert. Passiert nichts, muss es installiert werden. Im Zweifel ist eine Installation empfehlenswert. Dabei wird es entweder installiert, geupdated oder es passiert einfach nichts. Die Installation erfolgt mit root-Rechten. Dazu sudo apt-get install -y bc jq dc
(sofern aktuell keine root-Rechte des Users vorliegen) ausführen.
Wichtiger Hinweis: Die Dateien wetterstation.sh, wetterstation.sub und wetterstation.conf dürfen nicht umbenannt werden!
Automatische Installation (von Hand ist hier zu finden)
Wir möchten es in unserem User-Verzeichnis unter wetterstation einrichten:
- dazu wechseln wir in unser "home"-Verzeichnis
cd ~
- legen das Verzeichnis an
mkdir wetterstation
- wechseln in das neue Verzeichnis
cd wetterstation
- laden uns den ws_updater (dieser kann nicht nur updaten) herunter
wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh
- machen diesen ausführbar
chmod +x ws_updater.sh
- starten die Installation
./ws_updater.sh --install
Fehlende Pakete werden nun nachinstalliert. Pauschal sind alle Fragen mit "J" beantwortbar. Zur Konfiguration sei hier und folgende (Datenpunkte anlegen) verwiesen. Einrichtung des Services etc. wird hier alles per Ja/Nein-Abfrage durch den ws_updater erledigt. #Ende der Installation#
Zuerst laden wir uns das kpl. Package von GitHub herunter. Am besten das aktuelle Release: auf der Hauptseite des Projektes klicken wir auf releases --> WLAN-Wetterstation.zip, speichern und entpacken dieses.