Neues Modul FULLY für Steuerung vom Fully Browser

Begonnen von zap, 03 November 2017, 19:31:22

Vorheriges Thema - Nächstes Thema

zap

Hallo,

der Fully Fullscreen Browser erfreut sich ja großer Beliebtheit wenn es um die Darstellung von Smarthome Oberflächen geht. Daher habe ich mich entschlossen, für die Steuerung des Browsers ein kleines Modul zu schreiben. Damit kann man einen Fully Browser auf einem Android Tablet steuern sowie Informationen abfragen.

Die Installation erfolgt über FHEM Update. Bitte darauf achten, dass die Fully Version aktuell ist und Fully alle notwendigen Rechte hat.

Achtung! Es wird die Plus Version von Fully für 4,90 € benötigt, da das vom Modul verwendete REST Interface nur in dieser Version enthalten ist.
Die Plus Version bringt außerdem noch erweiterte Funktionen wie z.B. Bewegungserkennung mit. Außerdem ein Javascript API, dessen Funktionen man z.B. in eine Tablet UI Oberfläche integrieren kann. Mehr über die Features der Plus Version gibt es unter http://www.ozerov.de/fully-kiosk-browser/de/

Device anlegen:

define myDev FULLY IP-Tablet Passwort [Poll-Intervall]

Das Passwort ist das Remote-Admin Passwort, das in Fully eingestellt ist. Es muss zwingend eins gesetzt sein. Wenn ein Poll-Intervall angegeben ist (10 bis 86400 Sekunden), fragt FULLY in diesem Intervall die Readings ab. Ein Intervall von 0 deaktiviert das Polling. Dann werden die Readings nur nach Ausführung eines Befehls aktualisiert.

Alles weitere siehe Commandref.

Was bisher in FULLY.pm implementiert ist:

- Bildschirm aus/einschalten
- Bildschirm sperren/entsperren
- Browser Cache löschen
- Fully beenden/neu starten
- In Fully zu einer bestimmten URL navigieren
- Text als Sprache ausgeben

Einige Informationen zu Fully und dem Tablet werden als Readings bereitgestellt. Hier ein Beispiel:


     2017-11-03 19:08:56   active_fragment webview
     2017-11-03 19:08:56   admin_rights    on
     2017-11-03 19:08:56   android_sdk     23
     2017-11-03 19:08:56   app_code_data_cache ?/?/? KB
     2017-11-03 19:08:56   app_ram_used_free 17733/80570 KB
     2017-11-03 19:08:56   battery_level   79
     2017-11-03 19:08:56   current_page    http://smarthome:8080/tablet/#index_main.html
     2017-11-03 19:08:56   device_type     SM-T550 (samsung)
     2017-11-03 19:08:56   foreground_app  de.ozerov.fully inactive
     2017-11-03 19:08:56   fully_device_id xxxxxxxxxxxxxx
     2017-11-03 19:08:56   fully_version   1.20.1
     2017-11-03 19:08:56   hostname        galaxy.fritz.box
     2017-11-03 19:08:56   ip4_address     192.168.1.66
     2017-11-03 19:08:56   ip6_address     xxxx::xxxx:xxxx:xxxx:xxxx
     2017-11-03 19:08:56   keyguard_locked off
     2017-11-03 19:08:56   kiosk_mode      off
     2017-11-03 19:08:56   last_app_start  01.11.17 18:58:12
     2017-11-03 19:08:56   mac_address     7C:91:22:80:DB:58
     2017-11-03 19:08:56   maintenance_mode off
     2017-11-03 19:08:56   motion_detection off
     2017-11-03 19:08:56   movement_detection off
     2017-11-03 19:08:56   power           unplugged
     2017-11-03 19:08:56   screen_brightness 94
     2017-11-03 19:08:56   screen_status   off
     2017-11-03 19:08:56   start_url       http://smarthome:8080/tablet
     2017-11-03 19:08:56   state           ok
     2017-11-03 19:08:56   total_ram_used_free 1023748/438704 KB
     2017-11-03 19:08:56   wifi_ssid       "xxxxxxx"


Das REST API hat noch ein paar andere Features, die ich noch einbauen werde.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

amenomade

Zitat- Text als Sprache ausgeben (noch nicht final implementiert)
Da würde mich interessieren. Wie ist das zu konfigurieren?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

enno

Danke für die Arbeit. Vielleicht für andere der Hinweis, in Fully Browser unter Settings "Remote Administration"
- Enable Remote Administration
- Remote Admin Password
- Enable Remote Admin from Local Network

Dann:

define <name> FULLY <IP> < password> <interval>

Dann lief es bei mir sofort. Ich bin gespannt wie es weitergeht....

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

zap

Zitat von: amenomade am 03 November 2017, 20:22:42
Da würde mich interessieren. Wie ist das zu konfigurieren?

Da gibt es nichts zu konfigurieren. Einfach

