FTUI Widget Image - data-refresh über Variable möglich?

Begonnen von alpinestars, 04 März 2018, 21:25:28

Vorheriges Thema - Nächstes Thema

alpinestars

Hallo zusammen,

ich habe den "Video-Stream" (Bild jede Sekunde) einer Foscam FI9900P IP-Kamera in FTUI eingebunden, läuft soweit eigentlich auch ohne Probleme. Ich nutze hierbei den Fully Kiosk Browser auf einem Nexus 9. Jetzt benötige ich eine Lösung, um die Kamera bei Nicht-Benutzung zu deaktivieren bzw. zumindest die Häufigkeit des Aufrufs "snapPicture2" zu reduzieren. Mit "data-hide" kann ich zwar schön das Bild ausblenden, aber die Abfrage scheint im Hintergrund weiter zu laufen, oder? Meine Idee bestand jetzt darin, auf "data-refresh" einzuwirken, indem ich z.B. den Wert von "1" auf "3600" verändere.  Kann man das irgendwie umsetzen (Reading o.ä.)?

<div class="nocache">
<div data-type="image"
   data-url="http://192.168.x.x:88/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2&usr=xxx&pwd=yyy"
   data-size="340"
   data-opacity="1"
   data-refresh="1"
   data-nocache="true"
   data-hide="FI9900P:stream"
   data-hide-on="off">
</div>
</div>


Gibt es ggf. noch eine andere Möglichkeit?

Vielen Dank für Eure Unterstützung!

Patrick

setstate

Das geht aktuell nicht. Wäre aber durchaus sinnvoll und machbar einzubauen.
Außerdem ist noch ein github pull request offen, der bei unsichtbaren Bilderen den Refresh unterbindet.

alpinestars

Zitat von: setstate am 05 März 2018, 06:31:17
Das geht aktuell nicht. Wäre aber durchaus sinnvoll und machbar einzubauen.
Außerdem ist noch ein github pull request offen, der bei unsichtbaren Bilderen den Refresh unterbindet.

Wäre super, wenn das implementiert werden könnte. Vielen Dank!

choenig

Hi setstate,

Zitat von: setstate am 05 März 2018, 06:31:17
Außerdem ist noch ein github pull request offen, der bei unsichtbaren Bilderen den Refresh unterbindet.

ich wollte mal nachhören, wie der Status des Pull-Requests ist. Hab gesehen, dass der noch nicht gemerged wurde. Für eine neue Mobile-Seite, die ich gerade baue, könnte ich das gut gebrauchen um den Datenverbrauch zu reduzieren :-).

LG
Christian

setstate

Habe lange nichts mehr daran gebaut, weil ich abends lieber draußen bin.
Werde ich mir aber demnächst mal ansehen.

alpinestars

Zitat von: setstate am 23 Juli 2018, 11:07:50
Habe lange nichts mehr daran gebaut, weil ich abends lieber draußen bin.
Werde ich mir aber demnächst mal ansehen.
Hallo setstate,

kannst Du schon ungefähr abschätzen, wann Du ein wenig Zeit finden kannst? Tausend Dank!

fruemmel

Hallo,

kann es sein, dass sich in Verbindung mit dem refresh nur bei Sichtbarkeit ein Fehler eingeschlichen hat? Wenn ich den CodesetInterval(function () {
                    var isVisible = (elem[0].offsetParent !== null);
                    counter++;
                    if (counter >= refresh) {
                        counter = 0;
                        if (isVisible) {
                            if (url.match(/_=\d+/)) {
                                url = addurlparam(url, '_', new Date().getTime());
                            }
                            ftui.log(2, 'Update image widget source. URL=' + url);
                            elemImg.attr('src', url);
                        }
                    }
                }, 1000);

richtig interpretiere, passiert folgendes:
Das Image wird nur neu geladen, wenn der Timer (data-refresh) abgelaufen ist und das Image derzeit angezeigt wird.
Gemäß dem Code läuft der Timer auch weiter, wenn das Image nicht angezeigt wird (aus meiner Sicht korrekt), aber er wird auch
dann bei Erreichen von data-refresh zurückgesetzt, wenn das Bild gar nicht sichtbar ist und läuft dann wieder von vorne los.

D. h., wenn ich eine Seite mit Bild aufrufe, ist es eine Frage des Zufalls, wo der counter gerade steht, und wann der refresh dann stattfindet.
Ich denke, das "counter=0" gehört in den Block hinter  "if (isVisible) ..". Dann würde das Image auf jeden Fall beim Aufruf der Seite refreshed, wenn
inzwischen die Zeit in data-refresh abgelaufen ist.

Gruß Wolfgang

Tungsten

Hallo Zusammen,

in der Suche habe ich nichts gefunden. Weshalb funktioniert der Refresh bei data-type="image" mit einem Bild aus dem Netz nicht?
Gibt es da einen Trick? Es funktioniert nur mit manuellen Neuladen der Seite.

<div data-type="image"
data-refresh="1800"
data-size="72%"
data-url="http://www.unwetterzentrale.de/images/map/nrw_index.png" class="centered nocache">
</div>

choenig

Hi,

ich habe leider keine Antwort auf Deine Frage, aber ein ähnliches Problem: Bei mir funktioniert der reload auch nur im lokalen Netz. Sobald ich über ein VPN auf die URL zugreife, funktioniert nur noch ein manueller Reload.

LG
Christian

Kuzl

Bei mir funktionierts mit class="nocache"
Allerdings wird dann irgendwie das alte Bild nicht gelöscht und es wird nach und nach mehr Speicher verbraucht

Tungsten

aber nocache habe ich auch und es wird im fully browser nicht aktualisiert.

Shojo

Moin setstate,

ich grabe mal den alten Beitrag hier aus, da ich nun auch dieses Feature mir wünschen würde.
Hattest du dir das schon mal angesehen?

Gruß
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

setstate

ich habe einen ersten Versuch dazu jetzt mal hochgeladen

- **data-refresh-get**: name of the parameter that contains the refresh interval in seconds

data-refresh-get="ftuitest:refresh"

Shojo

Dank dir für das Update,
Sorry hatte mich gestern glatt verlesen....., ich hatte es mir doch noch etwas anders gedacht ;D

Das ich ein Reading angeben kann, was bei änderung / upadate einen Refresh auslöst.
Hintergrund ist bei mir, das ich eine Leitungungsüberwachung habe die bei einen Update des Reading eine neue Chart png rendert, und ich diese dann auch nur neu laden will.

Gruß
FHEM auf: Shuttle PC (x64) (Docker)
Bridge: SignalESP 433mHz, ConBee (deCONZ in Docker)
Rest: ESP8266, SONOFF, Sonos, Echo Dot, Xiaomi Vacuum (root), ESP RGBWW Wifi Led Controller, Node-RED, LEDMatrix, Pixel It

stera

Zitat von: setstate am 18 Dezember 2019, 23:48:07
ich habe einen ersten Versuch dazu jetzt mal hochgeladen

- **data-refresh-get**: name of the parameter that contains the refresh interval in seconds

data-refresh-get="ftuitest:refresh"

Hallo,

der Befehl funktioniert noch nicht oder ? Wenn ein reading aktualisiert wird, dass das Bild neu geladen wird?

Gruß,
SteRa