Nœud racine painlessMesh comme unique lien vers Hermetry : comment faire apparaître les autres nœuds ?
Traduit de English par IA ·
Je suis surtout un lecteur silencieux, mais je bloque sur une question d’architecture.Poste électrique extérieur, 12 nœuds ESP8266 avec des DS18B20 sur les surfaces des transformateurs et des armoires, trop éloignés et trop d’acier pour un Wi-Fi classique vers chaque nœud. J’ai monté un réseau painlessMesh stable en lui-même. Le nœud 0 est câblé près du bâtiment de commande et doit servir de racine qui fait remonter tout vers Hermetry.Deux problèmes. D’abord, quand la racine rejoint aussi le Wi-Fi de l’usine avec stationManual(), le mesh se désagrège toutes les quelques minutes : les nœuds tombent et se reconnectent. Ensuite, je ne veux pas un seul appareil Hermetry avec 24 clés nommées n7_temp, je veux 12 appareils pour pouvoir appliquer des règles d’alarme à un profil. Je manque de RAM sur la racine avec TLS plus mesh ; le tas tourne autour de 9 Ko quand ça plante.
mesh.init(MESH_PREFIX, MESH_PASSWORD, &sched, MESH_PORT, WIFI_AP_STA, 6);
mesh.stationManual(STATION_SSID, STATION_PASSWORD);
mesh.setRoot(true);
mesh.setContainsRoot(true);
I mostly lurk, but I’m stuck on an architecture question.
Substation yard, 12 ESP8266 nodes with DS18B20s on transformer and cabinet surfaces, too spread out and too much steel for plain Wi-Fi to every node. I built a painlessMesh network and it is stable on its own. Node 0 is wired near the control building and should be the root that gets everything to Hermetry.
Two problems. First, when the root also joins the plant Wi-Fi with stationManual() the mesh falls apart every few minutes, nodes drop and rejoin. Second, I don’t want one Hermetry device with 24 keys called n7_temp, I want 12 devices so I can put alarm rules on a profile. I’m running out of RAM on the root with TLS plus mesh, heap is around 9 KB when it crashes.
mesh.init(MESH_PREFIX, MESH_PASSWORD, &sched, MESH_PORT, WIFI_AP_STA, 6);
mesh.stationManual(STATION_SSID, STATION_PASSWORD);
mesh.setRoot(true);
mesh.setContainsRoot(true);
Traduit de English par IA ·
Le point d’accès de l’installation est-il réellement sur le canal 6 ? Le maillage doit rester sur le canal du routeur lorsque la racine fonctionne en station, sinon la radio change sans cesse de canal et l’on obtient exactement cette perte et cette reconnexion.
Is the plant AP actually on channel 6? The mesh has to sit on the router’s channel when the root is a station, otherwise the radio keeps hopping and you get exactly that drop and rejoin.
Traduit de English par IA ·
Vérifié, l’AP est sur 11 et en auto. J’ai passé le mesh sur 11 et c’est mieux, mais l’AP change parfois de canal la nuit.
Checked, the AP is on 11 and auto. Moved the mesh to 11 and it’s better, but the AP changes channel at night sometimes.
Traduit de English par IA ·
Nous avions un site similaire sur un parc logistique et nous avons fini par retirer complètement la connexion internet du mesh. La racine reste un simple nœud mesh (pas de mode station, donc le canal n’a pas d’importance) et communique en UART à 115200 avec un ESP32 à proximité. L’ESP32 est connecté en Ethernet ou au Wi-Fi de l’usine, dispose de la RAM nécessaire pour TLS, et c’est le seul élément qu’Hermetry connaît.Déclarez l’ESP32 comme appareil passerelle dans Hermetry (cochez This device is a gateway lors de la création) et signalez chaque nœud mesh comme enfant sur les topics de la passerelle. Utilisez l’identifiant du nœud mesh ou un libellé comme nom d’enfant et envoyez un type afin qu’ils aboutissent tous sur un même profil :
v1/gw/connect {"device": "yard-n07", "type": "yard-temp"}
v1/gw/telemetry {"yard-n07": {"values": {"temp_c": 41.2, "rssi": -71}},
"yard-n03": {"values": {"temp_c": 38.9, "rssi": -64}}}
Créez d’abord un profil nommé exactement yard-temp ; les enfants le recevront alors automatiquement et vos règles d’alarme se configurent sur ce profil. Omettez ts sauf si l’ESP32 dispose de NTP : la plateforme horodatera alors l’arrivée.Si vous voulez plus tard envoyer une commande à un nœud, elle arrive à l’ESP32 sur v1/gw/rpc, puis l’ESP32 la transmet en UART à la racine, qui la fait parvenir dans le mesh. Référence : Devices behind a gateway.
We had a similar yard on a logistics site and ended up taking the internet job away from the mesh entirely. The root stays a plain mesh node (no station mode, so channel doesn’t matter) and talks over UART at 115200 to an ESP32 next to it. The ESP32 is on Ethernet or the plant Wi-Fi, has the RAM for TLS, and is the only thing Hermetry knows about.
Make the ESP32 a gateway device in Hermetry (tick This device is a gateway when you create it) and report each mesh node as a child on the gateway topics. Use the mesh node id or a label as the child name and send a type so they all land on one profile:
v1/gw/connect {"device": "yard-n07", "type": "yard-temp"}
v1/gw/telemetry {"yard-n07": {"values": {"temp_c": 41.2, "rssi": -71}},
"yard-n03": {"values": {"temp_c": 38.9, "rssi": -64}}}
Create a profile named exactly yard-temp first, then children get it automatically and your alarm rules go on that profile. Leave out ts unless the ESP32 has NTP, the platform will stamp arrival time.
If you later want to send something to a node, a command to a child comes down to the ESP32 on v1/gw/rpc, and the ESP32 passes it over UART to the root and into the mesh. Reference: Devices behind a gateway.
Traduit de English par IA ·
Par curiosité, combien de sauts obtenez-vous à travers tout cet acier ?
Out of curiosity, how many hops do you get through all that steel?
Traduit de English par IA ·
3 au maximum, les armoires éloignées passent par deux relais. La séparation UART a été faite cette semaine : le root est de nouveau un simple nœud mesh, l’ESP32 gère le TLS avec beaucoup de heap, 12 enfants sont apparus sous la passerelle sur le profil yard-temp. J’envoie le connect une fois par nœud après le démarrage, donc un nœud qui vient de rejoindre le mesh atterrit tout de suite sur yard-temp.
3 at most, the far cabinets go through two relays. Did the UART split this week: root is a dumb mesh node again, ESP32 does TLS with plenty of heap, 12 children appeared under the gateway on the yard-temp profile. I send the connect once per node after boot, so a node that just joined the mesh lands on yard-temp straight away.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

