FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Det20 am 03 Februar 2017, 10:21:18

Titel: Popup nach Timer schließen
Beitrag von: Det20 am 03 Februar 2017, 10:21:18
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?
Titel: Antw:Popup nach Timer schließen
Beitrag von: Mario67 am 03 Februar 2017, 13:42:20
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
Titel: Antw:Popup nach Timer schließen
Beitrag von: Det20 am 03 Februar 2017, 13:49:20
Hast Du ev. ein kurzes Beispiel für mich?
Titel: Antw:Popup nach Timer schließen
Beitrag von: Mario67 am 03 Februar 2017, 15:36:40
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;
}

Titel: Antw:Popup nach Timer schließen
Beitrag von: Det20 am 03 Februar 2017, 16:24:18
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.
Titel: Antw:Popup nach Timer schließen
Beitrag von: speedAmaster am 14 Dezember 2017, 00:20:58
es gibt das Attribut data-return-time im popup-Widget......