Renseignement MQTTDiscovery et ESP32

Suite du sujet Demande de renseignement TGW et MQTTDiscovery :

Bonjour @Mips, Je viens de recevoir mon ESP32 et j’ai installé omg version « esp32dev-ble-mqtt-undecoded » puis en version « esp32dev-ble ». Je n’arrive pas a faire remonter la présence d’un équipent inconnu (qui était remonté via ton plugin twg et une antenne déportée sur RPI3).

J’imagine que j’ai raté quelque chose, aurais-tu une idée ? Je te sollicite car j’ai vu que tu as 2 esp32 avec omg.

Dans le plugin MQTTDiscovery, j’ai l’ESP32 qui est remonté (mais je pense que c’est pas la mon problème)
image

Dans les logs du plugin, je vois bien des trames passées mais pas celle de ma douchette (HYDRAO_SHOWER) préalablement enregistré via le RPI3

[2024-06-26 12:43:15] DEBUG  : new message:{"home":{"OMG_ESP32_BLE":{"BTtoMQTT":{"undecoded":{"id":"XX:XX:XX:XX:XX:XX","rssi":-82,"name":"ENVY Photo 6200 series","txpower":6}}},"TGW_770":{"BTtoMQTT":{"YYYYYYYYYYYY":{"id":"YY:YY:YY:YY:YY:YY","rssi":-77},"XXXXXXXXXXXX":{"id":"XX:XX:XX:XX:XX:XX","name":"ENVY Photo 6200 series","rssi":-82,"txpower":6}}},"TGW_780":{"BTtoMQTT":{"YYYYYYYYYYYY":{"id":"YY:YY:YY:YY:YY:YY","rssi":-77},"FAB46AC42C32":{"id":"XX:XX:XX:XX:XX:XX","name":"ENVY Photo 6200 series","rssi":-82,"txpower":6}}}}}

J’ai mis l’ESP32 dans la salle de bain a proximité de la couchette pour m’assurer que c’est pas un problème d’antenne.

Est-ce que je fais fausse route en voulant utiliser un ESP32 pour cet usage ?

Je sais pas si j’ai tout compris, si je résume :

J’utilise MQTT Manager (qui est mon serveur MQTT)
Tgw transforme des données bluetooth en requête MQTT qu’il transmet à MQTT Manager (en utilisant Theengs)
MQTT Discovery transforme les données transmise par MQTT Manager en objet Jeedom.

Je pense que ESP32 OMG (avec esp32dev-ble-mqtt-undecoded » ou « esp32dev-ble ») fait comme tgw pour transmettre à MQTT Manager.

Ais-je raté quelque chose ?

Merci d’avance

Salut,

c’est correcte sur le principe;

si esp avec omg remonte sur mqtt discovery, c’est déjà signe que la config mqtt + discovery est bonne.

donc si tu ne vois pas passer la mac de ta douche hydrao, c’est que omg ne la capte pas ou ne la remonte pas je suppose?
je ne sais pas exactement mais ca fonctionne un peu différemment que theengs pour cette partie, omg coupe le discovery après un certain temps par exemple

TGW et OpenMQTTGateway ne découvrent aucun appareil inconnu et donc non décodé. Ils ne sauraient pas quelles propriétés découvrir :wink:

Si dans OMG la sélection « onlysensors » n’est pas vraie - ce qui est la valeur par défaut - il transmet toujours les messages non décodés au courtier MQTT, mais je suppose que sans découverte, le plug-in de découverte Jeedom MQTT ne reçoit/reconnaît pas ces messages.

Les mêmes paramètres sont également disponibles dans TGW dans le cas où l’ESP32 a installé le binaire …-undecoded.

Vous pouvez également définir « pubadvdata » à true, pour voir quelles données publicitaires non décodées l’Hydrao envoie.

Vous devriez toujours voir les messages Hydrao non décodés dans MQTT Explorer cependant.

Du coup, @Heliospeed tu recevais quoi quand c’était theengsgateway à la place d’omg?
tu sais remettre ton pi en route pour tester?

Je recevais cette info :

DEBUG:BLEGateway:---MAC-ADDRESS---:AdvertisementData(local_name='HYDRAO_SHOWER', rssi=-89)
DEBUG:BLEGateway:Sent `{"name": "HYDRAO_SHOWER", "id": "---MAC-ADDRESS---", "rssi": -89}` to topic `home/TGW_780/BTtoMQTT/8F6422954C21`

Je peux le remettre en route si besoin.

Savez-vous ou je peux mettre le paramétrage ? C’est dans la console ?

@Heliospeed devrait toujours pouvoir voir les messages MQTT Hydrao de OMG ou TGW dans MQTT Explorer, également avec des données publicitaires brutes si l’option ADVDATA est activée.

Je pense que le problème est seulement que les messages non découverts ne sont pas captés dans Jeedom.

Que pouvez-vous voir dans MQTT Explorer?

Vous devriez pouvoir voir la même chose avec OMG, au moins dans QTT Explorer.

« onlysensors » devrait déjà être faux et ok - vous pouvez vérifier dans le message BTtoMQTT.

Console > et entrez
commands/MQTTtoBT/config {"pubadvdata":true}
dans le champ et appuyez sur RETOUR

Mais il n’affichera que les mêmes données tout le temps, je suppose, car l’Hyrdao n’envoie aucune donnée décodable dans ses annonceurs BLE.

De plus, si vous utilisez le binaire…-ndecoded, vous devriez toujours voir exactement la même sortie dans TGW qu’avant avec TGW directement.

Après avoir mis l’option commands/MQTTtoBT/config {"pubadvdata":true}, j’ai bien HYDRAO_SHOWER

Je n’ai pas trop compris la différence entre le binaire esp32dev-ble-mqtt-undecoded » ou « esp32dev-ble »

Moi mon usage j’ai des iPhones + pommeau de douche.
Pour le pommeau de douche je veux juste savoir s’il est en route (actif ou non).

Les iPhones je les detectes bien via le plugin tgw de Mips avec décodage des mac address aléatoire.
Y a t-il une manip similaire avec EPS32 omg pour renseigner les Mac address et IRK ?

Merci

Le ‹ normal › binary est juste pour OMG à usage unique et ESP32, sans aucun TGW nulle part pour faire le décodage. Il effectue le décodage directement sur l’ESP32.

Avec le ...-undecoded, il doit y avoir un TGW quelque part dans le même réseau pour faire le décodage, car alors MG ne fait pas de décodage, comme il le ferait normalement avec le binaire général.

Vous pouvez également basculer entre decoding et undecoded sur la même installation avec

Il suffit d’entrer
commands/MQTTtoBT/config {"extDecoderEnable":true}
ou
commands/MQTTtoBT/config {"extDecoderEnable":false}
dans la Console.

Pas besoin d’installer un binaire différent à chaque fois :wink:

L’option MAC et IRK n’est disponible que dans TGW pour le moment, mais tout binaire ESP32 OMG …-undecoded enverra également les images de l’iPhone, de l’iPad et de l’Apple Watch reçues à TG. Cela permet d’étendre considérablement la portée de réception de l’iPhone. dans une grande maison.

Maintenant que vous pouvez voir que OMG voit et envoie les messages MQTT d’Hydrao, je ne sais pas comment cela peut être vu par Jeedom, car il n’y a pas de découvertes créées pour un appareil inconnu.

C’est ce que j’appelle les « appareils inconnus » dans mqttdiscovery, si il y a un topic qui remonte dans home avec au moins un rssi mais que ca n’est pas remonté dans la découverte (topic homeassistant) alors j’utilise cette info uniquement pour avoir la présence sous jeedom, c’est la seule info dispo pour ces appareils.

1 « J'aime »

Il devrait donc être facile de voir la présence/activation de l’Hydrao alors aussi avec juste l’ESP32 avec OMG, avec le message Hydrao reçu ci-dessus.

Merci c’est un peu plus clair pour moi.

Du coup si je resume :
ESP32 + omg ‹ normal › (il fait le décodage plus ou moins comme tgw) ↔ broker MQTT (plugin MQTT Manager)

ESP32 ‹ undecoded › (il transmet l’info brute à tgw) ↔ Theengs (plugin tgw) ↔ broker MQTT (plugin MQTT Manager)

Ensuite pour être dans Jeedom j’utilise le plugin MQTTDiscovery

MQTTDiscovery ↔ broker MQTT (plugin MQTT Manager)

Avec la version undecoded, si j’ai bien compris, il faut qu’il communique avec Theengs. Il faut un paramétrage particulier ?
Moi j’avais un problème d’antenne sur le serveur qui ne captait pas HYDRAO_SHOWER, j’ai du mettre une antenne relais pour que ça fonctionne. Si je met un OMG dans la même pièce, je risque aussi d’avoir ce problème pour la version undecoded (transmission en Bluetooth je suppose).

Merci

Non réseau, via mqtt
Omg va poster un message mqtt qui theengs va voir et décoder et ensuite reposter le message décodé au bon endroit pour que mqttdiscovery le voit

Mais si ton omg ne sert que pour la douche tu n’en a pas besoin,
Tu as besoin de ca uniquement si tu veux que ton omg puisse capter tes iphones
Donc là avec la config que tu as faites sur omg si j’ai bien compris ca fonctionne?

:+1:

Non, cela se produit automatiquement, dès que TGW reçoit des messages non décodés d’un OMG sur le sujet interne non décodé.

Je vois également que dans votre message BTtoMQTT de OMG, votre intervalle et vos intervalles sont définis sur la valeur par défaut 55555 (ms).

Vous ne recevez donc que de nouvelles réceptions et de nouveaux messages toutes les minutes.

