Bug d'une simple automatisation pour allumer une ampoule - Mauvais paramétrage?

Bonjour à tous,

Mon problème :

Configuration HASS sous Docker, avec Zigbee2MQTT.

Je rencontre un problème très similaire au post suivant : https://forum.hacf.fr/t/probleme-automatisation-allumage-lumiere/24548.

J’ai créé une automatisation qui, à partir d’un véritable interrupteur connecté MOES 3 boutons (pas une télécommande sans fil), allume une ampoule LIDL et une prise connectée pour une guirlande lumineuse non connectée quand j’appuie sur le bouton droit de mon interrupteur.

Symptôme :

Quand je configure mon automatisation, et que j’appuies sur le bouton droit de mon interrupteur (ou que je l’active par Home Assistant sur mon smartphone), ma prise s’allume, mon ampoule s’allume. Jusque là tout va bien.
Si j’éteins mon interrupteur, la prise s’éteint.
Mais au bout d’un moment, si je rallume mon interrupteur, là ma prise s’allume, mon ampoule s’allume et s’éteint dans la seconde.

Quand je regarde le journal de Home Assistant, je constate que c’est mon automatisation qui éteint l’ampoule. Alors que rien dans mon automatisation ne le demande…
On peut voir dans le Yaml ci-dessous que j’ai testé en faisant appel au service Lumière: Allumer (light.turn_on qui est désactivé au moment de copier le code) pour avoir des réglages plus poussés comme le délai d’allumage, le niveau de luminosité, etc…, ou au commutateur de l’ampoule lui-même.
Le symptôme reste identique.

Ma question :

Est-ce qu’il y a quelque chose que je ne configure pas bien ?
Ou pensez-vous qu’il s’agit d’un bug ? Auquel cas une idée d’où cela peut venir et d’un axe d’orientation où chercher ?

Log HASS :

15:50:52 - Il y a 9 secondes - Alex
Bouton droit a été allumé déclenché par le service Commutateur: Allumer
15:50:52 - Il y a 9 secondes
Allumer Meuble TV déclenché par l'état de Bouton droit
15:50:52 - Il y a 8 secondes
Prise LIDL a été allumé déclenché par l'automatisation Allumer Meuble TV déclenché par l'état de Bouton droit
15:50:52 - Il y a 8 secondes
Lampe Meuble TV a été allumé déclenché par l'automatisation Allumer Meuble TV déclenché par l'état de Bouton droit
15:50:53 - Il y a 8 secondes
Lampe Meuble TV a été éteint déclenché par l'automatisation Allumer Meuble TV déclenché par l'état de Bouton droit

Yaml de mon automatisation :

alias: Allumer Meuble TV
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.interrupteur_salon_l3
    to: "on"
condition: []
action:
  - service: light.turn_on
    metadata: {}
    data:
      transition: 5
    enabled: true
    target:
      entity_id: light.lampe_meuble_tv
  - service: switch.turn_on
    metadata: {}
    data: {}
    target:
      entity_id: switch.0x60a423fffe04ec65
mode: single

Ma configuration

System Information

version core-2024.3.1
installation_type Home Assistant Container
dev false
hassio false
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.6.10-76060610-generic
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.34.0
Stage running
Available Repositories 1404
Downloaded Repositories 14
HACS Data ok
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Dashboards
dashboards 2
resources 4
views 3
mode storage
MiWifi
version 3.0.0
192.168.200.201 (xiaomi.router.ra67) ok
Recorder
oldest_recorder_run 12 mars 2024 à 11:59
current_recorder_run 22 mars 2024 à 00:06
estimated_db_size 49.75 MiB
database_engine sqlite
database_version 3.44.2
Spotify
api_endpoint_reachable ok

Un grand merci d’avance à tous ceux qui pourront m’aider ou m’aiguiller !!!

Salut,

Tu ne veux pas refaire ton automatisation avec des noms ?
Parce que là ça donne pas hyper envie…

