Neue Fullscreen Browser APP für Android (WebViewControl)

Begonnen von Dirk, 27 Januar 2013, 15:18:28

Vorheriges Thema - Nächstes Thema

Tobias

Supi, mit Standard-Fhem funktionierts!!
Hast du schon, oder willst du noch, die App in den GooglePlaySore sowie das fhem-Modul in den MainTree geben?

Edit: hmm, obwohl ich in der App eingestellt habe das der Bildschirm "an" bleiben soll, und per fhem "set <dev> keepScreenOn on" gesetzt habe, geht der Screen nach ca 5min inaktivität aus. Drücke ich dann den Powerknopf steht nur da "app resume from pause"

Habe ich etwas vergessen einzustellen?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

T.ihmann

Hallo,

ich habe mal eine Frage. Ich würde gerne ein (einfaches) Tablet an die Wand montieren, als FHEM Steuerung. Mit Deiner App kann man ja den Bildschirm anlassen (und damit auch den Touchscreen). Damit leuchtet das Tablet ja auch die ganze Zeit. Wäre es möglich einen Timer in Deine App zu integrieren, der den Bildschirm automatisch dimmt (wobei ich nicht weiß, ob dann auch der Touchscreen aktiv bleibt) oder nach Timerablauf eine leere (schwarze) Webseite anzeigt. So könnte man das Tablet per Tippen auf den Bildschirm wieder aktivieren. Ansonsten geht bei Android ja nur ein Wecken per Hardwaretasten..

Dirk

@Tobias
ZitatHast du schon, oder willst du noch, die App in den GooglePlaySore sowie das fhem-Modul in den MainTree geben?
Eigentlich wollte ich vor dem Einchecken noch eine bessere Dokumentation machen. Da ich im Moment meine Freizeit aber in die Fertigstellung von HM485 und ein paar Hardwarebasteleien stecke, werde ich das in den nächsten Tagen sicher so wie es aktuell ist mal einchecken. Und an de Playstore hatte ich tatsächlich schon mal gedacht. Wollte mir bisher aber den dortigen jährlichen "Mitgliedsbeitrag" sparen.

Zitathmm, obwohl ich in der App eingestellt habe das der Bildschirm "an" bleiben soll, und per fhem "set <dev> keepScreenOn on" gesetzt habe, geht der Screen nach ca 5min inaktivität aus.
Das ist merkwürdig. Externe Spannungsversorgung ist aber an? Denn normalerweise bleibt der Screen auch ohne weiter externen Befehl an. Was gibt es denn für eine Meldung beim An- und Abstecken der externen Versorgung?

ZitatDrücke ich dann den Powerknopf steht nur da "app resume from pause"
Das ist ein Event den die App feuert. Im Moment wird im Javascript dann die Toastmessage mit dem Text oben angezeigt. Man könnte diesen Event z.B. auch nutzen um angezeigte Werte nach eine Wiedereinschalten zu aktualisieren usw.

@T.ihmann
ZitatWäre es möglich einen Timer in Deine App zu integrieren, der den Bildschirm automatisch dimmt
Dimmen könnte man den Bildschirm z.B. mit dem Einstellen der Bildschirmhelligkeit. Diese Möglichkeit gibt es bereits. Entweder direkt mit einem
set androidTablet screenBrightness [WERT] von FHEM aus, oder alternativ per eigener Javascript-Funktion. Hier könnte man dann auch Timer für das Dimmen einbauen. Ebenso könnte der Timer über AT in FHEM definiert werden. Zusätzlich muss mann im Javascript dann noch einen Eventhandler definieren der auf einen Touch/Klick reagiert um die Displayhelligkeit dann wieder zu erhöhen.

ZitatAnsonsten geht bei Android ja nur ein Wecken per Hardwaretasten.
Einige Tabletts und Telefone schalten sich aus dem Standby-Mode wieder ein, wenn man die externe Spannungsversorgung einschaltet.

Gruß
Dirk

Tobias

