Remontée MQTT

Mon problème

Je tente d’utiliser l’intégration mqtt pour remonter des informations en °C et des commandes pour piloter. Le broker est sur un Rpi.
Je n’utilise que « mqtt » quand je le met en écoute sur le topic sejour/temp je reçois bien les infos.

Mais je n’arrive pas à « sauvegarder » si je quitte mqtt il faut que je refasse l’écoute.

J’ai tenté d’intégré au panneau de bord
"- platform: mqtt
topic: sejour/temp "

mais rien ne fait

Ma configuration


System Information

version core-2022.10.5
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.10.5
os_name Linux
os_version 5.10.0-19-amd64
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 1
resources 0
views 1
mode storage
Recorder
oldest_recorder_run 28 octobre 2022 à 18:52
current_recorder_run 29 octobre 2022 à 11:06
estimated_db_size 0.27 MiB
database_engine sqlite
database_version 3.38.5

Sur nuc 5


Merci d’avance pour votre aide

Salut,

pas trop compris ce que tu essayes de faire.

Les messages postés sur le topic sejour/temp par quoi sont-ils publiés?

Si c’est par un script perso sur un Pi qui par exemple envoie juste une température en seul contenu, alors il faut configurer une entité à la main dans le fichier configuration.yaml

Per exemple:

C’est une première installation domotique avec un capteur zigbee. Le serveur domotique sur le Rpi publie sur sejour/temp l’info du capteur zigbee.

Sur HA installé sur nuc, j’aimerais récupérer les trames de ce topic.
Quand j’écoute dans l’intégration mqtt j’obtiens bien l’info :

Dans le fichier de config j’ai fais ça :
image

mais rien ne sors sur le tableau de bord

Tu fais une confusion entre le tableau de bord et la configuration.
C’est 2 choses indépendantes l’une de l’autre!

Le tableau de bord c’est pour afficher des choses et interagir avec tes appareil… mais ce n’est pas le coeur de HA.
La patie configuration c’est ce que te donne des entités et des appareils avec lesquels interagir.
De base ça se passe dans « Paramêtres > Appareils et Services »
Mais dans ton cas, comme ce que tu veux c’est un peu plus DIY, il va falloir mettre les mains dedans…

Et la partie « MQTT » que tu as ajouté dans la config du teableau de bord, elle n’est pas au bon endroit.
Il faut la supprimer de là et ensuite l’ajouter dans un fichier qui s’appelle /config/configuration.yaml
Puis il faut redémarrer le HA, puis tu pourra l’ajouter à ton écran, car ça aura créé en entité de type sensor avec le nom que tu lui a donné.

Oui sinon mieux, y’a la doc:

Super j’ai réussi merci !

Me reste à voir comment publier :slight_smile:

Facile, suffit d’appeler le service mqtt.publish :wink:

J’ai des soucis de remontée

parfois ça monte correctement et parfois ça remonte en inconnu :confused:
image

Ca peut venir de plusieurs choses, mais surtout de ton contenu dans le payload du MQTT.
Peut-être que mettre retain=true quand tu publie dans ton script peut résoudre ça.

Merci !

EDIT :

J’ai réussi à faire apparaitre un switch en faisant ceci :

mqtt:
  light:
      name: "Chevet switch"
      state_topic: "chambre/lampechevet"
      command_topic: "chambre/lampecheveton"
      brightness_state_topic: 'chambre/lampechevet'
      brightness_command_topic: 'chambre/chevetbrightset'
      payload_on: "1"
      payload_off: "0"
      optimistic: false
      qos: 0

Le soucis c’est que ça marche super bien quand cette lampe (variable) est à 1% , l’info renvoyée étant à 1.

Mais lorsque je fais varié ma lampe avec l’interrupteur par exemple, le switch se maintiens, ensuite j’éteins, le switch se remet à 0. Jusque là tout est normal.

Mais si je tente de rallumer, l’information était restée à une valeur comprise entre >1 et <=100, donc le switch ne va pas réussir à l’allumer.

Si c’est rallumé directement par l’inter entre >1 et <=100 le switch ne va pas indiquer que la lampe est On. Impossible d’agir dessus

Salut,

là c’est un soucis de gestion de topic on dirait.
Tu ne peux pas avoir le même topic pour les 2 fonctions state et brightness_state.
Pour une lumière le state c’est on ou off (que toi tu as mis sur 1 ou 0… ça ok)
Le mélange avec brightness qui est entre 0 et 255 généralement, fait que tu as ce comportement.
Au niveau de ta lampe, si tu fait la configuration toi même, il te faut des tate topics différents et une gestion différenciée de on/off et de l’intensité.
HA lui le gère tout seul une fois qu"il a des topics pour toutes les fonctions.

J’ai par exemple un ruban led qui gère on/off, intensité, couleur et effets.
J’ai fait le contrôleur moi-même avec un esp et j’ai ça comme topics:

  light:
    - name: "Ruban Led bureau Bureau"
      state_topic: "bureau/leds/bureau/state"
      command_topic: "bureau/leds/bureau/action"
      brightness_state_topic: "bureau/leds/bureau/brightness/status"
      brightness_command_topic: "bureau/leds/bureau/brightness/set"
      rgb_state_topic: "bureau/leds/bureau/rgb/status"
      rgb_command_topic: "bureau/leds/bureau/rgb/set"
      effect_command_topic: "bureau/leds/bureau/effect/set"
      effect_state_topic: "bureau/leds/bureau/effect/status"
      effect_list:
        - Solid
        - Rainbow
        - Wave
        - Breath
      brightness_scale: 255