Quand tu contruis en mode graphique utilise plutot le bouton entité, au lieu de appareil

Et tu mettre en forme les logs (exactement comme le yaml)

1 « J'aime »

C’est donc cela l’histoire de la différence des numéros pour un device ou un nom :smiley:
Merci pour cette précision

Salut Pulpy-Luke,

En premier lieu, je te remercie pour ton aide :slightly_smiling_face:.

Ensuite, j’ai modifié mon poste initial avec les éléments demandés, à savoir YAML de l’automatisation en utilisant des entités, et remise en forme du journal Home Assistant (juste la partie qui concerne l’allumage des lumières avec l’automatisation).

1 « J'aime »

Merci
Bon, c’est étonnant que la lampe soit éteinte par cette automatisation alors qu’elle ne contient justement pas un tel comportement.
Tu n’as pas plusieurs automatisations (avec le même nom ?) qui se perturbent ? Pour en être certain désactive celle que tu viens d’éditer et vérifier en lancant le déclencheur que rien de similaire n’apparait quand même

Regarde aussi ce que donne les traces

Je viens de désactiver l’automatisation, et déclencher l’activation du bouton droit de mon interrupteur. Rien ne s’allume, rien ne fait appel aux entités concernées par l’automatisation.

16:08:25 - Il y a 1 minute - Alex
Allumer Meuble TV a été éteint déclenché par le service Automatisation: Désactiver
16:09:12 - Il y a 12 secondes - Alex
Bouton droit a été allumé déclenché par le service Commutateur: Allumer
16:09:21 - Il y a 3 secondes - Alex
Bouton droit a été éteint déclenché par le service Commutateur: Éteindre
16:09:21 - Il y a 3 secondes - Historique des exécutions
Eteindre meuble TV déclenché par le service Commutateur: Éteindre
16:09:23 - Il y a 1 seconde - Alex
Bouton droit a été allumé déclenché par le service Commutateur: Allumer
16:09:25 - Maintenant - Alex
Bouton droit a été éteint déclenché par le service Commutateur: Éteindre
16:09:25 - Maintenant - Historique des exécutions
Eteindre meuble TV déclenché par le service Commutateur: Éteindre

Concernant les automatisations, débutant seulement, j’en ai très peu (6 pour être exact) :
2024-03-22_16h15_21

J’ai le même symptôme en testant juste mes automatisations Allumer et Eteindre le Meuble TV, sans passer par l’activation du switch sur mon interrupteur (physique en mettant le doigt dessus ou par appui sur un bouton logiciel dans l’application Home Assistant).

Tu peux désactiver eteindre meuble TV et activer allumer meuble Tv et voir ce qu’il se passe.
Regarde aussi les traces (cf mon message au dessus), ça aide à voir ce qui est réalisé (autrement que le journal)

Justement, en réactivant Allumer Meuble TV, je n’arrive plus à reproduire le problème pour récupérer la trace demandée.
Mais hier soir en allant me coucher, je pensais que tout fonctionnait, et ce matin en me levant le souci était revenu… Je prends une trace dès que le problème refait surface, car il est fréquent mais aléatoire…

Bonjour à tous,

Après un petit weekend de tests, je n’ai pas eu un seul problème d’extinction de mon ampoule en fin d’automatisation.
Les seules manipulations effectuées sur mon automatisation depuis mon post initial ont été :

  • Adaptation de celle-ci pour utiliser les entités au lieu des appareils (ce qui n’a pas résolu mon problème étant donné que j’ai pu prendre mes captures d’écrans et journaux montrant le phénomène).
  • Désactivation et réactivation de celle-ci pour vérifier qu’aucun autre paramétrage ne faisait appel à mon entité ampoule. J’imagine que c’est cette action qui a résolu mon problème.
    Mais de là à savoir pourquoi… C’est le flou total. Surtout que j’avais déjà essayé, avant de poster, de supprimer totalement mon automatisation pour la refaire de A à Z…

Bref, je vais me laisser une petite semaine supplémentaire pour tester un peu plus, avant de fermer le topic.

