PRESENCE cover version - anderer Ansatz basierend auf aktuellem Code

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

Vorheriges Thema - Nächstes Thema

Jamo

Hallo Jürgen,
und was ist mit denen, die lan-bluetooth UND eventuell dann das neue bessere cover lan-ping benutzen wollen? Was ist mit denen, die das dann nicht mitbekommen und wo Presence auf einmal nicht funktioniert? Ja, exclude vom Update kann man machen. Aber neue User die dann Presence benutzen, finden dann einen Wiki Eintrag der evtl nicht zum neuen cover Presence passt, weil lan-bluetooth nicht mehr funktioniert. Das zieht einen Rattenschwanz an Änderungen hinter sich her.

Was spricht degegen, das cover modul unter neuem Namen zu veröffentlichen, für die User hier aus diesem Thread?  Warum nicht z.B 73_LanPing_nb.pm? Es geht ja nur darum, das neue lan-ping non-blocking zur Verfügung zu stellen.

Wie gesagt, ein Update unter gleichem Namen meiner Meinung nach nur, falls alle andere Modi weiterhin wie vorher funktionieren und die Attribute beibehalten werden.

Beste Grüsse.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

juemuc

#136
Hallo Jamo,

wenn ich die Beiträge richtig verstanden habe funktioniert doch lan-bluetooth. Ich kann es aber selbst nicht testen. Bezüglich neuem Namen bin ich hin und her gerissen. Im Endeffekt muss der Maintainer entscheiden.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

JoWiemann

Hallo,

im Modul sind ein paar Ungereimtheiten. Lan Bluetooth ist implementiert. Local Bluetooth auch, wird aber im Define auf lokale Fhem Instanz auf einer FritzBox geprüft. Was ich hier für unsinnig halte. Ich kann das loakle Bluetooth nicht testen, habe aber die Prüfung im Define in der angehängten Version einmal auskommentiert. Falls also jemand Lust und Zeit hat, dann bitte einmal testen.

In beiden Modulen befindet sich noch Code für eine lokale Fhem Instanz auf einer FritzBox. Wird das überhaupt noch benötigt. Ich kann das jedenfalls nicht testen und habe auch nicht die Zeit und Muße eine FritzBox entsprechende zu präparieren. Sorry dafür.

Alles in allem zwei schwierige Module.

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

Ellert

Zitat von: Jamo am 17 Januar 2024, 21:45:29Hallo Jürgen,
und was ist mit denen, die lan-bluetooth UND eventuell dann das neue bessere cover lan-ping benutzen wollen? Was ist mit denen, die das dann nicht mitbekommen und wo Presence auf einmal nicht funktioniert? Ja, exclude vom Update kann man machen. Aber neue User die dann Presence benutzen, finden dann einen Wiki Eintrag der evtl nicht zum neuen cover Presence passt, weil lan-bluetooth nicht mehr funktioniert. Das zieht einen Rattenschwanz an Änderungen hinter sich her.

Was spricht degegen, das cover modul unter neuem Namen zu veröffentlichen, für die User hier aus diesem Thread?  Warum nicht z.B 73_LanPing_nb.pm? Es geht ja nur darum, das neue lan-ping non-blocking zur Verfügung zu stellen.

Wie gesagt, ein Update unter gleichem Namen meiner Meinung nach nur, falls alle andere Modi weiterhin wie vorher funktionieren und die Attribute beibehalten werden.

Beste Grüsse.

Ein neues Presence-Modul unter dem alten Namen könnte viel User verärgern, wenn es bestehende Instanzen nicht 100% kompatibel bedient, also Readings sich gleich verhalten.
Schön wäre es, wenn das neue Modul gleich als eigenes Package erstellt würde.

An Hand der angehängten Statistik kann man Anzahl abschätzen.

Ich bin für einen neuen Namen.

JoWiemann

Hallo,

eine Frage in die Runde. Ich kenne /usr/bin/ctlmgr_ctl nur bei einer FritzBox. Googeln hat auch nur FritzBox zurück gemeldet. Von daher macht für mich das Prüfen auf /usr/bin/ctlmgr_ctl hier überhaupt keinen Sinn. Oder übersehe ich etwas. Danke für Eure Rückmeldung.

        if   ($a[2] eq "lan-ping") {
            if(-X "/usr/bin/ctlmgr_ctl" and not $username eq "root") {
                my $msg = "FHEM is not running under root (currently $username) This check can only performed with root access";
                Log 2, "PRESENCE ($name) - ".$msg;
                return $msg;
            }
            $hash->{helper}{os}{Cmd} = ($^O =~ m/(Win|cygwin)/) ? "ping -n 1 -4 $hash->{ADDRESS}"
                                      :($^O =~ m/solaris/)      ? "ping $hash->{ADDRESS} 4"
                                      :                           "ping -c 1 -w 1 $hash->{ADDRESS} 2>&1"
                                      ;
            $hash->{helper}{os}{search} = $^O =~ m/solaris/? 'is alive'
                                         :                   '(ttl|TTL)=\d+'
                                         ;

        }

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

