PRESENCE cover version - anderer Ansatz basierend auf aktuellem Code

Begonnen von martinp876, 23 Dezember 2020, 14:38:45

Vorheriges Thema - Nächstes Thema

Nobbynews

Hallo zusammen,

ich habe jetzt länger herumexperimentiert und bin mittlerweile zu einem für mich guten Ergebnis gekommen.
Was habe ich gemacht?
Zunächst habe ich mein WLan etwas umgebaut.
Das Netz basiert auf einer Fritte 7590 und 3 über Kabel angeschlossenen Accesspoints. Zusätzlich gibt es noch zwei über Mesh angekoppelte Accesspoints. In allen Systemen haben die 2,4GHz und 5GHz Netze jeweils die gleiche SSID.
Damit diese beiden Accesspoints nicht mehr ausgewhält werden, haben ich beim ersten die SSID der Netze geändert und beim zweiten die Sendeleistung auf 50% reduziert (hängt im Keller).
Zusätzlich habe ich den ping im Modul  nach mehreren Zwischenschritten geändert auf:
ping -c 3 -w 5und im jeweiligen device die Attribute so gesetzt:
intervalNormal 1
   intervalPresent 1
   thresholdAbsence 4
Im daemon ist gesetzt:
intervalNormal 30
In der Kombi habe ich dadurch nur noch sehr selten Ausreißer in der Anwesenheitserkennung

bmwfan

@Nobbynews: Ich hatte auch immer Probleme mit der Erkennung von Android-Handys (hier Handy_A und Handy_P. Die anderen Handys sind Apple-Geräte), bis ich über eine structure eine Erkennung über LAN-Ping und über eine function (function cmd:{checkAllFritzMACpresent....) kombiniert habe. Seitdem keine Probleme mehr. Bei Interesse kann ich das gerne vorstellen.

Ich habe aber ein anderes "Phänomen", zu dem ich keine Antwort gefunden habe.

Seit einiger Zeit setze ich verstärkt Shellies ein, die ich meist über MQTT angebunden habe. Funktioniert auch sehr zuverlässig. Gerade eben habe ich aber im PsnceDaemon gesehen, dass eines der Shelly-Devices in Presence2 angelegt wurde. Mich wundert, dass a) ein MQTT-angebundenes Device automatisch eingebunden wird und b) nur das eine Shelly-Device und nicht die Anderen, von denen ich inzwischen mehr als 12 Stück integriert habe.

Wie bekomme ich das Device dauerhaft aus der Anwesenheitserkennung?


Anbei das list:
Internals:
   ADDRESS    daemon
   DEBUGLOG   OFF
   DEF        daemon daemon
   FUUID      65eeb7c7-f33f-d125-7dd1-fc2e6bddec0f99de
   INTERVAL   30
   MODE       daemon
   NAME       PsnceDaemon
   NOTIFYDEV  global
   NR         387
   NTFY_ORDER 50-PsnceDaemon
   STATE      active
   TIMEOUT    60
   TYPE       PRESENCE2
   VERSION    01.03b
   eventCount 10477
   READINGS:
     2024-03-19 08:59:47   daemonMaxScanTime 46
     2024-03-18 13:37:27   daemonSkipCnt   1
     2025-01-26 19:36:55   model           daemon
     2025-02-02 10:16:26   pGrp__total     dis:0 ab:4 pres:4
     2025-02-02 10:16:26   pGrp_default    dis:0 ab:4 pres:4
     2025-02-02 10:16:26   pr_Handy_A absent
     2025-02-02 10:16:26   pr_Handy_A_LP absent
     2025-02-02 10:16:26   pr_Handy_J present
     2025-02-02 10:16:26   pr_Handy_N absent
     2025-02-02 10:16:26   pr_Handy_P  present
     2025-02-02 10:16:26   pr_Handy_P_LP present
     2025-02-02 10:16:26   pr_Handy_T  absent
     2025-02-02 10:16:26   pr_Presence_MQTT2_shelly1_E8DB84D245AD present
     2025-02-02 10:16:26   state           active
   helper:
     DISABLED   0
     FhemLog3Std 0
     curState   init
     debugLog   PsnceDaemon_debugLog
     logDebug   
     maybe      0
     nextScan   1738430118.24714
     updateConfig PsnceDaemon.Initialize
     cnt:
       exec       0
       maybe      0
       state      0
       th         0
     disp:
       condense   1
       verbose    0
     evnt:
     interval:
       absent     30
       init       30
       present    30
     prGroups:
   hmccu:
Attributes:
   comment    01.02.25: intervalNormal war auf 60.
   intervalNormal 30
   room       9.5_Anwesenheit

