Neue Fullscreen Browser APP für Android (WebViewControl)

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

Vorheriges Thema - Nächstes Thema

cotecmania

#735
Hallo,

Wie habt Ihr das mit dem Ein- bzw. Ausschalten des Bildschirmes gelöst.
Es wäre schön, wenn man wenigstens Nachts automatisiert den Bildschirm abschalten oder ganz dunkel schalten koennte und morgens wieder ein.
So wie ich es gesehen habe kann man nur die Helligkeit steuern.

Oder gibt es eine Möglichkeit, dass der Bildschirm nach einer gewissen Zeit dunkel schaltet und beim antippen wieder hell wird ?

Ausserdem werden Bilder meiner Camera in einem iframe nicht angezeigt.
In Chrome und Safari geht das, wenn ich direkt die FHEM-Seiten anzeige.

Gruss
FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI

topfi

Gestern hatte ich mal einen Abend lang Zeit und habe für das Lenovo S6000 eine Screen on/off Lösung gefunden. Erste Test scheinen zu funktionieren, Langzeiterfahrung habe ich noch nicht.

Aber der Reihe nach.
1. FullScreen (ohne Android-Tasten) am S6000

Dazu habe ich mich entschlossen, das Gerät zu rooten. Schließlich kommt da nur WVC drauf und sonst nichts. Das geht in 2 Minuten mit dem Programm framaroot, das ich bei chip.de http://beste-apps.chip.de/android/app/framaroot-android-app,cxo.60369992/ runtergeladen habe. Danach sichert man höchstvorsorglich den /System - Ordner auf eine Speicherkarte und installiert aus dem Playstore die App "GMD Auto Hide Keys". Damit kann man bei gerootetem Gerät die Tastenreihe ausblenden. Ich habe es so eingestellt, dass am rechten Rand ein ca. 1cm langer Streifen bleibt, an dem man die Leiste reinwischen kann. Diese Möglichkeit kann man nicht deaktivieren, so dass das nicht für hundertprozentige Sicherheit taugt, wenn man die Steuerung einer Alarmanlage verstecken will. Außerdem lädt das Programm beim Reboot relativ spät, so dass dann die originale Leiste für ca. 30 Sekunden sichtbar und bedienbar ist. Aber es ist besser als nichts und außerdem hat man nun mehr Platz auf dem Display, es sieht besser aus und ein Fremder sieht nicht gleich die vertrauten Android-Tasten vor sich.

2. Screen on/off Lösung

Ich mache mir folgendes Verhalten des S6000 zu nutze (so sollten die meisten anderen Tablets sich eigentlich auch verhalten): Steckt man das Ladekabel ein oder aus (!), wird das Gerät aus dem standby geholt. Achtung: Danach (zumindest beim Ausschalten des Ladegeräts) ignoriert es aber den Zustand von  keepScreenOn, so dass dieser neu gesetzt werden muss. Danach bleibt es auch im Akkubetrieb an.  keepScreenOn muss also jedesmal (!) neu auf seinen aktuellen Wert (on oder off) gesetzt werden, wenn die Ladeelektronik schaltet.

* Am Tablet habe ich die Zeit bis zum Standby auf 15 Sekunden (kürzeste) gestellt.
* Mein Lenovo heißt in fhem Display_WZ, also:
define Display_WZ WebViewControl 12345
* Das Ladegerät hängt an einer Intertechno-Dose namens "Display_WZ_power"
* Die normale Ladefunktion (Laden von 25% - 85%) habe ich nach einem Vorschlag hier so gelöst:
# Ladeautomatik
define Display_WZ_laden notify Display_WZ { if (ReadingsVal("Display_WZ","powerLevel","")  < 25) { fhem("set Display_WZ_power on") if (Value("Display_WZ_power") ne "on");;} \
if (ReadingsVal("Display_WZ","powerLevel","") > 85) { fhem("set Display_WZ_power off") if (Value("Display_WZ_power") ne "off");;  }}

* Ich definiere einen dummy "Display_aktiv". Ist der auf "on, ist das Display an, ist er "off" ist es eben aus.
##########
# Display aktiv
define Display_WZ_aktiv dummy
attr Display_WZ_aktiv webCmd on:off

* Ausschalten des Displays geht einfach, da setzt man nur keepScreenOn aus "off":
define Display_WZ_ausschalten notify Display_WZ_aktiv:off set Display_WZ keepScreenOn off
* Zum Einschalten klaue ich einfach den Ladestrom (falls an) oder schalte den Ladestrom für ein paar Sekunden zu (falls off) und setze keepScreenOn auf "on" (das muss natürlich in weniger als den oben eingestellten 15 Sekunden passieren):
define Display_WZ_einschalten notify Display_WZ_aktiv:on {if (Value("Display_WZ_power") ne "on") {fhem("set Display_WZ_power on-for-timer 3;;define verz2 at +00:00:07 set Display_WZ keepScreenOn on")} \
else {fhem("set Display_WZ_power off;;define verz3 at +00:00:05 set Display_WZ keepScreenOn on")} }

