Wetterstationsdaten in APRS
Dieser Artikel ist eine Fortsetzung meines Artikels über den Bau meiner Wetterstation. Da diese Erweiterung nur für Funkamateure relevant ist, habe ich diese ausgegliedert.
Übertragung ins APRS-Netz
Da die Daten der Wetterstation ja sauber in Rohform vorliegen und mit openHAB die Möglichkeit besteht, diese ohne Probleme in jedes andere Format zu konvertieren, bestand auch die Möglichkeit, die Daten in das APRS-Netz einzuspeisen.
Mit einem kleinen PHP-Skript und mit Rules in openHAB wird eine Datei erzeugt, welche die Informationen für APRX aufbereitet. Dieses Programm sendet die Daten dann unter meinem Rufzeichen und der SSID 13 (für Wetterstation) über das Internet in das APRS-Netz.
Wer das nachbauen möchte, hier das PHP-Skript sowie die openHAB Rules, welche ich verwende.
aprs.php
#!/usr/bin/env php
<?php
date_default_timezone_set('UTC');
$outfile = '/opt/wxbeacon.txt';
$settings = '/etc/openhab2/wxvalues.txt';
$line = '@'.date('dHi', time()).'z4956.14N/01132.19E_';
$line_static = '000/000g000';
$software = 'WX/IGate';
$comment = '';
$change = false;
// Werte lesen
$fp = fopen($settings, 'r');
$settings_array = unserialize(fread($fp, 4096));
fclose($fp);
switch($argv[1]) {
case 'T':
// Temperatur
$settings_array['temp'] = $argv[2] * 1.8 + 32; // C in F
$change = true;
break;
case 'H':
// Luftfeuchtigkeit
$settings_array['humidity'] = $argv[2];
$change = true;
break;
case 'B':
// Luftdruck
$settings_array['barometer'] = ($argv[2] + 46) * 10;
$change = true;
break;
}
// Werte speichen
if($change == true) {
$fp = fopen($settings, 'w');
fwrite($fp, serialize($settings_array));
fclose($fp);
// Statische Werte
$line .= $line_static;
// Temperatur
$line .= 't'.sprintf("%'.03d", $settings_array['temp']);
// Luftfeuchtigkeit
$line .= 'h'.sprintf("%'.02d", $settings_array['humidity']);
// Luftdruck
$line .= 'b'.sprintf("%'.05d", $settings_array['barometer']);
// Parameter
$line .= $software.' '.$comment;
$fp = fopen($outfile, 'w');
fwrite($fp, $line);
fclose($fp);
}
?>
wetterstatino.rule
rule "Wetterstation Temperature"
when
Item ws_balkon_temperatur_out received update
then
executeCommandLine('/etc/openhab2/scripts/aprs.php T ' + ws_balkon_temperatur_out.state.toString)
end
rule "Wetterstation Humidity"
when
Item ws_balkon_luftfeuchtigkeit_out received update
then
executeCommandLine('/etc/openhab2/scripts/aprs.php H ' + ws_balkon_luftfeuchtigkeit_out.state.toString)
end
rule "Wetterstation Pressure"
when
Item ws_balkon_luftdruck_out received update
then
executeCommandLine('/etc/openhab2/scripts/aprs.php B ' + ws_balkon_luftdruck_out.state.toString)
end
Ansicht der Daten
Die Daten sind dann ganz regulär im APRS-Netz verfügbar. Eine Möglichkeit die Station öffentlich anzusehen ist APRS.fi. Dort kann man auch die Aufzeichnungen der Wetterstation einsehen.