FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Mave am 04 November 2017, 20:52:17

Titel: Funktion aufrufen und Ergebnis in Popup anzeigen?
Beitrag von: Mave am 04 November 2017, 20:52:17
Hallo zusammen,

ich habe in meiner MyUtils eine Funktion namens "Kontakte" definiert, die prüft, ob und welche Fenster oder Türen geöffnet sind.

Ich würde gerne bei der Änderung des HomeStatus auf "Away" die Funktion aufrufen und in einem Popup die geöffneten Fenster und Türen bzw. die Meldung "Alle Fenster/Türen geschlossen" anzeigen lassen.

Über zielführende Hinweise freue ich mich sehr.

Vielen Dank im Voraus.

Grüße Mave
Titel: Antw:Funktion aufrufen und Ergebnis in Popup anzeigen?
Beitrag von: setstate am 04 November 2017, 21:11:00
Bei mir spricht das Tablet, ob alle Fenster beim Verlassen zu sind und zusätzlich wird das Ergebnis der Überprüfung auch als Mail oder Telegram-Message versendet. Popup öffnen ist bestimmt auch nicht schwer. Die Funktion schreibt ein Reading und das Update des Readings öffnet das Popup.

Notify auf den Homestatus

define OnHomeStatusChange notify HomeStatus.* { \
  my $newVal = $EVENT;;\
...
   if ($newVal == 3) {
        fhem "set Tablet ttsSay ".statusFenster();;
        SetHeizungAbsent();;
   }


99_myUtils.cfg Code

sub statusFenster {
my @windows = devspec2array("comment=SingleWindow");
my @wopen = ();
foreach(@windows) {
  my $state = ReadingsVal($_, "state", "na");
  push (@wopen,$_) if ($state eq "open");
}
my $num_wopen = @wopen;
my $resultstring='';
if ( $num_wopen gt 0 ) {
  foreach(@wopen) {
   $resultstring.=$_." ";
   Log 1, "Fenster_status: ". $_. " noch offen";
  }
  $resultstring.=" noch offen";
} else {
  $resultstring="alle Fenster sind geschlossen.";
}
return $resultstring;
}
Titel: Antw:Funktion aufrufen und Ergebnis in Popup anzeigen?
Beitrag von: viegener am 04 November 2017, 21:16:19
@Mave: Nur mal so als Ansatz:

- Eine Funktion aufrufen beim Ändern des homestatus ist ja ein typischer Fall für ein notify
- Eine Nachricht kann man zum Beispiel in einem Dummy ablegen
- Eine Meldung anzeigen geht über ein popup. Ich verwende dazu folgenden Code

    <div data-type="popup" data-device="alarmlist_dummy" data-get="state" data-get-on="<.*" data-get-off="0"
       data-height="240px" data-width="320px">
      <div class="dialog">
        <header>WARNUNG</header>
        <div data-type="label" data-device='alarmlist_dummy' data-get="state" class="top-space-3x red big"></div>
        <div data-type="push" data-device="alarmlist_dummy" data-background-icon=""
            data-set-on="0" class="round top-space left-space-2x green"
             data-off-color="green"
             data-icon="fa-check">
             
        </div>

      </div>
    </div>


Titel: Antw:Funktion aufrufen und Ergebnis in Popup anzeigen?
Beitrag von: Mave am 04 November 2017, 21:44:27
Wow, vielen Dank für die schnellen Antworten.

Ich mache mich morgen mal in Ruhe an die Umsetzung.

Grüße Mave