Baisser la luminosité lors de l'extinction d'une ampoule

Mon problème

J’utilise depuis longtemps déjà cette automatisation qui me permet d’ajuster le niveau lumineux de mes ampoules en fonction de l’heure.

alias: DimLight 15/100/230 Toilettes
description: ""
trigger:
  - entity_id: light.ampoule_toilettes
    from: "off"
    platform: state
    to: "on"
condition: []
action:
  - data_template:
      brightness: |
        {%- if now().strftime('%H')| int >= 21 %}
          100
        {%- elif now().strftime('%H')| int < 7 %}
          15
        {%- elif now().strftime('%H')| int >= 7 %}
          230
        {%- endif %}
      entity_id: light.ampoule_toilettes
    service: light.turn_on

cette ampoule est mise en marche par un SONOFF SNZB-03
Un blueprint dédié (motion_light.yaml) a généré l’automation suivante:

- id: '1647797954067'
  alias: Automatisation Toilettes
  description: ''
  use_blueprint:
    path: homeassistant/motion_light.yaml
    input:
      motion_entity: binary_sensor.presence_toilettes_occupancy
      light_target:
        entity_id:
        - light.ampoule_toilettes
        - light.wc_01_voyant_de_presence
      no_motion_wait: 31

Tout fonctionne parfaitement, mais quand j’arrive aux toilettes, la lumière est trop violente, le temps de passer de 230/255 à 15/255 si personne n’est rentré depuis le début de la soirée. ca fait une sorte de flash que je veux éviter.

Je voudrais donc modifier cette config pour que au bout des 1minutes (tempo Sonoff) 31 secondes (tempo du script) de non présence, la lumière baisse à 15 avant de s’éteindre.
j’ai bien essayé un script qui quand la lumière s’éteint, on la rallume, on la passe à 15 et on éteint, mais évidemment ca boucle…

je veux éviter un allumage/set luminosité/extinction aux heures de changement de luminosité car si l’ampoule est allumée avec quelqu’un dans la pièce ca va être le souk et que je veux pouvoir étendre çà à d’autres automatisations comme les couloirs ou autres.

des idées seraient les bienvenues :wink:

Benoît.


System Information

version core-2023.11.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.58-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4996
Installed Version 1.33.0
Stage running
Available Repositories 1347
Downloaded Repositories 18
Home Assistant Cloud
logged_in true
subscription_expiration 19 décembre 2023 à 01:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled true
remote_server eu-central-1-2.ui.nabu.casa
certificate_status ready
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 11.2
update_channel stable
supervisor_version supervisor-2023.11.6
agent_version 1.6.0
docker_version 24.0.7
disk_total 234.0 GB
disk_used 34.7 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (6.4.0), Samba share (12.2.0), Zigbee2MQTT (1.34.0-1), Home Assistant Google Drive Backup (0.112.1), Terminal & SSH (9.8.1), Node-RED (16.0.2), Studio Code Server (5.14.2), SQLite Web (4.0.0), ESPHome (2023.11.6), TasmoAdmin (0.28.0), chrony (2.6.2)
Dashboards
dashboards 5
resources 11
views 24
mode storage
Recorder
oldest_recorder_run 30 novembre 2023 à 14:46
current_recorder_run 5 décembre 2023 à 10:53
estimated_db_size 2221.35 MiB
database_engine sqlite
database_version 3.41.2
[/center] ___

Bj

les blueprint bien cela depanne , mais quand tu souhaites modifie/ajouté des choses cela te bloque.

tu dois faire une automatisation avec conditions , voici ce que j’ai fait :

        sequence:
          - choose:
              - conditions:
                  - condition: time
                    after: "20:00:00"
                    before: "07:00:00"
                sequence:
                  - type: turn_on
                    device_id: 8d82e80e3553d8fab3511c44dc38c216
                    entity_id: 18807b869ae9a5a4eee9cf572823ea6f
                    domain: light
                    brightness_pct: 1
                  - service: input_boolean.turn_on
                    data: {}
                    target:
                      entity_id:
                        - input_boolean.toggle_inter_toilette
                  - service: input_boolean.turn_on
                    data: {}
                    target:
                      entity_id: input_boolean.test_toilette_occupe
              - conditions:
                  - condition: time
                    after: "07:00:00"
                    before: "20:00:00"

Entre 07 et 20 h , luminosité à 35%
entre 20 et 07 h , luminosité à 1%



hello,

Pour ma part, afin d’éviter le « Flash » avant que l’ampoule ne prenne la bonne luminosité, j’ai ajouté une transition de 2 secondes sur mon service light.turn_on

data:
  transition: 2
  color_name: blueviolet
  brightness_pct: 15
target:
  device_id: fc9f95b7a77c443b9700a0cd22dfaba8

Merci, c’est plus clair comme cela.
j’avais fait cette automatisation à l’époque ou il n’y avait pas d’assistant.
j’avais bien galéré pour trouver comment activer cette lumière sur le mouvement, c’est pourquoi j’avais choisi le blueprint.

reste à voir comment intégrer le binary_sensor.presence_toilettes_occupancy comme trigger

Bj

voici mon script complet , a toi de l’adapté
Pour mettre ON