und des Shellies:
Internals:
   ADDRESS    192.168.178.102
   DEBUGLOG   OFF
   DEF        lan-ping 192.168.178.102
   FUUID      65f817e3-f33f-d125-dc38-f670d97453db6108
   INTERVAL   1
   MODE       lan-ping
   NAME       Presence_MQTT2_shelly1_E8DB84D245AD
   NOTIFYDEV  global
   NR         399
   NTFY_ORDER 50-Presence_MQTT2_shelly1_E8DB84D245AD
   STATE      present
   TIMEOUT    60
   TYPE       PRESENCE2
   VERSION    01.03b
   eventCount 10333
   READINGS:
     2025-02-01 22:25:47   appearCnt       36
     2025-02-01 22:25:47   lastAppear      2025-02-01 22:25:47
     2025-02-01 22:25:28   lastDisappear   2025-02-01 22:25:28
     2025-01-26 19:36:56   model           lan-ping
     2025-02-02 10:17:27   presence        present
     2025-02-02 10:17:27   state           present
   helper:
     DISABLED   0
     FhemLog3Std 0
     curState   present
     debugLog   Presence_MQTT2_shelly1_E8DB84D245AD_debugLog
     logDebug   
     maybe      0
     nextScan   1738487873.21221
     updateConfig Presence_MQTT2_shelly1_E8DB84D245AD.Initialize
     cnt:
       exec       10333
       maybe      0
       state      36
       th         0
     disp:
       condense   1
       verbose    0
     interval:
       absent     300
       init       30
       present    30
     os:
       Cmd        ping -c 1 -w 1 192.168.178.102 2>&1
       search     (ttl|TTL)=\d+
     timestamp:
       absent     2025-02-01 22:25:28
       present    2025-02-01 22:25:47
Attributes:
   intervalNormal 300
   intervalPresent 30
   room       1.9_Garten,Test

Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

flummy1978

Zitat von: bmwfan am 02 Februar 2025, 10:22:23Wie bekomme ich das Device dauerhaft aus der Anwesenheitserkennung?

Ich hatte das Problem noch nie und daher keine Ahnung ob es die Lösung ist, jedoch könnte ich mir vorstellen, dass der Name in dem Fall das Problem ist und das PRESENCE durch den Namen das Teil automatisch übernimmt. 

NAME      Presence_MQTT2_shelly1_E8DB84D245AD

Heissen die anderen MQTT Geräte denn auch irgendwas mit Presence..... ? Wenn nein - dann das o.g. Gerät umbenennen, speichern und im PsnceDaemon einmal alles löschen und neu anlegen. Wobei ich aber auch sehe:
List des Shellys:
  TIMEOUT    60
  TYPE      PRESENCE2

Das ist ein Presence2 Device und kein MQTT Device. Somit auch logisch, dass es angelegt wird  ;)

VG
Andreas

JoWiemann

Hallo Nobbynews,

im Anhang findest Du eine Version mit dem neuen Attribut pingParam. Mit diesem Attribut kannst die Paramter für den ping Befehl selber setzen. Ich prüfe aktuell die Parameter nicht auf Sinnhaftigkeit.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

bmwfan

@flummy1978
Ich habe mehrere Shellies über MQTT als MQTT2-Device angebunden, am laufen und dieses Device ist das Erste, das automatisch zusätzlich zum MQTT2-Device als PRESENCE2-Device angelegt wurde. Es existiert auch das Device MQTT2_shelly1_E8DB84D245AD als MQTT2-Device, das ich über ein DOIF ansteuere.

Es ist in diesem speziellen Fall sogar gut, wie mir noch aufgefallen ist, dass es zusätzlich als PRESENCE2-Device vorhanden ist, da ich so den Ausfall sehr einfach überwachen kann. Trotzdem interessiert es mich, weshalb nur dieses eine Shelly angelegt wurde.

Grüße Jürgen
Synology DS720+ mit Docker-Container und Haupt-FHEM, HM-LAN, Jalousienaktoren HmWired, Shelly-Devices; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

Nobbynews

Zitat von: JoWiemann am 03 Februar 2025, 13:43:39im Anhang findest Du eine Version mit dem neuen Attribut pingParam.
Super, vielen Dank.
Damit kann man jetzt die Parameter individuell für jedes Gerät einstellen.
Habe zum Test mal die beiden Android 15 bei -c 3 - w 5 gelassen und für die beiden Android 14 auf dem Standard.

Norbert

JoWiemann

#276
Zitat von: bmwfan am 02 Februar 2025, 10:22:23Ich habe aber ein anderes "Phänomen", zu dem ich keine Antwort gefunden habe.

