DEBUTANT HA : Automatisation pour interrupteur virtuel déclenche entitée heures creuses entre créneau heures fixes

Bonjour,

Alors je sais, le sujet a surement été traité ailleurs, mais j’ai cherché et je ne trouve pas ce qui correspond vraiment à ce que je cherche.

Je viens de Jeedom, j’essaie de me familiariser avec la “philosophie fonctionnement HA”. Avec Jeedom, je sais comment faire.

Quand j’aurai finalisé ce que je cherche avec interrupteur et scène, j’aurai alors compris comment fonctionne HA dans ce domaine (j’espère ;))

Bon, mon sujet : je souhaite créer un interrupteur (virtuel-Borne VE Heures Creuses) qui lorsque je le met On, déclenche une scène qui prévoit de mettre On un vrai interrupteur (Borne VE-présent dans HA) à 22H10 et automatiquement le passe Off à 5H55, et passe l’interrupteur virtuel à Off aussi à 5H55. Avec aussi la possibilité bien sur d’annuler cette demande si Off sur interrupteur virtuel et aussi possibilité de déclencher la scène même si 22H est passée (donc aussi si à 1H j’appuie, qu’il mette On entre 1H à 5H55).

Je remercie par avance toute personne qui pourra m’aider.

Bonne journée

salut

en fait dans HA ta notion d’interrupteur virtuel c’est un input booléean (donc qui a l’etat 1 ou 0)

ils se paramètrent dans paramètres > appareils et services > entrées

  • créer une entrée
  • choisir un booléen/intterupteur

c’est ce qui remplace ton virtuel

puis ce vietuel il te servira dans un scénario/automatisation

merci @ddfdom , ok pour le virtuel.

Donc ensuite j’ai créé une automatisation, avec :

Quand : mon virtuel en mettant si passe de desativé à activé

Et si : l’interrupteur de la borne est désactivé (d’ailleur ne peut t’on pas aussi gérer ici le fait que si la borne est On, la mettre Off ?)

Alors faire : j’ai regardé bloc de construction, je ne vois rien qui pourrait faire : à 22H10 faire …..

D’ailleurs, si on ajoute un bloc par erreur, je n’arrive pas à trouver supprimer, je vois couper, coller, dupliquer, désactiver, modifier Yaml…mais pas supprimer

NOTA : petit sujet en complément : j’ai une erreur sur un botton-card, dans la mise en forme d’un Label, si quelqu’un peu me dire ce qui clôche je l’en remercie d’avance.

ButtonCardJSTemplateError: TypeError: Cannot read properties of undefined (reading 'state') in 'var label = "" label = '<b>Rouge</b><hr width="100" size="1" align=center color ="#FFFFFF"></h...'   

le code complet :

type: custom:button-card
entity: sensor.prix_actuel
label: |
  [[[
     var label = ""
      label = '<b>Rouge</b><hr width="100" size="1" align=center color ="#FFFFFF"></hr>' + states['sensor.rte_tempo_cycle_jours_restants_rouge'].state + '/'  + states['sensor.rte_tempo_cycle_jours_restants_rouge'].state + '<br>HP ' + states['sensor.tarif_jour_rouge_hp'].state + '<BR>'+'HC ' + states['sensor.tarif_jour_rouge_hc'].state
      return label;
  ]]]
show_label: true
show_icon: false
show_state: false
show_name: false
card_mod:
  style: |
    ha-card {
     border-radius:10px; 
     padding-top: 5px;
     background-color: red;

    } 

merci

Salut

Ce qui déclenche ta borne c’est les horaires.

A 22h10 allumer

A 5h55 éteindre

Ton virtuel n’est qu’une condition à la base mais il sert aussi de déclencheur si tu l’actives après 22h10

Donc tu dois faire :

Quand 22h10 action allumer borne si virtuel est on

Quand 5h55 action éteindre borne et mettre virtuel a off

Quand Virtuel à ON action allumer borne si heure entre 22h10 et 5h55

Tu peux faire ça en 3 automatisations distinctes ou en une seule avec l’ajout de trigger_id

Ah, ok, donc en fait, je crée une automatisation qui vérifie, tous les jours, l’état du virtuel à 22H1O.
On ne peut pas déclencher une automatisation si virtuel change d’état, avec tous ces paramètres , uniquement quand on en a besoin ?
Et dans ta solution tu préconises 3 automatisations ? Ben si je bascule tout sur HA, je vais en avoir des tonnes…:wink:

Bonjour,
Pour le button-card test ça :

type: custom:button-card
entity: sensor.prix_actuel
label: >
  [[[
     return '<b>Rouge</b><hr width="100" size="1" align=center color ="#FFFFFF"></hr>' + states['sensor.rte_tempo_cycle_jours_restants_rouge'].state + '/'  + states['sensor.rte_tempo_cycle_jours_restants_rouge'].state + '<br>HP ' + states['sensor.tarif_jour_rouge_hp'].state + '<BR>'+'HC ' + states['sensor.tarif_jour_rouge_hc'].state;
  ]]]
show_label: true
show_icon: false
show_state: false
show_name: false
styles: 
  card:
    - border-radius: 10px
    - padding-top: 5px
    - background-color: red

Si tu pourrais mais tu vas te rajouter pleins de conditions pour tester chaque cas.

Et puis que se passe t’il si tu allumes ton virtuel à 22h00 ?

même erreur :

ButtonCardJSTemplateError: TypeError: Cannot read properties of undefined (reading 'state') in 'return '<b>Rouge</b><hr width="100" size="1" align=center color ="#FFFFFF"></hr>' + states['sensor...'
 

ça fonctionne chez moi avec des entités bidon. Tu dois avoir un souci sur le nom d’une entité.

Si je l’allume à 22H00, il prendra enc ompte ma demande pour 22H10 :wink:

Ce qui m’ennuie c’est quand résonnant comme ça, tu ajoute des actions tous les jours pour vérifier un état de déclencheur pour déclencher une action, alors que le déclencheur devrait suivant son état faire cette action.
Ce que tu me dis, je connais dans Jeedom, tous les jours il peut vérifier un truc ou à telle heure s’activer.

Est ce que automatisation permet de faire des SI, Alors, Sinon, ou on peut enchainer les si alors sinon, les Et, les Ou etc… derrière le SI, le Alors, le Sinon comme dans Jeedom ?

oups, ok je vais vérifier, merci

salut

non, tu peux avoir une seule automatisation en utilisant pour chaque triger un ID de declenchement, comme dit par @Tochy et ensuite avec des bloc de construction (dans lesquel tu aura les autres conditions).

dans ton cas, tu devrais avoir 4 trigger de declenchement et 4 bloc de construction pour les actions.

Nickel, merci @WarC0zes

1 « J'aime »

Ben non justement a 22h00 il n’est pas 22h10

Le déclenchement se fait au changement d’état du déclencheur pas avant pas après. Donc si tu allumes le virtuel a 22h00 il ne se passera rien à moins dans la suite de l’automatisation de lire dire d’attendre 22h10. Et si tu l’aalumes a 16h00 tu vas pas mettre ton automatisation en attente pour 6h10 sachant que si ha redémarre l’automatisation sera arrêtée.

C’est pour ça que tes déclencheurs doivent être les horaires 22h10 et 5h55 comme dit plus haut.

Je ne connais pas jeedom mais là il n’y a rien qui scrute en permanence en arrière plan les états des sensors, juste le changement d’état.

Ok, je comprends.
Autre idée :
Dans HA, y a t’il une possibilité d’activer/désactiver un calendrier ?
On crée un calendrier qui allume à 22H l’interrupteur et l’éteint à 6H (et passe le virtuel à Off à 6H); et on l’active calendrier si virtuel On et le désactive si Virtuel Off.
Et si déclenchement On du virtuel dans la période 22H, 6H, il enclenche l’interrupteur et le calendrier en même temps?

@WarC0zes encore une petite mise au point, en mettant pour le blanc

color ="#000000"

il change en blanc (car j’ai le mode sombre. Comment figer cette couleur en noir ?

Comme ça:

styles: 
  card:
    - border-radius: 10px
    - padding-top: 5px
    - background-color: red
  label:
    - color: black

Je m’auto répond, pas d’activation/désactivation de calendrier dans HA. Je vais donc regarder comment gérer avec plusieurs automatisations et je reviends pour des questions.

J’ai une gestion de volet sur jeedom avec des scénario (été hivers etc…, orientation, température ext, int; absent présent etc…), pour le transformer vers HA ça va être coton…

vraiment désolé mais je ne vois pas ou l’ajouter dans ça :

label: |
  [[[
     return '<b>Blanc</b><hr width="100" size="1" align=center color ="#000000"></hr>' + states['sensor.rte_tempo_cycle_jours_restants_blanc'].state + '/'  + states['sensor.rte_tempo_cycle_jours_deja_places_blanc'].state + '<br>HP ' + states['input_number.edf_tempo_blanc_hp'].state + '<BR>'+'HC ' + states['input_number.edf_tempo_blanc_hc'].state;
  ]]]
show_label: true

ça :

label: |
  [[[
     return '<b>Blanc</b><hr width="100" size="1" align=center color ="#000000"></hr>' + states['sensor.rte_tempo_cycle_jours_restants_blanc'].state + '/'  + states['sensor.rte_tempo_cycle_jours_deja_places_blanc'].state + '<br>HP ' + states['input_number.edf_tempo_blanc_hp'].state + '<BR>'+'HC ' + states['input_number.edf_tempo_blanc_hc'].state;
  ]]]
    - color: black

cela ne fonctionne pas

c’est dans styles qui faut ajouter la couleur du label.

styles: 
  card:
    - border-radius: 10px
    - padding-top: 5px
    - background-color: red
  label:
    - color: black