[gelöst]Anwesenheitsprüfung über PRESENCE mehrerer Personen mit DOIF kombinieren

Begonnen von holle75, 11 Februar 2015, 13:43:39

Vorheriges Thema - Nächstes Thema

holle75

Hello, ich möchte die Anwesenheit mehrerer Telefone über PRESENCE umsetzen. Das funktioniert wunderbar. Um einen Dummy, für spätere Schaltungen mit der Information OB IRGENDJEMAND ZU HAUSE ist zu füttern wollte ich DOIF einsetzen.

Leider änder sich der State vom Dummy Anwesenheit nicht.

define Holger_iPhone PRESENCE lan-ping 192.168.1.34 15 15
attr Holger_iPhone event-on-change-reading state

define Holger dummy
attr Holger devStateIcon present:HOME_Status.1 absent:HOME_Status.3
attr Holger room Haus

define Abwesenheit_Holger watchdog Holger_iPhone:absent 00:02 Holger_iPhone:present setstate Holger absent;; setstate Abwesenheit_Holger defined
define Anwesenheit_Holger watchdog Holger_iPhone:present 00:00 Holger_iPhone:absent setstate Holger present;; setstate Anwesenheit_Holger defined

define Nicole_iPhone PRESENCE lan-ping 192.168.1.41 15 15
attr Nicole_iPhone event-on-change-reading state

define Nicole dummy
attr Nicole devStateIcon present:HOME_Status.1 absent:HOME_Status.3
attr Nicole room Haus

define Abwesenheit_Nicole watchdog Nicole_iPhone:absent 00:02 Nicole_iPhone:present setstate Nicole absent;; setstate Abwesenheit_Nicole defined
define Anwesenheit_Nicole watchdog Nicole_iPhone:present 00:00 Nicole_iPhone:absent setstate Nicole present;; setstate Anwesenheit_Nicole defined
#####
define Anwesenheit dummy
attr Anwesenheit devStateIcon present:HOME_Status.1 absent:HOME_Status.3
attr Anwesenheit room Haus

define Anwesenheit_Schalter DOIF ([Nicole:state] eq "present" OR [Holger:state] eq "present") (setstate Anwesenheit present) DOELSE (setstate Anwesenheit absent)
attr Anwesenheit_Schalter do always


hat jemand eine Idee, was ich falsch mache? Danke und Grüße

Holle

Brockmann

Zitat von: holle75 am 11 Februar 2015, 13:43:39
hat jemand eine Idee, was ich falsch mache? Danke und Grüße
Mach Dich mit dem Unterschied zwischen setstate und set vertraut und verwende diese beiden Befehle passend.
Zumindest wenn ein DOIF darauf triggern soll, musst Du setstate vermeiden, weil setstate keine Events generiert, auf die ein DOIF reagieren könnte.

der-Lolo

Hallo Holle,
sicher das Du das rad neu erfinden und DOIF für diese aufgabe benutzen möchtest? Standard wäre es mit einer Structure zu lösen... Für Dein vorhaben gibt es ausserdem die kombination aus Residents, Roommates und Guests fertig als Modul...

Vielleicht liest Du mal in folgendem Thread

http://forum.fhem.de/index.php/topic,30586.msg234013.html#msg234013

holle75

Hallo ihr beiden und Danke .... mmh, war ganz happy dass ich den ersten Teil hinbekommen habe, aber dann werde ich mich jetzt wohl mal in das RESIDENCE Modul einlesen. Dachte mit einer Zeile DOIF hätte ich simpel die Aufgabe lösen können.

der-Lolo

Wenn du beachtest das Brockmann schrieb und OR klein also or schreibst wird das auch zum ziel führen...

holle75

@ Lolo

sehr schön, Danke!

so gehts jetzt

define Holger_iPhone PRESENCE lan-ping 192.168.1.34 15 15
attr Holger_iPhone event-on-change-reading state

define Holger dummy
attr Holger devStateIcon present:HOME_Status.1 absent:HOME_Status.3
attr Holger room Haus

define Abwesenheit_Holger watchdog Holger_iPhone:absent 00:02 Holger_iPhone:present set Holger absent;; setstate Abwesenheit_Holger defined
define Anwesenheit_Holger watchdog Holger_iPhone:present 00:00 Holger_iPhone:absent set Holger present;; setstate Anwesenheit_Holger defined

define Nicole_iPhone PRESENCE lan-ping 192.168.1.41 15 15
attr Nicole_iPhone event-on-change-reading state

define Nicole dummy
attr Nicole devStateIcon present:HOME_Status.1 absent:HOME_Status.3
attr Nicole room Haus

define Abwesenheit_Nicole watchdog Nicole_iPhone:absent 00:02 Nicole_iPhone:present set Nicole absent;; setstate Abwesenheit_Nicole defined
define Anwesenheit_Nicole watchdog Nicole_iPhone:present 00:00 Nicole_iPhone:absent set Nicole present;; setstate Anwesenheit_Nicole defined
#####
define Anwesenheit dummy
attr Anwesenheit devStateIcon present:HOME_Status.1 absent:HOME_Status.3
attr Anwesenheit room Haus

define Anwesenheit_Schalter DOIF ([Nicole:state] eq "present" or [Holger:state] eq "present") (setstate Anwesenheit present) DOELSE (setstate Anwesenheit absent)
attr Anwesenheit_Schalter do always


lese mir jetzt aber mal interessehalber aufmerksam deinen anderen Thread durch. Könntest du mir deinen Auszug der cfg bzgl. PRESENCE und RESIDENCE schicken? ... tschuldigung, nur wenns nicht zu viel Mühe macht.  Im Thread ist ist das so zerschlüsselt. Vor allem die Interaktion mit dem RESIDENCE interessiert mich.