Hallo an die Community,
ich bin ein noch recht neuer FHEM Nutzer. Seht es mir deshalb nach wenn ich vielleicht hier im falschen Bereich bin oder meine Angaben zu ungenau sind.
Mein Wunsch ist es Grafiken von einer Internetseite
1. zu parsen
2. im Verzeichnis /www/images/ abzulegen (Die Datei sollte unter dem selben Namen immer wieder überschrieben werden)
3. mit Telegram zu versenden
3. klappt schon ganz gut, allerdings schaffe ich es nicht mit HTTPMOD 1. und 2. zu realisieren
Hier noch Internetseite auf die ich es abgesehen haben und die png Grafik
http://wetterstationen.meteomedia.de/?map=Baden-Wuerttemberg&station=099320
http://wetterstationen.meteomedia.de/messnetz/wettergrafik/099320.png
Vielen Dank im Vorraus,
Andreas
Zitat von: Kandy am 26 Februar 2017, 16:17:27
3. klappt schon ganz gut, allerdings schaffe ich es nicht mit HTTPMOD 1. und 2. zu realisieren
Das schaffe ich sogar komplett ohne HTTPMOD. Gib mal in die FHEM Befehlszeile im Frontend ein:
{ qx(wget http://wetterstationen.meteomedia.de/messnetz/wettergrafik/099320.png -O ./www/images/wetter.png) }
und schon liegt die Datei dort, wo Du sie haben möchtest.
Hallo betateilchen,
vielen Dank für die schnelle Antwort.
Tut genau was es soll. :D Ich würde noch gerne verstehen was genau dein Befehl macht um in Zukunft ähnliche Problemstellungen selber zu lösen.
Gibt es hierzu eine Dokumentation oder Command Ref?
Vielen Dank,
Andreas
Wenn man schon eine URL zum Objekt der Begierde kennt, muss man nicht mehr mit HTTPMOD rumhampeln. Stattdessen wird einfach ein Linux Befehl auf Betriebssystemebene ausgeführt.
qx() fällt unter "Perl Grundlagen",
wget fällt unter "Linux Grundlagen".
Beides ist komplett ausserhalb von FHEM angesiedelt und deshalb auch nicht in der commandref (die ist FHEM spezifisch) aufgeführt.
(Für die Besserwisser: Ja ich weiß, dass man das auch mit FHEM Bordmitteln machen kann, dann sogar non-blocking, aber ich wollte eine möglichst simple Lösung aufzeigen)
perl: https://wiki.selfhtml.org/wiki/Perl/Funktionen_f%C3%BCr_Betriebssystemaufrufe#qx.28....29_-_Andere_Programme.2FScripts_ausf.C3.BChren_und_STDOUT_auffangen
wget: man wget unter Linux eingeben
Zusätzlich würd ich folgende Parameter bei wget vorschlagen:
wget --no-cookies --no-cache --timestamping http://wetterstationen.meteomedia.de/...
Nach Relevanz:
timestamping: Das Bild wird a) mit Zeitstempel vom Server lokal gespeichert und b) beim nächsten wget erstmal verglichen, ob tatsächlich eine neue vorhanden ist. Nur dann wird heruntergeladen (wird i.d.R. bei meteomedia in meinem Fall stündlich, ca. 5 min. nach voller Stunde, aktualisiert - hängt aber auch manchmal für ein paar Stunden), ansonsten bleibt die lokale (identische) Kopie unverändert.
no-cache: Sicherstellen, dass die neuste Version direkt vom Erzeuger geholt wird
no-cookies: Nur so 'ne Manie von mir ;-)