Anpassung Unwetterstation an Schweiz, prädiktiv

Grüezi mitenand,
Meteosuisse liefert eine Niederschlagvohersage, welche in meiner Erfahrung äusserst präzise ist. Ich habe häufig meine Velo-Ausflüge auf die Minute damit geplant, und kam meistens trocken nach Hause. Für PLZ 8032 (Wollishofen) sieht sie folgendermassen aus: http://meteo.search.ch/images/chart/8032.png

Meine Frage ist: wie kann man das berühmte Skript „Unwetterstation“ dahingehend anpassen, dass es eine solche Darstellung schluckt. Mein Ziel wäre, dass meine Sonnenstoren eingefahren werden spätestens 15 Minuten bevor es „schifft“. Um jede Hilfe wäre ich (und vermutlich auch alle anderen eidgenössischen IPS-Benutzer) ausserordentlich dankbar!

also habe ich selber Hand gelegt. Hier ist ein erster Hack. Die Gleichung ($RegenKursor -$ZeitKursorKoordinateX)*2 entspricht der Zeit bis zum nächsten prognostizierten Regentropfen im spezifizierten PLZ-Gebiet.

Die Sache funktioniert - könnte aber sicher auch eleganter gestaltet werden. Ich würde mich freuen über jegliche Verbesserungsvorschläge (und noch mehr über die entsprechenden Code-Snippets)!

Ich denke, dass der Radar die gleiche Farbe benutzt bei Regen und Schnee - weiss aber nicht sicher, weil derzeit nicht schneit.Den Swiss Residents unter den Lesern wünsche ich viel Erfolg beim Trockenbleiben.

<?

$PointerSearchBeginX = 29;
$PointerY = 183;
$PointerSearchEndX = 504;

$object = IPS_GetObject($IPS_SELF);
$parentID = $object['ParentID'];


//Radarverlaufsbild Downloaden
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'max_redirects'=>1
  )
);
$context = stream_context_create($opts);

$localImage = IPS_GetKernelDir()."\\MeteoSearchRadar.png";
$remoteImage = "http://meteo.search.ch/images/chart/8032.png";


$data = @file_get_contents($remoteImage, false, $context);
	if($data === false) {
        return;
	}

if((strpos($http_response_header[0], "200") === false)) {
 return;
}

file_put_contents($localImage, $data);


//Radarbild auswerten
$im = ImageCreateFromPNG ($localImage);


$PixelFarbe[1] = imagecolorresolve  ($im, 0, 140, 0);
$PixelFarbeZeitkursor = imagecolorresolve  ($im, 0, 140, 0);
$PixelFarbeRegen = 12416;
$PixelFarbeLeer = imagecolorresolve  ($im, 255, 255, 255);
$PixelFarbeTemperaturKurve = imagecolorresolve  ($im, 246, 48, 16);



//Pixel durchgehen, um den Zeitkursor zu finden

$ZeitKursor = 0;
$RegenKursor = 0;



//Pixel durchgehen, um den Zeitkursor zu finden
for($x=$PointerSearchBeginX; $x<=$PointerSearchEndX; $x++) {
		if (imagecolorat($im, $x, $PointerY) == $PixelFarbeZeitkursor) {
         $ZeitKursorKoordinateX=$x;
         break;
      }
}

print  "ZeitKursorKoordinateX: " . $ZeitKursorKoordinateX . PHP_EOL;



//Pixel durchgehen, um den ersten Regenpixel zu finden
for($x=$ZeitKursorKoordinateX; $x<=$PointerSearchEndX; $x++) {
		if (imagecolorat($im, $x, $PointerY) == $PixelFarbeRegen) {
         $RegenKursor=$x;
			break;
         
   }
}

Print  "RegenKursor: " . $RegenKursor . PHP_EOL;
Print "Minuten bis es regnet: " . ($RegenKursor -$ZeitKursorKoordinateX)*2;



?>

Hallo aag

Das mal einer was für die Schweizer macht :slight_smile:

Ich versuche das mal bei mir zum Laufen zu bringen. Nur das mit den
Sonnenstoren. Wann willst du dann das Script aufrufen.
Alle 5 Minuten? Es kann ja mehrmals zu Schiffen anfangen.

Ob das auch bei anderen Orten stimmt wäre das ja Megacool.

gruess
Tschewie

naja, die Hauptidee ist natürlich, dass die Sonnenstoren eingefahren werden spätestens 15 Minuten vor dem Regen/Schnee. Ich habe schon mal eine grosse Store (4’000 CHF) gerissen, weil sie einfuhr (automatisch) nachdem es massiv geschneit hatte. Immerhin hat die Storenfirma den Schaden auf Garantie ersetzt…

Ich denke aber auch schon nach über eine massgescheiderte Regenwarnung während meiner täglichen Uetliberg-Velotouren.

Ich tüftele unterdessen am Skript weiter. Wenn jemand Verfeinerungen etc. anfügen will, so be my guest!

… nach Murphys-Gesetzen hast gerade dann keine Internet-Verbindung, wenn du sie brauchst und das Wetter ist keine globale Erscheinung sondern das Klima ändert sich mit all seiner Wucht immer mehr regional…
nur z.B. hatten wir hier im Mai 2007 eine Überschwemmung eines bisher unscheinbaren Baches durch örtliche Niederschläge, durch Regen und Hagel (4cm) von ca. 70l/h! Kurz zuvor schien die Sonne noch mit aller Pracht bei 38°C im Schatten. Die Orte >5km Entfernung bekamen nur etwas Regen ab, aber hier tobte der Bach.
Das konnte keine Wetterstation voraussehen und davor warnen!
Wenn du dein Haus vor solchen Wetterkapriolen sichern willst, dann nur über eine lokale Wetterstation, denn jede noch so kleine Region bildet ihr eigenes Klima… mit all den Folgen.

