Neue Fullscreen Browser APP für Android (WebViewControl)

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

Vorheriges Thema - Nächstes Thema

Samsi

Hallo Dirk,

klar das Du keine Gesichtserkennung programmierst. Auch eine ordentliche Bewegungserkennung ist schon sehr anspruchsvoll wenn man nicht in jedem Bildrauschen eine erkennung sehen will ;). Ich dachte aber es gibt vielleicht dafür schon APIs.
Bei Adobe Flash z.B. ist eine Bewegungserkennung schon integriert. Und bei Android gibt es ja Face-Unlock.  Aber eine kurzer Blick in die Android API hat mir jetzt auch gezeigt, das es das nicht "Out of the Box" gibt.

Für mich persönlich ist das locken der APP ohnehin wichtiger ;)

Viele Grüße
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Tobias

Also wenn wir schon bei "Wünsch dir was" sind, möchte ich  mir wünschen, das man per fhem Befehl ein "ScreenOn bei Berührung des Bildschirms" an und abstellen kann.

Edit: wann möchtest du denn die erste finale Version ins SVN stellen?
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

mediastudio

Hallo Dirk,

es war der Startschuss für eine super APP!
Zaghaft ausgedrückt "Ich möchte hier einmal meine Android APP "WebViewControl" Vorstellen."

Es funktioniert alles so wie es hier beschrieben wird, eine Hammer-APP!
Ich habe Fhem auf der FB und die APP auf einem LG P700 Optimus Smartphone
und EnOcean als Home Automation.
Fhem ist ja schon eine unbeschreiblich gute Software, aber mit dieser APP werden
Funktionen realiseirt, die dem ganzen nun das i-Tüpfelchen aufsetzen.
"Voice-controlled Home Automation with Android" ist für die Zukunft
nicht mehr wegzudenken und wird in unserem Alltag weiter Einzug halten.

Ich habe im Bereich AAL "Ambient Assisted Livingeiniges" Software entwickelt, hier mal ein Link:
http://partner.vde.com/bmbf-aal/aal-steckbriefe/documents/wf-consulting%20aal-steckbrief%202010.pdf
Fazit, dass Projekt mit Fhem und dieser APP ist übergreifend einsetzbar.
Das Thema Voice-controlled Home Automation ist brandaktuell:
Entwicklung geräteübergreifender Bedienkonzepte und Graphical
User Interfaces (GUIs) für AAL Anwendungen im Projekt SmartSenior Link:
http://www.design-research-lab.org/wp-content/uploads/2012/02/120118_aal.pdf
Also weiter so, ich bin stolz auf alle die dieses Fohrum mit Ideen bereichern.

OK, ich musste mal meiner Begeisterung für dieses Forum zum Ausdruck bringen.

Gruß
wilfried Fröse

mediastudio

Hallo, eine Frage.
Ist es möglich, mit "Oweb Voice Input" für Chrome die Funktion der Sprachsteuerung auf dem
lokalen Browser zu steuern. Also wenn man die "speechRecognizer / voiceRecognitionLastResult" Funktion
so nutzt wie bei der "WebViewControl APP". So könnte man auch ohne Probleme mit einem Widows Laptop
oder PC über das Micro Sprachbefehle geben. Ich habe nun in der Befehlsleiste das "Chrome-Micro" und wenn
ich das anklicke, dann bekomme ich den gesprochenen Befehl in die Befehlsleiste. Oder man könnte ein neues
Eingabefeld erzeugen und über notify bei Änderung den Text an voiceRecognitionLastResult übergeben.


(siehe Anhang / see attachement)

(siehe Anhang / see attachement)

(siehe Anhang / see attachement)


   

Samsi

Hallo Dirk,

ich hab noch ein bisschen über den Passwortschutz nachgedacht, und wie man den Aufwand in der App auf ein Minimum reduzieren könnte:

Zuerst benötigt man einen Floorplan in FHEM bei dem alle Menüs ausgeschaltet sind, so das man von dem Floorplan nicht mehr weg-navigieren kann. Dort erstellt man dann einfach mit dem Remote Control Modul eine Fernbedienung mit Zahlen, Bildern oder Buchstaben, was auch immer einem gefällt und realisiert darüber die Passworteingabe. Das kann dann jeder für sich selbst machen, Du hast damit dann keine Arbeit.

Wenn ich jetzt nicht will das jemand mit meinem Android und WebViewControl arbeitet, dann zeige ich diesen Floorplan an (z.B. wenn ich meine Alarmanlage einschalte). Das geht ja schon mit der Javascript-Erweiterung die ich weiter oben gepostet habe.

Wenn jetzt über die Remote in dem Floorplan eine passender Code eingegeben wurde kann ich wieder zu einem anderen Raum wechseln in dem man wieder alles steuern kann.