Dans mon matériel actuel j’ai qu’un statut « état » qui envoi l’état dans une plage entre 0 et 100 ou 0 255 selon la plage.

Je n’ai pas d’état binaire. Il faudrait que je créer script qui fasse 0 si = 0 et 1 si >= 1
C’est dans mes cordes.

Alors je vais essayer
et mettre le statut compris entre 0 255 sur brightness_state_topic:

J’enlèverais complètement ça pour essayer à ta place:

      payload_on: "1"
      payload_off: "0"

Il a une marque ton matériel ou c’est du DIY?

C’est un fibaro dimmer 2 (fgd-215)

Sur un Rpi avec un logiciel domotique.

J’enlèverais complètement ça pour essayer à ta place:

      payload_on: "1"
      payload_off: "0"

En faisant ça je n’arrive plus a commander la lampe.

J’ai modifié et voici où j’en suis :

mqtt:
  light:
      name: "Chevet switch"
      state_topic: "chambre/lampechevet"
      command_topic: "chambre/lampecheveton"
      brightness_state_topic: 'chambre/lampechevet'
      brightness_command_topic: 'chambre/chevetbrightset'
      payload_on: "1"
      payload_off: "0"
      brightness_scale: 255

J’arrive a envoyé les valeurs pour faire varier avec ce paragraphe.

Quand la lampe est à 1 j’arrive à la passer à 0 et inversement.

Si je module la lampe à 50 et que je l’éteins je ne peux plus l’allumer. Ou si j’y arrive le switch reviens à 0.

Je vais créer mon information binaire pour que state_topic: « chambre/lampechevet » puise se baser sur un etat entre 0 ou 1

OK ton installation est pour le moins singulière :wink:
Si je comprends bien, tu as un Fibaro ZWave connecté à un PI par un autre système domotique, qui retransmet par MQTT à un autre PI qui lui a HA.
Pour arriver à quelque chose complet il va falloir trouver ce qui est envoyé dans MQTT et tout ce qui est possible depuis la source.

Mais bon effectivement, l’autre solution c’est de faire des workaround comme tu le disais du coup.

La première installation est sur un rpi oui

HA est sur une Nuc 5 sur Linux avec interface (c’est dans ma pres^^)

Je sais ce qui passe par mqtt parce que c’est moi qui créer les topics d’infos sur le RPi
Les commandes d’action aussi :wink:

Ensuite ça passe par des logiques : si le topic mqtt = 1 alors…

Et j’agis sur les matériels

Re bonjour,

J’ai tenté d’ajouter une lampe autre lampe rgb, la première était juste à variation.
voici sa composition dans le fichier config:

name: "Trépied"
      state_topic: "chambre/trepied/etatbinaire"
      command_topic: "chambre/trepied/onoff"
      brightness_state_topic: "chambre/trepied/etatlum"
      brightness_command_topic: "chambre/trepied/setlum"
      rgb_state_topic: "chambre/trepied/etatcouleur"
      rgb_command_topic: "chambre/trepied/setcouleur"
      color_temp_state_topic: "chambre/trepied/tempetat"
      color_temp_command_topic: "chambre/trepied/tempset"
      brightness_scale: 255

Lorsque je le met sur une carte comme la première je ne peux rien faire. (Rien n’est cliquable) Dans une carte autre carte, j’arrive à gérer la luminosité seulement.

Donc c’est un problème de carte…

comment faire pour afficher une carte dans le tableau de bord pour gérer le rgb, la température de couleur, etc?

EDIT :

derrière je ne peux pas cliquer/interagir, mais quand je clique sur les trois petits points, là je peux interagir

j’ai tenté de mettre :

- name: "Trépied"
      state_topic: "chambre/trepied/etatbinaire"
      command_topic: "chambre/trepied/onoff"
      brightness_state_topic: "chambre/trepied/etatlum"
      brightness_command_topic: "chambre/trepied/setlum"
      rgb_state_topic: "chambre/trepied/etatcouleur"
      rgb_command_topic: "chambre/trepied/setcouleur"
      color_temp_state_topic: "chambre/trepied/tempetat"
      color_temp_command_topic: "chambre/trepied/tempset"
      brightness_value_template: "{{ value_json.brightness }}"
      rgb_value_template: "{{ value_json.rgb | join(',') }}"
      brightness_scale: 255

C’est pas forcément un problème de carte… là comme tu le vois ça met l’état « Inconnu » au dessus du non. Ca pour moi ça veut dire que HA n’a pas reçu d’état sur le « state_topic ». Donc état inconnu…
Normalement tous mes appareils qui sont sur MQTT envoient de temps en temps leur état, au minimum à leur allumage.

Dans la carte lumière, les autes options apparaissent quand celle-ci est en état allumé.
Exemple avec ma bande led mqtt que j’avais partagé plus haut:

Si éteinte:
image

Si allumée:

HA gère tout seul normalement l’envoi des infos de couleur, luminosité & température quand la sélection est faite.