Bonjour,
J’utilise depuis quelques années déjà Jeedom, installé sur une VM Synology, avec entres autres une intégration d’un compteur MBUS de type Aquastream M-Bus de chez Integra (Suisse).
Je récupère les données via une carte M-Bus Master Hat connectée à un Raspberry Pi sur lequel est installée la librairie libmus puis avec un script je pousse les informations en format .json sur JMQTT toutes les minutes avec un cron.
Depuis quelques jours je n’arrive plus à faire en sorte que les valeurs transmises dans mon message .json soient synchrones avec les valeurs captées dans mon équipement JMQTT, je m’explique
Le broker jMQTT est configuré comme ceci
Et je récupère les informations dans l’équipement suivant, jusque là rien de bien sorcier
Pour l’intégration des valeurs dans mon équipement j’ai lancé le mode réel
Je lance le mode en temps réel dans mon équipement JMQTT et je vois bien les informations du compteur avec un Timestamp UTC + 2heures chez moi donc 2024-08-26 20 :03 :02
J’ajoute ensuite ceci à mon équipement et dans l’équipement je configure les informations que je veux récupérer (commandes).
Lorsque je crée mon équipement cela fonctionne mais au bout d’un certain temps les valeurs réelles transmises par mon Pi (en .json) sont décalées par rapport à la valeur intégrée dans Jeedom, comme si l’équipement ne recevait plus le .json en mode synchrone (minute). Tout est décalé entre les valeurs du Pi et celles affichées dans Jeedom.
J’ai vérifié avec l’outil MQTT Explorer que mon compteur mbusmeters transmet bien les informations à la minute et cela fonctionne très bien
On remarque bien la mise à jour de l’information
Et dans Jeedom (équipement) le .json n’est pas synchrone (ci-dessous)
Je perds environ 2 à 3 minutes par rapport à l’heure réel et très rapidement tout est décalé, la valeur de mon compteur et en retard de quelques heures le lendemain et ce n’est plus représentatif de la consommation d’eau. Cela rentre dans l’ordre si je redémarre mon Jeedom…
Le lendemain le résultat est le suivant
Dans MQTT Explorer les valeurs sont synchrones avec l’heure (ci-dessous)
Et dans Jeedom (équipement) le .json n’est pas synchrone du tout (ci-dessous)
Si je relance le mode réel la valeur du .json est correcte mais l’équipement n’est pas mis à jour
Normalement mon compteur Mbus enregistre les impulsions dès que de l’eau est consommée et le cron minute envoie la nouvelle valeur à JMQTT.
S’agit-il d’un problème de mise à jour de la valeur (cron) qui n’est pas synchrone avec mon envoi du message à la minute depuis mon Raspberry ?
Est-ce que l’envoi à la minute est trop précis ?
Je ne comprends pas car depuis 2021 cela fonctionnait bien, tout était synchrone à la minute près. Cela ne fonctionne plus depuis quelques semaines.
Rien de particulier sur la page santé de Jeedom.
Et les logs du broker
[2024-08-26 20:29:52]WARNING : Attention, Payload '{ "MBusData": { "SlaveInformation": { "Id": "5500572", "Manufacturer": "IMT", "Version": "1", "ProductName": null, "Medium": "Water", "AccessNumber": "186", "Status": "00", "Signature": "0000" }, "DataRecord": [ { "@id": "0", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume (m m^3)", "Value": "2258252", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "1", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Volume (m m^3)", "Value": "0", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "2", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "0", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "3", "Function": "Maximum value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "2000", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "4", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Time Point (time & date)", "Value": "2024-08-26T19:50:00", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "5", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "0", "Device": "0", "Unit": "Fabrication number", "Value": "10024068", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "6", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "0", "Device": "1", "Unit": "Fabrication number", "Value": "5500572", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "7", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Firmware version", "Value": "111", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "8", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Hardware version", "Value": "1", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "9", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Error flags", "Value": "0", "Timestamp": "2024-08-26T18:27:03Z" }, { "@id": "10", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Reserved VIF extension", "Value": "4556", "Timestamp": "2024-08-26T18:27:03Z" } ] } }' reçu sur le Topic 'mbusmeters/05500572B4250107' traité en 809ms (très long), vérifiez les commandes affiliées : #[Agrégateurs][Agrégateur H2O][05500572B4250107]#, #[Agrégateurs][Agrégateur H2O][Compteur global eau]#, #[Agrégateurs][Agrégateur H2O][Débit]#, #[Agrégateurs][Agrégateur H2O][Error flags]#, #[Agrégateurs][Agrégateur H2O][Fabrication number]#, #[Agrégateurs][Agrégateur H2O][Firmware version]#, #[Agrégateurs][Agrégateur H2O][ID]#, #[Agrégateurs][Agrégateur H2O][Màj]#, #[Agrégateurs][Agrégateur H2O][Manufacturer]#, #[Agrégateurs][Agrégateur H2O][Nb accès]#, #[Agrégateurs][Agrégateur H2O][Reserved VIF extension]#, #[Agrégateurs][Agrégateur H2O][Type]#
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Compteur global eau]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Débit]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Error flags]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Fabrication number]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Firmware version]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][ID]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Màj]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Manufacturer]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Nb accès]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Reserved VIF extension]# est de type info Json : ignorée
[2024-08-26 20:30:13] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Type]# est de type info Json : ignorée
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][05500572B4250107]# <- { "MBusData": { "SlaveInformation": { "Id": "5500572", "Manufacturer": "IMT", "Version": "1", "ProductName": null, "Medium": "Water", "AccessNumber": "187", "Status": "00", "Signature": "0000" }, "DataRecord": [ { "@id": "0", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume (m m^3)", "Value": "2258252", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "1", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Volume (m m^3)", "Value": "0", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "2", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "0", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "3", "Function": "Maximum value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "2000", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "4", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Time Point (time & date)", "Value": "2024-08-26T19:51:00", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "5", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "0", "Device": "0", "Unit": "Fabrication number", "Value": "10024068", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "6", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "0", "Device": "1", "Unit": "Fabrication number", "Value": "5500572", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "7", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Firmware version", "Value": "111", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "8", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Hardware version", "Value": "1", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "9", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Error flags", "Value": "0", "Timestamp": "2024-08-26T18:28:03Z" }, { "@id": "10", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Reserved VIF extension", "Value": "4556", "Timestamp": "2024-08-26T18:28:03Z" } ] } }
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Compteur global eau]# <- 2258252
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Débit]# <- 2000
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Error flags]# <- 0
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Fabrication number]# <- 10024068
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Firmware version]# <- 111
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][ID]# <- 5500572
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Màj]# <- 2024-08-26T18:28:03Z
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Manufacturer]# <- IMT
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Nb accès]# <- 187
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Reserved VIF extension]# <- 4556
[2024-08-26 20:30:13] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Type]# <- Water
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Compteur global eau]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Débit]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Error flags]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Fabrication number]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Firmware version]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][ID]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Màj]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Manufacturer]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Nb accès]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Reserved VIF extension]# est de type info Json : ignorée
[2024-08-26 20:33:52] DEBUG : Cmd #[Agrégateurs][Agrégateur H2O][Type]# est de type info Json : ignorée
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][05500572B4250107]# <- { "MBusData": { "SlaveInformation": { "Id": "5500572", "Manufacturer": "IMT", "Version": "1", "ProductName": null, "Medium": "Water", "AccessNumber": "188", "Status": "00", "Signature": "0000" }, "DataRecord": [ { "@id": "0", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume (m m^3)", "Value": "2258252", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "1", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "1", "Device": "0", "Unit": "Volume (m m^3)", "Value": "0", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "2", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "0", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "3", "Function": "Maximum value", "StorageNumber": "0", "Unit": "Volume flow (m m^3/h)", "Value": "2000", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "4", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Time Point (time & date)", "Value": "2024-08-26T19:52:00", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "5", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "0", "Device": "0", "Unit": "Fabrication number", "Value": "10024068", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "6", "Function": "Instantaneous value", "StorageNumber": "0", "Tariff": "0", "Device": "1", "Unit": "Fabrication number", "Value": "5500572", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "7", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Firmware version", "Value": "111", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "8", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Hardware version", "Value": "1", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "9", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Error flags", "Value": "0", "Timestamp": "2024-08-26T18:29:03Z" }, { "@id": "10", "Function": "Instantaneous value", "StorageNumber": "0", "Unit": "Reserved VIF extension", "Value": "4556", "Timestamp": "2024-08-26T18:29:03Z" } ] } }
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Compteur global eau]# <- 2258252
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Débit]# <- 2000
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Error flags]# <- 0
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Fabrication number]# <- 10024068
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Firmware version]# <- 111
[2024-08-26 20:33:52] INFO : Cmd #[Agrégateurs][Agrégateur H2O][ID]# <- 5500572
[2024-08-26 20:33:54] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Màj]# <- 2024-08-26T18:29:03Z
[2024-08-26 20:33:54] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Manufacturer]# <- IMT
[2024-08-26 20:33:54] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Nb accès]# <- 188
[2024-08-26 20:33:54] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Reserved VIF extension]# <- 4556
[2024-08-26 20:33:54] INFO : Cmd #[Agrégateurs][Agrégateur H2O][Type]# <- Water
Rien d’anormal si ce n’est les lignes dans le logs avec : Cmd #[Agrégateurs][Agrégateur H2O][Compteur global eau]# est de type info Json : ignorée
Est-ce que quelqu’un aurait une idée de la cause de ce problème ?
Merci beaucoup
Joël












