WebViewControl - Automatischer Reload durch App nach Verbindungsabbruch zu FHEM

Begonnen von spooy99, 17 Juni 2014, 20:02:46

Vorheriges Thema - Nächstes Thema

spooy99

Hallo, ich nutze die App WebViewControl um auf einem 7" Tablet (Prestigio Multipad 7.0 HD) um mir ein Bild mit FHEM-Infos (aus RSS-Workshop) anzeigen zu lassen.
Das RSS-Bild wird über ein meta-refresh alle 60 Sekunden neu geladen. Funktioniert alles super ... Aber:

Das Tablet soll bei meinen Eltern eine alte Wetterstation ersetzen. Deshalb ist die App auf Autostart eingestellt. Leider startet die App jedoch schneller als das Tablet die WLAN-Verbindung aufgebaut hat.
Es kommt in der App deshalb die Fehlermeldung "Fehler beim Aufrufen der folgenden Adresse: *fhem-url* ... Url nicht gefunden (-2)". Gleiches erhalte ich auch wenn ich Nachts mein WLAN deaktiviere (ist ja logisch). Wenn das WLAN morgens wieder verfügbar ist baut das Tablet die Verbindung brav automatisch wieder auf.
Leider bleibt jedoch die App mit der Fehlermeldung stehen. Jeweils durch manuelles wählen des Refresh-Befehls der App läuft alles wieder ohne Probleme.

Meine Frage deshalb, ob es möglich ist die App bei vorgenanntem Fehler automatisch (z.B. alle 5 Minuten) einen Refresh versuchen zu lassen. Leider habe ich diese Funktion nirgends in der App bzw. der Doku gefunden - ich denke das wäre etwas für die Wishlist - oder habe ich da etwas übersehen?

Vielen Dank!


FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Phil__

Hallo,

mal folgendes probiert:

define at_refresh_tablet_wvc at +*00:05 { fhem("set <your_wvc_tablet> reload") }

Damit erzeugst du einen reload alle 5min, allerdings dauerhaft. Egal ob WLAN weg war oder nicht.
Das Problem könntest du dann mit einer Presence  Abfrage und einem watchdog lösen.

Also zB alle 3min die Abfrage ob das tablet present ist, wenn nicht einen 4 min watchdog starten, der sich bei jeder Presence Abfrage wenn absent erneuert. Sollte die nächste Present Abfrage present ergeben dann folgendes ausführen:

{ fhem("set <your_wvc_tablet> reload") }
Server: Intel DH77EB + Core i3-2120 mit Ubuntu Server 14.04
Backup: Beaglebone Black
Homematic: HM-LAN-Adapter, HM-CC-RT-DN, HM-CC-TC, HM-LC-SW1-PL2, HM-SEC-RHS, HM-SEC-SC, HM-TC-IT-WM-W-EU, HM-WDS10-TH-O
Weitere: Denon-AVR, PhilipsTV, PhilipsHue, Raspi+XBMC
Nexus 7 (WebViewControl + FTUI)

spooy99

Hallo - leider reagiert das Tablet im Fehlerzustand nicht auf Befehle von FHEM... ich kann also weder einen Refresh noch sonstige Befehle von FHEM aus an das Tablet senden.

M.E. könnte lediglich die App selbst einen Refresh auslösen/durchführen um wieder eine Verbindung mit FHEM zu erhalten - oder?!

Danke!

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Dirk

Hallo spooy99,

dein beschriebenes Verhalten ist schon bekannt.
Ich hatte das hier schon festgehalten:
https://github.com/kc-GitHub/WebViewControl/issues/11

Im Moment geht die Weiterentwicklung leider viel Langsamer als mir lieb ist.
Ich bin aber dran.

Viele Grüße
Dirk

spooy99

FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Hollo

Das Verhalten kann ich bestätigen.
Die APP ist bereits gestartet und versucht die Verbindung, während noch die IP vom DHCP-Server bezogen wird.
Eine (einstellbare) Verzögerung beim Start wäre hier der Schlüssel zum Glück.

Der Vorschlag von Phil__ greift leider nicht, weil ja quasi gar keine Verbindung zu FHEM besteht.

Ich habe es bisher nicht geschafft, die js-Sachen in die eigene html einzubinden; Icons erscheinen, aber keine Verbindung zu FHEM.
Sonst könnte man den Refresh natürlich auch vom FHEM aus auslösen... regelmaessig bzw. bei events !?
Inklusiv der genialen Sprachausgabe und der Akkuabfrage etc.

Ich habe aktuell einen vergleichbaren Aufbau; eigene html-Seite mit eingebettetem RSS-Bild und 2 "Unterseiten" für detailierte Wetterwarnung und Schaltbefehle (gemäß RSS-Workshop).
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

spooy99

Hallo, hier eine Kurze Beschreibung meiner Konfiguration auf einem RasPi:

1.) RSS Einrichten ... sh. Workshop in fhem.cfg
   define myrss RSS jpg <IP-FHEM> ./FHEM/rss.layout

2.) Web für Anzeige (bei mir Wetterstation) innerhalb FHEM anlegen:
   define WWW_Wetterstation HTTPSRV ws1 /usr/share/fhemwebws1 Wetterstation Eltern
3.) Webviewcontrol Anlegen für App
   define tablet1_eltern webViewControl 123456

4.) HTML-Inhalt unter Web nach Ziff. 2 (Pfad und Dateiberechtigungen beachten) bereitstellen, also index.html anlegen mit z.B. folgendem Inhalt:

   <head root="/fhem">
<title>FHEM - Wetterstation 1</title>
<link rel="shortcut icon" href="/fhem/icons/favicon" />
<meta http-equiv="refresh" content="60">
<script type="text/javascript" src="/fhem/pgm2/cordova-2.3.0.js"></script><script type="text/javascript" src="/fhem/js/webviewcontrol.js"></script><script type="text/javascript">var wvcDevices = {123456: 'tablet1_eltern'}</script><script type="text/javascript" charset="UTF-8"></script>
<body name="Home, Sweet Home">
<img src="/fhem/rss/myrss.png" border ="0">
</body></html>


5.) App mit Startseite konfigurieren ( http://<IP-FHEM>:8083/ws1 ) und ID 123456 angeben...

So funktioniert es bei mir prima, auch mit Sprachausgabe usw. (Abgesehen von oben beschriebenem Problem).
FHEM auf Debian unter Hyper-V, HMLAN und KNX
Sonst: Fritzbox, Yamaha RX-V2065, Fröling S4 per MQTT, Enigma, Robonect, Hue, LG

Hollo

Vielen Dank spooy99  ;D

Deine Anleitung hat mich entscheidend weitergebracht !
Da hätte ich gefühlsmäßig einige Pfade falsch angegeben.

Jetzt habe ich eine HTML mit dem RSS-Bild, die automatisch reloaded, per Imagemap kann ich Bedienpanel, Wetter und Wetterwarnungs-Details aufrufen, die nach 2 Minuten wieder auf das RSS zurückwechseln.
Und alles mit Verbindung zu FHEM wegen TTSay etc.  Da werde ich die Tage mal ein wenig weiter probieren.

Fehlt nur evtl. noch ein notify, damit jeweils beim 1. Anmelden das keepScreenOn und ein reload-at gesetzt wird.
Dann noch ein Stoppen und das Display geht nach dem Timeout aus und aktualisiert auch nicht mehr (spart Akku).
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"