Alternative zur eigenen Wetterstation

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Alternative zur eigenen Wetterstation

Beitrag von buempi » 12.11.2008, 11:12

Hallo zusammen

Wer sich keine eigene Wetterstation leisten kann, schaut aus dem Fenster oder kommt auf die verrücktesten Ideen:

Bild

Wie zaubert man diese Anzeige in die Homeputer-Visualisierung? - Die Erkenntnisse aus dem Thread "Bilder in Studio einbinden (Webcam, Diagramme...)" haben mich auf die Idee gebracht.

Voraussetzungen:

PHP muss installiert sein. Aus dem PHP-Download von Contronics müssen mindestens die beiden folgenden Dateien ins Homeputer-Programmverzeichnis kopiert werden:

php5ts.dll
php_gd2.dll

Ebenfalls im Homeputer-Programmverzeichnis muss eine Datei namens PHP.ini erstellt werden mit mindestens folgendem Inhalt:

Code: Alles auswählen

[PHP]
extension_dir = "./"
extension=php_gd2.dll
Dann legen wir ein Objekt vom Typ Schalter mit dem Namen "Wetter" an. Als Ausführungsintervall wählen wir "jede Minute" und hinterlegen folgendes Makro:

Code: Alles auswählen

wenn nicht Uhrzeit =# "**:00:**" und nicht Uhrzeit =# "**:15:**"
und  nicht Uhrzeit =# "**:30:**" und nicht Uhrzeit =# "**:45:**" dann
   verlassen
endewenn

<?

$im = File_Get_Contents("http://wetterstationen.meteomedia.de/messnetz/wettergrafik/069049.png");

$im=ImageCreateFromString($im);

ImageJPEG($im,"./BMP/Wetter.jpg");

ImageDestroy($im);

?>

Wetter umschalten
Sobald das Makro nach maximal 15 Minuten ausgeführt wurde, schreibt es die Datei Wetter.jpg ins Homeputer-Unterverzeichnis BMP. Jetzt weisen wir dieses Bild BEIDEN Zuständen des Schalters zu und aktivieren "Bildgrösse variabel". Noch in der Visualisierung platzieren und schon - fast - fertig.

Die meisten werden ja nicht wissen wollen, wie das Wetter bei mir zu Hause ist. Also noch ein kleiner Ausflug auf die Homepage von Meteomedia: http://www.meteomedia.de/index.php?id=157. Dann das Land bzw. Bundesland auswählen und mit der Maus über einen der vielen Punkte fahren. In der Statuszeile des Explorers wird u.a. eine Nummer angezeigt. Die Zahl (NUR die Zahl) im Makro entsprechend ersetzen und schon hat man den (ziemlich) aktuellen Wetterbericht seines Wohnortes, oder desjenigen der Schwiegereltern, oder beide, oder...

Viele Grüsse
Bümpi

Benutzeravatar
Sanys
Beiträge: 270
Registriert: 31.01.2007, 12:29
Wohnort: Wetterau

Re: Alternative zur eigenen Wetterstation

Beitrag von Sanys » 12.11.2008, 12:45

Hallo Buempi,

prima Idee, dürfte für viele genug Information sein, um sich ein paar Wetterinfos zu holen.

Ich habe ein paar Anmerkungen zum php-Teil:

1. Es ist ja bekannt, dass Studio den php-Teil wie eine Zeile Studio-code behandelt. Das kann zeitlich kritisch werden, da Studio ja nur eins nach dem anderen macht. Probier mal aus was passiert, wenn Du keine Internetverbindung hast oder sie Seite nicht erreichbar ist. Ich vermute, Dein System hängt, vermutlich bis zum Absturz von Studio (so war das bei meinen Versuchen).
Abhilfe: Die Internet-Abfrage absichern.

Das geht so:

Code: Alles auswählen

<?
// abfrage ob der Server/Website erreichbar ist. Die 4 ist der Timeout-wert, also 4 sec.
if(fsockopen('wetterstationen.meteomedia.de', 80, $errno, $errstr, 4))

{
// wenn der Server erreichbar ist geht es hier weiter

// habe deinen Abruf des Bildes vereinfacht, das geht auch direkt
$grafik = "http://wetterstationen.meteomedia.de/messnetz/wettergrafik/069049.png";
$im = ImageCreateFromPNG($grafik);

ImageJPEG($im,"./BMP/Wetter.jpg");

ImageDestroy($im);

} else {

// ist der Server nicht erreichbar geht es hier weiter
// hier kannst Du z.B. eine Grafik erzeugen, die genauso groß ist wie die runtergeladene und die Fehlermeldung draufschreiben.
// oder Du übergibst die Variablen $errno (Fehlernummer) und $errstr (Fehler im Klartext) an eine Studiovariable
// $V_Wetter_Fehlernr = $errno,
// $V_Wetter_Fehlertext = $errstr;
// die Variablen müssen natürlich entsprechend angelegt sein

}

?>

