OpenMQTTGateway support thread - im Speziellen: BT/BTLE

Begonnen von Beta-User, 21 Februar 2022, 17:13:56

Vorheriges Thema - Nächstes Thema

DigiH

Zitat von: Beta-User am 14 März 2022, 13:13:47
- an sich wäre ich nach der Beschreibung in https://docs.openmqttgateway.com/use/ble.html#setting-a-white-or-black-list davon ausgegangen, dass die Listen immer komplett zu schreiben sind, so dass der Neustart an sich gar nicht erforderlich wäre. Das scheint demnach nicht der Fall zu sein?

(Ich muss wohl auch mit diesen features etwas spielen...).

Zum hinzufügen von MAC Adressen schon, aber beim entfernen von MAC Adressen funktioniert das nicht - siehe unten.

Zitat von: Beta-User am 14 März 2022, 11:54:24
Meine Irritation bezog sich darauf, dass  white- und blacklist nicht auf dem ESP direkt gespeichert werden, bis was neues kommt...

Werden nicht auf dem ESP32 direkt gespeichert, da ein Neustart momentan auch die einzige Möglichkeit ist eine white/black-list ganz zu löschen/entfernen.

Zum ganzen white/black-list Thema auch mal mein OMG Forum Post, wo ich ähnliche Fragen und Überlegungen bei meinem OMG Einstieg hatte

https://community.openmqttgateway.com/t/query-about-white-list-black-list-specifically-how-to-remove-devices-from-the-lists-or-to-fully-clear-the-lists/1151

DigiH

#91
Zitat von: rudolfkoenig am 14 März 2022, 13:18:14
Was ist damit gemeint? Hast Du ein Link fuer mich?

Link jetzt direkt nicht, ich benutze Mosquitto, der verschiedene Konfigurationsmöglichkeiten für die mosquitto.db bietet. Auch bei 50+ Messages die Minute und den kurzen unerwünschten Geräteerkennung bei Neustarts steigt diese Datenbank nie groß, oder nimmt auch mal bisschen ab. Daher nehme ich stark an, dass alle QoS0 Nachrichten (was auch alle der unerwünschten Neustart-Erkennungen sein sollten) überhaupt nicht in die Datenbank geschrieben werden.

Kurz Link zur conf gesucht ...
https://mosquitto.org/man/mosquitto-conf-5.html

Wie angenommen steh da
If true, mosquitto will count the number of subscription changes, retained messages received and queued messages and if the total exceeds autosave_interval then the in-memory database will be saved to disk.

Also nur retained und queued Nachrichten, wobei die queued (nicht bei QoS0) dann auch wieder gelöscht werden nach erfolgter Bestätigung.

Da mein Backend aber nie etwas von unerwünschten Geräten mitbekommt, da ich dort nur erwünschte Topics abonniere, sind meine White-Lists für die oben genannte Funktionalität da, um den MQTT Broker nicht zu fluten und einen sauberen Überblick zu haben wenn ich den Broker Output direkt inspiziere.

Beta-User

OT @Rudi: interessant, was da zum Thema "persistence" in der manpage zu finden ist. Mir war z.B. nicht bewußt, dass mosquitto per default gar nichts speichert...

Vielleicht sollte man sowas wie einen "clear_retained"-setter in M2S einbauen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rudolfkoenig

ZitatVielleicht sollte man sowas wie einen "clear_retained"-setter in M2S einbauen?
Ich habe ein hideRetain Attribut und ein clearRetain set-Befehl eingebaut.

Beta-User

Zitat von: rudolfkoenig am 16 März 2022, 16:52:34
Ich habe ein hideRetain Attribut und ein clearRetain set-Befehl eingebaut.
(Stellvertretend): DANKE!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: DeeSPe am 06 März 2022, 16:45:48
Ich benutze ja den Dauerscanner (esp32dev-ble-cont), nach einem Abfragen der Batteriewerte wird allerdings nicht mehr gescannt. Erst "set ... publish home/OpenMQTTGateway_ESP32_BLE_C/commands/MQTTtoBT/config '{"interval":1}'" aktiviert das Scannen wieder.

