Das PHP-Script
Ursprünglich war das Script mal für eine andere Datenbank gedacht. Aber in der jetzigen Form funktioniert das auch ganz klasse. Deswegen habe ich es so gelassen. PHP-Scripten ist nicht gerade meine Stärke, wer also Verbesserungen sieht, bitte melden.Meine Wetterstation hat die Adresse 192.168.1.203. Die Fett und Rot gedruckten Angaben müssen natürlich an die eigenen Gegebenheiten angepasst werden. Auf meinem Server wird dieses Script vom CRON alle 15 Minuten aufgerufen.
__________________________________________________________________________________
<?php
// daten.html holen und als daten.txt speichern —— //
$file = „http://192.168.1.203/daten.html“;
$newfile = „daten.txt“;
if (!copy($file, $newfile)) {
echo „copy $file schlug fehl !\n“;goto end; // Sollte der AVR nicht erreichbar sein wird hier das Script abgebrochen.
}
// Es kann vorkommen das die Datei keine Daten enthält, das wird hier durch ermitteln der Dateigröße abgefangen
if (file_exists ($newfile) && is_file ($newfile))
// Dateigroesse ermitteln und in Variable speichern
$dateigroesse = filesize ($newfile);
if (($dateigroesse) > 1)
echo „Die Datei “ . $newfile . “ ist “ . $dateigroesse . “ Bytes gross!\n“;
else goto end;
// Liest Zeile für Zeile bis zum Ende der Datei und zeigt die Daten an //
$daten = fopen(„daten.txt“, „r“);
while(!feof($daten))
{
$inhalt = fgets($daten,1024);
$data = $inhalt;
list($temperatur, $temp_min, $temp_max, $temp_aussen, $temp_aussen_min, $temp_aussen_max, $tageslicht) = explode(„|“, $data);
// Aussentemperatur
$buffer = “;
$host = ‚hostname‚;
$path = ‚/middleware.php/data/uuid.json?operation=add&value=‘;
$data = ‚message=‘.urlencode(‚AVRWetter‘);
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
$buffer .= „$errstr ($errno)<br />\n“;
} else {
$out = „POST „.$path.““.$temp_aussen.“ HTTP/1.1\r\n“;
$out .= „Host: „.$host.“\r\n“;
$out .= „Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n“;
$out .= „Content-Length: „.strlen($data).“\r\n“;
$out .= „Connection: Close\r\n\r\n“;
fwrite($fp, $out);
while (!feof($fp)) {
$buffer .= fgets($fp, 128);
}
fclose($fp);
}
// Innentemperatur
$buffer = “;
$host = ‚hostname‚;
$path = ‚/middleware.php/data/uuid.json?operation=add&value=‘;
$data = ‚message=‘.urlencode(‚AVRWetter‘);
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
$buffer .= „$errstr ($errno)<br />\n“;
} else {
$out = „POST „.$path.““.$temperatur.“ HTTP/1.1\r\n“;
$out .= „Host: „.$host.“\r\n“;
$out .= „Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n“;
$out .= „Content-Length: „.strlen($data).“\r\n“;
$out .= „Connection: Close\r\n\r\n“;
fwrite($fp, $out);
while (!feof($fp)) {
$buffer .= fgets($fp, 128);
}
fclose($fp);
}
// Tageslicht
$buffer = “;
$host = ‚hostname‚;
$path = ‚/middleware.php/data/uuid.json?operation=add&value=‘;
$data = ‚message=‘.urlencode(‚AVRWetter‘);
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
$buffer .= „$errstr ($errno)<br />\n“;
} else {
$out = „POST „.$path.““.$tageslicht.“ HTTP/1.1\r\n“;
$out .= „Host: „.$host.“\r\n“;
$out .= „Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n“;
$out .= „Content-Length: „.strlen($data).“\r\n“;
$out .= „Connection: Close\r\n\r\n“;
fwrite($fp, $out);
while (!feof($fp)) {
$buffer .= fgets($fp, 128);
}
fclose($fp);
}
exit;
}
end:
fclose($daten);
unlink(‚daten.txt‘); // Datei löschen
unset ($daten); // Alle Variablen löschen
unset ($dateigroesse);
unset ($temperatur);
unset ($temp_min);
unset ($temp_max);
unset ($temp_aussen);
unset ($temp_aussen_min);
unset ($temp_aussen_max);
unset ($tageslicht);
exit;
?>