Calcul des heures creuses/pleines via Utility_meter et script automation

Bonjour à tous,

Désolé pour ma question un peu basique, mais j’ai vraiment du mal à comprendre la philosophie du YAML. J’ai cherché et trouvé des sujets similaires et pourtant je suis toujours bloqué.

Mon problème

J’ai créé un script YAML dans automation.yaml pour passer en paramètre la notion d’heure creuse et d’heure pleine.
Le script ne fonctionne pas. Par contre si je vais sur l’entité créée, et que je switche manuellement HP et HC ça fonctionne.
Je dois rater un truc simple qui fait que le script automation ne fonctionne pas.

Merci d’avance pour votre aide.

Voici mon fichier configuration.yaml

####### Integration Teleinfokit
        - state_topic: "teleinfokit/data/BASE"
          unit_of_measurement: "kWh"
          name: Index compteur électricité
          value_template: "{{float(value) / 1000.0}}"
          icon: mdi:home-analytics
          state_class: total_increasing
          device_class: energy
utility_meter:
  energie_quotidienne:
    source: sensor.index_compteur_electricite
    cycle: daily
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_hebdomadaire:
    source: sensor.index_compteur_electricite
    cycle: weekly
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_mensuelle:
    source: sensor.index_compteur_electricite
    cycle: monthly
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_annuelle:
    source: sensor.index_compteur_electricite
    cycle: yearly
    tariffs:
      - tarif_hp
      - tarif_hc
  temperature_moyenne:
    source: sensor.air_salon_2_temperature
    cycle: hourly

Et mon fichier automation.yaml :

automation:
  trigger:
    - platform: time
      at: "07:00:00"
      id: hp
      variables:
        tariff: "tarif_hp"
    - platform: time
      at: "23:00:00"
      id: HC
      variables:
        tariff: "tarif_hc"
  condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  action:
    - service: select.select_option
      target:
        entity_id: utility_meter.energie_quotidienne
      data:
        option: "{{ tariff }}"

Ma configuration

## System Information

version | core-2023.6.1

– | –

installation_type | Home Assistant OS

dev | false

hassio | true

docker | true

user | root

virtualenv | false

python_version | 3.11.3

os_name | Linux

os_version | 6.1.21-v8

arch | aarch64

timezone | Europe/Paris

config_dir | /config

Home Assistant Community Store

GitHub API | ok

– | –

GitHub Content | ok

GitHub Web | ok

GitHub API Calls Remaining | 4996

Installed Version | 1.32.1

Stage | running

Available Repositories | 1283

Downloaded Repositories | 9

Home Assistant Cloud

logged_in | false

– | –

can_reach_cert_server | ok

can_reach_cloud_auth | ok

can_reach_cloud | ok

Home Assistant Supervisor

host_os | Home Assistant OS 10.2

– | –

update_channel | stable

supervisor_version | supervisor-2023.06.1

agent_version | 1.5.1

docker_version | 23.0.6

disk_total | 687.6 GB

disk_used | 8.6 GB

healthy | true

supported | true

board | rpi4-64

supervisor_api | ok

version_api | ok

installed_addons | Mosquitto broker (6.2.1), File editor (5.6.0), Terminal & SSH (9.7.1), Duck DNS (1.15.0), NGINX Home Assistant SSL proxy (3.5.0), PSA Car Controller (v3.0.12)

Dashboards

dashboards | 1

– | –

resources | 2

views | 10

mode | storage

Recorder

oldest_recorder_run | 5 juin 2023 à 12:53

– | –

current_recorder_run | 10 juin 2023 à 15:33

estimated_db_size | 630.08 MiB

database_engine | sqlite

database_version | 3.41.2


Texte

Bonjour,
je pense que tu te trompe d’entité entity_id: utility_meter.energie_quotidienne dans action:

  action:
    - service: select.select_option
      target:
        entity_id: utility_meter.energie_quotidienne
      data:
        option: "{{ tariff }}"

l’entité créer pour les tarifs est un select.xxxxx

mon automatisation:

alias: Energie Maison Tarif
description: ""
trigger:
  - platform: time
    at: "04:56:00"
    variables:
      tariff: hp
  - platform: time
    at: "20:56:00"
    variables:
      tariff: hc
condition: []
action:
  - service: select.select_option
    target:
      entity_id:
        - select.energie_quotidienne_home
    data:
      option: "{{ tariff }}"
