Autor Thema: lepresenced - hciconfig hcitool gatttool deprecated  (Gelesen 6151 mal)

Offline gestein

  • Hero Member
  • *****
  • Beiträge: 1238
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #60 am: 05 November 2022, 13:56:36 »
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


Offline PatrickR

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 965
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #61 am: 06 November 2022, 00:52:04 »
Hi!

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)).

Letzter Wunsch an den Weihnachtsmann:
Wäre es denn auch noch möglich, den Batterie-Status abzufragen?
Sehe ich mir bei Gelegenheit an.

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Offline gestein

  • Hero Member
  • *****
  • Beiträge: 1238
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #62 am: 06 November 2022, 07:19:24 »
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:.* LWTWird das zyklisch geschickt?
Das muss ich mir heute genauer anschauen.

Danke auch schon mal auch wegen dem Batterie-Status.

Lg, Gerhard

Offline PatrickR

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 965
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #63 am: 06 November 2022, 16:33:13 »
Hi!
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.

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
« Letzte Änderung: 07 November 2022, 21:13:28 von PatrickR »
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Offline LutzG

  • New Member
  • *
  • Beiträge: 39
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #64 am: 07 November 2022, 01:37:45 »
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

Mir sind da 2 Sachen aufgefallen 1.:
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:
  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.

Offline PatrickR

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 965
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #65 am: 07 November 2022, 21:42:36 »
Mahlzeit!

Neue Version 0.07 mit Batterie (wird alle 6 Stunden abgefragt).

Neue Topics:
battery
batterytime

Patrick
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Offline gestein

  • Hero Member
  • *****
  • Beiträge: 1238
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #66 am: 07 November 2022, 22:18:53 »
Hallo Patrick,

Super. Das werde ich morgen gleich testen.

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


Offline PatrickR

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 965
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #67 am: 07 November 2022, 23:06:34 »
$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
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Offline gestein

  • Hero Member
  • *****
  • Beiträge: 1238
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #68 am: 08 November 2022, 08:10:57 »
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

Offline PatrickR

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 965
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #69 am: 08 November 2022, 09:57:03 »
Hallo Gerhard,
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.

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
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

Offline gestein

  • Hero Member
  • *****
  • Beiträge: 1238
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #70 am: 08 November 2022, 16:37:05 »
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

Offline Stelaku

  • Full Member
  • ***
  • Beiträge: 211
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #71 am: 08 November 2022, 16:54:21 »
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
« Letzte Änderung: 08 November 2022, 17:05:37 von Stelaku »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline gestein

  • Hero Member
  • *****
  • Beiträge: 1238
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #72 am: 08 November 2022, 17:08:51 »
Hallo Stephan,

dann wäre eigentlich der Wert, den "batterytime" hat, und der Zeitstempel, den das Reading battery trägt, gleich. Oder?

lg, Gerhard
« Letzte Änderung: 08 November 2022, 20:10:13 von gestein »

Offline PatrickR

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 965
Antw:lepresenced - hciconfig hcitool gatttool deprecated
« Antwort #73 am: 08 November 2022, 21:30:32 »
Guten Abend!

battery_Kinderzimmer unknown 2022-11-08 14:07:28Wie 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.

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
lepresenced - Tracking von Bluetooth-LE-Tags (Gigaset G-Tag) mittels PRESENCE

"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning." - Rich Cook

 

decade-submarginal