Neue Fullscreen Browser APP für Android (WebViewControl)

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

Vorheriges Thema - Nächstes Thema

Martin Schmid

Hallo MaJu,
an deiner Stelle würde ich aus Textbausteinen einen vollständigen Text mit allen nötig Informationen zusammen bauen und den dann mit nur einem ttsSay-Befehl ausgeben lassen.
FHEM 5.5 Development (Image von Fhem.de)
Fritz!Box 7390 + HM-CFG-LAN
HM-CC-TC + HM-CC-VD
HM-LC-Dim1T-Pl-2, HM-LC-Dim1PWM-CV, HM-LC-Sw1-Ba-PCB
HM-RC-KEY3-B

MaJu

@der-Lolo
Du hast Recht, da habe ich tatsächlich nicht richtig gelesen. Das wäre eine Variante, das sind 7 notifys.

@Martin Schmid:
Das wäre die einfachere und meinerseits die zu bevorzugende Variante, insbesondere wenn später mal mehr Fenster-Sensoren dazu kommen (oder Türsensoren, da die Katzen nicht überall hin dürfen wenn wir unterwegs sind).
Allerdings liegt das leider noch weit über meinen Fähigkeiten/Kenntnissen mit FHEM.

Vermutlich lasse ich es jetzt so wie es ist. Es kommt nur eine Ansage, die habe ich aber bei allen 3 Fenstern auf eine neutrale angepasst. WELCHES Fenster letztenendes offen ist, sieht man ja auf dem Display.
Erlebnisreiche Grüße aus Leipzig!

Martin Schmid

Hallo MaJu,
wenn du folgende Routine in deine 99_MyUtils.pm integrierst, sollte die Ausgabe funktionieren.

sub
WindowsOpenString() {
  my $OpenString = "Achtung! Fenster ";
  my $OpenCount = 0;
  if (ReadingsVal("Fenster_Katzenzimmer","state","") eq "open") {
    $OpenString = $OpenString."Katzenzimmer";
    $OpenCount = $OpenCount + 1;
  }
  if (ReadingsVal("Fenster_Wohnzimmer","state","") eq "open") {
if ($OpenCount > 0) {
  $OpenString = $OpenString.", ";
}
    $OpenString = $OpenString."Wohnzimmer";
    $OpenCount = $OpenCount + 1;
  }
  if (ReadingsVal("Fenster_Schlafzimmer","state","") eq "open") {
if ($OpenCount > 0) {
  $OpenString = $OpenString.", ";
}
    $OpenString = $OpenString."Schlafzimmer";
    $OpenCount = $OpenCount + 1;
  } 
  if ($OpenCount > 0){
    if ($OpenCount > 1) {
  $OpenString = $OpenString." sind noch offen!";
}
else {
  $OpenString = $OpenString." ist noch offen!";
}
  }
  else {
    $OpenString = "Auf Wiedersehen!";
  }
fhem "set Flurtablet ttsSay $OpenString"; 
}


Der Aufruf erfolgt dann über ein Notify mit:

Wohnungstuer:open {WindowsOpenString()}



FHEM 5.5 Development (Image von Fhem.de)
Fritz!Box 7390 + HM-CFG-LAN
HM-CC-TC + HM-CC-VD
HM-LC-Dim1T-Pl-2, HM-LC-Dim1PWM-CV, HM-LC-Sw1-Ba-PCB
HM-RC-KEY3-B

MaJu

@Martin Schmid: Du bist ein Engel! Es funktioniert hervorragend! DANKE :-)
Erlebnisreiche Grüße aus Leipzig!

P.A.Trick

@Dirk: Kann es sein, dass WebViewControl ein Problem mit zwei aufeinanderfolgenden Befehlen hat?

Ich habe einen notify wie folgt:

.*PIRI_BTN_1:on {
fhem("set androidTablet ttsSay 'Ich habe eine Bewegung erkannt!';set androidTablet screenBrightness 255");
}


Der ScreenBrightness Befehl wird scheinbar "verschluckt"!
BTW: Verbose 5 bringt nicht wirklich was, oder?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Loredo

#605
Hi,


ich probiere gerade ein wenig rum.
Dabei fällt mir auf, dass der Pfas zum JavaScript wohl fix ist (/fhem/js/webviewcontrol.js) und das FHEMWEB Attribut "webname" ignoriert. Das führt bei meinem Setup dazu, dass das Script nicht geladen werden kann.
Es wäre daher prima, wenn das FHEMWEB Attribut entsprechend berücksichtigt würde.