mode: single

Merci beaucoup pour ta réponse.
Nous sommes d’accord que si j’ai bien compris ce que tu m’as dit cela donne ceci :

automation:
  alias: Energie Maison Tarif
  description: ""
  trigger:
    - platform: time
      at: "07:00:00"
      id: hp
      variables:
        tariff: "tarif_hp"
    - platform: time
      at: "23:00:00"
      id: HC
      variables:
        tariff: "tarif_hc"
  condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  action:
    - service: select.select_option
      target:
        entity_id: select.energie_quotidienne
      data:
        option: "{{ tariff }}"
  mode: single

Bonne journée.

SAlut

attention
le fait d’utiliser des sensors tarif_hc et tarif_hp, ce n’est pas bon

le fait d’utiliser la syntaxe proposée par @WarC0zes
va te rajouter automatiquement un prefix a ton entitée.
regarde un autre exemple qui est decrit

Merci je vais regarder ça.
Il me semble que je l’avais trouvé et que je l’avais testé mais sans succès.
Je réessaye et je vous dit à tous les deux.

En tout cas, merci beaucoup pour vos réponses rapides. C’est vraiment génial. :wink:

Il me perd vraiment ce Yaml :smiley:

J’ai le message d’erreur suivante, j’ai relu 20 fois, je ne vois pas la différence avec l’exemple que tu as cité :

bad indentation of a mapping entry (10:9)
7 | variables:
8 | tariff: tarif_hp
9 | - platform: time
10 | at: ‹ 23:00:00 ›
--------------^
11 | variables:

Je remets configuration .yaml et Automation.yaml

####### Integration Teleinfokit
        - state_topic: "teleinfokit/data/BASE"
          unit_of_measurement: "kWh"
          name: Index compteur électricité
          value_template: "{{float(value) / 1000.0}}"
          icon: mdi:home-analytics
          state_class: total_increasing
          device_class: energy
#####################################################################
utility_meter:
  energie_quotidienne:
    source: sensor.index_compteur_electricite
    cycle: daily
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_hebdomadaire:
    source: sensor.index_compteur_electricite
    cycle: weekly
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_mensuelle:
    source: sensor.index_compteur_electricite
    cycle: monthly
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_annuelle:
    source: sensor.index_compteur_electricite
    cycle: yearly
    tariffs:
      - tarif_hp
      - tarif_hc
automation:
- id: Changement_tarif
  alias: Energie Maison Tarif
  trigger:
  - platform: time
    at: '07:00:00'
    variables:
      tariff: tarif_hp
  - platform: time
      at: '23:00:00'
      variables:
        tariff: tarif_hc
  condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  action:
    - service: select.select_option
      target:
        entity_id: select.energie_quotidienne
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id: select.energie_hebdomadaire
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id: select.energie_mensuelle
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id: select.energie_annuelle
      data:
        option: "{{ tariff }}"
mode: single

ç’est pourtant clair (en anglais). L’indentation n’est pas correct sur la ligne

      at: '23:00:00'

Il y a une différence (des espaces en trop):
image

Mais quel boulet je fais.
Merci beaucoup.

Je n’ai plus qu’à attendre ce soir pour voir si cela fonctionne.

En allant voir dans les logs, j’ai ce messages d’erreur :

Logger: homeassistant.components.automation
Source: components/automation/config.py:207
Integration: Automatisation (documentation, issues)
First occurred: 16:45:13 (1 occurrences)
Last logged: 16:45:13

