Funktion aufrufen und Ergebnis in Popup anzeigen?

Begonnen von Mave, 04 November 2017, 20:52:17

Vorheriges Thema - Nächstes Thema

Mave

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

setstate

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;
}

viegener

@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>


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Mave

Wow, vielen Dank für die schnellen Antworten.

Ich mache mich morgen mal in Ruhe an die Umsetzung.

Grüße Mave