Automatisation allumage ruban LED avec couleurs différentes selon conditions

Bonjour à tous,

J’ai besoin de votre aide pour une automatisation :slight_smile:

Le principe: j’ai un ruban LED derrière mon ordi principal. Je veux que celui-ci ne s’allume que lorsque mon ordi est allumé. Pour cela, j’ai créé un binary sensor basé sur un ping.

Lorsque mon ordi est allumé (donc binary sensor = on), le ruban LED doit s’allumer :

  • En vert si une mise à jour est disponible (je teste l’état de différents binary sensor sur HACS, UniFi, Addon, etc.)

  • En rouge pour une info importante (exemple si dépassement de seuil d’alerte pour l’espace libre d’un disque)

  • En bleu dans les autres cas, en temps normal quoi.

Pour tester, je mets volontairement un seuil bas sur un des tests ({{ states (''sensor.disk_use'') | int >= 40 }}).

Ce qui se passe, c’est que le ruban LED s’allume bien en rouge mais 1 ou 2 secondes après, il repasse en bleu.

Qu’est ce que j’ai mal fait ? :slight_smile:

Dans l’idéal, j’aimerai aussi pouvoir gérer le cas où mon Mac est éteint et donc le ruban LED ne devrait pas d’éclairer du tout.

Merci pour votre aide.

alias: NOTIF_Eclairage ruban LED Mac Mini
description: Bleu tout est OK, vert pour les mises à jour, rouge si info importante...
trigger:
  - platform: time_pattern
    minutes: /1
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id: binary_sensor.ping_mac_mini_lan
        state: 'on'
      - condition: state
        entity_id: binary_sensor.ping_mac_mini_wifi
        state: 'on'
action:
  - choose:
      - conditions:
          - condition: or
            conditions:
              - condition: state
                entity_id: binary_sensor.addons_update
                state: 'on'
              - condition: state
                entity_id: binary_sensor.pihole_update
                state: 'on'
              - condition: state
                entity_id: binary_sensor.hacs_update
                state: 'on'
              - condition: state
                entity_id: input_boolean.ha_mise_a_jour_dispo
                state: 'on'
              - condition: state
                entity_id: binary_sensor.prometheus_update_available
                state: 'on'
              - condition: state
                entity_id: binary_sensor.unifi_update
                state: 'on'
              - condition: state
                entity_id: binary_sensor.proxmox_update
                state: 'on'
        sequence:
          - service: light.turn_on
            target:
              entity_id: light.esp_led_strip_mac
            data:
              color_name: darkgreen
      - conditions:
          - condition: or
            conditions:
              - condition: template
                value_template: '{{ states (''sensor.disk_use'') | int >= 40 }}'
              - condition: template
                value_template: >-
                  {{ states ('sensor.prometheus_volume_1_volume_used') | int >=
                  85 }}
              - condition: template
                value_template: >-
                  {{ states ('sensor.prometheus_volume_2_volume_used') | int >=
                  95 }}
              - condition: template
                value_template: >-
                  {{ states ('sensor.prometheus_volume_3_volume_used') | int >=
                  95 }}
        sequence:
          - service: light.turn_on
            target:
              entity_id: light.esp_led_strip_mac
            data:
              color_name: darkred
              flash: short
    default:
      - service: light.turn_on
        target:
          entity_id: light.esp_led_strip_mac
        data:
          color_name: darkblue
mode: single

Comportement étrange vu que le déclencheur est toutes les minutes… :sweat_smile:

En l’état, je n’ai personnellement rien remarqué de bizarre dans ton code.

Néanmoins, le déclencheur toutes les minutes ne me semble pas approprié. Je le remplacerais par le passage à Vrai de l’un des deux capteurs de présence du PC.

Et en faisant cela, tu peux ajouter une automatisation (ou des declencheurs) quand ces deux capteurs sont à Faux pour éteindre le ruban pour répondre à ta dernière demande.

Concernant ton automatisation actuelle, regarde ce qui se passe dans la vue historique de l’automatisation ou ajoute l’envoi ou la création de notification a chaque étape pour aider au débogage :+1:

Merci @Clemalex. J’ai trouvé le coupable à l’instant… et c’était tout bête.
C’était : flash: short !
Je pensais en l’activant que cela devait faire des courts flash comme son nom semblait l’indiquer. Je ne m’attendais pas à ce que cela s’allume juste 1-2 secondes :roll_eyes:

Par contre, pas sur de comprendre ce que tu veux dire avec cela :

Tu veux dire que je pourrais faire cela dans une seule et même automatisation ? Une seule automatisation pour gérer les différents modes d’allumage du ruban si le PC est démarré et éteindre le ruban si le PC est arrêté. Je vois comment faire en fait :frowning:

Je vois pas comment faire ? Ou tu vois vraiment ? :sweat_smile: :slightly_smiling_face:

Oups… oui, je ne vois pas comment faire :sweat_smile:

1 « J'aime »

@deliwyn : Comme ceci :

alias: NOTIF_Eclairage ruban LED Mac Mini
description: Bleu tout est OK, vert pour les mises à jour, rouge si info importante...
trigger:
  - platform: state
    entity_id: binary_sensor.ping_mac_mini_lan
    to: 'on'
    id: mac_mini_lan_power_on
  - platform: state
    entity_id: binary_sensor.ping_mac_mini_wifi
    to: 'on'
    id: mac_mini_wifi_power_on
  - platform: state
    entity_id: binary_sensor.ping_mac_mini_lan
    to: 'off'
    id: mac_mini_lan_power_off
  - platform: state
    entity_id: binary_sensor.ping_mac_mini_wifi
    to: 'off'
    id: mac_mini_wifi_power_off
condition: null
action:
  - choose:
      - conditions:
          - condition: or
            conditions:
              - condition: trigger
                id: mac_mini_lan_power_on
              - condition: trigger
                id: mac_mini_wifi_power_on
        sequence:
          - choose:
              - conditions:
                  - condition: or
                    conditions:
                      - condition: state
                        entity_id: binary_sensor.addons_update
                        state: 'on'
                      - condition: state
                        entity_id: binary_sensor.pihole_update
                        state: 'on'
                      - condition: state
                        entity_id: binary_sensor.hacs_update
                        state: 'on'
                      - condition: state
                        entity_id: input_boolean.ha_mise_a_jour_dispo
                        state: 'on'
                      - condition: state
                        entity_id: binary_sensor.prometheus_update_available
                        state: 'on'
                      - condition: state
                        entity_id: binary_sensor.unifi_update
                        state: 'on'
                      - condition: state
                        entity_id: binary_sensor.proxmox_update
                        state: 'on'
                sequence:
                  - service: light.turn_on
                    target:
                      entity_id: light.esp_led_strip_mac
                    data:
                      color_name: darkgreen
              - conditions:
                  - condition: or
                    conditions:
                      - condition: template
                        value_template: '{{ states (''sensor.disk_use'') | int >= 40 }}'
                      - condition: template
                        value_template: >-
                          {{ states ('sensor.prometheus_volume_1_volume_used') | int >=
                          85 }}
                      - condition: template
                        value_template: >-
                          {{ states ('sensor.prometheus_volume_2_volume_used') | int >=
                          95 }}
                      - condition: template
                        value_template: >-
                          {{ states ('sensor.prometheus_volume_3_volume_used') | int >=
                          95 }}
                sequence:
                  - service: light.turn_on
                    target:
                      entity_id: light.esp_led_strip_mac
                    data:
                      color_name: darkred
                      flash: short
            default:
              - service: light.turn_on
                target:
                  entity_id: light.esp_led_strip_mac
                data:
                  color_name: darkblue
      - conditions:
          - condition: or
            conditions:
              - condition: trigger
                id: mac_mini_lan_power_off
              - condition: trigger
                id: mac_mini_wifi_power_off
        sequence:
          - service: light.turn_off
            target:
              entity_id: light.esp_led_strip_mac
    default: []
mode: single

2 « J'aime »

Punaise @Clemalex, tu es absolument trop fort ! :+1: Ça marche parfaitement comme cela ! Merci.
Je crois que c’est d’ailleurs l’automatisation la plus complexe que j’ai actuellement grâce à toi.

1 « J'aime »

:warning: car c’est basé sur ta première automatisation qui comporte flash: short qui te posait problème… J’ai oublié de l’enlever :sweat_smile:

1 « J'aime »