Unnamed automation could not be validated and has been disabled: extra keys not allowed @ data[‹ automation ›]. Got [{‹ id ›: ‹ Changement_tarif ›, ‹ alias ›: ‹ Energie Maison Tarif ›, ‹ trigger ›: [{‹ platform ›: ‹ time ›, ‹ at ›: ‹ 07:00:00 ›, ‹ variables ›: {‹ tariff ›: ‹ tarif_hp ›}}, {‹ platform ›: ‹ time ›, ‹ at ›: ‹ 23:00:00 ›, ‹ variables ›: {‹ tariff ›: ‹ tarif_hc ›}}], ‹ condition ›: [{‹ condition ›: ‹ time ›, ‹ weekday ›: [‹ mon ›, ‹ tue ›, ‹ wed ›, ‹ thu ›, ‹ fri ›]}], ‹ action ›: [{‹ service ›: ‹ select.select_option ›, ‹ target ›: {‹ entity_id ›: ‹ select.energie_quotidienne ›}, ‹ data ›: {‹ option ›: ‹ {{ tariff }} ›}}, {‹ service ›: ‹ select.select_option ›, ‹ target ›… required key not provided @ data[‹ action ›]. Got None required key not provided @ data[‹ trigger ›]. Got None

Une idée de ce que j’ai fait de travers?

Heu

il y a pas des limitations dans les ID ??
genre pas de majuscule ni de _
essaye ça

automation:
- id: changementtarif

C’est pareil :

Logger: homeassistant.components.automation
Source: components/automation/config.py:207
Integration: Automatisation (documentation, issues)
First occurred: 17:31:47 (1 occurrences)
Last logged: 17:31:47

Unnamed automation could not be validated and has been disabled: extra keys not allowed @ data[‹ automation ›]. Got [{‹ id ›: ‹ changementtarif ›, ‹ alias ›: ‹ Energie Maison Tarif ›, ‹ trigger ›: [{‹ platform ›: ‹ time ›, ‹ at ›: ‹ 07:00:00 ›, ‹ variables ›: {‹ tariff ›: ‹ tarif_hp ›}}, {‹ platform ›: ‹ time ›, ‹ at ›: ‹ 23:00:00 ›, ‹ variables ›: {‹ tariff ›: ‹ tarif_hc ›}}], ‹ condition ›: [{‹ condition ›: ‹ time ›, ‹ weekday ›: [‹ mon ›, ‹ tue ›, ‹ wed ›, ‹ thu ›, ‹ fri ›]}], ‹ action ›: [{‹ service ›: ‹ select.select_option ›, ‹ target ›: {‹ entity_id ›: ‹ select.energie_quotidienne ›}, ‹ data ›: {‹ option ›: ‹ {{ tariff }} ›}}, {‹ service ›: ‹ select.select_option ›, ‹ target ›:… required key not provided @ data[‹ action ›]. Got None required key not provided @ data[‹ trigger ›]. Got None

t’es pas homogène avec tes tariff et tariffs

dans ton automation

      variables:
        tariff: tarif_hc

dans ton utility meter

energie_quotidienne:
    source: sensor.index_compteur_electricite
    cycle: daily
    tariffs:

scrogneugneu :joy:

1 « J'aime »

J’ai tout unifié, mais toujours pareil. :thinking:
Je remets les fichiers corrigés pour être sûr que je ne fais pas de bêtise.
A chaque fois, je fais un redémarrage complet pour être sûr.

Logger: homeassistant.components.automation
Source: components/automation/config.py:207
Integration: Automatisation (documentation, issues)
First occurred: 18:03:36 (1 occurrences)
Last logged: 18:03:36

Unnamed automation could not be validated and has been disabled: extra keys not allowed @ data[‹ automation ›]. Got [{‹ id ›: ‹ changementtarif ›, ‹ alias ›: ‹ Energie Maison Tarif ›, ‹ trigger ›: [{‹ platform ›: ‹ time ›, ‹ at ›: ‹ 07:00:00 ›, ‹ variables ›: {‹ tariffs ›: ‹ tarif_hp ›}}, {‹ platform ›: ‹ time ›, ‹ at ›: ‹ 23:00:00 ›, ‹ variables ›: {‹ tariffs ›: ‹ tarif_hc ›}}], ‹ condition ›: [{‹ condition ›: ‹ time ›, ‹ weekday ›: [‹ mon ›, ‹ tue ›, ‹ wed ›, ‹ thu ›, ‹ fri ›]}], ‹ action ›: [{‹ service ›: ‹ select.select_option ›, ‹ target ›: {‹ entity_id ›: ‹ select.energie_quotidienne ›}, ‹ data ›: {‹ option ›: ‹ {{ tariffs }} ›}}, {‹ service ›: ‹ select.select_option ›, 'targe… required key not provided @ data[‹ action ›]. Got None required key not provided @ data[‹ trigger ›]. Got None

utility_meter:
  energie_quotidienne:
    source: sensor.index_compteur_electricite
    cycle: daily
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_hebdomadaire:
    source: sensor.index_compteur_electricite
    cycle: weekly
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_mensuelle:
    source: sensor.index_compteur_electricite
    cycle: monthly
    tariffs:
      - tarif_hp
      - tarif_hc
  energie_annuelle:
    source: sensor.index_compteur_electricite
    cycle: yearly
    tariffs:
      - tarif_hp
      - tarif_hc
  temperature_moyenne:
    source: sensor.air_salon_2_temperature
    cycle: hourly
automation:
- id: changementtarif
  alias: Energie Maison Tarif
  trigger:
  - platform: time
    at: '07:00:00'
    variables:
      tariffs: tarif_hp
  - platform: time
    at: '23:00:00'
    variables:
      tariffs: tarif_hc
  condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  action:
    - service: select.select_option
      target:
        entity_id: select.energie_quotidienne
      data:
        option: "{{ tariffs }}"
    - service: select.select_option
      target:
        entity_id: select.energie_hebdomadaire
      data:
        option: "{{ tariffs }}"
    - service: select.select_option
      target:
        entity_id: select.energie_mensuelle
      data:
        option: "{{ tariffs }}"
    - service: select.select_option
      target:
        entity_id: select.energie_annuelle
      data:
        option: "{{ tariffs }}"
mode: single

Dans la doc,
pour les sensors, c’est tariffs

utility_meter:
  daily_energy:
    source: sensor.energy
    name: Daily Energy
    cycle: daily
    tariffs:
      - peak
      - offpeak
  monthly_energy:
    source: sensor.energy
    name: Monthly Energy
    cycle: monthly
    tariffs:
      - peak
      - offpeak

pour l’automatisation , c’est tariff

automation:
  trigger:
    - platform: time
      at: "09:00:00"
      variables:
        tariff: "peak"
    - platform: time
      at: "21:00:00"
      variables:
        tariff: "offpeak"
  action:
    - service: select.select_option
      target:
        entity_id: select.daily_energy
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id: select.monthly_energy
      data:
        option: "{{ tariff }}"

je sais pas si sa supporte les _ dans le tariffs. essaye avec un espace a la place.

Toutes mes excuses pour le scrogneugneu…

Salut jrvcd,
Aucun souci, je suis conscient d’être un boulet en YAML :smiley:

suis pas mieux :wink: !!!

et si tu enleves les conditions

  • condition: time
    weekday:
    • mon
    • tue
    • wed
    • thu
    • fri

ça donnes quoi car chez moi ça roule tout bien

Bonjour à tous,

Bon j’ai passé ma soirée à tester des trucs, à fouiller dans les forums. mais sans succès.
Suite à vos remarques, je vous remets les fichiers.
J’ai mis configuration.yaml en entier en retirant les infos privées.

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes

# This will override the default home zone
zone:
  - name: Home
    latitude: [Données Persos]
    longitude: [Données Persos]
    radius: 18
    icon: mdi:Home

# Text to speech
tts:
  - platform: google_translate

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
#sensor: !include sensor.yaml

##############################################################################
################################## HTTPS ON ##################################
homeassistant:
  internal_url: http://homeassistantrpi4.local:8123/
  external_url: https://[Données Persos].duckdns.org/

http:
  ssl_certificate: /ssl/fullchain.pem
  ssl_key: /ssl/privkey.pem
  trusted_proxies:
    - 192.168.[Données Persos]
    - 192.168.[Données Persos]
  use_x_forwarded_for: true
  ip_ban_enabled: true
  login_attempts_threshold: 5

################################## HTTP OFF ##################################
##############################################################################
##############################################################################
################################## LINKY ON ##################################
mqtt:
  sensor:
# Adresse du compteur
        - state_topic: "teleinfokit/data/ADCO"
          name: Linky identification du compteur
          icon: mdi:eye
# Option tarifaire choisie
        - state_topic: "teleinfokit/data/OPTARIF"
          name: Linky option tarifaire
          icon: mdi:power-plug
# Intensité souscrite
        - state_topic: "teleinfokit/data/ISOUSC"
          unit_of_measurement: "A"
          name: Linky intensité souscrite
          icon: mdi:information
# Index option Base
        - state_topic: "teleinfokit/data/BASE"
          unit_of_measurement: "Wh"
          device_class: energy
          name: Linky option abonnement
          icon: mdi:home-analytics
# Période Tarifaire en cours
        - state_topic: "teleinfokit/data/PETC"
          name: Linky période tarifaire en cours
          icon: mdi:power-plug
# Intensité Instantanée
        - state_topic: "teleinfokit/data/IINST"
          unit_of_measurement: "A"
          name: Linky intensité instantanée
          icon: mdi:power-plug
# Intensité maximale appelée
        - state_topic: "teleinfokit/data/IMAX"
          unit_of_measurement: "A"
          name: Linky intensité maximale
          icon: mdi:power-plug
# Puissance apparente arrondi à la dizaine la plus proche
        - state_topic: "teleinfokit/data/PAPP"
          unit_of_measurement: "W"
          name: Linky puissance apparente
          icon: mdi:power-plug
          state_class: total_increasing
# Horaire Heures Pleines Heures Creuses
        - state_topic: "teleinfokit/data/HHPHC"
          name: Linky horaire HPHC
          icon: mdi:eye
# Mot d'état du compteur 
        - state_topic: "teleinfokit/data/MOTDETAT"
          name: Linky compteur 
          icon: mdi:eye
####### Integration Teleinfokit
        - state_topic: "teleinfokit/data/BASE"
          unit_of_measurement: "kWh"
          name: Index compteur
          value_template: "{{float(value) / 1000.0}}"
          icon: mdi:home-analytics
          state_class: total_increasing
          device_class: energy
################################## LINKY OFF ##################################
###############################################################################
###############################################################################
################################## Conso ON ###################################
utility_meter:
  energie_quotidienne:
    source: sensor.index_compteur
    cycle: daily
    tariffs:
      - peak
      - offpeak
  energie_hebdomadaire:
    source: sensor.index_compteur
    cycle: weekly
    tariffs:
      - peak
      - offpeak
  energie_mensuelle:
    source: sensor.index_compteur
    cycle: monthly
    tariffs:
      - peak
      - offpeak
  energie_annuelle:
    source: sensor.index_compteur
    cycle: yearly
    tariffs:
      - peak
      - offpeak
  temperature_moyenne:
    source: sensor.air_salon_2_temperature
    cycle: hourly
################################## Conso OFF ##################################
###############################################################################
###############################################################################
################################## Foobot ON ##################################
sensor:
  - platform: foobot
    token: [Données Persos]
    username: [Données Persos]
################################## Foobot OFF ##################################
################################################################################

Et automations.yaml où j’ai viré tous les caractères spéciaux

automation:
- id: tarifhphc  
  alias: "tarifelec"
  trigger:
  - platform: time
    at: "07:00:00"
    variables:
      tariff: "peak"
  - platform: time
    at: "23:00:00"
    variables:
      tariff: "offpeak"
  condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
  action:
    - service: select.select_option
      target:
        entity_id:
          select.energie_quotidienne
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id:
          select.energie_hebdomadaire
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id:
          select.energie_mensuelle
      data:
        option: "{{ tariff }}"
    - service: select.select_option
      target:
        entity_id:
          select.energie_annuelle
      data:
        option: "{{ tariff }}"

J’ai toujours la même erreur :

Logger: homeassistant.components.automation
Source: components/automation/config.py:207
Integration: Automatisation (documentation, issues)
First occurred: 12 juin 2023 à 22:14:42 (1 occurrences)
Last logged: 12 juin 2023 à 22:14:42

Unnamed automation could not be validated and has been disabled: extra keys not allowed @ data['automation']. Got [{'id': 'tarifhphc', 'alias': 'tarifelec', 'trigger': [{'platform': 'time', 'at': '07:00:00', 'variables': {'tariff': 'peak'}}, {'platform': 'time', 'at': '23:00:00', 'variables': {'tariff': 'offpeak'}}], 'condition': [{'condition': 'time', 'weekday': ['mon', 'tue', 'wed', 'thu', 'fri']}], 'action': [{'service': 'select.select_option', 'target': {'entity_id': 'select.energie_quotidienne'}, 'data': {'option': '{{ tariff }}'}}, {'service': 'select.select_option', 'target': {'entity_id': 'select... required key not provided @ data['action']. Got None required key not provided @ data['trigger']. Got None

Par contre j’ai une piste. J’ai trouvé des résidus de mes tests anciens.
Je suppose que la configuration n’est pas propre quelque part

Vous avez une idée pour nettoyer ma boulet attitude :smiley:

Merci

Problème d’indextion

ici aussi

Tu fait ton automatisation a la main ( en yaml ) directement dans automations.yaml ou par le UI ?