PRESENCE cover version - anderer Ansatz basierend auf aktuellem Code

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

Vorheriges Thema - Nächstes Thema

gestein

#105
Hallo Martin,

Danke für die neue Version, habe ich gerade installiert.
Anscheinend war es bei mir wieder mal ein Problem mit den zu kurzem "intervalNormal".

Irgendwie scheint aber auch die Liste der Readings noch nicht ganz zu stimmen.
Ich habe 3 Arten von PRESENCE-Devices:
1) lan-ping
2) function
3) lan-bluetooth

Für die Devices für (1) und (2) werden werden Readings mit "pr_<Name>" angelegt, für die (3) aber nicht.
Unter "Probably associated with" werden alle Devices also (1)-(3) aufgelistet.

Die folgenden Readings gibt es außerdem in meinem Daemon-Device:
daemonMaxScanTime 1296 2021-01-07 15:01:12
daemonSkipCnt 1 2021-01-14 20:48:39
model daemon 2021-01-17 16:11:26
pGrp__total dis:8 ab:11 pres:57 2021-01-17 20:31:10
pGrp_default dis:8 ab:11 pres:57 2021-01-17 20:31:10


Die Readings "daemonMaxScanTime" und "daemonSkipCnt" werden bei mir leider nicht mehr aktualisiert, obwohl sie sehr hilfreich wären.

Alles andere muss ich mir erst noch genauer anschauen.
lg, Gerhard

p.s.: Ein kurzes "clearCounts daemon" löst das Problem mit den beiden Readings.
Klar, wenn die 1296 der bisherige Rekord waren ;-)

marvin78

Zitat von: Wzut am 17 Januar 2021, 14:33:20
Ist zwar nirgendwo mit Blut geschrieben, aber einige Module nutzen sowohl set active/inaktive als vorübergehende Abschaltung (ist bei Neustart wieder weg, d.h. aktiv) und zusätzlich noch das Attribut disable 0/1 für permanente Deaktivierung.

Wieso sollte das beim Neustart weg sein? Das ist natürlich Quatsch. Richtig implementiert ist das ein state reading und nicht weg.

Benni

Zitat von: Wzut am 17 Januar 2021, 14:33:20
Ist zwar nirgendwo mit Blut geschrieben, aber einige Module nutzen sowohl set active/inaktive als vorübergehende Abschaltung (ist bei Neustart wieder weg, d.h. aktiv) und zusätzlich noch das Attribut disable 0/1 für permanente Deaktivierung.

Das ist so pauschal nicht richtig! Bspw. at und notify können damit dauerhaft deaktiviert werden. Nur wird das nicht in der Config gespeichert, sondern im statefile und überlebt daher natürlich auch einen Neustart.

Das ist schätzungsweise das, was marvin78 mit "richtiger Implementierung" meint ;)

Ich persönlich bin ein Fan von set active/inactive, eben weil die Config nicht geändert wird.

gb#

lichtimc

Hi und danke für den Beitrag!
Würde dieses Modul das Problem mit folgender Situation lösen?

punker

Hi,

