FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: jan4321 am 12 Juni 2016, 13:54:25

Titel: Webcam bild automatisch neu laden (random number in link)
Beitrag von: jan4321 am 12 Juni 2016, 13:54:25
ich möchte gerne das Bild einer Webcam in fhem alle 5 Sekunden aktualisieren.

es handelt sich um diese Webcam: https://www.hafen-hamburg.de/en/webcam/blankenese (https://www.hafen-hamburg.de/en/webcam/blankenese)
im code der Seite wird der Link zur webcam alle paar Sekunden mit einer zufälligen zahl verändert, sodass der Browser das Bild neu lädt:
https://www.hafen-hamburg.de/assets/files/webcam/image.jpg?rand=0.9063926391507635 (https://www.hafen-hamburg.de/assets/files/webcam/image.jpg?rand=0.9063926391507635)

kann ich ein ähnliches Verhalten auch in FHEM realisieren?
bislang hatte ich den Link in einem iFrame, dann musste ich zum refreshen aber immer die Seite neuladen...

Titel: Antw:Webcam bild automatisch neu laden (random number in link)
Beitrag von: jan4321 am 13 Juni 2016, 21:30:29
Hat sowas noch nie jemand gemacht???
Titel: Antw:Webcam bild automatisch neu laden (random number in link)
Beitrag von: Bytechanger am 15 Juni 2016, 08:10:17
Hi,

also der Parameter ?rand tippe ich mal wird verwendet, damit dein Browser das Bild nicht aus dem Cache läd, sondern immer direkt von der Seite. Ist für ihn ja eine neue Anforderung.
Automatisches Aktualisieren, unabhängig von FHEM, könntest Du über JavaScript realisieren.
Wie genau jetzt FHEM ins Spiel kommen soll, ist mir nicht ganz klar.

Hier mal ein Quick und Dirty nicht getestete Codevariante.
Den Interval würde ich jedoch noch länger Wählen, ansonsten wird der Hamburger Hafen nicht erfreut sein, wenn Du so viel Traffic verursachst!
Derzeit ist er so klein, damit du testen kannst...
Das iframe hat die ID: Bild_iframe


<script>
  function iframe_load {
     var rndV=new Date().getTime();
    document.getElementById('Bild_iframe').src = 'https://www.hafen-hamburg.de/assets/files/webcam/image.jpg?rand="+rndV;
  }

/* Wiederholung alle 5 Sekunden = 5000 Millisekunden */
window.setInterval(iframe_load, 5000);
  </script>



Greets

Byte