FHEM: Pop-Up ausgeben wie?

Begonnen von heikoh81, 30 Juli 2016, 14:47:46

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo zusammen,

wie kann ich ein Popup erzeugen, wenn der Benutzer einen Befehl ausführt.
Z.B. in einem DOIF, wenn ein Fenstersenstor (am Dachfenster) "offen" meldet" und der Benutzer den Rolladen fahren möchte.
Dann soll ein Popup kommen "Erst Dachfenster schließen --> OK"

So Popups erscheinen z.B. aus FHEM heraus, wenn man z.B. ein Dummy klickt, das gelöscht wurde, aber noch im WebIF sichtbar ist.


Viele Grüße,
Heiko

heikoh81

Da sich bislang noch gar niemand gemeldet hat, FHEM das aber definitiv kann, hole ich diese Frage nochmal nach oben.
Z.B. beim Klick auf Delete Device.

Hierfür benötige ich ein solches Popup:
Bsp.: Wenn [Befehl Rolladen Dachfenster = Schließen] UND [Status Dachfenster = offen], dann Popup mit Text "Rolladen kann nicht gefahren werden, da Dachfenster noch offen". Als Buttons OK oder Cancel.
Die Umsetzung des Wenn-Befehls ist mit DOIF kein Problem, ich bräuchte nur die Syntax, wie ich das Popup erzeugen kann.

Viele Grüße,
Heiko

Ma_Bo

Bin auch interessiert an dieser Funktion.

Grüße Marcel
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.

heikoh81

justme1968 hat mir folgendes geschrieben, als ich den Thread zwischenzeitlich aus versehen geschlossen hatte:

Zitat
ich vermute mal du hast deinen popup thread aus versehen geschlossen...

du kannst mit trigger WEB JS:<javascript> ein javascript anweisungen an alle aktuell offenen browser senden. mit trigger WEB JS#<ip regex>:<javascript> an einen bestimmten browser.

die fhemweb routine um einen bestätigungs dialog zu öffnen heisst FW_okDialog().

beides zusammen gibt dann z.b.: trigger WEB JS#<ip regex>:FW_okDialog("test")

wenn du auch noch eine rückgabe auswerten willst kommst du nicht um eine eigene javascript routine herum.

gruss
andre

Allerdings weiß ich nicht, wie man das jetzt in ein DOIF einbauen könnte.
Und das Popup soll nur der Browser bekommen, der den Klick verursacht hat.
Wie funktioniert das dann bei ext. Zugriff von einer ext. IP?

Viele Grüße,
Heiko

justme1968

das wird genau so in ein DOIF eingebaut wie jedes andere fhem kommando.

in $FW_cname steht die aktuelle connection. hierüber bekommst du die ip. aber achtung: das ist eine globale variable die z.b. beim zugriff über telnet nicht zurück gesetzt wird. d.h. wenn ein kommando per web rein kommt ist sie immer richtig und gehört zur aktuellen verbindung, umgekehrt kannst du aber nicht feststellen ob eine verbindung über telnet rein gekommen ist. dann hat sie immer noch den alten wert. aktuell lässt sich aus user code nicht eindeutig feststellen über welches frontend eine verbindung rein gekommen ist.

das ganze sollte auch bei externem zugriff gehen. die ip wird nicht verwendet um die verbindung zum client aufzubauen, sondern nur um die richtige longpoll conenction zu suchen die zum client gehört.


ach ja: das gilt nur für fhemweb/floorplan. wenn du ein anderes frontend verwendest (z.b. ftui) funktioniert das anders.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

heikoh81

Danke für deine Antwort.
Aber wenn ich
trigger WEB JS#<ip regex>:FW_okDialog("test")
ins Commandofeld von FHEMWEB eingebe, passiert gar nichts.

Viele Grüße,
Heiko

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

digiart

Bei Eingabe von trigger WEB JS:FW_okDialog("test")
wird auf allen Browsern das Popup angezeigt.

Bei Eingabe von trigger WEB JS#192.168.1.170:FW_okDialog("test")
wird nur auf dem Client mit der Adresse 192.168.1.170 ein Popup angezeigt. Auf einem anderen Client mit anderer Adresse nicht.
Anfragen ausserhalb der Threads (PN, Mail o.ä.) werden ignoriert!

Ma_Bo

Kann man die größe des Pop up selber bestimmen?

Gruß Marcel
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.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

heikoh81

Danke für eure Antworten.

Zitat von: digiart am 03 September 2016, 14:09:45
Bei Eingabe von trigger WEB JS:FW_okDialog("test")
wird auf allen Browsern das Popup angezeigt.

Wenn ich das in die FHEM-Befehlszeile oben eingebe und ENTER drücke, passiert bei mir nichts.
WEB ist bei mir mit diesem Namen definiert.

Viele Grüße,
Heiko

justme1968

wie aktuell ist dein fhem? geht longpoll sonst?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

heikoh81

Ca. 40 Tage alt. So lange ist die Uptime, und nach dem Update habe ich rebooted. (Ich liebe die Stabilität des Raspi und Linux :-)

#attr WEB longpoll 1
ist in meiner fhem.cfg auskommentiert.

justme1968

es sollte trotzdem per default aktiv sein. aber warum hast du es auskommentiert?

geht die longpoll aktualisierung im browser sonst?

was sagt version?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

heikoh81

Den Befehl kannte ich noch nicht:
Latest Revision: 11934