Schade, dass da keine Antwort kam. Hat inzwischen zufällig jemand eine Erklärung für das Verhalten und eine Lösung, wie der wieder automatisch anfängt zu scannen?

Beta-User

Zitat von: drhirn am 04 Juli 2022, 14:45:47
Schade, dass da keine Antwort kam. Hat inzwischen zufällig jemand eine Erklärung für das Verhalten und eine Lösung, wie der wieder automatisch anfängt zu scannen?
Nun ja, die dortige Frage meine ich beantwortet zu haben (bzw. die automatisch erkennbare Kennung wäre "iTAG").

Wenn der Weiterscannen soll, wäre es vermutlich am einfachsten, ein sleep zu bauen, das entweder auf die Rückgabe des Batteriewerts lauscht und dann den config-Befehl raushaut, wenn der kommt, oder eben einfach eine entsprechende Zeit zu warten.
Alternative wäre, ein periodicCmd zu basteln, mit dem das "immer mal wieder" ausgeführt wird.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Oder ein notify, dass auf das Batterie-Reading hört. Danke für den Denkanstoß! Schöner wär's natürlich, wenn der automatisch weitermachen würde ;)

Beta-User

Zitat von: drhirn am 04 Juli 2022, 15:32:17
Oder ein notify, dass auf das Batterie-Reading hört. Danke für den Denkanstoß! Schöner wär's natürlich, wenn der automatisch weitermachen würde ;)
Na ja, das mit dem sleep war so gemeint gewesen, dass das bei der Abfrage erstellt wird und dann eben einmalig auf das Batterie-Reading reagiert. Damit hätte man kein zusätzliches Device. Das Problem dabei ist und bleibt aber: Wenn kein Wert gelesen wird, kommt die Schleife nicht wieder in Gang (falls bereits der Leseversuch dazu führt, dass das scannen beendet wird).

Da ich aber zum einen einen "Piepser" habe, und zum anderen eine andere Variante der firmware, ist das alles graue Theorie. Ist das denn bereits als Bug in OMG-github gemeldet?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Stimmt natürlich. Kein Wert, kein Trigger.

Ich muss gestehen, ich hab das heute schnell hin gebastelt und mich noch nicht genauer damit beschäftigt. Insofern auch keine GitHub-Issues und -Diskussionen gelesen. Und das OMG Forum auch nicht.

LutzG

#100
Zitat von: rudolfkoenig am 16 März 2022, 16:52:34
Ich habe ein hideRetain Attribut und ein clearRetain set-Befehl eingebaut.
Wie funktioniert "clearRetain"? Wenn ich es setze, sind alle "RETAIN" weg, nach einem Neustart aber alle wieder da.  ??? "Save config" ändert daran nichts.