Drei Probleme müssen gibt es aber noch:

a) Die URL in den APP settings darf nicht mehr geändert werden. Die APP settings müssten also mit einem Passwort versehen werden, das sollte nicht so schwer sein.
b) Die APP müsste einen Reset Button haben, falls das PAsswort vergessen wurde. Mit dem Reset müsste dann aber auch das FHEM Passwort gelöscht werden.
b) Die APP müsste Ihren Status (Resume,Start) als notify an FHEM geben (hab ich jetzt nicht im Log gesehen, deswegen denke ich das das noch nicht passiert)

So kann man den eingeschränkten Floorplan in die APP-Einstellungen eingeben, beim Neustart der APP erscheint dann erst mal der gesperrte Floorplan. Kommt dann das Resume oder Start Notify, kann man in FHEM prüfen ob der gesperrte Status tatsächlich (noch) besteht und wenn nicht gleich eine andere FHEM-Seite anzeigen.

Gegenüber meiner ersten Idee musst Du nicht die ganze APP sperren und jeder kann seine Passworteingabe selbst gestalten. Da die Auswertung dann in FHEM stattfindet kann man sich auch Passworteingaben zusammenbasteln die verschiedene Passwörter akzeptieren oder aber auch einfach einen Floorplan erstellen der nur bestimmte Aktionen zulässt oder aber eine Kombination aus Passwort und verschiedenen Schaltern.

Insgesamt finde ich diese Lösung noch besser, da man viel mehr Möglichkeiten hat.

Viele Grüße















FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Dirk

Hallo Samsi,

Es gibt hier tatsächlich viele Sachen die man beachten müsste.
Eigentlich müsste das Prüfen von Berechtigungen für einzelnen Befehle von FHEM durchgeführt werden. Ich würde das auf Define-Ebene im FHEM realisieren. Pro definiertem Gerät müsste man z.B. Berechtigungen definieren können. Für ein Set muss man dann diese Berechtigung besitzen, welche dann z.B. per WebIU abgefragt wird.

Alles andere ist nicht wirklich sicher.

Zitata) Die URL in den APP settings darf nicht mehr geändert werden. Die APP settings müssten also mit einem Passwort versehen werden, das sollte nicht so schwer sein.
Das kann man machen aber:

Zitatb) Die APP müsste einen Reset Button haben, falls das PAsswort vergessen wurde. Mit dem Reset müsste dann aber auch das FHEM Passwort gelöscht werden.
So eine Reset-Möglichkeit gibt es bereits. Man kann nämlich die APP-Settings in den Android-Einstellungen zurück setzen. Das löscht dann alle Einstellungen der App.
Und das kann im Grunde jeder tun, und dann in der App eine neue URL vergeben.

Daher würde ich die oben genannte Version präferieren.
So würde es aus meiner Sicht keine Umgehungsmöglichkeit geben.

Gruß
Dirk

Samsi

Hallo Dirk,

ZitatUnd das kann im Grunde jeder tun, und dann in der App eine neue URL vergeben.
Und, soll er doch eine neue URL vergeben, nahc einem REset der App-Einstellungen ohne das in der App gespeicherte Passwort kann er damit ja nichts anfangen ;)
Wenn der Reset über Android möglich ist ,um so besser, also musst Du nur die Einstellungen per Passwort schützen und den Resume-Status als Notify an FHEM weitergeben (was Du vermutlich ohnehin vor hattest, der Resume Status in FHEM ist ja auch für andere Dinge gut zu wissen).
Und die Einstelllungen zu schützen ist sicherlich auch nicht verkehrt, andere FHEM Apps zeigen das Passwort sogar noch im Klartext an (oh graus ;) )

ZitatEigentlich müsste das Prüfen von Berechtigungen für einzelnen Befehle von FHEM durchgeführt werden. Ich würde das auf Define-Ebene im FHEM realisieren. Pro definiertem Gerät müsste man z.B. Berechtigungen definieren können. Für ein Set muss man dann diese Berechtigung besitzen, welche dann z.B. per WebIU abgefragt wird.
So viel Aufwand würde ich zunächst gar nicht betreiben. Mit meinem Vorschlag, kann jeder einen oder mehrere Floorpläne definieren (die müssen ja keine Hintergrundgrafik enthalten sondern nur die Schalter) wie er möchte,nur mit dem was er steuern kann. Mit einem "Passwort" floorplan kann jeder Username und/oder Passwort abfragen und dann den geeigneten eingeschränkten Floorplan anzeigen. Wer keine Usernamen abfragen will, verwendet ein Passwort zusammen mit der appID des android Tablets.

