iframe als Popup einblenden

Begonnen von eberlrudi, 25 Februar 2015, 23:31:01

Vorheriges Thema - Nächstes Thema

eberlrudi

Hallo ich habe mal wieder eine Idee die ich ohne Hilfe nicht umsetzen kann :D

Ich habe meine Klingelkamera jetzt endlich erfolgreich eingebunden.

Situation:

Klingelknopf --> Videoserver MotionDetect --> http Notify an fhem--> Tablet Display für 60sec an --> Problem da iframe in einem anderen Room --> Frage im Forum :-\

Ist es denn möglich das iframe global aufpoppen zu lassen?


Vielleicht hat jemand ein ähnliches Scenario bereits verwirklicht.

rudolfkoenig

Ich habe FHEMWEB gerade leicht erweitert, um sowas einfacher machen zu koennen. Nach einem update (ab morgen!) sollte folgendes funktionieren:

Zitat
fhem> trigger WEB JS:FW_okDialog("HellO")
fhem> trigger WEB JS:location="/fhem?room=KaKu"

eberlrudi

Das ist ja super!

Ich freue mich auf Morgen. :D Danke

eberlrudi

Funktioniert einwandfrei! Vielen Dank dafür. ;)

Dhokahai7

Du musst zusätzlich das Attribut do always setzen (siehe Commandref zu DOIF).????

eberlrudi

#5
Ich verstehe. Es wird jedoch nor für 60sekunden in den Room und dann zurückgewechselt. Es geht schnell und zuverlässig. Mein Standard Room ist Küche. Was würde es noch bringen?


eberlrudi

Ich habe dazu noch eine Frage...

Meine Klingel löst dummerweise beim ausschalten der Kamera noch einmal das notify aus. Ich habe schon ein Sleep dahinter gesetzt, welches aber das Notify nicht daran hindert noch einmal zu reagieren.... Dafür brauch ich wohl einen "if" Befehl vornweg oder? Hat da jemand eine Idee???

EsKlingelt.*|cmd=trigger%20EsKlingelt ;  trigger WEB JS:location="/fhem?room=Überwachung" ; {UDP_Msg("192.168.2.6" , "wolido:displayon")} ; sleep 3 ; set androidTablet ttsSay Es hat geklingelt ; set samsungTablet ttsSay Es hat geklingelt ; sleep 39 ;  trigger WEB JS:location="/fhem?room=Küche" ; {UDP_Msg("192.168.2.6" , "wolido:displayoff")} ; sleep 60

rudolfkoenig

Ich habe mal die Zeile umformatiert, damit ich es einfacher lesen kann:
EsKlingelt.*|cmd=trigger%20EsKlingelt
;
trigger WEB JS:location="/fhem?room=Überwachung" ;
{UDP_Msg("192.168.2.6" , "wolido:displayon")} ;
sleep 3 ;
set androidTablet ttsSay Es hat geklingelt ;
set samsungTablet ttsSay Es hat geklingelt ;
sleep 39 ;
trigger WEB JS:location="/fhem?room=Küche" ;
{UDP_Msg("192.168.2.6" , "wolido:displayoff")} ;
sleep 60


- ich finde das Regexp auf cmd=trigger%20EsKlingelt mehr als merkwuerdig, und vermute, dass es ueberfluessig ist. Am besten konsultiert man das Event Monitor, um zu wissen, welche Events generiert werden.
- das erste ; danach ist vmtl. ueberfluessig
- das letzte "sleep 60" verursacht eine Minute Stillstand in FHEM, da danach kein Befehl kommt. Ist mindenstens fragwuerdig. Da FHEM (hoffentlich) keine Events verliert, hilft es auch nicht um das Ausloesen eines notifies zu vermeiden. Merke: FHEM ist _NICHT_ multithreaded. Ein sleep gefolgt von einem Befehl ist gleichwertig mit einem namenlosen at Definition, nur speichern kann man es nicht.
- ich kann nicht erkennen, wieso das notify erneut aufgerufen wird, dazu braucht man vermutlich ein Log mit einem hoeheren verbose.

eberlrudi

Es wird noch einmal ausgelöst, da die Klingelkamera beim abschalten im Videoserver ein motiondetect auslöst, welches über http notify die ganze Kette noch einmal in Gang setzt. Deshalb habe ich am Ende das sleep 60 eingesetzt. So scheint es aber nicht zu funktionieren. Die Klingelanlage schaltet die Kamera nach 60 Sekunden ab

rudolfkoenig

Um notify zu deaktivieren kann man "attr notify disable" bzw. "deleteattr notify disable" verwenden.
Sleep hilft nicht.

eberlrudi

Ich glaube ich greife den Klingelknopf irgendwie ab. Dann geht es sicher. Der Videoserver besitzt ja einen Alarm-Schaltkontakt

sentinel1

 mit DOIF sollte das funktionieren,in der commandref zum Modul steht:

Zwangspause für das Ausführen eines Kommandos seit der letzten Zustandsänderung

Mit dem Attribut cmdpause <Sekunden für cmd_1>:<Sekunden für cmd_2>:... wird die Zeitspanne in Sekunden angegeben für eine Zwangspause seit der letzten Zustandsänderung. In der angegebenen Zeitspanne wird ein Kommando nicht ausgeführt, auch wenn die dazugehörige Bedingung wahr wird.

eberlrudi

Super.

Danke für den Tip.
Ich schaffe es jedoch nicht das ganze zu definieren. :-[

Wie könnte der Code dafür aussehen?

harway2007

gab es noch eine Antwort auf die Frage nach dem Code ?

eberlrudi

Ich habe es mit doif leider nie zum laufen bekommen. Im Moment lebe ich mangels Zeit noch mit diesem
Problem.


Gesendet von iPhone mit Tapatalk

harway2007

cmdpause hab ich sinnvoll bei dem Klingelsensor Notify eingesetzt mit 30 Sekunden ..
attr  Klingel_push cmdpause 30
seitdem kommt nur eine Meldung wenn jemand an der Tür klingelt ...
ich bleib da mal dran und melde mich ...
Gruss Harway