Perte des sensor netatmo

Salut tout le monde.

Suite à une migration (recréation) de mon HA sur un mini PC, j’ai perdu mes sensor netatmo ! Ils sont pourtant dans le fichier netatmo.yaml sous /config/sensor

J’ai bien un include dans mon configuration.yaml via

sensor: !include_dir_merge_list sensor/

Dans mon ancien HA, j’ai bien les sensor netatmo visibles

Dans le nouveau, j’ai juste les scripts (qui se trouvent dans le script.yaml

Je n’arrive pas à trouver ce qui ne va pas !

Bonjour,

Utilises-tu l’intégration Netatmo pour récupérer les sensors? Si oui, as-tu vérifié qu’elle est toujours active et connectée à ton compte Netatmo?

Oui, elle l’est toujours

J’ai des remontées d’infos.

Mais pas toutes, du fait des sensor qui ne sont pas lus par HA , semble-t-il

Mais ce fichier ne remonte pas dans HA:

- platform: template
  sensors:

    netatmo_temperature_consigne:
      # Remplacer "Entree"  par le nom de votre thermostat
      friendly_name: temperature consigne Rez-de-chaussee
      device_class: temperature
      #unit_of_measurement: ' C'
     # Remplacer "netatmo_entree"  par le nom de votre thermostat
      value_template: >
        {% set tempcon = state_attr('climate.rez_de_chaussee', 'temperature') %}
        {% if tempcon == 0 %}
           OFF
        {% else %}
           {{ state_attr('climate.rez_de_chaussee', 'temperature') }}
        {% endif %}
        
    netatmo_hvac_action:

      friendly_name: Hvac action Rez-de-chaussee
      # Remplacer "netatmo_entree"  par le nom de votre thermostat
      value_template: "{{ state_attr('climate.rez_de_chaussee', 'hvac_action') }}"

    netatmo_preset_mode:
      # Remplacer "Entree"  par le nom de votre thermostat
      friendly_name: Preset mode Rez-de-chaussee
      # Remplacer "netatmo_entree"  par le nom de votre thermostat
      value_template: "{{ state_attr('climate.rez_de_chaussee', 'preset_mode') }}"

Et ce même fichier est lu sur mon ancien HA

Dans l’intégration Netatmo, est-ce que toutes les entités remontent bien? Est-ce qu’elles ont toujours le même nom?

Je ne comprends pas ce que tu veux dire lorsque tu écris “ce fichier le remonte pas dans HA”

J’utilise cette carte pour netatmo,

issue de ce topic Carte pour thermostat Netatmo suite

Et dans ce topic, on utilise des sensor, netatmo_temperature_consigne, netatmo_hvac_action et netatmo_preset_mode que j’ai mis dans un fichier netatmo.yaml

C’est la remontée de ce fichier qui ne marche pas sur mon nouveau HA (alors qu’vec l’ancien (qui est toujours actif) ça fonctionne

Reprenons.

Dans ton fichier, tu utilises des attributs du sensor “climate.rez_de_chaussee” d’après ce que je comprends pour définir les sensors de ton fichier template.
Est-ce-que le sensor “climate.rez_de_chaussee” existe bien, et avec les mêmes attributs (temperature, hvac_action, preset_mode).

Tu peux vérifier ça dans les outils de développement –> Etat en cherchant le sensor climate.rez_de_chaussee.

Oui, j’ai bien climate.rez_de_chaussee avec les attributs

Juste pour tester, tu pourrais essayer de bouger le code de tes templates dans ton fichier configuration. yaml directement temporairement?

J’essaie de séparer les problèmes potentiels pour identifier ce qui coince…

Ok.

Mais je pense que je dois modifier quelque chose, le format n’est pas reconnu (erreur dans le configuraiton.yaml

- platform: template
  sensors:

    netatmo_temperature_consigne:
      # Remplacer "Entree"  par le nom de votre thermostat
      friendly_name: temperature consigne Rez-de-chaussee
      device_class: temperature
      #unit_of_measurement: ' C'
     # Remplacer "netatmo_entree"  par le nom de votre thermostat
      value_template: >
        {% set tempcon = state_attr('climate.rez_de_chaussee', 'temperature') %}
        {% if tempcon == 0 %}
           OFF
        {% else %}
           {{ state_attr('climate.rez_de_chaussee', 'temperature') }}
        {% endif %}
        
    netatmo_hvac_action:

      friendly_name: Hvac action Rez-de-chaussee
      # Remplacer "netatmo_entree"  par le nom de votre thermostat
      value_template: "{{ state_attr('climate.rez_de_chaussee', 'hvac_action') }}"

    netatmo_preset_mode:
      # Remplacer "Entree"  par le nom de votre thermostat
      friendly_name: Preset mode Rez-de-chaussee
      # Remplacer "netatmo_entree"  par le nom de votre thermostat
      value_template: "{{ state_attr('climate.rez_de_chaussee', 'preset_mode') }}"

Ton format est en effet étrange. Je ne suis pas un grand spécialiste de la chose, mais je copie ci-dessous ce que j’ai dans mon fichier configuration.yaml pour certains de mes templates:

template:
  - sensor:
    - name: "Compteur de gaz"
      unit_of_measurement: "kWh"
      device_class: "gas"
      state_class: "total_increasing"
      state: "{{ states('sensor.lixee_zipulses_consommation')|float(0) * states('input_number.conversion_zipulses_gaz_kwh')|float(0)}}"
      availability: "{{ states('sensor.lixee_zipulses_consommation') not in ['none', 'unknown', 'unavailable'] }}"
    - name: "Compteur de gaz volume"
      unit_of_measurement: "m³"
      device_class: "gas"
      state_class: "total_increasing"
      state: "{{ states('sensor.lixee_zipulses_consommation')|float(0) / 100}}"
      availability: "{{ states('sensor.lixee_zipulses_consommation') not in ['none', 'unknown', 'unavailable'] }}"
    - name: "Batterie Zipulses Gazpar"
      unique_id: niveau_batterie_zipulses_Gazpar
      state: "{{state_attr('sensor.lixee_zipulses_batterie','battery_voltage')}}"
      unit_of_measurement: "V"
      state_class: measurement

Salut,
il utilise l’ancien format de template :wink:
Toi, tu utilises le nouveau format (qui existe depuis 2 ans voir plus).

l’ancien n’est plus recommandé.

sensor:
  - platform: nut
    name: "Eaton UPS"
    host: 192.168.0.48   # IP de ton NAS Synology
    port: 3493
    username: monuser    # parfois vide sur Synology
    password: PASSWORD  # idem, sinon laisse vide
    resources:
      - ups.status
      - ups.load
      - battery.charge
      - battery.runtime
      - input.voltage
      - output.voltage

Ca a marché, mais ça me met un conflit avec la déclaration ci-dessus (pour un onduleur)

Je ne peux pas mettre les deux !

Copie nous l’ensemble de ton fichier configuration.yaml

Tu peux avoir les 2 sans conflits.
Tu ne peux pas avoir 2 sections qui commencent par sensor au même niveau d’indentation.


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

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem

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

homeassistant:
  auth_providers:
    - type: homeassistant
    - type: trusted_networks
      trusted_networks:
        - 192.168.0.0/24
        - 127.0.0.1


google_assistant:
  project_id: xxxxxxxxxx
  service_account: !include SERVICE_ACCOUNT.json
  report_state: true
  exposed_domains:
    - switch
    - light
    - climate
  entity_config:
    switch.kitchen:
      name: lumière du couloir
      aliases:
        - couloir
    light.lumiere_plafond_couloir_light:
      expose: false
      room: Couloir





# templates.yaml robinet gallon vers litres
template:
  - sensor:
      - name: "Vanne robinet water total litres"
        unit_of_measurement: "L"
        device_class: water
        state_class: total_increasing
        state: >-
          {% set gal = states('sensor.vanne_robinet_water_total') | float(0) %}
          {{ (gal * 4.456) | round(2) }}
  
      - name: "Vanne robinet water current litres"
        unit_of_measurement: "L/min"
        state_class: measurement
        state: >-
          {% set gpm = states('sensor.vanne_robinet_water_current') | float(0) %}
          {{ (gpm * 4.456) | round(2) }}

  - binary_sensor:
      - state: "{{ states('sensor.machine_a_laver_power') | float(default = 0) > 5 }}"
        name: Lavage_en_cours
        unique_id: is_washing_machine_running
        device_class: running
        delay_off: '0:12:00'
  - binary_sensor:
      - state: "{{ states('sensor.lave_vaisselle_power') | float(default = 0) > 0.5 }}"
        name: lavevaisselle_encours
        unique_id: is_dishwasher_machine_running
        device_class: running
        delay_off: '0:12:00'        
  - binary_sensor:
      - name: rain_gauge_invert
        unique_id: rain_gauge_invert
        state: >-
          {{ is_state('binary_sensor.rain_gauge', 'off') }}
        device_class: door  
  - sensor:
      - name: Rainfall today
        unit_of_measurement: mm
        state_class: total_increasing
        unique_id: rainfall_today
        state: >-
          {% set count = states('sensor.rainsensor_flips') | int(0) %}
          {% if count > 0 %}
             {% set mm = count * 0.30303 %}
          {% else %}
             {% set mm = 0.0 %}
          {% endif %}
          {% if count >= 0 %}
            {{ mm|round(1, 'floor') }}
          {% endif %}
        # If you have issues with the history sensor doubling after restarting HA, add the line below (@BigG)
        availability: "{{ (states('sensor.rainsensor_flips') not in ('unknown', 'unavailable')) }}"
      - name: "Rain intensity"
        unit_of_measurement: 'mm/h'
        state_class: measurement
        unique_id: rainfall_per_hour
        state: >-
          {% set rainfall_hour = ((state_attr('binary_sensor.rainfall_trend', 'gradient') | float(0)) * 3600) | round(1, 'floor') %}
          {% if rainfall_hour >= 0 %}
            {{ rainfall_hour }}
          {% else %}
            {{ 0 }}
          {% endif %}
#**************** comparaison production solaire ****************
  - sensor:
      - name: "Production vs Prévision"
        unit_of_measurement: "%"
        state: >
          {% set production = states('sensor.energie_solaire_reelle_heure_p1_1') | float(0) %}
          {% set forecast = states('sensor.energy_current_hour') | float(0) %}
          {% if forecast > 0 %}
            {{ ((production / forecast) * 100) | round(1) }}
          {% else %}
            0
          {% endif %}
        icon: mdi:solar-power


          
#*****************Collecte de dechets***************************************************

  - sensor:
    - name: "ordures_menageres_date"
      state: "{{((as_timestamp(states.calendar.ordures_menageres.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
    
    - name: "cartons_et_papiers_date"
      state: "{{((as_timestamp(states.calendar.cartons_et_papiers.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
    
    - name: "dechets_vegetaux_date"
      state: "{{((as_timestamp(states.calendar.dechets_vegetaux.attributes.start_time)- as_timestamp(now())) /86400+1) | int}}"
    
    
    - name: "ordures_menageres_jour"
      state: >
        {% if states('sensor.ordures_menageres_date') | int > 1 %}
          {{ states('sensor.ordures_menageres_date') }} jours
        {% elif states('sensor.ordures_menageres_date') | int == 1 %}
          Demain
        {% else %}
          Aujourd'hui
        {% endif %}
        
        
    - name: "cartons_et_papiers_jour"
      state: >
        {% if states('sensor.cartons_et_papiers_date') | int > 1 %}
          {{ states('sensor.cartons_et_papiers_date') }} jours
        {% elif states('sensor.cartons_et_papiers_date') | int == 1 %}
          Demain
        {% else %}
          Aujourd'hui
        {% endif %}       
      
    
        
        
    - name: "dechets_vegetaux_jour"
      state: >
        {% if states('sensor.dechets_vegetaux_date') | int > 1 %}
          {{ states('sensor.dechets_vegetaux_date') }} jours
        {% elif states('sensor.dechets_vegetaux_date') | int == 1 %}
          Demain
        {% else %}
          Aujourd'hui
        {% endif %}



  - sensor:
      - name: "Production solaire totale"
        unit_of_measurement: "W"
        state: >
          {{ 
            (states('sensor.ez1_1_power_of_p1')|float(0))
          + (states('sensor.ez1_1_power_of_p2')|float(0))
          + (states('sensor.ez1_2_power_of_p1')|float(0))
          + (states('sensor.ez1_2_power_of_p2')|float(0))
          + (states('sensor.ez1_3_power_of_p1')|float(0))
          + (states('sensor.ez1_3_power_of_p2')|float(0))
          + (states('sensor.ez1_4_power_of_p1')|float(0))
          + (states('sensor.ez1_4_power_of_p2')|float(0))
          }}
        device_class: power

  - sensor:
      - name: "Production totale vs Prévision"
        unit_of_measurement: "%"
        state: >
          {% set production = states('sensor.energie_solaire_totale_heure')|float(0) %}
          {% set forecast = states('sensor.energy_current_hour')|float(0) %}
          {% if forecast > 0 %}
            {{ ((production / forecast) * 100) | round(1) }}
          {% else %}
            0
          {% endif %}
        icon: mdi:solar-power
        
utility_meter:
  energie_solaire_totale_heure:
    source: sensor.energie_solaire_totale
    cycle: hourly

#################################################
#################################################
## Ca , c'est bon 

    
sensor:
    - platform: template
      sensors:
    
        netatmo_temperature_consigne:
          # Remplacer "Entree"  par le nom de votre thermostat
          friendly_name: temperature consigne Rez-de-chaussee
          device_class: temperature
          #unit_of_measurement: ' C'
         # Remplacer "netatmo_entree"  par le nom de votre thermostat
          value_template: >
            {% set tempcon = state_attr('climate.rez_de_chaussee', 'temperature') %}
            {% if tempcon == 0 %}
               OFF
            {% else %}
               {{ state_attr('climate.rez_de_chaussee', 'temperature') }}
            {% endif %}
            
        netatmo_hvac_action:
    
          friendly_name: Hvac action Rez-de-chaussee
          # Remplacer "netatmo_entree"  par le nom de votre thermostat
          value_template: "{{ state_attr('climate.rez_de_chaussee', 'hvac_action') }}"
    
        netatmo_preset_mode:
          # Remplacer "Entree"  par le nom de votre thermostat
          friendly_name: Preset mode Rez-de-chaussee
          # Remplacer "netatmo_entree"  par le nom de votre thermostat
          value_template: "{{ state_attr('climate.rez_de_chaussee', 'preset_mode') }}"

#################################################
#################################################
## si je rajoute ça, ca marche plus
sensor:
  - platform: nut
    name: "Eaton UPS"
    host: 192.168.0.48   # IP de ton NAS Synology
    port: 3493
    username: monuser    # parfois vide sur Synology
    password: PASSWORD  # idem, sinon laisse vide
    resources:
      - ups.status
      - ups.load
      - battery.charge
      - battery.runtime
      - input.voltage
      - output.voltage



python_script: 

C’est à ll fin fichier, je vous ai mis les deux blocs

J’avoue que je m’y perds entre les différentes variantes de déclaration des template, platform en sensor au fil du temps !!!

Essaie de mettre tous tes templates (et en particulier les 2 liés à Netatmo) sous le même niveau:

template:
  - sensor:
      - name: "Vanne robinet water total litres"
        unit_of_measurement: "L"
        device_class: water
        state_class: total_increasing
        state: >-
          {% set gal = states('sensor.vanne_robinet_water_total') | float(0) %}
          {{ (gal * 4.456) | round(2) }}
  
      - name: "Vanne robinet water current litres"
        unit_of_measurement: "L/min"
        state_class: measurement
        state: >-
          {% set gpm = states('sensor.vanne_robinet_water_current') | float(0) %}
          {{ (gpm * 4.456) | round(2) }}
      - name: "netatmo_temperature_consigne"
        etc.

Tu as plusieurs fois des sensors à tous les niveaux. Essaie de tout regrouper par catégorie, au même niveau d’indentation

Merci !

C’est résolu en rénovant le yaml.

A noter que l’intégration nut se fait directement via l’interface graphique, donc, il n’y a plus rien à mettre dans le yaml !

Super. Bonne nouvelle.

Ce sujet a été automatiquement fermé après 2 jours. Aucune réponse n’est permise dorénavant.