Perdu dans mqtt

Bonjour, je cherche à faire exactement la même chose que toi !
Pour l’instant je rame aussi…

Si jamais j’arrive à quelque chose je te tiens au courant !

Edit : Regarde ce lien https://www.domo-blog.fr/la-domotique-libre-et-hybride-entre-home-assistant-et-jeedom/

J’ai réussi à afficher une sonde en suivant à peu près ce site (les versions ont évoluées)

Bonjour,

Pour éviter de redémarrer HA à chaque modif. du configuration.yaml, j’ai regroupé toutes mes entitées dans un même fichier comme demander dans les nouvelles version de HA à venir:

Dans configuration.yaml, ajout de la ligne:

mqtt: !include mqtt.yaml

Et tous les entitées MQTT sont dans le fichier mqtt.yaml, sous cette forme:

discovery_prefix: homeassistant

sensor:
  - name: "Température Congelateur"
    state_topic: home/rtl433/congelateur/sensor/temperature
    unique_id: congelateur/temperature
    expire_after: '300'
    force_update: true
    device_class: temperature
    unit_of_measurement: '°C'
    device:
      identifiers:
        - rtl433tomqtt_geonaute_oregon-thr228n
      manufacturer: Oregon
      model: thr228n
      name: Oregon - Geonaute THR228N temperature sensor (rtl433tomqtt)
      sw_version: rtl433tomqtt - 18/10/2022
      suggested_area: Buanderie

# ...

binary_sensor:
  - name: Mode chauffage
    state_topic: home/ot/dedietrich_mcr24/binary_sensor/centralheating
    unique_id: ot-dedietrich_mcr24-centralheating
    force_update: True
    payload_on: 1
    payload_off: 0
    expire_after: 0
    device:
      identifiers:
        - mqtt_opentherm
      name: OpenTherm
      model: otmonitor
      sw_version: 6.2
      manufacturer: www.nodo-shop.nl
      configuration_url: "http://hompi:8082/status.html"
      suggested_area: Sous-sol

switch:
  - name: 'Sortie #0 Prise bureau'
    enabled_by_default: true
    payload_on: '[0, ''on'']'
    payload_off: '[0, ''off'']'
    unique_id: 01a2f34b_switch_output0_enocean2mqtt
    command_topic: home/enocean/prisebureau/switch/actuatorSetOutput
    state_topic: home/enocean/prisebureau/binary_sensor/output0
    state_on: 'on'
    state_off: 'off'
    availability:
      - topic: home/enocean/sys/binary_sensor/status
    device:
      identifiers:
        - enocean_01a2f34b
      manufacturer: Nodon
      model: ASP-2-1-01
      name: Nodon - EnOcean Prise metering
      sw_version: enocean2mqtt - 19/10/2022 21:16:51
      suggested_area: Bureau

J’ai rajouter le bloc paramètres device pour chaque entité pour quelles soit regreoupées par appareil (device) dans l’interface. Mais ca reste optionnel.

Aprés modification de ce fichier, il suffira de dire à HA de relire sa conf. des entités ici:

Voilà, si cela peut aider

2 « J'aime »

Bonsoir,

J’ai mis un peu de temps à répondre car il me fallait m’assurer de bien avoir configuré jeedom pour l’envoie d’infos vers mon brocker c’est chose faite.

Actuellement le flow nodeRed reçois bien les infos du brocker.
Retour du debug:

08/11/2022 06:51:24node: debug 4
jMQTT/couloir/detecteur/detection : msg.payload : Object
{ name: "name", value: 0 }

Il me reste à les remonter dans HA et là je coince. J’ai tenté avec la syntaxe de @vdomos sans réelle succès, je dois louper une étape. Je sollicite donc votre aide afin de comprendre là où ça coince.

Voici ce que j’ai dans le yaml

mqtt:
    sensor:
       - name: "Detecteur_couloir_detection"
         state_topic: "jMQTT/couloir/detecteur/detection"

Merci pour votre aide

Salut,

généralement les capteurs de mouvements comme ce que tu as l’air de faire c’est avec un binary_sensor et pas un sensor.
Ensuite j’ajouterais une classe pour dire que c’est un détecteur de mvt.

device_class: motion

Et ensuite suivant les valeurs que Jeedom envoi faut aussi mettre les infos des valeurs…
Par défaut il attend ON et OFF… mais si c’est autre chose faut le mentionner:

payload_on: 1
payload_off: 0

Toutes le options ici:

Bonsoir,

Comme le dit @AlexHass, ca sera plutot comme ceci avec le value_template pour décoder le json:

mqtt:
    binary_sensor:
       - name: "Detecteur_couloir_detection"
         state_topic: "jMQTT/couloir/detecteur/detection"
         value_template: '{{ value_json.value }}' 
         device_class: motion
         payload_on: 1
         payload_off: 0

Bonjour à vous et merci.

@AlexHass : je te remercie pour le lien, je suis entrain de regarder, c’est bien plus velu que ce que je m’imaginais.
@vdomos : J’ai tenté ta syntaxe et rien.

Je me demande si j’ai vraiment compris le fonctionnement, car quand je vais dans mes intégrations et que je rafraichis le module mqtt, il ne m’affiche ni service, ni entité, ni appareil.

Ai-je réellement besoin de NodeRed?

Le module MQTT étant connecté au brocker, il récupère bien les infos directement en fonction de ce que je mets dans le fichier configuration.yaml?

Enfin dernière question pour le moment :slight_smile: . Actuellement, mon détecteur de mouvement ne change pas d’état donc hormis quand je demande à jeedom de tester je ne reçois rien. Cela peut-il expliquer que je ne remonte rien dans HA?

Encore merci

Salut,

Normalement, les sensor et binary_sensor que tu créé manuellement dans le fichier de config, une fois HA redémarré, doivent apparaitre dans les entitiés, mais ne sont pas liées à l’intégration MQTT, car ce n’est pas elle qui les a créés.

Absolument pas besoin. Tu peux tout faire avec HA natif.

Ce qui vient de fichier de config c’est pour définir tes entités dont le fonctionnement dépend de ce qui est envoyé sur les topics en question.

Ben effectivement si rien n’est envoyé sur les topics en question il ne se passera rien dans HA…
Pour voir ce qui se passe sur MQTT tu peux aller dans les intégrations et dans la tuile MQTT, aller sur « configurer » ça te donne une page d’outils.
Là dans écouter, tu peux soit entrer ton topic, soit « # » pour écouter tout ce qui se passe sur ton MQTT, ça te permettra de voir le contenu des messages.

Merci @AlexHass

Donc si je comprends bien tes explications.
Mon flow nodeRed m’a juste permis de voir arriver des infos.

L’intégration MQTT permet seulement de créer la connexion à mon brocker.
Le fichier configuration, contient la définition des entités pour lesquelles on souhaite récupérer les valeur dans le topic, c’est bien cela?

Donc en relançant HA, je devrais avoir un nouvel appareil qui apparait et ce même si jeedom n’a rien envoyé?

J’ai fait le teste comme tu me le conseillais et si je mets’#’ j’obtiens:

Message 1 reçu sur jMQTT/couloir/detecteur/detection à 7:53 :
{
    "name": "Detecteur_couloir",
    "detection": 0
}
QoS: 0 - Retain: true
Message 0 reçu sur jMQTT/status à 7:53 :
online

Si je lui demande d’écouter sur ‹ jMQTT/couloir/detecteur/detection › j’obtiens

Message 2 reçu sur jMQTT/couloir/detecteur/detection à 7:54 :
{
    "name": "Detecteur_couloir",
    "detection": 0
}
QoS: 0 - Retain: true
Message 1 reçu sur jMQTT/couloir/detecteur/detection à 7:53 :
{
    "name": "Detecteur_couloir",
    "detection": 0
}

j’en déduis donc que les messages arrivent bien, c’est bien cela?

@vdomos : J’ai tenté ta syntaxe et rien.

Juste pour comprendre, quand tu dis « rien », tu regardes ou ?

Les nouvelles entités sont visibles dans « Paramètres/Appareils et services » dans l’onglet « Entités ». Là tu peux les chercher par une partie de leur nom => « couloir » par exemple.

Tu pourras les rajouter dans une « carte » du tableau de bord après.

Peux tu copier ce que tu as mis dans le configuration.yaml exactement ? si elle n’apparait pas.

Tu peux aussi fouiller dans le fichier log home-assistant.log.
Après rechargement de la configuration des « Entités MQTT », il y a un message qui indique la découverte d’un nouveau « sensor/entity » comme ceci:

2022-11-09 23:21:24.485 INFO (MainThread) [homeassistant.helpers.entity_registry] Registered new sensor.mqtt entity: sensor.batterie_node60_bassin

Bonjour,

Effectivement je ne regardais pas au bon endroit. Je m’attendais à les voir sur la tuiles dans intégrations.
Voici ce que j’ai actuellement dans configuration.yaml

mqtt:
  binary_sensor:
    - name: "Detecteur_couloir_detection"
      state_topic: "jMQTT/couloir/detecteur/detection"
      unique_id: "Detecteur_couloir"
      value_template: "{{ value_json.detection }}"
      device_class: motion
      payload_on: 1
      payload_off: 0

et dans HA

maintenant cette entité n’est lié à aucun appareil et je souhaiterai pouvoir regrouper les commandes lié sous un appareil
Est-ce possible?

Merci

Salut,

Je ne crois pas que l’on puisse définir un « device » quand on fait des entités MQTT manuellement comme ça. A ma connaissance, c’est uniquement quand un appareil utilise la fonction MQTT discovery pour s’auto configurer dans HA que ça regroupe en device.

Exemple un device détecteur de mvt zigbee que zigbee2mqtt à créé:

La doc qui pointe sur la notion de discovery:

@AlexHass, @alexb81 : Si c’est possible.

Il faut rajouter une section device dans la config de ton entité MQTT.
Regarde l’exemple de @vdomos dans son premier message où relis ce sujet

Plus d’info dans la doc binary_sensor MQTT

2 « J'aime »

Ah oui :wink:
J’était resté conditionnel et j’avais raté l’exemple donné.
Mais dans la doc de binary_sensor MQTT que tu partages ils disent que ce n’est que avec la discovery.
Du coup je ne sais pas trop ce que ça veut dire

Oui je m’étais également fait avoir par la doc aussi et puis un jour j’ai essayé et ça a fonctionné :smile:

Par contre effectivement j’avais oublié d’indiquer que le unique_id est obligatoire, mais @alexb81 l’a déjà dans son code.

merci à vous je vais creuser cette piste.
J’étais effectivement resté sur le fait que cela ne fonctionnait qu’en mode discovery.

Je vais tester. Ce qui me semble bizarre, c’est de devoir définir le device à chaque entité et pas l’inverse définir le device et y lister les différentes entités.
je vais tester

Dans le fichier de configuration ce que tu entre c’est des entités et elle sont toutes regroupées par type. Du coup ça colle pas avec créer des devices qui pourraient avoir différents types.
Ensuite créer des entités à la main c’est sympa mais en général ça devrait être loin de la majorité de ce que tu aura. Sauf si tu veux dupliquer tout ton Jeedom dans HA de cette façon là :slight_smile:

Salut…
Un truc assez bisar, mais ce que dit la doc pour la découverte auto:
« Après le premier message à config, les messages MQTT envoyés à la rubrique d’état mettront à jour l’état dans Home Assistant. »

  • Configuration topic: homeassistant/ICI le type de sensor/ICI le nom du topic/config

  • State topic: homeassistant/ICI le type de sensor/ICI le nom du topic/state

  • Payload: {« name »: « nom », « device_class »: « la classe voulue », « state_topic »: « homeassistant/ICI le type de sensor/ICI le nom du topic/state »}

QUI PERMET DE RECUPERER DANS HA DIRECTEMENT

Du coup dans JMQTT de Jeedom, j’ai fais le test avec un sensor avec la classe « Power » et aussi un autre avec la classe « temperature »

Peut être réalisé pour tout type de « Sensors » ou « Entities with command topics »

:face_with_diagonal_mouth: POUR Y VOIR PLUS CLAIR :eyes: !

SUITE SUR :point_down:

Récupération automatique des entités de Jeedom dans HA 👌

@+DoM(Ô¿Ô)

3 « J'aime »

Bonjour,

Merci beaucoup pour le temps que tu as passé à rédiger, c’est une mine d’or.

Personnellement le broker est sur la machine jeedom, mais je ne pense pas que cela change la donne.
J’ai configuré l’intégration mqtt pour qu’elle pointe sur le broker en question.

En voici les paramètres au cas où ces derniers ne seraient pas les mêmes chez toi.

image

image

quand je lui demande d’écouter sur un topic issue de Jeedom, j’ai bien la réponse attendue.

voici ma conf jMQTT sous jeedom
1 brocker
Onglet équipement

Onglet Broker

Un équipement rattaché ( j’en ai un autre fonctionnant avec le fichier configuration.yaml)
Onglet équipement

Onglet commande
J’ai créé la commande action suivante:

après avoir lancé un test (utilisation du bouton tester), j’ai une commande info qui s’est crée toute seule sous jeedom:

Donc je pense pouvoir dire que l’option récupération auto fonctionne.

Maintenant, coté HA, je ne trouve pas la commande action « ouverture_fenetre_parents »

J’ai dû louper quelque chose dans tes explications. J’y retourne :slight_smile:

Vraiment merci beaucoup pour ton aide

Salut…
Le topic n’est pas bon… dans la config
Il faut pointé vers « homassistant/sensor/jeedom » [ Jeedom ou ce que tu veux] .

C’est vraiment le :

[homassistant/sensor] qui est essentiel !

@+Dom
PS: Je suis dispo dans 30 minutes sur le PC, en ce moment Tel …

:face_with_diagonal_mouth: POUR Y VOIR PLUS CLAIR :eyes: !

SUITE SUR :point_down:

Bonjour à tous,

Grace à l’aide de @Doubledom , j’ai pu avancer sur mon projet de transfert des commandes du kit de seccu freebox vers HA.

Merci à vous tous. Quand j’aurais quelque chose de parlant, je vous le communiquerais dans un autre post. En attendant je clos celui-ci.

Au besoin, n’hésitez pas à lire la prose de DoubleDom en fin de sujet