@Pulpy-Luke, en tout cas, un grand merci pour ton aide et ton temps sur le sujet :slight_smile:

Bonjour bonjour !

Bon ben il suffit que je dise que ça à l’air d’aller mieux pour que ça reparte en cacahuète le lendemain…

Capture d’écran de la chronologie d’exécution de mon automatisation depuis ce matin :

Trace :

{
  "trace": {
    "last_step": "action/1",
    "run_id": "a2de167e10fbdb2f37c4192f94035f0f",
    "state": "stopped",
    "script_execution": "finished",
    "timestamp": {
      "start": "2024-03-26T10:54:45.492192+00:00",
      "finish": "2024-03-26T10:54:45.502126+00:00"
    },
    "domain": "automation",
    "item_id": "1711050491788",
    "trigger": "state of switch.interrupteur_salon_l3",
    "trace": {
      "trigger/0": [
        {
          "path": "trigger/0",
          "timestamp": "2024-03-26T10:54:45.492300+00:00",
          "changed_variables": {
            "this": {
              "entity_id": "automation.allumer_meuble_tv",
              "state": "on",
              "attributes": {
                "id": "1711050491788",
                "last_triggered": "2024-03-26T06:46:10.262089+00:00",
                "mode": "single",
                "current": 0,
                "friendly_name": "Allumer Meuble TV"
              },
              "last_changed": "2024-03-26T06:44:34.193661+00:00",
              "last_updated": "2024-03-26T06:46:10.264731+00:00",
              "context": {
                "id": "01HSWR4Q2NV632BQDP2SQFNPPG",
                "parent_id": "01HSWR4Q26RY9PCPQ3EBCDV90D",
                "user_id": null
              }
            },
            "trigger": {
              "id": "0",
              "idx": "0",
              "alias": null,
              "platform": "state",
              "entity_id": "switch.interrupteur_salon_l3",
              "from_state": {
                "entity_id": "switch.interrupteur_salon_l3",
                "state": "off",
                "attributes": {
                  "friendly_name": "Bouton droit"
                },
                "last_changed": "2024-03-26T06:46:12.832730+00:00",
                "last_updated": "2024-03-26T06:46:12.832730+00:00",
                "context": {
                  "id": "01HSWR4SJGW1178MYKV61F4CXM",
                  "parent_id": null,
                  "user_id": "3a6ab31fc8b544feb4d3364795f68cbb"
                }
              },
              "to_state": {
                "entity_id": "switch.interrupteur_salon_l3",
                "state": "on",
                "attributes": {
                  "friendly_name": "Bouton droit"
                },
                "last_changed": "2024-03-26T10:54:45.490045+00:00",
                "last_updated": "2024-03-26T10:54:45.490045+00:00",
                "context": {
                  "id": "01HSX6BWQ0AKCH9HEWP8V1S2QY",
                  "parent_id": null,
                  "user_id": "3a6ab31fc8b544feb4d3364795f68cbb"
                }
              },
              "for": null,
              "attribute": null,
              "description": "state of switch.interrupteur_salon_l3"
            }
          }
        }
      ],
      "action/0": [
        {
          "path": "action/0",
          "timestamp": "2024-03-26T10:54:45.495020+00:00",
          "changed_variables": {
            "context": {
              "id": "01HSX6BWQM1TJ78W809D5W1T9A",
              "parent_id": "01HSX6BWQ0AKCH9HEWP8V1S2QY",
              "user_id": null
            }
          },
          "result": {
            "params": {
              "domain": "light",
              "service": "turn_on",
              "service_data": {
                "transition": 5,
                "entity_id": [
                  "light.lampe_meuble_tv"
                ]
              },
              "target": {
                "entity_id": [
                  "light.lampe_meuble_tv"
                ]
              }
            },
            "running_script": false
          }
        }
      ],
      "action/1": [
        {
          "path": "action/1",
          "timestamp": "2024-03-26T10:54:45.498114+00:00",
          "result": {
            "params": {
              "domain": "switch",
              "service": "turn_on",
              "service_data": {},
              "target": {
                "entity_id": [
                  "switch.0x60a423fffe04ec65"
                ]
              }
            },
            "running_script": false
          }
        }
      ]
    },
    "config": {
      "id": "1711050491788",
      "alias": "Allumer Meuble TV",
      "description": "",
      "trigger": [
        {
          "platform": "state",
          "entity_id": [
            "switch.interrupteur_salon_l3"
          ],
          "to": "on"
        }
      ],
      "condition": [],
      "action": [
        {
          "service": "light.turn_on",
          "metadata": {},
          "data": {
            "transition": 5
          },
          "enabled": true,
          "target": {
            "entity_id": "light.lampe_meuble_tv"
          }
        },
        {
          "service": "switch.turn_on",
          "metadata": {},
          "data": {},
          "target": {
            "entity_id": "switch.0x60a423fffe04ec65"
          }
        }
      ],
      "mode": "single"
    },
    "blueprint_inputs": null,
    "context": {
      "id": "01HSX6BWQM1TJ78W809D5W1T9A",
      "parent_id": "01HSX6BWQ0AKCH9HEWP8V1S2QY",
      "user_id": null
    }
  },
  "logbookEntries": [
    {
      "name": "Allumer Meuble TV",
      "message": "triggered by state of switch.interrupteur_salon_l3",
      "source": "state of switch.interrupteur_salon_l3",
      "entity_id": "automation.allumer_meuble_tv",
      "context_id": "01HSX6BWQM1TJ78W809D5W1T9A",
      "when": 1711450485.49244,
      "domain": "automation"
    },
    {
      "when": 1711450485.588471,
      "state": "on",
      "entity_id": "switch.0x60a423fffe04ec65",
      "context_event_type": "automation_triggered",
      "context_domain": "automation",
      "context_name": "Allumer Meuble TV",
      "context_message": "triggered by state of switch.interrupteur_salon_l3",
      "context_source": "state of switch.interrupteur_salon_l3",
      "context_entity_id": "automation.allumer_meuble_tv"
    },
    {
      "when": 1711450485.656403,
      "state": "on",
      "entity_id": "light.lampe_meuble_tv",
      "context_event_type": "automation_triggered",
      "context_domain": "automation",
      "context_name": "Allumer Meuble TV",
      "context_message": "triggered by state of switch.interrupteur_salon_l3",
      "context_source": "state of switch.interrupteur_salon_l3",
      "context_entity_id": "automation.allumer_meuble_tv"
    },
    {
      "when": 1711450486.258671,
      "state": "off",
      "entity_id": "light.lampe_meuble_tv",
      "context_event_type": "automation_triggered",
      "context_domain": "automation",
      "context_name": "Allumer Meuble TV",
      "context_message": "triggered by state of switch.interrupteur_salon_l3",
      "context_source": "state of switch.interrupteur_salon_l3",
      "context_entity_id": "automation.allumer_meuble_tv"
    }
  ]
}

Hier soir j’ai joué avec des télécommandes Zigbee capable d’actions différentes si l’on fait un simple clic, double clic ou clic long, dont je n’arrivais pas à comprendre le mode de fonctionnement sous Home Assistant.
L’automatisation de test que j’ai créé pour cela appelait l’ampoule de ma lampe sur le meuble TV, juste cette ampoule.
Depuis ce matin, plus moyen d’allumer ma lampe avec mon automatisation initiale, sans que l’ampoule s’éteigne aussitôt. J’imagine que le problème est réapparu à cause de cette automatisation de test.
J’ai donc supprimé l’automatisation de test, désactivé et réactivé mon automatisation « Allumer meuble TV », mais le problème persiste.
Idem après redémarrage complet de Home Assistant.

Il y a un truc que tu mélange ou que tu oublies dans la mécanique
image
Impossible d’avoir une action off alors que ça n’existe pas dans l’automatisation en exemple ci dessus)
Donc c’est pas les logs qui correspondent
Pareil, pas de OFF dans les traces non plus

Salut

Petite question : Utilises-tu des templates avec ton switch et/ou light ?
si ç’est le cas, peux-tu nous partager leurs configurations ?

J’imagine que tu as raison, mais le problème c’est que je ne vois pas ce que je peux mélanger ou oublier.