Nachtrag 1:
Auch scheint es mir, dass das CSS/JavaScript vom Stylesheet ios7touchpad, welches ich verwende, kaputt zu gehen. Wechsle ich zwischen den Räumen, verschwinden nach dem Fertigladen meine Icons und Device Controls. Ich bekomme diese wieder, wenn ich kurz irgendwo auf eine freie Fläche tappe. Auch verrutschen einzelne Textwerte.
Dieses Verhalten scheint unabhängig davon, ob ich bereits ein WebViewControl Device in FHEM angelegt habe oder nicht (bzw. geht es nicht weg, wenn ich das Device lösche).
Update: --> lag möglicherweise daran, dass /fhem/ in webviewcontrol.js ebenfalls hart codiert ist.


Nachtrag 2:
Wenn ich ein Kommando abgesetzt habe, dann wird es scheinbar zyklisch in einer Dauerschleife ausgeführt. Setze ich beispielsweise einen TTS Befehl ab, wird er jedes Mal wiederholt, wenn ich in einen anderen Raum wechsle.
Update: --> lag möglicherweise daran, dass /fhem/ in webviewcontrol.js ebenfalls hart codiert ist.

Nachtrag 3:
Apropos TTS: Ich habe festgestellt, dass manchmal die englische Aussprache genommen wird, statt der deutschen. Konnte ich mir nicht erklären, da vorher Deutsch genommen wurde. Bei den Tablet Einstellungen habe ich sogar US-Englisch als Default hinterlegt. Da hätte ich sogar erwartet, dass ich dauernd nur die englische Stimme bekomme. So wundert es mich jetzt umso mehr, dass ich die deutsche Stimme (meistens) habe.


Sorry, falls diese Dinge früher schon erwähnt wurden. Ich gebe zu, 42 Seiten Konversation wollte ich jetzt nicht lesen. Ich denke das kann jeder nachvollziehen  ;)


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Markus

Danke Martin Ich wollte das schon lange Realisieren aber hatte noch keine zeit gehabt :-D

Hab es jetzt Geklaut  :P

Gruß Markus
Raspberry Pi2 als FHEM-Plattform
HM, FS20, 1-Wire, PanStamp,LW12,Intertechno,ESPEasy,Alexa

mi.ke


Ich bräuchte mal einen Denkanstoß.....

kann ich den Befehl"set keepScreenOn on" irgendwie abfangen
bzw. keepScreenOn true/false als userreading setzen?

Cheers
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

yogiflop

Zitat von: Dirk am 22 April 2014, 16:51:59
Noch nicht, muss ich mir mal ansehen was da kollidiert.

@yogiflop und @Thomas_Homepilot,
Die Kommunikation der App mit FHEM oder auch anderen Webservices geschieht derzeit ausschließlich über den Webview. Also die aktuelle angezeigte Webseite.
Alle Events wie auch Batteriestatus können per Javascript ausgewertet werden.
Somit muss in euren Seiten "nur" ein entsprechendes Javascript eingebaut werden was die Events verarbeitet und dann an FHEM z.B. per AJAX weiterleitet.

In einer späteren Version werde ich einen zusätzlichen Kommunikationskanal einbauen, der auch ohne den Webview funktioniert.

Gruß
Dirk

Könntest du eine kurze Anleitung posten, wie man so etwas in eine normale Webseite einbinden kann, bzw. das Script posten ??


gruß Marc
CubieTruck mit FHEM 5.7
433MHz, 868MHz HMLan
div. Baumarktsteckdosen, 3x HM
div. MiLight's

PatrickR

Mahlzeit!

Zitat von: P.A.Trick am 27 April 2014, 13:47:55
@Dirk: Kann es sein, dass WebViewControl ein Problem mit zwei aufeinanderfolgenden Befehlen hat?
[...]

Das Problem habe ich leider auch. Hatte testweise(!) auch schon mit Sleeps gearbeitet, was - abgesehen von den wenig überraschenden Nebenwirkungen auf FHEM - keinen Effekt hatte.

Patrick

lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Phil__

Hallo,

habe in meiner FHEM Konfiguration versucht "codemirror" zum laufen zu bringen. Leider ohne Erfolg!
Habe WebViewControl und das Dashboard am laufen, neustes Updates von heute (08.05.2014), hab gelesen das WebViewControll da Probelme macht?

Code: [Auswählen]

attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"blackboard", "lineNumbers":true }


Wenn ich das so konfiguriere passiert einfach nichts, ich sehe im WebEditor die Standardansicht.

Gibt es da eine Lösung?

Grüße
Philipp
Server: Intel DH77EB + Core i3-2120 mit Ubuntu Server 14.04
Backup: Beaglebone Black
Homematic: HM-LAN-Adapter, HM-CC-RT-DN, HM-CC-TC, HM-LC-SW1-PL2, HM-SEC-RHS, HM-SEC-SC, HM-TC-IT-WM-W-EU, HM-WDS10-TH-O
Weitere: Denon-AVR, PhilipsTV, PhilipsHue, Raspi+XBMC
Nexus 7 (WebViewControl + FTUI)

ext23

