FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: DS_Starter am 28 Februar 2016, 11:40:47

Titel: Frage zu "trigger WEB JS:window.open ...."
Beitrag von: DS_Starter am 28 Februar 2016, 11:40:47
Hallo zusammen,

mit der im Thema angegebenen Funkion habe ich in meinem Modul die Möglichkeit eingebaut, einen Kamerastream sofort in einem neuen Browserfenster zu öffnen. Das funktioniert auch sehr gut soweit.

Allerdings öffnen sich mehrere Windows mit dem Stream wenn man im Browser mehrere FHEMWEB-Instanzen laufen hat.
Mir ist es bis jetzt auch bisher nicht gelungen ein so geöffnetes Fenster wieder mit einem "trigger WEB JS:windowname.close ...." zu schließen.

Jetzt bräuchte ich einen Anstoß wie man dieses Nachteile ungehen / abändern bzw. besser machen könnte.
Leider kenne ich mich mit javascript nicht aus.

Bin für alle Hinweise dankbar.

viele Grüße und ein schönes WE
Heiko
Titel: Antw:Frage zu "trigger WEB JS:window.open ...."
Beitrag von: rudolfkoenig am 28 Februar 2016, 11:56:44
ZitatAllerdings öffnen sich mehrere Windows mit dem Stream wenn man im Browser mehrere FHEMWEB-Instanzen laufen hat.
Works as designed. Evtl. hilft FW_directNotify mit Filter:
http://forum.fhem.de/index.php/topic,48736.msg404497.html#msg404497
Titel: Antw:Frage zu "trigger WEB JS:window.open ...."
Beitrag von: justme1968 am 28 Februar 2016, 12:04:13
auf dieser ebene (über trigger) kann man (bis jetzt) nur auf die ip des browsers einschränken. mit : direkt hinter JS. auf ein bestimmtest browser fenster einzuschränken geht an dieser stelle nicht da es für den endanwender vorgesehen ist.

wenn du ein eigenes Modul baust schau dir aber mal die DelayedOutoutFn in fhemweb als beispiel an. da wird genau eine browser Instanz angesteuert. etwas in der art kannst übernehmen.

gruss
  andre
Titel: Antw:Frage zu "trigger WEB JS:window.open ...."
Beitrag von: DS_Starter am 28 Februar 2016, 12:17:18
Danke euch für die Anregungen !
Ich schau mal wie ich klarkomme...

Gruß
Heiko
Titel: Antw:Frage zu "trigger WEB JS:window.open ...."
Beitrag von: DS_Starter am 28 Februar 2016, 13:40:40
Zitatschau dir aber mal die DelayedOutoutFn in fhemweb als beispiel

Hallo Andre,
irgendwie hab ich Tomaten auf den Augen .... finde keine Funktion in FHEMWEB.pm oder fhemweb.js die "DelayedOutoutFn" oder so ähnlich heißt.
Möglicherweise heißt die anders ??

gruß
Heiko
Titel: Antw:Frage zu "trigger WEB JS:window.open ...."
Beitrag von: justme1968 am 28 Februar 2016, 13:55:04
sorry. async. nicht delayed. ich hatte den namen noch mal geändert. also AsyncOutputFn bzw. FW_AsyncOutput in fhemweb.

gruss
  andre
Titel: Antw:Frage zu "trigger WEB JS:window.open ...."
Beitrag von: DS_Starter am 28 Februar 2016, 14:49:39
ZitatEvtl. hilft FW_directNotify mit Filter

Hallo Rudi,
kurze Rückmeldung ...
Dein Hinweis hat mir schonmal einen Schritt weitergeholfen.

my $winname = $name."_view";
my $attr = AttrVal($name, "htmlattr", "");
my $room = AttrVal($name, "room", "");
FW_directNotify("FILTER=room=$room", "#FHEMWEB:WEB", "window.open ('$url','$winname','$attr')", "")


Damit wird das Streamfenster nur in der Browserinstanz "angetriggert" in welcher der Raum geöffnet ist, der die entsprechende Cam enthält.
Das ist schonmal gut.  :)
Andre's Hinweis schaue ich mir auch noch an.....

Habt ihr evtl. noch eine Idee wie man das Fenster per Befehl wieder schließen könnte ?  "windowname.close "   hatte ich schon erfolglos versucht. Ist wahrscheinlich nicht so trivial.

Grüße
Heiko