Impossible d’avoir une action off alors que ça n’existe pas dans l’automatisation en exemple ci dessus. Donc c’est pas les logs qui correspondent.

Je confirme que l’automatisation en exemple ci-dessus est celle qui renvoie le journal en capture d’écran. Je suis parfaitement d’accord avec le principe de « ce n’est pas demandé dans l’automatisation, donc ça ne doit pas le faire ».
Pourtant le journal de l’automatisation semble clair, « Lampe Meuble TV a été éteint déclenché par l’automatisation Allumer Meuble TV » :

Pareil, pas de OFF dans les traces non plus.

Je ne suis pas familier des logs / traces Home Assistant, pourtant le dernier paragraphe de la trace postée ressemble bien à un OFF de mon ampoule…

{
      "when": 1711450486.258671,
      "state": "off",
      "entity_id": "light.lampe_meuble_tv",
      "context_event_type": "automation_triggered",
      "context_domain": "automation",
      "context_name": "Allumer Meuble TV",
      "context_message": "triggered by state of switch.interrupteur_salon_l3",
      "context_source": "state of switch.interrupteur_salon_l3",
      "context_entity_id": "automation.allumer_meuble_tv"
    }

Pour vraiment isoler le problème, j’ai désactivé toutes mes automatisations autre que Allumer Meuble TV. Ainsi, théoriquement, plus rien ne peut faire appel automatiquement à mon ampoule, pourtant les captures d’écran ci-dessus ont été prise avec mes autres automatisations désactivées.

Salut Giga77,

Salut
Petite question : Utilises-tu des templates avec ton switch et/ou light ?
si ç’est le cas, peux-tu nous partager leurs configurations ?

Je te remercie pour cette piste.

Débutant sur Home Assistant, je n’ai pour l’heure créé qu’un seul Template (Modèle) qui compare deux températures remontées par deux thermomètres positionné à l’intérieur et l’extérieur.
A partir de ce template, j’ai créé une automatisation dédiée à l’été, qui quand Extérieur >= Intérieur, m’envoie une notification pour fermer les fenêtres pour garder la fraicheur, et inversement quand Extérieur <= Intérieur, alors je reçois une notification qui me prévient d’ouvrir les fenêtres pour aérer.

Rien ne fait appel à mon interrupteur ou mon ampoule dans ce template ou cette automatisation. Mais si tu veux y jeter un oeil…

alias: Alerte ouverture des fenêtres en été
description: ""
trigger:
  - platform: template
    value_template: >-
      {{ states('sensor.thermometre_balcon_temperature') <=
      states('sensor.thermometre_salon_temperature') }}
condition: []
action:
  - service: notify.mobile_app_mi_9
    metadata: {}
    data:
      message: On peut ouvrir les fenêtres pour rafraîchir l'appartement.
  - wait_template: >-
      {{ states('sensor.thermometre_balcon_temperature') >=
      states('sensor.thermometre_salon_temperature') }}
    continue_on_timeout: true
  - service: notify.mobile_app_mi_9
    metadata: {}
    data:
      message: >-
        On peut fermer les fenêtres pour garder la fraicheur dans
        l'appartement..
mode: single

Peux-tu partager ton automatisation Eteindre Meuble TV ?
image

Voici :slight_smile: .

alias: Eteindre Meuble TV
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.interrupteur_salon_l3
    to: "off"
condition: []
action:
  - service: switch.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: switch.0x60a423fffe04ec65
  - service: light.turn_off
    data:
      transition: 5
    target:
      entity_id: light.lampe_meuble_tv
mode: single

