Technik

 

Wetterstation

Typ:

Außensensoren:











Innensensoren:



in Betrieb seit:
 

Davis Instruments Vantage VUE

Kombisensor ISS
- Luftfeuchte
- Regenbeginn
- Regenmenge
- Temperatur
- Windgeschwindigkeit
- Windrichtung
Dieser Sensor  wird ohne  Regenmesserheizung betrieben. Bei Frost anfallende Niederschläge werden deshalb erst nach einsetzendem Tauwetter erfasst.

(- Innentemperatur)
- Luftdruck
(- Luftfeuchte Innen)

10.01.2020
 

Vantage VUE Konsole
Davis Vantage VUE, Konsole

Auswertung

Das Auslesen der Davis VUE erfolgt durch eine Meteobridge NANO SD.
Dabei handelt es sich um ein Plug-in-Modul für Davis-Wetterstationen, dass in den Expansionsslot der Konsole gesteckt und von dieser mit der erforderlichen Spannung versorgt wird (Strombedarf max. ca. 1 W).
Die Meteobridge liest die Station aus, speichert die Daten, erstellt Diagramme und lädt die Daten über das integrierte WiFi-Modul auf den Webserver oder sendet diese an verschiedene Wetternetzwerke.
Die Meteobridge NANO SD basiert auf einer VoCore (V 2.0).
Die VoCore ist ein Einplatinen-Computer (Linux) in der Größe eines 2-Euro Stückes (25,6 x 25,6 x 3,0 mm).
Prozessor Mediatek 7628 AN SOC, 580 MHz, 128 MB RAM, 16 MB Flash, WiFi 2,4 GHz mit interner Chip-Antenne  
 
Speicher: swissbit SFSD2048N1BM1MT-E-ME-221-STD (Industrial microSD 2 GB, SLC Flash)

in Betrieb seit: 16.01.2020
 

Meteobridge NANO SD mit industrial microSD
Meteobridge NANO SD mit industrial microSD

Feinstaubsensor

Zur Ermittlung der Feinstaubbelastung dient ein Eigenbau-Sensor gemäß Anleitung auf luftdaten.info.
Dafür wird als Sensor ein Nova SDS011 genutzt. Dieser ermittelt die Belastung mit Feinstaub der Partikelgrößen PM 10 (max. Durchmesser 10 Mikrometer) und PM 2,5 (max. 2,5 Mikrometer; lungengängig).
Die Auswertung erfolgt auf einer NodeMCU ESP8266 (Version 3) mit der von luftdaten.info bereitgestellten Software.
Die ermittelten Daten werden an luftdaten.info gesendet (siehe Karte) und von dort vom Meteobridge MB SMART-Template ausgelesen.
Abweichend zur Bauanleitung wurden die Kabel des Sensors fest mit den Pins der NodeMCU verlötet. Außerdem wird - wegen der parallelen Nutzung der Davis Vantage VUE - auf den Einbau eines zusätzlichen Sensors für Temperatur- und Luftfeuchtigkeit (DHT22) verzichtet. Als Gehäuse dient abweichend zur Anleitung eine Spelsberg Abox 060 (IP65)

in Betrieb seit: 13.04.2020
 

Feinstaubsensor
Feinstaubsensor

serverseitige Auswertung / Visualisierung

Das Meteobridge MB SMART-Template von weather34.com ist speziell auf die Verarbeitung der Meteobridge-Daten ausgelegt. Das Template liest die von der Meteobridge auf den Server übertragenen Daten und stellt diese in entsprechender Form dar.

Der Autor hat nachfolgende Änderungen an der Template-Software durchgeführt:
 

stationcron.php:

$url9 = 'https://api.luftdaten.info/v1/sensor/'.$luftdatenID.'/';

ersetzt durch:

$url9 = 'https://data.sensor.community/airrohr/v1/sensor/'.$luftdatenID.'/';

Grund: Anpassung an gültigen Pfad zu den Sensordaten bei Luftdaten.info (Feinstaubsensor).

console/consoledavis.php:

 <li><div id=uvindex></div></li>

gelöscht. Grund: führte zur (nicht gewünschten) Darstellung der Innentemperatur im Template “Live-Wetter (einfach)”.

index.php und barometer.php

<?php 
if ($weather['mbplatform']=="VOCORE2" OR $weather['mbplatform']=="CARAMBOLA2"){;}
else include('noncompatible.php');?>

gelöscht. Grund: Der verwendete Plattformtyp (MeteoBridge Nano SD mit VoCore2) wurde offenbar nicht mehr an das Template gemeldet, was zu überflüssigen Fehlermeldungen und eingeschränkter Bedienbarkeit des Templates geführt hatte.

in Betrieb seit: 24.01.2020
 

weitere Scripte

Serverseitig werden weitere Scripte zur Auswertung oder Vorhersage genutzt:
Wetterreport und Archiv : Scripte erstellt von weerstation-leuven.be; diese Scripte nutzen die Daten dieser Station (IBADFR12) bei Weather Underground.
Wettervorhersage : Script erstellt von weerstation-leuven.be; dieses Script nutzt die Vorhersagen für Bad Frankenhausen von yr.no.
 


verwendete Technik bis 12 / 2019:

Wetterstation

 

Typ:

in Betrieb:

Außensensoren:












Innensensoren:




 

ELV WS-500 / 2

04/ 2006 bis 12/2019 (Ausfall nach Defekt)

Kombisensor KS 500
- Luftfeuchte
- Regenbeginn
- Regenmenge
- Sonnenscheindauer
- Temperatur
- Windgeschwindigkeit
- Windrichtung
Dieser Sensor  wird ohne  Regenmesserheizung betrieben. Bei Frost anfallende Niederschläge werden deshalb erst nach einsetzendem Tauwetter erfasst.

(- Innentemperatur)
- Luftdruck
(- Luftfeuchte Innen)

PC-Anbindung : USB
 

Basisstation WS-500 / 2
Basisstation WS-500 / 2

Auswertung

PC
(lüfterlos)




Software






 

Mini-PC (Nettop-PC) auf Basis
Intel D945GSEJT
1 GB RAM,
160 GB HDD (24/7)
externes 12 V - Netzteil 60 W

WS-Logger
WSWin32
Wetter-Wachhund
FTP-Watchdog



 

Wetter-PC (geöffnet)
Wetter-PC (geöffnet)

Beschriebene Software und PC-Technik im Einsatz seit 12. / 13. März 2010.
Verwendete Software im Zeitraum zwischen 2006 und März 2010: Sun&Rain 4.0;  Weather Professional 1.54.
 

serverseitige Auswertung

Die hier beschriebene Wetterstation WS-500 kann durch die Auswertesoftware WsWin nicht direkt ausgelesen werden. Dazu wird das Programm WS-Logger von S.Brauer benötigt, dass die Meßwerte der einzelnen Sensoren in eine CSV-Datei schreibt, die von WsWin im Modus “Dateiüberwachung” ausgelesen und ausgewertet wird.
Im Modus Dateiüberwachung besteht bisher keine Möglichkeit, den online-Status der Wetterstation festzustellen.

Der Autor umgeht diese Einschränkung durch die serverseitige Überwachung folgender Bedingungen:
- sind die auf dem Server abgelegten Daten älter als das übliche Aktualisierungsintervall?
- liefern die zur Auswertung genutzten Sensoren im vorgegebenen Zeitraum neue Daten?

Um diese Bedingungen leichter prüfen zu können, muss von WsWin ein weiteres Customfile abgearbeitet und auf den Server geladen werden. Diese Datei enthält nur die Angaben von Meßwertänderungen mehrerer (Außen-) Sensoren. Je mehr Sensoren überwacht werden, desto geringer ist die Gefahr einer falschen Statusermittlung.

Folgende Textdatei wird WsWin zur Verfügung gestellt. Diese enthält im vorgestellten Fall die Wertänderungen (tempchange / valuechange) der letzten 15, 30, 45 und 60 Minuten der Sensoren 2 (Temperatur), 35 (Windgeschwindigkeit), 36 (Windrichtung) und 37 (Sonnenscheindauer). Die gewählten Zeitdauern und Sensoren sind Festlegungen des Autors.
 

statusws.txt

<!-- %customfile=status.txt% -->
%tempchange[2]=15% ;
%tempchange[2]=30% ;
%tempchange[2]=45% ;
%tempchange[2]=60% ;
%valuechange[35]=15% ;
%valuechange[35]=30% ;
%valuechange[35]=45% ;
%valuechange[35]=60% ;
%valuechange[36]=15% ;
%valuechange[36]=30% ;
%valuechange[36]=45% ;
%valuechange[36]=60% ;
%valuechange[37]=15% ;
%valuechange[37]=30% ;
%valuechange[37]=45% ;
%valuechange[37]=60% ;

WsWin erzeugt aus dieser Datei eine Datei mit dem Namen status.txt und füllt die Variablen mit den entsprechenden Werten.
Der Inhalt dieser Datei gleicht der Darstellung rechts.