set myFully speak "Text"

Gibt den Text über den Tablet Lautsprecher aus. Was noch fehlt ist die URI Encodierung, d.h. im Moment Leerzeichen mit %20 angeben usw.


2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

amenomade

Bei mir geht das nicht. Das Device in FHEM ist korrekt angelegt, Status ist ok, Readings sind da und werden regelmässig aktualisiert. Auf der Tablett ist Fully PLUS mit gültiger Lizenz installiert. Die steht nicht auf stumm.

Tortzdem wird nix ausgesprochen.

EDIT: on und off gehen auch. Nur speak nicht
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Liegt bestimmt an die Tablet, da schon "http://<tabletip>:2323//?cmd=textToSpeech&text=[text]&password=[pass] nicht funktioniert...

Aber wo???
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

So... jetzt bin ich ein Schritt weiter. Nach Aktualisierung vom Google TTS App, und von Fully, kriege ich was gesagt. Allerdings aber NUR das erste Wort von meinem Text.

Ich habe im Modul folgendes hinzugefügt:
Zitatelsif ($opt eq 'speak') {
      my $text = shift @$a;
      Log3 $name, 3, "FULLY: Text ist $text";
      return "Usage: set $name speak {Text}" if (!defined ($text));
      $response = FULLY_Execute ($hash, "textToSpeech", { "text" => "$text" });

Und was kommt in der Log, wenn ich z.B. set Fully Bonjour bonjour eingebe:
Zitat2017.11.04 13:34:42 3: FULLY: Text ist Bonjour
und ich höre "Bonjour"

Mit set Fully speak "Bonjour bonjour" (dann mit Quotes):
Zitat2017.11.04 13:36:25 3: FULLY: Text ist Bonjour bonjour
ABER es wird nix ausgesprochen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

enno

#7
Heute Nacht um drei ist das Modul auf "error" gegangen. Hat sich nicht selbst wieder verbunden. Nachdem ich heute Morgen "update" angefordert habe, war der Status wieder "ok".

Soll ich einen Watchdog ansetzen, oder ist geplant im Modul selbst ggf. einen reconnect einzubauen?

Text habe ich dem Gerät (S4 Mini mit Cyanogenmod) auch noch nicht entlockt, aber das schiebe ich auf ein fehlendes Google App...
Habe TTS von Google installiert, nun kommt der Text. Wenn ich Leerzeichen wie oben von zap geschrieben mit " %20" codiere, kommen auch mehrere Worte ohne Probleme.


Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC

CoolTux

Zitat von: amenomade am 04 November 2017, 13:37:29
So... jetzt bin ich ein Schritt weiter. Nach Aktualisierung vom Google TTS App, und von Fully, kriege ich was gesagt. Allerdings aber NUR das erste Wort von meinem Text.

Ich habe im Modul folgendes hinzugefügt:
Und was kommt in der Log, wenn ich z.B. set Fully Bonjour bonjour eingebe: und ich höre "Bonjour"

Mit set Fully speak "Bonjour bonjour" (dann mit Quotes):ABER es wird nix ausgesprochen.

Du musst sicherlich URL codieren. Also erstmal ein Wort testen wenn das geht ersetzt du Leerzeichen durch %20
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amenomade

Exact! Mit %20 funktioniert es. M.A. sollte das aber im Modul kodiert werden ;)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Ja und das hat der Author ja auch so am Anfang geschrieben das er das noch umsetzen möchte. Bis dahin soll man es so machen wie ich geschrieben habe.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amenomade

Ohje.
ZitatWas noch fehlt ist die URI Encodierung, d.h. im Moment Leerzeichen mit %20 angeben usw.
Das hatte ich tatsächlich übersehen. Sorry!
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

CoolTux

Nicht wild. Deswegen hatte ich es noch mal erwähnt.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

zap

#13
Bei mir ist das automatische Update auch stehen geblieben. Muss ich mal näher untersuchen. Möglicherweise ein Timing Problem wenn das Tablet in Standby geht. Auch ein get update hat nicht geholfen. Erst ein set on.

Update: Einen Fehler habe ich schon gefunden. Wenn das automatische Update einmal fehlschlägt, wird es nie wieder ausgeführt.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

zap

Ich habe eine neue Version im 1. Beitrag hochgeladen. Änderungen:

- Der Text bei "set speak" wird nun URL konform kodiert (Modul URI::Escape wird nun benötigt)
- Fehler behoben, der zum Abbruch der automatischen Updates führen konnte
- Attribut requestTimeout eingeführt. Falls das automatische Update öfters fehlschlägt oder auch wenn Befehle nicht ausgeführt werden, kann man diesen Wert etwas höher setzten. Standard ist 4 Sekunden, ggf. mal mit 8 Sekunden versuchen.
- Das Internal nextUpdate zeigt an, wann die Readings das nächste Mal aktualisiert werden.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB