Da die für lepresenced nötigen Tools hciconfig, hcitool und gatttool deprecated sind, wurde eine andere Lösung zum Tracking von Bluetooth-LE-Tags nötig. User PatrickR (https://forum.fhem.de/index.php?action=profile;u=5068) war deshalb so nett, und hat eine Alternative gebastelt, die Daten zu erkannten Geräten via MQTT versendet: ble2mqtt.
Alles weitere dazu in den folgenden Beiträgen.
Kurze Anleitung zu ble2mqtt hier: https://wiki.fhem.de/wiki/Ble2mqtt
---Originalbeitrag---
Hallo,
im Zuge von ständigen Problemen mit lepresenced in letzter Zeit und der daraus folgenden Beschäftigung mit dem Thema, habe ich den Verdacht gewonnen, dass hciconfig hcitool gatttool eigentlich schon lange deprecated sind? Liege ich da richtig? Verdacht wird dadurch bestärkt, dass ich in letzter Zeit wieder mal eine Runde Linux Updates gemacht habe. Und eben seit dem die Probleme hab.
Wenn ja, ist angedacht, die Tools zu ersetzen (bluetoothctl)?
Danke
Stefan
P.S.: Das angesprochene Problem:
hcitool lescan
Set scan parameters failed: Input/output error
Hi!
Zitat von: drhirn am 07 April 2022, 13:45:09
im Zuge von ständigen Problemen mit lepresenced in letzter Zeit und der daraus folgenden Beschäftigung mit dem Thema, habe ich den Verdacht gewonnen, dass hciconfig hcitool gatttool eigentlich schon lange deprecated sind? Liege ich da richtig? Verdacht wird dadurch bestärkt, dass ich in letzter Zeit wieder mal eine Runde Linux Updates gemacht habe. Und eben seit dem die Probleme hab.
Streng genommen haben diese Tools von Anfang an Probleme gemacht, was der Grund für die Armada von Workarounds in lepresenced ist. Insofern lässt sich daraus keine Deprecation ableiten. Dennoch hast Du trotzdem Recht, s. insb.: https://github.com/bluez/bluez/blob/master/Makefile.tools
Zitat von: drhirn am 07 April 2022, 13:45:09
Wenn ja, ist angedacht, die Tools zu ersetzen (bluetoothctl)?
Das ist schon länger angedacht. Das Problem ist aber, dass damit ein großflächiger Rewrite (mit einer deutlichen Verschlankung) verbunden wäre. Auch ist auf Grund der bisherigen Erfahrungen davon auszugehen, dass trotz des Wechsels immer noch eine Reihe von Workarounds nötig sein werden. Aber da kann ich falsch liegen. Auch wäre das vermutlich ein Anlass, nicht mehr an das PRESENCE-Protokoll anzuknüpfen sondern auf MQTT umzusatteln. Das würde lepresenced besser von FHEM entkoppeln, FHEM damit entlasten und lepresenced mehr Flexibilität gewähren. Ungeachtet dessen fehlte mir bislang die Zeit, mich darum zu kümmern.
Zitat von: drhirn am 07 April 2022, 13:45:09
P.S.: Das angesprochene Problem:
hcitool lescan
Set scan parameters failed: Input/output error
Sollte dieser Fehler auftreten - bei mir in den letzten 30 Tagen exakt einmal - kümmert sich lepresenced darum:
Apr 1 13:21:36 rpi-flur lepresenced[28377]: [tid:1] main::bluetooth_scan_thread: Received 'Set scan parameters failed: Input/output error', resetting...
Apr 1 13:21:37 rpi-flur lepresenced[28377]: [tid:2] main::bluetooth_dump_thread: Received 'HCI sniffer - Bluetooth packet analyzer ver 5.55'.
Apr 1 13:21:37 rpi-flur lepresenced[28377]: [tid:2] main::bluetooth_dump_thread: Received 'device: hci0 snap_len: 1500 filter: 0xffffffff'.
Apr 1 13:21:37 rpi-flur lepresenced[28377]: [tid:1] main::bluetooth_scan_thread: hcitool exited, retrying...
Apr 1 13:21:39 rpi-flur lepresenced[28377]: [tid:1] main::bluetooth_scan_thread: Received 'LE Scan ...'.
Hast Du mal einen Logauszug mit LOG_DEBUG von lepresenced, am besten direkt nach einem Neustart des Systems ohne konkurrierende Ausführung von Tools auf der Kommandozeile? Hast Du parallel andere Tools laufen, die Bluetooth nutzen?
Wie äußern sich Deine vorwiegenden Probleme denn genau, also startet lepresenced garnicht oder wird er nach zufälliger Zeit "blind"?
Falls Du einen Raspberry PI einsetzt:
Im Schwesterthread überschlagen sich gerade die positiven Emotionen nach der Installation einer älteren Bluetooth-Firmware (https://forum.fhem.de/index.php/topic,75559.msg1177215.html#msg1177215). Hast Du das mal probiert?
Patrick
Zitat von: PatrickR am 07 April 2022, 15:03:32
Das ist schon länger angedacht. Das Problem ist aber, dass damit ein großflächiger Rewrite (mit einer deutlichen Verschlankung) verbunden wäre. Auch ist auf Grund der bisherigen Erfahrungen davon auszugehen, dass trotz des Wechsels immer noch eine Reihe von Workarounds nötig sein werden. Aber da kann ich falsch liegen.
Man müsste es versuchen.
ZitatAuch wäre das vermutlich ein Anlass, nicht mehr an das PRESENCE-Protokoll anzuknüpfen sondern auf MQTT umzusatteln. Das würde lepresenced besser von FHEM entkoppeln, FHEM damit entlasten und lepresenced mehr Flexibilität gewähren.
Das ist eine richtig gute Idee!
ZitatUngeachtet dessen fehlte mir bislang die Zeit, mich darum zu kümmern.
Und das hab ich schon befürchtet ;D. Ich hab mir den Code mal angesehen und überlegt, ob ich da etwas beitragen könnte. Aber das übersteigt meine Fähigkeiten bei Weitem. Leider. Wenn aber Tester bzw. Leute für niedrige Arbeiten gesucht werden, ich stehe zur Verfügung.
ZitatHast Du mal einen Logauszug mit LOG_DEBUG von lepresenced, am besten direkt nach einem Neustart des Systems ohne konkurrierende Ausführung von Tools auf der Kommandozeile? Hast Du parallel andere Tools laufen, die Bluetooth nutzen?
Ging mir jetzt gar nicht so sehr um Hilfe bei der Problemlösung. Ich wollte es nur nicht unerwähnt lassen. Wiki-Hinweis dazu kenne ich und den Thread mit dem Rückstieg auf alte Firmware auch.
Bei mir erholt sich nur lepresenced nicht (immer) von selber. Und mein wichtigster Bluetooth-"Empfänger" ist eine Debian-VM mit BT-Dongle. Da nützt mir die alte PI-BT-Firmware nichts. Sonstige BT-Tools laufen nicht.
Bezüglich Raspberrys ist aber meine - kaum verifizierte - Erkenntnis, dass es mit Raspberry Pi OS Legacy (Buster) gut funktioniert. Ist halt Buster, aber sicherheitstechnisch noch aktuell. Und ich hab noch so viele alte PIs rumliegen, dass ich meine ganze Wohnung damit pflastern könnte. Könnte also meine bisher genutzten "Empfänger" ersetzen.
Naja, vielleicht findet sich ja jemand, der Lust und die Fähigkeiten hat, das Thema irgendwann anzugehen.
Danke dir auf jeden Fall!
Hi!
Das Problem bei dem MQTT-Ansatz ist, dass sicherlich nicht alle Nutzer umsatteln werden und ich auch nicht zwei Versionen pflegen möchte. Aber das könnte man ggf. mit Tutorials abfangen.
Zitat von: drhirn am 07 April 2022, 15:18:37
Bei mir erholt sich nur lepresenced nicht (immer) von selber. Und mein wichtigster Bluetooth-"Empfänger" ist eine Debian-VM mit BT-Dongle. Da nützt mir die alte PI-BT-Firmware nichts. Sonstige BT-Tools laufen nicht.
Bei mir läuft gerade einen Developmentversion, die einen Watchdog enthält. Der prüft regelmäßig, ob (überhaupt) Geräte gesehen werden und startet ggf. die Scan-Prozesse neu. Das setzt aber natürlich voraus, dass (fast) immer irgendwelche Geräte erreichbar sind. Würde Dir das helfen?
Patrick
Hi!
So, ich habe mal was gebaut. Das braucht noch etwas Feinschliff, dann kann ich es mal zum Testen hochladen.
Patrick
Zitat von: PatrickR am 07 April 2022, 19:25:07
Bei mir läuft gerade einen Developmentversion, die einen Watchdog enthält. Der prüft regelmäßig, ob (überhaupt) Geräte gesehen werden und startet ggf. die Scan-Prozesse neu. Das setzt aber natürlich voraus, dass (fast) immer irgendwelche Geräte erreichbar sind. Würde Dir das helfen?
Sorry Patrick, der Beitrag ist bei mir leider untergegangen.
Seit April läuft's bei mir überraschend stabil. Aber ein Watchdog schadet natürlich nie. Könnte man den optional machen und mittels Attribut oder Config-Eintrag aktivieren?
Hallo,
ich würde mich den Problem anschließen, ich hatte immer einen USB Stick mit einem Broadcom bt4.0 Chipsatz verwendet, der geht sehr gut aber die Reichweite ist extrem bescheiden.
Im Zuge eines Hardware upgrades kam eine m.2 Karte Intel AX200 (BT5) rein, mit dieser Karte ist es absolut nicht möglich hcitool zu nutzen um einen LE Scan durchzuführen.
Es kommt direkt ein Input/output error, nach langer suche und intensiver Recherche hies es hcitool ist veraltet nutze bluetoothctl,
mit bluetoothctl ist ein LE scan ohne Probleme möglich.
Das Resultat daraus ist leider das keine Anwesenheitskontolle funktioniert, weil alle auf hcitool bassieren.
Hi!
Zitat von: drhirn am 31 Mai 2022, 09:37:11
Seit April läuft's bei mir überraschend stabil. Aber ein Watchdog schadet natürlich nie. Könnte man den optional machen und mittels Attribut oder Config-Eintrag aktivieren?
Der ist per Default aus, aber beliebig konfigurierbar. Wenn ich aber sehe, was bei mir hier an Geräten rumschwirrt, die teilweise vermutlich den Nachbarn gehören, ist eigentlich genug für den Watchdog los.
Gruß
Patrick
Hi!
Zitat von: GlennDandy am 31 Mai 2022, 13:32:57
Es kommt direkt ein Input/output error, nach langer suche und intensiver Recherche hies es hcitool ist veraltet nutze bluetoothctl,
mit bluetoothctl ist ein LE scan ohne Probleme möglich.
Bluetoothctl scheint in der Tat deutlich stabiler zu laufen. Werde wenn ich so weit bin in den nächsten Tagen mal mein neues Werkzeug hochladen, was mit bluetoothctl scannt und nicht mehr das Presence-Modul bedient sondern die Ergebnisse per mqtt verschickt (siehe Screenshot oben). Dank dem MQTT2_SERVER-Modul von Rudi sollte das sogar ohne externe Dienste nutzbar sein.
Patrick
Guten Abend!
So, hier gibt es mal etwas zum Ausprobieren.
Installationsvoraussetzungen:
apt-get install bluez libexpect-perl libnet-server-perl libreadonly-perl
cpan Net::MQTT::Simple Net::MQTT::Simple::Auth
Aufruf des Skripts, z. B. mit:
ble2mqttd --mqttserver mqtt.domain:8883
ble2mqttd --mqttserver mqtt.domain:8883 --mqttuser user --mqttpass pass
Eine SSL-Verbindung wird ebenfalls unterstützt. Infos dazu und weitere Optionen gibt es mit --help.
ble2mqttd lauscht nach Bluetooth-LE-Geräten (wie lepresenced) und schickt die Ergebnisse an einen MQTT-Server. In FHEM kann man dafür bspw. ein MQTT2_SERVER-Device angelegt werden (falls nicht ohnehin ein externer mqtt-Server wie mosquitto läuft) und jeweils ein MQTT2_DEVICE pro zu überwachendem Bluetooth-Tag.
Patrick
**edit**
Da tut sich bei mir nicht viel:
user@server:~$ sudo ./ble2mqttd --mqttserver url:1883 --mqttuser user --mqttpass password --debug 6 --logtarget stdout --daemon
main::sanity_check: md5 digest of './ble2mqttd' is: 'a59431f8eb0e6b9b4bb14ab66099c17d'.
main::sanity_check: bluetoothctl found at '/usr/bin/bluetoothctl'.
main: Sending 'menu scan'...
main: Sending 'clear'...
main: Sending 'duplicate-data on'...
main: Sending 'transport le'...
main: Sending 'back'...
main: Sending 'scan on'...
main: Scan started.
### Match: [NEW] 44:44:44:69:01:9C (44-44-44-69-01-9C)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -60
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -59
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -59
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -60
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -59
Bricht irgendwie nach dem ersten gefundenen Gerät ab.
Das heißt --daemon nicht --daemonzie. Ist in der Hilfe auch falsch.
Am MQTT-Server kommt aber trotzdem nichts an.
(Und in der Hilfe sind die Debug-Optionen falsch beschrieben. Da wird offenbar eine Zahl erwartet).
Hi!
Zitat von: drhirn am 27 Juni 2022, 12:39:24
**edit**
user@server:~$ sudo ./ble2mqttd --mqttserver url:1883 --mqttuser user --mqttpass password --debug 6 --logtarget stdout --daemon
main::sanity_check: md5 digest of './ble2mqttd' is: 'a59431f8eb0e6b9b4bb14ab66099c17d'.
main::sanity_check: bluetoothctl found at '/usr/bin/bluetoothctl'.
main: Sending 'menu scan'...
main: Sending 'clear'...
main: Sending 'duplicate-data on'...
main: Sending 'transport le'...
main: Sending 'back'...
main: Sending 'scan on'...
main: Scan started.
### Match: [NEW] 44:44:44:69:01:9C (44-44-44-69-01-9C)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -60
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -59
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -59
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -60
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Key: 0x00e0)
### Match: [CHG] 44:44:44:69:01:9C (ManufacturerData Value:)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
### Match: [CHG] 44:44:44:69:01:9C (ServiceData Value:)
### Match RSSI: [CHG] 44:44:44:69:01:9C -> -59
Das sieht doch schonmal gut aus.
Zitat von: drhirn am 27 Juni 2022, 12:39:24
Das heißt --daemon nicht --daemonzie. Ist in der Hilfe auch falsch.
--daemon und --daemon
ize funktionieren beide. Aber durch das Setzen von --debug "verzichtest" Du wieder darauf, was aktuell auch die richtige Entscheidung ist (s. u.).
Zitat von: drhirn am 27 Juni 2022, 12:39:24
(Und in der Hilfe sind die Debug-Optionen falsch beschrieben. Da wird offenbar eine Zahl erwartet).
Zumindest missverständlich. Level ist ja kein wohldefinierter Begriff. Werde es aber anpassen. Bisher sehe ich das Ding eher so als PoC, bei dem - wenn er denn mal bei anderen Personen als mir zuverlässig funktioniert - ggf. jemand unterstützt. Die Doku gehört definitiv dazu.
Zitat von: drhirn am 27 Juni 2022, 12:39:24
Am MQTT-Server kommt aber trotzdem nichts an.
Das ist insofern etwas doof als dass ich in CPAN keine vernünftige MQTT-Library gefunden habe. Die, die ich verwende, hat leider exakt Null Error Handling. Rudi hat das gelöst, in dem er einfach gleich beim Urknall angefangen und alles handgeklöppelt hat.
Kannst Du Dich vielleicht mal von einem einfachen Setup schrittweise zu einem komplexeren durchhangeln? Also z. B. ohne SSL (jetzt schon der Fall), ohne ACLs und ohne Auth starten und dann schauen, ab wann es schief geht?
Alternativ: Kannst Du mir mal Deine MQTT-Server-Config beschreiben/schicken, damit ich das reproduzieren kann? Nutzt Du Mosquitto oder das Modul in FHEM oder was ganz anderes?
Bei mir funktioniert es aktuell zuverlässig mit SSL, Auth und ACLs. Mit einem blanken MQTT2_SERVER hatte ich auch mal gestet. Aber wie gesagt traue ich der MQTT-Library nicht.
Patrick
Zitat von: PatrickR am 27 Juni 2022, 13:13:47
Aber wie gesagt traue ich der MQTT-Library nicht.
Zu recht :D
Mosquitto schreibt in die Logs:
1656329337: Invalid protocol version 3 in CONNECT from 10.168.1.11.
Mit einem MQTT2_SERVER hat's funktioniert, den möchte ich aber eigentlich nicht verwenden.
Hier noch meine Mosquitto-Config:
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
allow_anonymous true
password_file /mosquitto/config/mosquitto.passwd
Zitat von: drhirn am 27 Juni 2022, 13:33:55
Zu recht :D
Mosquitto schreibt in die Logs:
1656329337: Invalid protocol version 3 in CONNECT from 10.168.1.11.
Interessanterweise funktioniert es bei mir mit der aktuellen offiziellen Docker-mosquitto-Version.
Aber das Problem ist wohl bekannt:
https://community.home-assistant.io/t/zoneminder-zone-specific-alarms/92227/6
Die "Lösung" scheint zu sein, Nett::MQTT::Simple::Auth zu patchen :'(
Großartig. Das kann natürlich jeder für sich machen, aber für eine breite Lösung taugt das überhaupt nicht.
Patrick
Zitat von: PatrickR am 27 Juni 2022, 14:02:19
Interessanterweise funktioniert es bei mir mit der aktuellen offiziellen Docker-mosquitto-Version.
Verwende ich auch (
image: eclipse-mosquitto:latest). Das macht's aber nur noch merkwürdiger.
Zitat
Die "Lösung" scheint zu sein, Nett::MQTT::Simple::Auth zu patchen :'(
Großartig. Das kann natürlich jeder für sich machen, aber für eine breite Lösung taugt das überhaupt nicht.
**edit**
Bringt nichts, da kommt dann gleich der nächste Fehler ;)Wenn man's richtig ändert, funktioniert das
Hi!
Zitat von: drhirn am 27 Juni 2022, 14:16:48
Verwende ich auch (image: eclipse-mosquitto:latest). Das macht's aber nur noch merkwürdiger.
Ok, der Punkt ist wohl, dass Net::MQTT::Simple kein Auth unterstützt und Net::MQTT::Simple::Auth kein SSL, aber Net::MQTT::Simple::SSL wiederum (natürlich) SSL erfordert, was bei Dir nicht der Fall ist. D. h. Du und ich verwenden andere Pakete, von denen >=1 im Eimer ist. Was für ein Murks.
Zitat von: drhirn am 27 Juni 2022, 14:16:48
**edit**
Bringt nichts, da kommt dann gleich der nächste Fehler ;)
Wenn man's richtig ändert, funktioniert das
Das Patchen der Auth.pm? Das ist aber leider keine Lösung für ein Tool, das irgendwann lepresenced ablösen soll.
Leider fehlt mir die Zeit, das MQTT per Hand nachzubauen. Meine letzte Hoffnung, wäre dass das SSL-Modul auch eine Klartextverbindung toleriert. Das werde ich mal testen.
Patrick
Zitat von: PatrickR am 27 Juni 2022, 14:46:07
Das Patchen der Auth.pm? Das ist aber leider keine Lösung für ein Tool, das irgendwann lepresenced ablösen soll.
Ja, nein, eh nicht. Ich wollte nur wissen, ob's funktioniert. Hätte gesucht, ob man irgendwo einen Patch für die Library einbringen könnte. Aber auf die Schnelle nichts gefunden. Das wär nämlich die beste Lösung.
if (!defined($mqttfingerprint)) {
if ($mqttuser && $mqttpass) {
$ENV{MQTT_SIMPLE_ALLOW_INSECURE_LOGIN} = 1;
$mqtt = Net::MQTT::Simple->new($mqttserver);
$mqtt->login($mqttuser,$mqttpass);
} else {
$mqtt = Net::MQTT::Simple->new($mqttserver);
}
} else {
$mqtt = Net::MQTT::Simple::SSL->new($mqttserver, {SSL_fingerprint => $mqttfingerprint});
if ($mqttuser && $mqttpass) {
$mqtt->login($mqttuser, $mqttpass);
}
}
Geht. Net::MQTT::Simple kann eh Login. Man muss es nur - wenn ohne SSL - explizit erlauben.
Zitat von: drhirn am 27 Juni 2022, 15:22:26
if (!defined($mqttfingerprint)) {
if ($mqttuser && $mqttpass) {
$ENV{MQTT_SIMPLE_ALLOW_INSECURE_LOGIN} = 1;
$mqtt = Net::MQTT::Simple->new($mqttserver);
$mqtt->login($mqttuser,$mqttpass);
} else {
$mqtt = Net::MQTT::Simple->new($mqttserver);
}
} else {
$mqtt = Net::MQTT::Simple::SSL->new($mqttserver, {SSL_fingerprint => $mqttfingerprint});
if ($mqttuser && $mqttpass) {
$mqtt->login($mqttuser, $mqttpass);
}
}
Geht. Net::MQTT::Simple kann eh Login. Man muss es nur - wenn ohne SSL - explizit erlauben.
Sehr cool! Ich habe zwar das Gefühl, dass das tote Pferd damit nur noch länger defibrilliert wird, aber das ist schonmal ein Lichtblick.
Patrick
Zitat von: PatrickR am 27 Juni 2022, 15:43:12
Sehr cool! Ich habe zwar das Gefühl, dass das tote Pferd damit nur noch länger defibrilliert wird, aber das ist schonmal ein Lichtblick.
Hihi. Aber wenigstens brauchen wir so das toteste Pferd nicht mehr ;D
Blöde Frage: Wie bekomme ich aus dem Lastseen eine ordentlich Uhrzeit raus?
So:
$DEVICETOPIC/lastseen:.* {"lastseen"=>strftime "%Y-%m-%d %H:%M:%S", localtime($EVENT)}
Hier mal als Beispiel mein FHEM-Device:
defmod mqttTest MQTT2_DEVICE
attr mqttTest IODev Mosquitto
attr mqttTest devicetopic ble2mqtt/7C_2F_80_AF_1A_F8
attr mqttTest event-on-change-reading .*
attr mqttTest readingList $DEVICETOPIC/rssi:.* rssi\
$DEVICETOPIC/lastseen:.* {"lastseen"=>strftime "%Y-%m-%d %H:%M:%S", localtime($EVENT)}\
$DEVICETOPIC/present:.* { $EVENT ? {state=>'present'} : {state=>'absent'} }
Hab aber noch ein paar Fragen:
1. Wie stoppe ich das Tool wieder, wenn ich's als Daemon gestartet habe?
2. --absentinterval geht (noch) nicht, oder?
3. Warum minimal 30s absentinterval?
4. Ist noch ein dritter Status "away" nach x Stunden absent geplant? Der wäre für mich wichtig.
Hi!
Danke für Deine Tests, den Patch und Konfigurationsbeispiele.
Zitat von: drhirn am 27 Juni 2022, 18:17:30
1. Wie stoppe ich das Tool wieder, wenn ich's als Daemon gestartet habe?
Zunächst mal durch kill/killall. Eine PID-Datei wird auch unter /var/run angelegt, so dass Du es auch sauber über kill $PID beenden könntest. Prinzipiell kannst Du Dir damit einen Systemd-Service bauen.
Das ginge alles natürlich noch schöner und automatisch mit einem DEB-Paket. Leider verwendet ble2mqttd CPAN-Module, für die es keine Debian-Pakete gibt, daher verfolge ich das aktuell nicht.
Zitat von: drhirn am 27 Juni 2022, 18:17:30
2. --absentinterval geht (noch) nicht, oder?
Gerade mal den Code überflogen. Müsste eigentlich berücksichtigt werden. Wo geht es denn bei Dir schief?
Zitat von: drhirn am 27 Juni 2022, 18:17:30
3. Warum minimal 30s absentinterval?
Das ist ein Versuch, den User vor fehlerträchtigen Einstellungen zu schützen. Das Problem ist hier, dass bluetoothctl bei meinen Tests keine Duplicates anzeigt, auch wenn ich sie explizit angefordert habe. Im Ergebnis sieht ble2mqttd weniger Beacons als es tatsächlich gibt. Setzt man nun absentinterval zu niedrig, führen diese übersehenen Beacons zu (falschen) absents. Wenn Du damit experimentieren möchtest, kannst Du einfach den Check in Zeile 190 auskommentieren. Die 30s sind aber nicht in Stein gemeißelt, also gerne Feedback, was bei Dir funktioniert.
Zitat von: drhirn am 27 Juni 2022, 18:17:30
4. Ist noch ein dritter Status "away" nach x Stunden absent geplant? Der wäre für mich wichtig.
Nein. Ich möchte offen gestanden auch nicht zu viel Logik in ble2mqttd auslagern, das eigentlich nur nackte Informationen an FHEM weitergeben soll. Streng genommen ist das present-topic eigentlich auch schon zuviel, da man in FHEM über lastseen die Anwesenheit auswerten und beliebig personalisieren kann.
Patrick
Hallo Patrick
Ich finde Deinen Ansatz sehr spannend und habe Ihn bei mir mal getestet. Läuft auch ohne Große Probleme.
Mich stört nur ein wenig das sich bei jeden Neustart des pi auf dem ich mqtt2ble laufen habe sich der ID-Name des MQTT2DEVICE in Fhem ändert und bei
Autocreate dadurch immer wieder ein neues Device angelegt wird. Plus Log file. Kann man das so im Skript ändern, das immer derselbe ID-Name gesendet wird?
Dann habe ich beobachtet das schon sehr viel vom Skript mqtt2ble gesendet wird. Ich wusste nicht das so viele Geräte bei uns im Haus ble Mac Adressen senden.
Mehr als 20 was natürlich ein paar topic s sind.
Ich habe bei mir nur zwei G-Tags, die ich überwachen möchte. Ist es da möglich im Skript die mqtt Nachrichten, die an FHEM rausgehen nur auf voreingestellt MAC-Adressen zu reduzieren?
Ich habe mich schon vergeblich daran versucht alle Topics in FHEM per ignoreRegexp im MQTT2_SERVER zu ignorieren die nicht den beiden MAC-Adressen endsprechen.
REGEX ist nicht mein Freund.
Viele Grüsse
Stephan
Hallo Stephan,
Zitat von: Stelaku am 15 September 2022, 21:39:44
Mich stört nur ein wenig das sich bei jeden Neustart des pi auf dem ich mqtt2ble laufen habe sich der ID-Name des MQTT2DEVICE in Fhem ändert und bei
Autocreate dadurch immer wieder ein neues Device angelegt wird. Plus Log file. Kann man das so im Skript ändern, das immer derselbe ID-Name gesendet wird?
Da ich den internen MQTT2_SERVER nicht verwende: Kannst Du mir mal ein list des MQTT2_DEVICE senden, in dem man diese ID sieht?
Zitat von: Stelaku am 15 September 2022, 21:39:44
Ich habe bei mir nur zwei G-Tags, die ich überwachen möchte. Ist es da möglich im Skript die mqtt Nachrichten, die an FHEM rausgehen nur auf voreingestellt MAC-Adressen zu reduzieren?
Das ist natürlich möglich. Aber eine der Grundideen von Publisher/Subscriber-Ansätzen wie MQTT ist, dass man sich nur exakt auf die Topics subscribed, die einen interessieren. Ich habe die Topic-Struktur auch (hoffentlich) so gewählt, dass alle Informationen unterhalb der MAC-Adresse des Geräts hängen, so dass das sehr einfach geht.
D. h. das wäre in FHEM zu lösen, wofür ich aber ein schlechter Ansprechpartner bin, da ich mit einem externen Broker arbeite. Aber vielleicht kann Dir im MQTT-Forenbereich jemand helfen.
Patrick
ZitatAber eine der Grundideen von Publisher/Subscriber-Ansätzen wie MQTT ist, dass man sich nur exakt auf die Topics subscribed, die einen interessieren.
Das ist prinzipiell richtig, allerdings mit zwei Haken: man hat nicht immer eine Doku, und "heutige" Benutzer erwarten, dass die Einbindung mit minimalen Aufwand funktioniert.
Deswegen legt FHEM mit MQTT2_SERVER in der Voreinstellung fuer jede ClientID ein MQTT2_DEVICE an, und ordnet anhand dieses IDs alle Topics zu. Natuerlich kann man das abschalten, und alles manuell konfigurieren, aber wenn man die funktionierende Alternative gesehen hat, dann faellt einem das schwer.
Hi!
So, habe mal die ClientID-Geschichte eingebaut, auch wenn ich kein Freund von der Idee bin, die clientID als Heuristik zweckzuentfremden.
Grüße
Patrick
Hallo Patrick
Vielen dank für Deine Bemühungen
Habs gleich mal getestet.
Funktioniert prima.
Jetzt wird nur noch einmal ein logfile und eine MQTT2_DEVICE angelegt egal wie oft das skript gestartet wird.
Ich bekomme jetzt aber immer eine Meldung in der ssh Konsole. das Skript läuft aber trotzdem ohne sichtbare Probleme.
stephan@test:~ $ sudo ./ble2mqtt1 --mqttserver 192.168.178.31:1883 &
[1] 772
stephan@test:~ $ Ambiguous use of *{Net::MQTT::Simple::_client_identifier} resolved to *Net::MQTT::Simple::_client_identifier at ./ble2mqtt1 line 86.
Subroutine Net::MQTT::Simple::_client_identifier redefined at ./ble2mqtt1 line 90.
stephan@test:~ $
Viele grüsse
Stephan
Hi!
Zitat von: Stelaku am 17 September 2022, 12:22:44
Ich bekomme jetzt aber immer eine Meldung in der ssh Konsole. das Skript läuft aber trotzdem ohne sichtbare Probleme.
Warning ist auch raus.
Patrick
/Edit: Anhang entfernt, da neue Version weiter unten angehängt.
Hallo Patrick,
wenn ich das richtig verstehe: "collectord" funktioniert mit dem MQTT Ansatz nicht mehr, oder?
Oder braucht man den dann gar nicht mehr? Dann läuft auf allen verteilten (RPi) clients das script, auf der fhem Haupinstanz kommt dann alles unter einem MQTT_Device zusammen.
Ist das so?
Hi!
Zitat von: Jamo am 25 September 2022, 09:13:41
wenn ich das richtig verstehe: "collectord" funktioniert mit dem MQTT Ansatz nicht mehr, oder?
Prinzipiell konnte man aus meiner Sicht collectord schon immer mit FHEM-Bordmitteln ersetzen.
Zitat von: Jamo am 25 September 2022, 09:13:41
Oder braucht man den dann gar nicht mehr? Dann läuft auf allen verteilten (RPi) clients das script, auf der fhem Haupinstanz kommt dann alles unter einem MQTT_Device zusammen.
So könnte man es tun, aber Du brauchst vermutlich zusätzlich noch eine Lösung, um die Status der verschiedenen Instanzen zusammenzuführen. Wenn es Dir nur um an- oder abwesend geht könntest Du das schnell und einfach über eine Structure lösen. Wenn Du mehr möchtest, also z. B. eine Info, in welchem Raum Du am wahrscheinlichsten bist, vielleicht mit einem Notify/DOIF.
Patrick
Hallo,
ich wollte mich damit mal ein bisschen spielen.
Nach der Installation des Tools und eines MQTT2-Servers bekomme ich nun ein MQTT2-Device und dort werden alle Bluetooth-Devices im Attribut readingList gespeichert:
ble2mqttd_Sepia_Client_:ble2mqtt/heartbeat:.* heartbeat
ble2mqttd_Sepia_Client_:ble2mqtt/5A_DF_B5_71_7E_5B/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/5A_DF_B5_71_7E_5B/present:.* present
ble2mqttd_Sepia_Client_:ble2mqtt/F3_33_4E_A2_A7_EC/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/F3_33_4E_A2_A7_EC/present:.* present
ble2mqttd_Sepia_Client_:ble2mqtt/EA_EA_66_97_10_F3/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/EA_EA_66_97_10_F3/present:.* present
ble2mqttd_Sepia_Client_:ble2mqtt/59_50_EB_AA_53_98/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/59_50_EB_AA_53_98/present:.* present
ble2mqttd_Sepia_Client_:ble2mqtt/F3_F4_96_4D_1C_C6/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/F3_F4_96_4D_1C_C6/present:.* present
ble2mqttd_Sepia_Client_:ble2mqtt/58_9E_C6_0E_EC_AD/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/58_9E_C6_0E_EC_AD/present:.* present
ble2mqttd_Sepia_Client_:ble2mqtt/79_49_3C_4B_9D_33/lastseen:.* lastseen
ble2mqttd_Sepia_Client_:ble2mqtt/79_49_3C_4B_9D_33/present:.* present
und etliche mehr
Ist das so gedacht?
D.h. ich muss nun manuell die MQTT2-Devices wie von drhirn anlegen?
https://forum.fhem.de/index.php/topic,127173.msg1226199.html#msg1226199 (https://forum.fhem.de/index.php/topic,127173.msg1226199.html#msg1226199)
Danke im Voraus
lg, Gerhard
Hi!
Zitat von: gestein am 25 September 2022, 18:01:25
Hallo,
ich wollte mich damit mal ein bisschen spielen.
Nach der Installation des Tools und eines MQTT2-Servers bekomme ich nun ein MQTT2-Device und dort werden alle Bluetooth-Devices im Attribut readingList gespeichert:
Ist das so gedacht?
Jein. Es ist so von MQTT2_SERVER gedacht. Der versucht zu raten, wie Du Deine Geräte gerne hättest. Ob Dir das was bringt, ist eine andere Frage.
Zitat von: gestein am 25 September 2022, 18:01:25
D.h. ich muss nun manuell die MQTT2-Devices wie von drhirn anlegen?
Wenn Du es sauber und geordnet haben willst mit einem FHEM-Device pro MAC-Adresse ja.
Grüße
Patrick
Verstehe. Danke.
Kann man das abstellen?
Meine Gtags laufen probeweise seit ein paar Stunden.
Mal sehen, wie sich das bewährt. Schaut gut aus :)
Ganz verstehe ich noch nicht, wie man nun collectord ersetzen kann.
Ich habe 3 Rechner, die einige Zimmer abdecken.
Dann müsste ich pro Rechner einen MQTT2-Server mit anderem Port anlegen und jeweils ein MQTT2-Device.
Oder?
Ist dann irgendwann geplant, den Rechnernamen oder eine andere Kennung mitzuschicken, damit man das unterscheiden kann?
Wäre auch der Batterielevel geplant? ;)
Danke, lg, Gerhard
Hi!
Zitat von: gestein am 25 September 2022, 22:16:08
Kann man das abstellen?
Uff, nutze das Modul nicht. Aber gehe davon aus, dass Du in der Commandref von MQTT2_SERVER etwas zu autocreate findest.
Zitat von: gestein am 25 September 2022, 22:16:08
Meine Gtags laufen probeweise seit ein paar Stunden.
Mal sehen, wie sich das bewährt. Schaut gut aus :)
ble2mqttd nutzt gattool, was nach meiner Wahrnehmung um Welten stabiler ist.
Zitat von: gestein am 25 September 2022, 22:16:08
Ganz verstehe ich noch nicht, wie man nun collectord ersetzen kann.
Ich habe 3 Rechner, die einige Zimmer abdecken.
Dann müsste ich pro Rechner einen MQTT2-Server mit anderem Port anlegen und jeweils ein MQTT2-Device.
Oder?
Ist dann irgendwann geplant, den Rechnernamen oder eine andere Kennung mitzuschicken, damit man das unterscheiden kann?
Ein MQTT2_SERVER reicht. Du musst nur bei jedem ble2mqttd ein anderes topic setzen und dann nach der "drhirn-Methode" für jede MAC-Adress-Raum-Kombination ein Device in FHEM, z. B.
Gerhard_Wohnzimmer
Gerhard_Flur
Gerlinde_Wohnzimmer
Gerlinde_Flur
Und dann fasst Du die Gerhards in einer structure zusammen und die Gerlindes in einer anderen. Damit bekommst Du dann einen hausweiten Gerhard-Status. Das jetzt erstmal ins Unreine gedacht. Habe das selbst noch nicht gemacht.
Etwas anspruchsvoller wird dann die Auswertung, in welchem Raum Du mit größter Wahrscheinlichkeit bist (-> rssi-Werte).
Zitat von: gestein am 25 September 2022, 22:16:08
Wäre auch der Batterielevel geplant? ;)
Das würde sich anbieten. Aber mir fehlt momentan zugegebenermaßen die Zeit, da weiter dran zu werkeln. Eigentlich hatte ich schon für ble2mqttd keine :)
Patrick
Hallo Patrick,
Danke.
Mit ,,autocreate no" ist hier wieder Ruhe.
In der Hilfe von ble2mqttd kann ich zum Thema topic nichts finden.
Habe ich da vielleicht eine alte Version?
Mit etwas Warten kann ich natürlich leben ;)
Danke, lg, Gerhard
Hi!
Zitat von: gestein am 25 September 2022, 23:44:18
In der Hilfe von ble2mqttd kann ich zum Thema topic nichts finden.
Habe ich da vielleicht eine alte Version?
Nö, nur hat "irgendwer" vergessen, das in die Usage reinzupacken ;)
Einfach ble2mqttd zusätzlich mit
--mqtttopic ble2mqtt/flur
aufrufen.
Dann für jede Instanz in der drhirn-Definition
attr mqttTest devicetopic ble2mqtt/7C_2F_80_AF_1A_F8
durch
attr mqttTest devicetopic ble2mqtt/flur/7C_2F_80_AF_1A_F8
ersetzen.
Patrick
Neue Version 0.05 mit angepasster Hilfe, keine funktionalen Änderungen.
/Edit: Anhang entfernt. Aktuelle Version in #59
Hallo,
ich habe mich an der neuen Version versucht.
Damit hätte man schon mal die Werte pro Raum:
devicetopic ble2mqttd/.*/58_9E_C6_0E_EC_AD
$DEVICETOPIC/rssi:.* {my $room=(split /\//,$TOPIC)[1]; {"rssi_$room"=>$EVENT}}
$DEVICETOPIC/lastseen:.* {my $room=(split /\//,$TOPIC)[1]; {"lastseen_$room"=>strftime "%Y-%m-%d %H:%M:%S", localtime($EVENT)}}
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; $EVENT ? {state=>'present'} : {state=>'absent'} }
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; $EVENT ? {"presence_$room"=>'present'} : {"presence_$room"=>'absent'} }
$DEVICETOPIC/LWT:.* LWT
Nun muss ich mir noch überlegen, wie ich die present-Werte aus den bekannten Räumen zusammenführe und richtig auswerte.
Und das mit dem LWT stimmt auch noch nicht ;)
lg, Gerhard
Hi!
Zitat von: gestein am 26 September 2022, 13:28:41
Damit hätte man schon mal die Werte pro Raum:
devicetopic ble2mqttd/.*/58_9E_C6_0E_EC_AD
$DEVICETOPIC/rssi:.* {my $room=(split /\//,$TOPIC)[1]; {"rssi_$room"=>$EVENT}}
$DEVICETOPIC/lastseen:.* {my $room=(split /\//,$TOPIC)[1]; {"lastseen_$room"=>strftime "%Y-%m-%d %H:%M:%S", localtime($EVENT)}}
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; $EVENT ? {state=>'present'} : {state=>'absent'} }
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; $EVENT ? {"presence_$room"=>'present'} : {"presence_$room"=>'absent'} }
$DEVICETOPIC/LWT:.* LWT
Ah, Du packst alle Infos zu einer Person in ein Gerät. Ggf. kann man in diesem Fall sogar die Auswertung mit einem (etwas größeren) Userreading lösen. Das könnte man dann sogar in 99_MyUtils auslagern und für alle Bewohner-Devices nutzen.
Zitat von: gestein am 26 September 2022, 13:28:41
Und das mit dem LWT stimmt auch noch nicht ;)
Ja, vor allem auch, weil ble2mqttd das Topic garnicht setzt. Bislang gibt es als schlechte Alternative das instanzweite Heartbeat-Topic.
Patrick
Hallo,
ja, das war meine Idee. Irgendwie habe ich gerne alles in einem Gerät, wenn es sinnvoll zusammengehört.
Prinzipiell klappt das mit dem userreading presence schon (ist aber relativ aufwändig und als Einzeiler unübersichtlich).
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; my $presence="absent";foreach my $readingname (keys %{$defs{"$NAME"}->{READINGS}}) {if($readingname =~ "presence_" && ReadingsVal("$NAME","$readingname","absent") eq "present") {$presence="present";last}}; if($EVENT) {$presence="present"}; fhem "setreading $NAME state $presence";fhem "setreading $NAME presence $presence"; $EVENT ? {"presence_$room"=>'present'} : {"presence_$room"=>'absent'}}
Wenn man auch den Raum und die RSSI als userreading haben will, wird es noch etwas aufwändiger.
Damit hätte man dann 2 Funktionen in 99_myUtils.
Ich teste den Code mal mit 2 oder 3 Nebenstellen, bevor ich mehr dazu poste.
lg, Gerhard
Ich wollte nur kurz anmerken, bevor du dir zu viel Arbeit antust: Das PRESENCE Modul kann auch auf Events hören. Löst nicht die Sache mit dem Raum, könnte aber sonst ein paar Dinge einfacher machen.
Vielleicht hilft es weiter - hatte mal was ähnliches angefangen für OpenMQTTGateway:
Es wird alles in ein MQTT2_DEVICE gepiped, das von den unterschiedlichen ESP's für einen BT-Tag empfangen wird:
define OMG_FFFFC424A12B MQTT2_DEVICE FFFFC424A12B
attr OMG_FFFFC424A12B userattr maxPresenceAge maxReadingsAge
attr OMG_FFFFC424A12B IODev MQTT2_FHEM_Server
attr OMG_FFFFC424A12B autocreate 0
attr OMG_FFFFC424A12B icon rfid_tag
attr OMG_FFFFC424A12B maxPresenceAge 1200
attr OMG_FFFFC424A12B maxReadingsAge 100000
attr OMG_FFFFC424A12B model OpenMQTTGateway_BT_gtag
attr OMG_FFFFC424A12B readingList home/(O[^/]*M[^/]*G[^/]*)/BTtoMQTT/FFFFC424A12B:.* { $TOPIC =~ m,home/(O[^/]*M[^/]*G[^/]*)/BTtoMQTT,;; json2nameValue($EVENT, "${1}_") }\
home/(O[^/]*M[^/]*G[^/]*)/BTtoMQTT/FFFFC424A12B:.* { $TOPIC =~ m,home/(O[^/]*M[^/]*G[^/]*)/BTtoMQTT,;; {"last_IO"=>"$1"}}
attr OMG_FFFFC424A12B room Steuerung->Interfaces
attr OMG_FFFFC424A12B stateFormat Last IO: last_IO
attr OMG_FFFFC424A12B userReadings bestRecentGW:.*_rssi.* {identifyMyBestGW($name)}
PRESENCE auch via function:
define FFFFC424A12B_presence PRESENCE function { my $maxage = AttrVal("OMG_FFFFC424A12B","maxPresenceAge","300");;;; ReadingsAge("OMG_FFFFC424A12B","Last_IO","100000") < $maxage ? 1 : 0 }
Und hier noch die myUtils für das Ermitteln des "besten IO's":
sub identifyMyBestGW {
my $name = shift;
my $maxReadingsAge = shift // AttrVal($name,"maxReadingsAge",600);
my $hash = $defs{$name};
my @rssis = grep { $_ =~ /.*_rssi/ } sort keys %{ $hash->{READINGS} };
my $bestGW = "unknown";
my $bestGWold = ReadingsVal($name,"bestRecentGW","unknownGW");
my $bestRSSI = -1000;
my $currentRSSI = 0;
for (@rssis) {
if (ReadingsAge($name,$_,100) < $maxReadingsAge) {
$currentRSSI = ReadingsVal($name,$_,-1100);
if ($currentRSSI > $bestRSSI) {
$bestRSSI = $currentRSSI ;
$bestGW = $_;
}
}
}
$bestGW =~ s/_.*//g;
return $bestGW ne $bestGWold ? $bestGW : undef;
}
Zitat von: drhirn am 27 September 2022, 10:06:33
Ich wollte nur kurz anmerken, bevor du dir zu viel Arbeit antust: Das PRESENCE Modul kann auch auf Events hören. Löst nicht die Sache mit dem Raum, könnte aber sonst ein paar Dinge einfacher machen.
Bis dato hatte ich für meine GTags je ein PRESENCE-Device mit lepresenced/collectord.
Das wurde dann im ROOMMATE ausgewertet.
Nun hatte ich versuchsweise das PRESENCE-Device durch das MQTT2-Device ersetzt.
Hatte im ersten Schritt mal funktioniert.
Werde mir aber gerne anschauen, ob diese Kette besser ist: MQTT2-Device (mit ble2mqttd) -> PRESENCE-Device -> ROOMMATE
@Beta-User: Vielen Dank. Sehr interessant. Das schaue ich mir auch gerne an.
lg, Gerhard
Nachtrag noch...
Habe gesehen, dass das betr. attrTemplate auch noch ein update erfahren hat, damit nur noch ein Event-Stapel ausgelöst wird. Könnte man hier genauso machen, z.B. so (eleganter wäre es, den Reading-Wert vorab zu ermitteln):
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; $EVENT ? {"presence_$room"=>'present', state=>'present' } : {"presence_$room"=>'absent', state=>'absent'} }
Hallo Beta-User,
dieser Eventstapel erleichtert mir auch einiges. Cool.
Eine Frage bitte noch:
In Deiner Funktion "identifyMyBestGW" hast Du diesen wirklich coolen Code:
my $hash = $defs{$name};
my @rssis = grep { $_ =~ /.*_rssi/ } sort keys %{ $hash->{READINGS} };
Kann man das "grep" so erweitern, dass es alle Readings mit "_rssi" am Ende liefert, aber das Reading auslässt, dessen Raumname in der Variablen $room steht?
Also in der Art:
Vorzimmer_rssi
room
state
Wohnzimmer_rssi
Garage_rssi
Wenn $room="Vorzimmer" ist, dann sollte @rssis enthalten "Wohnzimmer_rssi, Garage_rssi",.
Das würde meinen Code sehr vereinfachen.
Danke schon mal.
lg, Gerhard
Geht vermutlich schon, wenn man ein (?!$room) da reinknödelt.
Einfacher ist es vermutlich, ein "next if $_ eq $room;" an den Beginn der Schleife zu stellen.
OT: Der Code ist auch schon wieder etwas angejahrt, würde ich heute auch anders schreiben (für was wird da sortiert?):
my @rssis = grep { $_ =~ m{.*_rssi\z}x } keys %{ $hash->{READINGS} };
Und das andere dementsprechend:
$DEVICETOPIC/present:.* {my $room=(split m{[/]}x, $TOPIC)[1]; my $ret = $EVENT ? 'present' : 'absent'; { "presence_$room"=>$ret, state=>$ret } }
Cool. Danke für die vielen Hinweise.
Das hier sollte funktionieren - kurz und prägnant ;)
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; my $presenceRoom=$EVENT? "present":"absent"; my $presence=$presenceRoom; my @readings = grep { $_ =~ m{^presence_(?!$room).*}x } keys %{$defs{"$NAME"}->{READINGS}}; foreach (@readings) {if(ReadingsVal("$NAME","$_","absent") eq "present") {$presence="present"; last}}; {"presence_$room"=>"$presenceRoom","presence"=>"$presence","state"=>"$presence"}}
Mal schauen, wie man damit auch den Raum und das rssi schön lösen kann.
Rein aus Interesse.
lg, Gerhard
Meine "Hinweise" zu
- Interpolation (http://perlmeme.org/howtos/using_perl/interpolation.html, wann wo wie benötigt, und wo eben auch nicht...),
- "foreach" und
- genauerer Anweisung an den Perl-Interpreter, wie die regex zu verstehen ist (auch im split),
scheinen demnach nicht so interessant gewesen zu sein ::) ...
Hallo Beta-User,
ich weiß jetzt nicht genau, was Du meinst.
Die allermeisten Ideen und vor allem den Code habe ich doch von Dir übernommen.
lg, Gerhard
Dein Ergebnis:
$DEVICETOPIC/present:.* {my $room=(split /\//,$TOPIC)[1]; my $presenceRoom=$EVENT? "present":"absent"; my $presence=$presenceRoom; my @readings = grep { $_ =~ m{^presence_(?!$room).*}x } keys %{$defs{"$NAME"}->{READINGS}}; foreach (@readings) {if(ReadingsVal("$NAME","$_","absent") eq "present") {$presence="present"; last}}; {"presence_$room"=>"$presenceRoom","presence"=>"$presence","state"=>"$presence"}}
Mein Vorschlag für eine sauberere Schreibweise:
$DEVICETOPIC/present:.* {my $room=(split m{[/]}x,$TOPIC)[1]; my $presenceRoom=$EVENT ? 'present':'absent'; my $presence=$presenceRoom; my @readings = grep { $_ =~ m{\Apresence_(?!$room).*}x } keys %{$defs{$NAME}->{READINGS}}; for (@readings) {if(ReadingsVal($NAME,$_,'absent') eq 'present') {$presence='present'; last}}; {"presence_$room"=>$presenceRoom, presence=>$presence,state=>$presence}}
Das mit dem "m{[/]}x" in der regex für das split hatte ich doch glatt übersehen.
Danke.
Beim grep habe ich es dafür ja schon ;)
Und statt dem "foreach" ein "for" zu nehmen, ist auch kein Thema.
Auch die Hochkomma werde ich mir mal zu Gemüte führen.
Danke für die Hinweise.
Im Code selbst haben sich noch ein paar Änderungen ergeben.
Nun läuft es mal und ich werde ausführlich testen.
lg, Gerhard
Hallo,
könnte mir bitte jemand dabei helfen das "ble2mqttd" beim Start des raspi automatisch zu starten?
Wie macht man das?
Danke, lg, Gerhard
ich mach das über die rc.local datei
Zitat
/etc/rc.local
Gruss
Stephan
Kommt auf das System an.
Bis Stretch (wobei ab dort beides geht) war initd, also ein Startscript in /etc/initd
Ab Stretch dann systemd, also eine Unit-Datei in /etc/systemd/system
In jedem der genannten Ordner sind Beispiele vorhanden, ansonsten Internet oder eben mitteilen, was die Basis ist.
Siehe "Einleitung"...
Gruß, Joachim
Hallo,
Danke erstmal für die Tipps.
Ich starte ble2mqttd nun über die Datei "/etc/rc.local".
Mittlerweile klappt das mit ble2mqtt ganz gut.
Die Multiraum-Lösung ist etwas komplizierter.
Hier meine Lösung dafür:
defmod mqtt_Gtag_orange MQTT2_DEVICE
attr mqtt_Gtag_orange IODev MQTT2_FHEM_Server2
attr mqtt_Gtag_orange comment https://forum.fhem.de/index.php/topic,127173.msg1226199.html#msg1226199
attr mqtt_Gtag_orange devicetopic ble2mqttd/.*/7C_2F_80_99_D8_A3
attr mqtt_Gtag_orange event-on-change-reading .*
attr mqtt_Gtag_orange readingList $DEVICETOPIC/rssi:.* {my $room=(split m{[/]}x,$TOPIC)[1];; my $roomMax=$room;; my $rssiMax=$EVENT;; my @readings = grep { $_ =~ m{\Arssi_(?!$room).*}x } keys %{$defs{"$NAME"}->{READINGS}};; for (@readings) {my $rssiTmp=ReadingsVal($NAME,$_,'-100');; my $roomTmp=(split m{[_]}x,$_)[1];; if(($rssiMax gt $rssiTmp)&&(ReadingsVal($NAME,"presence_".$roomTmp,'absent') eq 'present')) {$rssiMax=$rssiTmp;;$roomMax=$roomTmp}};; {rssi=>$rssiMax,room=>$roomMax,"rssi_$room"=>$EVENT}}\
$DEVICETOPIC/lastseen:.* {lastseen=>strftime "%Y-%m-%d %H:%M:%S", localtime($EVENT)}\
$DEVICETOPIC/present:.* {my $roomAct=(split m{[/]}x,$TOPIC)[1];; my $rssi=ReadingsVal($NAME,"rssi_".$roomAct,'-100');;;;my $presenceAct=$EVENT?'present':'absent';; my $presenceTotal=$presenceAct;; my $room=$EVENT ? $roomAct:'';; my @readings = grep { $_ =~ m{\Apresence_(?!$roomAct).*}x } keys %{$defs{$NAME}->{READINGS}};; for (@readings) {if(ReadingsVal($NAME,$_,'absent') eq 'present') {my $roomTmp=(split m{[_]}x,$_)[1];; my $rssiTmp=ReadingsVal($NAME,"rssi_".$roomTmp,'-100');;if($rssi gt $rssiTmp){$room=$roomTmp;;$presenceTotal='present';; $rssi=$rssiTmp}}};; {"presence_$roomAct"=>$presenceAct, room=>$room, presence=>$presenceTotal, state=>$presenceTotal}}\
$DEVICETOPIC/LWT:.* LWT
attr mqtt_Gtag_orange room MQTT2_DEVICE
Funktioniert bei mir mit 2 raspberry zero und dem eingebauten Bluetooth-Chip ohne Probleme.
Jetzt wäre es schön auch noch das LWT und den Batterie-Status zu bekommen ;)
Weihnachten kommt ja bald ...
lg, Gerhard
Kannst du mir bitte in Worten erklären, was in der Zeile passiert? Ich bin so scheiße in Perl ;)
attr mqtt_Gtag_orange readingList $DEVICETOPIC/rssi:.* {my $room=(split m{[/]}x,$TOPIC)[1];; my $roomMax=$room;; my $rssiMax=$EVENT;; my @readings = grep { $_ =~ m{\Arssi_(?!$room).*}x } keys %{$defs{"$NAME"}->{READINGS}};; for (@readings) {my $rssiTmp=ReadingsVal($NAME,$_,'-100');; my $roomTmp=(split m{[_]}x,$_)[1];; if(($rssiMax gt $rssiTmp)&&(ReadingsVal($NAME,"presence_".$roomTmp,'absent') eq 'present')) {$rssiMax=$rssiTmp;;$roomMax=$roomTmp}};; {rssi=>$rssiMax,room=>$roomMax,"rssi_$room"=>$EVENT}}\
Übrigens experimentiere ich gerade mit OpenMQTTGateway (https://docs.openmqttgateway.com/) (ESP). Bzw. Theengs Gateway (https://gateway.theengs.io/) (Linux, Windows). Das wären schon fertige Lösungen, mit denen wir das Rad nicht neu erfinden müssten.
Hm, in Worten? Das ist mal eine Herausforderung ;)
Im Prinzip möchte ich bei mehreren Räumen die Signalstärke pro Raum als Reading im Device haben "z.B. rssi_Vorzimmer -76; rssi_Wohnzimmer -71" und den Raum mit dem besten Empfang im reading "room" sowie die entsprechende Signalstärke im Reading "rssi".
Also z.B.:
room Wohnzimmer
rssi -71
rssi_Vorzimmer -76
rssi_Wohnzimmer -71
Die einzelnen raspberry schicken die MQTT-Meldungen (sagt man das so?) aber zu unterschiedlichen Zeitpunkten.
Daher muss ich mir zuerst mal den aktuellen Raum aus dem Topic holen (my $room=(split m{[/]}x,$TOPIC)[1];).
Die aktuelle Signalstärke steht im Event (my $rssiMax=$EVENT;).
Dann suche ich alle Readings im Device, die mit "rssi_" beginnen - außer natürlich dem aktuellen. Denn dafür sind ja wahrscheinlich geänderte Werte geschickt worden.
Das feine Stück Code dafür habe ich selbst nur von Beta-User bekommen (my @readings = grep { $_ =~ m{\Arssi_(?!$room).*}x } keys %{$defs{"$NAME"}->{READINGS}};).
Warum und wie das funktioniert, verstehe ich leider auch noch nicht.
Dann muss ich nur noch alle Einträge im Array durchlaufen und die rssi-Werte vergleichen und mir gegebenfalls merken.
Zu guter Letzt werden die gefundenen Werte in einem Block an das Device übergeben ({rssi=>$rssiMax,room=>$roomMax,"rssi_$room"=>$EVENT}}).
Hilft diese Erklärung etwas?
lg, Gerhard
Ja, danke Gerhard! Dann habe ich das richtig interpretiert.
Bei mir wird über einen "bad reading name" gemeckert. Das muss ich mir mal in Ruhe ansehen.
Hi!
Zitat von: gestein am 03 November 2022, 18:21:56
Jetzt wäre es schön auch noch das LWT und den Batterie-Status zu bekommen ;)
Weihnachten kommt ja bald ...
Den roten Mantel hatte ich schon an und dachte in meinem jugendlichen Leichtsinn, ich baue schnell das LWT ein. Gesagt getan. Funktioniert nur nicht, weil
Net::MQTT::Simple Grütze ist... ich Grütze bin...
/Edit:
Version 0.06 mit LWT (topic: 'state') im Anhang.
/Edit 2:
Anhang entfernt.
Patrick
Hallo Patrick,
Habe gerade erst den Nachtrag geladen.
Danke. Schon mal installiert.
Vielleicht eine blöde Frage, aber was macht man denn nun konkret und richtigerweise damit?
Oft steht nur: $DEVICETOPIC/LWT:.* LWT
Letzter Wunsch an den Weihnachtsmann:
Wäre es denn auch noch möglich, den Batterie-Status abzufragen?
lg, Gerhard
Hi!
Zitat von: gestein am 05 November 2022, 13:56:36
Vielleicht eine blöde Frage, aber was macht man denn nun konkret und richtigerweise damit?
Oft steht nur: $DEVICETOPIC/LWT:.* LWT
z. B.:
$DEVICETOPIC/state:.* status
Dann steht in status entweder connected (=ble2mqtt ist mit dem Broker verbunden) oder disconnected (=nicht verbunden, entweder weil sauber disconnected oder weil explodiert (LWT)).
Zitat von: gestein am 05 November 2022, 13:56:36
Letzter Wunsch an den Weihnachtsmann:
Wäre es denn auch noch möglich, den Batterie-Status abzufragen?
Sehe ich mir bei Gelegenheit an.
Patrick
Guten Morgen,
Danke für die Erklärung.
Habe die neue Version gestern installiert, aber bis dato wurde noch kein Reading angelegt.
Mit meinem derzeitigen Code müsste doch das Reading ,,LWT" angelegt werden. Oder?
$DEVICETOPIC/LWT:.* LWT
Wird das zyklisch geschickt?
Das muss ich mir heute genauer anschauen.
Danke auch schon mal auch wegen dem Batterie-Status.
Lg, Gerhard
Hi!
Zitat von: gestein am 06 November 2022, 07:19:24
Mit meinem derzeitigen Code müsste doch das Reading ,,LWT" angelegt werden. Oder?
$DEVICETOPIC/LWT:.* LWT
Selbst wenn es angelegt wird, wird es nicht gefüllt. Es gibt dieses Topic nämlich schlichtweg nicht. Bitte nimm stattdessen
$DEVICETOPIC/state:.* status
Dann steht im neuen Reading "status" entweder connected oder disconnected.
Zitat von: gestein am 06 November 2022, 07:19:24
Wird das zyklisch geschickt?
Nein, aber es wird
retained, d. h. der Broker speichert den letzten Wert ab. D. h. der Broker kennt immer den aktuellen Wert und übermittelt ihn wenn man danach fragt. Das ist vor allem deshalb wichtig, weil ein toter ble2mqttd nicht periodisch senden kann. Beim Verbinden mit dem Broker wird es als 'connected' gesendet.
Probiere es doch einfach mal aus und schieße dann mit kill ble2mqttd ab.
Patrick
Ich übe schon eine Weile mit ein Paar ESP32 auf denen OpenMQTTGateway läuft und Mi-Bändern, dass hier:
https://forum.fhem.de/index.php/topic,127173.msg1236718.html#msg1236718 (https://forum.fhem.de/index.php/topic,127173.msg1236718.html#msg1236718)
Mir sind da 2 Sachen aufgefallen 1.:
Zitat von: Beta-User am 27 September 2022, 10:19:14
attr OMG_FFFFC424A12B maxReadingsAge 100000
Wenn ich den Raum verlasse, und der ESP nichts mehr sendet, wird das Reading mehr als 1 Tag weiter berücksichtigt. Teste gerade mit "1800" (30 Minuten).
Das 2., meine ESP heißen "OMG_SZ", "OMG_Bad", ... damit:
Zitat von: Beta-User am 27 September 2022, 10:19:14
sub identifyMyBestGW {
[ ... ]
$bestGW =~ s/_.*//g;
}
bekomme ich als Reading nur: "OMG". Ich habe jetzt eine Weile gelesen / geübt, bis ich verstanden habe, dass
$bestGW =~ s/_.*//g;
alles löscht, was nach dem "_" kommt -> für (vielleicht nicht nur) mich ungünstig. Ich hab es geändert, in:
$bestGW =~ s/_rssi//g;
Im Moment logge ich die RSSI Werte, um vielleicht dahinter zu kommen, ob ich eine "Raumerkennung" hin bekomme. Dabei hab ich festgestellt, das entferntere ESP manchmal besseren Empfang haben, als die gleich neben mir... Ich hänge Mal einen Graphen an.
Mahlzeit!
Neue Version 0.07 mit Batterie (wird alle 6 Stunden abgefragt).
Neue Topics:
battery
batterytime
Patrick
/Edit: Anhang entfernt. Neue Version weiter unten.
Hallo Patrick,
Super. Das werde ich morgen gleich testen.
Zitat von: PatrickR am 06 November 2022, 16:33:13
Probiere es doch einfach mal aus und schieße dann mit kill ble2mqttd ab.
Habe nun auf allen 3 Rechnern die Version mit Status/LWT installiert und folgendes als ReadingList eingetragen:
$DEVICETOPIC/state:.* {my $roomAct=(split m{[/]}x,$TOPIC)[1]; {"status_$roomAct"=>$EVENT}
Wenn ich bei einem Rechner den Prozess abschieße, sollte doch ein Reading ,,status_Vorzimmer" angelegt werden. Oder?
Aber es passiert nichts.
Auch nicht nach einer Stunde, oder wenn ich einen Prozess wieder starte.
Und auch nicht mit ,,$DEVICETOPIC/state:.* status"
Lg, Gerhard
Zitat von: gestein am 07 November 2022, 22:18:53
$DEVICETOPIC/state:.* {my $roomAct=(split m{[/]}x,$TOPIC)[1]; {"status_$roomAct"=>$EVENT}
Das Topic wird direkt nach dem Start geschickt, also wenn es nicht direkt kommt, passt was nicht.
Auf was ist denn devicetopic gesetzt?
Patrick
Hallo Patrick,
ich wollte nur kurz die neue Version wegen der Battery-Funktion installieren und habe dazu alle Rechner neu gestartet.
Nun erscheint in meinem MQTT-Server das folgende Reading:
RETAIN {"ble2mqttd/Kinderzimmer/state":"connected","ble2mqttd/Vorzimmer/state":"connected"} 2022-11-08 08:05:20
Es gibt aber kein MQTT-Device mit "Kinderzimmer" oder "Vorzimmer", nur die MAC-Adressen der Tags z.B.:
devicetopic ble2mqttd/.*/58_9E_C6_0E_EC_AD
lg, Gerhard
Hallo Gerhard,
Zitat von: gestein am 08 November 2022, 08:10:57
Nun erscheint in meinem MQTT-Server das folgende Reading:
RETAIN {"ble2mqttd/Kinderzimmer/state":"connected","ble2mqttd/Vorzimmer/state":"connected"} 2022-11-08 08:05:20
Sehr gut.
Zitat von: gestein am 08 November 2022, 08:10:57
Es gibt aber kein MQTT-Device mit "Kinderzimmer" oder "Vorzimmer", nur die MAC-Adressen der Tags z.B.:
devicetopic ble2mqttd/.*/58_9E_C6_0E_EC_AD
Das ist doch ein Problem, das man angehen kann. Die Frage ist halt, wo Du die Status der ble2mqttds (also das, was Du mit LWT bezweckst) gerne hättest. Du könntest z. B. ein neues MQTT2_DEVICE pro ble2mqttd (also pro Raum) anlegen oder ein gemeinsames und Dir dann jeweils nur die passenden state-Topics abholen, z. B.:
ble2mqttd/Kinderzimmer/state status_kinderzimmer
Das könntest Du sogar in Deine vorhandenen Devices dazupacken, da Dich niemand zwingt, $DEVICETOPIC zu verwenden. Das wäre aber eigentlich der falsche Ort.
Patrick
Hallo Patrick,
das mit der Abfrage der Batterie scheint zu klappen.
Momentan gebe ich die Werte noch auf nach Zimmern getrennte Readings, damit ich kontrollieren kann, ob immer die gleichen Werte geschickt werden.
Zumindest bei einem MQTT-Device steht:
battery_Kinderzimmer unknown 2022-11-08 14:07:28
battery_Vorzimmer 94 2022-11-08 14:15:27
batterytime_Kinderzimmer 1667912848 2022-11-08 14:07:28
batterytime_Vorzimmer 1667911664 2022-11-08 14:15:27
Wie kann das mit "unknown" sein?
Was sagen eigentlich die Readings "batterytime" aus?
Danke, lg, Gerhard
Hallo Patrick
Vielen dnak für Deine Bemühungen jetzt auch noch den Batterie Status mit in das Program zu nehmen. Habe es gerade getestet und funktioniert prima.
@gestein Ich glaube das Reading batterytime gibt an wann der Status der Batterie abgefragt wurde. Es gibt aber auch noch ein topic in den der Batterie Stand in prozent angegeben wird.
ble2mqttd_FlurSchrank:ble2mqtt/7C_2F_80_B2_2F_8E/battery:.* battery
Viele Grüsse
Stephan
Hallo Stephan,
dann wäre eigentlich der Wert, den "batterytime" hat, und der Zeitstempel, den das Reading battery trägt, gleich. Oder?
lg, Gerhard
Guten Abend!
Zitat von: gestein am 08 November 2022, 16:37:05
battery_Kinderzimmer unknown 2022-11-08 14:07:28
Wie kann das mit "unknown" sein?
Unknown heißt, es ist schief gegangen. Interessanterweise gibt es zwei Spezialfälle von unknown, nämlich "unknown (unsupported)" und "unknown (timeout)". Unknown ohne Anhängsel ist der Standardfall, wenn irgendwas sonst schiefgeht. Das ist spannend. Genaueres erfahren wir nur mit einem DEBUG-Log, aber das ist für die SD-Karte des Pi nicht so schön.
Zitat von: gestein am 08 November 2022, 17:08:51
dann wäre eigentlich der Wert, den "batterytime" hat, und der Zeitstempel, den das Reading battery trägt, gleich. Oder?
Wenn man von Details wie nicht synchronisierten Uhren usw. mal absieht vermutlich ja.
Patrick
Hallo zusammen,
danke für das Script! Ich bin hier gelandet, weil mein fhem unter Archlinux läuft, bei dem hcitool und gatttool schon länger deprecated sind und nicht mehr verfügbar sind.
ble2mqttd bricht jetzt bei mir mit "gatttool not found" ab.
$ perl ble2mqttd --mqttserver localhost:1883 --mqtttopic ble2mqtt/entrance --debug 5
main::sanity_check: md5 digest of 'ble2mqttd' is: '...'.
main::sanity_check: bluetoothctl found at '/usr/bin/bluetoothctl'.
main::sanity_check: ERROR: gatttool not found!
main::error_exit: ERROR: Exiting due to missing binaries.
War es nicht das Ziel, gatttool überflüssig zu machen? Läuft das Script auch ohne?
Danke und schöne Grüße, Florian!
Hi!
Zitat von: decaflo am 17 Dezember 2022, 17:15:46
$ perl ble2mqttd --mqttserver localhost:1883 --mqtttopic ble2mqtt/entrance --debug 5
main::sanity_check: ERROR: gatttool not found!
War es nicht das Ziel, gatttool überflüssig zu machen? Läuft das Script auch ohne?
Gatttool wird aktuell verwendet, um den Batteriestatus abzufragen. Hatte mal probiert, es mit bluetoothctl zu lösen, habe es aber auf die Schnelle nicht hinbekommen.
Ich sehe zwei Möglichkeiten:
- Ersetzen von gatttool durch ein anderes Tool, das den Batteriestatus über gatt abfragen kann.
- Hinzufügen eines neuen Kommandozeilenparameters, der den Batteriecheck abschaltet.
Schöner wäre natürlich 1. Wenn Du eine Idee hast oder einen Beispielcode, gerne her damit. Dann schaue ich es mir an und baue es ein. Es müsste aber ziemlich flexibel funktionieren, u. a. auch mit Raspbian.
Patrick
Ok, danke für die Infos! Ich schaue mir das an, komme aber voraussichtlich erst über die Feiertage dazu. Viele Grüße!
Hallo Patrick,
ich habe die Version mit der Battery Abfrage installiert. Aktuell werden jedoch keine Battery Readings angelegt, auch im mqtt Explorer (ich arbeite auf einem Mac) werden keine Topics angezeigt.
Dafür kommen in zwei Zeilen Fehlermeldungen:
Use of uninitialized value $current_mac in hash element at ./ble2mqttd line 488.
Use of uninitialized value $current_mac in hash element at ./ble2mqttd line 483.
Ich versuche meine Siemens GTags zu erkennen.
Danke und Gruß
Wolfgang
Hallo Wolfgang!
Zitat von: FHEM_Starter am 21 Dezember 2022, 14:25:04
ich habe die Version mit der Battery Abfrage installiert. Aktuell werden jedoch keine Battery Readings angelegt, auch im mqtt Explorer (ich arbeite auf einem Mac) werden keine Topics angezeigt.
Dafür kommen in zwei Zeilen Fehlermeldungen:
Use of uninitialized value $current_mac in hash element at ./ble2mqttd line 488.
Use of uninitialized value $current_mac in hash element at ./ble2mqttd line 483.
Kannst Du mal ein Debug-Log erstellen und posten/mir per PN schicken? Dann schaue ich es mir mal an.
MQTT Explorer ist auf jeden Fall schonmal ein ausgesprochen schönes Debuggingwerkzeug.
Patrick
erledigt, PM ist raus.
Wolfgang
Die Abfrage des Akkuladezustandes mit bluetoothctl funktioniert über die Befehlsfolge
connect
menu gatt
select-attribute
read
disconnect
# connect 58:9E:C6:10:51:26
Attempting to connect to 58:9E:C6:10:51:26
[CHG] Device 58:9E:C6:10:51:26 Connected: yes
Connection successful
...
[Gigaset G-tag]# menu gatt
...
[Gigaset G-tag]# select-attribute 00002a19-0000-1000-8000-00805f9b34fb
[Gigaset G-tag:/service0019/char001a]# read
Attempting to read /org/bluez/hci0/dev_58_9E_C6_10_51_26/service0019/char001a
[CHG] Attribute /org/bluez/hci0/dev_58_9E_C6_10_51_26/service0019/char001a Value:
55 U
55 U
wobei "55" dasselbe ist, was ich mit gatttool erhalte:
~# gatttool -b 58:9E:C6:10:51:26 -t public --char-read --uuid=00002a19-0000-1000-8000-00805f9b34fb
handle: 0x001b value: 55
Ich hatte Probleme, das in den Code reinzufummeln, weil ich dem Expect Modul nicht beibringen konnte, mit dem mehrzeiligen Output umzugehen. Liegt aber wohl an mir ::)
Da ich im Erdgeschoss in der Innenstadt wohne und seit der Corona-Warn-App alle Handys Bluetooth eingeschaltet haben, landen bei mir sehr viele MAC-Adressen in der readingList des korrespondierenden MQTT_DEVICE. Und damit meine ich mehrere tausend innerhalb weniger Tage. Das führt bei mir zu erheblicher Kommunikation im Netz und dazu, dass wegen der umfangreichen Device-Konfiguration der ganze fhem-Server in die Knie geht.
Ich habe deswegen in ble2mqttd noch einen MAC-Filter eingebaut, so dass nur bestimmt MACs weitergegeben werden:
$ ./ble2mqttd
ble2mqttd --mqttserver <mqtt server:mqtt port> --mqttfingerprint <ssl fingerprint> --mqttuser <mqtt user> --mqttpass <mqtt pass> --loglevel <log level> --logtarget <log target> --daemon --mac <regex>
...
--mac <regex> - filter handled MAC Adresses with regular expression.
examples:
...
ble2mqttd --mqttserver mqtt.domain:8883 --mqttfingerprint 'sha256$11e20bbb668da517a0ae8536f3c79887d06ddec945fab60401deab92dc7e7c1f' --mqttuser user --mqttpass pass --mac 'AB:CD:EF:.*'
Vielleicht kann das ja noch jemand gebrauchen.
Hi!
Zitat von: FHEM_Starter am 22 Dezember 2022, 12:51:14
erledigt, PM ist raus.
Du setzt scheinbar eine alte oder veränderte Version ein. Ich erstelle heute noch eine neue Version mit decaflos Regex-Patch. Vielleicht probierst Du es mit der nochmal und dann geht es dem Bug (sofern er dann noch auftritt) an den Kragen.
Zitat von: decaflo am 22 Dezember 2022, 23:46:59
Die Abfrage des Akkuladezustandes mit bluetoothctl funktioniert über die Befehlsfolge
connect
menu gatt
select-attribute
read
disconnect
Schaue ich mir an. Ich erinnere mich dunkel, dass ich das mal probiert hatte und es bei mir (ebenfalls G-Tags) nicht zuverlässig funktioniert hat. Ich teste das auf jeden Fall mal.
Zitat von: decaflo am 23 Dezember 2022, 09:30:58
Da ich im Erdgeschoss in der Innenstadt wohne und seit der Corona-Warn-App alle Handys Bluetooth eingeschaltet haben, landen bei mir sehr viele MAC-Adressen in der readingList des korrespondierenden MQTT_DEVICE. Und damit meine ich mehrere tausend innerhalb weniger Tage. Das führt bei mir zu erheblicher Kommunikation im Netz und dazu, dass wegen der umfangreichen Device-Konfiguration der ganze fhem-Server in die Knie geht.
Ich habe mich ja immer gegen den Filter gewehrt, weil die Argumente mich nicht überzeugt haben. Aber Dein Szenario hatte ich dabei definitiv nicht im Kopf. Auch wenn man FHEM-seitig vielleicht noch etwas filtern könnte ist das ja gruselig.
Zitat von: decaflo am 23 Dezember 2022, 09:30:58
Ich habe deswegen in ble2mqttd noch einen MAC-Filter eingebaut, so dass nur bestimmt MACs weitergegeben werden:
Schöner Patch. Baue ich (ggf. mit minimalen Anpassungen) so ein.
Patrick
Version 0.08 mit decaflos MAC-Filter-Patch
/Edit: Datei entfernt. Neue Version siehe unten.
Hi!
Zitat von: decaflo am 22 Dezember 2022, 23:46:59
Die Abfrage des Akkuladezustandes mit bluetoothctl funktioniert über die Befehlsfolge
connect
menu gatt
select-attribute
read
disconnect
Hmpf:
[bluetooth]# connect 58:9E:C6:10:YY:XX
Attempting to connect to 58:9E:C6:10:YY:XX
Failed to connect: org.bluez.Error.Failed
Jetzt ist natürlich die Frage, was meinen G-Tag von Deinem unterscheidet. Ggf. ist/war meiner mal mit einem Gerät gekoppelt oder so. Für die (unschöne) Gatttool-Variante scheint das aber egal zu sein.
Grüße
Patrick
Hallo Patrick,
der Patch mit der mac-adresse klappt, ich sehe "nur" noch die G-Tags mit der korrespondierenden Mac Adresse. Ist das eine komma separierte Liste? Also "AA:BB:CC.*,AA:BB:DD.*"?
Die Battariewerte kommen leider immer noch nicht, ich habe die ein neues Log-File gesendet.
wolfgang@WSP-NUC:/lib/systemd/system$ sudo systemctl status ble2mqttd
● ble2mqttd.service - ble2mqtt daemon
Loaded: loaded (/lib/systemd/system/ble2mqttd.service; enabled; vendor preset: enabled)
Active: active (running) since Fr 2022-12-23 18:05:01 CET; 19min ago
Process: 30762 ExecStartPre=/bin/sleep 10 (code=exited, status=0/SUCCESS)
Main PID: 31277 (ble2mqttd)
Tasks: 2
Memory: 15.0M
CPU: 4.190s
CGroup: /system.slice/ble2mqttd.service
├─ 4595 bluetoothctl
└─31277 /usr/bin/perl /home/wolfgang/ble2mqttd --mqttserver 127.0.0.1:1883 --mqttuser myuser --mqttpass mypasswd --mqtttopic ble2mqtt/keller --absentinterval 180 --mac 7C:2F:80.*
Dez 23 18:05:05 WSP-NUC ble2mqttd[31277]: Use of uninitialized value $current_mac in hash element at /home/wolfgang/ble2mqttd line 498.
Dez 23 18:05:07 WSP-NUC ble2mqttd[31277]: Use of uninitialized value $current_mac in hash element at /home/wolfgang/ble2mqttd line 493.
Dez 23 18:05:07 WSP-NUC ble2mqttd[31277]: Use of uninitialized value $current_mac in hash element at /home/wolfgang/ble2mqttd line 498.
Dez 23 18:07:01 WSP-NUC ble2mqttd[31277]: main: Scan started.
Dez 23 18:10:07 WSP-NUC ble2mqttd[31277]: main::evaluation_task: Device 7C:2F:80:AB:FD:0B is now absent.
Dez 23 18:10:25 WSP-NUC ble2mqttd[31277]: main::evaluation_task: Device 7C:2F:80:AB:FC:43 is now absent.
Dez 23 18:14:37 WSP-NUC ble2mqttd[31277]: main::evaluation_task: Device 7C:2F:80:AB:FC:43 is now absent.
Dez 23 18:15:25 WSP-NUC ble2mqttd[31277]: main::evaluation_task: Device 7C:2F:80:AB:FD:10 is now absent.
Dez 23 18:20:02 WSP-NUC ble2mqttd[31277]: Use of uninitialized value in subtraction (-) at /home/wolfgang/ble2mqttd line 311.
Dez 23 18:20:02 WSP-NUC ble2mqttd[31277]: main::cleanup_task: Cleanup finished, deleted 1 devices in 0 seconds.
Danke dass Du hier so viel Zeit und Arbeit investierst.
Frohe Weihnachten,
Wolfgang
Zitat von: FHEM_Starter am 23 Dezember 2022, 18:36:36
der Patch mit der mac-adresse klappt, ich sehe "nur" noch die G-Tags mit der korrespondierenden Mac Adresse. Ist das eine komma separierte Liste? Also "AA:BB:CC.*,AA:BB:DD.*"?
Hallo Wolfgang,
nein, das ist eine Regular Expression, keine kommaseparierte Liste. D.h. ein solche Liste kannst Du z.B. so angeben:
--mac "AA:BB:(CC|DD):.*"
oder ganze Adressen so:
--mac "AA:BB:CC:DD:EE:FF|00:11:22:33:44:55:66"
Schöne Grüße!
Zitat von: PatrickR am 23 Dezember 2022, 15:50:20
Hi!
Hmpf:
[bluetooth]# connect 58:9E:C6:10:YY:XX
Attempting to connect to 58:9E:C6:10:YY:XX
Failed to connect: org.bluez.Error.Failed
Jetzt ist natürlich die Frage, was meinen G-Tag von Deinem unterscheidet. Ggf. ist/war meiner mal mit einem Gerät gekoppelt oder so. Für die (unschöne) Gatttool-Variante scheint das aber egal zu sein.
Grüße
Patrick
Hallo Patrick,
komisch. Ich habe etwas rumprobiert und das tritt auf verschiedenen Geräten mit dem selben Tag bei mir auch auf:
- Beim Notebook (Dell XPS13) klappt die Abfrage.
- Beim Raspi Zero W klappt es auch
- beim Raspi 3b+ erhalte ich ebenfalls die Meldung Failed to connect: org.bluez.Error.Failed.
- auf dem cubietruck, auf dem mein fhem unter Archlinux (ohne gatttool) läuft, geht die Abfrage mit bluetoothctl auch
Allerdings geht dasselbe mit gattttool auf dem Raspi 3B+ auch nicht:
# gatttool -b 58:9E:C6:1A:YY:ZZ -t public --char-read --uuid=00002a19-0000-1000-8000-00805f9b34fb
connect to 58:9E:C6:1A:YY:ZZ: Connection refused (111)
oder manchmal
# gatttool -b 58:9E:C6:1A:YY:ZZ -t public --char-read --uuid=00002a19-0000-1000-8000-00805f9b34fb
connect to 58:9E:C6:1A:YY:ZZ: Function not implemented (38)
Dort wo die Abfrage mit gatttool klappt, geht sie auch mit bluetoothctl.
Kannst Du das bestätigen oder geht bei Dir auf demselben Gerät die Abfrage mit bluetoothctl nicht, mit gatttool aber schon?
Hi!
Zitat von: decaflo am 23 Dezember 2022, 19:23:29
Kannst Du das bestätigen oder geht bei Dir auf demselben Gerät die Abfrage mit bluetoothctl nicht, mit gatttool aber schon?
Ich fürchte ja:
root@rpi-az-desktop:~# gatttool -b 58:9E:C6:10:XX:YY -t public --char-read --uuid=00002a19-0000-1000-8000-00805f9b34fb
handle: 0x001b value: 13
root@rpi-az-desktop:~# bluetoothctl
Agent registered
[bluetooth]# connect 58:9E:C6:10:XX:YY
Attempting to connect to 58:9E:C6:10:XX:YY
Failed to connect: org.bluez.Error.Failed
Hatte relativ früh bei G-Tags schon merkwürdige Phänomene. U. a. haben die keine Beacons mehr gesendet wenn sie verbunden waren. Würde mal drauf tippen, dass mein Test-G-Tag irgendwas anderes "erlebt" hat als Deine. Aber ich weiß es schlichtweg nicht und auch nicht, warum gatttool das scheinbar egal ist.
Letztlich hat das aber auch was Positives: Normalerweise läuft bei mir alles zuverlässig und die Nutzer finden dann merkwürdige Probleme. Das zu rekonstruieren ist immer aufwendig. Diesmal ist es andersrum :)
Patrick
Hallo und ein Frohes Neues,
Dank Patrick haben wir eine weitere Erkenntnis gewonnen: die bluez Version! Ab der Version 5.50 kommen die Battariewerte auch ordentlich, aktuell teste ich es mit der Version 5.55 auf zwei Raspberries.
Liebe Grüße
Wolfgang
Neue Version: 0.09
- Erweitertes Debugging
- Code Cleanup
/Edit: Anhang entfernt. Neue Version siehe unten.
Patrick
Hallo zusammen
ble2mqtt ist ja ein toller Ansatz ;D, find ich toll und habe es gleich getestet.
Funktioniert bei mir. Bis auf den Batteriestatus, ich habe einen G-Tag.
Mit lepresenced kommt der Batteriestatus an.
Übrigens CPAN hatte bei mir nicht funktioniert, ich musste "make" nach installieren.
zu den APT Paketen sollte also noch "make" ergänzt werden.
apt-get install bluez libexpect-perl libnet-server-perl libreadonly-perl make
Hi!
Zitat von: hubiuwe am 20 Januar 2023, 17:22:33
Funktioniert bei mir. Bis auf den Batteriestatus, ich habe einen G-Tag.
Mit lepresenced kommt der Batteriestatus an.
Kannst Du mal ein Debug-Log erstellen?
Patrick
Erstmal .. netter Ansatz und Danke für die Mühe ..
-- wieder gelöscht, da Problem vor dem Bildschirm saß --
Es hätte nicht jemand den Code, um für jedes "MAC-Device" ei8n eigenes Reading zu haben?
Hallo Patrick,
Die Lösung ist für mich perfekt, herzlichen Dank für Deine Mühe!
Ich habe 3 Raspis mit ble2mqttd und 3 G-Tags und MQTT2-Server auf dem Raspi 4, sowie die dazugehörigen 9 MQTT2_DEVICEs für Presence.
Funktioniert, was die Presence angeht, tadellos.
Starte ble2mqttd über Service und Konfig-Datei.
Ich mußte für die Batteriewerte die vollständigen MAC-Adressen im Filter angeben,
mit .* war da nichts. Logisch gatttool braucht halt die mac.
Habe aber das gleiche Problem, wie hubiuwe, keine oder unzuverlässigen (unknown) Batteriewerte.
Am Raspi 4 und 2 keine Werte, beim Zero W mal eins, zwei, nie die 3 Batteriewerte der G-Tags nach dem restart.
Habe mal testweise in Zeile 353 des Scripts die Abfrage nach dem Batterieservice " && $devices{$mac}{'batteryservice'} " entfernt.
Nach dem restart des ble2mqttd-Services funktioniert die Batterieabfrage für alle 3 G-Tags auf allen 3 Raspis bis jetzt.
Bin mir ehrlicherweise nicht so richtig über die Konsequenzen meiner Änderung im Klaren, einfach zu wenig Programmierwissen.
Viele Grüße
Uwe
Hi!
Zitat von: Lehmi54 am 23 Januar 2023, 12:37:22
Ich mußte für die Batteriewerte die vollständigen MAC-Adressen im Filter angeben,
mit .* war da nichts. Logisch gatttool braucht halt die mac.
Hmm eigentlich sollte das nicht nötig sein. ble2mqttd schaut, welche Geräte vorbeikommen (und den Filter matchen, sofern gesetzt) und zusätzlich den Battery Service anbieten.
Zitat von: Lehmi54 am 23 Januar 2023, 12:37:22
Habe aber das gleiche Problem, wie hubiuwe, keine oder unzuverlässigen (unknown) Batteriewerte.
Am Raspi 4 und 2 keine Werte, beim Zero W mal eins, zwei, nie die 3 Batteriewerte der G-Tags nach dem restart.
Da ich das aktuell bei mir nicht rekonstruiert bekomme: Wie genau äußert sich das? Verstehe ich das richtig, dass immer ein Teil Deiner 3 Tags Werte liefert und nach einem Neustart ein anderer Teil? Wenn ein Tag einen Wert liefert, klappt es dann bei diesem Tag immer während einer "Session", d. h. ohne Neustart?
Zitat von: Lehmi54 am 23 Januar 2023, 12:37:22
Habe mal testweise in Zeile 353 des Scripts die Abfrage nach dem Batterieservice " && $devices{$mac}{'batteryservice'} " entfernt.
Nach dem restart des ble2mqttd-Services funktioniert die Batterieabfrage für alle 3 G-Tags auf allen 3 Raspis bis jetzt.
Bin mir ehrlicherweise nicht so richtig über die Konsequenzen meiner Änderung im Klaren, einfach zu wenig Programmierwissen.
Naja, es gibt zwei mögliche Konsequenzen: Es werden je nach MAC-Filter auch Geräte gefragt, die den Service nicht anbieten, ggf. mit Timeouts. Während der Abfrage wird nicht gescannt, d. h. es könnte sein, dass PRESENCE auf absent geht. Die zweite Konsequenz könnte sein, dass die Tags nicht antworten, weil die Abfrage auf einen Standardwert zurückfällt. Wenn Du einen engen MAC-Filter gesetzt hast, könnte man ggf. damit leben.
Ich baue bei Gelegenheit mal eine Debug-Version, um das Problem weiter einzugrenzen.
Patrick
@Lehmi54, hubiuwe:
Testversion (0.09dev) für das Batterieproblem.
ble2mqttd versucht nun so lange den Tag zu erkennen (inkl. Battery Service), bis es klappt. Wenn es funktioniert müsste ich es noch etwas optimieren.
Patrick
/Edit: Datei entfernt, da überholt
Hi,
Du bist so fix!!! Danke
habe die dev Version installiert. Aller 6s sucht er noch verzweifelt nach dem ...AE
Jan 23 16:59:11 Raspi2-Kelller-XXX ble2mqttd: main::query_task: Executing query task, 1 items in queue, querying 7C:2F:80:XX:XX:AE, zumindest hat er die anderen 2 Gefunden, wenn auch mit dem Wert "unknown".
Nach ca. 10 min nach dem AE suchen, hat er aufgegeben
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX1:AE -t public --char-read --uuid=0x2a19
handle: 0x001b value: 4b
bietet allerdings den richtigen Wert.
Habe 3x hintereinande gatttool gestartet mit völlig unterschiedlichen Ergebnissen.
pi@Raspi2-Kelller-135:~ $ sudo service ble2mqttd restart
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
connect to 7C:2F:80:95:56:CF: Function not implemented (38)
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
connect to 7C:2F:80:95:56:CF: Transport endpoint is not connected (107)
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
handle: 0x001b value: 2f
Besuch kommt gerade...
Viele Grüße
Uwe
Hallo PatrickR
Mit der neuen Version sieht es schon besser aus jetzt kommt auch das MQTT-Toppic "battery" vorbei, welches ich vorher ja garnicht gesehen habe.
Ich habe im MAC Filter die komplette MAC und auch mal einen REGEX versucht, es funktionierte beides.
Die Logfiles kommen per PN.
Das Battery- und batterytime reading kommen jetzt auch bei Fhem an. ;D ;D ;D.
Vielen Dank für die Mühen.
Hi!
Zitat von: Lehmi54 am 23 Januar 2023, 17:15:01
Nach ca. 10 min nach dem AE suchen, hat er aufgegeben
Wenn er aufhört ist der Tag entweder absent oder die Abfrage hat funktioniert.
Zitat von: Lehmi54 am 23 Januar 2023, 17:15:01
Habe 3x hintereinande gatttool gestartet mit völlig unterschiedlichen Ergebnissen.
pi@Raspi2-Kelller-135:~ $ sudo service ble2mqttd restart
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
connect to 7C:2F:80:95:56:CF: Function not implemented (38)
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
connect to 7C:2F:80:95:56:CF: Transport endpoint is not connected (107)
pi@Raspi2-Kelller-135:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
handle: 0x001b value: 2f
Hmm redet noch irgendwas anderes mit dem G-Tag, z. B. die App oder so? Tritt das Problem auch auf, wenn ble2mqttd nicht läuft?
Zitat von: Lehmi54 am 23 Januar 2023, 17:15:01
Besuch kommt gerade...
Schönen Gruß!
Patrick
Hi!
ZitatWenn er aufhört ist der Tag entweder absent oder die Abfrage hat funktioniert.
zur dev Version: Alle drei Dongle sind "zu Hause" also present, werden aber auch nach 15 min (abgebrochen) nicht gefunden, es geht sonst ewig... (Raspi 2 und 4 mit Bluetooth-Dongle) Raspi Zero (int. Bluetooth) keine Probleme, werden sofort erkannt.
ZitatHmm redet noch irgendwas anderes mit dem G-Tag, z. B. die App oder so? Tritt das Problem auch auf, wenn ble2mqttd nicht läuft?
Ich habe ble2mqttd gestopt mit hciconfig kein RX oder TX mehr, gatttool ausgeführt:
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:09 -t public --char-read --uuid=0x2a19
connect to 7C:2F:80:XX:XX:09: Function not implemented (38)
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:09 -t public --char-read --uuid=0x2a19
handle: 0x001b value: 2f
Ja, tritt also auch dann auf!
Zitatredet noch irgendwas anderes mit dem G-Tag
Wie könnte ich das prüfen?
Hallo Patrick, ich habe Dir eine PM mit einem ausfürlichen Log gesendet.
Viele Grüße
Uwe
Hi!
Zitat von: Lehmi54 am 24 Januar 2023, 14:35:06
zur dev Version: Alle drei Dongle sind "zu Hause" also present, werden aber auch nach 15 min (abgebrochen) nicht gefunden, es geht sonst ewig... (Raspi 2 und 4 mit Bluetooth-Dongle) Raspi Zero (int. Bluetooth) keine Probleme, werden sofort erkannt.Ich habe ble2mqttd gestopt mit hciconfig kein RX oder TX mehr, gatttool ausgeführt:
Hmm klingt merkwürdig. Mangels Log (habe nur das von dem 139er bekommen, wo es funktioniert), kann ich dazu nix sagen.
Zitat von: Lehmi54 am 24 Januar 2023, 14:35:06
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:09 -t public --char-read --uuid=0x2a19
connect to 7C:2F:80:XX:XX:09: Function not implemented (38)
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:09 -t public --char-read --uuid=0x2a19
handle: 0x001b value: 2f
Ja, tritt also auch dann auf!Wie könnte ich das prüfen?
Vermutlich nur mit einem Bluetooth-Sniffer wenn Du Dich nicht erinnerst. Hatte die Hoffnung, dass Du vielleicht eine Idee hast...
Hänge hier mal eine neue Version (0.9dev2) an, die das Battery-Reading in Ruhe lässt, wenn die Abfrage nicht funktioniert.
/Edit: Datei entfernt, da überholt
Patrick
Hi!
Hallo Patrick, danke Dir für die neue dev2, habe Dir mal per PM eine akt. Log gesendet.
Zitatwenn Du Dich nicht erinnerst
Alle 3 G-Tags waren noch nie gepaart und haben mit lepresenced (auch battery) ohne Probleme funktioniert.
Danke und viele Grüße
Uwe
Hi!
Neue Version 0.10:
- Informationen von erkannten Geräten werden nun wiederholt angefragt. Schlägt die Abfrage fehl, werden neue Abfragen mit steigender Wartezeit gestartet. Eine erfolgreiche Abfrage ist die Voraussetzung für eine spätere Ermittlung von Batteriewerten
- Batteriewerte werden nun bei einem Fehlschlag in kürzeren Zeitabständen wiederholt abgefragt.
- Für hartnäckige Fälle, in denen aus unerfindlichem Grund die obige Abfrage fehlschlägt und daher keine Batteriewerte abgefragt werden gibt es die Option --forcebattery. Sie fragt Batteriewerte auch dann ab, wenn nicht klar ist, ob der Tag diese Abfrage unterstützt. Um unnötigen Lärm zu vermeiden muss zwingend auch ein MAC-Filter (--mac) gesetzt sein.
Patrick
/Edit: Anhang entfernt. Neue Version siehe unten.
Spannende Entwicklung mit mqtt.
Ich lese mal mit
Hi!
Zitat von: isy am 26 Januar 2023, 16:39:04
Spannende Entwicklung mit mqtt.
MQTT ist allgemein hochspannend. Universell und durch seine Effizienz komplett aus der Zeit gefallen. Bei aktuellen Protokollen wird leider sehr häufig alles in monströses XML oder JSON verpackt.
Patrick
ZitatUniversell und durch seine Effizienz komplett aus der Zeit gefallen.
Das verleitet aber zum Missbrauch - etwa, wie im Rhasspy-Projekt, zum Versand von Audiodaten via MQTT.
So, jetzt bin ich auch im Verteiler ;-)
LG
pah
Hi!
...und herzlichen Dank für die Version 0.10. Bei den 3 Raspberrys eingespielt. Bei den 2 mit Dongeln (raspi4 und raspi 2) mit batteryforce ja, ab und zu (siehe Bild), der raspi zero mit internem Bluetooth macht den batterylevel zwar nicht regelmäßig, aber mindestens 2x am Tag. Das ist für mich so ok! Danke!
Habe verschiedene Versuche mit Bluetooth De- und Neuinstallation und mit dem gatttool gestartet, wenig Erfolg. Mit sehr hoher Sicherheit findet er den batterylevel, wenn man das gatttool mehrfach hintereinander ausführt. Die Zeit vom Start des gatttools bis zur Ermittlung des batterylevels bzw. eines Fehlers liegt zwischen 1s bis 15s (beim raspi zero) . Allerdings weiss ich nicht, ob das die G-Tag Baterien viel schneller entleert. Einen großen Wunsch an Dich, Patrick hätte ich bitte noch, könnte man das batterylevel auslesen konfigurierbar (abschaltbar) machen? Bei 3x Raspberry mit ble2mqttd und drei G-Tags erhalte ich 9 Batterywerte mehrmals täglich, bei batteryforce sogar noch mehr.
Die Presence mit allen drei Dongels und den drei raspis funktioniert unabhängig von den battry Problen tadellos und zuverlässig.
Ich bin echt begeistert!
Viele Grüße
Uwe
Hallo Uwe,
Zitat von: Lehmi54 am 29 Januar 2023, 16:47:40
Einen großen Wunsch an Dich, Patrick hätte ich bitte noch, könnte man das batterylevel auslesen konfigurierbar (abschaltbar) machen?
na gut.
Neue Version 0.11:
- Neuer Parameter: --batterymaxage <Zahl> - Maximale Zeit in Stunden, nach der ein Batterywert als zu alt angesehen und eine Aktualisierung probiert wird. Setzt man den Wert 0 werden Batterychecks vollständig abgeschaltet.
- Etwas aufgeräumt
Patrick
/Edit: Anhang entfernt. Neue Version unten.
Hallo Patrick,
Zitatna gut.
Chapeau! ... und vielen Dank für die 0.11!
Beim Testen habe ich festgestellt, alle battery level der 0.11 er Version stehen bei 56%.
Mit gatttool allerdings nur der AE
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:09 -t public --char-read --uuid=0x2a19
handle: 0x001b value: 2f
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:CF -t public --char-read --uuid=0x2a19
handle: 0x001b value: 2f
pi@RaspiZ139:~ $ gatttool -b 7C:2F:80:XX:XX:AE -t public --char-read --uuid=0x2a19
handle: 0x001b value: 38
Danke
Uwe
Hi!
Zitat von: Lehmi54 am 31 Januar 2023, 20:24:29
Beim Testen habe ich festgestellt, alle battery level der 0.11 er Version stehen bei 56%.
Mit gatttool allerdings nur der AE
An der Auswertung habe ich nichts geändert...
Patrick
Hat jemand von euch eine Idee, wie ich Net::MQTT::Simple auf einem PiZero2 installiert bekomme? Mit CPAN wird das nichts, das überfordert ihn total.
Zitat von: drhirn am 03 Februar 2023, 11:53:46
Hat jemand von euch eine Idee, wie ich Net::MQTT::Simple auf einem PiZero2 installiert bekomme? Mit CPAN wird das nichts, das überfordert ihn total.
So:
git clone https://github.com/Juerd/Net-MQTT-Simple.git
cd Net-MQTT-Simple
perl Makefile.PL
make
make test
sudo make install
Zitat von: PatrickR am 31 Januar 2023, 16:17:31
Neue Version 0.11:
- Neuer Parameter: --batterymaxage <Zahl> - Maximale Zeit in Stunden, nach der ein Batterywert als zu alt angesehen und eine Aktualisierung probiert wird. Setzt man den Wert 0 werden Batterychecks vollständig abgeschaltet.
- Etwas aufgeräumt
Patrick
Super, danke, in Setups mit mehr als einem BLE-Host macht es total Sinn, nicht von jedem Hosts aus die Battery-Level abzufragen.
Ich vermute sogar, dass die regelmässigen Checks (bei 3 Hosts alle 6h passiert das ja 12x am Tag) die Akkulaufzeit signifikant verkürzen. Das ist ja nicht im Sinne des Erfinders :) Deswegen würde ich noch vorschlagen, DEFAULT_BATTERY_MAX_AGE deutlich zu erhöhen, z.B. auf 1 Woche. Die Batterien halten ja mehrere Jahre, und selbst wenn der Level low wird, hat man noch mehrere Wochen Zeit um das Ding auszutauschen. Da kommt es nicht auf Stunden an.
Hier noch ein Patch, der bei deaktiviertem Battery-Check die Prüfung auf gatttool überspringt, das dann ja nicht notwendig ist. Wie oben schon erwähnt ist gatttool ebenfalls deprecated und z.B. bei mir unter Archlinux gar nicht mehr verfügbar.
Schöne Grüße!
Hi!
Zitat von: decaflo am 03 März 2023, 11:17:31
Ich vermute sogar, dass die regelmässigen Checks (bei 3 Hosts alle 6h passiert das ja 12x am Tag) die Akkulaufzeit signifikant verkürzen. Das ist ja nicht im Sinne des Erfinders :) Deswegen würde ich noch vorschlagen, DEFAULT_BATTERY_MAX_AGE deutlich zu erhöhen, z.B. auf 1 Woche. Die Batterien halten ja mehrere Jahre, und selbst wenn der Level low wird, hat man noch mehrere Wochen Zeit um das Ding auszutauschen. Da kommt es nicht auf Stunden an.
Genau aus dem Grund habe ich mich lange Zeit dagegen gewehrt, überhaupt einen Batteriecheck einzubauen - zu dem Zeitpunkt noch in lepresenced. Da aber die Nutzer teilweise dazu übergegangen sind, selbstgebastelte Batterieskripte zu nutzen und damit lepresenced aus dem Tritt zu bringen, habe ich es eingebaut. Die Idee des "kurzen" Intervalls war, dass die Tags ggf. nicht immer erreichbar sind und ich sicherstellen wollte, dass der Wert ab und zu mal erfolgreich geholt wird. Zwischenzeitlich habe ich aber die Abfrage so optimiert, dass sie bei Nichterreichbarkeit wiederholt wird. Insofern hast Du voll und ganz Recht. Werde den Defaultwert erst einmal auf 48h erhöhen. Dabei müssen wir akzeptieren, dass scheinbar viele Nutzer den Batteriewert wichtiger finden als den Anwesenheitswert, ob das nun nachvollziehbar ist oder nicht. Habe teilweise Forenbeiträge gesehen, wo mehrfach am Tag die Box mit Schrödingers Katze aufgemacht wird.
Zitat von: decaflo am 03 März 2023, 11:17:31
Hier noch ein Patch, der bei deaktiviertem Battery-Check die Prüfung auf gatttool überspringt, das dann ja nicht notwendig ist. Wie oben schon erwähnt ist gatttool ebenfalls deprecated und z.B. bei mir unter Archlinux gar nicht mehr verfügbar.
Guter Hinweis. Das muss man auch nicht wirklich begründen, weil es keinen Sinn ergibt, so wie es jetzt ist.
Patrick
Hi!
Neue Version 0.12:
- Standardintervall für Batteriecheck ist jetzt 48 Stunden.
- Das Vorhandensein von Gatttool wird nun nicht mehr geprüft, wenn der Batteriecheck deaktiviert ist.
Danke, decaflo!
Patrick
/Edit: Anhang entfernt. Neue Version unten.
Für alle, die das tool als .service laufen lassen wollen: bei meinem pi3b+ musste ich das "-daemonize" Attribut weglassen, bei meinem pi1w nicht.
Hier mal eine Beispieldefinition:
[Unit]
Description=ble2mqttd
After=bluetooth.target sys-subsystem-bluetooth-devices-hci0.device
[Service]
ExecStartPre=/bin/sleep 10
ExecStart=/usr/local/bin/ble2mqttd --mqttserver 127.0.0.1:1883 --mqtttopic ble2mqtt/wohnzimmer --mac '(XXX|YYY)' --absentinterval 600
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
Gerade noch festgestellt, dass mir das Tool über dbus das syslog etwas vollmüllt - jemand eine Idee zur Lösung? Limits hochsetzen oder ggf. noch etwas an dem Skript zu tweaken?
tail /var/log/syslog
Mar 17 11:56:39 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 11:56:45 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 11:56:47 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 11:57:17 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 11:57:34 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 11:58:40 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 11:59:04 raspberrypi ble2mqttd: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Mar 17 12:00:24 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 12:00:26 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
Mar 17 12:01:00 raspberrypi dbus-daemon[338]: [system] Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)
sudo dbus-monitor --system
method call time=1679047054.377341 sender=:1.689 -> destination=org.freedesktop.DBus serial=3213 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
string "type='signal',sender='org.bluez',path='/org/bluez/hci0/dev_XXX',interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',arg0='org.bluez.Device1'"
error time=1679047054.377752 sender=org.freedesktop.DBus -> destination=:1.689 error_name=org.freedesktop.DBus.Error.LimitsExceeded reply_serial=3213
string "Connection ":1.689" is not allowed to add more match rules (increase limits in configuration file if required; max_match_rules_per_connection=512)"
signal time=1679047054.463953 sender=:1.16 -> destination=(null destination) serial=1752462 path=/org/bluez/hci0/dev_XXX; interface=org.freedesktop.DBus.Properties; member=PropertiesChanged
string "org.bluez.Device1"
array [
dict entry(
string "RSSI"
variant int16 -93
)
]
array [
]
Bei mir wurde ble2mqttd zwar manuell gestartet (mit --daemon), aber ich erhalte keine solchen Einträge im Log.
Zitat von: decaflo am 17 März 2023, 23:00:07Bei mir wurde ble2mqttd zwar manuell gestartet (mit --daemon), aber ich erhalte keine solchen Einträge im Log.
Gefährliches Halbwissen: kommt wohl über die Zeit, wenn es immer mehr Match-rules werden. 512 sollten grundsätzlich ausreichen. Evtl. kann man da am Skript noch was optimieren?
Hi!
Zitat von: hkspks am 20 März 2023, 14:51:22Gefährliches Halbwissen: kommt wohl über die Zeit, wenn es immer mehr Match-rules werden. 512 sollten grundsätzlich ausreichen. Evtl. kann man da am Skript noch was optimieren?
Das ist natürlich möglich. Dann bräuchte ich aber eine Info, was genau das Anlegen dieser Match-Rules auslöst. Das Log sieht so aus, also würde es (z. B.) um die Signalstärke gehen. Die frage ich aber nie aktiv ab, d. h. bluetoothctl entscheidet selbst, dass es daran interessiert ist. Dadurch dürfte auch der mac-Filter von ble2mqttd nicht greifen. Ohne genauere Infos würden mir nur informatische Verzweiflungstaten einfallen (z. B. bluetoothctl nach n Stunden beenden bzw. den Scan-Prozess neu starten.)
/Edit:
Bekommst Du die Meldungen mit einem Neustart von ble2mqttd weg oder nur einem Reboot? Sind in Deinem Umfeld "viele" BLE-Geräte unterwegs (Innenstadt etc.)?
Patrick
Zitat von: PatrickR am 20 März 2023, 16:12:51/Edit:
Bekommst Du die Meldungen mit einem Neustart von ble2mqttd weg oder nur einem Reboot? Sind in Deinem Umfeld "viele" BLE-Geräte unterwegs (Innenstadt etc.)?
Patrick
Ja, hier dürften schon ein paar BLE-Geräte unterwegs sein. Was ich aber wiederum nicht verstehe: ich habe einen pizerow an der Straße stehen (ohne diese Probleme) und einen pi3b eher im Hinterhaus. Nur der pi3 hat diese Probleme. Ggf. ist es also eher Problem mit meiner Systemkonfiguration.
Ob ein restart des Services hilft, kann ich beim nächsten mal probieren. Diesmal war es ein Systemreboot - da hatte es geholfen.
Weiterer funfact: z.T. braucht der Service bei mir knapp 10 Versuche um zu starten (auch nur auf dem pi3b, nicht auf dem zero w). Hintergrund ist:
Mar 20 11:32:09 raspberrypi ble2mqttd: main::error_exit: ERROR expecting bluetoothctl prompt while waiting to send 'menu scan'.
Vielleicht ist einfach etwas mit dem pi3b schief ...
Die Lösung über MQTT ist ansonsten super stabil bei mir (im Vgl zu lepresence!) und reduziert Systemlast deutlich. Generell scheint MQTT ein recht effizienter "Servicebus" - die Substitution von deconz mit zigbee2mqtt hat auch nochmal 5-10% gebracht.
Update: Restart des Services reicht nicht - Serverrestart notwendig!
Dann würde ich auf ein HW-Problem tippen .....
Edit:
Vergesst es. War wohl mein Fehler. Hatte noch versehentlich lepresenced am Laufen.
----
Hallo!
Verwendet noch jemand ble2mqttd? Ich probier's nämlich gerade wieder aus und hab das Problem, dass es nicht mehr zu scannen scheint, sobald der G-Tag mal "absent" war. Heartbeat ändert sich noch, aber ansonsten bleiben alle anderen Werte unverändert.
Macht keinen Unterschied, ob ich ble2mqttd mit dem Parameter --daemonize oder über ein systemd-Script starte.
Läuft mit folgenden Optionen:
/usr/local/bin/ble2mqttd --mqttserver mqtt.example.com:8883 --mqttfingerprint 'sha256$5638d3455441866ed88f5...e9d876a' --mqtttopic ble2mqtt/wohnzimmer --mac '(11:22:33:44:55:66|77:88:99:00:AA:BB)' --absentinterval 30 --mqttuser user --mqttpass password --daemonize
Danke!
Stefan
Hallo,
da bei mir lepresenced immer mal wieder Probleme macht, habe ich das Script mal getestet.
Das Reading 'state' hat entweder den Status connected oder disconected, das Reading 'present' hat 0 und 1.
Soweit so gut :-)
Damit ich relativ einfach von lepresenced auf ble2mqtt wechseln kann, müssten die Readings anders gefüllt werden.
Kann man das irgendwo anpassen, das das Reading 'present' entweder present oder absent hat, also Text anstatt 1/0?
Ich werte das Reading 'present' von lepresenced mehrfach aus und alles umschreiben ist sehr aufwändig.
Gruß
Andreas
Zitat von: Loetkolben am 14 August 2023, 18:29:36Kann man das irgendwo anpassen, das das Reading 'present' entweder present oder absent hat, also Text anstatt 1/0?
Vielleicht damit: https://wiki.fhem.de/wiki/ReadingsChange
Gruß, Joachim
Frage: Wäre es nicht sinnvoll, das present-Reading als retained zu schicken?
Ich hatte im Urlaub öfter mal das Problem, dass meine Residents plötzlich zuhause waren. Weiß aber noch nicht, warum genau das passiert ist.
Hi!
Zitat von: drhirn am 04 September 2023, 11:39:49Frage: Wäre es nicht sinnvoll, das present-Reading als retained zu schicken?
Der Grundgedanke bei ble2mqttd ist, dass er ein offenes Ohr für *alle* anwesenden Bluetooth-Geräte hat, d. h. ohne Filter betrieben wird. Wenn man dann retain setzt, liegen die Nachrichten bis zum Sankt-Nimmerleinstag auf dem MQTT-Server rum. Daher hatte ich das Flag nur bei dem globalen State-Topic gesetzt.
Wenn es Dir hilft, kann ich einen neuen Parameter einbauen, der present und lastseen retained.
Zitat von: drhirn am 04 September 2023, 11:39:49Ich hatte im Urlaub öfter mal das Problem, dass meine Residents plötzlich zuhause waren. Weiß aber noch nicht, warum genau das passiert ist.
Uff, da hilft wohl nur ein Debug-Log von ble2mqttd.
Patrick
Das globale State-Topic hat (aus meiner Sicht), das Problem, dass es auch "connected" und "disconnected" sein kann. Das kann ich bei Roommates nicht brauchen. Wir könnten das retain ja auch optional machen, nicht?
Hi!
Zitat von: drhirn am 04 September 2023, 12:47:57Das globale State-Topic hat (aus meiner Sicht), das Problem, dass es auch "connected" und "disconnected" sein kann. Das kann ich bei Roommates nicht brauchen.
Genau genommen kann es *nur* connected und disconnected sein und sagt absolut nichts über Anwesenheiten aus. Dafür ist es ja auch nicht :)
Zitat von: drhirn am 04 September 2023, 12:47:57Wir könnten das retain ja auch optional machen, nicht?
Das hatte ich ja vorgeschlagen:
Zitat von: PatrickR am 04 September 2023, 11:58:44Wenn es Dir hilft, kann ich einen neuen Parameter einbauen, der present und lastseen retained.
Patrick
Ist beides natürlich vollkommen richtig... :-[
Ja, das fände ich super und würde dich darum bitten! Danke!
Hi!
Neue Version 0.13:
-Neuer Kommandozeilenparameter: --retain - Topics present und lastseen werden retained.
Patrick
/Edit: Anhang entfernt, neue Version unten.
Das war flott! Danke!
Ich werde dann testen, sobald ich aus meiner alltäglichen 8h Geiselhaft entlassen werde.
Hmm. Ich starte ble2mqtt jetzt so:
ble2mqttd --retain --batterymaxage 0 --mqttserver 192.0.2.1:1883 --mqtttopic ble2mqtt/wohnzimmer --mac (xx:xx:xx:xx:xx:xx) --absentinterval 30 --mqttuser <user> --mqttpass <pass>
state ist retained, brav.
Bei lastseen und present hat sich aber leider nichts geändert. Ich weiß jetzt aber nicht, ob das einfach am MQTT Explorer liegt und der das nicht so anzeigt, wie ich gerne hätte. Muss weiter testen.
Was mir aber aufgefallen ist: Geht der MQTT Broker kurz offline, wechselt der state auf disconnected. Und das ändert sich erst mit einem Neustart des ble2mqtt-Services wieder. Könnte man das irgendwie optimieren?
Hi!
Zitat von: drhirn am 05 September 2023, 17:24:29state ist retained, brav.
Du meinst so wie vorher? :)
Zitat von: drhirn am 05 September 2023, 17:24:29Bei lastseen und present hat sich aber leider nichts geändert. Ich weiß jetzt aber nicht, ob das einfach am MQTT Explorer liegt und der das nicht so anzeigt, wie ich gerne hätte. Muss weiter testen.
Darauf bin ich auch reingefallen. Der Explorer zeigt das "RETAIN"-Schildchen nur an, wenn beim Start des Explorers das retainte Topic abgeholt wird. Wenn es direkt danach ein Update gibt, weil ble2mqttd pflichtgemäß seine Aufgabe wahrnimmt, dann ist das Schildchen wieder weg.
Testen kannst Du es, indem Du ble2mqttd etwas laufen lässt und dann beendest. Dann MQTT Explorer beenden und neu starten, dann sollten die Topics da sein.
Zitat von: drhirn am 05 September 2023, 17:24:29Was mir aber aufgefallen ist: Geht der MQTT Broker kurz offline, wechselt der state auf disconnected. Und das ändert sich erst mit einem Neustart des ble2mqtt-Services wieder. Könnte man das irgendwie optimieren?
Du meinst, ob man es von kaputt zu funktioniert optimieren kann? Schaue ich mir an.
Patrick
Hi!
Neue Version 0.14:
-Setzen des State-Topic repariert.
Patrick
Zitat von: PatrickR am 05 September 2023, 20:01:36Du meinst so wie vorher? :)
Genau ;D
Zitat von: PatrickR am 05 September 2023, 20:01:36Darauf bin ich auch reingefallen. Der Explorer zeigt das "RETAIN"-Schildchen nur an, wenn beim Start des Explorers das retainte Topic abgeholt wird. Wenn es direkt danach ein Update gibt, weil ble2mqttd pflichtgemäß seine Aufgabe wahrnimmt, dann ist das Schildchen wieder weg.
Testen kannst Du es, indem Du ble2mqttd etwas laufen lässt und dann beendest. Dann MQTT Explorer beenden und neu starten, dann sollten die Topics da sein.
Oder das ganze im Büro versucht, wo der MQTT Explorer noch nichts von ble2mqtt wusste. Perfekt!
Zitat von: PatrickR am 05 September 2023, 20:01:36Du meinst, ob man es von kaputt zu funktioniert optimieren kann? Schaue ich mir an.
Genau. Ich wollte es nur nicht so drastisch ausdrücken ;D
Zitat von: PatrickRNeue Version 0.14:
-Setzen des State-Topic repariert.
Suuuuper, danke Dir!
Sollen wir den Thread übrigens irgendwo abspalten? Ab dem Zeitpunkt, an dem ble2mqtt zum Leben erwachte? Oder soll ich einfach den Titel und den ersten Post ändern?
Hi!
Habe ehrlich gesagt keinen Plan, was das Forum kann, aber Umbenennen des ersten Beitrags ist auf jeden Fall schonmal eine sehr gute Idee.
Patrick
Erledigt. Nicht optimal der Titel, aber ich steh gerade auf der Leitung.
Hast du vor, ble2mqtt ins SVN zu schieben?
Danke für die Arbeit auf jeden Fall!
Hi!
Zitat von: drhirn am 06 September 2023, 11:18:12Hast du vor, ble2mqtt ins SVN zu schieben?
Hatte schon mehrfach darüber nachgedacht. Die Frage ist, in welchen Pfad genau. unter contrib/PRESENCE passt es m. E. nicht, da es mit dem Presence-Modul nichts mehr zu tun hat. Andererseits ist es natürlich auch streng genommen kein FHEM-Only-Produkt mehr. Daher würde es wohl eigentlich eher auf GitHub/Lab passen. Meine Lösung für das Problem war, es beliebig lang aufzuschieben ;) Aber sich die aktuelle Version immer aus dem Forum rauszusuchen, ist natürlich auch nicht doll.
Patrick
Zitat von: PatrickR am 06 September 2023, 11:27:19Meine Lösung für das Problem war, es beliebig lang aufzuschieben ;)
Hihi, das kommt mir irgendwie bekannt vor :D
Mir persönlich wäre ja irgendwas mit Git* sehr recht. V.a., wenn dann noch ein schönes Changelog dabei ist. Und ja, ist kein FHEM-Only Produkt mehr, da hast du recht.
Wie du sagst, aus dem Forum raussuchen ist unpraktisch. Das war meine eigentliche Intention für die Frage. Wo's dann schlussendlich liegt, ist aber zweitrangig.
Wie die anderen schon gesagt haben, gehört sowas hier in ein öffentliches Repository, wie git.*... Ich habe einige Module, die nicht so recht ins SVN von FHEM passen im git. Sowas im Forum zu verwalten ist schlicht unmöglich. Und wenn es sowas nützliches ist, ist es gut, wenn man es auch finden kann. Link zum git im ersten Beitrag dieses Threads und man spart sich auch das ständige Verlinken und/oder Hochladen.
Vielen lieben Dank Patrick. Wie immer eine tolle Arbeit. Was noch fehlt denke ich ist die Auswahl des Bluetooth Devices. Aktuell ist ja hart hci0 drin. Die Auswahl als Option ist auskommentiert im Code. Hat das einen Grund?
Hi!
Zitat von: CoolTux am 09 September 2023, 08:26:40Was noch fehlt denke ich ist die Auswahl des Bluetooth Devices. Aktuell ist ja hart hci0 drin. Die Auswahl als Option ist auskommentiert im Code. Hat das einen Grund?
Jo. Da bin ich leider mit meinem jugendlichen Leichtsinn gegen die Pumpe gerannt. Bluetoothctl kennt nämlich scheinbar keine HCI-Devices. Man kann nur einen Controller auswählen und zwar nicht an Hand eines Devices sondern einer Adresse:
[bluetooth]# list
Controller B8:27:EB:DB:6F:28 rpi-az-desktop #2 [default]
Controller AA:AA:AA:AA:AA:AA rpi-az-desktop
[bluetooth]# show B8:27:EB:DB:6F:28
Controller B8:27:EB:DB:6F:28 (public)
Name: rpi-az-desktop #2
Alias: rpi-az-desktop #2
Class: 0x00000000
Powered: yes
Discoverable: no
Pairable: yes
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0532
Discovering: no
[bluetooth]# show AA:AA:AA:AA:AA:AA
Controller AA:AA:AA:AA:AA:AA (public)
Name: rpi-az-desktop
Alias: rpi-az-desktop
Class: 0x00000000
Powered: yes
Discoverable: no
Pairable: yes
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d0532
Discovering: no
Wenig Mut macht mir, dass die Details für beide Adapter exakt gleich sind und die Adresse des ersten Adapters noch AA:AA:AA:AA:AA:AA ist. Immerhin stimmt die zweite mit der Ausgabe von hciconfig überein:
root@rpi-az-desktop:~# hciconfig
hci1: Type: Primary Bus: USB
BD Address: B8:27:EB:DB:6F:28 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:630 acl:0 sco:0 events:38 errors:0
TX bytes:945 acl:0 sco:0 commands:37 errors:0
hci0: Type: Primary Bus: UART
BD Address: B8:27:EB:1F:E0:A6 ACL MTU: 1021:8 SCO MTU: 64:1
UP RUNNING
RX bytes:2196 acl:0 sco:0 events:129 errors:0
TX bytes:2818 acl:0 sco:0 commands:129 errors:0
Bei Gatttool, das ich mangels besserer Alternativen (siehe weiter oben) für die Batterieabfrage benutze, kann ich problemlos ein Device übergeben.
Wenn Du aktuell akuten Bedarf hast fiele mir nur ein, zwei Kommandozeilenparameter einzuführen, in etwa
--scan-device [Adresse]
--battery-device [hci-Device]
Das finde ich aber "halbschön". Eigentlich müsste man das einheitlich auf hciX bzw. die Adresse mappen, was aber scheinbar nicht ohne zusätzliche Abhängigkeiten (hciconfig?) geht.
Patrick
/Edit: Angepasst da ich blind war :)
Ich habe aktuell keinen Bedarf dafür. Ist mir nur beim überschauen des Codes aufgefallen. Ach und Du hast zu mindest in der Hilfe zur Syntax noch daemon statt daemonize.
ble2mqttd -help
ble2mqttd --mqttserver <mqtt server:mqtt port> --mqttfingerprint <ssl fingerprint> --mqttuser <mqtt user> --mqttpass <mqtt pass> --loglevel <log level> --logtarget <log target> --daemon
Nun habe ich leider doch noch ein Problem. Sporadisch gehen alle Geräte auf absent. Das heartbeat Reading kommt weiter hin normal rein und der state ist connected. Dennoch werden keine neuen Werte für topics der mac adressen geschrieben
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 287, last seen: 159, last published: 172, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 286, last seen: 163, last published: 172, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 302, last seen: 174, last published: 187, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 301, last seen: 178, last published: 187, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (RSSI: -63)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 317, last seen: 189, last published: 202, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 316, last seen: 193, last published: 202, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (RSSI: -54)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 332, last seen: 204, last published: 217, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 331, last seen: 208, last published: 217, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -80)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -80)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -70)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -81)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -81)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -83)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -70)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -79)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -79)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 347, last seen: 219, last published: 232, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 346, last seen: 223, last published: 232, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -78)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -79)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -79)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -70)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -79)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -78)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -78)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 362, last seen: 234, last published: 247, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 361, last seen: 238, last published: 247, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -67)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 377, last seen: 249, last published: 262, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 376, last seen: 253, last published: 262, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (RSSI: -62)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 392, last seen: 264, last published: 277, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 391, last seen: 268, last published: 277, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (RSSI: -54)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -75)
main::evaluation_task: Executing evaluation task.
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -76)
### Match (filtered): [NEW] 47:21:F3:79:C1:55 (47-21-F3-79-C1-55)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -68)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -77)
### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 407, last seen: 279, last published: 292, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 406, last seen: 283, last published: 292, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: unknown, address type: unknown, first seen: 422, last seen: 294, last published: 307, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 421, last seen: 298, last published: 307, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Device 7C:2F:80:AA:5E:6C is now absent.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Device 7C:2F:80:98:B3:8E is now absent.
### Match (filtered): [NEW] 52:C3:3A:88:20:68 (52-C3-3A-88-20-68)
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 437, last seen: 309, last published: 322, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 436, last seen: 313, last published: 322, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 452, last seen: 324, last published: 337, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 451, last seen: 328, last published: 337, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 467, last seen: 339, last published: 352, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 466, last seen: 343, last published: 352, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 482, last seen: 354, last published: 367, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 481, last seen: 358, last published: 367, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 497, last seen: 369, last published: 382, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 496, last seen: 373, last published: 382, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 512, last seen: 384, last published: 397, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 511, last seen: 388, last published: 397, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 527, last seen: 399, last published: 412, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 526, last seen: 403, last published: 412, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::evaluation_task: Executing evaluation task.
main::dump_task: Executing dump task.
Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: unknown, address type: unknown, first seen: 542, last seen: 414, last published: 427, rssi: -69, published rssi: -71, query count: 8, battery service: 0, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 541, last seen: 418, last published: 427, rssi: -73, published rssi: -74, query count: %, battery service: 1, battery: unknown (never)
Ganzer Debug Log kann hier eingesehen werden (https://cloud.cooltux.net/s/nBqNs3p42833i9K).
Bin da für jeden Tip dankbar. Nach einer Stunde so in etwar fängt er sich wieder.
Hier noch ein normaler Logauszug. Heute Morgen gegen 05:25:53 Uhr viel es wieder aus und gegen 06:25:54 Uhr hat es sich wieder gefangen.
Sep 10 04:39:23 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 04:54:24 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 05:09:25 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 05:24:26 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 05:25:53 h-hmlangw ble2mqttd[21935]: main: Scan started.
Sep 10 05:25:53 h-hmlangw ble2mqttd[21935]: main::__ANON__: Found bluetoothctl version 5.66.
Sep 10 05:30:59 h-hmlangw ble2mqttd[21935]: main::evaluation_task: Device 7C:2F:80:98:B3:8E is now absent.
Sep 10 05:30:59 h-hmlangw ble2mqttd[21935]: main::evaluation_task: Device 7C:2F:80:AA:5E:6C is now absent.
Sep 10 05:39:27 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 05:54:28 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 06:09:29 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 2 devices in 0 seconds.
Sep 10 06:24:30 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 06:25:54 h-hmlangw ble2mqttd[21935]: main: Scan started.
Sep 10 06:25:54 h-hmlangw ble2mqttd[21935]: main::__ANON__: Found bluetoothctl version 5.66.
Sep 10 06:39:31 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Sep 10 06:54:32 h-hmlangw ble2mqttd[21935]: main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
Hi!
Zitat von: CoolTux am 10 September 2023, 11:59:54Nun habe ich leider doch noch ein Problem. Sporadisch gehen alle Geräte auf absent. Das heartbeat Reading kommt weiter hin normal rein und der state ist connected. Dennoch werden keine neuen Werte für topics der mac adressen geschrieben
[...]
Hmm so richtig schlau werde ich aus dem Log nicht. Das liegt aber auch daran, dass beim Logging nach STDOUT die Zeitstempel fehlen und der Log Level des Battery Task auch mit DEBUG nicht so schlau gewählt war.
Kannst Du mal ein neues Log mit der angehängten Version (0.15) ziehen, am besten einen Tag lang und dann wieder mit der Info, wann das Problem aufgetreten ist.
/Edit: Anhang entfernt. ble2mqttd liegt nun im FHEM-SVN unter contrib.
Patrick
Schaue ich ich gerne morgen an. Vielen Dank schon mal.
@Patrick
Es ist wie verhext. Mit der neuen Version läuft es seit Stunden durch. Keine Ahnung wieso. Ich bleibe dran.
Aber hier mal was zum Thema Batterie
[2023-09-11 15:14:07] main: Version 0.15 started (device: hci0, mqtt server: 10.6.6.20:8883, mqtt user: -none-, mqtt fingerprint: -none-, get mqtt fingerprint: 0, mqtt topic: ble2mqtt, daemonize: 0, log level: 7, log target: syslog, absent interval: 300, rssi threshold: 10, watchdog threshold: 0, mac regex: 7C:2F:80:AA:5E:6C|7C:2F:80:98:B7:F8|7C:2F:80:AA:5E:28|7C:2F:80:98:B3:8E, debug: 9, debug bluetoothctl: 0, force battery: 0, battery max age: 48).
[2023-09-11 15:14:07] main::sanity_check: md5 digest of '/usr/local/sbin/ble2mqttd' is: 'a02bb3b10cfbec9a96d6c56c87541b1a'.
[2023-09-11 15:14:07] main::sanity_check: bluetoothctl found at '/usr/bin/bluetoothctl'.
[2023-09-11 15:14:07] main::sanity_check: gatttool found at '/usr/bin/gatttool'.
[2023-09-11 15:14:07] main::mqtt_check_reconnect: (Re-)connect detected, handling...
[2023-09-11 15:14:07] main: Sending 'menu scan'...
[2023-09-11 15:14:07] main: Sending 'clear'...
[2023-09-11 15:14:07] main: Sending 'duplicate-data on'...
[2023-09-11 15:14:07] main: Sending 'transport le'...
[2023-09-11 15:14:07] main: Sending 'back'...
[2023-09-11 15:14:07] main: Sending 'scan on'...
[2023-09-11 15:14:07] main: Sending 'version'...
[2023-09-11 15:14:07] main: Scan started.
[2023-09-11 15:14:07] main::__ANON__: Found bluetoothctl version 5.66.
[2023-09-11 15:14:07] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -73)
[2023-09-11 15:14:07] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (RSSI: -77)
[2023-09-11 15:14:07] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (TxPower: -44)
[2023-09-11 15:14:07] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -69)
[2023-09-11 15:14:08] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (RSSI: -59)
[2023-09-11 15:14:08] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 15:14:08] ### Match (new): [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 15:14:09] ### Match (filtered): [NEW] 44:CB:8B:29:0F:68 (LG SJ4R(68))
[2023-09-11 15:14:10] main::query_task: Executing query task. Querying 7C:2F:80:AA:5E:6C (count: 1, backoff: 2)...
[2023-09-11 15:14:10] +++ Device info: 7C:2F:80:AA:5E:6C public
[2023-09-11 15:14:10] +++ Device name: 7C:2F:80:AA:5E:6C 'Gigaset G-tag'
[2023-09-11 15:14:10] +++ Device battery 7C:2F:80:AA:5E:6C
[2023-09-11 15:14:10] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 15:14:10] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 15:14:13] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:15] ### Match (filtered): [NEW] D8:80:83:5B:EE:F4 (SONY XR-42A90K)
[2023-09-11 15:14:19] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:22] main::dump_task: Executing dump task.
[2023-09-11 15:14:22] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 14, last seen: 12, last published: 14, rssi: -72, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:14:25] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:27] ### Match (filtered): [CHG] 3C:5D:29:69:7F:B0 (RSSI: -82)
[2023-09-11 15:14:27] ### Match (filtered): [NEW] C0:E7:BF:F0:4A:0A (Max TV)
[2023-09-11 15:14:28] ### Match (filtered): [CHG] D8:80:83:5B:EE:F4 (UUIDs: 0000110a-0000-1000-8000-00805f9b34fb)
[2023-09-11 15:14:28] ### Match (filtered): [CHG] D8:80:83:5B:EE:F4 (UUIDs: 0000110c-0000-1000-8000-00805f9b34fb)
[2023-09-11 15:14:28] ### Match (filtered): [CHG] D8:80:83:5B:EE:F4 (UUIDs: 0000110e-0000-1000-8000-00805f9b34fb)
[2023-09-11 15:14:28] ### Match (filtered): [CHG] D8:80:83:5B:EE:F4 (UUIDs: 00001200-0000-1000-8000-00805f9b34fb)
[2023-09-11 15:14:28] ### Match (filtered): [CHG] D8:80:83:5B:EE:F4 (UUIDs: 00000000-0000-0000-0000-000000000000)
[2023-09-11 15:14:31] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:37] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:37] main::dump_task: Executing dump task.
[2023-09-11 15:14:37] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 29, last seen: 27, last published: 29, rssi: -72, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:14:43] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:45] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -96)
[2023-09-11 15:14:46] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 15:14:46] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 15:14:47] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (RSSI: -66)
[2023-09-11 15:14:48] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (RSSI: -77)
[2023-09-11 15:14:49] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:14:52] main::dump_task: Executing dump task.
[2023-09-11 15:14:52] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 44, last seen: 6, last published: 6, rssi: -80, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:14:55] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:01] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 15:15:01] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 15:15:01] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:07] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:07] main::dump_task: Executing dump task.
[2023-09-11 15:15:07] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 59, last seen: 6, last published: 21, rssi: -72, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:15:13] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:19] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:22] main::dump_task: Executing dump task.
[2023-09-11 15:15:22] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 74, last seen: 21, last published: 36, rssi: -72, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:15:25] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:31] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:37] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:37] main::dump_task: Executing dump task.
[2023-09-11 15:15:37] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 89, last seen: 36, last published: 51, rssi: -72, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:15:38] ### Match (filtered): [NEW] 3C:5D:29:69:7F:B0 (3C-5D-29-69-7F-B0)
[2023-09-11 15:15:43] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:49] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:15:51] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 15:15:51] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 15:15:52] main::dump_task: Executing dump task.
[2023-09-11 15:15:52] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 104, last seen: 1, last published: 1, rssi: -80, published rssi: -80, query count: %, battery service: 1, battery: unknown (never)
[2023-09-11 15:15:55] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:16:01] main::evaluation_task: Executing evaluation task.
[2023-09-11 15:16:06] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 15:16:06] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 15:16:08] main::battery_task: Executing battery task.
[2023-09-11 15:16:09] main::get_battery_level: gatttool (mac: 7C:2F:80:AA:5E:6C, address type: 'public'): 'connect to 7C:2F:80:AA:5E:6C: Function not implemented (38)'
[2023-09-11 15:16:09] main::battery_task: Battery level of device 7C:2F:80:AA:5E:6C is unknown, skipping reading update...
[2023-09-11 15:16:09] main: Sending 'menu scan'...
[2023-09-11 15:16:09] main: Sending 'clear'...
[2023-09-11 15:16:09] main: Sending 'duplicate-data on'...
[2023-09-11 15:16:09] main: Sending 'transport le'...
[2023-09-11 15:16:09] main: Sending 'back'...
[2023-09-11 15:16:09] main: Sending 'scan on'...
[2023-09-11 15:16:09] main: Sending 'version'...
[2023-09-11 15:16:09] main: Scan started.
[2023-09-11 15:16:09] main::__ANON__: Found bluetoothctl version 5.66.
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (RSSI: -76)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (TxPower: -44)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (ManufacturerData Key: 0x00c4)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -73)
[2023-09-11 15:16:09] ### Match (filtered): [NEW] 48:3B:62:06:D5:CD (48-3B-62-06-D5-CD)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (RSSI: -58)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (ManufacturerData Key: 0x00c4)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (ManufacturerData Key: 0x004c)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -73)
[2023-09-11 15:16:09] ### Match (filtered): [NEW] 7F:13:D7:F6:DC:18 (7F-13-D7-F6-DC-18)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -72)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (RSSI: -75)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (ManufacturerData Key: 0x00c4)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [NEW] 14:C1:4E:C3:A1:94 (14-C1-4E-C3-A1-94)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (RSSI: -59)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (ManufacturerData Key: 0x00c4)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -71)
[2023-09-11 15:16:09] ### Match (filtered): [NEW] 54:E9:37:00:C2:DC (54-E9-37-00-C2-DC)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -71)
[2023-09-11 15:16:09] ### Match (filtered): [NEW] 75:7E:C0:79:DE:96 (75-7E-C0-79-DE-96)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 75:7E:C0:79:DE:96 (RSSI: -85)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 75:7E:C0:79:DE:96 (ManufacturerData Key: 0x012d)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 75:7E:C0:79:DE:96 (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [NEW] 61:E5:07:6A:A3:AC (61-E5-07-6A-A3-AC)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (RSSI: -75)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (ManufacturerData Key: 0x00c4)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 60:BA:9E:12:60:0A (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -71)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (R)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (ManufacturerData Key: 0x00c4)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 44:CB:8B:29:0F:68 (ManufacturerData Value:)
[2023-09-11 15:16:09] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -71)
[2023-09-11 15:16:10] ### Match (filtered): [CHG] 48:3B:62:06:D5:CD (RSSI: -77)
[2023-09-11 15:16:10] ### Match (filtered): [CHG] 48:3B:62:06:D5:CD (ServiceData Key: 0000fe9f-0000-1000-8000-00805f9b34fb)
[2023-09-11 15:16:10] ### Match (filtered): [CHG] 48:3B:62:06:D5:CD (ServiceData Value:)
[2023-09-11 15:16:10] main::evaluation_task: Executing evaluation task.
Hier noch etwas mehr an Output
[2023-09-11 16:51:44] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -71
[2023-09-11 16:51:44] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -71)
[2023-09-11 16:51:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:51:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:51:58] main::dump_task: Executing dump task.
[2023-09-11 16:51:58] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3348, last seen: 1368, last published: 1371, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5870, last seen: 14, last published: 25, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:51:58] ### Match (filtered): [NEW] C0:E7:BF:F0:4A:0A (Max TV)
[2023-09-11 16:52:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:03] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 16:52:03] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 16:52:05] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 16:52:05] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 16:52:05] ### Match (filtered): [NEW] FE:A1:46:00:00:0A (Armor X5)
[2023-09-11 16:52:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:13] main::dump_task: Executing dump task.
[2023-09-11 16:52:13] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3363, last seen: 1383, last published: 1386, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5885, last seen: 8, last published: 10, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:52:17] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 16:52:17] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 16:52:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:21] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 16:52:21] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 16:52:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:28] main::dump_task: Executing dump task.
[2023-09-11 16:52:28] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3378, last seen: 1398, last published: 1401, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5900, last seen: 7, last published: 7, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:52:29] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 16:52:29] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 16:52:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:31] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 16:52:31] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 16:52:35] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -85)
[2023-09-11 16:52:35] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (UUIDs: 0000110a-0000-1000-8000-00805f9b34fb)
[2023-09-11 16:52:35] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (UUIDs: 0000110c-0000-1000-8000-00805f9b34fb)
[2023-09-11 16:52:35] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (UUIDs: 0000110e-0000-1000-8000-00805f9b34fb)
[2023-09-11 16:52:35] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (UUIDs: 00001200-0000-1000-8000-00805f9b34fb)
[2023-09-11 16:52:35] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (UUIDs: 00000000-0000-0000-0000-000000000000)
[2023-09-11 16:52:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:36] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 16:52:36] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 16:52:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:43] main::dump_task: Executing dump task.
[2023-09-11 16:52:43] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3393, last seen: 1413, last published: 1416, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5915, last seen: 7, last published: 22, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:52:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:52:54] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -93)
[2023-09-11 16:52:58] main::dump_task: Executing dump task.
[2023-09-11 16:52:58] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3408, last seen: 1428, last published: 1431, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5930, last seen: 22, last published: 37, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:53:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:06] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -84)
[2023-09-11 16:53:09] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -96)
[2023-09-11 16:53:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:13] main::dump_task: Executing dump task.
[2023-09-11 16:53:13] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3423, last seen: 1443, last published: 1446, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5945, last seen: 37, last published: 52, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:53:16] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -71
[2023-09-11 16:53:16] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -71)
[2023-09-11 16:53:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:22] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -84)
[2023-09-11 16:53:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:26] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -93)
[2023-09-11 16:53:28] main::dump_task: Executing dump task.
[2023-09-11 16:53:28] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3438, last seen: 1458, last published: 1461, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5960, last seen: 12, last published: 12, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:53:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:39] ### Match (filtered): [CHG] C0:E7:BF:F0:4A:0A (RSSI: -84)
[2023-09-11 16:53:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:43] main::dump_task: Executing dump task.
[2023-09-11 16:53:43] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3453, last seen: 1473, last published: 1476, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5975, last seen: 27, last published: 27, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:53:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:50] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 16:53:50] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 16:53:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:53:58] main::dump_task: Executing dump task.
[2023-09-11 16:53:58] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3468, last seen: 1488, last published: 1491, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 5990, last seen: 8, last published: 8, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:53:58] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 16:53:58] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 16:54:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:13] main::dump_task: Executing dump task.
[2023-09-11 16:54:13] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3483, last seen: 1503, last published: 1506, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6005, last seen: 15, last published: 23, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:54:13] ### Match (filtered): [NEW] FE:A1:46:00:00:0A (Armor X5)
[2023-09-11 16:54:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:28] main::dump_task: Executing dump task.
[2023-09-11 16:54:28] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3498, last seen: 1518, last published: 1521, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6020, last seen: 30, last published: 38, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:54:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 16:54:43] main::dump_task: Executing dump task.
[2023-09-11 16:54:43] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 3513, last seen: 1533, last published: 1536, rssi: -76, published rssi: -70, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6035, last seen: 45, last published: 53, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 16:54:43] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -81
[2023-09-11 16:54:43] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -81)
[2023-09-11 16:54:46] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 16:54:46] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
Nun ist es doch passiert. Um genau 17:21:20 kam das absent. Ich habe ein absentinterval von 300, nur falls das relevant sein sollte. Ich bin zu Hause, mein Dongle auch. Meine MAC 7C_2F_80_AA_5E_6C
[2023-09-11 17:07:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:13] main::dump_task: Executing dump task.
[2023-09-11 17:07:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6785, last seen: 3, last published: 3, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:07:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:28] main::dump_task: Executing dump task.
[2023-09-11 17:07:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6800, last seen: 18, last published: 18, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:07:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:43] main::dump_task: Executing dump task.
[2023-09-11 17:07:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6815, last seen: 33, last published: 33, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:07:45] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:07:45] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:07:46] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:07:46] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:07:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:07:57] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -66)
[2023-09-11 17:07:58] main::dump_task: Executing dump task.
[2023-09-11 17:07:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6830, last seen: 12, last published: 13, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:07:58] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 17:08:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:02] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:08:02] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:08:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:13] main::dump_task: Executing dump task.
[2023-09-11 17:08:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6845, last seen: 11, last published: 11, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:08:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:28] main::dump_task: Executing dump task.
[2023-09-11 17:08:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6860, last seen: 26, last published: 26, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:08:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:30] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -66)
[2023-09-11 17:08:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:38] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 17:08:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:43] main::dump_task: Executing dump task.
[2023-09-11 17:08:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6875, last seen: 41, last published: 41, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:08:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:08:58] main::dump_task: Executing dump task.
[2023-09-11 17:08:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6890, last seen: 56, last published: 56, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:09:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:07] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:09:07] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:09:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:13] main::dump_task: Executing dump task.
[2023-09-11 17:09:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6905, last seen: 6, last published: 6, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:09:16] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -66)
[2023-09-11 17:09:17] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 17:09:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:23] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:09:23] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:09:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:28] main::dump_task: Executing dump task.
[2023-09-11 17:09:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6920, last seen: 5, last published: 5, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:09:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:33] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:09:33] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:09:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:43] main::dump_task: Executing dump task.
[2023-09-11 17:09:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6935, last seen: 10, last published: 20, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:09:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:49] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:09:49] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:09:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:09:58] main::dump_task: Executing dump task.
[2023-09-11 17:09:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6950, last seen: 9, last published: 9, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:10:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:11] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -66)
[2023-09-11 17:10:12] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 17:10:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:13] main::dump_task: Executing dump task.
[2023-09-11 17:10:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6965, last seen: 24, last published: 24, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:10:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:21] ### Match (filtered): [NEW] FE:A1:46:00:00:0A (Armor X5)
[2023-09-11 17:10:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:28] main::dump_task: Executing dump task.
[2023-09-11 17:10:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6980, last seen: 39, last published: 39, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:10:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:36] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -66)
[2023-09-11 17:10:36] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:10:36] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:10:40] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 17:10:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:43] main::dump_task: Executing dump task.
[2023-09-11 17:10:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 6995, last seen: 7, last published: 7, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:10:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:10:58] main::dump_task: Executing dump task.
[2023-09-11 17:10:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7010, last seen: 22, last published: 22, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:11:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:13] main::dump_task: Executing dump task.
[2023-09-11 17:11:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7025, last seen: 37, last published: 37, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:11:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:28] main::dump_task: Executing dump task.
[2023-09-11 17:11:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7040, last seen: 52, last published: 52, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:11:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:31] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:11:31] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:11:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:43] main::dump_task: Executing dump task.
[2023-09-11 17:11:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7055, last seen: 12, last published: 12, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:11:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:11:58] main::dump_task: Executing dump task.
[2023-09-11 17:11:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7070, last seen: 27, last published: 27, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:12:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:04] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (RSSI: -48)
[2023-09-11 17:12:04] ### Match (filtered): [NEW] 3C:5D:29:69:7F:B0 (3C-5D-29-69-7F-B0)
[2023-09-11 17:12:04] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (RSSI: -62)
[2023-09-11 17:12:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:13] main::dump_task: Executing dump task.
[2023-09-11 17:12:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7085, last seen: 42, last published: 42, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:12:16] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:12:16] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:12:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:28] main::dump_task: Executing dump task.
[2023-09-11 17:12:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7100, last seen: 12, last published: 12, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:12:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:43] main::dump_task: Executing dump task.
[2023-09-11 17:12:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7115, last seen: 27, last published: 27, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:12:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:49] ### Match (filtered): [NEW] 3C:5D:29:69:7F:B0 (3C-5D-29-69-7F-B0)
[2023-09-11 17:12:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:12:58] main::dump_task: Executing dump task.
[2023-09-11 17:12:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7130, last seen: 42, last published: 42, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:13:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:13] main::dump_task: Executing dump task.
[2023-09-11 17:13:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7145, last seen: 57, last published: 57, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:13:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:18] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:13:18] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:13:20] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -71
[2023-09-11 17:13:20] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -71)
[2023-09-11 17:13:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:28] main::dump_task: Executing dump task.
[2023-09-11 17:13:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7160, last seen: 8, last published: 10, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:13:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:35] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -79
[2023-09-11 17:13:35] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -79)
[2023-09-11 17:13:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:43] main::dump_task: Executing dump task.
[2023-09-11 17:13:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7175, last seen: 8, last published: 8, rssi: -79, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:13:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:13:58] main::dump_task: Executing dump task.
[2023-09-11 17:13:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7190, last seen: 23, last published: 23, rssi: -79, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:14:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:06] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -71
[2023-09-11 17:14:06] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -71)
[2023-09-11 17:14:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:13] main::dump_task: Executing dump task.
[2023-09-11 17:14:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7205, last seen: 7, last published: 7, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:14:15] main::cleanup_task: Cleanup finished, deleted 0 devices in 0 seconds.
[2023-09-11 17:14:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:21] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:14:21] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:14:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:25] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -70
[2023-09-11 17:14:25] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -70)
[2023-09-11 17:14:28] main::dump_task: Executing dump task.
[2023-09-11 17:14:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7220, last seen: 3, last published: 3, rssi: -70, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:14:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:41] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:14:41] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:14:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:43] main::dump_task: Executing dump task.
[2023-09-11 17:14:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7235, last seen: 2, last published: 2, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:14:44] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -66)
[2023-09-11 17:14:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:53] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -74)
[2023-09-11 17:14:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:14:58] main::dump_task: Executing dump task.
[2023-09-11 17:14:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7250, last seen: 17, last published: 17, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:14:59] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:14:59] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:15:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:12] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:13] main::dump_task: Executing dump task.
[2023-09-11 17:15:13] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7265, last seen: 14, last published: 14, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:15:17] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:15:17] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:15:18] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:24] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:27] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -72
[2023-09-11 17:15:27] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -72)
[2023-09-11 17:15:28] main::dump_task: Executing dump task.
[2023-09-11 17:15:28] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7280, last seen: 1, last published: 11, rssi: -72, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:15:30] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:34] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -80
[2023-09-11 17:15:34] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -80)
[2023-09-11 17:15:36] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:42] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:43] main::dump_task: Executing dump task.
[2023-09-11 17:15:43] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7295, last seen: 9, last published: 9, rssi: -80, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:15:47] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -71
[2023-09-11 17:15:47] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -71)
[2023-09-11 17:15:48] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:54] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:15:58] main::dump_task: Executing dump task.
[2023-09-11 17:15:58] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7310, last seen: 11, last published: 24, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:16:00] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:06] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:12] main::battery_task: Executing battery task.
[2023-09-11 17:16:13] main::get_battery_level: gatttool (mac: 7C:2F:80:AA:5E:6C, address type: 'public'): 'connect to 7C:2F:80:AA:5E:6C: Function not implemented (38)'
[2023-09-11 17:16:13] main::battery_task: Battery level of device 7C:2F:80:AA:5E:6C is unknown, skipping reading update...
[2023-09-11 17:16:13] main: Sending 'menu scan'...
[2023-09-11 17:16:13] main: Sending 'clear'...
[2023-09-11 17:16:13] main: Sending 'duplicate-data on'...
[2023-09-11 17:16:13] main: Sending 'transport le'...
[2023-09-11 17:16:13] main: Sending 'back'...
[2023-09-11 17:16:13] main: Sending 'scan on'...
[2023-09-11 17:16:13] main: Sending 'version'...
[2023-09-11 17:16:13] main: Scan started.
[2023-09-11 17:16:13] main::__ANON__: Found bluetoothctl version 5.66.
[2023-09-11 17:16:14] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -69)
[2023-09-11 17:16:14] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -69)
[2023-09-11 17:16:14] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:14] main::dump_task: Executing dump task.
[2023-09-11 17:16:14] Known devices (1):
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7326, last seen: 27, last published: 40, rssi: -71, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:16:14] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (RSSI: -57)
[2023-09-11 17:16:15] ### Match RSSI: [CHG] 7C:2F:80:98:B3:8E -> -77
[2023-09-11 17:16:15] ### Match (new): [CHG] 7C:2F:80:98:B3:8E (RSSI: -77)
[2023-09-11 17:16:16] ### Match RSSI: [CHG] 7C:2F:80:AA:5E:6C -> -75
[2023-09-11 17:16:16] ### Match: [CHG] 7C:2F:80:AA:5E:6C (RSSI: -75)
[2023-09-11 17:16:16] ### Match: [CHG] 7C:2F:80:AA:5E:6C (UUIDs: 0000180f-0000-1000-8000-00805f9b34fb)
[2023-09-11 17:16:17] main::query_task: Executing query task. Querying 7C:2F:80:98:B3:8E (count: 1, backoff: 2)...
[2023-09-11 17:16:17] +++ Device info: 7C:2F:80:98:B3:8E public
[2023-09-11 17:16:17] +++ Device name: 7C:2F:80:98:B3:8E 'Gigaset G-tag'
[2023-09-11 17:16:17] +++ Device battery 7C:2F:80:98:B3:8E
[2023-09-11 17:16:20] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:26] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:29] main::dump_task: Executing dump task.
[2023-09-11 17:16:29] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 14, last seen: 14, last published: 14, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7341, last seen: 13, last published: 13, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:16:32] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:38] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:40] ### Match (filtered): [CHG] 3C:5D:29:69:7F:B0 (RSSI: -82)
[2023-09-11 17:16:44] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:44] main::dump_task: Executing dump task.
[2023-09-11 17:16:44] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 29, last seen: 29, last published: 29, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7356, last seen: 28, last published: 28, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:16:50] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:56] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:16:59] main::dump_task: Executing dump task.
[2023-09-11 17:16:59] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 44, last seen: 44, last published: 44, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7371, last seen: 43, last published: 43, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:17:02] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:08] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:14] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:14] main::dump_task: Executing dump task.
[2023-09-11 17:17:14] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 59, last seen: 59, last published: 59, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7386, last seen: 58, last published: 58, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:17:20] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:26] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:29] main::dump_task: Executing dump task.
[2023-09-11 17:17:29] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 74, last seen: 74, last published: 74, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7401, last seen: 73, last published: 73, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:17:32] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:38] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:42] ### Match (filtered): [NEW] 3C:5D:29:69:7F:B0 (3C-5D-29-69-7F-B0)
[2023-09-11 17:17:44] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:44] main::dump_task: Executing dump task.
[2023-09-11 17:17:44] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 89, last seen: 89, last published: 89, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7416, last seen: 88, last published: 88, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:17:50] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:56] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:17:59] main::dump_task: Executing dump task.
[2023-09-11 17:17:59] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 104, last seen: 104, last published: 104, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7431, last seen: 103, last published: 103, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:18:02] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:08] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:14] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:14] main::dump_task: Executing dump task.
[2023-09-11 17:18:14] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 119, last seen: 119, last published: 119, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7446, last seen: 118, last published: 118, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:18:20] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:26] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:29] main::dump_task: Executing dump task.
[2023-09-11 17:18:29] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 134, last seen: 134, last published: 134, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7461, last seen: 133, last published: 133, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:18:32] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:38] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:44] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:44] main::dump_task: Executing dump task.
[2023-09-11 17:18:44] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 149, last seen: 149, last published: 149, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7476, last seen: 148, last published: 148, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:18:50] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:56] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:18:59] main::dump_task: Executing dump task.
[2023-09-11 17:18:59] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 164, last seen: 164, last published: 164, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7491, last seen: 163, last published: 163, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:19:02] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:02] ### Match (filtered): [NEW] 3C:5D:29:69:7F:B0 (3C-5D-29-69-7F-B0)
[2023-09-11 17:19:08] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:14] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:14] main::dump_task: Executing dump task.
[2023-09-11 17:19:14] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 179, last seen: 179, last published: 179, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7506, last seen: 178, last published: 178, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:19:18] ### Match (filtered): [NEW] FE:A1:46:00:00:0A (Armor X5)
[2023-09-11 17:19:20] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:26] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:29] main::dump_task: Executing dump task.
[2023-09-11 17:19:29] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 194, last seen: 194, last published: 194, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7521, last seen: 193, last published: 193, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:19:32] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:38] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:44] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:44] main::dump_task: Executing dump task.
[2023-09-11 17:19:44] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 209, last seen: 209, last published: 209, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7536, last seen: 208, last published: 208, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:19:50] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:56] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:19:59] main::dump_task: Executing dump task.
[2023-09-11 17:19:59] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 224, last seen: 224, last published: 224, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7551, last seen: 223, last published: 223, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:20:02] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:03] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -60)
[2023-09-11 17:20:03] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -74)
[2023-09-11 17:20:08] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:14] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:14] main::dump_task: Executing dump task.
[2023-09-11 17:20:14] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 239, last seen: 239, last published: 239, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7566, last seen: 238, last published: 238, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:20:20] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:26] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:29] main::dump_task: Executing dump task.
[2023-09-11 17:20:29] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 254, last seen: 254, last published: 254, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7581, last seen: 253, last published: 253, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:20:32] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:34] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
[2023-09-11 17:20:35] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -74)
[2023-09-11 17:20:38] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:44] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:44] main::dump_task: Executing dump task.
[2023-09-11 17:20:44] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 269, last seen: 269, last published: 269, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7596, last seen: 268, last published: 268, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:20:48] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
[2023-09-11 17:20:49] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -74)
[2023-09-11 17:20:50] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:56] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:20:59] main::dump_task: Executing dump task.
[2023-09-11 17:20:59] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 284, last seen: 284, last published: 284, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7611, last seen: 283, last published: 283, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:21:02] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:08] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:14] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:14] main::dump_task: Executing dump task.
[2023-09-11 17:21:14] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 1, name: Gigaset G-tag, address type: public, first seen: 299, last seen: 299, last published: 299, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 1, name: Gigaset G-tag, address type: public, first seen: 7626, last seen: 298, last published: 298, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:21:18] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (ManufacturerData Key: 0x004c)
[2023-09-11 17:21:18] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (ManufacturerData Value:)
[2023-09-11 17:21:19] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (ManufacturerData Key: 0x004c)
[2023-09-11 17:21:19] ### Match (filtered): [CHG] 54:D2:72:31:26:7A (ManufacturerData Value:)
[2023-09-11 17:21:20] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:20] main::evaluation_task: Device 7C:2F:80:98:B3:8E is now absent.
[2023-09-11 17:21:20] main::evaluation_task: Device 7C:2F:80:AA:5E:6C is now absent.
[2023-09-11 17:21:24] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (ManufacturerData Key: 0x004c)
[2023-09-11 17:21:24] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (ManufacturerData Value:)
[2023-09-11 17:21:25] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (ManufacturerData Key: 0x004c)
[2023-09-11 17:21:25] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (ManufacturerData Value:)
[2023-09-11 17:21:26] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:28] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -77)
[2023-09-11 17:21:28] ### Match (filtered): [CHG] 54:D2:72:FF:44:F4 (RSSI: -69)
[2023-09-11 17:21:29] main::dump_task: Executing dump task.
[2023-09-11 17:21:29] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 314, last seen: 314, last published: 314, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 7641, last seen: 313, last published: 313, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:21:32] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:38] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:40] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
[2023-09-11 17:21:40] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -74)
[2023-09-11 17:21:41] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -66)
[2023-09-11 17:21:41] ### Match (filtered): [CHG] 00:A0:50:78:57:93 (RSSI: -74)
[2023-09-11 17:21:43] ### Match (filtered): [NEW] 3C:5D:29:69:7F:B0 (3C-5D-29-69-7F-B0)
[2023-09-11 17:21:44] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:44] main::dump_task: Executing dump task.
[2023-09-11 17:21:44] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 329, last seen: 329, last published: 329, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 7656, last seen: 328, last published: 328, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:21:50] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:56] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:21:59] main::dump_task: Executing dump task.
[2023-09-11 17:21:59] Known devices (2):
mac: 7C:2F:80:98:B3:8E, present: 0, name: Gigaset G-tag, address type: public, first seen: 344, last seen: 344, last published: 344, rssi: -77, published rssi: -77, query count: %, battery service: 1, battery: unknown (never)
mac: 7C:2F:80:AA:5E:6C, present: 0, name: Gigaset G-tag, address type: public, first seen: 7671, last seen: 343, last published: 343, rssi: -75, published rssi: -72, query count: %, battery service: 1, battery: 85 (1694441771)
[2023-09-11 17:22:02] main::evaluation_task: Executing evaluation task.
[2023-09-11 17:22:08] main::evaluation_task: Executing evaluation task.
Hi!
Sowohl bei der Battery-Geschichte als auch bei dem Absent wären mehr Logs gut. Bei Absent sehe ich leider nur den Teil, bei dem keine Beacons reinkommen (d. h. ab 300s vor dem Fehlerzeitpunkt) nicht den Teil davor, bei dem mutmaßlich noch alles geklappt hat.
Die Fehlermeldung bei Battery hatte ich auch vereinzelt bekommen, teilweise auch, wenn der Tag zwar in der Nähe war, aber an der Grenze der Reichweite. Das wird sich aber vermutlich (s. o.) erholen, wenn ble2mqttd länger läuft. Es schaut jede Stunde, welche Geräte zur Abfrage anstehen und fragt sie ab. Das sind jene Geräte, die erreichbar sind, die Batterieabfrage unterstützen und deren letzter Batteriewert entweder unbekannt oder älter als 48h ist. Ergo: Es wird stündlich probiert, den Wert zu bekommen bis es klappt.
Patrick
Guten Morgen.
Ganzer Debug Log kann hier eingesehen werden (https://cloud.cooltux.net/s/nBqNs3p42833i9K).
Ist rund 42Mb groß. Ich konnte es aber ohne Probleme im vi öffnen.
Grüße
Hi!
Zitat von: CoolTux am 12 September 2023, 05:48:47Ganzer Debug Log kann hier eingesehen werden (https://cloud.cooltux.net/s/nBqNs3p42833i9K).
Ist rund 42Mb groß. Ich konnte es aber ohne Probleme im vi öffnen.
Ah, ein Log, sehr gut.
Zum Battery Level:
[2023-09-11 15:16:09] main::get_battery_level: gatttool (mac: 7C:2F:80:AA:5E:6C, address type: 'public'): 'connect to 7C:2F:80:AA:5E:6C: Function not implemented (38)'
[2023-09-11 16:16:11] main::get_battery_level: gatttool (mac: 7C:2F:80:AA:5E:6C, address type: 'public'): 'handle: 0x001b value: 55 '
[2023-09-11 17:16:13] main::get_battery_level: gatttool (mac: 7C:2F:80:AA:5E:6C, address type: 'public'): 'connect to 7C:2F:80:AA:5E:6C: Function not implemented (38)'
Wie Du siehst schlägt es immer noch fehl, aber da ble2mqttd es stündlich so lange probiert, bis es klappt, klappt es um 16:16:11. Um 17:16:13 wird es wieder probiert, was eigentlich nicht passieren kann, da der Wert zu diesem Zeitpunkt eine Stunde alt ist, was deutlich unter 48 Stunden liegt. Da aber an der Datei rumeditiert wurde, schiebe ich das mal darauf.
Zur Absent-Geschichte:
Das ist schon etwas spannender. Um 17:16 tauchen *8E und *6C das letzte Mal auf, danach nicht mehr. Andere Geräte wie *7A und *F4 kommen aber weiterhin, d. h. gatttool scannt erfolgreich. Meine Theorie wäre daher, dass die G-Tags nicht mehr senden, z. B. weil irgendetwas anderes mit ihnen redet. Ich hatte bei meinen Tags z. B. das Problem, dass sie nicht mehr bzw. deutlich seltener gesendet haben wenn sie mit der G-Tag-App verbunden waren. Das Problem könnte auch z. B. ein Batterieskript (auch auf einem anderen Host) sein. Die Batterieabfrage von ble2mqttd schließe ich erstmal aus, da nur einer der zwei Tags abgefragt wird. Auch könnte es sein, dass die Tags außer Reichweite des Hosts sind oder durch andere Funkphänomene nicht mehr dort ankommen.
Es gibt jetzt mehrere Möglichkeiten, das weiter einzugrenzen. Einerseits könnte man auf einer anderen Hardware parallel scannen und so verifizieren, dass die Tags nach wie vor senden. Andererseits, falls es wirklich konkurrierende (Batterie-)skripte gibt, könnte man mal in deren Log schauen, ob um ca. 17:16 etwas mit den Tags angestellt wurde.
Interessant ist übrigens auch, dass Deine G-Tags ohnehin nur selten senden. Meine senden etwa alle zwei Sekunden.
Patrick
Alles klar. Ich danke Dir erstmal für die Auswertung. Ich werde dann wohl mal schauen müssen was da los ist.
Kleiner Zwischenbericht. Bei mir scheint sich das Problem erledigt zu haben nachdem ich die Filter entfernt habe. Frag mich nicht ???
Zitat von: drhirn am 04 September 2023, 11:39:49Frage: Wäre es nicht sinnvoll, das present-Reading als retained zu schicken?
Ich hatte im Urlaub öfter mal das Problem, dass meine Residents plötzlich zuhause waren. Weiß aber noch nicht, warum genau das passiert ist.
Also. Das passiert offenbar, wenn niemand zuhause ist, FHEM neu startet und sich eines der ble2mqtt-Devices aufgehängt hat (bzw. die Verbindung zum WLAN verloren). Aktueller Status: Ich bin im Büro aber laut FHEM auch zuhause.
setstate ble2mqttDevice 2023-10-02 12:49:39 presence present
setstate ble2mqttDevice 2023-09-17 12:30:53 presence_bad present
setstate ble2mqttDevice 2023-09-17 12:30:58 presence_kueche present
setstate ble2mqttDevice 2023-10-02 12:49:39 presence_vorraum absent
setstate ble2mqttDevice 2023-10-02 12:49:39 presence_wohnzimmer absent
setstate ble2mqttDevice 2023-10-02 12:49:39 room bad
Ich war wohl am 17.09. umd 12:30 zuhause. Danach haben zwei Devices nicht mehr reagiert, stehen aber auf "present". Ich habe jetzt gerade eines der beiden neu gestartet. Bleibt aber auf present, obwohl ich nicht zuhause bin. Ist klar, es empfängt ja auch keine Daten. Das Reading kann also gar nicht aktualisiert werden.
Das FHEM-Device sieht so aus:
define ble2mqttDevice MQTT2_DEVICE FHEM
attr ble2mqttDevice devicetopic ble2mqtt/.*/7C_2F_80_AF_1A_F5
attr ble2mqttDevice event-on-change-reading .*
attr ble2mqttDevice readingList FHEM:ble2mqtt/wohnzimmer/state:.* state\
FHEM:ble2mqtt/wohnzimmer/heartbeat:.* heartbeat\
$DEVICETOPIC/rssi:.* {my $room=(split m{[/]}x,$TOPIC)[1];;;; my $roomMax=$room;;;; my $rssiMax=$EVENT;;;; my @readings = grep { $_ =~ m{\Arssi_(?!$room).*}x } keys %{$defs{"$NAME"}->{READINGS}};;;; for (@readings) {my $rssiTmp=ReadingsVal($NAME,$_,'-100');;;; my $roomTmp=(split m{[_]}x,$_)[1];;;; if(($rssiMax gt $rssiTmp)&&(ReadingsVal($NAME,"presence_".$roomTmp,'absent') eq 'present')) {$rssiMax=$rssiTmp;;;;$roomMax=$roomTmp}};;;; {rssi=>$rssiMax,room=>$roomMax,"rssi_$room"=>$EVENT}}\
$DEVICETOPIC/lastseen:.* {lastseen=>strftime "%Y-%m-%d %H:%M:%S", localtime($EVENT)}\
$DEVICETOPIC/present:.* {my $roomAct=(split m{[/]}x,$TOPIC)[1];;;; my $rssi=ReadingsVal($NAME,"rssi_".$roomAct,'-100');;;;;;;;my $presenceAct=$EVENT?'present':'absent';;;; my $presenceTotal=$presenceAct;;;; my $room=$EVENT ? $roomAct:'';;;; my @readings = grep { $_ =~ m{\Apresence_(?!$roomAct).*}x } keys %{$defs{$NAME}->{READINGS}};;;; for (@readings) {if(ReadingsVal($NAME,$_,'absent') eq 'present') {my $roomTmp=(split m{[_]}x,$_)[1];;;; my $rssiTmp=ReadingsVal($NAME,"rssi_".$roomTmp,'-100');;;;if($rssi gt $rssiTmp){$room=$roomTmp;;;;$presenceTotal='present';;;; $rssi=$rssiTmp}}};;;; {"presence_$roomAct"=>$presenceAct, room=>$room, presence=>$presenceTotal, state=>$presenceTotal}}\
ble2mqttd/wohnzimmer:.* state
Retained Messages helfen da auch nicht, sind sogar kontraproduktiv im täglichen Einsatz.
Wie könnten wir das lösen? Irgendwie muss ein Event ausgelöst werden. Eventuell von ble2mqtt, wenn ein MAC-Filter gesetzt ist?
Hi!
Zitat von: drhirn am 02 Oktober 2023, 15:18:28Wie könnten wir das lösen? Irgendwie muss ein Event ausgelöst werden. Eventuell von ble2mqtt, wenn ein MAC-Filter gesetzt ist?
Ich habe die Fehlerbeschreibung jetzt mehrfach gelesen und leider nicht verstanden. Wenn sich aber ble2mqtt-Instanzen (nicht Devices) aufhängen bzw. deren Netzwerk nicht steht, solltest Du das zuerst angehen. Du könntest alternativ statt des Present-Topics lastseen auswerten und daraus den Präsenzstatus ableiten. Aber dann bekommst Du bei defekten ble2mqtt-Instanzen fehlerhafte Abwesenheiten (statt wie jetzt fehlerhafte Anwesenheiten). Zusätzlich könntest Du durch Auswertung des ble2mqtt-state-topics noch einen Alarm auslösen wenn eine ble2mqtt-Instanz auf Grund von Netzwerkproblemen wieder an der Funktion gehindert wird.
Patrick
Dürfte ich fragen was hier als Empfänger fungiert?
Ich hab was ähnliches ohne dieses Modul am laufen über Tasmota auf 3 ESP32 im Haus verteilt.
Hi!
Zitat von: DasQ am 04 Oktober 2023, 16:35:02Dürfte ich fragen was hier als Empfänger fungiert?
Ein Linux-Rechner, z. B. Raspberry Pi mit Bluetooth-Modul.
Zitat von: DasQ am 04 Oktober 2023, 16:35:02Ich hab was ähnliches ohne dieses Modul am laufen über Tasmota auf 3 ESP32 im Haus verteilt.
Dann hast Du die schönere Lösung :)
Patrick
Sorry fürs OT, aber schöner verbitte ich mir :)) (da fällt mir gerade wieder ein ich sollte dringend ne 12v Leitung durchs Haus legen und die Dinger unterputz verstecken)🫣
Btw hier der Thread von mir verlinkt (https://forum.fhem.de/index.php?topic=132230.msg1264003#msg1264003) wie ich das gemacht hab. Wenn fragen nur zu. Läuft seither bis auf reichweiten Problemen perfekt. Gibt ein zwei Winkel die sind nicht perfekt ausgeleuchtet. Aber da wollte ich noch ein passendes Tasmota für meine rolladen Sonoff DualR3 ESP32 basteln.
Hy mit etwas Hilfe habe ich ble2mqtt nun am laufen aber er findet keine Bluetooth Geräte.
pi@FTUI3:~ $ sudo systemctl status ble2mqttd
● ble2mqttd.service - ble2mqttd
Loaded: loaded (/etc/systemd/system/ble2mqttd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-11-05 13:03:10 CET; 2min 9s ago
Main PID: 433 (ble2mqttd)
Tasks: 2 (limit: 868)
CPU: 1.914s
CGroup: /system.slice/ble2mqttd.service
├─ 433 /usr/bin/perl /usr/local/bin/ble2mqttd --mqttserver 192.168.178.110:1883 --mqtttopic ble2mqtt/Tab --mac (11:22:33:44:55>
└─1053 bluetoothctl
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: main::sanity_check: md5 digest of '/usr/local/bin/ble2mqttd' is: '1146c98e6c1ab082c580f89eb5bdbaa5'.
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: main::sanity_check: bluetoothctl found at '/usr/bin/bluetoothctl'.
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: main::sanity_check: gatttool found at '/usr/bin/gatttool'.
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: main::mqtt_check_reconnect: (Re-)connect detected, handling...
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: /usr/local/bin/ble2mqttd: connect: Network is unreachable
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: main: Scan started.
Nov 05 13:03:12 FTUI3 ble2mqttd[433]: main::__ANON__: Found bluetoothctl version 5.55.
Nov 05 13:04:12 FTUI3 ble2mqttd[433]: main::mqtt_check_reconnect: (Re-)connect detected, handling...
Nov 05 13:05:12 FTUI3 ble2mqttd[433]: main: Scan started.
Nov 05 13:05:12 FTUI3 ble2mqttd[433]: main::__ANON__: Found bluetoothctl version 5.55.
defmod MQTT2_ble2mqttd_FTUI3 MQTT2_DEVICE ble2mqttd_FTUI3
attr MQTT2_ble2mqttd_FTUI3 readingList ble2mqttd_FTUI3:ble2mqtt/Tab/heartbeat:.* heartbeat\
ble2mqttd_FTUI3:ble2mqtt/Tab/state:.* state
attr MQTT2_ble2mqttd_FTUI3 room MQTT2_DEVICE
setstate MQTT2_ble2mqttd_FTUI3 connected
setstate MQTT2_ble2mqttd_FTUI3 2023-11-05 09:47:27 IODev MQTT2_FHEM_Server
setstate MQTT2_ble2mqttd_FTUI3 2023-11-05 13:07:12 heartbeat 1699186032
setstate MQTT2_ble2mqttd_FTUI3 2023-11-05 13:04:12 state connected
pi@FTUI3:~ $ sudo hcitool lescan
Set scan parameters failed: Input/output error
lepresenced läuft nicht mehr
pi@FTUI3:~ $ sudo service lepresenced status
Unit lepresenced.service could not be found.
komisch ist die mac vom internet Bluetooth
pi@FTUI3:~ $ hcitool dev
Devices:
hci0 AA:AA:AA:AA:AA:AA
bin mit meinem Wissensstand am ende ok der ist auch nicht sehr ausgeprägt was Linux angeht.
Hast du irgend ein Tool, mit dem du den MQTT-Verkehr mitlesen kannst? Den hier z.B.: http://mqtt-explorer.com/.
Und das hier ist irritierend:
/usr/local/bin/ble2mqttd: connect: Network is unreachable
Sicher, dass der MQTT-Broker erreichbar ist?
Hast du FHEM und ble2mqtt auf einem Rechner?
Hy nein FHEM und ble2mqtt sind nicht auf dem gleichen gerät installiert.
MQTTExplorer habe ich am laufen aber da kommt auch nur
Tab
heartbeat = 1699187543
state = connected
an
mqtt auf dem FHEM Server ist erreichbar
mein eintrag in der /etc/systemd/system/ble2mqttd.service
[Unit]
Description=ble2mqttd
After=bluetooth.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/ble2mqttd --mqttserver 192.168.178.110:1883 --mqtttopic ble2mqtt/Tab --mac '(11:22:33:44:55:66|77:88:99:00:AA:BB)'>
[Install]
WantedBy=multi-user.target
habe schon alles was mit Bluetooth am pi zu tun hat runter geworfen und neu installiert ohne Erfolg
pi@FTUI3:~ $ sudo systemctl status bluetooth.service
● bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-11-05 13:24:21 CET; 1min 34s ago
Docs: man:bluetoothd(8)
Main PID: 406 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 868)
CPU: 233ms
CGroup: /system.slice/bluetooth.service
└─406 /usr/libexec/bluetooth/bluetoothd
Nov 05 13:24:20 FTUI3 systemd[1]: Starting Bluetooth service...
Nov 05 13:24:20 FTUI3 bluetoothd[406]: Bluetooth daemon 5.55
Nov 05 13:24:21 FTUI3 systemd[1]: Started Bluetooth service.
Nov 05 13:24:21 FTUI3 bluetoothd[406]: Starting SDP server
Nov 05 13:24:21 FTUI3 bluetoothd[406]: Bluetooth management interface 1.22 initialized
Nov 05 13:24:21 FTUI3 bluetoothd[406]: profiles/sap/server.c:sap_server_register() Sap driver initialization failed.
Nov 05 13:24:21 FTUI3 bluetoothd[406]: sap-server: Operation not permitted (1)
Nov 05 13:24:21 FTUI3 bluetoothd[406]: Failed to set privacy: Rejected (0x0b)
ob die Fehler bei mqtt wichtig sind ist jetzt ne andere frage
PS: was mir noch einfällt als ich
sudo cpan CPAN::DistnameInfo
sudo cpan Net::MQTT::Simple
per ssh ausgeführt hatte ist die Verbindung abgebrochen, habe es dann direkt im Terminal am Pi ausgeführt.
Ok, MQTT ist erreichbar.
Mach mal
sudo hciconfig hci0 down && sudo hciconfig hci0 up
Und eventuell
sudo systemctl restart ble2mqttd.service
Hy keine Veränderung.
gebe ich bluetoothctl ein zeigt er mir alles mögliche an Geräten an
genauso bei hcitool lescan
pi@FTUI3:~ $ sudo systemctl stop ble2mqttd.service
pi@FTUI3:~ $ sudo hcitool lescan
LE Scan ...
34:7E:A7:69:38:4C (unknown)
18:21:ED:6E:E8:D0 (unknown)
7C:2F:80:96:3D:CE (unknown)
7C:2F:80:AD:C7:ED (unknown)
7C:2F:80:AD:C7:ED Gigaset G-tag
7C:2F:80:96:3D:CE Gigaset G-tag
00:1A:22:09:0F:34 (unknown)
00:1A:22:05:27:E5 (unknown)
00:1A:22:09:0F:34 CC-RT-BLE
pi@FTUI3:~ $ sudo su
root@FTUI3:/home/pi# bluetoothctl
Agent registered
[CHG] Controller B8:27:EB:5C:3E:A7 Pairable: yes
[bluetooth]# scan on
Discovery started
[CHG] Controller B8:27:EB:5C:3E:A7 Discovering: yes
[NEW] Device 7C:2F:80:AD:C7:ED Gigaset G-tag
[NEW] Device 00:1A:22:05:27:E5 CC-RT-BLE
[NEW] Device 7C:2F:80:96:3D:CE Gigaset G-tag
[NEW] Device 00:1A:22:09:0F:34 CC-RT-BLE
PS: Stope ich ble2mqtt und starte lepresenced werden die G-Tag´s gefunden.
PPS: starte ich per Hand
/usr/local/bin/ble2mqttd --mqttserver 192.168.178.110:1883 --mqtttopic ble2mqtt/Tab
bekomme ich die mac Adressen in FHEM
dann muss ich noch mal suchen gehen
Nachtrag: hab jetzt
/usr/local/bin/ble2mqttd --mqttserver 192.168.178.110:1883 --mqtttopic ble2mqtt/Tab
eigetragen und es läuft.
ExecStart=/usr/local/bin/ble2mqttd --mqttserver 192.168.178.110:1883 --mqtttopic ble2mqtt/Tab --mac '(11:22:33:44:55:66|77:88:99:00:AA:BB)'>
Das war vorher drin? Da ist natürlich das Größer-Zeichen am Schluss falsch. Habe ich übersehen bzw. geglaubt, das ist beim Kopieren passiert.
Hy nein das > ist ein Kopier Fehler aus meinem Terminalfenster.
ich muss mal schauen was der Rest bedeutet und dann teste ich mich mal durch
Einfach /usr/local/bin/ble2mqttd ausführen. Dann bekommst du eine Liste mit den möglichen Optionen.
--mqttuser <username> --mqttpass <password>
Das war das problem, wie schon immer sitzt zu 90% der Fehler vorm PC 8)
Haha. Freut mich, dass du den Fehler gefunden hast.
@Gasmast3r
War meine Doku brauchbar? Dann würde ich das irgendwie im Wiki hinterlegen.
Hy ja ich bin da super mit Klar gekommen, eventuell als Tipp für Leute die nicht so stark in der Materie sind, die Info das Benutzername und Password rausgenommen werden muss wenn nicht gebraucht.
Ist im Wiki: https://wiki.fhem.de/wiki/Ble2mqtt
Hy hab mir noch nen Alten Pi Zero nur für BLE2MQTT aufgestellt da ist mir aufgefallen wenn ich
--batterymaxage 0
eintrage ich keine BLE werte bekomme selbst MQTT-Explorer zeigt mir dann nix an außer
heartbeat = xxxxxxxxxxxx
und ich habe das Gefühl das er battery nicht richtig dem devicetopic zuordnet
Zitat von: Gasmast3r am 11 November 2023, 19:25:29Hy hab mir noch nen Alten Pi Zero nur für BLE2MQTT aufgestellt da ist mir aufgefallen wenn ich
--batterymaxage 0
eintrage ich keine BLE werte bekomme selbst MQTT-Explorer zeigt mir dann nix an außer...
Erstelle doch mal bitte ein Log mit LOG_DEBUG. 5 Minuten sollten reichen
Patrick
Hy habe den Grund gefunden
--batterymaxage 0
darf nicht nach
--mac '(11:22:33:44:55:66|77:88:99:00:AA:BB)'>
stehen, wenn es davor steht klappt alles
Mein Pi 3 A+ mit Kiosk Modus (FTUI3) friert nach ein zwei tagen ein, und das erst seit dem ich BLE2MQTT drauf habe.
Ist das ">" am Ende wirklich bei Dir drin? oder ein copy&paste Fehler??
Friert wirklich der Komplette Pi ein? Was sagt ping etc.? Und .. was steht in de üblichen Verdächtigen (kern.log/syslog)
Hy > ist ein Kopierfehler muss dabei mal mehr acht drauf geben O:-)
er friert ein oder ist so überlastetet das ich kein SSH zugriff bekomme und die Uhr im FTUI stehenbleibt.
Der Pi hat eine Grafische Oberfläche?
Und was steht zu der Zeit im kern.log/syslog?
ZitatDer Pi hat eine Grafische Oberfläche?
er läuft mit Raspbian Lite im Kiosk Modus (Midori Browser) also keine direkte Grafische Oberfläche.
laut Log lief er weiter, kann ich hier aber nicht einfügen, bekomme eine fehlermeldung
Was sagt syslog/kern.log?
Hier mal als Anhang mir sagt das alles nix
Nov 12 16:22:14 FTUI3 kernel: [ 3330.408408] w1_master_driver w1_bus_master1: Attaching one wire slave 00.fc0000000000 crc d7
Nov 12 16:22:40 FTUI3 kernel: [ 0.000000] Linux version 6.1.58-v7+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1693 SMP Tue Oct 24 12:13:35 BST 2023
Hier gab es eine Donwtime von max. 26 sec.
Nov 12 15:18:20 FTUI3 kernel: [20883.928417] w1_master_driver w1_bus_master1: Family 0 for 00.708000000000.d7 is not registered.
Nov 12 15:16:53 FTUI3 kernel: [ 0.000000] Booting Linux on physical CPU 0x0
Hier weiß ich es nicht, da es einen negativen Zeitsprung gab: 18:20->16:53 .. wie stellst Du die Uhr?
Nov 12 09:29:49 FTUI3 kernel: [ 703.302781] w1_master_driver w1_bus_master1: Family 0 for 00.b00000000000.32 is not registered.
Nov 12 09:30:17 FTUI3 kernel: [ 0.000000] Booting Linux on physical CPU 0x0
Hier wieder nur von 28 Sec. Wie hast Du geprüft, ob der Pi überhaupt noch läuft? Ich glaube, Du hast den laufenden pi einfach "abgeschaltet". ist übrigens eine gute Methode, die SD in den Himmel zu schicken (Sorry es so direkt sagen zu müssen)
Habe jetzt nicht weiter geschaut ...
- Da es am 12 Nov also mindestens 3 reboots gab, könntest Du gucken, wie sich innerhalb 1h die Cpu und Mem-Werte ändern?
- An andsere: Ist es normal, das I2C so häufig Meldungen ins kern.log schreibt? Mir sieht es nicht "gesund" aus ...
ZitatHier weiß ich es nicht, da es einen negativen Zeitsprung gab: 18:20->16:53 .. wie stellst Du die Uhr?
per FHEM denke ich oder System Vorgabe
ZitatHier wieder nur von 28 Sec. Wie hast Du geprüft, ob der Pi überhaupt noch läuft? Ich glaube, Du hast den laufenden pi einfach "abgeschaltet". ist übrigens eine gute Methode, die SD in den Himmel zu schicken (Sorry es so direkt sagen zu müssen)
keine Touch Eingabe möglich, keine SSH Verbindung möglich und per PasPi Check app auch kein Zugriff.
um 05:25 blieb die uhr stehen bis ich ihn um ca 09:00 Uhr vom Strom genommen habe.
Gegen 17:30 habe ich BLE2MQTT als Service deaktiviert und habe jetzt 18:08 eine Auslastung von 22%, Arbeitsspeicher 87% sind ja nur 512MB und Auslagerung Datei 47% bei 45,1°C@1400MHz
Arbeitsspeicher 87% sind ja nur 512MB und Auslagerung Datei 47%
Ich vermute, Dir geht der Speicher aus. Grafik braucht viel Speicher .... nur finde ich kein oem killer
Und bist Du Dir sich mit "Uhr per Fhem"? Habe eben im syslog etwas von ntp gesehen ..
Ich glaube jetzt auch nicht, das der Pi einfach stehen bleibt, er schreibt schließlich fleißig Errormeldungen, er ist nur einffach nicht erreichbar.
Da ich hinten angefangen habe, sind mir folgende Meldungen um 5:XX entgangen (hier nur ein Beispiel von vielen):
Nov 12 05:46:32 FTUI3 kernel: [37968.050247] INFO: task kworker/2:3:9913 blocked for more than 122 seconds.
Nov 12 05:46:33 FTUI3 kernel: [37968.050283] Tainted: G C 6.1.58-v7+ #1693
Nov 12 05:46:33 FTUI3 kernel: [37968.050292] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Nov 12 05:46:33 FTUI3 kernel: [37968.050301] task:kworker/2:3 state:D stack:0 pid:9913 ppid:2 flags:0x00000000
Nov 12 05:46:33 FTUI3 kernel: [37968.050324] Workqueue: events_freezable mmc_rescan
Nov 12 05:46:33 FTUI3 kernel: [37968.050359] __schedule from schedule+0x58/0xf0
Nov 12 05:46:33 FTUI3 kernel: [37968.050392] schedule from __mmc_claim_host+0xc0/0x208
Nov 12 05:46:33 FTUI3 kernel: [37968.050417] __mmc_claim_host from mmc_sd_detect+0x1c/0x74
Nov 12 05:46:33 FTUI3 kernel: [37968.050437] mmc_sd_detect from mmc_rescan+0xa4/0x2e0
Nov 12 05:46:33 FTUI3 kernel: [37968.050458] mmc_rescan from process_one_work+0x244/0x508
Nov 12 05:46:33 FTUI3 kernel: [37968.050484] process_one_work from worker_thread+0x48/0x558
Nov 12 05:46:33 FTUI3 kernel: [37968.050508] worker_thread from kthread+0xe4/0x100
Nov 12 05:46:33 FTUI3 kernel: [37968.050530] kthread from ret_from_fork+0x14/0x30
Nov 12 05:46:33 FTUI3 kernel: [37968.050548] Exception stack(0x9ee25fb0 to 0x9ee25ff8)
Nov 12 05:46:33 FTUI3 kernel: [37968.050560] 5fa0: 00000000 00000000 00000000 00000000
Nov 12 05:46:33 FTUI3 kernel: [37968.050573] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
Nov 12 05:46:33 FTUI3 kernel: [37968.050584] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000
Könntest Du jetzt schon ein SDCard-Problem haben? Nur .. er schreibt schließlich weiter Logs .... sehr komisch ... könntest DU mir bitte mehr von der Hardware des Systems sagen?
Hy Ja ein
PI3 A+
10,1 Zoll Touch Display
per USB und HDMI
auf dem läuft Raspian 11 Lite im Kioskmodus mit Midori für FTUI 3
GPU mem 64MB
angebunden per Wlan
SD weis ich grad nicht
mehr läuft darauf nicht mehr.
BLE2MQTT läuft nun auf einem Zero PI der ersten gen mit einem Red Bear IoT pHAT for Raspberry Pi - WiFi + BTLE und da auch nur das bei 10% Auslastung.
kann sein das Kiosk und BLE2MQTT zu viel für den A+ sind.
Kiosk und lepresenced-0.93-1 liefen vorher Jahre zusammen ohne solche Probleme außer lepresenced-0.93-1 selber
Wie schon erwähnt: Ich würde auf Speicher tippen. Wenn er jetzt schon 45% Swap verbraucht ...
Hy bekommt man
sudo cpan CPAN::DistnameInfo
sudo cpan Net::MQTT::Simple
auch wieder deinstalliert ??
Google hat mir da nicht wirklich geholfen
In dem du cpanminus installierst ;).
cpan App::cpanminus
cpanm --uninstall Module::Name
Aber wozu? Stören ja nicht und sind winzig.
Hab mir ein Neus kiosk System mit dem Pi 4 2Gb erstellt Ram sollte da kein Problem mehr werden. DANKE
ein freundliches "Hallo" kurz vor dem Jahreswechsel,
ich habe alle meine Rasberries auf netzwerkboot umgestellt. Als Server dient dazu ein Debian 11, welches als VM auf einem Proxmox Server läuft. Das funktioniert bisher prima.
Nun ist mir jedoch aufgefallen, dass meine GTag Erkennung nicht mehr läuft >:(
Nach diversen Recherchen habe ich herausgefunden, dass sich der ble2mqttd daemon nicht mehr starten lässt. Im debug modus sieht man die Fehlermeldung: ... ble2mqttd is already running. Tatsächlich lief der jedoch nicht.
Ich habe dann mal die Zeile
error_exit(3, "ERROR: $ME is already running. Exiting.") if (!flock DATA, LOCK_EX | LOCK_NB);
auskommentiert und siehe da: alles läuft wie erwartet.
Um ehrlich zu sein habe ich keine Ahnung, wofür DATA, LOCK_EX bzw. LOCK_NB benötigt wird. Denn ganz ohne Grund wird diese Abfrage ja nicht programmiert worden sein.
Möglicherweise kann der Entwickler hier ja erhellendes beitragen, eventuell ja sogar eine Version, die diesem Umstand berücksichtigt.
Euch allen jetzt einen guten Start ins Neue Jahr,
Gruß Wolfgang
Ich benutze seit kurzem ble2mqttd. Es funktioniert bei mir problemlos.
Die Datei ist ein bisschen verstekt in #149 zu finden, auch im FHEM-Wiki gibt es keinen Hinweis.
Könnte die aktuelle ble2mqtt nicht ins contrib Verzeichnis?
Denn mit der stärkeren Verbreitung von Bookworm wird die Nachfrage sicherlich größer, wenn man sich die Zahl der Definitionen an sieht.
lan-bluetooth 296
lan-lepresenced 211
Ja, hab ich auch schon mal vorgeschlagen. Die Antwort von PatrickR war: https://forum.fhem.de/index.php?msg=1286119
Ich kann aber in der Zwischenzeit mal einen Hinweis im Wiki unterbringen.
Ein Hinweis im Wiki kann schnell veraltet sein, wenn es eine neue Version in einem anderen Beitrag gibt. Da wäre ein festes Verzeichnis in contrib schöner.
Vielleicht contrib/BluetoothLowEnergy mit einer readme.txt, die auf den Thread und das Wiki verweist.
Oder in das in dem verlinkten Beitrag erwähnte GitHub/Lab, falls es existiert.
@DrHirn, Ellert:
Ihr habt ja alle Recht :)
Habe ble2mqttd 0.15 jetzt direkt unter contrib eingescheckt, da ich aktuell nicht mehr als eine Datei benötige. Debian-Pakete werden daran scheitern, dass es einzelne Perl-Module nicht als Debian-Pakete und damit als potenzielle Dependencys gibt.
Patrick
Super! Hab die Wiki-Seite dementsprechend geändert.