juemuc

Hallo Jörg,

ich vermute aufgrund der aktuellen Infos, dass es fü dich besser ist, wenn Du nur das "neue Modul" optimierst und das "alte" PRESENCE wird quasi eingefroren wird. Dann suchen wir noch einen schönen neuen Namen und gut ist.
Du könntest dann die "Altlasten" entfernen. Beim Testen und bei der Erstellung der Doku bin ich gerne mit dabei (sofern ich die Möglichkeiten habe).

Viele Grüße
Jürgen

PS: Eventuell kann Martin ja helfen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

tomcat.x

Als weiteren Vorteil einer Version unter neuem Namen würde ich noch folgendes sehen: Man könnte die vorhanden Geräte (und bei Notwendigkeit auch nutzende Notifies) dann eins nach dem anderen anpassen.
FHEM: 6.3 auf Raspi 4B, Raspbian (noch Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.10), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

Ellert

Zitat von: tomcat.x am 18 Januar 2024, 11:50:02Als weiteren Vorteil einer Version unter neuem Namen würde ich noch folgendes sehen: Man könnte die vorhanden Geräte (und bei Notwendigkeit auch nutzende Notifies) dann eins nach dem anderen anpassen.
Wenn es 2 Module gibt und das neue Modul auch die alten Modelle in optimierter Form enthält, kann das alte Modul als deprecated erklärt werden und nach erfolgreicher Migration entfernt werden, wie z.B. beim Modul XMBC geschehen

ToKa

Zitat von: Ellert am 18 Januar 2024, 14:22:34Wenn es 2 Module gibt und das neue Modul auch die alten Modelle in optimierter Form enthält, kann das alte Modul als deprecated erklärt werden und nach erfolgreicher Migration entfernt werden, wie z.B. beim Modul XMBC geschehen

ja aber auch nur dann!

Ich bin mit dem "alten" Modul bisher gut gefahren und plädiere dafür, dass das neue Modul einen neuen Namen bekommt. Dann kann man schrittweise migrieren und wird nicht von einem auf den anderen Tag vor einen Scherbenhaufen gestellt (ich weiß, ich könnte es vom Update ausschließen...)

VG
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

Ellert

Text2Speech nutzt PRESENCE, um die Performance bei der Verwendung von Remoteinstanzen zu verbessern, siehe https://forum.fhem.de/index.php?msg=540420

juemuc

Hallo Jörg,

falls Du noch nicht die Lust verloren hast, habe ich in deiner letzten Version nach einem Systemneustart diese Einträge im Logfile:

024.01.19 13:34:28 1: Timeout for PRESENCE_doDaemonUnBlocking reached, terminated process 3930
2024.01.19 13:34:28 2: PRESENCE (HASH(0x55e65db44e20)) - scan aboart
2024.01.19 13:34:28 1: ERROR: empty name in readingsBeginUpdate
2024.01.19 13:34:28 1: stacktrace:
2024.01.19 13:34:28 1:     main::readingsBeginUpdate           called by fhem.pl (5191)
2024.01.19 13:34:28 1:     main::readingsSingleUpdate          called by ./FHEM/73_PRESENCE.pm (861)
2024.01.19 13:34:28 1:     main::PRESENCE_daemonAbortedScan    called by FHEM/Blocking.pm (285)
2024.01.19 13:34:28 1:     main::BlockingKill                  called by fhem.pl (3508)
2024.01.19 13:34:28 1:     main::HandleTimeout                 called by fhem.pl (707)
2024.01.19 13:34:28 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at fhem.pl line 5045.
2024.01.19 13:34:28 1: readingsUpdate(,daemonAboartCnt,1) missed to call readingsBeginUpdate first.
2024.01.19 13:34:28 1: stacktrace:
2024.01.19 13:34:28 1:     main::readingsBulkUpdate            called by fhem.pl (5192)
2024.01.19 13:34:28 1:     main::readingsSingleUpdate          called by ./FHEM/73_PRESENCE.pm (861)
2024.01.19 13:34:28 1:     main::PRESENCE_daemonAbortedScan    called by FHEM/Blocking.pm (285)
2024.01.19 13:34:28 1:     main::BlockingKill                  called by fhem.pl (3508)
2024.01.19 13:34:28 1:     main::HandleTimeout                 called by fhem.pl (707)

