FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gonzo_6 am 23 Oktober 2017, 13:29:20

Titel: [gelöst] 2 Presence Geräte gemeinsam für Notify nutzen.
Beitrag von: gonzo_6 am 23 Oktober 2017, 13:29:20
Hallo ich habe hier 2 presence Objekte:

Einmal Blue_Harry
2017-10-23 13:18:29   presence        absent
2017-10-23 13:18:29   state           absent

und einmal Harry_S8
2017-10-23 13:19:19   presence        absent
2017-10-23 13:19:19   state           absent   

Nun möchte ich wenn beide auf absent stehen etwas ausgelöst wird. Versucht habe ich:
Blue_Harry:presence:.absent & Harry_S8:presence:.absent set licht aus geht nicht...

{if (Value (Blue_Harry) eq "absent") && if (Value(Harry_S8) eq "absent") { fhem("set HUEGroup0,wz_Regal,ku_Unterbaulicht,az_Licht off")}}
geht auch nicht... ich wüßte aber im Moment überhaupt nicht wie anders...
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: Beta-User am 23 Oktober 2017, 13:43:50
Zum einen: Bitte nicht zustandsorientiert denken, sondern ereignisorientiert.
Also: eines der beiden Devices wechselt den Zustand auf absent...

Dann: Code usw. immer in Tags (# usw. oberhalb der Smilies).

Hier ist nicht klar, um was für eine Art Device es sich handeln soll... Ist das ein notify? Dann wäre etwas mehr perl-Code erfoerderlich (ungetested!) etwa so:
defmod n_Harry_presence notify (Blue_Harry|Harry_S8):presence:.absent {if (($NAME eq "Blue_Harry" && ReadingsVal("Harry_S8","presence","absent") eq "absent") or (andersrum für das 2. Device)) fhem("set HUEGroup0,wz_Regal,ku_Unterbaulicht,az_Licht off")}}

Zuletzt: structure kann sowas überwachen, dann müßte das notify auf die structure lauschen, nicht auf die einzelnen Devices...
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: gonzo_6 am 23 Oktober 2017, 14:00:21
Es läuft mit einem Gerät und ja es ist ein Notify.
Blue_Harry:presence:.absent set HUEGroup0,wz_Regal,ku_Unterbaulicht,az_Licht off
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: Beta-User am 23 Oktober 2017, 14:03:26
Tja, dann also mal ran an perl (oder eben andere Lösungen für komplexere Fragestellungen).

Bei dem notify-code von vorhin fehlte noch (min.) ein ":", ist jetzt drin...
Wie die Logik gedacht ist, ist klar?
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: gonzo_6 am 23 Oktober 2017, 14:05:57
ich denke auch ich muß mich mal mit Perl beschäftigen. Hab früher auch C Programme geschrieben... also so schwer sollte es nun nicht sein.
Trotzdem vielen Dank für deine Hilfe.

Liebe Grüße
aus Berlin
gonzo_6

ps: structure war der entscheidende Hinweis jetzt ;-)
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: Beta-User am 23 Oktober 2017, 14:40:53
Schön, dass das Stichwort angekommen ist, perl kann aber auch nicht schaden, vor allem bei Vorerfahrung :D .

Kannst du den Thread dann auf [gelöst] setzen (siehe link in der Signatur)?
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: Amenophis86 am 23 Oktober 2017, 14:48:20
Und bitte einen aussagekräftigen Titel verwenden. Danke
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: Wernieman am 23 Oktober 2017, 14:51:42
Nur mal als Erwähnung:
Da es ein reines IF ist, könntest DU es auch mit dem Fhem-Modul IF machen ... siehe Doku
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: CoolTux am 23 Oktober 2017, 15:14:11
Ich würde beide Devices in eine Structure packen und darauf dann triggern.
Titel: Antw:So nun hat es mich...ich bekomme das einfach nicht mehr hin....
Beitrag von: Beta-User am 23 Oktober 2017, 15:28:58
Zitat von: gonzo_6 am 23 Oktober 2017, 14:05:57
ps: structure war der entscheidende Hinweis jetzt ;-)
Zitat von: CoolTux am 23 Oktober 2017, 15:14:11
Ich würde beide Devices in eine Structure packen und darauf dann triggern.
Scheint doch bereits so gelöst zu sein.

Aussagefähiger Titel mit [gelöst] wäre hilfreich...