[ AMAD2 - obsolete] 74_AMAD.pm zur Steuerung eines Androidgerätes

Begonnen von CoolTux, 02 März 2016, 11:14:41

Vorheriges Thema - Nächstes Thema

visionsurfer

Hi,

alles klar. Danke. Hab ich mir angeschaut. Leider hab ich noch nicht verstanden, wie ich dann genau den Browser den ich auf meinem NexusTablet durch AMAD2 öffnen lasse, automatisch reloaden kann.
Also wie ich das in meine Befehlsfolge mit einbauen könnte, das es dann auch richtig angewendet wird. Zur richtigen Zeit und an der richtigen Stelle.

Ma_Bo

Über welche FHEMWEB Instanz öffnest du fhem auf dem Tablet?

Habe gesehen dass du den Port 8086 nutzt, aber wie lautet der Name von FHEMWEB?
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Ma_Bo

trigger xxx JS:location.reload(true)

Du brauchst nur das xxx durch deinen Namen ersetzen, dann sollte es gehen.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

visionsurfer

Hmmm, wie meinst du das ? Ich öffne das Tablet und den Browser ja über AMAD2. Dann lass ich dort eine URL öffnen mit einem JPG Bild. Da läuft auf dem Tablet erst mal überhaupt nichts von FHEM.

Meine Definition sieht so aus:

define tuerstation DOIF ([callmonitor:event] eq "ring")(get mobotix image)(set TabletNexus screen on)(set TabletNexus openURL http://192.168.178.49:8086/fhem/www/snapshots/mobotix_snapshot.jpg)

Oder verstehen wir uns da falsch ?

Grüße,
Visionsurfer

Ma_Bo

#1099
Versuch bitte einfach mal ein

trigger WEB JS:location.reload(true)

dann sollte sich die Seite auf dem Tablet reloaden, vorraussetzung ist, dass die Seite auf dem Tablet geöffnet ist.

Wenn das geht, dann kannste das so einbauen, mit den wait Zeiten müsstest du schauen, wie es am besten passt, ist hier nur ein Beispiel:

define tuerstation DOIF ([callmonitor:event] eq "ring")(get mobotix image)(set TabletNexus screen on)(set TabletNexus openURL http://192.168.178.49:8086/fhem/www/snapshots/mobotix_snapshot.jpg)(trigger WEB JS:location.reload(true)) DOELSE
attr tuerstation wait 2,2,2,5:0
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

visionsurfer

Hi,

hmmm. Dann läd das entfernte Tablet neu ?

Ich führe doch FHEM auf einem ganzen anderen Gerät aus, als das Gerät wo ich den Browser öffnen lasse.
Also FHEM steuern und ausführen, bzw. drin arbeiten, tue ich von meinem Rechner in meinem Homeoffice.

Über AMAD2 lasse ich durch den oben stehenden Befehl in einem entfernten Nexus Tablet ein Browserfenster öffnen. Mit dem von dir genannten Befehl kann ich doch nicht das entfernte Browserfenster neu laden, oder doch ?


Ma_Bo

Das hier:

set TabletNexus openURL http://192.168.178.49:8086/fhem/www/snapshots/mobotix_snapshot.jpg

öffnet doch auf deinem Tablet eine Seite oder in dem Fall ein Bild von bzw. über FHEM oder...?
Wenn ja, dann sollte es gehen.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

visionsurfer

Hi,

ja genau. Mit dem GET Befehl lasse ich vorher ein aktuelles Bild machen, wenn man auf die Klingel drückt.
Dann liegt das Bild halt auf dem Raspberry in dem entsprechenden Verzeichnis. Ich wußte nicht wie man das Bild dann in einem normalen Browser öffnen kann und hab diese URL gefunden. Damit kann ich in einem Browser dann das Bild öffnen.

O.K. also werde ich den Befehl von dir ausprobieren.

Wie müsste das dann in meiner Definition, bzw. in meinem Fall mit eingebaut werden, das es immer gemacht wird ? Weil es müsste doch so laufen 1. Kingeln, 2. Bild machen, 3. Browser mit URL öffnen, 4. reload, oder ?

RoBra81

Hallo,

Zitat von: Ma_Bo am 03 November 2016, 11:37:08
trigger xxx JS:location.reload(true)

Du brauchst nur das xxx durch deinen Namen ersetzen, dann sollte es gehen.

das wird meiner Meinung nach nicht funktionieren, da Visionsurfer im Browser lediglich ein JPG öffnet und keine FHEMWeb- oder Floorplan-Seite.

Ich denke, es gäbe zwei Möglichkeiten:

1. erstelllen einer FHEMWEB- oder Floorplan-Seite, die das Bild enthält und remote vom FHEM neu gelade wird (siehe Befehl oben)
2. erstellen einer HTML-Seite, welche das Bild enthält und dieses mittels JavaScript zyklisch (z.B. alle 5 Sekunden) aktualisiert.

Die zweite Variante nutze ich für meine Wechselsprechanlage: diese stellt kein Video, sondern nur ein JPG zur Verfügung, welches ichmit einem Aktuaisierungsinterval von 0,5 Sekunden anzeige und dadurch ein annehmbar flüssiges Video erhalte.

@Visionsurfer: Falls du Interesse am JavaScript-Code hast, würde ich ihn mal raussuchen...

Ronny

visionsurfer

Hi,

ja ich denke mir auch, dass es nicht geht. Weil wie du schon sagst, ich starte auf dem Tablet kein FHEM oder ähnliches.

Eine HTML Seite, in der ich das Bild einbaue und die sich dann immer selbst reloadet, hört sich für mich am besten an. Vielleicht könntest du mir den JS Code dafür zur Verfügung stellen.

Aber gibt es nicht auch noch andere Lösungen ? Anderen Browser der kein Cache Problem hat, oder Cache vom Chrome grundsätzlich abschalten oder oder oder ?
Weil so müsste ich ja dann auch einen Webserver laufen haben, der mir dann die HMTL Seite zur Verfügung stellt. Hmmm, alles nicht 100% ideal.

Fhem Web oder Floorplan hab ich mir noch nicht angeschaut.

Grüße,
Visionsurfer

RoBra81

FHEM stelt dir den Webserver meiner Meinung nah von Haus aus zur Verfügung - einfach die HTML-Seite da ablegen, wo du aktuell das Bild hinlegst...

Gesendet von meinem Lenovo YT3-X90L mit Tapatalk


Ma_Bo

Oder wie wie RoBra81 schon sagt, einfach nen Floorplan definieren, das Bild per iframe einbinden und mit meinem Befehl die Seite reloaden.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

visionsurfer

ok. Müsste ich probieren. Dann muss ich erst mal überlegen wie ich da die HTML Seite mache und wie ich die dann dort hinbekomme.
Gar nicht so einfach :)

Irgendwo hab ich mal gelesen das man den Cache vom Chrome Browser nach jedem mal schließen automatisch löschen kann. Keine Ahnung ob das auf dem Tablet auch geht und ob es geht, das man durch AMAD2 den Browser auch wieder schließen kann ? Vielleicht ist das noch ein Weg für das Problem ?

Grüße,
Visionsurfer

Ma_Bo

Oder versuch den Reload Befehl doch mal für das Bild, evtl klappt es ja doch.

Zitat von: Ma_Bo am 03 November 2016, 11:39:25
Versuch bitte einfach mal ein

trigger WEB JS:location.reload(true)

dann sollte sich die Seite auf dem Tablet reloaden, vorraussetzung ist, dass die Seite auf dem Tablet geöffnet ist.

Wenn das geht, dann kannste das so einbauen, mit den wait Zeiten müsstest du schauen, wie es am besten passt, ist hier nur ein Beispiel:

define tuerstation DOIF ([callmonitor:event] eq "ring")(get mobotix image)(set TabletNexus screen on)(set TabletNexus openURL http://192.168.178.49:8086/fhem/www/snapshots/mobotix_snapshot.jpg)(trigger WEB JS:location.reload(true)) DOELSE
attr tuerstation wait 2,2,2,5:0

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

RoBra81

Hier der Code für das Image-Element:


<img height="240px" src="http://192.168.178.49:8086/fhem/www/snapshots/mobotix_snapshot.jpg?fps=15&t=" onload='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 30000)' onerror='setTimeout(function() {src = src.substring(0, (src.lastIndexOf("t=")+2))+(new Date()).getTime()}, 30000)' alt='' />