Ich kann aber keine Einschränkung feststellen.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

JoWiemann

Zitat von: juemuc am 19 Januar 2024, 14:48:10Hallo Jörg,

falls Du noch nicht die Lust verloren hast, habe ich in deiner letzten Version nach einem Systemneustart diese Einträge im Logfile:

Ich kann aber keine Einschränkung feststellen.

Viele Grüße
Jürgen

Hallo Jürgen,

ich habe mal ein zusätzliches Logging eingebaut. Ich kann den Fehler nicht nachstellen.

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

juemuc

Hallo Jörg,

der "Fehler" scheint nicht immer aufzutreten (Timing-Problem?)

Beim aktuellen Restart habe ich folgende Meldungen erhalten:

2024.01.19 20:21:57 2: PRESENCE (PsnceDaemon) - scan aborted
2024.01.19 20:22:50 1: PRESENCE_doDaemonUnBlocking:
PsnceDaemon#DELL_PC_check,DS415_check,DS920_check,Drucker_check,FB_Internet_check,pi_check,raspberrypi3b_check
2024.01.19 20:22:55 1: PRESENCE_daemonScanReply:
PsnceDaemon<n>0#DELL_PC_check|present<n>DS415_check|present<n>DS920_check|present<n>Drucker_check|present<n>FB_Internet_check|present<n>pi_check|present<n>raspberrypi3b_check|present
2024.01.19 20:23:20 1: PRESENCE_doDaemonUnBlocking:
PsnceDaemon#DELL_PC_check,DS415_check,DS920_check,Drucker_check,FB_Internet_check,pi_check,raspberrypi3b_check
2024.01.19 20:23:20 1: PRESENCE_daemonScanReply:
PsnceDaemon<n>0#DELL_PC_check|present<n>DS415_check|present<n>DS920_check|present<n>Drucker_check|present<n>FB_Internet_check|present<n>pi_check|present<n>raspberrypi3b_check|present
2024.01.19 20:23:50 1: PRESENCE_doDaemonUnBlocking:
PsnceDaemon#DELL_PC_check,DS415_check,DS920_check,Drucker_check,FB_Internet_check,pi_check,raspberrypi3b_check
2024.01.19 20:23:50 1: PRESENCE_daemonScanReply:
PsnceDaemon<n>0#DELL_PC_check|present<n>DS415_check|present<n>DS920_check|present<n>Drucker_check|present<n>FB_Internet_check|present<n>pi_check|present<n>raspberrypi3b_check|present
2024.01.19 20:24:20 1: PRESENCE_doDaemonUnBlocking:
PsnceDaemon#DELL_PC_check,DS415_check,DS920_check,Drucker_check,FB_Internet_check,pi_check,raspberrypi3b_check
2024.01.19 20:24:20 1: PRESENCE_daemonScanReply:
PsnceDaemon<n>0#DELL_PC_check|present<n>DS415_check|present<n>DS920_check|present<n>Drucker_check|present<n>FB_Internet_check|present<n>pi_check|present<n>raspberrypi3b_check|present

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

JoWiemann

Hallo Jürgen,

der Fehler kann eigentlich nur entstehen, wenn der Rückgabe-String nicht korrekt ist.
2024.01.19 20:23:50 1: PRESENCE_daemonScanReply:
PsnceDaemon<n>0#DELL_PC_check|present<n>DS415_check|present<n>DS920_check|present<n>Drucker_check|present<n>FB_Internet_check|present<n>pi_check|present<n>raspberrypi3b_check|present

ist korrekt. Wichtig ist der Anfang: PsnceDaemon<n>0#

Kommt es da zu einem Fehler wird der Name des Device nicht richtig ermittelt und damit kann dann auch die hash-Referenz nicht ermittelt werden.

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

Jojo11

Ich habe den thread zufällig gefunden, da ich auch den Eindruck habe, dass PRESENCE mein System hier und da mal ausbremst (19 entities). Für einen problemlosen Übergang würde ich auch eher für eine parallele Version mit anderem Namen plädieren ::)

schöne Grüße
Jo