Später, wenn du mal NFC Unterstüzung oder anderes hast, kann man genau den Floorplan anzeigen der zu dem NFC-Tag gehört. Also z.B. halte ich meinen NFC Tag ans Android, die Tag ID wird per Notify an FHEM gesendet und FHEM zeigt mir den dazu passenden Floorplan an.

Ich denke früher oder später geht das auch mit FHEM Räumen, wenn man diese so einstellen kann, das diese auch keine Eingabefeld oder links zu anderen Räumen haben. Vermultich geht das auch jetzt schon irgendwie wenn man die CSS anpasst.

Wenn Du es also irgendwie schaffen würdest, das Passwort für die Einstellungen und die Resume-Notify einzubauen, würde ich sofort ein paar Demo Floorpläne erstellen und diese hier zur Verfügung stellen.

Viele Grüße
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

rudolfkoenig

> Für ein Set muss man dann diese Berechtigung besitzen, welche dann z.B. per WebIU abgefragt wird.

Das ist aber nur dann ok, wenn der Benutzer nie die Moeglichkeit hat, Freitext einzugeben.
In FHEM gibt es mehr Moeglichkeiten per perl-eval was zu setzen, als ich das an meinen Haenden und Fuessen abzaehlen kann, und mit jedem der Evals kann man prinzipiell beliebigen Unfug treiben.

> das diese auch keine Eingabefeld oder links zu anderen Räumen haben.

Mit hiddenroom (http://fhem.de/commandref.html#hiddenroom) kann man zwar einiges verstecken, aber sobald der Benutzer Zugang zum URL-Feld hat, ist das alles Makulatur.

Dirk

ZitatDas ist aber nur dann ok, wenn der Benutzer nie die Moeglichkeit hat, Freitext einzugeben.
Das ist erstmal nur eine Idee. Konsequent muss FHEM beim ausführen des Set natürlich überprüfen ob die Berechtigung vorhandem ist. Dann ist es egal ob des Set per URL, per Telnet older wie auch immer abgesetzt wird.

Gruß
Dirk

rudolfkoenig

>  Konsequent muss FHEM beim ausführen des Set natürlich überprüfen ob die Berechtigung vorhandem ist.

Ich fuerchte Du hast meine Aussage vorhin
Zitatmit jedem der Evals kann man prinzipiell beliebigen Unfug treiben.
nicht ernst genommen. Ich kann mit einem eval z.Bsp. direkt auf die serielle Schnittstelle schreiben, und ist mir herzlich egal, was set dabei prueft oder nicht.

Dirk

Das habe ich schon. Es ist mir bewusst was eval macht. Daher ist das Ganze nicht so einfach umzusetzen.
Und natürlich kann man um eval einen Wrapper bauen der ggf. vorher eine Berechtigungsprüfung ausführt. Bisher ist das auch lediglich eine Idee.

Gruß
Dirk

Samsi

Zitat von: rudolfkoenig schrieb am Do, 29 August 2013 18:47>

> das diese auch keine Eingabefeld oder links zu anderen Räumen haben.

Mit hiddenroom (http://fhem.de/commandref.html#hiddenroom) kann man zwar einiges verstecken, aber sobald der Benutzer Zugang zum URL-Feld hat, ist das alles Makulatur.

Eben, und deshalb denke ich, kann das mit der APP so einfach funktionieren, denn diese hat kein Eingabefeld für die URL (hab ich zumindest so in Erinnerung, wenn doch muss das natürlich auch weg) außer in den Settings. Und wenn Dirk davor ein Passwort macht, dann kommt da auch keiner dran.
Dann einfach in der App einen Floorplan/Raum ohne Eingabefeld nur mit Buttons etc. angezeigt und schon hat man einen Raum mit eingeschränkten Rechten.

Viele Grüße

FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Breaker

Hallo,


ich denke das Thema Sicherheit ist bestimmt für einige Interessant (für mich weniger) aber wenn dann doch nur dafür das niemand (z.B. Jugendlicher Nachwuchs) irgendetwas verstellt, löscht und sonst irgendwie absichtlich oder versehentlich ändert. Ich glaube kaum, dass sich potentzielle Einbrecher mit Perl oder fhem auskennen und da lange rumfrickeln, die werden eher die Hauptstromzufuhr und Telefon unterbrechen. Für absolute Sicherheit im Haus muß ein evtl. von fhem aus sichtbares aber sonst autarkes System installiert sein (so gewollt).
Ich glaube auch weiterhin das weder meine Familienmitglieder, Gäste noch ich selbst vor jedem Kommando ein Passwort eingeben wollen da gehe ich lieber gleich zum entsprechenden Gerät und bediene es direkt - damit wäre die Hausautomation zum Teil ad absurdum geführt.

Evtl. sollte man das Thema an anderer Stelle hier im Forum weiter verfolgen?

Wichtiger finde ich persönlich (ich möchte aber niemanden Prioritäten vorgeben) die bereits in diesem Thread angesprochenen Dinge wie:

Ein gezieltes Einschalten hab ich noch nicht eingebaut. Könnte mit auf die todo-Liste.

Eine "Command-Queue" steht hier schon auf der Liste. Über die Details bin ich mir noch nicht ganz klar.

Vermutlich werde ich zunächst einen "Alive-Status" einführen, dann kann man vor dem Senden prüfen ob das Gerät verfügbar ist.

Der Gipfel wäre SMS Texte an FHEM zu triggern ;-)
Das sollte alles Möglich sein. Location/Gps währ noch eine Idee. Z.b. zu schalten von Aktionen wenn das Handy an bestimmten Koordinaten ist. Das geht zwar alles auch mit Dritt-Apps ich habe aber auch lieber alles in einer APP

Ich werde die Wachbleiben / Standby -Sachen auf alle Fälle im Auge behalten
Die Ganze Keepalife / Standby-Sache schau ich mir auch noch an.
Eine andere Möglichkeit währ eine Pushbenachrichtigung an das Gerät zu schicken. Das ist im Moment auch mein Favorit.
Gibt es nicht irgendeine Möglichkeit das Gerät über fhem zu wecken?
Derzeit noch nicht. Das steht aber auf der ToDo-Liste

Ständiges "Lauschen" sollte auch gehen. Man sollte dann aber eine "Schlüsselwort" haben, damit nicht ungewollt Befehle abgesetzt werden.

Um was für ein Videostream geht es dir? MotionJpeg einer Netzwerkkamera?
Dafür ist eine Integration schon in Test bei mir. Aber als eigener View. der dann z.B. von FHEM aus gestartet wird.

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

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
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

... dann funktioniert die Sprachausgabe nur, wenn ich den Schalter von einem anderen Rechner
Das ist noch eine bekannte Einschränkung. Ich meine mich zu erinnern das ich das oben schon mal aufgeschrieben hatte. Falls nicht, dann ist es nun bekannt :)
Das steht aber auch schon auf der ToDo Liste

Das ist mir bisher leider nie aufgefallen, da es am Tablet bei mir tatsächlich keine Tastatureingaben gibt.
Wird gefixt.

Am Ende könnte die Qualität der Kammera entscheidend sein.
Ich lasse mich aber gerne Breitschlagen und werde mich mal damit beschäftigen.


Wenn Dirk aber wie wir alle wenig Zeit und viele Baustellen hat kann man sich nur in Geduld üben oder versuchen etwas beizutragen (wie Samsi weiter oben)


Gruß

Samsi

Hallo Breaker,

ZitatIch glaube kaum, dass sich potentzielle Einbrecher mit Perl oder fhem auskennen und da lange rumfrickeln,
Das sehe ich auch so. Aber wenn ich jetzt mein Tablet einfach so in den Flur stelle, muss er das ja nicht. Er sieht alle Räume klickt auf den Raum Alarmanlage und dann auf ausschalten.
Deshalb möchte ich auch nicht, das Dirk sich zu sehr damit beschäftigt ein komplettes Rechte-System auszudenken und das ganze zu kompliziert wird. Ich denke ein Passwort vor die Einstellungen zu machen und den Resume-Status zu übertragen würde völlig ausreichen und hoffe das Dirk dafür auch ein bisschen Zeit findet ;)

Viele Grüße
FHEM 5.5 / BBB Debian Wheezy

Homematic CFG-LAN

HM-Sec-MDIR / HM-Sec-SD / HM-Sec-WDS / HM-LC-Sw2-FM / HM-Sec-SC / HM-LC-Sw1PBU-FM / HM-SCI-3-FM / HM-Sec-Key / HM-RC-Key3-B / HM-LC-Dim1TPBU-FM /  HM-CC-RT-DN / HM-PBI-4-FM / HM-RC-Key4-2 / HM-ES-PMSw1-Pl / HM-LC-Sw4-WM

Dirk

ZitatDeshalb möchte ich auch nicht, das Dirk sich zu sehr damit beschäftigt ein komplettes Rechte-System auszudenken und das ganze zu kompliziert wird.
Ne, das war erstmal nur ne Idee.
Wenn ich dich richtig verstanden habe reicht dir eine einfache Passwortabfrage für die Settings?

An der Bewegungserkennung mit der Frontkamera bin ich übrigens auch dran. Ihr habt mich überredet :)
Im "Labor" funtioniert das sogar schon. Ich muss nur noch sehen dass das mit dem Bildschirm-Aus, ohne Tiefschlaf klappt. Und natürlich das "Aufwecken" dann wieder.

Gruß
Dirk