Je doute que le problème vienne d’elle pour deux raisons :

  • J’ai fait des tests avec toutes les automatisations désactivées, y compris celle-là. Le problème persiste.
  • Je n’appelle pas dans cette automatisation un état « Basculé » de mon interrupteur, mais bien l’état « Eteint ». Donc rien ne doit faire appel à cette automatisation quand j’« allume » l’interrupteur dans ma première automatisation.

J’ai pensé à un bug de mon interrupteur qui pourrait envoyer un état « éteint » non demandé quand on l’allume, mais cette seconde automatisation éteindrait alors mon ampoule, ainsi que la prise connectée à coté, ce qui n’est pas le cas. Seule l’ampoule s’éteint…

Une petite question concernant deux paramètres de mon ampoule :

  • J’ai un mode « Don’t disturb », qui d’après ce que je comprends, empêche mon ampoule de se rallumer automatiquement après une coupure de courant et que le courant revient.
    Il me semblait que dans Smart Life, j’avais un paramètre « Power On Behavior = Previous » qui permettait de repartir sur l’état d’avant la coupure de jus. Si l’ampoule était allumée avant la coupure, elle se rallume quand le courant revient, si elle était éteinte elle le reste.
    A-t-on un paramètre comme ceci dans Home Assistant sur les ampoules (je l’ai sur ma prise connectée allumée avec l’ampoule via mon automatisation Allumer Meuble TV par exemple) ?
    Dans tous les cas, le paramètre « Don’t disturb » est désactivé ici, donc il ne doit pas parasiter mon automatisation…

  • Il y a un paramètre « Color power on behavior », que j’ai confondu en paramétrant un peu vite mon ampoule dans Zigbee2Mqtt, avec le paramètre « Power On Behavior » dont je parle dans la question précédente.
    Mais visiblement, d’après le nom, il semble plus lié à la partie gestion de la couleur de l’ampoule au démarrage. Quelqu’un peut m’en dire plus ?
    Je l’ai réglé sur Previous afin que l’ampoule reprenne son état « enregistré » en cas de coupure de courant, mais du coup est-ce que cela ne pourrait parasiter mon automatisation ?

Bonjour à tous,

Je reviens sur mon sujet après quelques mois de tests.

Le problème s’est considérablement réduit au fur et à mesure des mises à jour de Home Assistant, et Zigbee2MQTT… Mais il revient de temps en temps.

En revanche, j’ai réussi à comprendre quelle manipulation faisait réapparaitre le problème. Si j’éteins mon interrupteur et que je le rallume dans la foulée, je peux être sûr que suite à cette manipulation trop rapide de mon interrupteur, mon ampoule va recommencer à s’éteindre dès qu’elle s’allume.
Il suffit que j’allume l’ampoule via un bouton dans Home Assistant (afin d’agir uniquement sur celle-ci) pour que mon automatisation refonctionne à nouveau par la suite.

  • Idée : J’ai configuré une transition de 5s lors de l’extinction de mon ampoule dans mon automatisation. Est-ce que si je cherche à rallumer mon ampoule trop rapidement pendant l’extinction graduelle de celle-ci, cela n’entrainerait pas un bug de l’automatisation voir de l’ampoule elle-même (mais dans ce cas, si l’ampoule elle-même était responsable, pourquoi j’aurais des lignes concernant l’extinction de l’ampoule dans la chronologie de l’exécution de mon automatisation ?).

Pour essayer d’isoler le problème, j’ai interverti mon ampoule LIDL par une IKEA que j’avais dans une autre pièce. Je n’ai, lors des deux semaines de test, plus constaté aucun bug.
Cela tendrait à isoler le problème au niveau de l’ampoule LIDL.
Le problème étant beaucoup moins présent à l’heure actuelle, je vais garder mon ampoule LIDL jusqu’à ce qu’elle claque. Et si je dois la changer je passerait sur une IKEA du coup.

J’ai donc deux questions :

Je vous remercie,

Cordialement,

Alex