In der If-Abfrage wird getestet, ob eine Socket-Verbindung (Internetverbindung) mit dem Server hergestellt werden kann. Falls ja wird das Bild runtergeladen und abgespeichert, danach ist der php-teil fertig.
Falls der Server innerhalb 4 sec (das ist die 4 am Ende der if-Abfrage, diesen Wert ggf. anpassen) nicht antwortet geht es nach dem "else" weiter. Siehe oben, was man machen könnte.
Wenn nun der Server nicht erreichbar ist dann hängt Studio nur die 4 sec, ansonsten ist bei php ein default-wert von 30 sec vorgesehen. Und das ist natürlich viiiieeeel zu lange. Die 4 sec kann man vermutlich noch abkürzen, wenn eine ordentliche Internetverbindung besteht, einfach mal testen. Länger würde ich nicht warten.

Grundsätzlich ist diese Abfragerei von Webseiten innerhalb von Studio problematisch, eben wegen dem Timeout. Ich kann nur nochmals auf die Variante 2 meines "Bilder inStudio-Threads" verweisen und solche Abfragen "nach draussen" verlegen, sprich php extern aufrufen. Damit umgeht man das Timingproblem vollständig!
Ich unterstelle einfach mal, das wenn man es einmal geschafft hat, externe Daten so einzubinden, das dann weitere folgen. Und jede Abfrage hat grundsätzlich das Problem, das sie eben nicht klappen könnte.


Vielleicht konnte ich ja ein wenig helfen, die Stabilität zu erhöhen... :wink:


Viele Grüße


sanys

(Stephan)
FHZ 1350PC Prof. mit HomeputerStudio 100224 + Direktsendebefehle à la tsa (v 8.0)
WIN XP Pro SP3 (neuester Stand) + buempi's Minibrowser + etliche fs20+HMS+FHT Komponenten + nie genug Zeit, das alles fertig zu bekommen ;-)

shen
Ehrenmitglied
Beiträge: 753
Registriert: 14.07.2006, 19:24
Wohnort: Wegberg
Kontaktdaten:

Re: Alternative zur eigenen Wetterstation

Beitrag von shen » 12.11.2008, 12:53

Um die Sache zu entschärfen würde ich die Grafiken nicht direkt aus Studio heraus herunterladen, sondern dies über eine andere Anwendung (etwa via wget oder curl als Kommandozeilentool) im Hintergrund via Scheduler laufen lassen. Studio braucht dann nur auf das bereits gespeicherte Bild zuzugreifen.
Gruß
Stefan Hendricks (ehemaliger HomeMatic-Forum Betreiber)

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Alternative zur eigenen Wetterstation

Beitrag von buempi » 12.11.2008, 12:55

Hallo Sanys

Ja, mein PHP steckt noch in den Kinderschuhen. - Vielen Dank für die Perfektionierung.

An die Möglichkeit, dass keine Internetverbindung besteht oder der Server von Meteomedia nicht erreichbar ist, hatte ich auch gedacht. Ich habe deshalb einmal den Router abgestellt und ein anderes Mal einen kleinen Fehler in die URL eingebaut. Homeputer hat beides ohne Murren und Zeitverzug geschluckt. Nur im Scriptoutput kam eine Fehlermeldung.

Aber deine Lösung ist natürlich garantiert stabiler.

Nochmals besten Dank und viele Grüsse
Bümpi

m.jansen
Beiträge: 219
Registriert: 16.03.2011, 16:30
Wohnort: Aachen

Re: Alternative zur eigenen Wetterstation

Beitrag von m.jansen » 19.06.2011, 14:28

Hallo,
ich habe die Anleitung versucht,leider bekomme ich immer eine Fehlermeldung:
Fatal Error: Call to undefined function ImageCreateFromString() in C: ..........
Habe nun beide oberen Makros getestet,immer das gleiche Ergebniss????
Die dll´s hab ich auch im Homeputer Verzeichnis drinne.
Im BMP Verzeichnis hab ich das Bild als Wetter.JPG gespeichert,das wird auch in der Ansicht angezeigt.
Jedoch funktioniert das runterladen und abspeichern nicht :-(.
Ein Tip wäre Klasse,


Mfg
m.jansen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Alternative zur eigenen Wetterstation

Beitrag von buempi » 19.06.2011, 14:36

Hallo m.jansen

... und die PHP.ini hast du auch erstellt im Homeputer-Verzeichnis (sh. meinen ersten Beitrag in diesem Thema)?

Viele Grüsse
Bümpi

m.jansen
Beiträge: 219
Registriert: 16.03.2011, 16:30
Wohnort: Aachen

Re: Alternative zur eigenen Wetterstation

Beitrag von m.jansen » 19.06.2011, 14:56

Hallo buempi,

jup die ist da:
Bild

Mfg.
m.jansen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Alternative zur eigenen Wetterstation

Beitrag von buempi » 19.06.2011, 14:59

... und was steht drin?

m.jansen
Beiträge: 219
Registriert: 16.03.2011, 16:30
Wohnort: Aachen

Re: Alternative zur eigenen Wetterstation

Beitrag von m.jansen » 19.06.2011, 15:07

ops :

Code: Alles auswählen

[PHP]
extension_dir = "./"
extension=php_gd2.dll

m.jansen
Beiträge: 219
Registriert: 16.03.2011, 16:30
Wohnort: Aachen

Re: Alternative zur eigenen Wetterstation

Beitrag von m.jansen » 19.06.2011, 15:14

Die dll hab ich hier runtergeladen:

http://www.dlldll.com/php_gd2.dll_download.html

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“