Mir fällt da gerade auch noch was ein, ich hätte da noch ein feature request:
Mein Tablet gibt immer Audio feedback wenn ich tippe, nur leider nicht in der WVC App. Kann man sowas implementieren? Warum brauch ich das? Ich bin mir manchmal nicht sicher ob der den Touch erkannt hat, und die Seiten von FHEM brauchen manchmal etwas für den Aufbau. Da würde mir ein "Tastenklick" persönlich ganz gut tun.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

aeronaut

Hi Dirk, sollte die App eigentlich problemlos im Hintergrund laufen können? Habe auf verschiedenen Geräten festgestellt, dass die Verbindung vom FHEM zum Device nach einiger Zeit (2-6 Stunden, kann es noch nicht enger eingrenzen) verloren geht, wenn das Device entweder im Standby ist oder (und das begräbt aktuell den geplanten Einsatz eines Orbsmart Soundpad 395 als Wecker :o) wenn eine andere App, z.B. die Uhr-App, im Vordergrund ist (WVC pausiert).

Wie sollte sich die App in dieser Situation verhalten?

Habe deinen Tip bzgl. Refresh des Webs umgesetzt (erstmal einen refresh von 300s), das brachte keine Änderung.

Übrigens: Mit selbstunterzeichneten Zertifikaten hatten zwei Geräte ohne Root-Zugriff ebenfalls keine Probleme.

lg
aeronaut

Dirk

Hallo Zusammen,

Ich habe folgende Punkte mit in den Isuetracker mit aufgenommen.
Sorry das die Zeit aktuell etwas knapp ist, und die Weiterentwicklung dadurch etwas schleift.

Zitat von: P.A.Trick am 27 April 2014, 13:47:55
@Dirk: Kann es sein, dass WebViewControl ein Problem mit zwei aufeinanderfolgenden Befehlen hat?

Zitat von: Loredo am 27 April 2014, 16:47:18
Dabei fällt mir auf, dass der Pfas zum JavaScript wohl fix ist

Zitat von: Phil__ am 08 Mai 2014, 13:39:52
habe in meiner FHEM Konfiguration versucht "codemirror" zum laufen zu bringen. Leider ohne Erfolg!
Habe WebViewControl und das Dashboard am laufen, neustes Updates von heute (08.05.2014), hab gelesen das WebViewControll da Probelme macht?
Philipp

Zitat von: ext23 am 08 Mai 2014, 17:41:04
Mir fällt da gerade auch noch was ein, ich hätte da noch ein feature request:
Mein Tablet gibt immer Audio feedback wenn ich tippe, nur leider nicht in der WVC App. Kann man sowas implementieren?






Zitat von: mi.ke am 30 April 2014, 11:11:01
kann ich den Befehl"set keepScreenOn on" irgendwie abfangen
bzw. keepScreenOn true/false als userreading setzen?
Was möchtest du da abfangen? Was genau hast du vor?

Zitat von: yogiflop am 30 April 2014, 11:15:58
Könntest du eine kurze Anleitung posten, wie man so etwas in eine normale Webseite einbinden kann, bzw. das Script posten ??
Eine API-Dokumentation hatte ich schon lange vor.
Hier ein kurzes einfaches Beispiel für eine Toast-Message:
<html>
<head>
<script type="text/javascript" src="cordova-2.3.0.js"></script>
<script type="text/javascript" src="webviewcontrol.js"></script>
</script><script type="text/javascript">var wvcDevices = {'12345': 'androidTablet'};</script>
</head>
<body>
<input type="button" value="Toast Hello" onclick="deviceControl.toastMessage('hallo')">
</body>
</html>


Zitat von: aeronaut am 11 Mai 2014, 12:42:32
Hi Dirk, sollte die App eigentlich problemlos im Hintergrund laufen können? Habe auf verschiedenen Geräten festgestellt, dass die Verbindung vom FHEM zum Device nach einiger Zeit (2-6 Stunden, kann es noch nicht enger eingrenzen) verloren geht, wenn das Device entweder im Standby ist oder (und das begräbt aktuell den geplanten Einsatz eines Orbsmart Soundpad 395 als Wecker :o) wenn eine andere App, z.B. die Uhr-App, im Vordergrund ist (WVC pausiert).
Zur zeit ist WVC tatsächlich auf reinen Frontendbetrieb ausgelegt. Das wird in einer Späteren Version implementiert.
Ich meine auch das es dafür schon ein Eintrag im Isuetracker gibt.

ZitatÜbrigens: Mit selbstunterzeichneten Zertifikaten hatten zwei Geräte ohne Root-Zugriff ebenfalls keine Probleme.
Bei gerooteten Geräten scheint das zu funktionieren.

Gruß
Dirk

P.A.Trick

Hallo Dirk,

kannst du dich noch dem Problem mit den unterschiedlichen Sprachen (Deutsch/Englisch Mix?!) annehmen?
Vielen lieben Dank im Voraus!

LG
Patrick
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn