Auteur Sujet: JMRI et MQTT  (Lu 2681 fois)

dduni56

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
JMRI et MQTT
« le: août 04, 2024, 12:39:17 pm »
Dans la doc de JMRI, MQTT a l'air bien documenté et bien implémenté.

Mais qu'en est il dans la réalité ? Quelqu'un utilise t il MQTT en modélisme ferroviaire ?

bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1054
  • HO avec DCC++
    • Voir le profil
Re : JMRI et MQTT
« Réponse #1 le: août 04, 2024, 02:37:48 pm »
Je connais assez bien les différents protocoles qui sont utilisés sur les réseaux, au moins parmi les projets les plus importants et je n’en ai jamais vu qui mettent en œuvre le protocole MQTT.

Je sais que Jean-Luc a fait des choses avec, pour de la gestion de leds sur son réseau je crois mais sans doute plus pour comprendre et tester.

Personnellement, je ne vois pas ce que MQTT peut apporter de plus que le CAN dont d’ailleurs les concepts fondamentaux sont très similaires et les principes de clients/serveurs très proches également.

Pense également à l’environnement dans lequel c’est implanté. Le CAN a vraiment été conçu pour des environnements chargés en perturbations électromagnétiques qui sont très présentes sur les réseaux. Tu ne devrais pas être bien embêté en Ethernet avec MQTT mais je serai moins affirmatif en WiFi avec un grand nombre d’équipements.

Donc la question la plus importante est selon moi : Qu’est-ce que cela peut t’apporter de plus ?

Et à mon avis, si la réponse ne fait pas pencher sérieusement la balance du côté de MQTT, il vaut mieux renoncer au profit du CAN.

