Hallo zusammen,
da ich die lokalen Werte der eigenen Wetterstation auch wichtig habe ich mal die Datenschlüssel gesucht und mir ein Script für den Import zu IPS gebastelt. Da ich noch nicht all zu viel Erfahrung in php habe kann man sicherlich das eine oder andere noch verbessern. Vorschläge nehme ich gerne an.
Mein Vorgehen:
[ol]
[li]für alle gewünschten Werte Variablen in IPS angelegt
[/li][li]Script erstellt (es müssen nur die Variablen IDs und ggf. der Pfad zum Weather OS Software geändert werden)
[/li][li]Variablen Profile erstellen
[/li][ul]
[li]Weather Status (0:partly cloudy; 1:Rain; 2:cloudy; 3:sunny; 4:clear night; 5:snowy; 6 partly cloudy at night)
[/li][li]Trend (0: stable; 1:rising; 2:falling)
[/li][/ul]
[li]Timer für das Script erstellen (aktuell lasse ich es alle 5min laufen)
[/li][/ol]
<?
//WeatherOS Dateien einlesen
$path = "C:\Program Files (x86)\Oregon Scientific\Weather OS\DATA" ;//Pfad zum Data Ordner
$Wstatus = ;//Weather status
$Trendp = ;//Pressure Trend
$TrendT = ;//Temperature Trend
$MinT = ;//Min T
$MaxT = ;//Max T
$AvT = ;//Averrage T
$MinH = ;//Min H
$MaxH = ;//Max H
$AvH = ;//Average H
$TrendH = ;//Humidty Trend
$Comfort = ;//Comfort Zone
$Tempg = ;//gefühlte Temperatur
$TimeWind = ;
$TimeBaro =;
$TimeTH = ;
$TimeTHall = ;
//BARO file (1day)
$file = $path ."\BARO\\1day.csv"; // Datei festlegen (1day)
echo $file ."
";
if(file_exists ($file)) // Wenn Datei existiert
{
$zeilen = File($file); // jede Zeile in Array
$data = explode(",", $zeilen[0]); //Daten trennen (,)
list($jahr, $monat, $tag) = explode("-", $data[0]);
list($stunde, $minute) = explode(":", $data[1]);
$Timestamp = mktime($stunde, $minute, 0, $monat, $tag, $jahr);
SetValue($TimeBaro, date("d.m.Y", $Timestamp)." ".date("H:i:s", $Timestamp));
// echo sizeof($data);
// echo "
" .$data[4];
SetValue($Trendp, $data[4]);
SetValue($Wstatus, $data[5]);
}
//WIND file
$file = $path ."\WIND\\1day.csv"; // Datei festlegen (1day)
echo $file ."
";
if(file_exists ($file)) // Wenn Datei existiert
{
$zeilen = File($file); // jede Zeile in Array
$data = explode(",", $zeilen[0]); //Daten trennen (,)
list($jahr, $monat, $tag) = explode("-", $data[0]);
list($stunde, $minute) = explode(":", $data[1]);
$Timestamp = mktime($stunde, $minute, 0, $monat, $tag, $jahr);
SetValue($TimeWind, date("d.m.Y", $Timestamp)." ".date("H:i:s", $Timestamp));
// echo sizeof($data);
// echo "
" .$data[5];
If($data[5]="NA")
SetValue($Tempg, -100);
else
SetValue($Tempg, floatval($data[5]));
}
//Temperatur (Außen)
$file = $path ."\TH\\sensor1-1day.csv"; // Datei festlegen (1day)
echo $file ."
";
if(file_exists ($file)) // Wenn Datei existiert
{
$zeilen = File($file); // jede Zeile in Array
$data = explode(",", $zeilen[0]); //Daten trennen (,)
list($jahr, $monat, $tag) = explode("-", $data[0]);
list($stunde, $minute) = explode(":", $data[1]);
$Timestamp = mktime($stunde, $minute, 0, $monat, $tag, $jahr);
SetValue($TimeTH, date("d.m.Y", $Timestamp)." ".date("H:i:s", $Timestamp));
// echo sizeof($data);
// echo "
" .$data[2];
SetValue($TrendT, $data[2]);
SetValue($TrendH, $data[5]);
SetValue($Comfort, $data[6]);
}
//Temperatur (Außen)
$file = $path ."\TH\\sensor1-all.csv"; // Datei festlegen (all)
echo $file ."
";
if(file_exists ($file)) // Wenn Datei existiert
{
$zeilen = File($file); // jede Zeile in Array
$last = sizeof($zeilen);
$last = $last-1;
// echo $last ."
";
$data = explode(",", $zeilen[$last]); //Daten trennen (,)
list($jahr, $monat, $tag) = explode("-", $data[0]);
list($stunde, $minute) = explode(":", $data[1]);
$Timestamp = mktime($stunde, $minute, 0, $monat, $tag, $jahr);
SetValue($TimeTHall, date("d.m.Y", $Timestamp)." ".date("H:i:s", $Timestamp));
// echo sizeof($data);
// echo "
" .$data[2];
SetValue($MinT, floatval($data[2]));
SetValue($MaxT, floatval($data[3]));
SetValue($AvT, floatval($data[4]));
SetValue($MinH, $data[5]);
SetValue($MaxH, $data[6]);
SetValue($AvH, $data[7]);
}
?>
Zuätzlich habe ich noch ein Script erstellt, welches den Link und Batterie Status importiert. Vorgehen analog wie oben, wobei 1=low und 0=ok bedeutet:
<?
//WeatherOS Dateien einlesen
$path = "C:\Program Files (x86)\Oregon Scientific\Weather OS\DATA" ;//Pfad zum Data Ordner
//Battery Variables
$Bch1 = ;
$Buv1 = ;
$Bwind = ;
$Brain = ;
//Link Variables
$Lch1 = ;
$Luv1 = ;
$Lwind = ;
$Lrain = ;
//SENSOR Datei
$file = $path ."\SENSOR\\all.csv"; // Datei festlegen (all)
echo $file ."
";
if(file_exists ($file)) // Wenn Datei existiert
{
$zeilen = File($file); // jede Zeile in Array
$last = sizeof($zeilen);
$last = $last-1;
// echo $last ."
";
$data = explode(",", $zeilen[$last]); //Daten trennen (,)
// echo sizeof($data);
// echo "
" .$data[2];
SetValue($Bch1, $data[18]);
SetValue($Buv1, $data[28]);
SetValue($Bwind, $data[31]);
SetValue($Brain, $data[32]);
SetValue($Lch1, $data[2]);
SetValue($Luv1, $data[12]);
SetValue($Lwind, $data[15]);
SetValue($Lrain, $data[16]);
}
?>