Ich frage, weil ich viele "RETAIN" habe, die (glaube ich) Fehleinträge sind, ein paar Beispiel-Einträge (nicht komplett, circa 1-2 %):
,"homeassistant/binary_sensor/083AF2A8EF8Cconnectivity/config":"{\u0022stat_t\u0022:\u0022home/OMG_Kueche/LWT\u0022,\u0022name\u0022:\u0022SYS: Connectivity\u0022,\u0022uniq_id\u0022:\u0022083AF2A8EF8Cconnectivity\u0022,\u0022dev_cla\u0022:\u0022connectivity\u0022,\u0022pl_on\u0022:\u0022online\u0022,\u0022pl_off\u0022:\u0022offline\u0022,\u0022pl_avail\u0022:\u0022online\u0022,\u0022pl_not_avail\u0022:\u0022offline\u0022,\u0022device\u0022:{\u0022name\u0022:\u0022OMG_Kueche\u0022,\u0022model\u0022:\u0022[\u0022BME280\u0022,\u0022BH1750\u0022,\u0022RF\u0022,\u0022BT\u0022,\u0022HCSR501\u0022,\u0022GPIOInput\u0022,\u0022DS1820\u0022]\u0022,\u0022manufacturer\u0022:\u0022OMG_community\u0022,\u0022sw_version\u0022:\u00220.9.8.1\u0022,\u0022identifiers\u0022:[\u0022083AF2A8EF8C\u0022]}}","homeassistant/binary_sensor/083AF2A8EF8Chcsr501/config":"{\u0022stat_t\u0022:\u0022home/OMG_Kueche/HCSR501toMQTT\u0022,\u0022name\u0022:\u0022hcsr501\u0022,\u0022uniq_id\u0022:\u0022083AF2A8EF8Chcsr501\u0022,\u0022val_tpl\u0022:\u0022{{ value_json.presence | is_defined }}\u0022,\u0022pl_on\u0022:\u0022true\u0022,\u0022pl_off\u0022:\u0022false\u0022,\u0022device\u0022:{\u0022name\u0022:\u0022OMG_Kueche\u0022,\u0022model\u0022:\u0022[\u0022BME280\u0022,\u0022BH1750\u0022,\u0022RF\u0022,\u0022BT\u0022,\u0022HCSR501\u0022,\u0022GPIOInput\u0022,\u0022DS1820\u0022]\u0022,\u0022manufacturer\u0022:\u0022OMG_community\u0022,\u0022sw_version\u0022:\u00220.9.8.1\u0022,\u0022identifiers\u0022:[\u0022083AF2A8EF8C\u0022]}}","homeassistant/binary_sensor/12FD68CA1DCB-CLEARGRASSCGH1-open/config":"{\u0022stat_t\u0022:\u0022+/+/BTtoMQTT/12FD68CA1DC


Edit: OMG sendet den ... Nach einem reboot vom ESP32 ist RETAIN wieder voll der Einträge.
DMZ: J5040 mit OpenMediaVault, in Docker: Portainer, Fhem, MariaDB, zigbee2mqtt, esphome, NextCloudPi, Jellyfin, Grocy.
Intranet: J5005 mit OpenMediaVault, in Docker: Portainer, Fhem-minimal, urbackup - läuft nur, wenn Rechner laufen.

rudolfkoenig

So wie es ausschaut muss dieses Problem auf der anderen (OMG) Seite geloest werden.

Beta-User

Zitat von: rudolfkoenig am 05 Juli 2022, 08:05:37
So wie es ausschaut muss dieses Problem auf der anderen (OMG) Seite geloest werden.
...und/oder durch ignoreRegexp am IO...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Weiß irgendwer, wo das her kommt?

PERL WARNING: Use of uninitialized value $1 in concatenation (.) or string at (eval 3272) line 1.
eval: my $CID=   $evalSpecials->{'%CID'};my $DEVICETOPIC=   $evalSpecials->{'%DEVICETOPIC'};my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $JSONMAP=   $evalSpecials->{'%JSONMAP'};my $NAME=   $evalSpecials->{'%NAME'};my $TOPIC=   $evalSpecials->{'%TOPIC'};{ $EVENT =~ m,characteristic...0x2a19.*read[^\d]+([\d]+), ? return { batteryPercent => hex($1) } : $TOPIC =~ m,home/(O[^/]*M[^/]*G[^/]*)/BTtoMQTT,;; my $rets = json2nameValue($EVENT);; $rets->{last_IO} = $1, $rets->{"rssi_$1"} = $rets->{rssi};; return $rets}


Danke!

Beta-User

Würde mal darauf tippen, dass deine Benennung des OpenMQTTGateways nicht dem vorgesehenen Namensschema entspricht (O.*M.*G.*) und daher die regex auf den Topic nichts liefert?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files