Vous pouvez également les régler plus bas, peut-être à 15000, pour obtenir une réception et des messages plus fréquemment mis à jour d’Hydrao.

Comment puis changer cette valeur svp ? Auriez-vous une page web avec les commandes possibles ?

Merci

Je viens de rentrer la commande commands/MQTTtoBT/config {"extDecoderEnable":false} dans la console et j’ai eu ce retour :

N: [ MQTT->OMG ]: {"extDecoderEnable":false}
N: Config extDecoderEnable unchanged: false
N: Send on /BTtoMQTT msg {"bleconnect":true,"interval":55555,"adaptivescan":true,"intervalacts":55555,"intervalcnct":3600000,"scanduration":10000,"onlysensors":false,"randommacs":false,"hasspresence":false,"prestopic":"presence/","presuseuuid":false,"minrssi":-100,"extDecoderEnable":false,"extDecoderTopic":"undecoded","filterConnectable":false,"pubadvdata":false,"pubuuid4topic":false,"ignoreWBlist":false,"presenceawaytimer":120000,"movingtimer":60000,"forcepscn":false,"tskstck":2628,"crstck":3056,"enabled":true,"scnct":25}
N: Scan begin

Je comprend que je suis en version ‹ undecoded ›

Je viens de lire la doc (le lien précédent finalement je l’ai grace à vous)
J’ai l’impression qu’il faut aussi faire cette commande commands/MQTTtoBT/config -m '{"extDecoderTopic":"undecoded"}'

Lorsque je vois des commandes mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/... dans la console web je tape uniquement commands/MQTTtoBT/... ?

Encore merci pour votre aide

PS : Les commandes sont automatiquement enregistrées ou il faut les rejouer lorsque l’on débranche et rebranche l’ESP32 ?

Jetez un coup d’œil dans votre BTtoMQTT ci-dessus, c’est là que vous voyez tous vos paramètres de votre BT OMG, pouvez-vous voir "extDecoderTopic"? :wink:

Tous ces paramètres peuvent être modifiés de cette façon dans la Console.

Vous voudrez également régler

"adaptivescan":false

pour éviter les changements automatiques en fonction de tout nouveau capteur à proximité.

Exactement, et pour les paramètres et commandes system, vous tapez MQTTtoSYS pour apporter des modifications.

Pour que les modifications soient persistantes au cours des redémarrages, et pas seulement pour les tests temporaires, vous devez donc les enregistrer

@Mips Les détails de la gateway OpenMQTTGateway ne sont-ils pas découverts automatiquement dans Jeedm pour créer une interface utilisateur de gateway?

Merci, je commence a comprendre de mieux en mieux le fonctionnement :

J’ai passé cette commande :
commands/MQTTtoBT/config {"pubadvdata":true, "interval":"15000", "intervalacts":"15000", "adaptivescan":false}

Voici mes paramètres

{"bleconnect":true,"interval":15000,"adaptivescan":true,"intervalacts":15000,"intervalcnct":3600000,"scanduration":10000,"onlysensors":false,"randommacs":false,"hasspresence":false,"prestopic":"presence/","presuseuuid":false,"minrssi":-100,"extDecoderEnable":false,"extDecoderTopic":"undecoded","filterConnectable":false,"pubadvdata":true,"pubuuid4topic":false,"ignoreWBlist":false,"presenceawaytimer":120000,"movingtimer":60000,"forcepscn":false,"tskstck":2628,"crstck":3056,"enabled":true,"scnct":49}

Le paramètre "intervalcnct":3600000 me parait élevé pour des tentatives de connection, dois-je le réduire à 300000 (300 sec) comme indiqué dans la doc ? (je l’ai fais dans le doute)

Pour sauvegarder j’ai renseigné : commands/MQTTtoBT/config {"save":true} (je met un peu de détail sur cet échange si des utilisateurs comme moi on besoin d’aide).

Question pratique, avez-vous des références de boitiers pour habiller la carte ESP32 ? Comme c’est dans la salle de bains, je me dis faut protéger de l’humidité. Après si ça marche bien je déporterais dans la pièce à côté.

Ce paramètre ne concerne que certaines propriétés de quelques appareils qui doivent être connectés aux appareils. Cela ne devrait se produire que toutes les heures, car les connexions affectent le plus la batterie d’un appareil. Ne s’applique pas à votre situation pour le moment.

Vous pouvez donc également définir

"bleconnect":false

si vous voulez

:+1:

Ou si vous êtes déjà sûr lorsque vous effectuez les modifications
commands/MQTTtoBT/config {"pubadvdata":true, "interval":"15000", "intervalacts":"15000", "adaptivescan":false,"save":true}

Je suis désolé, pas vraiment, je crée toutes mes boîtes pour tout avec mon imprimante 3D.

1 « J'aime »

merci pour toutes vos explications, c’est super clair pour moi maintenant.