Domotiser le sèche serviettes

Bonjour,

Je souhaite domotiser mon sèche serviettes avec un Shelly 1 que j’ai en stock.

Je voudrais qu’il s’active automatiquement dans deux cas :

  • Après une douche pendant 1h
  • 1h avant mon réveil

Je bloque sur le deuxième cas, j’ai bien pensé à créer une entrée avec l’heure de réveil - 1h mais je ne vois absolument pas comment faire cela… Une idée ?

Merci d’avance

Salut,

Je vois 2 possibilités:
Si tu utilise ton téléphone comme réveil du peux avoir accès à l’heure de ton alarme par l’intégration de l’app.

image

Sinon tu règle l’heure directement dans le trigger d’une automatisation type heure.

J’utilise un réveil via des Sonos, l’heure est stockée dans une entrée DATETIME.

Mon heure de réveil n’est pas la même tous les jours.

Ok du coup ton problème c’est quoi ? Comment régler le trigger?

Soit réussir dans une automatisation à spécifier mon entrée DATETIME(REVEIL) -1h ou alors créer une autre DATETIME(SERVIETTES) qui utilise DATETIME(REVEIL) -1h que je pourrais ensuite inclure dans une automatisation.

Tu peux faire ça toujours dans le même trigger heure je pense, mais au lieue de mettre ‹ Temps Fixe › tu choisis ‹ Valeur d’une entrée de date/heure ›.
Et pour le « à » tu met un formule qui calcule le ton réveil moins 1 heure.

Je n’ai pas compris si sonos donne le réveil dans l’état d’une entité dédiée ou si c’est un attribut d’une entité.
Mais voilà un exemple, à toi de voir dans « outils de développement » > « modèles ».
Dans mon exemple l’heure du réveil est dans l’état d’une entité appelée : input_datetime.mon_reveil

{{ as_datetime(states.input_datetime.mon_reveil.state) - timedelta(hours = 1) }}

Oui j’ai l’état du réveil Sonos dans une entité dédiée.

J’ai essayé et visiblement il n’est pas possible de mettre une formule dans le champ « A », j’ai ce message :

Message malformed: Expected HH:MM, HH:MM:SS or Entity ID with domain 'input_datetime' or 'sensor' @ data['at'][0]

Il veut une heure et plus une data/heure.
Suffit de rajouter ça en fait pour changer le format:

{{ as_datetime(states.input_datetime.mon_reveil.state) - timedelta(hours = 1) }}

= 2022-03-07 06:00:00

{{ (as_datetime(states.input_datetime.mon_reveil.state) - timedelta(hours = 1)).time() }}

= 06:00:00

bonjour

je cherche comment brancher mon sèche serviette sur le shelly 1 aurais tu les branchement STP

Merci BCP

@AlexHass j’ai exactement le même message d’erreur, je dois mal faire quelque chose…

@Jonathan_y tu fais passer la phase dans I/O et le neutre en direct.

Effectivement il ne veut pas un objet type datetime… mais un chaine de caractères… il est chiant :slight_smile:
Correction, j’ai ajouté la conversion en chaine de caractère à la fin, ça marchera mais du coup y’a surement plus simple :

{{ (as_datetime(states.input_datetime.date.state) - timedelta(hours = 1)).time() | string}}

J’ai la même erreur, il accepte uniquement une entrée j’ai l’impression :cry:

Il ne serait pas possible de créer une entrée virtuelle qui se base sur l’entrée réveil - 1h ?

Bon j’avoue j’ai rien testé jusque là :slight_smile:
Mais là il m’a énervé :cowboy_hat_face:

Du coup ouais en regardant la doc des trigger time, tu ne peux que utiliser un input_datetime ou un sensor avec la classe: timestamp.

Donc en passant par un sensor template, ça marche.
Pour être sûr que l’entrée est un timestamp j’ai utilisé l’alarme de mon téléphone.
En faisant ça et en précisant dans le ‹ à › trigger « sensor.reveil_moins_1h », ça s’enregistre.
Là ça devrais être bon… j’espère…

  - platform: template
    sensors:
      reveil_moins_1h:
        device_class: timestamp
        value_template: >
          {{ as_datetime(states.sensor.pixel_4a_next_alarm.state) - timedelta(hours = 1) }}

On doit pas être loin mais toujours pas :innocent:

Ah mais unavailable, ça resesemble a quoi l’entité du réveil de la Sonos?

Je n’utilise pas l’entité du réveil Sonos directement mais une input_datetime qui vient elle mettre à jour l’attribut heure de l’entité Sonos.

Bon, courage!
Seule chose qui pourrait ne pas marcher là… c’est si ton datetime n’a pas de date :slight_smile:
Mais là ça doit marcher!

  - platform: template
    sensors:
      reveil_moins_1h:
        device_class: timestamp
        value_template: >
          {{ (as_local(as_datetime(states.input_datetime.mon_reveil.state)) - timedelta(hours = 1)).isoformat()}}

Et c’est le cas… pas de date uniquement le temps dans l’entrée.

:rofl:
J’en étais sûr.
Il ne veut pas accepter une heure seule quand ça vient d’un sensor on dirait… :frowning:

Si quelqu’un a un idée, je suis toujours en recherche :upside_down_face:

Pour rappel je cherche solution pour créer une entrée virtuelle basée sur une entrée datetime - 1h