Anwesenheitserkennung und Rückkehr mittels Ping | zwei Geräte pingen

Begonnen von tik-tak-tok, 10 Dezember 2016, 20:54:07

Vorheriges Thema - Nächstes Thema

tik-tak-tok

Hallo zusammen,

ich bin der Mike und noch ganz neu hier. Daher gabs von mir bisher nichts zu lesen. :-P
Ich habe einen Rapsberry Pi mit Rasbian am Laufen, betreibe (erfolgreich) Brennenstuhl Funksteckdosen, u.a. per Zeitpläne.
Demnächst soll noch Homematic dazukommen und ich möchte Fenster/Türkontakte sowie Thermostate schalten. Dazu werde ich vlt. (nach Lieferung im neuen Jahr) mal Fragen stellen :-)

Aktuell kämpfe ich an folgendem:
- An/Abwesenheitserkennung
-> ich möchte zwei Geräte pingen (einmal Windows Rechner IP 192.168.1.xxx)
    -> Ping / Antwort erhalten -> Gerät AVReceiver (im Raum Wohnzimmer) soll aktiv geschaltet werden ((set AVReceiver ON))
-> kein Ping erhalten -> noch z.B. 15 Pings versuchen  -> falls wieder keine Antwort kommt -> set AVReceiver OFF

Ich habe jetzt einige Zeit gegoogelt und ausprobiert. Die Pingüberwachung funktioniert, mache ich das zuvor gepingte Gerät  unerreichbar so schaltet der Watchdog den State des gepingten Geräts um.
Ich hatte es mal soweit das auch abgeschaltet wurde, dann wollte ich die Rückkehr (Ping wieder erreichbar - Gerät wieder anschalten) programmieren/aktivieren,...und habe mir durch die Bastelei wohl den gesamten Code bzgl. An/Abwesenheit zerhauen...

Mein Code in der fhem.cfg sieht dazu aktuell folgendermaßen aus:
define Rechner PRESENCE lan-ping 192.168.1.xxx 60

define watchdog_Anwesenheit watchdog Rechner:absent 00:01 set AVReceiver off
attr watchdog_Anwesenheit icon ampel_rot
attr watchdog_Anwesenheit regexp1WontReactivate 1
attr watchdog_Anwesenheit room watchdog_Anwesenheit


Nicht wundern, Code sieht wenig aus / ist wenig. Habe schon vergeblich unendlich zurückgekürzt um die Abwesenheit wieder hinzubekommen.

Zielsetzung wäre es nachher:
- diese Geschichte einmal mit dem Rechner und dessen IP,...+ das gleiche für den TV.
Wenn keines der beiden Geräte aktiv ist => AV_Receiver aus
Wenn eines der beiden Geräte aktiv ist => AV_Receiver an

Wenn eines der Geräte abgeschaltet wird, aber das andere noch pingbar ist -> AV_Receiver angeschaltet belassen.
Wenn beide abgeschaltet -> AV_Receiver aus.

Kann mir jemand einen funktionierenden Beispielcode nennen? Ich fühle mich dann durchaus in der Lage Räume usw. nach meinen Wünschen anzupassen.
Die Steckdose "AV_Receiver" lässt sich übrigens per "andFHEM" App einwandfrei schalten, ebenso über WEB und Zeitschaltuhr Plan.

Besten Dank dir/euch :-),
Mike

viegener

Ich kann Dir jetzt keinen funktionierenden Code zum Anpassen liefen, aber wenn ich mir den watchdog aus Deinem Code anschaue

Zitat von: tik-tak-tok am 10 Dezember 2016, 20:54:07
Mein Code in der fhem.cfg sieht dazu aktuell folgendermaßen aus:
define Rechner PRESENCE lan-ping 192.168.1.xxx 60

define watchdog_Anwesenheit watchdog Rechner:absent 00:01 set AVReceiver off
attr watchdog_Anwesenheit icon ampel_rot
attr watchdog_Anwesenheit regexp1WontReactivate 1
attr watchdog_Anwesenheit room watchdog_Anwesenheit



Fällt mir folgendes auf:

Der watchdog ist vermutlich inkorrekt definiert, denn nach der Zeitangabe sollte eigentlich ein zweiter regexp (oder SAME) folgen. Bei Dir folgt "set", das passt hier wohl nicht? Du möchtest doch innerhalb der 15 sek ein "Rechner:present" erhalten, und ansonsten abschalten, oder?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

tik-tak-tok

Hi viegener,

das ist gut möglich ;-) Ehrlich gesagt bin ich an der Stelle etwas überfordert.

Kann mir jemand seinen eigenen Watchdog + Anschaltcode für die Steckdose in Zusammenhang beisteuern?
Sodass ich auf meine Bedürfnisse anpassen/ableiten dürfte?
Gerne auch erstmal nur für ein zu pingendes Gerät. Die Welt wurde ja (vermutlich) auch nicht an einem einzigen Tag erschaffen.

Besten Dank :-),
Mike

KölnSolar

Ob watchdog die richtige Wahl für Dein Vorhaben ist ? Schau Dir mal das presence Modul an. Damit kannst Du einen ping ausführen und erhältst in Readings den Status absent/present. Auf eine Statusveränderung kannst Du dann mit z.B. notify reagieren und z.B. schalten.
Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

noanda

Hallo,
schau dir mal das ROOMMATE Modul an. Außerdem kannst Du es über DOIF Steuern.
Jetzt mal aus dem Kopf:
Dein PRESENCE liefert Dir ,,present" und ,,absent"

Du kannst es also so definieren:
define RechnerDOIF DOIF ([Rechner] eq ,,present") (set AVReceiver on) DOELSEIF ([Rechner] eq ,,absent")(set AVReceiver on)

Dann würde ich noch eine Wait einbauen, damit er mit dem anschalten wartet wenn Du mal aus dem WLAN fliegst:

attr RechnerDOIF wait 0:600

so aus dem Kopf. Aber schau dir auch ROOMMATE an dann kannst Du je nach Zustand schalten, also wenn Du schläfst oder weg bist dann aus
Raspberry Pi - FHEM 5.5
HMLAN, RFXtrx433 , CUL 868
HM-CC-RT-DN, HM-SEC-MDIR , HM-SEC-SC-2
HM-LC-SW2-FM, ROTO_ZEL-STG-RM-FZS
ELRO440AB, Flamingo

Yil

In Sachen Anwesenheitserkennung via Ping - ich bin davon abgekommen, nachdem sich bei mir die iPhones im Ruhezustand aus dem WLAN temp. verabschieden und damit auf "nicht anwesend" schalten. Ich habe statt dessen Bluetooth eingerichtet - einmal am RPi und dann natürlich an jedem Handy. Mit einer Bluetooth-Version >= 4.0 hat man auch eine recht stromsparende Bluetooth-Version am Handy (sollten die meisten neueren Handy haben, selbst mein altes iPhone 4S hat das!)

Nachdem Bluetooth am RPi eingerichtet ist, sieht die Definition eines Handys in FHEM so aus:

define <Handy-Bezeichnung> local-bluetooth <Bluetooth-Mac-Adresse> 10 60

Das gibt Dir die Stati present, absend und timeout, die Du über Notifys abfragen kannst. Funktioniert bei mir mit > 99% Stabilität.
HM CCU3 und HCU mit ca. 50 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth,
HUE, UniFi

tik-tak-tok

Hallo zusammen,

habe die Sache erstmal auf Eis gelegt. Habe noch zu viele andere Baustellen die mir derzeit wichtiger sind. Danke trotzdem für die Mühen. :-)

LG,
Mike