Hi Dirk,
Zitat von: Dirk schrieb am Mi, 05 Juni 2013 22:03
Zitathmm, obwohl ich in der App eingestellt habe das der Bildschirm "an" bleiben soll, und per fhem "set <dev> keepScreenOn on" gesetzt habe, geht der Screen nach ca 5min inaktivität aus.
Das ist merkwürdig. Externe Spannungsversorgung ist aber an? Denn normalerweise bleibt der Screen auch ohne weiter externen Befehl an. Was gibt es denn für eine Meldung beim An- und Abstecken der externen Versorgung?
Upds, das stand nirgends...  Tablet lief im Batteriebetrieb.
Das wirft aber die nächste Frage auf:
Da ich per Funkschaltsteckdose das Tablet nur Laden will ab unter 15% Batterielevel und bei 80% wieder abschalten will stellt ist ja ein "Standby" vorprogrammiert :(
Kann man den Standby im Batteriemodus irgendwie abschalten? In den Android-Einstellungen Habe ich nichts gefunden :(
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dirk

ZitatUpds, das stand nirgends...
Guck dir mal die Beschreibung der Settings für "Bildschirm eingeschaltet lassen" an :)
"Bei aktiver App und externer Spannungsversorgung bleibt der Bildschirm eingeschaltet."

Ansonsten kannst du "setKeepScreenOn" auch extern setzen per Javascript deviceControl.keepScreenOn(true) oder von FHEM aus
set androidTablet keepScreenOn on
Aber: Jedesmal beim Ausstecken der externen Stromversorgung schalten die App wieder auf "keepScreenOn off" um. Daher müsste das mit einem Event verbunden werden im FHEM gibt es dafür ein Reading "powerPlugged". Man kann auf den Event natürlich auch wieder direkt im Javascript reagieren. z.B. in der Funktion "fhemWVC.onBatteryStatus"

Gruß
Dirk

Tobias

Hi Dirk,
soweit klappt alles gut :) Leider aber nur wenn ich direkt zum fhem connecte.
Ich habe aber die Authentifizierung über Apache (gemäß wiki), fhem ist nur per localhost erreichbar. Damit scheint die App aber nicht zurechtzukommen.
Könntest du das mal prüfen? Ich könnte dir auch für mein Test-Fhem die Zugangsdaten geben damit du es überprüfen kannst...
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dirk

Hi Tobias,

