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
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;
}
@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>
Wow, vielen Dank für die schnellen Antworten.
Ich mache mich morgen mal in Ruhe an die Umsetzung.
Grüße Mave