* Um sicherzustellen, dass bei Schalten der Ladeelektronik nicht der Zustand keppScreenOn verloren geht (siehe Beschreibung oben), muss er neu gesetzt werden:
define Display_WZ_bleibso notify Display_WZ_laden {if (Value("Display_WZ_aktiv") eq "on") {fhem("set Display_WZ_aktiv on} else {fhem("set Display_WZ_aktiv off}}

Nun habe ich also einen Schalter "Display_WZ_aktiv", der mir innerhalb 15 Sekunden den Bildschirm abschaltet und eben auch wieder zuschalten kann. Den kann ich nun nach Belieben mit Schlafenszeit-Timern oder mit der Variable "abwesend" verknüpfen. Da ich mein Tablet so anbringen werde, dass der Ein/Aus-Schalter nicht bedienbar ist, hat man sogar eine gewisse Sicherheit, dass niemand das Ding bedient. Man muss ja erst einmal wissen, dass es nur im standby ist und dann hat man noch nicht mal die Androidtasten zur Verfügung.

Hollo

Schöne Zusammenfassung, da hat man die wichtigsten Infos und Codeschnipsel übersichtlich zusammen.  :)

Ich nutze bei mir die "Einfach-Variante"...
In den Optionen ist "Bildschirm bei externer Spannungsversorgung eigenschaltet lassen" aktiviert.
Über eine Funksteckdose bzw. einen UP-Aktor schalte ich jeweils das Netzteil ein und damit geht auch das Display an.
Anschließend kann man manuell per Klick beliebig aus-/einschalten.
Je nach HomeStatus (z.B. Abwesenheit, Schlafen) schlate ich die jeweiligen Steckdosen.

Das klappt auch sehr zuverlässig und ich muss nichts Zusätzliches zur Akkukontrolle einbauen.

Gruß,
Hollo
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"

topfi

Ich brauche nochmal eure Hilfe. Hier gibt es die Funktion newUrl nicht. Da kommt als Antwort nur: Please specify one of following set value: audioPlay audioStop keepScreenOn reload screenBrightness toastMessage ttsSay voiceRec volume. Ich hab ein FHEM update gemacht, das hat aber nichts gebracht.

Außerdem funktioniert das Setzen der Helligkeit nicht mehr. der Befehl kommt als toast auf dem Tablet an, die Helligkeit ändert sich aber nicht.

topfi

Ersteres habe ich gelöst mit der experimental version aus github.

Aber die Bildschirmhelligkeit geht immer noch nicht. Hat das vielleicht mit dem Rooten zu tun?

Auf jeden Fall hat die Akzeptanz meiner allabendlichen Tüftelei bei meiner Familie enorm zugenommen. Hier im Südwesten ist Spätsommer, der Grill ist schon befüllt und ein Öffnen/Kippen der Terrassentüre wird nun jeweils von einer netten Ansage begleitet. Ich muss meine Tochter von der Türe fernhalten... :D

MaJu

Heute ist es passiert: Damit die Anzeige nach einem Ausfall nicht hängen bleibt (WLAN kurz weg oder was auch immer), habe ich bei der Floorplan-Seite einen Refresh alle 2 Stunden drin, so dass die App von sich aus 2 Stunden nach dem letzten Aufruf die Seite neu lädt, egal ob sie zwischendurch hing oder nicht.

Heute war nun genau zum Zeitpunkt des Refresh entweder das WLAN weg oder FHEM nicht erreichbar oder was auch immer. Auf jeden Fall zeigt das Tablet jetzt die Fehlermeldung, dass die Seite nicht gefunden werden konnte.

Da das Display recht aufwändig im Rahmen eingebaut wurde (es muss ja auch gerade hängen etc.) und sich durch die Rahmen-Glasscheibe nicht bedienen lässt, muss ich jetzt leider alles auseinanderbauen, um einen manuellen Seiten-Refresh auszulösen.

Deshalb, wie zu Beginn des Threads auch schon von anderen gewünscht, wäre ich für eine Option sehr dankbar, dass die App alle xx Minuten oder Stunden die eingestellte Startseite neu lädt.
Erlebnisreiche Grüße aus Leipzig!

topfi

Als Workaround zwei Vorschläge:

1. Du könntest ein BT-Keyboard pairen und BT dauerhaft aktivieren. Im Fall der Fälle holst Du BT-Equipment und bedienst das Tablet damit.

2. Ich weiß nicht, ob das bei Android Standard ist: Mein Lenovo S6000L hat einen Echtzeittimer (Einstellungen ganz unten, vorletzter Punkt) , mit dem man das Tablet zu definierten Zeiten hoch- und runterfahren kann. Das könnte man beispielsweise jeweils nachts um 3 Uhr machen.

