Modification sensor MQTT

Bonjour,

Depuis hier j’ai un message me disant que ma configuration de sensor mqtt ne fonctionnera plus.
Dans mon fichier sensors.yaml j’ai ce type de config

  - platform: mqtt
    name: "HumiditéInt"
    unique_id: uniqueid_HumiditéInt
    icon: mdi:water-percent
    state_topic: "weewx/loop"
    value_template: '{{ value_json.inHumidity | round(0) }}'
    unit_of_measurement: "%"
    
##########Précipitation##########    

  - platform: mqtt
    name: "Pluie/24h"
    unique_id: uniqueid_rain24_cm
    state_topic: "weewx/loop"
    value_template: '{{ value_json.rain24_cm | round(2)*10}}'
    unit_of_measurement: "mm"
    
  - platform: mqtt
    name: "Pluie/h"
    unique_id: uniqueid_rainRate_cm_per_hour
    state_topic: "weewx/loop"
    value_template: '{{ value_json.hourRain_cm| round(1)*10}}'
    unit_of_measurement: "mm"

Le message me dit :

Your manually configured MQTT sensor(s) needs attention
Ceci ne fonctionnera plus dans la version 2022.12.0. Veuillez y remédier avant de mettre à jour.
Manually configured MQTT sensor(s) found under platform key sensor.
Please move the configuration to the mqtt integration key and restart Home Assistant to fix this issue. See the documentation, for more information.

Jusqu’ici tout va bien
La doc m’indique de modifier comme cela

# Example configuration.yaml entry
mqtt:
  sensor:
    - state_topic: "home/bedroom/temperature"

Je modifie donc comme suit mais ma configuration ne passe pas


mqtt:
  sensor:
    - state_topic: "weewx/loop"
      name: "Pluie/24h"
      unique_id: uniqueid_rain24_cm
      value_template: '{{ value_json.rain24_cm | round(2)*10}}'
      unit_of_measurement: "mm"

Je suis conscient que ma question est probablement très bête et que la solution simple, j’ai cherché sur le forum mais je n’ai pas trouvé (je sens que j’ai mal cherché)

Je suis vraiment débutant et malgré toutes mes lectures, j’ai du mal à comprendre ce qu’est le platform, les templates, parfois simplement où il faut configurer les choses.
Je ne suis pas fan des vidéos youtube et préfère la lecture mais là je ne pige pas malgré mes recherches.

Merci de votre aide et si vous avez des liens pour m’orienter, je suis plus que preneur. Je vais d’ailleurs aller relire les topics principaux du forum en attendant de vous lire

Salut
2 fois state_topic c’est beaucoup non ?

1 « J'aime »

oui en effet, mauvais copié collé de ma part, il n’y en a bien qu’un dans mes tests, le premier uniquement

Vire le premier avec le - :wink:
ça donne quoi au niveau de l’erreur ensuite ? quel message s’il est toujours là

Pas mieux j’ai cela quand je clique sur le point d’exclamation rouge

end of the stream or a document separator is expected (128:1)

 125 | #    value_template: '{{ value_ ...
 126 | #    unit_of_measurement: "mm"
 127 |     
 128 | mqtt:
-------^
 129 |   sensor:

Je me demande si ce n’est pas le début de mon fichier sensor.yaml qui pose problème. (est que je peux le mettre en entier dans ce post ?

oui met le fichier complet et attention dirait qu’il y a un espace avant mqtt

Pas d’espace avant

###################################################
############## Raspbery Pi#########################
###################################################
  - platform: systemmonitor
    resources:
      - type: disk_free
        arg: /
      - type: disk_use_percent
        arg: /home
      - type: memory_use_percent
      - type: swap_use_percent
      - type: processor_use
      - type: last_boot
      
# Temperature CPU 
  - platform: command_line
    name: "RPi CPU Temperature"
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    value_template: '{{ value | multiply(0.001) | round(2) }}'
    unit_of_measurement: °c
#  - platform: template
#    sensors:
#      prochaine_certificat_a_expirer_sans_boucle:
#        friendly_name: "Prochain certificat à expirer"
#        attribute_templates:
#          timestamp: >
#            {# Définition de la liste des entités #}
#            {% set liste_des_entites = ['sensor.cert_expiry_timestamp_ndd1', 'sensor.cert_expiry_timestamp_ndd2'] %}
#            {% set timestamp_des_entites = [as_timestamp(states('sensor.cert_expiry_timestamp_ndd1'))|float,as_timestamp(states('sensor.cert_expiry_timestamp_ndd2'))|float] %}
#            {% set entite_la_plus_petite = timestamp_des_entites|min %}
#            {{timestamp_des_entites[timestamp_des_entites.index(entite_la_plus_petite)]}}
#        value_template: >
#          {# Définition de la liste des entités #}
#          {% set liste_des_entites = ['sensor.cert_expiry_timestamp_ndd1', 'sensor.cert_expiry_timestamp_ndd2'] %}
#          {% set timestamp_des_entites = [as_timestamp(states('sensor.cert_expiry_timestamp_ndd1'))|float,as_timestamp(states('sensor.cert_expiry_timestamp_ndd2'))|float] %}
#          {% set entite_la_plus_petite = timestamp_des_entites|min %}
#          {{liste_des_entites[timestamp_des_entites.index(entite_la_plus_petite)].split('sensor.cert_expiry_timestamp_')[1]}}

###################################################
############## Carburant# #########################
###################################################

#  - platform: prixCarburant
#    maxDistance: 20
    
###################################################
############## METEO MQTT WEEWX ###################
###################################################

##########Température##########    

#  - platform: mqtt
#    name: "T° Ext."
#    unique_id: uniqueid_Température_Extérieure
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.outTemp_C | round(2) }}'
#    unit_of_measurement: "°C"
    
#  - platform: mqtt
#    name: "T° Int."
#    unique_id: uniqueid_Température_Intérieure
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.inTemp_C | round(2)}}'
#    unit_of_measurement: "°C"
    
#  - platform: mqtt
#    name: "DewPoint"
#    unique_id: uniqueid_dewpoint_C
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.dewpoint_C | round(2)}}'
#    unit_of_measurement: "°C"

#  - platform: mqtt
#    name: "heatindex"
#    unique_id: uniqueid_heatindex_C
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.heatindex_C| round(2)}}'
#    unit_of_measurement: "°C"
    
##########Humidité##########    

#  - platform: mqtt
#    name: "HumiditéExt"
#    unique_id: uniqueid_HumiditéExt
#    icon: mdi:water-percent
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.outHumidity | round(0) }}'
#    unit_of_measurement: "%"
    
#  - platform: mqtt
#    name: "HumiditéInt"
#    unique_id: uniqueid_HumiditéInt
#    icon: mdi:water-percent
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.inHumidity | round(0) }}'
#    unit_of_measurement: "%"
    
##########Précipitation##########    

#  - platform: mqtt
#    name: "Pluie/24h"
#    unique_id: uniqueid_rain24_cm
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.rain24_cm | round(2)*10}}'
#    unit_of_measurement: "mm"
    
#  - platform: mqtt
#    name: "Pluie/h"
#    unique_id: uniqueid_rainRate_cm_per_hour
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.hourRain_cm| round(1)*10}}'
#    unit_of_measurement: "mm"

#  - platform: mqtt
#    name: "Pluie/jour"
#    unique_id: uniqueid_dayRain_cm
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.dayRain_cm | round(2)*10}}'
#    unit_of_measurement: "mm"

#  - platform: mqtt
#    name: "Pluie Tot"
#    unique_id: uniqueid_rainTotal
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.rainTotal | round(2)*10}}'
#    unit_of_measurement: "mm"

mqtt:
  sensor:
    - state_topic: "weewx/loop"
      name: "Pluie/24h"
      unique_id: uniqueid_rain24_cm
      value_template: '{{ value_json.rain24_cm | round(2)*10}}'
      unit_of_measurement: "mm"
       
##########Vent##########    

#  - platform: mqtt
#    name: "Vent"
#    unique_id: uniqueid_windSpeed
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.windSpeed_kph | round(0)}}'
#    unit_of_measurement: "k/h"    
#  - platform: mqtt
#    name: "Rafale"
#    unique_id: uniqueid_windGust
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.windGust_kph | round(0)}}'
#    unit_of_measurement: "k/h"    
#
#  - platform: mqtt
#    name: "Direction Vent"
#    unique_id: uniqueid_windDir
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.windDir | round(0)}}'
#    unit_of_measurement: "°"

##########Baromètre##########

#  - platform: mqtt
#    name: "PressionAtm"
#    unique_id: uniqueid_Pression_ATM
#    state_topic: "weewx/loop"
#    value_template: '{{ value_json.pressure_mbar | round(0)}}'
#    unit_of_measurement: "mbar"

C’est un include ? sensor ?

oui, j’ai mis cela dans mon configuration.yaml

sensor: !include sensors.yaml

ce qui fonctionne à priori mais qui semblera ne plus fonctionner à la prochaine maj si je comprends bien le message d’alerte

Oui ça fonctionnait, tu ne peux plus faire 1 seul fichier.
Sépare les sensors normaux et les MQTT

mqtt:
  sensor: !include mqtt.yaml
sensor: !include sensors.yaml

et un mqtt devient

- state_topic: "weewx/loop"
  name: "Pluie/24h"
  unique_id: uniqueid_rain24_cm
  value_template: '{{ value_json.rain24_cm | round(2)*10}}'
  unit_of_measurement: "mm"

bon je fais encore un truc pas correct mais je commence à comprendre la logique.

je me fais refuser le redemarrage à cause de mon configuration.yaml


# Loads default set of integrations. Do not remove.
default_config:

mqtt:
    sensor: !include mqtt.yaml
    discovery: true
  
# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensors.yaml

frontend:
  themes: !include_dir_merge_named themes

avec des - ca passera mieux pour commencer

mqtt:
    - sensor: !include mqtt.yaml
    - discovery: true

ou pas …

merci beaucoup cela fonctionne

bonjour

mais à quel moment faut utiliser les - ? lorsque ce sont des proprietés de la classe… et lorsque ce sont des methodes on en mets pas ?