leider klappt bei mir die Installation von PRESENCE define OWServerPRES PRESENCE lan-ping 192.168.2.213 nicht.
Wenn ich das Device so anlege geht FHEM sofort auf 100% Prozessorlast und lässt sich nicht mehr bedienen.
Nur ein systemctl restart fhem startet FHEM wieder.
Dann ist natürlich auch die PRESENCE-Definition weg.
Im Log befindet sich nur bis dahin nur folgendes:
2021.01.25 12:44:02.656 1: PERL WARNING: Subroutine PRESENCE_Initialize redefined at ./FHEM/73_PRESENCE.pm line 39.
2021.01.25 12:44:02.657 1: PERL WARNING: Subroutine PRESENCE_Rename redefined at ./FHEM/73_PRESENCE.pm line 65.
2021.01.25 12:44:02.664 1: PERL WARNING: Subroutine PRESENCE_Define redefined at ./FHEM/73_PRESENCE.pm line 71.
2021.01.25 12:44:02.668 1: PERL WARNING: Subroutine PRESENCE_Undef redefined at ./FHEM/73_PRESENCE.pm line 181.
2021.01.25 12:44:02.671 1: PERL WARNING: Subroutine PRESENCE_updateConfig redefined at ./FHEM/73_PRESENCE.pm line 192.
2021.01.25 12:44:02.673 1: PERL WARNING: Subroutine PRESENCE_Notify redefined at ./FHEM/73_PRESENCE.pm line 232.
2021.01.25 12:44:02.677 1: PERL WARNING: Subroutine PRESENCE_Set redefined at ./FHEM/73_PRESENCE.pm line 247.
2021.01.25 12:44:02.686 1: PERL WARNING: Subroutine PRESENCE_Get redefined at ./FHEM/73_PRESENCE.pm line 302.
2021.01.25 12:44:02.695 1: PERL WARNING: Subroutine PRESENCE_Attr redefined at ./FHEM/73_PRESENCE.pm line 462.
2021.01.25 12:44:02.699 1: PERL WARNING: Subroutine PRESENCE_setNotfiyDev redefined at ./FHEM/73_PRESENCE.pm line 588.
2021.01.25 12:44:02.700 1: PERL WARNING: Subroutine PRESENCE_getBlockingEntites redefined at ./FHEM/73_PRESENCE.pm line 594.
2021.01.25 12:44:02.701 1: PERL WARNING: Subroutine PRESENCE_getAllEntites redefined at ./FHEM/73_PRESENCE.pm line 597.
2021.01.25 12:44:02.702 1: PERL WARNING: Subroutine PRESENCE_getDaemonName redefined at ./FHEM/73_PRESENCE.pm line 600.
2021.01.25 12:44:02.703 1: PERL WARNING: Subroutine PRESENCE_lanBtWrite redefined at ./FHEM/73_PRESENCE.pm line 605.
2021.01.25 12:44:02.705 1: PERL WARNING: Subroutine PRESENCE_lanBtDoInit redefined at ./FHEM/73_PRESENCE.pm line 615.
2021.01.25 12:44:02.709 1: PERL WARNING: Subroutine PRESENCE_lanBtRead redefined at ./FHEM/73_PRESENCE.pm line 627.
2021.01.25 12:44:02.711 1: PERL WARNING: Subroutine PRESENCE_lanBtUpdtTiming redefined at ./FHEM/73_PRESENCE.pm line 688.
2021.01.25 12:44:02.713 1: PERL WARNING: Subroutine PRESENCE_lanBtReady redefined at ./FHEM/73_PRESENCE.pm line 695.
2021.01.25 12:44:02.714 1: PERL WARNING: Subroutine PRESENCE_lanBtProcessAddonData redefined at ./FHEM/73_PRESENCE.pm line 702.
2021.01.25 12:44:02.717 1: PERL WARNING: Subroutine PRESENCE_ProcessState redefined at ./FHEM/73_PRESENCE.pm line 708.
2021.01.25 12:44:02.721 1: PERL WARNING: Subroutine PRESENCE_daemonScanScheduler redefined at ./FHEM/73_PRESENCE.pm line 748.
2021.01.25 12:44:02.723 1: PERL WARNING: Subroutine PRESENCE_doDaemonUnBlocking redefined at ./FHEM/73_PRESENCE.pm line 787.
2021.01.25 12:44:02.727 1: PERL WARNING: Subroutine PRESENCE_daemonScanReply redefined at ./FHEM/73_PRESENCE.pm line 801.
2021.01.25 12:44:02.730 1: PERL WARNING: Subroutine PRESENCE_daemonAbortedScan redefined at ./FHEM/73_PRESENCE.pm line 856.
2021.01.25 12:44:02.733 1: PERL WARNING: Subroutine PRESENCE_doDaemonEntityScan redefined at ./FHEM/73_PRESENCE.pm line 864.
2021.01.25 12:44:02.736 1: PERL WARNING: Subroutine PRESENCE_doDaemonCleanup redefined at ./FHEM/73_PRESENCE.pm line 895.
2021.01.25 12:44:02.740 1: PERL WARNING: Subroutine PRESENCE_doEvtSetup redefined at ./FHEM/73_PRESENCE.pm line 921.
2021.01.25 12:44:02.743 1: PERL WARNING: Subroutine PRESENCE_doEvtCheck redefined at ./FHEM/73_PRESENCE.pm line 955.
2021.01.25 12:44:02.745 1: PERL WARNING: Subroutine PRESENCE_doEvtCheckReply redefined at ./FHEM/73_PRESENCE.pm line 973.
2021.01.25 12:44:13.662 1: PERL WARNING: Deep recursion on subroutine "main::CommandDefine" at ./FHEM/73_PRESENCE.pm line 208.
2021.01.25 12:44:13.663 1: PERL WARNING: Deep recursion on subroutine "main::LoadModule" at fhem.pl line 2075.
2021.01.25 12:44:13.663 1: PERL WARNING: Deep recursion on subroutine "main::CommandReload" at fhem.pl line 2018.


