Popup nach Timer schließen

Begonnen von Det20, 03 Februar 2017, 10:21:18

Vorheriges Thema - Nächstes Thema

Det20

Hallo,

ich habe nun die ziemlich coole Möglichkeit gefunden, automatisch ein Popup bei einem Ereignis zu zeigen. Da das auf meinem Samsung TV nicht funktioniert, ist es eine gute Alternative.

        <div data-type="popup" data-device="tahoma_6684481" data-get="STATE" data-get-on="personInside" data-get-off="noPersonInside" data-height="220px" data-width="480px">
           <div class="dialog bg-red">
             <br><br><br>
             <div data-type="label" class="bigger thin top-narrow black blink">Bewegung</div>
             <div data-type="link" class="round top-space-3x left-space-3x bg-black"
               data-width="130" data-height="40"
               data-color="white"
               onclick="$('.dialog-close').trigger('click');">OK</div>
            </div>
        </div>

Gibt es nun auch die Möglichkeit, den Dialog nach x Sekunden automatisch zu schließen? Sonst steht der Dialog solange da, bis einer OK drückt oder data-get-off reinkommt. Bei den Tahoma Bewegungsmeldern kommt das Event "keine Bewegung" leider erst nach 3 Minuten.

Gibt es außerdem die Möglichkeit, den Dialog nur im Zeitraum x zu zeigen, also direkt in der HTML außerhalb FHEM?

Mario67

Ich mache (wie auch andere hier) das Öffnen und Schliessen des Popup von einem dummy (z.B. ShowDetailedTraffic) abhängig. Das setze ich durch ein notify, welches durch das auslösende Reading getriggert wird, auf 1.
In dem notify starte ich auch ein einmaliges at. Dieses setzt den dummy dann nach gewünschter Zeit wieder auf 0.

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

Det20

#2
Hast Du ev. ein kurzes Beispiel für mich?

Mario67

Anbei ein einfaches Beipiel:
Das Device KlingelInput (dummy) triggert über das notify KlingelInputNtf die Ausführung der PERL-Methode ShowDoorPopup.
Zusätzliche Attribute (room etc.) habe ich weggelassen.

Schönes WE,
Mario

1. HTML:
<!-- CAMERA-POPUP -->
<div class="top-space">
    <div data-type="popup" data-device="ShowFrontDoorSnapshotPopup" data-get-on="[1]\d*" data-get-off="[0]\d*" data-height="600px" data-width="1000px" class="centered">
        <div></div>
        <div class="dialog">
            <header>Besucher an der Haust&uuml;r</header>
            <div data-type="image"
                 data-size="95%"
                 data-url="./snapshots/UpCam1/UpCam1_snapshot.jpg"
                 class="nocache"
                 data-refresh="10"
                 onclick="$('.dialog-close').trigger('click');">
            </div>
        </div>
    </div>
</div>


2. dummy-Device:
define ShowFrontDoorSnapshotPopup dummy
attr ShowFrontDoorSnapshotPopup comment 0: close snapshot popup window
attr ShowFrontDoorSnapshotPopup devStateIcon 1:general_an@green:0 0:general_aus:1
attr ShowFrontDoorSnapshotPopup setList state:0,1
attr ShowFrontDoorSnapshotPopup webCmd state


3. notify in einer .CFG:

#Take snapshot, show it in FTUI, store it externally and send an email.
# Test : {ShowDoorPopup();;}
define KlingelInputNtf notify KlingelInput:on {\
ShowDoorPopup();;\
fhem("set FritzBox ring 9 10");;\
}


4. 99_myUtils.pm:
Methode welche vom notify gerufen wird
sub ShowDoorPopup()
{
    # AMAD:
    fhem("set InfoPanel screen on");
   
    # set dummy on order to show popup in FTUI
    fhem("set ShowFrontDoorSnapshotPopup 1");
    # reset flag and close popup window in a minute.
    fhem("defmod CloseVisitorAtFrontDoorPopupAt at +00:01:00 set ShowFrontDoorSnapshotPopup 0");
    Log3 "ShowDoorPopup", 1, "Showing snapshot in FTUI popup.";
    return;
}

FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

Det20

Vielen Dank, das Beispiel bringt mich ja mal auf neue Ideen. Ok, brauche eine Funk-Fähige Klingel, eine Kamera an der Haustür ... Wie soll ich das meiner Frau verklickern?  :)

Habe es so hinbekommen, für die Nachwelt.:

Im FHM. Name ist blöd gewählt, ich weiß.


define BewegungEG dummy
attr   BewegungEG room _Dummy

define Bewegung_EG notify tahoma_12429736:OccupancyState:.personInside set BewegungEG on ;; defmod reset_BewegungEG at +00:00:10 set BewegungEG off
attr Bewegung_EG room _WennDann


Im FTUI:


        <!-- Hinweis: Bewegung OG -->
        <div data-type="popup" data-device="BewegungOG" data-get="STATE" data-get-on="on" data-get-off="off" data-height="220px" data-width="480px">
           <div class="dialog bg-red">
             <br><br><br>
             <div data-type="label" class="bigger thin top-narrow black blink">Bewegung OG</div>
             <div data-type="link" class="round top-space-3x left-space-3x bg-black"
               data-width="130" data-height="40"
               data-color="white"
               onclick="$('.dialog-close').trigger('click');">OK</div>
            </div>
        </div>
        <!-- Ende Hinweis -->



Was mir im FTUI aufgefallen ist: Man kann das POPUP nicht in <LI>'s einfügen, die über ein Data-Template gefüllt werden. Schade, sonst hätte ich den Code FTUI weit über das Menü-Panel eingebaut.

speedAmaster

es gibt das Attribut data-return-time im popup-Widget......