Seit einiger Zeit setze ich verstärkt Shellies ein, die ich meist über MQTT angebunden habe. Funktioniert auch sehr zuverlässig. Gerade eben habe ich aber im PsnceDaemon gesehen, dass eines der Shelly-Devices in Presence2 angelegt wurde. Mich wundert, dass a) ein MQTT-angebundenes Device automatisch eingebunden wird und b) nur das eine Shelly-Device und nicht die Anderen, von denen ich inzwischen mehr als 12 Stück integriert habe.

Wie bekomme ich das Device dauerhaft aus der Anwesenheitserkennung?


Grüße Jürgen

Hallo Jürgen,

das 73_PRESENCE2 Modul legt definitiv eigenständig keine Devices an. Das List zeigt, dass es sich hier um ein, wie auch immer und von wem auch immer, manuell angelegtem PRESENCE2 Device handelt. Prüft doch bitte mal in Deinem Log, sofern noch vorhanden, ob sich ein entsprechendes Define finden lässt.

Das PRESENCE2 Device, da es ja kein Shelly Device ist, einfach löschen und gut ist.

Sofern Du Shellies überwachen möchtest kannst auch direkt im Shelly Device die Überwachung aktiviere, sofern ein PRESENCE2 Dämon existiert.

Auszug aus der commanRef von PRESENCE2:
(Überarbeitete Formulierung mit nächstem Update. Die Aktuelle ist etwas kryptisch.)

für Devices, die überwacht werden sollen
attr <name> presentCycle <Sekunden>
Dieses Attribut steht in jedem Device in FHEM zur Verfügung. Wenn gesetzt, wird das zu überwachende Reading aus dem Attribut presentReading oder dem default Reading state durch den Presence2 Daemon auf Aktualisierung überprüft. Findet innerhalb der definierten Zeitspanne keine Aktuallisierung statt wird im Device das Reading "presentState" auf "absend" gesetzt. Im Presence2 Dämon Device wird das Reading evt_monitoredDevice generiert und entsprechend gesetzt.

attr <name> presentReading <name des Readings>
Dieses Attribut steht in jedem Device in FHEM zur Verfügung. Es definiert das Reading, dass von presentCycle überwacht wird. Wird das Attribut nicht gesetzt, wird das Reading: state überwacht.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

rico5588

#277
Hallo Jörg,

ich bin heute zufällig über dieses Modul gestolpert und bin sofort begeistert. In meiner Nertzwerkumgebung gibt es sehr viele Teilnehmer (70+) von dennen welche mir des öfteren das leben schwer machen. Zuletzt habe ich Checkmk genutzt, allerdings fehlt es mir hier an erfahrung um mit den Infos etwas anfangen zu können. Ein tool aus fhem heraus welches einfache Stati logt oder einen einfachen Wert über den Zustand vermittelt ist genau das was ich gesucht habe.👍
Ein Frage dazu. Ist es möglich Device per Autocreate zu definieren? Z.B. Ein Scan nach einem IP Bereich und alle "Funde" werden mit dem Netzwerkname angelegt.
Ist so etwas denkbar? Das würde etwas arbeit sparen. Oder macht es eher kein Sinn alle Geräte anzulegen?
Was ist ein guter Wert für den Intervall?

Gruß und schönen Abend
Rico
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS423+
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

sash.sc

#278
Hallo zusammen.

Ich habe einen neuen PC im Netzwerk. In der Fritzbox nach der IP geschaut, diese fixiert und notiert. Habe das vorhandenen lang Ping mit der IP angepasst, PC  wird aber nicht gefunden. Die FB zeigt mir den Rechner aber an.
Auch LAN Scanner finden den PC nicht. Benutze noch das alte presence Modul.

Jemand eine Idee warum der PC nicht gefunden wird.? Ist Windows 11 in aktueller Version installiert.

Gruß und danke
Sascha

PS: der PC ist auch die Konsole nicht anpingbar
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

flummy1978

Zitat von: sash.sc am 23 Februar 2025, 19:09:07PS: der PC ist auch die Konsole nicht anpingbar

Ich meine dass Windows in der Standard Firewall keinen ping zulässt.... Danach einfach mal suchen  ;)

Vg
Andreas

sash.sc

Habe gegen Abend noch gesucht. Da müssen tatsächlich noch eine paar Einstellung gemacht werden.

Danke.

Gruß Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

eisman

hi,

nur als Info:

mein fhem hat kein BT:

Fehler:

2025.03.01 08:47:09 1: PERL WARNING: Can't exec "hcitool": Datei oder Verzeichnis nicht gefunden at ./FHEM/73_PRESENCE2.pm line 290, <$fh> line 6465.
2025.03.01 08:47:09 2: [PsnceDaemon | Define.447] - SIGNIFICANT:define done

gruss
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S