MaJu

Leider ist eine Bluetooth-Tastatur wieder mit Geld verbunden. Aber ich schaue mal ob es da eine preiswerte gibt. Danke für den Tipp! Kann man mit einer Bluetooth-Tastatur auch die Menü-Taste auswählen bzw. haben doch Tastaturen nicht alle Pfeiltasten, oder? Denn man muss ja ins Menü der App und dort "Refresh" auswählen ...

Oder gibt es eine Möglichkeit, zum Beispiel ein iPhone als "virtuelle Tastatur" zu nutzen? Ich vermute, das geht nicht.

An- und Abschaltzeiten habe ich bei dem Tablet nicht, es ist aber auch kein Lenovo.

Letztlich wäre es einfach schön, wenn die App einen Seiten-Refresh nach eingestellter Zeit von sich aus könnte.

______________
Was anderes: Ich hatte hier weiter vorn gelesen, wie die Icons für Empfang etc. entfernt werden können: Ich habe einfach das Bild in FHEM gelöscht, damit verschwand es auch.
Erlebnisreiche Grüße aus Leipzig!

ollir

Hallo,

ich benutze die App auf meinen S4.  :D Funktioniert super.
Einen Wunsch hätte ich  8) bzw. ich habe keine Lösung gefunden.

Wenn ich einen Radiostream mir auf das S4 schicke und dann über das Batterie-Symbol eine Spracheingabe machen möchte, wird der Ton nicht auf Stumm geschaltet.
Die Spracheingabe scheitert natürlich, da das Radio ins Micro "stört".

Gibt es eine möglichkeit, die Audioausgabe zu Muten, wenn die Spracheingabe aktiv ist?

Vielen Dank
Olaf


chris1284

Besteht die möglichkeit in wvc ein clientzertifikat zur authentifizierung zu hinterlegen?
Im browser (chrome als auch der vorinstallierte) geht es problemlos. Wäre toll das einzubauen wenn es noch nicht geht

Zitze

Hallo,

ich habe ein Problem mit ttsSay: Wenn ich zeitgleich mehrere ttsSay-Befehle absetze (verschiedene Notify, die auf ein Event reagieren), wird nur der erste Befehl ausgeführt. Unmittelbar nach Neustart von WVC wird dann ein weiterer Befehl ausgeführt.

Was kann ich tun, dass alle ttsSay Befehle ausgeführt werden?


MfG
Zitze

Zitze

O.k. hat sich erledigt... Hab mir mal die vorangegangen 744 Posts durchgelesen ;)

topfi

Ich habe mir die Pausen zwischen Zeitansagen, Temperaturen, Datum und Begrüßungen mit mehreren notifys zusammengebastelt, damit die Pausen ordentlich gesprochen werden. Teilweise habe ich dazu die Dauer der Ansagen mitgestoppt. Das war aufwendig, aber nun habe ich eine schöne und nicht so hastige Sprchausgabe.

Und plötzlich: Meine Frau und ich kamen heute fast gleichzeitig nach Hause. Tante FHEM hat sich zur Begrüßung fast überschlagen mit "Paula kommt zurück" "Paul kommt zurück" "Willkommen zu Hause, Paul", "Willkommen zu Hause, Paula" "Es ist ... Uhr" "Haustür geöffnet" "Haustür geschlossen" usw. Das sollte laut Thread eigentlich nicht funktionieren, aber es waren alle Ansagen dabei, keine fehlte. Das hat mich auch verwundert.

Nein, wir heißen nicht Paul und Paula. :D

franky08

Schade das Dirk keine Zeit hat um am Release zu arbeiten, es ist jetzt schon eine ganze Weile her, dass es etwas Neues gab. Hab mir auf github dann die letzte Beta runtergeladen, aber die ist auch schon ziemlich alt. Es standen so viele Dinge in der to do Liste, auf die wartet man dann natürlich. Vielleicht wird es ja jetzt im Winter weitergehen.  :)

VG
Frank
Debian Wheezy auf ZBOX nano/ Debian Bullseye auf 2.ter ZBOX nano F2F an 2x RaspiB
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu ,fhem5.8, CCU2,
ECMD an AVR-NET-IO mit DAC u. ADC an Junkers Stetigregelung, Siemens LOGO!8, JeeLink uvm...

Dirk

Zitat von: franky08 am 07 Oktober 2014, 23:36:13
Schade das Dirk keine Zeit hat um am Release zu arbeiten, es ist jetzt schon eine ganze Weile her, dass es etwas Neues gab.
Da gebe ich dir recht.
Ich habe das Projekt übrigens nicht aufgegeben. Und lese hier auch immer mit. Auch wenn ich nicht immer antworte :)
Somit geht es weiter. Es wird aber noch etwas dauern.

Viele Grüße
Dirk