Création entité avec 2 capteur Hue

Mon problème

Bonjour,

Je cherche a créer un capteur qui regroupe 2 capteur.
J’ai 2 capteur Hue dans ma boite aux lettre. 1 pour le courrier et 1 pour le colis. Je fait un déclenchement de mon visiophone lorsque 1 des 2 capteur s’ouvre. Cela m’oblige a avoir 2 fois la caméra dans HomeKit. je voudrais combiner les 2 capteur en 1 seul de façon a ce que si le capteur courrier s’ouvre et le colis reste fermer alors mon nouveau capteur s’ouvre.
J’ai créer un template mais il doit y avoir une erreur…?
Merci d’avance

- platform: template
    sensors:
      capteur_bal:
        friendly_name: 'Boite Aux Lettre'
        device_class: binary_sensor
        entity_id: binary_sensor.porte_colis_contact, binary_sensor.porte_courrier_contact
        value_template: >-          
          {% if state.binary_sensor.porte_colis_contact.state == 'on' or states.binary_sensor.porte_courrier_contact== 'on' %}
          true
          {% else %}
          false
          {% endif %}

Bj

Sans dire ce que tu as comme erreur , la on peux pas savoir
dis nous ce que tu as comme erreur
Car la je vois pas ou est ton souci , ton temlate me semble correct.

sans etre sur de savoir ce que tu souhaites

- platform: template
  sensors:
    capteur_bal:
      friendly_name: 'My BAL'
      value_template: >-
        {% if is_state('binary_sensor.boite_aux_lettres_contact', 'on') or is_state('binary_sensor.capteur_boite_aux_lettres_vibration', 'on') %}
        true
        {% else %}
        false
        {% endif %}
      entity_id:
        - binary_sensor.boite_aux_lettres_contact
        - binary_sensor.capteur_boite_aux_lettres_vibration

Normal que tu capteur porte de garage fais parti de ton template ??

Merci de ta réponse.
J’ai corrigé la porte de garage
Ce me met ‹ state › is undefined

vire ci dessus, regarde le model que j’ai mis

dans outils / dev verifie que tes sensors sont bien ok

quelque chose ne va pas :frowning:

ca va pas , car cela ne fonctionne pas comme cela

tu dois le mettre le code template/sensor a gauche complet

regarde ma capture

le resulat est true , donc j’ai capteur boite au lettre / ou / vibration qui c’est déclenché
si les deux sont off , alors cela va marqué false

Pour connaitre les etats


Excat j’avais mal compris. impeccable ca foncions :wink:
Merci beaucoup

de rien clique sur resolu :wink:

juste dernière question. j’intègre dans configuration.yaml et visiblement j’ai un soucis…

peux tu posté ton fichier config.yaml complet
enleve tes info perso dedans si tu en as

voici

le contenu de ton fichier , pas de capture


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



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

# Text to speech
tts:
  - platform: google_translate

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

ariston:
  username: xxxx
  password: xxxxx
  num_ch_zones: 2
  switches:
    - internet_time
    - internet_weather
  sensors:
    - ch_detected_temperature
    - ch_mode
    - ch_comfort_temperature
    - ch_economy_temperature
    - ch_set_temperature
    - dhw_set_temperature
    - errors_count
    - mode
    - outside_temperature
    - ch_flow_temperature
    - dhw_storage_temperature
    - dhw_set_temperature
    - signal_strength
    - ch_fixed_temperature
    - dhw_mode
    - dhw_comfort_function
    - dhw_comfort_temperature
    - dhw_economy_temperature
    - pressure
    - units
  binary_sensors:
    - changing_data
    - online
    - internet_weather
  selector:
    - mode
    - ch_mode
    
