PRESENCE cover version - anderer Ansatz basierend auf aktuellem Code

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

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo Raven,

hast Du schon mal auf der Kommandozeile des Betriebssystems ausprobiert, ob und mit welchen Parametern Ping funktioniert? Wenn es funktioniert dann kannst Du über das Attribut pingParam 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

AlexMuc

Hallo Jörg,
wie gewünscht das Log mit verbose 4 (die ersten 3 Zeilen noch mit verbose 3)
2025.10.09 09:01:13 3: Timeout for PRESENCE2_doDaemonUnBlocking reached, terminated process 157742
2025.10.09 09:02:43 3: Timeout for PRESENCE2_doDaemonUnBlocking reached, terminated process 157779
2025.10.09 09:03:43 3: Timeout for PRESENCE2_doDaemonUnBlocking reached, terminated process 157808
2025.10.09 09:04:13 4: [PsnceDaemon | daemonScanScheduler.1237] - EXPANDED:PRESENCE2_doDaemonUnBlocking:
PsnceDaemon#presence_ED300L,presence_EZ1m_South,presence_TV_Michael,presence_TV_WZ,presence_iMac_Disneyland,presence_iPadAir,presence_iPhone13Pro_Michael
2025.10.09 09:04:43 4: [PsnceDaemon | daemonScanScheduler.1214] - EXPANDED:PRESENCE2 (PsnceDaemon) - skip scan due to running job
2025.10.09 09:05:13 4: [PsnceDaemon | daemonScanScheduler.1214] - EXPANDED:PRESENCE2 (PsnceDaemon) - skip scan due to running job
2025.10.09 09:05:43 4: [PsnceDaemon | daemonScanScheduler.1237] - EXPANDED:PRESENCE2_doDaemonUnBlocking:
PsnceDaemon#presence_ED300L,presence_EZ1m_South,presence_TV_Michael,presence_TV_WZ,presence_iMac_Disneyland,presence_iPadAir,presence_iPhone13Pro_Michael
2025.10.09 09:06:13 4: [PsnceDaemon | daemonScanScheduler.1214] - EXPANDED:PRESENCE2 (PsnceDaemon) - skip scan due to running job
2025.10.09 09:06:43 4: [PsnceDaemon | daemonScanScheduler.1237] - EXPANDED:PRESENCE2_doDaemonUnBlocking:
PsnceDaemon#presence_ED300L,presence_EZ1m_South,presence_TV_Michael,presence_TV_WZ,presence_iMac_Disneyland,presence_iPadAir,presence_iPhone13Pro_Michael
2025.10.09 09:07:13 4: [PsnceDaemon | daemonScanScheduler.1214] - EXPANDED:PRESENCE2 (PsnceDaemon) - skip scan due to running job

Raven

Danke Jörg für den Hinweis bzgl. CLI.

Es lag / liegt an der fehlenden "setcap cap_net_raw+p /usr/bin/ping" Zuweisung.

Unter Debian 12 hatte ich diese Capabilities im Einsatz, diese wurden aber durch Debian 13 entfernt.
Und hier war ich der Annahme, daß die Rechte neuerdings über das Paket linux-sysctl-defaults i.V.m. net.ipv4.ping_group_range="0 4294967295" in "/usr/lib/sysctl.d/50-default.conf " gesetzt werden, aber dies fkt. bei mir nicht.

Läuft ja nun. Dankeschön nochmals.
Proxmox-Prod/Dev: Homematic i.V.m. VCCU (HMLan, HM-MOD-RPI-PCB), Philips Hue, Viessmann (optolink)
Fritzbox 7590

AlexMuc

Hallo Jörg,
damit mir das Log nicht so vollgeschrieben wird, ab ich das
Logleve auf 2 gesetzt, aber nun tauchen folgende Meldungen im Log auf:
2025.10.10 20:50:43 2: Timeout for PRESENCE2_doDaemonUnBlocking reached, terminated process 223606
2025.10.10 20:51:13 1: PERL WARNING: Can't fork, trying again in 5 seconds at ./FHEM/73_PRESENCE2.pm line 1395.
2025.10.10 20:51:28 1: Cannot fork: Resource temporarily unavailable
2025.10.10 20:51:28 1: Cannot fork: Resource temporarily unavailable
2025.10.10 20:52:13 2: Timeout for PRESENCE2_doDaemonUnBlocking reached, terminated process 223655
2025.10.10 20:52:13 1: Cannot fork: Resource temporarily unavailable
2025.10.10 20:52:13 1: Cannot fork: Resource temporarily unavailable

