Bonjour,
N’ayant pas trouvé d’exemples qui me convenaient, je partage ici ce que j’ai mis en place
A préciser que je commande le portail via tableau de bord (iphone) tout en conservant les télécommandes d’origine (matériel FAAC 391)
L’automatisation repositionne le trigger du PJ-ZGD01 en fonction du mode ouverture ./ fermeture souhaité et de l’état du capteur contact (ouvert / fermé)
Mon capteur de position est positionné de telle sorte qu’il est actif (True) lorsque le portail est fermé.
Rappel principe module PJ-ZGD01:
- capteur position sur false (dans mon cas portail ouvert) => trigger déclenche impulsion de commande lorsqu’il passe de true (activé) à false (désactivé)
- capteur position sur true (dans mon cas portail fermé) => trigger déclenche impulsion de commande lorsqu’il passe de false (désactivé) à true (activé).
Entités créées:
- input_boolean =>portail fermeture => bouton commande fermeture
- input_boolean =>portail ouverture => bouton commande ouverture
- timer fermeture => correspond au temps de fermeture du portail (pour moi tempo 30s)
- timer ouverture => correspond au temps d’ouverture du portail (pour moi tempo 26s)
- input select (liste déroulante) => pour état du portail , fermé , ouvert , fermeture en cours, ouverture en cours
entités liées au module:
- binary-sensor => contact lorsque portail fermé (contact aimant raccordé au module)
- portail_trigger => commande du module déclenchant une impulsion pour commande porte
le code fermeture intègre la fermeture automatique du portail au coucher du soleil
Première publication => donc surement pas la meilleure manière de faire
Commande fermeture:
alias: Portail commande fermeture
description: ""
triggers:
- entity_id:
- input_boolean.portail_fermeture
to: "on"
trigger: state
- trigger: sun
event: sunset
offset: "00:30:00"
conditions: []
actions:
- if:
- condition: state
entity_id: binary_sensor.portail_garage_door_contact
state: "on"
- condition: state
entity_id: timer.timer_portail_ouverture
state: idle
- condition: state
entity_id: timer.timer_portail_fermeture
state: idle
then:
- if:
- condition: state
entity_id: switch.portail_trigger
state: "on"
then:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.portail_trigger
else:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.portail_trigger
- delay:
hours: 0
minutes: 0
seconds: 0
milliseconds: 250
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.portail_trigger
- action: timer.start
metadata: {}
data: {}
target:
entity_id: timer.timer_portail_fermeture
- delay:
hours: 0
minutes: 0
seconds: 30
milliseconds: 0
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.portail_fermeture
mode: single
commande ouverture:
alias: Portail commande ouverture
description: ""
triggers:
- entity_id:
- input_boolean.portail_ouverture
to: "on"
trigger: state
conditions: []
actions:
- if:
- condition: state
entity_id: binary_sensor.portail_garage_door_contact
state: "off"
- condition: state
entity_id: timer.timer_portail_fermeture
state: idle
- condition: state
entity_id: timer.timer_portail_ouverture
state: idle
then:
- if:
- condition: state
entity_id: switch.portail_trigger
state: "off"
then:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.portail_trigger
else:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.portail_trigger
- delay:
hours: 0
minutes: 0
seconds: 0
milliseconds: 250
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.portail_trigger
- action: timer.start
metadata: {}
data: {}
target:
entity_id: timer.timer_portail_ouverture
- delay:
hours: 0
minutes: 0
seconds: 26
milliseconds: 0
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.portail_ouverture
mode: single
tableau de bord:
images tableau de bord dans 3 états différents:
principe :
- contact fermé actionné = affichage position portail = accès au bouton ouverture
- après commande ouverture ou fermeture = affichage du timer correspondant
- à la fin du timer ouverture ou fermeture => affichage du switch de commande fermeture ou ouverture



code tableau de bord:
type: custom:mod-card
style: |
ha-card {
border: 1px solid blue;
padding: 6px !important;
}
card:
type: vertical-stack
cards:
- type: entities
entities:
- entity: binary_sensor.portail_garage_door_contact
tap_action:
action: none
name: Portail
card_mod:
style:
hui-generic-entity-row $: |
state-badge {
display: none;
}
:host {
font-size: 23px;
}
state {
alignment:right;
}
name {
alignment:left;
}
.info {
margin-left: 4px !important;
}
card_mod:
style: |
ha-card {
--ha-card-background: transparent;
--ha-card-border-width: 0px;
--ha-card-padding-left: 4px
}
- type: conditional
conditions:
- condition: state
entity: timer.timer_portail_ouverture
state: active
card:
type: custom:timer-bar-card
entity: timer.timer_portail_ouverture
name: ouverture
tap_action:
action: none
hold_action:
action: none
card_mod:
style:
hui-generic-entity-row $: |
:host {
max-height: 20px
}
- type: conditional
conditions:
- condition: state
entity: timer.timer_portail_fermeture
state: active
card:
type: custom:timer-bar-card
entity: timer.timer_portail_fermeture
name: fermeture
tap_action:
action: none
hold_action:
action: none
card_mod:
style:
hui-generic-entity-row $: |
:host {
max-height: 20px
}
- type: conditional
conditions:
- condition: state
entity: binary_sensor.portail_garage_door_contact
state: "off"
- condition: state
entity: timer.timer_portail_ouverture
state: idle
- condition: state
entity: timer.timer_portail_fermeture
state: idle
card:
type: entities
entities:
- entity: input_boolean.portail_ouverture
name: Ouverture
tap_action:
action: none
hold_action:
action: none
icon: mdi:garage
card_mod:
style:
hui-generic-entity-row $: |
:host {
max-height: 20px
}
- type: conditional
conditions:
- condition: state
entity: binary_sensor.portail_garage_door_contact
state: "on"
- condition: state
entity: timer.timer_portail_ouverture
state: idle
- condition: state
entity: timer.timer_portail_fermeture
state: idle
card:
type: entities
entities:
- entity: input_boolean.portail_fermeture
name: Fermeture
tap_action:
action: none
hold_action:
action: none
icon: mdi:garage-open
card_mod:
style:
hui-generic-entity-row $: |
:host {
max-height: 20px
}