Hallo Zusammen,
Ich möchte hier einmal meine Android APP "WebViewControl" Vorstellen.
WebViewControl ist eine APP welche auf Phonegap bassiert und per WebView einen Fullscreen-Browser zur Verfügung stellt, welcher zusätzlich per Javascript mit dem Android-Gerät kommuniziert und so einige Geräteeigenschaften zur Verfügung stellt.
Achtung:Dieser Beitrag ist nicht mehr ganz aktuell.Hier gibt es nun auch einen Eintrag im Wiki in der ich versuche alles zusammen zu fassen.
http://www.fhemwiki.de/wiki/WebViewControlIhr könnt hier aber gerne auch mit machen :)
Darüber können dann einige Funktionen wie z.B. die Bildschirmhelligkeit und Batteriestatus per FHEM-Modul zur Verfügung gestellt, ausgewertet und auch gesteuert werden.
Folgende Möglichkeiten hat die APP derzeit:- bei mir getestet mit Android 4.0.3 (Laufen sollte die APP ab Android 2.1, allerdings kann ich das hier nicht Testen.
Der Android-Emulator hat wohl ein paar Bugs. Über entsprechendes Feedback würde ich mich aber freuen.
- Fullscreen Browser (Einschränkungen siehe unten)
- Jeder APP kann eine eigene APP-ID zugewiesen werden, so können im Netzwerk mehrer APPs z.B. per FHEM angesprochen werden.
- Automatischer Start beim Booten des Gerätes (konfigurierbar)
- Bildschirm eingeschaltet lassen (konfigurierbar bzw. steuerbar per Javascript und schaltbar per FHEM)
- Ändern der Bildschirmhelligkeit per FHEM (z.B. Abhängig eines externen Helligkeitssensors)
- kurze so genannte "Android-Toast-Nachrichten" können an das Gerät per FHEM gesendet werden.
- Anzeige Batterie- und Netzwerkstatus in der rechten unteren Ecke der FHEM-Weboberfläche (Netzwerk wird derzeit nur grün, wenn eine WIFI oder Ethernet Verbindung aktiv ist.)
evtl. Spätere Erweiterungen:- Abspielen von Audio-Nachrichten auf dem Gerät
- Notifikation per Vibrate
- Auswertung von Accelerometer, Kompass usw.
- ggf. Interaktion mit der Gerätekamera
- und noch weitere Möglichkeiten die man sich ggf. noch ausdenken kann.
Hinweis / aktuelle Einschränungen:Der Fullscreen-Mode wird nicht von allen Geräten Unterstützt.
Ab Android 4 Ice Cream Sandwich (ICS) (oder auch schon seit Version 3?) ist auf den meisten Geräten die "System-Bar" am unteren Rand nicht ausblendbar. Es sein denn das ROM des Gerätes unterstützt das. Das geht zwar auch mit einem gerootetem Gerät, das wollte ich hier aber nicht vorraussetzen.
Ich habe hier ein "Archos 10D G3" bei dem wird das Ausblenden der "System-Bar" Unterstützt. Bei meinem Medion-Tablet mit ICS dagegen nicht. Bei Geräten mit Android < Version 3 gibt es keine "System-Bar". Daher gibt es hier mit dem Fullscreen-Mode auch keine Einschränkungen.
Dennoch empfehle ich Android 4 Ice Cream Sandwich (ICS) als Betriebssystem für euer Gerät. Bei älteren Versionen gibt es einige Probleme mit dem mitgelieferten Webbrowser und damit auch mit dem WebView welches hier als Grundlage dient.
Ich selber stufe "WebViewControl" derzeit wenigstens als Betaversion ein. Es gibt da vermutlich noch einiges zu Verbessern. Über Feedback freue ich mich.
Im Moment funktioniert die Kommunikation von FHEM zur APP noch nicht im FLOORPLAN, da der FLOORPLAN das Laden von globalen Javascript Dateien (noch) nicht unterstützt. Das Selbe gilt natürlich für externe Seite aus dem FHEM-Webinterface-Menü wie Howto, Wiki und auch Commandref.
Das Einstellen der Geräteeigenschaften per FHEM-Weboberfläche am Gerät selber funktioniert übrigens noch nicht. Das muss von einer FHEM-Weboberfläche von einem anderen Gerät aus gesteuert werden.
Eine Dokumentation fehlt auch noch, daher schreibe ich erstmal hier alles Wichtige rein.
Installation:Im Zip befinden sich folgende Dateien:
- 95_WebViewControl.pm : Kommt in den Ordner FHEM (als Kopie oder als Symlink)
- webviewcontrol.css und webviewcontrol.js : kommen in den Ordner /www/pgm2
- WebViewControl.apk : Das ist die APP und kommt auf euer Android Gerät.
Da die APP noch nicht aus dem Playstore kommt und auch keine Qualifizierte Signatur hat, muss zum Installieren der APP in den Einstellungen eures Gerätes im Punkt Sicherkeit die Einstellung "Unbekannte Quellen" aktiviert sein. Das kann Nach der Installation wieder deaktiviert werden.
Die App verlangt bei der Installation einige Berechtigungen:Netzkommunikation: Klar, sonst könnte die keine Webseiten öffnen
System-Tools: Für das deaktivieren des Sytandby-Modes
Netzwerkkommunikation: zum Abfragen des Netzwerkstatus
System-Tools: Für den Autostart nach dem Booten
Konfiguration in FHEM:# Android web view control
define <name> WEBVIEWCONTROL <app-id>
Beispiel
define androidTablet WEBVIEWCONTROL 12345
app-id ist die selbe Zeichenfolge welche auch in der APP eingestellt wird, so können unterschiedliche APPs mit FHEM adressiert werden. Standardmässig ist als APP-ID in der APP 12345 eingestellt.
Steuerungsmöglichkeiten per FHEM (set):Bildschirm bei aktiver APP eingeschaltet lassen:
set androidTablet keepScreenOn [on|off]
Aktuelle Seite im der Weboberfläche neu laden. Kann während der Entwicklung ganz nützlich sein:
set androidTablet reload
Bildschirmhelligkeit ändern:
set androidTablet screenBrightness [WERT]
Der Wert kann mit 1-255 eingegeben werden. Allerdings ist das geräteabhängig was z.B. als Maximalhelligkeit angesehen wird. Hier muss man ggf. Experimentieren. Üblich sind Werte 1-100 oder auch 1-255. Sollte die Helligkeit nach 100 z.B. wieder abnehmen, dann währ 100 der Maximalwert.
kurze Nachrichten auf dem Gerät anzeigen:
set androidTablet toastMessage [NACHRICHT]
Das hatte ich ursprünglich zu Testzwecken eingebaut. Wer weis, vielleicht möchte es jemand nutzen.
Informationen per FHEM abrufen (get):Akku-Ladestand abrufen:
get androidTablet powerLevel
Speziell das "Archos 10D G3" hat hier allerdings Probleme. Der "echte" Akkuzustand zeigt zumindest mein Gerät nur an, wenn
keine externe Stromversorgung angeschlossen ist. Mit externer Versorgung zeigt das Ding immer 100% an.
Energie-Status abrufen:
get androidTablet powerPlugged
Zeigt an ob das Gerät an einer externen Energieversorgung angeschlossen ist.
Konfiguration der APP:Beim ersten Start der APP muss diese an einigen Punkten konfiguriert werden.
(siehe Anhang / see attachement)
Start URL: Hier kommt die komplette URL rein unter der z.B. eure FHEM-Weboberfläche erreichbar ist.
APP-ID: Die APP-ID unter der FHEM die APP finden kann. (Standard=12345)
Username / Password: Falls die FHEM-Weboberfläche Passwortgeschützt ist, muss das hier entsprechend eingegeben werden.
Autostart: Falls dieser Punkt aktiviert ist, startet die APP nach dem Booten von Android automatisch.
Bildschirm eingeschaltet lassen: Der Bildschirm bleib an, wenn die externe Stromversorgung angeslossen ist.
Cache löschen: Die Webview der App hat einen internen Cache. Wenn dieser Punkt aktiv ist, dann wird der Cache beim Starten der APP und beim Neuladen gelöscht.
URL Timeout: Hier kann die Anzahl der Millisekunden eingestellt werden die die APP wartet um eine URL zu laden bevor eine Fehlermeldung angezeigt wird.
Entwickler-Optionen im Hauptmenü: Wenn diese Option aktiv ist, werden einige zusätzliche Menüpunkte im Hauptmenü eingeblendet. (Cache löschen / Display Helligkeit testen)
Ich hoffe ich hab auf die Schnelle nix vergessen. Ansonsten nehme ich gerne eure Fragen und Anregungen entgegen.
Gruß
Dirk
Update:
Aktualisierte Version mit geändertem Javascript