Bonjour,
Après quelques déboires, changement de boite de dérivation et 1 relais cramé (le relais devait avoir un défaut), cela fait maintenant plusieurs mois de fonctionnement avec un relais et cela fonctionne.
Merci à didier02100 pour le lien, je me le garde quand même sous le coude pour une autre installation donc le spot scintille légèrement sur une partie des LED.
Par contre voici mon retour d’expérience de l’utilisation de ce module avec un détecteur de mouvement : ce n’est pas l’idéale.
Le module SONOFF ZBMINIL2 est configurable pour soit un interrupteur à bascule soit pour un bouton poussoir et le détecteur de mouvement lui fourni du 230V lors de la détection de mouvement et 0V après la fin de la minuterie (réglable de 10s à 15minutes).
J’ai donc configuré le SONOFF pour un interrupteur à bascule mais le SONOFF lui se moque de l’état de la tension (230V ou 0V) il se base uniquement sur le changement d’état 230V → 0V ou 0V → 230V et donc allume ou éteint les lampes sur changement d’état et pas sur l’état lui même.
Donc si une automation ou autre action de HA allume les lumières puis que le détecteur de mouvement déclenche avec un mouvement cela alors éteint la lumière (car changement d’état à l’entrée du SONOFF) puis à la fin de la tempo du détecteur de mouvement cela allume la lumière… Ce n’est pas forcément le mode de fonctionnement que l’on attend.
J’ai pallié à cela en réglant à 10s (mini) la tempo du détecteur de mouvement et avec plusieurs minuteurs et automations dans HA qui rallume les lumière dès que le SONOFF bascule à OFF si un des minuteurs dans HA est encore actif.
Voici l’automation qui gère la détection de mouvement et déclenche un minuteur pour maintenir les lumière allumées
alias: Lumière - Ext parking detecteur minuteur
description: >-
Déclencher minuteur de 3 minutes sur déclenchement détecteur de mouvement pour
couper lampe
trigger:
- platform: state
entity_id:
- switch.lampe_ext_parking_switch
from: "off"
to: "on"
condition:
- condition: state
entity_id: timer.lumiere_temps_allumage_exterieur_parking
state: idle
action:
- if:
- condition: state
entity_id: timer.lumiere_temps_detecteur_mouvement
state: active
then:
- service: timer.cancel
data: {}
target:
entity_id: timer.lumiere_temps_detecteur_mouvement
enabled: false
else:
- service: timer.start
data:
duration: "00:03:00"
target:
entity_id:
- timer.lumiere_temps_detecteur_mouvement
mode: single
L’automation qui gère le maintien de la lumière si elle était déjà allumée + détection mouvement.
alias: Lumière - Ext parking maintien On
description: >-
Maintien lampe ON si bascule du détecteur mouvement alors que minuteur en
cours
trigger:
- platform: state
entity_id:
- switch.lampe_ext_parking_switch
from: "on"
to: "off"
condition: []
action:
- if:
- condition: state
entity_id: timer.lumiere_temps_allumage_exterieur_parking
state: active
then:
- type: turn_on
device_id: XXXXX
entity_id: XXXXX
domain: switch
enabled: true
- if:
- condition: state
entity_id: timer.lumiere_temps_detecteur_mouvement
state: active
then:
- service: timer.pause
data: {}
target:
entity_id:
- timer.lumiere_temps_allumage_exterieur_parking
- timer.lumiere_temps_detecteur_mouvement
- if:
- condition: template
value_template: >-
{{ state_attr('timer.lumiere_temps_allumage_exterieur_parking'
, 'remaining') >
state_attr('timer.lumiere_temps_detecteur_mouvement' ,
'remaining')}}
then:
- service: timer.start
data: {}
target:
entity_id:
- timer.lumiere_temps_allumage_exterieur_parking
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
enabled: true
- service: timer.cancel
data: {}
target:
entity_id:
- timer.lumiere_temps_detecteur_mouvement
enabled: true
else:
- service: timer.start
data: {}
target:
entity_id:
- timer.lumiere_temps_detecteur_mouvement
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
enabled: true
- service: timer.cancel
data: {}
target:
entity_id: timer.lumiere_temps_allumage_exterieur_parking
enabled: true
else:
- service: timer.pause
data: {}
target:
entity_id:
- timer.lumiere_temps_allumage_exterieur_parking
- if:
- condition: template
value_template: >-
{{ state_attr('timer.lumiere_temps_allumage_exterieur_parking'
, 'remaining') >
state_attr('timer.lumiere_temps_detecteur_mouvement' ,
'duration')}}
then:
- service: timer.start
data: {}
target:
entity_id:
- timer.lumiere_temps_allumage_exterieur_parking
else:
- service: timer.start
data:
duration: "00:03:00"
target:
entity_id: timer.lumiere_temps_detecteur_mouvement
enabled: true
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
enabled: true
- service: timer.cancel
data: {}
target:
entity_id: timer.lumiere_temps_allumage_exterieur_parking
enabled: true
else:
- if:
- condition: state
entity_id: timer.lumiere_temps_detecteur_mouvement
state: active
then:
- type: turn_on
device_id: XXXXX
entity_id: XXXXX
domain: switch
enabled: true
- service: timer.start
data:
duration: "00:03:00"
target:
entity_id: timer.lumiere_temps_detecteur_mouvement
mode: single
Et enfin l’automation qui éteint la lumière lorsque les minuteur tombe à 0.
alias: Lumières - OFF minuterie parking
description: ""
trigger:
- platform: state
entity_id:
- timer.lumiere_temps_allumage_exterieur_parking
from: active
to: idle
- platform: state
entity_id:
- timer.lumiere_temps_detecteur_mouvement
from: active
to: idle
condition: []
action:
- type: turn_off
device_id: XXXXX
entity_id: XXXXX
domain: switch
mode: single
Cela fait un peu usine à gaz, ce n’est pas idéale mais ça fonctionne 
Je suis bien sur ouvert à toute amélioration !
Très bon WE à tous.