status.txt

-0,1 °C ;
-0,2 °C ;
-0,2 °C ;
-0,2 °C ;
-1,2 km/h ;
-1,8 km/h ;
+0,8 km/h ;
-0,6 km/h ;
+10 ° ;
+330 ° ;
+335 ° ;
+320 ° ;
0 min ;
0 min ;
0 min ;
0 min ;


Nach dem Hochladen per ftp steht die Datei status.txt auf dem Webserver zur Verfügung.
Beim Aufruf der Wetterseite wird nun eine php-Datei abgearbeitet, die das Dateialter der Datei status.txt ermittelt, den Inhalt zeilenweise ausliest, alle Zahlen extrahiert und prüft.
Ist wenigstens ein Zahlenwert der Datei status.txt ungleich Null und ist das Dateialter kleiner als das übliche Aktualisierungsintervall, kann davon ausgegangen werden, dass die Station korrekt arbeitet und aktuelle Daten auf dem Webserver vorliegen. Sind alle Werte gleich Null oder ist die Datei älter als die Dauer eines Aktualisierungsintervalls,  besteht eine sehr hohe Wahrscheinlichkeit, dass die Station offline ist.
Entsprechend dem festgestellten Status erfolgt eine Rückantwort des Scriptes (im vorliegenden Fall durch Ausgabe eines gif-Bildes).
 

status.php

<?php
// H.Stolze; www.kyffnet.de

function SOnline($Status){
 if ($Status == "true") {
  echo "<img src='online.gif'
  alt='online'
  title='Die Wetterstation ist online'>";                                                                //true == Station ist online, Daten sind aktuell
  }
 else
  {
  echo "<img src='offline.gif'
  alt='offline'
  title='Die Wetterstation ist vorübergehend außer Betrieb'>";                      //false == Station offline
  }
}

function dateiauslesen($datei){
 $fp = @fopen($datei, "r") or die ("Kann Datei nicht lesen.");                        //Datei öffnen
 $Status = "false";                                                                                                   //Station offline setzen
 $regex ='/[^0-9]/';                                                                                                    //Filter setzen (Zahlen von 0 bis 9)
  while($line = fgets($fp, 1024)){                                                                         //zeilenweise lesen
   $line = preg_replace ($regex,'',$line);                                                             //Zahlen herausfiltern (siehe regex)
   preg_match("/\d+/",$line[0],$zerlegen);                                                          //1.Zahl (vor Komma) extrahieren
   if ($zerlegen[0] != 0) {                                                                                         //Wert ungleich 0 --> online, Schleife verlassen
      $Status = "true";
      break;
   }
   preg_match("/\d+/",$line[1],$zerlegen1);                                                       //Nachkommazahl extrahieren
   if ($zerlegen1[0] != 0) {                                                                                      //Wert ungleich 0 --> online, Schleife verlassen
      $Status = "true";
      break;
   }
 }
 fclose($fp);                                                                                                             //datei schliessen
 SOnline($Status);                                                                                                 //ermittelten Status übergeben
}

function dateidatum($datei){
  if (file_exists($datei))                                                                                          //Datei vorhanden?
   {
    $Alter = time() - filemtime($datei);                                                                 //Alter der Datei ermitteln
    if ($Alter > 1200) {SOnline(false);} else dateiauslesen($datei);             //älter als 20 Minuten --> offline, sonst Datensatz prüfen
  }
  else echo "Fehler!";                                                                                            //Datei existiert nicht
}

echo dateidatum("status.txt");                                                                            //Aufruf Alter der Datei status.txt ermitteln
?>


Die Dateien status.txt und status.php (und die Grafiken online.gif und offline.gif) befinden auf dem Webserver in dem Verzeichnis, in dem alle WsWin-Daten mit aktuellen Wetterdaten abgelegt werden. Ein Aufruf der Datei status.php erfolgt an gewünschter Stelle der Website z. B. per iFrame oder php-include.

Die hier gezeigte Vorgehensweise kann bei Interesse gerne genutzt, verbessert oder den eigenen Bedürfnissen angepasst werden.
Bei Nutzung des kleinen Scriptes und dieser Vorgehensweise wäre ein Link zu kyffnet.de eine nette Geste.
 

Linkcode (Bsp.)

<a href="http://www.kyffnet.de" target="_blank"  title="Willkommen am Kyffhäuser">Kyffhäuser</a>

Diese Seite weitersagen über
Facebook Twitter WhatsApp E-Mail
 

[Seitenanfang] 

  © kyffnet.de
[Impressum]