Woran scheiterts?
LG

Dieter

The truth is out there!

gestein

Hallo punker,

das ist eigenartig. Bei mir laufen die lan-pings seit Wochen ohne Probleme (und ich habe testweise mehr als 50).

Ich nehme an, Du hast:
- Die Datei aus dem Betrag #101 genommen? [url]https://forum.fhem.de/index.php/topic,117007.msg1122351.html#msg1122351[url]
- Die vorhandene Datei im Verzeichnis FHEM damit überschrieben
- Die Rechte richtig gesetzt und
- fhem neu gestartet

Sinnvoll ist es dann auch, die Datei 73_PRESENCE.pm aus dem update-Prozess zu nehmen.

Und trotzdem kommen die Fehlermeldungen?
lg, Gerhard

punker

Genau, habe es auch mit älteren Versionen aus dem Thread probiert - mit dem selben Ergebnis!
LG

Dieter

The truth is out there!

gestein

Eigenartig. Bist Du sicher, dass fhem nur die eine richtige 73_PRESENCE.pm lädt?
Die Warnings sollten nicht kommen.

Welche Version verwendest Du gerade? Die aus #101?
Wie viele Zeilen hat die bei Dir? Bei mir sind es 1264 Zeilen.

lg, Gerhard

punker

Auch eigenartig - meine Version hat 1262 Zeilen.
$Id: 73_PRESENCE.pm 18314 2019-01-18 13:49:05Z markusbloch
LG

Dieter

The truth is out there!

gestein

#114
Das ist dann die aus #96 und nicht die aus #101 ;-)

Nach der $Id kannst Du nicht gehen, da diese eine Entwicklerversion ist und Martin das sicherlich noch nicht angepasst hat.

Edit: Mein Fehler: stimmt eh.

martinp876

Das mit 100% load ist klar und unklar.
Offensichtlich wird das Modul neu geladen. Und entweder dies oder etwas anderes ist recursiv, startet sich also immer selbst.
Unklar ist,  warum  das Modul beim define neu geladen wird  und warum recursiv. Das scheint bei dir einzigartig,  bis jetzt.
Ist dies das erste presents device?

bmwfan

#116
Hallo,
muss den alten Thread nochmal aktivieren, da ich gerade erst das modifizierte Modul entdeckt habe.

