J’ai fini par ajouter deux capteurs ouverture/fermeture sonoff en m’inspirant de Détecter ouverture porte de garage - #3 par Jeffodilo.
Config du cover personnalisé :
cover:
- name: "Porte garage"
device_class: garage
open_cover:
- service: switch.turn_on
target:
entity_id: switch.porte_de_garage
close_cover:
- service: switch.turn_on
target:
entity_id: switch.porte_de_garage
stop_cover:
- service: switch.turn_on
target:
entity_id: switch.porte_de_garage
position: >-
{% set GO = is_state('binary_sensor.porte_garage_ouverte', 'on') %}
{% set GF = is_state('binary_sensor.porte_garage_fermee', 'on') %}
{% if GO and not GF %}
0
{% elif not GO and GF %}
100
{% else %}
50
{% endif %}
icon: >-
{% set GO = is_state('binary_sensor.porte_garage_ouverte', 'on') %}
{% set GF = is_state('binary_sensor.porte_garage_fermee', 'on') %}
{% if GO and not GF %}
mdi:garage-variant
{% elif not GO and GF %}
mdi:garage-open-variant
{% else %}
mdi:garage-alert-variant
{% endif %}
Et pour le dashboard :
type: custom:button-card
entity: cover.porte_garage
tap_action:
action: call-service
service: switch.turn_on
target:
entity_id: switch.porte_de_garage
show_state: false
label: |-
[[[
const GO = hass.states['binary_sensor.porte_garage_ouverte'].state === 'on';
const GF = hass.states['binary_sensor.porte_garage_fermee'].state === 'on';
if (GO && !GF) return 'Fermée';
else if (!GO && GF) return 'Ouverte';
else return 'Entre ouverte';
]]]
show_label: true
styles:
card:
- height: 120px
label:
- color: gray
- font-size: 9px
- padding: 0px 5px
Pas réussi à accéder à la position du cover dans le button-card.