Transmission valeurs du compteur d'eau sur Jeedom

Bonjour

J’ai installé sur un RPI2 le programme wmbusmeters et je récupère bien les informations en Json:

{"media":"water","meter":"dme_07","name":"watermeter","id":"32403010","total_m3":1056.258,"status":"ERROR_FLAGS_0","timestamp":"2024-03-29T15:23:31Z","device":"rtlwmbus[00000001]","rssi_dbm":16}

Wmbusmeters avec la commande shell suivante envoie le fichier à Mqtt sur Jeedom (NUC Proxmox):

shell=/usr/bin/mosquitto_pub -h 192.168.1.XXX -p 1883 -t wmbusmeters/"$METER_ID" -m "$METER_JSON" -u jeedom -P mot_de_passe


$METER_ID" = N° de compteur
$METER_JSON= fichier Json

La connexion est refusée:

root@raspberrypi:/var/log/wmbusmeters# cat wmbusmeters.log
(wmbusmeters) logging started 2024-03-29 17:17:11 _
[2024-03-29_17:17:11] Started config rtlwmbus[00000001] listening on none
(wmbusmeters) waiting for telegrams
[2024-03-29_17:17:13] (memory) rss 4218880 peak 4.02 MiB
(wmbusmeters) started meter 1 (MyTapwater 32403010 dme_07) identity mode: id R32403010
[2024-03-29_17:17:35] (shell) /bin/sh exited with non-zero return code: 127
[2024-03-29_17:18:25] (shell) /bin/sh exited with non-zero return code: 127
[2024-03-29_17:19:17] (shell) /bin/sh exited with non-zero return code: 127

J’accède bien à Mqtt avec Mqtt Explorer avec l’adresse IP et le User.

J’ai défini un équipement dans mqtt Manager :

J’ai passé la journée la dessus et je dois dire que je sèche.

Bonjour
Je me réponds à moi même. Si ça peux servir à un membre du forum.

En premier lieu l’erreur code : 127 tout simplement il fallait installer sur le RPI le paquet mosquitto-clients pour que la commande mosquitto_pub existe sur le système. C’était tout bête.

J’ai créé un utilisateur titi sur le RPI avec la commande :

mosquitto_passwd motdepasse titi

Ce qui donne pour exemple:

cat motdepasse
titi:$7$101$h5ooOxiRxgEL6uw8$QC+6WBV8oWf8cDr

Que j’ai recopié sur jeedom dans le fichier /var/www/html/plugin/mqtt2/data/passwords après le mot de passe jeedom.

cat passwords
jeedom:$7$101$XJA3gvvgHof+N7cp$uEqMBEFnqYvF
titi:$7$101$h5ooOxiRxgEL6uw8$QC+6WBV8oWf8cDr

puis j’ai relancé le deamon de Mqtt Manager.

J’ai essayé de mettre le nouvel utilisateur titi après l’utilisateur jeedom dans la configuration de Mqtt Manager Mais cela n’a pas fonctionné.

Pour information le fichier wmbusmeters.conf :

shell=/usr/bin/mosquitto_pub -h 192.168.1.XXX -p 1883 -t wmbusmeters/"$METER_ID" -m "$METER_JSON" -u titi -P toto

le paramétrage de l’équipement dans Jeedom est décrit dans mon post précédent.

On peut constater que l’on a pas besoin de certificat.

Le résultat:
image
Le status = ERROR_FLAGS_0 signifie que la tête émettrice est défectueuse, le service des eaux me la changera en février 2025. Dommage.

En conclusion: J’y ai passé 2 jours mais maintenant je sais ce que fait Mosquitto, des fois il faut mettre les mains dans le cambouis. J’ai utilisé aussi un très bon outil Mqtt Explorer.

Une autre réflexion: est il intéressant de mettre la clé SDR sur le RPI ou sur une VM du Proxmox ou sur Jeedom? Je suis intéressé par vos remarques, je ne sais pas si ce que j’ai fait est très propre.

Bonjour,

savez vous si le compteur flowIQ 2200 fonctionne avec wmbusmeter. je n’arrive à trouver aucune infos.

il serait compatible Wireless M-Bus C1/T1

merci

Bonjour

Voir :https://github.com/wmbusmeters/wmbusmeters

image

Cordialement

1 « J'aime »

avant d’acheter la clé et pour voir si j’arrive à l’installer

je l’ai installé via docker mais il ne parle pas de mqtt.

https://hub.docker.com/r/wmbusmeters/wmbusmeters

j’ai le container qui est Run

j’ai installé mosquito-client et il est run et en plus il y a le mqtt discovery qui ira hyper bien avec plugin-mqttdiscovery :grin: :grin:

root@Wmbuster:~# systemctl status mosquitto
* mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; preset: enabled)
     Active: active (running) since Tue 2024-08-20 09:51:28 UTC; 25min ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
    Process: 11783 ExecStartPre=/bin/mkdir -m 740 -p /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 11784 ExecStartPre=/bin/chown mosquitto /var/log/mosquitto (code=exited, status=0/SUCCESS)
    Process: 11785 ExecStartPre=/bin/mkdir -m 740 -p /run/mosquitto (code=exited, status=0/SUCCESS)
    Process: 11786 ExecStartPre=/bin/chown mosquitto /run/mosquitto (code=exited, status=0/SUCCESS)
   Main PID: 11787 (mosquitto)
      Tasks: 1 (limit: 76662)
     Memory: 1.2M
        CPU: 389ms
     CGroup: /system.slice/mosquitto.service
             `-11787 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

j’ai modifié le fichier wmbusmeters.conf

loglevel=normal
# You can use auto:t1 to find the device you have connected to your system.
# But do not use auto here since it will cause unnecessary and slow probing of the serial ports.
device=/dev/ttyUSB0:im871a:c1,t1
# And mbus
device=MAIN=/dev/ttyUSB1:mbus:2400
# But do not probe this serial tty.
donotprobe=/dev/ttyACM2
logtelegrams=false
format=json
meterfiles=/var/lib/wmbusmeters/meter_readings
meterfilesaction=overwrite
meterfilesnaming=name
meterfilestimestamp=day
logfile=/var/log/wmbusmeters/wmbusmeters.log
shell=/usr/bin/mosquitto_pub -h 192.168.1.59 -t wmbusmeters/$METER_ID -m "$METER_JSON" -u admin -p anthony
alarmshell=/usr/bin/mosquitto_pub -h localhost -t wmbusmeters_alarm -m "$ALARM_TYPE $ALARM_MESSAGE"
alarmtimeout=1h
alarmexpectedactivity=mon-sun(00-23)
ignoreduplicates=true

les logs du container :

Cannot write meter files into dir "/var/lib/wmbusmeters/meter_readings"
Could not open log file /var/log/wmbusmeters/wmbusmeters.log
Cannot write meter files into dir "/var/lib/wmbusmeters/meter_readings"
Could not open log file /var/log/wmbusmeters/wmbusmeters.log
Cannot write meter files into dir "/var/lib/wmbusmeters/meter_readings"
Could not open log file /var/log/wmbusmeters/wmbusmeters.log

j’ai modifier cette ligne avec l’adreesse ip de mon jeedom avec mqtt
j’ai rajouté -u admin -p anthony qui sont les ident et mdp de mqtt

shell=/usr/bin/mosquitto_pub -h 192.168.1.59 -t wmbusmeters/$METER_ID -m "$METER_JSON" -u admin -p anthony

j’aimerais au moins voir quelques choses sur mqtt explorer

la doc est lights pour une install en dehors de HA.

Bonjour

J’ai installé dans une VM un serveur Fedora 40, Fedora est mon système sur mon PC.
Le paquet wmbusmeters est disponible pour cette distribution. Voir https://github.com/wmbusmeters/wmbusmeters

En regardant l’history j’ai installé les paquets suivants:

  • rtl-sdr
  • wmbus
  • wmbusmeters

Mon paramétrage :

root@wmbusmeters3:/etc# cat wmbusmeters.conf
loglevel=normal
# Ce paramétrage réduit la charge CPU de la VM
device=rtlwmbus:CMD(rtl_sdr -f 868.95M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a -f)
#
format=json
#
# Set to true to capture all received telegrams in log file.
logfile=/var/log/wmbusmeters/wmbusmeters.log
logtelegrams=false
#
alarmtimeout= 120s
#
shell=/usr/bin/mosquitto_pub -h 192.168.1.28 -p 1883 -t wmbusmeters/"$METER_ID" -m "$METER_JSON" -u USER -P PASSWORD
#

Dans le répertoire /etc/wmbusmeters.d
J’ai créé le fichier de paramétrage de mon compteur : MyTapwater

root@wmbusmeters3:/etc/wmbusmeters.d# cat MyTapwater
name=MyTapwater
driver=dme_07
id=XXXXXXXXXXXX

avec driver le protocole donné pour le type de compteur voir le github de wmbusmeters
et ID le numéro noté sur le compteur.

Remarques : le daemon mosquitto est arrêté, l’installation du paquet mosquitto est présent simplement pour avoir le programme mosquitto_pub pour publier les infos du compteurs sur le serveur mqtt.
La clé utilisée est une RTL-SDR V3. Attention l’utilisation de la clé SDR est gourmande en CPU voir le paramétrage du fichier wmbusmeters.conf.

Remarques sur ton paramétrage :

  • Je connais mal Docker, je ne peux pas d’aider sur ce point
  • Dans ton paramétrage tu as déclaré 2 devices
  • Essaye de créer le répertoire /var/log/wmbusmeters pour le log
  • Tu n’auras pas de message dans ton serveur mqtt puisque wmbusmeters ne reçoit pas d’informations d’un compteur.
  • Je trouve la documentation de wmbusmeters très complète et offre de multiples possibilités mais il faut prendre le temps de lire et de comprendre qui ceci dit n’est n’est simple.

Cordialement

1 « J'aime »

j’ai recu ma clé (RTL SDR V5) et refait un container. j’ai toujours un probléme de dossier de logs et pourtant ils sont au bon endroit

Could not open log file /wmbusmeters/logs/wmbusmeters.log Cannot write meter files into dir "/wmbusmeters/logs/meter_readings" In config, not a valid meter id nor a valid sequence of match expression "" In config, not a valid meter id nor a valid sequence of match expression "U23BA210419D" Could not open log file /wmbusmeters/logs/wmbusmeters.log

may the log and meters files is in folder : opt/wmbusmeters/logs/

image

et j’ai aussi un probléme le numéro de mon compteur. je les ai tous essayé amais rien ne veut.

j’ai creer mon fichier mytapewater avec ca:

name=Flowiq
id=U23BA210419D
key=NOKEY
driver=flowiq2200
pollinterval=60s
#calculate_total_l=total_m3

merci

Bonjour

Comme dit précédemment dans mon message je connais très mal Docker, des paramètres sont à déclarer dans le docker compose. Je ne pourrais pas t’aider.
Si j’ai bien compris tu as acheté une clé Nooelec RTL-SDR v5, ce n’est pas une clé de marque RTL-SDR et c’est un nouveau modèle, je ne sais pas si les librairies sont compatibles.

Tu es sur Proxmox je crois, je t’invite à créer une VM server Fedora et installer les paquets natifs comme expliqué dans mon message précédent.
La différence entre Fedora et Debian c’est l’installation et la mise à jour des paquets:
Debian :
installation: apt install lepaquet
mise à jour : apt upgrade
Fedora:
Installation dnf install lepaquet
mise à jour : dnf update

Dans ce cas je pourrais t’aider mais pas avec Docker.
Cordialement

merci echo.
j’ai fait une VM Fedora server.
j’ai

  1. installer wmbusmeters avec les paquets associé ( lister dans ton 1er post)
  2. rempli le fichier wmbusmeters.conf
  3. creer le fichier mytapwater avec les éléments ( id a verifier car je ne sais pas lequel c’est)

ce que je ne vois :

dans var/log je ne retrouve pas de logs.

admin@localhost:~$ tail -f /var/log/wmbusmeters/wmbusmeters.log
tail: impossible d'ouvrir '/var/log/wmbusmeters/wmbusmeters.log' en lecture: Aucun fichier ou dossier de ce nom
tail: aucun fichier restant
admin@localhost:~$ tail -f /var/log/syslog
tail: impossible d'ouvrir '/var/log/syslog' en lecture: Aucun fichier ou dossier de ce nom
tail: aucun fichier restant

la doc dit ceci mais moi je n’ai rien

une clé rtlsdr, assurez-vous que les binaires /usr/bin/rtl_sdret /usr/bin/rtl_wmbusexistent et sont exécutables

la clé usb est bien vu car c’est la 4eme mais malgré les commandes comme sur debian et jeedom je n’arrive pas à voir quelle TTY ( cde : ls -l /dev/serial/by-id)

admin@localhost:~$ lsusb
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
admin@localhost:~$ 

les erreurs logs

admin@localhost:~$ wmbusmeters --useconfig=/
No such key: 
# You can use auto:t1 to find the device you have connected to your system.
# But do not use auto here since it will cause unnecessary and slow probing of the serial ports.
device
Cannot write meter files into dir "/wmbusmeters/logs/meter_readings"
"ot a valid meter id nor a valid meter match expression "U23BA210419D
"ot a valid meter key "NOKEY
Could not open log file /opt/wmbusmeters/logs/wmbusmeters.log

j’ai pourtant créer le fichier « /opt/wmbusmeters/logs/wmbusmeters.log »

voila pour le moment :slight_smile:

Bonjour anthopocket

Il y a pas mal de choses à voir, je ne veux pas polluer le forum avec du Linux.
Je vais te répondre en message privé si tu es d’accord.

Cordialement

Attention après essai (Merci @echo), mon compteur n’est pas compatible avec WMBUSMETERS. il faut bien regarder les références des compteurs afin qu’il soit compatible M BUS.