Plugin MQTT : bug (?) avec JSON et 00

Bonjour,

J’ai un petit soucis dans la création d’un équipement dans cette configuraton :

  • Le topic est rflink/InoValley-9801
  • Le JSON remonté est {« TEMP »:9.8,« HUM »:00,« BAT »:« LOW »}

Dans ce cas, aucun équipement n’est créé. C’est une commande nommée InoValley-9801 qui est créée sous l’équipement qui correspond au topic rflink. Si dans le JSON je remplace le 00 par un 0, alors cela crée bien l’équipement rflinkInoValley-9801.

Voici ce que donne le log

[2020-02-26 10:59:33][DEBUG] : 16 : Client jeedom-vm received PUBLISH (d0, q0, r0, m0, 'rflink/InoValley-9801', ... (33 bytes))
[2020-02-26 10:59:33][DEBUG] : Message {"TEMP":9.8,"HUM":00,"BAT":"LOW"} sur rflink/InoValley-9801
[2020-02-26 10:59:33][INFO] : Message texte : {"TEMP":9.8,"HUM":00,"BAT":"LOW"} pour information : InoValley-9801 sur : rflink
[2020-02-26 10:59:33][INFO] : Cmdlogic n existe pas, creation
[2020-02-26 10:59:36][DEBUG] : 16 : Client jeedom-vm received PUBLISH (d0, q0, r0, m0, 'rflink/InoValley-9801', ... (32 bytes))
[2020-02-26 10:59:36][DEBUG] : Message {"TEMP":9.8,"HUM":0,"BAT":"LOW"} sur rflink/InoValley-9801
[2020-02-26 10:59:36][INFO] : Message json : {"TEMP":9.8,"HUM":0,"BAT":"LOW"} pour information sur : rflink/InoValley-9801
[2020-02-26 10:59:36][INFO] : Saving device rflink/InoValley-9801
[2020-02-26 10:59:36][INFO] : Message json : 9.8 pour information : TEMP
[2020-02-26 10:59:36][INFO] : Cmdlogic n existe pas, creation
[2020-02-26 10:59:36][INFO] : Message json : 0 pour information : HUM
[2020-02-26 10:59:36][INFO] : Cmdlogic n existe pas, creation
[2020-02-26 10:59:36][INFO] : Message json : LOW pour information : BAT
[2020-02-26 10:59:36][INFO] : Cmdlogic n existe pas, creation

Je suppose que c’est l’interprétation du 00 comme une chaîne de caractères quelque part qui pose problème.

Je ne sais pas si c’est vraiment un bug du coup et/ou facile à résoudre.

tiens tiens on en parlait il y a pas si longtemps des dépendences … ESP Easy - Wemos / relais - de la bonne gestion - #22 par seb821

Je ne vois pas le rapport. Ou bien même l’intérêt de créer ce genre de débat ou guéguerre stériles sur un tel forum. J’essaie juste d’apporter mon aide aux personnes en leur proposant ce qui me semble une bonne option d’après mon expérience. A eux de décider ensuite.
Un proche qui programme en python toute la journée avait commencé à coder ses ESP en micropython. Il a bien vite abandonné devant le manque de librairies disponibles et le temps que cela nécessitait pour développer des fonctions de base. C’est mon expérience, point.

Le sujet ici était juste sur ta couche MQTT dont tu est maintenant dépendant …

Oui mais comme ca, il profite de connecteurs gratuits pour son rflink, pourquoi passer par le plugin payant :slight_smile:

Si tu veux appeler ca un bug, je te laisse voir soit :

  • en essayant de convaincre les devs PHP que 00 c’est pas une anomalie en nombre
  • en allant voir le dev du connecteur rflink pour qu’il corrige

Mais dans tous les cas, ici tu oublies y a pas d’erreur

Certes, c’est dépendant de MQTT. Mais ça ne me gêne pas du tout d’avoir un protocol (presque) universel au milieu vu la flexibilité et simplicité que ça apporte. D’autant que sous Jeedom il y a deux plugins MQTT gratuits, fonctionnels et maintenus. En tout cas je préfère cela que de devoir gérer ID / clefs API qui sont dépendantes de l’installation Jeedom. Encore une fois, c’est juste mon point de vue, et c’est bien qu’il existe plusieurs options. Chacun choisira selon ses connaissances et/ou besoins.
Le point remonté n’est de toutes façons pas bloquant à l’utilisation, juste peut-être pas cohérent à mon avis (d’où le point d’interrogation).

@lunarok alors là pas du tout c’est un mauvais procès d’intention :sweat_smile: Le plugin RFLink je l’ai acheté et utilisé au début (normal de contribuer). Sauf qu’il a fallu que je place le RFLink à un endroit différent de la box Jeedom. Et à l’époque en utilisation réseau j’avais trop de problèmes avec la création aléatoires de commandes. D’où le passage sur une autre solution.

Effectivement. Du coup rien à voir avec le plugin.

Oui, je vais voir pour ajouter une boucle qui supprime les zéros.

Merci d’avoir jeté un coup d’œil en tout cas .

Juste un petit complément d’info avant que le sujet soit fermé. En fait, c’est même la norme JSON qui interdit les zéros en début de nombre :

The representation of numbers is similar to that used in most
programming languages. A number is represented in base 10 using
decimal digits. It contains an integer component that may be
prefixed with an optional minus sign, which may be followed by a
fraction part and/or an exponent part. Leading zeros are not allowed.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.