MyElectricalData : Pb configuration avec EMQX

Bonsoir à tous :slight_smile:

Je lance une bouteille à la mer pour résoudre un souci dans mon installation de MyElectricalData.

L’installation dans HACS se passe bien. La connexion avec influxDB est OK. J’attends encore de configurer la partie enedis car leur interface est dans les choux depuis plusieurs jours :confused:.

Le problème que je rencontre viens de la connexion avec le broker mqtt. Dans mon cas j’ai EMQX et impossible de me connecter dessus . J’ai l’erreur suivante :

/etc/cont-init.d/32-nginx_ingress.sh: executing
/etc/cont-init.d/91-mqtt_autodiscover.sh: executing
[20:02:17] INFO: mqtt_autodiscover is defined in options, attempting autodiscovery...
[20:02:17] FATAL: No internal MQTT service found. Please install Mosquitto broker
Error : /etc/cont-init.d/91-mqtt_autodiscover.sh exiting 1
/etc/cont-init.d/99-run.sh: executing 
creating symlink
[20:02:17] INFO: Using database file found in /config/myelectricaldata
[20:02:17] INFO: Using config file found in /config/myelectricaldata/config.yaml
Config file is a valid yaml

Dans le fichier de config, j’ai les paramètres suivants :

mqtt_enable='true'
mqtt_hostname='mosquitto'
mqtt_port='XXXX'
mqtt_username='XXXX'
mqtt_password='XXXX'
mqtt_prefix='myelectricaldata'
mqtt_client_id='myelectricaldata    '
mqtt_retain='true'
mqtt_qos='0'

Dans le hostname et port, j’ai testé avec :

  • Url hassio (avec et sans port)
  • IP hassio
  • Mosquitto, core-mosquitto par acquis de conscience (mais KO)
  • Container EMQX (avec et sans ID docker)
    ** Plusieurs listeners créés en tcp,ws etc …

Si quelqu’un à une idée je suis preneur :slight_smile: Merci d’avance :slight_smile:

Therealcorwin.

Ma configuration

  • Core 2024.1.6
  • Supervisor 2024.01.1
  • Operating System 11.5
  • Interface utilisateur 20240104.0
  • EMQX 0.4.0

Je sais pas ou tu as récupéré ce Format !
Le reste comment ?

Hello :slight_smile:

Merci de ta réponse.

C’est le format dans les logs.

le fichier de conf donne ca

cycle: 14400  # 4H
debug: true
log2file: false
wipe_influxdb: false # Work only with influxdb > 2.X
# Par défaut le backend en local dans le /data/cache.db du conteneur.
# Mais il est possible de basculer sur une base de données externe de type SQLite ou PostgreSQL
# Exemple pour Postgres :
# storage_uri: postgresql://myelectricaldata:myelectricaldata@postgres:5432/myelectricaldata
tempo:
  enable: false
  price_blue_hc: 0.097
  price_blue_hp: 0.1249
  price_red_hc: 0.1216
  price_red_hp: 0.6712
  price_white_hc: 0.114
  price_white_hp: 0.1508
home_assistant:
  enable: true
  discovery: true
  discovery_prefix: homeassistant
home_assistant_ws: # FOR ENERGY TAB
  enable: true
  ssl: false
  token: "TOTO"
  url: hassio.xxxxx:8123

influxdb:
  enable: true
  hostname: XXXXXX-influxdb
  port: 8086
  token: user:password
  bucket: "myelectricaldata/autogen"
  org: "-"
  # ATTENTION, L'activation de l'importation asynchrone va réduire fortement le temps d'importation dans InfluxDB
  # mais va augmenter la consommation mémoire & CPU et donc à activer uniquement sur un hardware robuste.
  method: synchronous    # Mode disponible : synchronous / asynchronous / batching
  # batching_options permet uniquement de configurer la methode `batching`.
  # Pour plus d'information : https://github.com/influxdata/influxdb-client-python#batching
  batching_options:
    batch_size: 1000
    flush_interval: 1000
    jitter_interval: 0
    retry_interval: 5000
    max_retry_time: 180_000
    max_retries: 5
    max_retry_delay: 125_000
    exponential_base: 2
mqtt:
  enable: true
  hostname: XXXXX
  port: 18830
  username: "XXXXX"
  password: "XXXXX"
  prefix: myelectricaldata
  client_id: myelectricaldata     # DOIT ETRE UNIQUE SUR LA TOTALITE DES CLIENTS CONNECTE AU SERVEUR MQTT
  retain: true
  qos: 0
