Lumière aléatoire - simulation présence

bonjour

Dans ma quête de migration de eedomus vers HA, je suis confronté à un nouveau problème. Je cherche le moyen de simuler la présence dans la maison. Pour être plus précis, je cherche un moyen d’allumer la lumière d’une pièce (ou plus) à partir du coucher du soleil et ca de manière aleatoire, par exemple à 19h30, allumer la lumière pendant 25 minutes, puis à 21h pendant 15 min, etc et ca jusqu’au petit matin. J’ai trouvé quelques exemples mais soit ca ne fonctionne pas, soit c’est pas ce que je cherche (generalement a heure fixe)

J’espère que vous pourrez m’aider

Il te suffit de demander à chatGPT avec un prompt correct (une bonne formulation de ta demande). La maîtrise des prompts et du dialogue avec l’IA (ici il n’y a qu’une première question) est un sujet passionnant…

Exemple de question pour ton pb :

j’utilise home Assistant. je souhaite faire une automatisation en Yaml avec une boucle qui allume et éteigne une lampe pendant des durées aléatoires. La durée maximale allumée ou éteinte doit être entre 5 et 20 minute. La lampe ne peut être qu’allumee ou éteinte et n’a pas de réglage d’intensité. le script doit démarrer au couché du soleil s’arrêter au levé du soleil. si le script s’arrête, la lumière doit être éteinte. peux tu me donner le code ?

Et voici la réponse :

Bonjour! Je peux vous aider à créer une automatisation en YAML pour allumer et éteindre une lampe pendant des durées aléatoires. Voici le code que vous pouvez utiliser:

- alias: 'Allumer et éteindre la lampe'
  trigger:
    platform: sun
    event: sunset
  action:
    - repeat:
        while:
          - condition: sun
            after: sunrise
        sequence:
          - service: light.turn_on
            entity_id: light.lampe
          - delay:
              minutes: "{{ range(5, 20) | random }}"
          - service: light.turn_off
            entity_id: light.lampe
          - delay:
              minutes: "{{ range(5, 20) | random }}"

Ce script allume et éteint la lampe pendant des durées aléatoires comprises entre 5 et 20 minutes. La lampe ne peut être qu’allumée ou éteinte et n’a pas de réglage d’intensité. Le script démarre au coucher du soleil et s’arrête au lever du soleil. Si le script s’arrête, la lumière est éteinte.

J’espère que cela vous aide! N’hésitez pas à me faire savoir si vous avez d’autres questions.

Salut,
Attention avec ChatGPT, il arrive très souvent qu’il invente de la syntaxe yaml même si ça ressemble très fort.
J’ai vu que sur le forum home assistant international il est interdit de poster des réponses de ChatGPT pour justement ne pas référencer des erreurs syntaxiques.

Pour revenir au sujet, il existe déjà des discussions sur le forum concernant la simulation de présence, je m’y étais intéressé à une époque et j’avais également trouvé un Blueprint qui rejouait des séquences d’éclairage passées : https://community.home-assistant.io/t/vacation-lighting-replay-historical-lighting/282435

Y’a aussi une intégration sur HACS, ça se base aussi sur ton historique

Si on est capable de relire et de comprendre sans copier directement dans la config, ça reste quand même super utile.

Effectivement les propositions chatGPT peuvent être mauvaises, et il faut tester et avoir un regard critique. C’est juste un outil d’aide comme l’est google. Utiliser via bing permet aussi de vérifier les sources.
Ma réponse illustre surtout comment formuler une demande a chatGPT.

Tout à fait je suis d’accord avec toi, ça peut être une aide pour avoir une piste de réflexion.
Je voulais surtout dire que c’est peut-être pas une bonne idée de copier-coller les résultats sur des forums car les recherches vont mélanger les vrais blocs yaml validés par les utilisateurs et les yaml générés qui peuvent être faux. Ta proposition de recherche devrait être suffisante pour aider les utilisateurs qui le souhaitent à le formuler dans ChatGPT.
Dans tous les cas je pense qu’il est essentiel de mentionner qu’on insère du code ChatGPT comme t’as fait. Ça demande peut-être une mise à jour de la charte du forum pour décrire les bonnes pratiques, comme l’a fait le forum international ici
J’arrête la digression :slightly_smiling_face:

1 « J'aime »

Merci beaucoup je vais essayer ca

1 « J'aime »

j’ai modifie celui pour commence plus tard dans la soirée, idem il s’arrete a minuit…