cover:
  - platform: template
    covers:
      garage_207:
        device_class: garage
        friendly_name: "Porte Garage 207"
        value_template: "{{ 'closed' if is_state('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening', 'off') else 'open' }}"
        open_cover:
          - service: cover.open_cover
            target:
              entity_id: cover.porte_garage_207
        close_cover:
          - service: cover.close_cover
            target:
              entity_id: cover.porte_garage_207
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.porte_garage_207
        icon_template: >-
          {% if states('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}
            - platform: template
            
  - platform: template
    covers:
      garage_308sw:
        device_class: garage
        friendly_name: "Porte Garage 308SW"
        value_template: "{{ 'closed' if is_state('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening_2', 'off') else 'open' }}"
        open_cover:
          - service: cover.open_cover
            target:
              entity_id: cover.porte_garage_308sw
        close_cover:
          - service: cover.close_cover
            target:
              entity_id: cover.porte_garage_308sw
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.porte_garage_308sw
        icon_template: >-
          {% if states('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening_2')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}
            - platform: template
notify:
  - name: "Mail"
    platform: smtp
    server: "smtp-mail.outlook.com"
    port: 587
    timeout: 15
    sender: "xxxx"
    encryption: starttls
    username: "nxxx"
    password: "xxx"
    recipient:
      - "xxxx"
api:
rest_command:
  camera_chalet_gauche:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=6&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_droite:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=4&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_haut:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=0&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_bas:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=2&onestep=1&user=neoback&pwd=Mapuce1490"
mqtt:
  - sensor:
      state_topic: "/Cuve 1000L/Cuve 1000L/Distance"
      name: "Niveau Cuve 1000L"
      
sensor:
    - platform: rest
      name: "PV Power" # puissance produite par les panneaux (la valeur est mise a jour toute les 5 min)
      device_class: "power"
      state_class: "measurement"
      unit_of_measurement: "W"
      resource: http://192.168.3.161/index.php/meter/old_meter_power_graph
      scan_interval: 60
      value_template: >
        {% if value_json is defined %}
            {{ value_json.power1[-1].powerA }}
        {% else %}
            {{ "None" }}
        {% endif %}
     
    - platform: integration
      name: "PV Energy" # energie totale produite par les panneaux (depuis le debut)
      source: sensor.pv_power
      unit_prefix: "k"
      unit_time: "h"
      method: "left"
     
    - platform: rest
      name: "Import Export Power" # puissance importé si + ou exporté si -
      device_class: "power"
      state_class: "measurement"
      unit_of_measurement: "W"
      resource: http://192.168.3.161/index.php/meter/old_meter_power_graph
      scan_interval: 60
      value_template: >
        {% if value_json is defined %}
            {{ value_json.power2[-1].powerA }}
        {% else %}
            {{ "None" }}
        {% endif %}
     
    - platform: template
      sensors:
          export_power: # il est judicieux de separer la puissance exporté de importé
              friendly_name: "Export Power"
              unit_of_measurement: "W"
              device_class: "power"
              value_template: >
                {% set p = states('sensor.import_export_power') | float(0) %}
                {{ ((p | abs) - p) / 2 }}
               
    - platform: integration
      name: "Export Energy" # energie totale exporté (depuis le debut)
      source: sensor.export_power
      unit_prefix: "k"
      unit_time: "h"
      method: "left"

utility_meter:
    pv_energy_daily: # production PV du jour
        name: "PV Energy Daily"
        unique_id: pv_energy_daily
        source: sensor.pv_energy
        cycle: daily
    export_energy_daily: # energie exporté du jour
        name: "Export Energy Daily"
        unique_id: export_energy_daily
        source: sensor.export_energy
        cycle: daily

homekit: !include homekit.yaml
- platform: template
  sensors:
    capteur_bal:
      friendly_name: 'My BAL'
      value_template: >-
        {% if is_state('binary_sensor.porte_courrier_contact', 'on') or is_state('binary_sensor.porte_colis_contact', 'on') %}
        true
        {% else %}
        false
        {% endif %}
      entity_id:
        - binary_sensor.porte_courrier_contact
        - binary_sensor.porte_colis_contact

normarlement c’est corrige
mais attention a l’indexation , decale par deux
mais bien les sensor avec sensor , binary avec binary.
include , avec include

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



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

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
homekit: !include homekit.yaml


ariston:
  username: xxxx
  password: xxxxx
  num_ch_zones: 2
  switches:
    - internet_time
    - internet_weather
  sensors:
    - ch_detected_temperature
    - ch_mode
    - ch_comfort_temperature
    - ch_economy_temperature
    - ch_set_temperature
    - dhw_set_temperature
    - errors_count
    - mode
    - outside_temperature
    - ch_flow_temperature
    - dhw_storage_temperature
    - dhw_set_temperature
    - signal_strength
    - ch_fixed_temperature
    - dhw_mode
    - dhw_comfort_function
    - dhw_comfort_temperature
    - dhw_economy_temperature
    - pressure
    - units
  binary_sensors:
    - changing_data
    - online
    - internet_weather
  selector:
    - mode
    - ch_mode
    
cover:
  - platform: template
    covers:
      garage_207:
        device_class: garage
        friendly_name: "Porte Garage 207"
        value_template: "{{ 'closed' if is_state('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening', 'off') else 'open' }}"
        open_cover:
          - service: cover.open_cover
            target:
              entity_id: cover.porte_garage_207
        close_cover:
          - service: cover.close_cover
            target:
              entity_id: cover.porte_garage_207
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.porte_garage_207
        icon_template: >-
          {% if states('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}
            - platform: template
            
  - platform: template
    covers:
      garage_308sw:
        device_class: garage
        friendly_name: "Porte Garage 308SW"
        value_template: "{{ 'closed' if is_state('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening_2', 'off') else 'open' }}"
        open_cover:
          - service: cover.open_cover
            target:
              entity_id: cover.porte_garage_308sw
        close_cover:
          - service: cover.close_cover
            target:
              entity_id: cover.porte_garage_308sw
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.porte_garage_308sw
        icon_template: >-
          {% if states('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening_2')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}
            - platform: template
notify:
  - name: "Mail"
    platform: smtp
    server: "smtp-mail.outlook.com"
    port: 587
    timeout: 15
    sender: "xxxx"
    encryption: starttls
    username: "nxxx"
    password: "xxx"
    recipient:
      - "xxxx"
api:
rest_command:
  camera_chalet_gauche:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=6&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_droite:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=4&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_haut:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=0&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_bas:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=2&onestep=1&user=neoback&pwd=Mapuce1490"
mqtt:
  - sensor:
      state_topic: "/Cuve 1000L/Cuve 1000L/Distance"
      name: "Niveau Cuve 1000L"
      
sensor:
    - platform: rest
      name: "PV Power" # puissance produite par les panneaux (la valeur est mise a jour toute les 5 min)
      device_class: "power"
      state_class: "measurement"
      unit_of_measurement: "W"
      resource: http://192.168.3.161/index.php/meter/old_meter_power_graph
      scan_interval: 60
      value_template: >
        {% if value_json is defined %}
            {{ value_json.power1[-1].powerA }}
        {% else %}
            {{ "None" }}
        {% endif %}
     
    - platform: integration
      name: "PV Energy" # energie totale produite par les panneaux (depuis le debut)
      source: sensor.pv_power
      unit_prefix: "k"
      unit_time: "h"
      method: "left"
     
    - platform: rest
      name: "Import Export Power" # puissance importé si + ou exporté si -
      device_class: "power"
      state_class: "measurement"
      unit_of_measurement: "W"
      resource: http://192.168.3.161/index.php/meter/old_meter_power_graph
      scan_interval: 60
      value_template: >
        {% if value_json is defined %}
            {{ value_json.power2[-1].powerA }}
        {% else %}
            {{ "None" }}
        {% endif %}
     
    - platform: template
      sensors:
        export_power: # il est judicieux de separer la puissance exporté de importé
            friendly_name: "Export Power"
            unit_of_measurement: "W"
            device_class: "power"
            value_template: >
              {% set p = states('sensor.import_export_power') | float(0) %}
              {{ ((p | abs) - p) / 2 }}

        capteur_bal:
          friendly_name: 'My BAL'
          value_template: >-
            {% if is_state('binary_sensor.porte_courrier_contact', 'on') or is_state('binary_sensor.porte_colis_contact', 'on') %}
              true
            {% else %}
              false
            {% endif %}
          entity_id:
            - binary_sensor.porte_courrier_contact
            - binary_sensor.porte_colis_contact

        
    - platform: integration
      name: "Export Energy" # energie totale exporté (depuis le debut)
      source: sensor.export_power
      unit_prefix: "k"
      unit_time: "h"
      method: "left"



utility_meter:
    pv_energy_daily: # production PV du jour
        name: "PV Energy Daily"
        unique_id: pv_energy_daily
        source: sensor.pv_energy
        cycle: daily
    export_energy_daily: # energie exporté du jour
        name: "Export Energy Daily"
        unique_id: export_energy_daily
        source: sensor.export_energy
        cycle: daily



Je te remercie! J’essaie demain car avec le téléphone impossible de coller :frowning:
Je te tiens au courant !
Bonne soirée/nuit
Édit: include au début et pas à la fin mais pourquoi ?

Ce qui va entrée en compte c’est le début du fichier etc , regarde par défauts le fichier , tu verras tout les include sont au début
et cela évite d’avoir des erreur indexe avec tes seniors

Ok! Merci :pray:
Je change ça demain :wink:

un petit model

binary_sensor:
  - platform: template
    sensors:
      motion_sensor:
        friendly_name: "Détecteur de mouvement"
        device_class: motion
        value_template: "{{ is_state('sensor.motion', 'on') }}"

sensor:
  - platform: template
    sensors:
      temperature_sensor:
        friendly_name: "Capteur de température"
        unit_of_measurement: "°C"
        value_template: "{{ states('sensor.temperature') }}"

  - platform: mqtt
    name: "Capteur d'humidité"
    state_topic: "maison/salon/humidity"
    unit_of_measurement: "%"

template:
  - sensor:
      - name: "Température moyenne"
        unit_of_measurement: "°C"
        state: "{{ (states('sensor.temperature_salon') | float + states('sensor.temperature_chambre') | float) / 2 }}"

Voici ton fichier entièrement corrigé , et si moi j’ai pas fais une erreur

et réorganisé

default_config:
api:

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

homekit: !include homekit.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

ariston:
  username: xxxx
  password: xxxxx
  num_ch_zones: 2
  switches:
    - internet_time
    - internet_weather
  sensors:
    - ch_detected_temperature
    - ch_mode
    - ch_comfort_temperature
    - ch_economy_temperature
    - ch_set_temperature
    - dhw_set_temperature
    - errors_count
    - mode
    - outside_temperature
    - ch_flow_temperature
    - dhw_storage_temperature
    - dhw_set_temperature
    - signal_strength
    - ch_fixed_temperature
    - dhw_mode
    - dhw_comfort_function
    - dhw_comfort_temperature
    - dhw_economy_temperature
    - pressure
    - units
  binary_sensors:
    - changing_data
    - online
    - internet_weather
  selector:
    - mode
    - ch_mode

cover:
  - platform: template
    covers:
      garage_207:
        device_class: garage
        friendly_name: "Porte Garage 207"
        value_template: "{{ 'closed' if is_state('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening', 'off') else 'open' }}"
        open_cover:
          - service: cover.open_cover
            target:
              entity_id: cover.porte_garage_207
        close_cover:
          - service: cover.close_cover
            target:
              entity_id: cover.porte_garage_207
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.porte_garage_207
        icon_template: >-
          {% if states('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}

  - platform: template
    covers:
      garage_308sw:
        device_class: garage
        friendly_name: "Porte Garage 308SW"
        value_template: "{{ 'closed' if is_state('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening_2', 'off') else 'open' }}"
        open_cover:
          - service: cover.open_cover
            target:
              entity_id: cover.porte_garage_308sw
        close_cover:
          - service: cover.close_cover
            target:
              entity_id: cover.porte_garage_308sw
        stop_cover:
          service: cover.stop_cover
          target:
            entity_id: cover.porte_garage_308sw
        icon_template: >-
          {% if states('binary_sensor.lumi_lumi_sensor_magnet_aq2_opening_2')|float > 0 %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}

notify:
  - name: "Mail"
    platform: smtp
    server: "smtp-mail.outlook.com"
    port: 587
    timeout: 15
    sender: "xxxx"
    encryption: starttls
    username: "nxxx"
    password: "xxx"
    recipient:
      - "xxxx"



rest_command:
  camera_chalet_gauche:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=6&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_droite:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=4&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_haut:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=0&onestep=1&user=neoback&pwd=Mapuce1490"
  camera_chalet_bas:
    url: "http://192.168.3.130:80/decoder_control.cgi?command=2&onestep=1&user=neoback&pwd=Mapuce1490"

mqtt:
  - sensor:
      state_topic: "/Cuve 1000L/Cuve 1000L/Distance"
      name: "Niveau Cuve 1000L"

sensor:
  - platform: rest
    name: "PV Power" # puissance produite par les panneaux (la valeur est mise a jour toute les 5 min)
    device_class: "power"
    state_class: "measurement"
    unit_of_measurement: "W"
    resource: http://192.168.3.161/index.php/meter/old_meter_power_graph
    scan_interval: 60
    value_template: >
      {% if value_json is defined %}
          {{ value_json.power1[-1].powerA }}
      {% else %}
          {{ "None" }}
      {% endif %}

  - platform: integration
    name: "PV Energy" # energie totale produite par les panneaux (depuis le debut)
    source: sensor.pv_power
    unit_prefix: "k"
    unit_time: "h"
    method: "left"

  - platform: rest
    name: "Import Export Power" # puissance importé si + ou exporté si -
    device_class: "power"
    state_class: "measurement"
    unit_of_measurement: "W"
    resource: http://192.168.3.161/index.php/meter/old_meter_power_graph
    scan_interval: 60
    value_template: >
      {% if value_json is defined %}
          {{ value_json.power2[-1].powerA }}
      {% else %}
          {{ "None" }}
      {% endif %}

  - platform: template
    sensors:
      export_power: # il est judicieux de separer la puissance exporté de importé
        friendly_name: "Export Power"
        unit_of_measurement: "W"
        device_class: "power"
        value_template: >
          {% set p = states('sensor.import_export_power') | float(0) %}
          {{ ((p | abs) - p) / 2 }}

  - platform: integration
    name: "Export Energy" # energie totale exporté (depuis le debut)
    source: sensor.export_power
    unit_prefix: "k"
    unit_time: "h"
    method: "left"