Bei Anwesenheit PRESENCE schalten, mit mehreren Teilnehmern

Begonnen von Waschbär, 09 Juli 2014, 19:40:15

Vorheriges Thema - Nächstes Thema

Waschbär

Hallo,
ich bin recht neu hier und hab mich hier im Forum und im netz mit dem Thema auseinander gesetzt, komme aber nicht weiter.
Ich habe fhem so eingerichtet das er mehrere Geräte erkennt, ob so angemeldet sind über wlan oder nicht.
Nun will ich meinen Server einschalten, sobald ein Gerät angemeldet ist und ausschalten, wenn sich das letzte abmeldet.
Mit einem Gerät funktioniert das ohne Probleme, aber so bald ich es mit einem 2ten versuch steckt ich in der Sackgasse.
Ich habe mehrere Lösungen versucht ohne Erfolg.
Derzeitiger versuch ist:

define server_an at +*00:00:15 {if(Value("PC_1") eq "present") || (Value("PC_2") eq "present") { fhem("set server on") } else { fhem("set server off")}}

Hoffe mir kann wer weiterhelfen.
Schöne Grüsse
Sven

Mitch

Ich würde (und mach es so) mit einem notify und Dummy machen.

Also mal theoretisch so:
Wenn PC1 oder PC2 present sind, wird der Dummy eingeschalten, wenn der Dummy an ist, wird der Server angeschalten.

Dein Code müsste aus dem Bauch raus so lauten:
define AT.Check at +*00:05 {\
  if (ReadingsVal("PC_1", "state", "") eq "present" || ReadingsVal("PC_2", "state", "") eq  "present") {\
    fhem("set server on");;\
    }\
  else {\
fhem("set server off");;\
}\
}


Es geht natürlich auch mit deiner Schreibweise, aber dann musst du glaube ich Value gegen State tauschen, bin mir aber gerade nicht sicher.
FHEM im Proxmox Container

Puschel74

Hallo,

Zitataber dann musst du glaube ich Value gegen State tauschen,
Nein - Value passt schon.

Es fehlen nur noch 2 Klammen - einmal ( und einmal )
if((Value("PC_1") eq "present") || (Value("PC_2") eq "present"))

Es sollte aber auch eine entsprechende Fehlermeldung im Logfile stehen  ;)

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

bgewehr

Ich empfehle einen Blick auf das Residents Modul! Das macht genau diese Dinge perfekt, finde ich!


Sent from my iPhone using Tapatalk
FritzBox 7590, Synology DS216+II mit Docker
Docker: FHEM mit hmlan, Homebridge, node-red, mosquitto, ems-collector für Buderus EMS mit AVR Net-IO
Gartenwasser über MQTT auf R/Pi A+
Volkszaehler.org auf R/Pi 2B mit Pi_Erweiterung
Raspberrymatic auf R/Pi 4B mit RPI-RF-MOD u. CUL868

marvin78

@Puschel74: Eigentlich sind da sind jetzt 4 Klammern zu viel:

if(Value("PC_1") eq "present" || Value("PC_2") eq "present")

Funktioniert aber beides. ;)

justme1968

structure so wie in vielen beispielen hier im forum und im wiki ist auch noch eine möglichkeit. watchdog sollst du dir auch ansehen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Waschbär

Danke für die vielen Infos

mit denn 2 klammern zusätzlich hat es jetzt erst mal geklappt.

Ich schau mir aber auch mal die anderen Lösungen an.
Tu mir nur noch da etwas schwer

grüsse
sven

Puschel74

Hallo,

Zitat von: marvin78 am 10 Juli 2014, 08:40:22
@Puschel74: Eigentlich sind da sind jetzt 4 Klammern zu viel:

if(Value("PC_1") eq "present" || Value("PC_2") eq "present")

Funktioniert aber beides. ;)

Ja, hab ich dann auch gesehen  8)
Ich klammer lieber einmal zuviel als zuwenig - abspecken geht immer noch  ;D

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Thoffi1978

Hallo,

ich versuche auch mit Presence und mehreren Teilnehmern zu arbeiten, doch irgendwie, bekomme ich die Verknüpfung nicht hin.
Getrennt funktioniert das, aber in Kombination nicht.
Folgendes soll passieren:
Wenn Coolstrean present soll licht angehen, ebenso bei Petra_Handy present.
Das klappt auch.

Das Licht soll aber nur ausgehen wenn Coolstream und Petra Handy absent sind.

Hier einmal der komplette Code direkt aus der fhem.cfg kopiert.
Vielleicht kann jemand einmal rüber schauen wie ich Coolstream und Petra_Handy zusammen bekomme, damit das Licht ausgeht.
define Coolstream PRESENCE fritzbox Torsten-TV-WZ
attr Coolstream event-on-change-reading state

define Coolstream_Licht_AN notify Coolstream:present {if ((localtime)[2]~~[10..21]) {fhem("set Weihnachts_Beleuchtung3 off-for-timer 1")}}

define Coolstream_Licht_Aus notify Coolstream:absent set Weihnachts_Beleuchtung3 on-for-timer 1
attr Coolstream_Licht_Aus verbose 5

define Petra_Handy PRESENCE lan-ping Petra-Handy-S3
attr Petra_Handy event-on-change-reading state

define Petra_Handy_Licht_AN notify Petra_Handy:present {if ((localtime)[2]~~[6..21]) {fhem("set Weihnachts_Beleuchtung3 off-for-timer 1")}}

define Petra_Handy_Licht_Aus notify Petra_Handy:absent set Weihnachts_Beleuchtung3 on-for-timer 1


Vielen Dank