myelectricaldata:
  "XXXXXXXXX":
    enable: 'true'
    token: TOKEN_DE_MON_PDL_1
    name: "Maison"
    addresses: 'true'
    cache: 'true'
    consumption: 'true'
    consumption_detail: 'true'
    consumption_price_base: '0.145907'
    consumption_price_hc: '0.124364'
    consumption_price_hp: '0.164915'
    consumption_max_date: "2021-06-01"
    consumption_detail_max_date: "2021-06-01"
    offpeak_hours_0: 22H00-6H00               # LUNDI
    offpeak_hours_1: 22H00-6H00               # MARDI
    offpeak_hours_2: 22H00-6H00               # MERCREDI
    offpeak_hours_3: 22H00-6H00               # JEUDI
    offpeak_hours_4: 22H00-6H00               # VENDREDI
    offpeak_hours_5: 22H00-6H00;12H00-14H00   # SAMEDI
    offpeak_hours_6: 22H00-6H00;12H00-14H00   # DIMANCHE
    plan: HC/HP
    production: 'false'
    production_detail: 'false'
    production_price: '0.0'
    production_max_date: "2021-06-01"
    production_detail_max_date: "2021-06-01"
    refresh_addresse: 'false'
    refresh_contract: 'false'

Réglage MQTT sur un Hostname particulier avec un port particulier ?
Voir les options dans le courtier si correspond ?

Résumé

A quel niveau ?

Quelques précision sur ma config :

  • Coté EMQX
    Il écoute sur le port 18830 en TCP

  • Zigbee2mqtt

mqtt://hassio.XXXXX:18830
Avec ce paramètre, les infos remontent bien dans EMQX.

  • Dans hassio (Intégration), pour MQTT

j’ai mis locahost, port:18830 et User/MDP (Pour répondre a ta question Oui j’ai testé avec les même paramètres)

Je pensais à un souci de résolution de nom. Mais cela ne vient pas de la.

Je suis pas un pro dans HASSIO. Je m’y suis remis après une treeeeeeees longue pause. Donc je suis un peu perdu.

Est-ce que tu as dans Modules complémentairesLe broker Mosquitto
image
et comment serait les réglages si présent

Ah !

Question que je me pose justement à ce sujet.

EMQX joue aussi le brokeur, non ? Sinon, j’ai mal compris son rôle.

La réponse est donc Non, j’ai pas installé Mosquitto Broker.

Si je l’installe en plus de EMQX ca va pas me foutre la grouille dans ma config ?

Si ton broker EMQX est ok, alors sert toi de lui ( je connais pas LOL), il faut que la config de MyElectiCalData partie MQTT soit bien configuré pour ce broker !
Voir le Hostname ?

mqtt:
  enable: true
  hostname: XXXXX
  port: 18830
  username: "XXXXX" # Ici pas de guillemet normalement
  password: "XXXXX" # Ici pas de guillemet normalement
  prefix: myelectricaldata
  client_id: myelectricaldata     # DOIT ETRE UNIQUE SUR LA TOTALITE DES CLIENTS CONNECTE AU SERVEUR MQTT
  retain: true
  qos: 0

Oui j’ai bien mis la bonne config. Sauf, si boulette. Mais la je vois pas trop ou.

Ou alors, le souci se situe sur EMQX niveau configuration. Mais je vois pas pkoi cela marche avec Zigbee2Mqtt mais que ça coince avec MyElectricalData :thinking:.

Le « Hostname » et port doivent correspondre avec celui de ton Courtier sur EMQX !

Essai aussi d’enlever les guillemets , bof

  username: "XXXXX" # Ici pas de guillemet normalement
  password: "XXXXX" # Ici pas de guillemet normalement

l’ erreur est bien

FATAL: No internal MQTT service found. .....................
mqtt:
  enable: true
  hostname: localhost
  port: 18830
  username: XXXX
  password: XXXX
  prefix: myelectricaldata
  client_id: myelectricaldata     # DOIT ETRE UNIQUE SUR LA TOTALITE DES CLIENTS CONNECTE AU SERVEUR MQTT
  retain: true
  qos: 0

Et toujours l’erreur.

Je vais poser la question sur le Git de l’auteur. Dans la log d’erreur il est spécifiquement précisé « Mosquitto Broker ». Donc Emqx peut être pas compatible.

Hello,

petite avancée dans ce bazar.
J’ai modifié la configuration dans " Hassio ==> Intégration ==> Mosquitto". Dans l’URL, au lieu de localhost j’ai remplacé par son nom d’hote ( ie toto.monrezo.lan)

Je vois bien une connexion dans EMQX

et quelques subscriptions dans le broker

Bon pour le moment je peux pas valider le fonctionnement, vu qu’ENEDIS est en carafe depuis plusieurs jours :confused: Je fermerais le topic quand je pourrais faire la manip sur le site.