Schon klar. Aber bitte bedenken: im Moment haben wir gar nichts, um die Storen zu schützen (ausser ans Einfahren zu denken - was historisch nicht sehr gut funktioniert hat!). Also, die „Unwetterstation“ ist schon mal besser, als das was wir derzeit haben!

Dennoch: Ich habe aber schon vor, lokale Sensorik auch noch einzubauen. Aber (1) es dauert etwas länger weil (2) ich kann nicht ein USB-Kabel vom Keller (Server) bis in den dritten Stock (Dach) ziehen weil die Steigzone schon voll ist, (3) ich habe noch keine Wetterstation gefunden, die UDP-Packete über WiFi versendet, und (4) jedes Mal wo ich im Forum eine Frage dazu stelle, heisst es dass ich erst googeln soll bevor ich die Klappe aufmache…

Dann würde es erstmal „etwas“ :smiley: dunkler, als was eigentlich in den Räumen gebraucht hätte.

ich habe noch keine Wetterstation gefunden, die UDP-Packete über WiFi versendet

Warum nimmst nicht eine welche die Daten seriell versendet. Das ist ruckzuck ausgewertet. Die Stationen sind ja in deinem Thread schon genannt worden. Thies und Reinhard. Die große Thies kostet um die 1200 € die große Reinhard um die 2500 €. Dafür hast Du dann aber auch was genaues.

Danke RWN, der Vorschlag ist schon gut. Aber ich müsste dann einen seriellen Kabel über 50m und 4 Stockwerke ziehen. Das gibt mindestens nochmals 5’000 CHF an Installationskosten (was mein Budget komplett sprengt) - wenn es überhaupt geht, weil die Steigzone schon voll ist und ich schon Mühe hatte, einen Ethernet-Kabel zu ziehen. Deswegen wäre Wifi die bessere Variante.

Du solltest dich vielleicht mal auf den Seiten einlesen, dann weisst Du was geht oder nicht. :wink: Die sind ja nicht auf Kabel versteift. :smiley:

WIFI über 4 Stockwerke kannst du eh knicken:p … sry… die Schweizer warn’s :smiley:

Es gibt allerlei USB->LAN, RS232->LAN, XYZ->LAN Gateways :slight_smile:

paresy

bin Direktor eines molekularbiologischen Instituts, nicht Ingenieur

vielleicht solltest du zur UBS wechseln, dann

5’000 CHF an Installationskosten (was mein Budget komplett sprengt)

wäre das keine Hemmschwelle mehr :smiley: :smiley: :smiley:

hab deinem Script noch eine "Zeitauflösung hinzugefügt.

 $regen = ($RegenKursor -$ZeitKursorKoordinateX)*2;
 
 $min  = $regen;
         $days  = intval($min / (60 * 60 * 24));
         $min   = $min % (60 * 60);
         $std   = intval($min / 60);
         $min   = $min % 60;

          if(strlen($std)==1){
           $std = "0".$std;
        }
          if(strlen($min)==1){
           $min = "0".$min;
        }
         $Time = $std.".".$min;

 SetValue(37319 /*[Wetter\Regen\Regen in X Minuten]*/, $Time);

Weiss nicht. Meine Nachbarin ist gerade von der UBS entlassen worden. Mit einer kantonalen Stelle verdiene ich zwar weniger, dafür aber länger…

danke für die Ueberarbeitung!

im richtigen Leben regnets jetzt bei uns.

laut der Variable kann ich noch auf eine ausgedehnte Velotour.

Ist zwar komplett [OT]:
Irre ich mich, oder warst du vor Kurzem noch „Direktor und nicht Ingenieur.“… egal, wir sind alle Menschen[/OT]

Das ist bitter! In ZH scheint die Prognose aber ausgezeichnet zu stimmen. Heute morgen kein Velo, sondern Tram!

Ich wüsste nicht, wo der Widerspruch ist. Ich habe nie was mit Ingenieurwissenschaft zu tun gehabt, und bin komplett Laie bzgl. Regeltechnik. Im übrigen, mit den obigen Angaben liesse sich meine Identität ziemlich einfach eruieren :).

Aber es stimmt, ich hätte lieber nichts zu mir selbst sagen sollen. Es nervte mich aber sehr, dass mir die Fähigkeit abgesprochen wurde, mich präzise zu äussern - deswegen wollte ich festhalten dass bei meinem Beruf im wirklichen Leben sehr um Präzision geht!

es ist definitiv so, dass die Datenqualität aus meteo.schweiz.ch nicht ausreicht, um punktgenau die Regenwahrscheinlichkeit vorauszusagen. Das Hauptproblem ist wahrscheinlich die zu geringe Update-Frequenz des Niederschlagradarbildes. Mein Skript macht zwar (mehr oder weniger) was es soll - aber wie es so schön heisst, „if you put garbage in, you will get garbage out.“

Macht nichts. Die Albis-Radarbilder werden alle 5 Minuten aktualisiert. Ich werde die deutsche Unwetterstation umschreiben, dass sie auf die Nordschweiz passt. Mehr dazu bald, in einem neuen Thread.

(an Powerfr.: bitte versuch doch einmal, auf aggressive Kommentare zu verzichten. Ich wollte lediglich etwas Nützliches fürs Forum machen, und kann nichts dafür, dass die Radardaten minderwertig sind!).

Kann mich nicht an irgendwelche Äusserungen, besonders aggressiv, bezüglich der Daten erinnern. Hatte mich hierzu weder geäussert, noch Dich an irgendwelchen Taten „fürs Forum“ gehindert. Bitte um Aufklärung. :confused:

Gruß
Bruno