Aktualisierung eines url-definierten Bildes

Begonnen von Ulm32b, 15 Januar 2017, 00:30:48

Vorheriges Thema - Nächstes Thema

Ulm32b

Wechselweise zeige ich am selben Ort ein Wetterbild (DWD) und einen Videostream der Überwachungskamera:

<div class="top-space nocache">
<div data-type="image" data-device="Garage_Nord_Video_Schalter" data-get="url" data-size= "95%" data-refresh="900"></div>
</div>

Vom Reading url geliefert wird, abhängig von anderen Widgets:
http://www.dwd.de/DWD/wetter/radar/rad_nrw_akt.jpg
http://192.168.xxx.yyy:80/videostream.cgi?user=Tablet-UI&pwd=***

Das funktioniert gut. Einziges Problem: Das DWD-Bild wird nicht selbständig aktualisiert. Wenn ich das Bild direkt, d.h. ohne den Umweg über das Reading url definiere, funktioniert die Aktualisierung einwandfrei.

Kann man da was machen?

setstate

Es gibt noch das Widget "rotor". Damit kann man zyklisch zwischen zwei Images oder Weather hin und her schalten.

Ulm32b

Das ist hier leider keine Lösung, weil das Umschalten nicht zyklisch erfolgen soll, sondern manuell oder (in Abhängigkeit von anderen Aktionen) automatisch.

Der Punkt ist m.E., dass nocache und refresh bei image funktioniert, wenn die url explizit angegeben ist  :), nicht jedoch funktioniert, wenn die url über data-device und data-get geholt wird. ???

setstate

Okay, verstanden. Kannst du dann nicht im Reading bei der URL einfach ein &_<zufallszahl> hinten anhängen? Das ist nötig, wenn die Url gleich bleibt, aber der Inhalt sich ändert. Dann muss der Browser-Cache überlistet werden.

http://www.dwd.de/DWD/wetter/radar/rad_nrw_akt.jpg&_<zufallszahl>

z.B.

http://www.dwd.de/DWD/wetter/radar/rad_nrw_akt.jpg&_72365424


setstate

Hast Recht. Das erste muss ein ? sein. Nachfolgende Parameter durch & getrennt.

http://www.dwd.de/DWD/wetter/radar/rad_nrw_akt.jpg?_=72365424

Ulm32b

Vielen Dank, setstate und Harst.

Bei mir wird das wohl nicht ohne weiteres funktionieren:
Ich habe zwei Notifies:
- "Aktionen_nach_Garage_Nord_Video_aus",
- "Aktionen_nach_Garage_Nord_Video_ein".
Diese werden von verschiedenen Events ausgelöst und schreiben dann die eine oder die andere url in das reading "url" des Dummies "Garage_Nord_Video_Schalter". Diese erhält damit einen festen Wert. Das image-Widget holt sich diese url und aktualisiert anschließend nicht mehr.

Bestimmt gibt es auch hierfür einen Workaround. Eleganter und übersichtlicher wäre vielleicht der Ansatz, die beiden Bilder mit fester url zu definieren (dann funktioniert der refresh) und wechselweise ein- bzw. auszublenden, etwa so:

<div class="inline nocache">
<div data-type="image" data-url="http://www.dwd.de/DWD/wetter/radar/radfilm_nrw_akt.gif" data-size= "50%" data-refresh="900" data-get-limits="Garage_Nord_Video_Schalter:einaus" data-hide="0"></div>
</div>
[und vice versa mit dem anderen Bild].

Soweit ich die Doku verstehe, kennt image derzeit nicht den Parameter data-hide. Geht da was?


setstate

data-hide habe ich eh schon generischer gemacht, damit man das schnell in andere Widgets einbauen kann.
Als wäre das für Image ein minimaler Aufwand. Behalte ich im Hinderkopf.

Kommt dann mit der neuen Version 2.5 (bald)

Ulm32b

o.k.
Data-hide geht jetzt auch mit image (ist glaube ich bisher noch nicht verkündet), und damit ist mein refresh-Problem gelöst. Der Code ist jetzt auch deutlich schlanker. Folgendermaßen schalte ich zwischen zwei Bildern hin und her:
<div class="top-space nocache">
<div data-type="image" data-hide="Garage_Nord_Video_ein_aus:STATE" data-hide-on="on" data-url="http://www.dwd.de/DWD/wetter/radar/radfilm_nrw_akt.gif?_=3455543" data-size= "95%" data-refresh="900"></div>
<div data-type="image" data-hide="Garage_Nord_Video_ein_aus:STATE" data-hide-on="off" data-url="http://192.168.0.8:80/videostream.cgi?user=Tablet-UI&pwd=xxxxxxxxxxxx" data-size= "95%"></div>
</div>

Der Wechsel erfolgt ohne Flackern. Sauber :D