Was passiert da?

JoWiemann

Hallo Alex,

es sind nicht mehr genügend Ressourcen vorhanden um weitere Prozesse zu forken. Du kannst mal alles neu starten. Ggf. Musst Du aber auf Betriebssystem Ebene prüfen. Da kann ich Dir allerdings nicht mehr weiterhelfen.

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

AlexMuc

Hmm, da bin ich dann auch raus und muss mir wohl ne Alternative suchen wenn ein Neustart vom Pi keine Abhilfe schafft.
Ich dachte, mein Upgrade vom Pi2 auf einen 4er bringt ausreichend ,,Resourcen" mit. Hat ja auch beim Webserver ne ganze Menge gebracht. Mal sehen, vielleicht hilft ja ein Neustart vom Raspberry

AlexMuc

#291
So, ich glaube, ich bin meinem Problem auf die Schliche gekommen. Einige Geräte lasse ich mit der IP Adresse anpingen, einige über den Bonjournamen (xxx.local). Von meinem MacBook klappt das auch problemlos, vom Pi aber nicht (mehr). Da muß irgendwas beim Umzug auf der Strecke geblieben sein, entweder beim Umzug vom PiHole oder einer anderen Netzwerkeinstellung vom Pi.
Dadurch kam es wohl zu ,,längeren" Timeouts welche der Daemon nicht mehr tolerieren wollte.

Nachtrag: das scheint es wirklich gewesen zu sein. Nachdem Bonjour nun wieder läuft und die Namen auch auf der Konsole aufgelöst werden sind die Fehlermeldungen von Presence2 alle weg. Vielleicht kann man ja etwas aussagekräftigere Fehlermeldung integrieren sofern der Pi da was besseres rausrückt :-)

betateilchen

#292
Moin Jörg,

2025.10.25 11:38:55 1: PERL WARNING: Can't exec "hcitool": No such file or directory at ./FHEM/73_PRESENCE2.pm line 290.
2025.10.25 11:38:55 1: PERL WARNING: Can't exec "hcitool": No such file or directory at ./FHEM/73_PRESENCE2.pm line 290.

In meinem Fall nicht wirklich schlimm, aber unschön.

Könnte man die Zeile 290 vielleicht in den Block "bluetooth" (ab Zeile 350) verschieben, damit sie nur ausgeführt wird, wenn sie auch wirklich Relevanz hat?

Zumal in dem Block ja sogar eine Prüfung stattfindet, ob "hcitool" überhaupt ausführbar ist und im Negativfall ein Abbruch erfolgt. Die Zeile 290 ruft also zu einem zu viel frühen Zeitpunkt bereits "in der Hoffnung, dass es gutgeht" dieses Tool auf.

Zum Hintergrund:

Mein FHEM ist in einen Container umgezogen. Auf der neuen Plattform sind keine Bluetooth tools installiert, weil ich in FHEM schon lange nicht mehr mit bluetooth für Presence2-Szenarien arbeite. Bisher trat die Meldung nicht auf, weil auf dam alten System die entsprechenden Debian Pakete noch vorhanden waren.

Meine LAN-basierten PRESENCE2-devices funktionieren trotz der Warnung problemlos.
Aber ich habe keine Lust, bluez zu installieren, nur um die Warnung im Log loszuwerden 8)



Index: 73_PRESENCE2.pm
===================================================================
--- 73_PRESENCE2.pm    (revision 30436)
+++ 73_PRESENCE2.pm    (working copy)
@@ -287,7 +287,6 @@
        $hash->{helper}{updateConfig}      = $name . ".Initialize";

        use List::Util qw(pairmap);
-        my $hciDev = qx(hcitool dev);

        if  ($a[2] eq "lan-ping") {
            delete $attr{$name}{nonblockingTimeOut};
@@ -383,6 +382,7 @@
                      . "FhemLog3Std:0,1 "
                      . "hcitoolParam:name,info ";

+            my $hciDev = qx(hcitool dev);
            if ($hciDev =~ /Devices:/) {
              $hciDev =~ s/\s+/ /g;
              $hciDev =~ s/Devices:\s//g;
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoWiemann

Hallo betateilchen,

danke für den Hinweis. Habe ich bisher übersehen. Deinen Vorschlag werde ich einbauen. Bin aber jetzt erst einmal ein paar Tage wandern.

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