wenn ich dich richtg verstehe geht es um die BasicAuth?
Direkt zu FHEM das klappt, über Apache mit Modproxy klappt nicht?`

Ich schaue mir das mal an. Kannst du mir die entsprechenden Auschnitte aus deinen Configs mal schicken? FHEM und Apache.

Gruß
Dirk

Tobias

Ja, es geht um die BasicAuth
Ich komme jetzt von außerhalb nicht an die ApacheConfig ran, sieht aber genauso aus wie im Wiki
http://www.fhemwiki.de/wiki/Apache_Authentication_Proxy
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tobias

jetzt hab ich mal die Config unter /etc/apache2/sites-enabled/050-fhem rausgesucht:
<Location /fhem>
    # ProxyPass/ProxyPassReverse leitet HTTP requests auf eine andere URL um
    ProxyPass http://localhost:8083/fhem
    ProxyPassReverse http://localhost:8083/fhem

    # ProxyHTMLURLMap passt Links im HTML/JavaScript Source an
    ProxyHTMLURLMap /               /fhem/
    ProxyHTMLURLMap /fhem/          /fhem/

    AuthType Basic
    AuthName "Password Required"
    AuthUserFile /etc/htpasswd-fhem
    Require valid-user
    Order deny,allow
    Allow from all
</Location>


und so sieht fhem aus:
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m-%d.log
attr global modpath .
attr global motd none
attr global sendStatistics onUpdate
attr global statefile ./log/fhem.save
attr global uniqueID ./FHEM/FhemUtils/uniqueID
attr global userattr devStateIcon icon sortby structexclude test_struct test_struct_map webCmd
attr global verbose 3

define WEB FHEMWEB 8083
attr WEB longpoll 1
attr WEB menuEntries rereadcfg,cmd=rereadcfg,restart,cmd=shutdown restart,update,cmd=update,updatecheck,cmd=update+check,updateforce,cmd=update+force

Der Requst kommt aber beim apache an. Leider wird der aber mit einem 401 beantwortet (401: The request header did not contain the necessary authentication codes, and the client is denied access.). Im access.log finde ich folgendes:
xx.xx.xx.xx - - [16/Jun/2013:13:41:17 +0200] "GET /fhem?room=OWX HTTP/1.1" 401 646 "-" "Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; MD_LIFETAB_P9516 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30"

Als Adresse ist folgendes im App eingetragen: http://meinfhem.meineDomain.de/fhem
Sowie Username und Passwort.

Hilft das weiter? Kannst du es nachstellen? Soll ich dir einen Zugang bei meinem Apache-FHEM geben?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Dirk

Hi Tobias,

ich schaue mir das morgen an.
Vorher schaffe ich das leider nicht.

Gruß
Dirk

Nico

Hallo zusammen,

die App gefällt mir richtig gut.
Habe sie auf dem Archos 10 sowie meinem HTC EVO 3D installiert, alles funktioniert ohne Probleme (Android >= 4.)

Gibt es nicht irgendeine Möglichkeit das Gerät über fhem zu wecken? Das "set Gerät voiceRecognition start" funktioniert bei mir nämlich nur, wenn das Display an ist.

Trotzdem 1000 Dank für die super App!!!

LG Nico

cyvr1

Hallo,

Zitat von: T.ihmann schrieb am Mi, 05 Juni 2013 21:25Wäre es möglich einen Timer in Deine App zu integrieren, der den Bildschirm automatisch dimmt (wobei ich nicht weiß, ob dann auch der Touchscreen aktiv bleibt) oder nach Timerablauf eine leere (schwarze) Webseite anzeigt. So könnte man das Tablet per Tippen auf den Bildschirm wieder aktivieren. Ansonsten geht bei Android ja nur ein Wecken per Hardwaretasten..

schau dir doch mal die Android Anwendung "Screen Standby ♯ Root" an. Mit dieser Anwendung bekommt man kostenlos und ohne großen (Programmier-)Aufwand das von dir gewünschte Verhalten, ohne dass das Tablet gelockt wird. Nach einer einstellbaren Zeit (Sekunden, Minuten oder auch Stunden) wird einfach nur der Bildschirm abgeschaltet, bleibt aber insgesamt aktiv, d.h. er kann durch Berührung wieder aktiviert werden. Das Tablet läuft im Hintergrund ganz normal weiter.

Bei mir läuft die Anwendung seit einiger Zeit auf meinem "Wand-Tablet" zur Steuerung von fhem. Per Bildschirm-Berührung wird das Tablet geweckt, nach gut 1 Minute Inaktivität geht das Display wieder aus, das Tablet wird aber nicht schalfen geschickt. So kann ich auch bei ausgeschaltetem Display Signaltöne abspielen oder Sprachenachrichten ausgeben.

Dazu noch eine Frage von mir: wäre es möglich, eine Toast-Message länger einzublenden und erst nach Bestätigung wieder auszublenden? Man könnte so Status-Nachrichten auf das Tablet bringen, die man z.B. Abends, wenn man nach Hause kommt, noch lesen kann (z.B. Mitteilung über zu wechselnde Batterien in FS20/HM Komponenten oder ähnliches).

----------
Stephan Krätzschmar

Dirk

Hi Nico,

Zitat von: Nico schrieb am So, 16 Juni 2013 23:22Gibt es nicht irgendeine Möglichkeit das Gerät über fhem zu wecken?
Derzeit noch nicht. Das steht aber auf der ToDo-Liste.

Gruß
Dirk

Dirk

Zitat von: cyvr1 schrieb am Mo, 17 Juni 2013 10:34wäre es möglich, eine Toast-Message länger einzublenden und erst nach Bestätigung wieder auszublenden? Man könnte so Status-Nachrichten auf das Tablet bringen
Mit den Toast-Messages ist das so nicht möglich. Dafür müsste man eine Andere Benachrichtigungsbox verwenden. Ich werde diese Idee mit auf die ToDo-Liste setzen. Da lässt sich was machen.

Gruß
Dirk

Dirk

@Tobias

Gib bei StartURL mal den Port 80 mit an. Dann klappt die Basic Auth auch mit dem Apachen.
Das werde ich im Code aber mit berücksichtigen, dass der Port dann automatisch mit angehängt wird.

Gruß
Dirk