Si tu veux des réponses ou de l’aide, il serait bien que tu montres ton automation.
Et Historique des Exécutions !
Il doit manquer une condition du Soleil ! Ou le fait du lendemain lever soleil

Effectivement, c’est mieux si je partage mon code :slight_smile:

alias: alarme - simulation présence cuisine
description: ""
trigger:
  - platform: sun
    event: sunset
    offset: 0
    enabled: false
  - platform: time
    at: "22:15:00"
action:
  - repeat:
      while:
        - condition: sun
          after: sunrise
      sequence:
        - service: light.turn_on
          entity_id: light.lampe_hue_white_cuisine
        - delay:
            minutes: "{{ range(10, 25) | random }}"
        - service: light.turn_off
          entity_id: light.lampe_hue_white_cuisine
        - delay:
            minutes: "{{ range(10, 25) | random }}"

et l’execution :

Triggered by the time at 19 avril 2023 à 22:15:00

Repeat an action while Confirm sun after sunrise is true

unknown

(light.lampe_hue_white_cuisine) turned on

18 minutes later

(light.lampe_hue_white_cuisine) turned off

18 minutes later

unknown

(light.lampe_hue_white_cuisine) turned on

16 minutes later

(light.lampe_hue_white_cuisine) turned off

17 minutes later

unknown

(light.lampe_hue_white_cuisine) turned on

17 minutes later

(light.lampe_hue_white_cuisine) turned off

10 minutes later

unknown

(light.lampe_hue_white_cuisine) turned on

21 minutes later

(light.lampe_hue_white_cuisine) turned off

15 minutes later

unknown

Finished at 20 avril 2023 à 00:27:01 (runtime: 7921.58 seconds)

Donc apparemment le problème se situe au lendemain, tu n’as plus la même condition « Lever Soleil ! » est celle de la veille ?
Regarde dans la partie « Step Details » si tu vois les heures et date du Soleil

wanted_time_before:
wanted_time_after:
Iteration 4
Executed: 19 avril 2023 à 23:51:01
Result:
wanted_time_after: '2023-04-19T04:51:58.372138+00:00'
result: true
repeat/while/0
Iteration 5
Executed: 20 avril 2023 à 00:27:01
Result:
wanted_time_after: '2023-04-20T04:50:03.407460+00:00'
result: false

au niveau result j’ai un retour a faux en iteration 5

Normal si tu prends au début les conditions du lever ou du coucher Soleil du jour même.
L’itération « 5 » sera « false » car la date et heure sera passée à minuit ou 00H00:00 + !

est ce que cela veut dire qu’il faut faire 2 automation ?

Tu peux faire dans la même avec ajout d’ ID qui fera les choix !
Ce qu’il faut penser :

  • Après Coucher Soleil ( donc ce jour) ! Au début de l’automatisation! qui n’est plus vraie à minuit !

  • Avant Lever du Soleil ( donc le lendemain) ! Toi tu as ce jour du début de l’automatisation !

Et toi tu auras plus les mêmes conditions si tu passes Minuit

Bonjour
Et une condition sous l’horizon, ne sera pas liée à la date du jour, non?

IL faut la condition du « Next rising »
« Date et heure du prochain lever de soleil »

Comme disent certains , on n’écrit pas directement la réponse au code, afin de réfléchir à l’automatisation et la comprendre ! :innocent:
J’espere seulement que @loicdeschamps comprend le « bug »:

Les dates et heures du Lever et coucher Soleil au moment précis du début de l’automatisation !

1 « J'aime »

Por référence, si d’autres utilisateurs lisent ce post, moi je fais ça en NodeRED avec le node presence-faker:

En cas d’absence, j’allume les lumières et je gère les volets aléatoirement, mais j’allume aussi la TV assez fort si une présence est détectée sur le palier.

re bonjour

je comprends mon erreur mais etant debutant HA difficile de se mettre dans l’automation (rien a voir avec eedomus). La notion de next rising je ne le voie pas

je suis la pour apprendre et quand je peux aider je le fais par retour d’experience

si j’ajoute la condition, est ce que ca fonctionnera

alias: alarme - simulation présence cuisine
description: ""
trigger:
  - platform: time
    at: "22:15:00"
action:
  - repeat:
      while:
        - condition: sun
          after: sunrise
      sequence:
        - service: light.turn_on
          entity_id: light.lampe_hue_white_cuisine
        - delay:
            minutes: "{{ range(10, 25) | random }}"
        - service: light.turn_off
          entity_id: light.lampe_hue_white_cuisine
        - delay:
            minutes: "{{ range(10, 25) | random }}"
condition:
  - condition: sun
    before: sunrise