System: Mehrere Handys (iPhone + Android), die ich über das PRESENCE-Modul erkenne. iPhone durch Abfrage der MAC-Adresse an einer Fritzbox über (Beispiel)
defmod Handy_Andreas PRESENCE function cmd:{checkAllFritzMACpresent("XX:XX:XX:XX:XX:XX")} scan:1 sowie Android über eine structure, die aus lan-ping und der genannten Funktion zusammengesetzt wird. Hatte das vor Jahren so aufgesetzt, bin mir aber nicht klar ob das aktuell auch noch die geeignetste Lösung zur Erkennung der Handys ist.

"Installation" und Anpassung hat geklappt, allerdings habe ich folgende Meldungen im Log:
2021.11.15 11:31:00.895 3: PRESENCE (PsnceDaemon) - skip scan due to running job
2021.11.15 11:31:01.896 3: PRESENCE (PsnceDaemon) - skip scan due to running job
2021.11.15 11:31:06.758 3: PRESENCE (PsnceDaemon) - skip scan due to running job
2021.11.15 11:31:07.760 3: PRESENCE (PsnceDaemon) - skip scan due to running job
2021.11.15 11:31:10.450 3: PRESENCE (PsnceDaemon) - skip scan due to running job


ein get childinfo all bringt:
BlockingCalls:

   Pid:17923
   Fn:PRESENCE_doDaemonUnBlocking
   Arg:PsnceDaemon#Handy_Andreas,Handy_Andreas_LP,Handy_Natasja,Handy_Petra,Handy_Petra_LP,Handy_Tanja
   Timeout:60
   ConnectedVia:telnetForBlockingFn_1636969611_127.0.0.1_52974


Wie kann ich weitersuchen, woher diese Log-Einträge stammen und was noch nciht korrekt läuft?

Grüße Jürgen

Edit:
Glaube den Fehler gefunden zu haben.
IntervalNormal und IntervalPresence bei den Device waren im Standard mit 1 belegt. Habe beides auf 30 gestellt.
IntervalNormal im PsnceDaemon war auf 1 gestellt. Habe jetzt 60 eingetragen.

Mal sehen, ob das Problem beseitigt ist.
Synology DS720+ mit Docker-Container und Haupt-FHEM, HW-LAN, Jalousienaktoren; Raspi 3B+ mit piVCCU ohne FHEM-Instanz, CUL, JeeLink; Raspi 3B+ mit FHEM und HMUARTUSB,  Raspi 3B+ mit HMUARTGPIO, 1-wire, ebusd

enno

Hallo martinp876,

macht es nicht Sinn deine Version nun doch offiziell zu verteilen? Ich nutze deine Version schon seit Jahren ohne Probleme.

https://forum.fhem.de/index.php/topic,129846.msg1241099.html#msg1241099

Gruss
   Enno
Einfacher FHEM Anwender auf Intel®NUC

Gisbert

Hallo Martin,
Hallo alle Interessierten,

ich hab das Modul runtergeladen, werde es nutzen und ggf. berichten, wenn mir was auffällt.
Falls das Modul offiziell wird, wäre das super.

Viele Grüße Gisbert

PS: Kann man einen Thread eigentlich abonnieren, ohne einen eigenen Beitrag zu schreiben?
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

JoWiemann

#119
Zitat von: Gisbert am 16 Januar 2024, 08:03:49Hallo Martin,
Hallo alle Interessierten,

ich hab das Modul runtergeladen, werde es nutzen und ggf. berichten, wenn mir was auffällt.
Falls das Modul offiziell wird, wäre das super.

Das Standard-Modul im SVN: FHEM/73_PRESENCE.pm          JoWiemann            Unterstützende Dienste

Das "überarbeitete" Modul muss ich mir einmal ansehen, oder es gibt einen neuen Maintainer.

Zitat von: Gisbert am 16 Januar 2024, 08:03:49PS: Kann man einen Thread eigentlich abonnieren, ohne einen eigenen Beitrag zu schreiben?

Oben in der Buttonleiste: "ANTWORTEN" "ALS UNGELESEN MARKIEREN" "DRUCKEN" "KEINE ALARME ODER E-MAILS" klicken.

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