FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MKeY am 01 April 2017, 18:50:21

Titel: [gelöst] alle Dummys mit status "On" listen? dann per yowsup weitergeben
Beitrag von: MKeY am 01 April 2017, 18:50:21
Hallo, ich werkel schon ein wenig an meiner FHEM Konfiguration.
Mein Ziel ist es, dass mir yowsup eine Meldung mit allen dummys schickt, die den status "On" haben, wenn ich das haus verlassen hat.
notify/doif bekomme ich hin, die frage ist nur, gibt es eine Abfrage, die mir das erleichtert, ohne dass ich alle dummy in perl reinschreibe und dort eine if abfrage mache?

so ähnlich wie der befehl List, jedoch auf den status bezogen?
Titel: Antw:alle Dummys mit status "On" listen?
Beitrag von: CoolTux am 01 April 2017, 18:53:14

list TYPE=dummy:FILTER=STATE=On
Titel: Antw:alle Dummys mit status "On" listen?
Beitrag von: MKeY am 01 April 2017, 18:55:19
ok, so einfach. oh man. :o (sorry, sehe gerade, dass es so im wiki beschrieben ist...schande über mein haupt, danke!

kann man diese Liste dann auch in ein dummy schreiben, oder irgendwie in die yowsup nachricht abspeichern?
Titel: Antw:alle Dummys mit status "On" listen? dann per yowsup weitergeben
Beitrag von: CoolTux am 01 April 2017, 18:58:56
Du könntest es in ein Notify anwenden oder in einer myUtils. Aber dann solltest Du die devspec2array Funktion auf Perlebene dafür nehmen. Ist eine FHEM Perlfunktion.
Schau mal in der Commandref nach devspec2array. Wenn noch Fragen sind einfach fragen, aber bitte erstmal selber schauen.
Titel: Antw:alle Dummys mit status "On" listen? dann per yowsup weitergeben
Beitrag von: MKeY am 01 April 2017, 21:33:27
danke für deine Hilfe! hab es derzeit noch im DOIF, denke aber ich werde es in myUtils auslagern, damit ich mir auch die alias anzeigen lassen kann und nicht nur die device Namen. coole Sache!

([DEVICE:presence] eq "absent")
{fhem ("set DEVICE send Status der Geraete: +++".(join("+++",devspec2array('TYPE=dummy:FILTER=state=on'))))}


DEVICE dementsprechend euer Handy
+++ im yowsup eingetragen als Zeilenumbruch https://forum.fhem.de/index.php?topic=53665.0 (https://forum.fhem.de/index.php?topic=53665.0)

Update:
jetzt mit Alias Abfrage durch myUtils

NOTIFY:
([DEVICE:presence] eq "absent")
{fhem ("set DEVICE send Folgende Geraete sind noch an: +++".getStatusAlias())}


myUtils:
sub getStatusAlias() {
my $ret = '';
my @array = '';

@array = devspec2array("TYPE=dummy:FILTER=state=on");
foreach (@array)
{
if ($_ ne $array[$#array]) {
$ret = $ret.AttrVal($_, 'alias', 'ERROR')."+++";
}
if ($_ eq $array[$#array]) {
$ret = $ret.AttrVal($_, 'alias', 'ERROR');
}
}
if ($ret eq '') {
$ret = "Alles ist aus!";}

return $ret;
}