alias: Détecteur Mouvement Toilette
sequence:
  - choose:
      - conditions:
          - type: is_motion
            condition: device
            device_id: 31e381769780f507678919578b8a9e4f
            entity_id: b53bf8cd5ca02a5e37f0e1680645b2a9
            domain: binary_sensor
          - condition: device
            type: is_off
            device_id: 8d82e80e3553d8fab3511c44dc38c216
            entity_id: 18807b869ae9a5a4eee9cf572823ea6f
            domain: light
        sequence:
          - choose:
              - conditions:
                  - condition: time
                    after: "20:00:00"
                    before: "07:00:00"
                sequence:
                  - type: turn_on
                    device_id: 8d82e80e3553d8fab3511c44dc38c216
                    entity_id: 18807b869ae9a5a4eee9cf572823ea6f
                    domain: light
                    brightness_pct: 1
                  - service: input_boolean.turn_on
                    data: {}
                    target:
                      entity_id:
                        - input_boolean.toggle_inter_toilette
                  - service: input_boolean.turn_on
                    data: {}
                    target:
                      entity_id: input_boolean.test_toilette_occupe
              - conditions:
                  - condition: time
                    after: "07:00:00"
                    before: "20:00:00"
                sequence:
                  - type: turn_on
                    device_id: 8d82e80e3553d8fab3511c44dc38c216
                    entity_id: 18807b869ae9a5a4eee9cf572823ea6f
                    domain: light
                    brightness_pct: 35
                  - service: input_boolean.turn_on
                    data: {}
                    target:
                      entity_id:
                        - input_boolean.toggle_inter_toilette
                  - service: input_boolean.turn_on
                    data: {}
                    target:
                      entity_id: input_boolean.test_toilette_occupe
  - service: homeassistant.update_entity
    data: {}
    target:
      entity_id: script.detecteur_mouvement_toilette
mode: single

et mon OFF

alias: Détecteur Mouvement Toilette OFF
sequence:
  - choose:
      - conditions:
          - type: is_no_motion
            condition: device
            device_id: 31e381769780f507678919578b8a9e4f
            entity_id: b53bf8cd5ca02a5e37f0e1680645b2a9
            domain: binary_sensor
          - condition: state
            entity_id: input_boolean.toggle_inter_toilette
            state: "on"
          - condition: device
            type: is_on
            device_id: 8d82e80e3553d8fab3511c44dc38c216
            entity_id: 18807b869ae9a5a4eee9cf572823ea6f
            domain: light
        sequence:
          - type: turn_off
            device_id: 8d82e80e3553d8fab3511c44dc38c216
            entity_id: 18807b869ae9a5a4eee9cf572823ea6f
            domain: light
          - service: input_boolean.turn_off
            data: {}
            target:
              entity_id:
                - input_boolean.toggle_inter_toilette
                - input_boolean.test_toilette_occupe
  - service: homeassistant.update_entity
    data: {}
    target:
      entity_id: script.detecteur_mouvement_toilette
  - service: input_boolean.turn_off
    data: {}
    target:
      entity_id: input_boolean.test_toilette_occupe
mode: single

tu peux détailler un peu plus ? je comprend vite, mais il faut m’expliquer longtemps…

quand il dis le flash ?

quand tu allume ta lumière elle se met a 100% et après quelque milliseconde elle ce met à 10…

Il parle du fait que de 100% à 10% cela provoque un flash

1 « J'aime »

Ici je l’ai mis en relation avec un capteur de luminosité EXT , quand il fait presque nuit l’automatisation se lance. Pas de décalage entre été/hiver comme ca.

alias: "Lumiere: Intensité Lumiere Soir WC Enfants"
description: ""
trigger:
  - platform: device
    type: turned_on
    device_id: aa0f1839dd38966a5e059147ff92fa2d
    entity_id: light.lumiere_wc_enfants
    domain: light
condition: []
action:
  - if:
      - condition: numeric_state
        entity_id: sensor.detecteur_mouvement_soleil_terrasse_sud_illuminance
        below: 2
        enabled: true
    then:
      - service: light.turn_on
        data:
          brightness_pct: 4
        target:
          device_id: aa0f1839dd38966a5e059147ff92fa2d
    else:
      - service: light.turn_on
        data:
          brightness_pct: 100
        target:
          device_id: aa0f1839dd38966a5e059147ff92fa2d
mode: single

Par contre je n’ai jamais reussi a avoir directement la luminosité à 4%. Elle passe de 100 % à 4%. Ca dure pas longtemps mais ce n’est pas agréable. L’option transition permet juste de diminuer ce problème mais pas de l’enlever.
Ou sinon allumer et eteindre automatiquement la lumiere quelques secondes pour faire passer l’état de 100 % à 4% à la nuit. Mais bon, c’est pas terrible…

Ok, ok…
bon, j’avais galéré pour comprendre, j’avais des Automatisations, tu me montre un truc qui est un script… donc le copier coller c’est pas facile :wink:

tu utilise un interrupteur physique alors que moi, je n’en ai pas, c’est directement l’ampoule que je commande. alors remplacer :

        - light.ampoule_toilettes

par

            device_id: 654ff3cb4bcd84547b7c2fe054c77fe2
            entity_id: 5a4d2e269524166bd46fc8344914543b
            domain: light

c’est encore dans le domaine du faisable.
par contre, mon voyant « occupé » est un ESP8266 avec une diode rouge qui s’allume ou non.
bon, finalement, je l’ai eu. ca doit marcher.

J’ai un doute sur les 2 dernières actions, à quoi servent elles ???:

Non, non,
ma question c’est plus (+) du genre : c’est où il faut mettre le couteau pour ouvrir l’huitre qu’est pour moi HomeAssistant… il est très beau son bout de code, mais c’est où qu’il faudrait l’insérer…

le flash, c’est justement ce que je veux combattre.

pour éviter le décalage horaire, j’aurais plutôt pensé à Nuit, mais tout est faisable (et inversement)

ici je pense:

1 « J'aime »