Car là on peut se demander pourquoi, sous un vocable ou sous un autre, la grande majorité des constructeurs (entendu en poids de marché), mais aussi le NMRA ou le MERG ont adopté le CAN ? Et des projets en DIY reconnus comme BIDIB (https://bidib.org/)

Que toutes les centrales, dont JMRI reconnaissent le protocole de Marklin (et d’autres).

Faire autrement, c’est prendre le risque de se retrouver très isolé et de galérer beaucoup pour trouver des infos, des réponses quand cela ne fonctionne pas.

Moi qui utilise intensément le CAN et passe beaucoup de temps sur les forums à chercher des infos, quand je vois déjà les difficultés que je rencontre à trouver des infos pertinentes…

Le CAN, ce n’est après tout qu’une couche physique avec des spécificités et un protocole qui lui est propre. Mais le CAN ne fournit pas de messagerie qui soit spécifique au modélisme ferroviaire. MQTT non plus d’ailleurs.

Sur la base du CAN, il existe cependant des protocoles de messagerie spécifiques aux réseaux de modélisme, mais aussi des équipements. Et ça simplifie grandement la vie. Je ne citerai que celui de Marklin dont chacun sait que je suis un inconditionnel tant il est bien pensé et performant. Et, cerise sur le gâteau que beaucoup ont du mal à comprendre, protocole qui, même s’il reprend rigoureusement la structure des trames CAN, fonctionne aussi en TCP (Ethernet et WiFi) et en communication série. Et là franchement quand tu cherches comment déployer des solutions sur ton réseau, c’est quand même appréciable.
Comme je te l’ai demandé dans un de nos premiers échanges, tout dépend de ce qui te motive. Si c’est tenter de nouvelles expériences, un peu seul dans ton coin et peut être découvrir le Graal, vas-y sans problème.

PS : Déjà, pas très bon signe, quand tu cliques sur le lien MQTT en français de JMRI, la page n'existe pas ! Pas très rassurant quant à l'intérêt que cela dois susciter !
« Modifié: août 04, 2024, 02:43:32 pm par bobyAndCo »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1710
    • Voir le profil
Re : JMRI et MQTT
« Réponse #2 le: août 05, 2024, 09:36:28 am »
Bonjour,

Comme mentionné par Christophe, j'utilise MQTT mais pour une fonction annexe : l'éclairage du réseau. C'est une fonction purement cosmétique qui a le droit de ne pas être tip-top en ce qui concerne la sûreté de fonctionnement.

J'utilise également MQTT depuis plusieurs années pour de la domotique (distribution des consignes de température des radiateurs + data logging).

À mes yeux, son principal défaut est d'avoir besoin d'un serveur MQTT qui est le point central de concentration et de distribution des messages. À début, j'avais un serveur MQTT (Mosquitto) sur un Raspberry Pi Zéro. J'avais également installé le service de multicast DNS (Avahi) pour pouvoir adresser le serveur avec un petit nom (mqtt.local). Il s'est trouvé que la configuration manquait de longévité : au bout de quelque jours, la connexion est perdue et il faut redémarrer le RPi. En passant sur un Mac, j'ai eu zéro problème de tout l'hiver.

Ensuite, si tu parles de MQTT, tu penses IP et probablement WiFi. On peut se poser la question des performances. Si on a une trentaine d'ESP32 (gestion des cantons + centrale) sur la box internet de la maison + le serveur MQTT, que les ESP32 rapportent l'occupation des cantons avec une période courte et que cette info arrive sur le PC pour être ensuite envoyé vers la centrale, quel va être le délai de bout en bout entre la détection et le changement de vitesse du train (mini, maxi, moyen + écart type) ? Va-t-il être compatible avec le pilotage des trains ? Je n'ai pas la réponse. J'avais fait quelques essais qui m'avaient dissuadé de me reposer sur MQTT pour des choses plus tendues côté latence. Tu peux consulter mes réflexions dans cet article : https://www.locoduino.org/spip.php?article300
« Modifié: août 06, 2024, 02:03:03 pm par jlb »
Cordialement

dduni56

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : JMRI et MQTT
« Réponse #3 le: août 06, 2024, 01:54:52 pm »
Merci pour ta réponse très précise.

Je pense que je vais quand même tenter l'aventure en simplifiant un peu : routeur WIFI dédié, IPs fixes, Boker et JMRI sur PC.

Citer
les ESP32 rapportent l'occupation des cantons avec une période courte

Je pensais publier "canton occupé" qu'au changement d'état, la bibliothèque d'Expressif permettant le QoS 2.
Pourquoi publier l'occupation des cantons en boucle ? C'est sur qu'en cas de crash la reprise est facilitée.


bobyAndCo

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1054
  • HO avec DCC++
    • Voir le profil
Re : JMRI et MQTT
« Réponse #4 le: août 06, 2024, 01:59:01 pm »
Je pensais publier "canton occupé" qu'au changement d'état

M'ouais !!! A ton avis, qu'est qui est le plus sûr pour la sécurité ? Les états ou un scan répétitif ?
« Modifié: août 06, 2024, 02:00:39 pm par bobyAndCo »

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1710
    • Voir le profil
Re : JMRI et MQTT
« Réponse #5 le: août 06, 2024, 02:19:44 pm »
Pourquoi publier l'occupation des cantons en boucle ? C'est sur qu'en cas de crash la reprise est facilitée.

Elle est plus que facilitée. Si on devait faire un parallèle avec l'électronique numérique, c'est la différence entre la logique combinatoire et la logique séquentielle. En combinatoire, l'état des sorties est fixé via l'état des entrées. En combinatoire, l'état est fixé par l'historique. En cas de dysfonctionnement, retomber au vol sur un état valide n'est pas assuré de manière simple.

Comme MQTT, surtout en WiFi, n'est pas d'une grande fiabilité, n'envoyer que les changements d'état dégrade encore le système.
Cordialement

chris_bzg

  • Global Moderator
  • Sr. Member
  • *****
  • Messages: 314
    • Voir le profil
Re : Re : JMRI et MQTT
« Réponse #6 le: août 10, 2024, 03:07:14 pm »
...
Elle est plus que facilitée. Si on devait faire un parallèle avec l'électronique numérique, c'est la différence entre la logique combinatoire et la logique séquentielle. En combinatoire, l'état des sorties est fixé via l'état des entrées. En combinatoire séquentielle, l'état est fixé par l'historique. En cas de dysfonctionnement, retomber au vol sur un état valide n'est pas assuré de manière simple.
...

Juste une petite correction mais tout le monde avait compris.  :)

Jean-Luc

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 1710
    • Voir le profil
Re : JMRI et MQTT
« Réponse #7 le: août 10, 2024, 10:58:35 pm »
Oui, nos lecteurs auront rectifié d'eux-mêmes  ;D
Cordialement

dduni56

  • Newbie
  • *
  • Messages: 15
    • Voir le profil
Re : JMRI et MQTT
« Réponse #8 le: août 11, 2024, 12:51:31 pm »
J'ai commencé quelques essais avec un ESP32, Mosquitto et JMRI sur un PC.

Pas de latence même en QoS level 2 et reprise en cas d'arrêt du broker.

Je vous l'accorde il n'y a qu'un ESP32 et l'environnement électronique est très clean.

Je vais refaire les tests avec 10 ESP et autour d'un vrai réseau en fonctionnement mais ça sera en Septembre.