Probleme de mise en forme du fichier configuration.yaml

Bonjour,

j’avais poser la question sur mon souci de mon fichier configuration.yaml a la suite de la présentation de mon projet …

… mais je pense qu’il est plus judicieux de demander votre aide sur un post dédier.

Les sensors utiliser actuellement est intégré a mon fichier configuration.yaml fonctionnent sans problème, a savoir :

  • Commandes IP de mon lecteur Dune HD
  • Commandes IP de mon ampli Marantz
  • Affichage volume ampli de % en dB
  • Affichage des enceintes de l’ampli en service
  • Affichage de la jaquette du film en cours de lecture

Je vous met le code complet de mon fichier actuellement ( sauf la liste complète des films a afficher, inutile )

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

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

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
sensor: !include sensors.yaml
rest_command:
  dune_droite:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E718BF00
  dune_gauche:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E817BF00
  dune_haut:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=EA15BF00
  dune_bas:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E916BF00
  dune_enter:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=EB14BF00
  dune_back:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=FB04BF00
  dune_top_menu:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=AE51FB00
  dune_pop_up_menu:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F807BF00
  dune_power_on:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=A05FBF00
  dune_power_off:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=A15EBF00
  dune_ch_moins:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=B34CBF00
  dune_ch_plus:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=B44BBF00
  dune_series:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/Series
  dune_films_3d:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/Films 3D
  dune_films_a_regarder:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/Films a regarder
  dune_music:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/Music
  dune_oqee:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/OQEE by Free
  dune_yadis:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/Yadis 2
  dune_youtube:
    url: http://192.168.1.153/cgi-bin/do?cmd=open_path&url=root://favorites/YouTube
  dune_a:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=BF40BF00
  dune_b:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E01FBF00
  dune_c:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=FF00BF00
  dune_d:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=BE41BF00
  dune_1:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F40BBF00
  dune_2:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F30CBF00
  dune_3:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F20DBF00
  dune_4:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F10EBF00
  dune_5:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F00FBF00
  dune_6:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=FE01BF00
  dune_7:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=EE11BF00
  dune_8:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=ED12BF00
  dune_9:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=EC13BF00
  dune_0:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=F50ABF00
  dune_info:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=AF50BF00
  dune_play:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=B748BF00
  dune_pause:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E11EBF00
  dune_prev:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=B649BF00
  dune_next:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E21DBF00
  dune_stop:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E619BF00
  dune_rev:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E31CBF00
  dune_fwd:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=E41BBF00
  dune_subtitle:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=AB54BF00
  dune_audio:
    url: http://192.168.1.153/cgi-bin/do?cmd=ir_code&ir_code=BB44BF00
  marantz_volumedown:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MVDOWN
  marantz_volumeup:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MVUP
  marantz_centerup:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?CVC UP
  marantz_centerdown:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?CVC DOWN
  marantz_subup:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?CVSW UP
  marantz_subdown:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?CVSW DOWN
  marantz_audio_auto:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MSAUTO
  marantz_audio_select:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MSMOVIE
  marantz_stereo:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MSSTEREO
  marantz_source_game:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?SIGAME
  marantz_source_dune:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?SIMPLAY
  marantz_info:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MNINF
  marantz_off:
    url: http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?PWSTANDBY
sensor:
  - platform: template
    sensors:
      denon_volume_db:
        friendly_name: "Volume Ampli Denon en dB"
        unit_of_measurement: "dB"
        value_template: >
          {% set volume = state_attr('media_player.marantz_cinema_50', 'volume_level') %}
          {% if volume is not none %}
            {% set db = (volume * 98) - 80 %}
            {{ db | round(1) }}
          {% else %}
            N/A
          {% endif %}
  - platform: template
    sensors:
      denon_sound_mode_raw:
        unique_id: denon_output
        value_template: "{{ state_attr('media_player.marantz_cinema_50', 'sound_mode_raw') }}"

template:
  - sensor:
      - name: "Image du film Dune HD"
        unique_id: dune_film_image
        state: >
          {% set film = states('sensor.nom_du_film_dune_hd') %}
          {% set images = {
            "1UP - HDR.mkv": "/local/pictures/1UP-HDR05.png",
            "2ème sous-sol.mkv": "/local/pictures/2eme_sous-sol.png",
            "7 Guardians of the Tomb.mkv": "/local/pictures/7_Guardians_of_the_Tomb.png",
            "13 Ghost.mkv": "/local/pictures/13_Ghost.png"
          } %}
          {% set titre = state_attr('media_player.dune_hd', 'media_title') %}
          {{ images[titre] if titre in images else "/local/pictures/04_stop.png" }}

J’ ai ajouter ensuite en code permettant d’afficher un compteur quand mon lecteur démarre une lecture, celui ci n’ayant pas d’attribut de temps de lecture.

input_number:
  chronometre_seconds:
    name: Chronomètre Secondes
    initial: 0
    min: 0
    max: 36000
    step: 1
sensor:
  - platform: template
    sensors:
      chronometre_affichage:
        friendly_name: "Chronomètre"
        value_template: >
          {% set total_seconds = states('input_number.chronometre_seconds') | int %}
          {% set hours = (total_seconds // 3600) %}
          {% set minutes = (total_seconds % 3600) // 60 %}
          {% set seconds = (total_seconds % 60) %}
          {{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }} 
automation:
  - alias: "Incrémenter chronomètre si lecture HD est playing"
    trigger:
      - platform: time_pattern
        seconds: "/1"
    condition:
      - condition: state
        entity_id: media_player.dune_hd
        state: "playing"
      - condition: numeric_state
        entity_id: input_number.chronometre_seconds
        below: 36000
    action:
      - service: input_number.set_value
        target:
          entity_id: input_number.chronometre_seconds
        data:
          value: "{{ (states('input_number.chronometre_seconds') | int) + 1 }}"

  - alias: "Réinitialiser chronomètre à l'arrêt de la lecture"
    description: "Remet à zéro le chronomètre quand la lecture s'arrête ou est mise en pause."
    trigger:
      - platform: state
        entity_id: media_player.dune_hd
        from: "playing"
        to:
          - "idle"
          - "off"
          - "stop"
          - "on"
    action:
      - service: input_number.set_value
        target:
          entity_id: input_number.chronometre_seconds
        data:
          value: 0

  - alias: "Réinitialiser chronomètre au changement de fichier"
    description: "Réinitialise le chronomètre quand le fichier lu change."
    trigger:
      - platform: state
        entity_id: media_player.dune_hd
        attribute: media_content_id
    action:
      - service: input_number.set_value
        target:
          entity_id: input_number.chronometre_seconds
        data:
          value: 0

Le chronomètre fonctionne très bien mais les codes pour mon ampli ne fonctionnent plus jusqu’a que je supprime ce code de mon fichier configuration.yaml .

J’ai également ajouter ce code pour que je puisse afficher le volume de ma tv exactement comme sur celle ci, c’est a dire 10 au lieu de 0.1 en utilisant directement l’attribut volume de la tv.

sensor:
  - platform: template
    sensors:
      lg_tv_volume:
        friendly_name: "Volume TV LG"
        value_template: "{{ (states.media_player.lg_webos_tv_oled55b7v.attributes.volume_level * 100) | round(0) }}"
        unit_of_measurement: 'dB'

Et la idem je n’est plus les infos de volume et enceintes en service de mon ampli.
suivant dans quel ordre je place les codes je perd même le pilotage de l’ampli en IP.

Etant complètement nul en code je ne sais comment résoudre le problème et surtout quel est le problème

Salut

Tes automations sont dans le fichier configuration.yaml ?

Je ne sais pas si cela est la cause de ton problème, mais Je pense qu’il serait mieux de les créer a partir du menu automation avec l’interface UI.

A partir de interface UI des automatisations tu peux importer ton code Yaml directement.

Cela te permet de modifier par la suite tes automatisations plus facilement.

Cela va aussi alléger ton fichier configuration et le rendre plus simple a lire.

Exemple:

  • Pour tes sensors template et input_number, tu peux aussi les créer par interface UI, c’est plus simple et sa évite d’éventuel erreur de syntaxe(indentation).

Merci je vais tenter cela dans un premier temps,
Le truc est que même avec le code de modification du volume de la tv qui lui est un sensor cela fait merder les info de l’ampli.

Donc je ne sais pas trop.

Il est vrai que j’ai mis l’automatisation dans le fichier sans passer par la configuration des automatisations car j’ai utiliser une IA pour le codage n’y comprenant toujours rien

Salut

Je crois que le plus gros problème est là :

Ce n’est pas en passant par une IA que tu vas apprendre. L’IA c’est bien pour proposer des morceaux de code mais ces morceaux ne peuvent pas se mettre n’importe comment dans ton fichier, il y’a une structure à respecter.
Cela ne veut pas dire que chaque bout de code pris séparément est faux mais tout coller les uns à la suite des autres l’est.

Si je copie ton code dans mon fichier voila ce que j’ai :


Le point d’exclamation en rouge me dit qu’il y’a des erreurs et si je clique dessus :

En l’occurence la clé sensors est répétée plusieurs fois alors qu’elle ne devrait apparaitre qu’une fois dans le fichier :

sensor: !include sensors.yaml

sensor:
  - platform: template
    sensors:
      denon_volume_db:

sensor:
  - platform: template
    sensors:
      chronometre_affichage:

sensor:
  - platform: template
    sensors:
      lg_tv_volume:
        friendly_name: "Volume TV LG"

La définition de tes templates sensors c’est la même chose, un coup tu utilises l’ancienne syntaxe et un coup la nouvelle.

Ancienne syntaxe

sensor:
  - platform: template
    sensors:
      chronometre_affichage:
        friendly_name: "Chronomètre"
        value_template: >
          {% set total_seconds = states('input_number.chronometre_seconds') | int %}
          {% set hours = (total_seconds // 3600) %}
          {% set minutes = (total_seconds % 3600) // 60 %}
          {% set seconds = (total_seconds % 60) %}
          {{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }}

Nouvelle syntaxe :

template:
  - sensor:
      - name: "Image du film Dune HD"
        unique_id: dune_film_image
        state: >
          {% set film = states('sensor.nom_du_film_dune_hd') %}
          {% set images = {
            "1UP - HDR.mkv": "/local/pictures/1UP-HDR05.png",
            "2ème sous-sol.mkv": "/local/pictures/2eme_sous-sol.png",
            "7 Guardians of the Tomb.mkv": "/loc

Ensuite tout mettre dans le fichier configuration.yaml n’est peut être pas la meilleure idée qui soit et encore moins pour les automatisations.
Il est possible de scinder tout ça dans différents fichiers soit par des includes soit par les packages.
De memoire il y’a des articles ou des posts sur le forum qui traite de tout ça. Si je retrouve les liens je les rajouterai.

Edit :

1 « J'aime »

Bon je voulais commencer par le plus simple et petit code a savoir celui de l’affichage du volume de la tv

Je suis aller dans Paramètre / Entrée / Crée une entrée / Template

j’ai par miracle réussi a crée le sensor qui fonctionne :

Le 0.1dB est l’ attribut volume de la TV
Le 10 dB est le sensor crée, se qui correspond bien a un volume de 10 sur la TV.

Je vais sur mon Dashboard avec l’ampli en route est …

j’ai bien les canaux en service d’afficher ( a gauche et a droite de DOLBY AUDIO-DD )
j’'ai aussi le volume qui s’affiche et qui change bien mais …
regardez en bas j’ai ce message quand je veux baisser le volume avec la touche de la tablette

Client error occurred when calling resource « http://192.168.1.47:8080/goform/formiPhoneAppDirect.xml?MVDOWN »

Donc j’ai le même souci qu’avec le sensor crée dans le fichier configuration.yaml

Retour a la case depart …

EDIT : je n’avais pas encore vu le message de Tochy a l’écriture d émane réponse et test

Si je te suis Tochy au lieu d’écrire cela :

sensor:
  - platform: template
    sensors:
      chronometre_affichage:
        friendly_name: "Chronomètre"
        value_template: >
          {% set total_seconds = states('input_number.chronometre_seconds') | int %}
          {% set hours = (total_seconds // 3600) %}
          {% set minutes = (total_seconds % 3600) // 60 %}
          {% set seconds = (total_seconds % 60) %}
          {{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }}

Je part sur cette base de format :

template:
  - sensor:
      - name: "Image du film Dune HD"
        unique_id: dune_film_image
        state: >
          {% set film = states('sensor.nom_du_film_dune_hd') %}
          {% set images = {
            "1UP - HDR.mkv": "/local/pictures/1UP-HDR05.png",
            "2ème sous-sol.mkv": "/local/pictures/2eme_sous-sol.png",

Se qui donnerais :

template
  - sensors:
      chronometre_affichage:
        friendly_name: "Chronomètre"
        value_template: >
          {% set total_seconds = states('input_number.chronometre_seconds') | int %}
          {% set hours = (total_seconds // 3600) %}
          {% set minutes = (total_seconds % 3600) // 60 %}
          {% set seconds = (total_seconds % 60) %}
          {{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }}
sensor:
  - platform: template
    sensors:
      chronometre_affichage:
        friendly_name: "Chronomètre"
        value_template: >
          {% set total_seconds = states('input_number.chronometre_seconds') | int %}
          {% set hours = (total_seconds // 3600) %}
          {% set minutes = (total_seconds % 3600) // 60 %}
          {% set seconds = (total_seconds % 60) %}
          {{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }}
template:
  - sensors:
      - name: "Chronomètre"
        unique_id: chronometre_affichage
        state: >
          {% set total_seconds = states('input_number.chronometre_seconds') | int %}
          {% set hours = (total_seconds // 3600) %}
          {% set minutes = (total_seconds % 3600) // 60 %}
          {% set seconds = (total_seconds % 60) %}
          {{ '%02d:%02d:%02d' | format(hours, minutes, seconds) }}

Mais ça c’est juste la syntaxe pour les templates sensors, il y’a tous les autres problèmes à régler.

Par exemple si tu as plusieurs template sensors, il sdoivente s’ecrire les uns à la suites des autres :

template:
  - sensors:
      - name: "xxx"
        unique_id: xxx
        state: >
          {{ Le code du sensor }}

      - name: "zzz"
        unique_id: zzz
        state: >
          {{ Le code du sensor }}

      - name: "yyy"
        unique_id: yyy
        state: >
          {{ Le code du sensor }}

C’est la même chose pour les sensors, les inputs_numbers etc…
Une clé de définition et tout les sensors derrière.

1 « J'aime »

C’est aussi pour cela, que j’ai préconisé de passer par interface UI pour créé les sensors template, les input_number ou autres entrées.

Je trouve cela plus facile a faire pour un débutant et beaucoup moins de risque d’erreur.

1 « J'aime »

Oui je suis d’accord surtout quand on ne connait pas les syntaxes.
Après dans certains cas et que l’on connait il est beaucoup plus pratique et rapide de les faire en yaml

J’ai modifier mes codes comme cela :

template:
  - sensors:
      - name: "denon_volume_db"
        unique_id: Volume Ampli Denon en dB
        state: >
          {% set volume = state_attr('media_player.marantz_cinema_50', 'volume_level') %}
          {% if volume is not none %}
            {% set db = (volume * 98) - 80 %}
            {{ db | round(1) }}
          {% else %}
            N/A
          {% endif %}

      - name: "denon_sound_mode_raw"
        unique_id: denon_output
        state: >
          {{ state_attr('media_player.marantz_cinema_50', 'sound_mode_raw') }}

      - name: "Image du film Dune HD"
        unique_id: dune_film_image
        state: >
          {% set film = states('sensor.nom_du_film_dune_hd') %}
          {% set images = {
            "1UP - HDR.mkv": "/local/pictures/1UP-HDR05.png",
            "2ème sous-sol.mkv": "/local/pictures/2eme_sous-sol.png",

Et la j’ai n’est plus aucune info de l’ampli, plus de jaquette de films qui s’affiche et plus de commande IP de l’ampli MAIS la configuration est passer au vert :rofl:

A voir comme le dit Pascal-ha a crée cela via l’interface UI, si j’y arrive, sinon je remettrais les codes comme au début qui fonctionné malgré les erreurs, tampis pour la rectification du volume de la TV et le compteur pour la lecture des films.

As tu fais un redémarrage complet de home assistant après tes modifications.
Il se peut aussi que tu coup certains nom de sensors aient changé et qu’il faille revoir un peut la carte.

1 « J'aime »

Oui redémarrage comme a chaque modification,
il est vrai que je n’avais pas vérifier si les noms avez changer mais je suis partie du principe que je n’est rien changer dans les codes a name : xxxxxx

En attendant j’ai remis mes vieux codes qui donne une (des) erreur au niveau du fichier mais qui fonctionnent tout de même au niveau de l’interface.

Je testerais demain a nouveau pour éviter de me prendre trop la tête et de m’énerver aujourd’hui.
Un grand merci pour votre aides tout de même qui m’a fait apprendre de nouvelles choses.

A suivre …

Pour UI, voici un exemple avec le chronomètre:

Input_number:

Puis remplir les champs

Pour le template sensor:

Puis modéliser un capteur

Tu remplis le champ modèle template

C’est un exemple, certains champs devront être complété si besoin.

Un unique_id, doit être tout en minuscule et sans espace.

exemple: unique_id: volume_ampli_denon_en_db

Merci à tous pour votre aide est implications, je vais en fin de compte finir par y arriver grâce à vous.

Étant donné que je travail cette nuit je vais souffler un peu et me relancer dedans d’ici mercredi ou j’aurai droit à un long weekend (mercredi 6h à lundi 22h) pour me pencher dessus.

Hello tous le monde,

J’ai continuer mes tests plus tot que prévu
J’ai suivie pascal_ha et sont conseille de rentrée les « sensors » via l’interface UI, résultat :

  • Affichage du volume de la TV a 10 au lieu de 0.1 OK
  • Affichage du volume de l’ampli en dB OK
  • Affichage du nombre de canaux en service sur l’ampli OK
  • Affichage de la jaquette du film en cours de lecture OK ( code laisser dans configuration.yaml )

Pour le chronomètre je ne les pas encore fais mais j’imagine que sa va le faire, je vous tiendrais informer de toute façon.

Comme dit plus haut ( je ne sais plus qui :roll_eyes: ) les IA peuvent dépanner pour crée un code mais pour la mise en place de celui ci c’est une autre histoire, pour un novice comme moi c’est vrai que j’ai pas mal miser dessus sans me renseigner sur les différentes structure des codes, faut dire que la pêche aux infos n’est pas toujours évidente.

En tous cas je ne sais comment vous remercier pour votre aide et réactivité.

Bonjour,

Je viens d’entré les différents code pour le chronomètre est celui ci est également fonctionnel !
Un grand merci a vous tous, il me reste encore un petit truc que je n’arrive pas a mettre en place.

J’ai une prise commander que je cherche a allumer entre 23h et 1H du matin avant de charger différents appareils en heure creuse.

La prise ne sera pas allumer tous les soir a cette heure ci, je pense que sinon je n’aurai pas ut de problème de configuration.

je souhaite faire l’utilisation de cette façon :

  • un bouton virtuel activera la mise en marche a 23h
  • si le bouton n’est pas presser, la prise ne s’allumera pas dans la nuit

J’ai donc fait ceci :

Création d’un bouton virtuel :

1er automatisation :

alias: Activer prise nuit via bouton
description: ""
triggers:
  - entity_id: input_button.bouton_lancer_prise
    trigger: state
actions:
  - target:
      entity_id: input_boolean.prise_nuit_active
    action: input_boolean.turn_on
    data: {}
mode: single

2eme automatisation :

alias: Allumer chargeur nuit à 23h
description: ""
triggers:
  - at: "23:00:00"
    trigger: time
conditions:
  - condition: state
    entity_id: input_boolean.prise_nuit_active
    state: "on"
actions:
  - target:
      entity_id: switch.chargeur_heure_creuse_outlet
    action: switch.turn_on
    data: {}
mode: single

3eme automatisation :

alias: Éteindre chargeur nuit à 1h00
description: ""
triggers:
  - at: "01:00:00"
    trigger: time
actions:
  - target:
      entity_id: switch.chargeur_heure_creuse_outlet
    action: switch.turn_off
    data: {}
  - target:
      entity_id: input_boolean.prise_nuit_active
    action: input_boolean.turn_off
    data: {}
mode: single

Et le test dans une Picture Element :

type: picture-elements
image: /local/fond/activite_theater_mars02.png
elements:
  - type: image
    entity: input_boolean.prise_zigbee_nuit_active
    state_image:
      "on": local/bouton/lights/chargeur_active.png
      "off": local/bouton/lights/chargeur.png
    tap_action:
      action: toggle
    style:
      top: 50%
      left: 50%
      width: 50%

Mais forcement cela ne fonctionne pas

Salut

Pour le bouton « virtuel » tu n’as pas besoin de faire un automatisme.
Tu créé simplement un interrupteur (input_boolean)

  • Ensuite tu utilise cet interrupteur pour déclencher ton 1er automatisme si interrupteur on et condition 23h allumer prise nuit.

  • dans le 2eme automatisme tu vérifie que ton interrupteur est a on et condition a 1h tu éteins prise nuit et bascule interrupteur a Off.

  • Ou si chargeur actif et condition 1h alors éteindre chargeur et basculer interrupteur a Off

Merci,
je me suis compliquer vie, sa fonctionne maintenant.

1 « J'aime »

Bonjour,

Encore moi qui test de petite chose qui ne fonctionne pas toujours,

J’ai ajouter, sur mon interface graphique, des LED de niveau de volume pour ma tv,
cela fonctionne très bien :

Avec ce code :

  - type: conditional
    conditions:
      - condition: state
        entity: media_player.lg_webos_tv_oled55b7v
        state: "on"
    elements:
      - type: image
        entity: sensor.lg_volume_db
        state_image:
          "0": /local/bouton/Volume_0.png
          "1": /local/bouton/Volume_1_2.png
          "2": /local/bouton/Volume_1_2.png
          "3": /local/bouton/Volume_1_2.png
          "4": /local/bouton/Volume_3_4.png
          "5": /local/bouton/Volume_3_4.png
          "6": /local/bouton/Volume_3_4.png
          "7": /local/bouton/Volume_5_6.png
          "8": /local/bouton/Volume_5_6.png
          "9": /local/bouton/Volume_5_6.png
          "10": /local/bouton/Volume_7_8.png
          "11": /local/bouton/Volume_7_8.png
          "12": /local/bouton/Volume_7_8.png
          "13": /local/bouton/Volume_9_10.png
          "14": /local/bouton/Volume_9_10.png
          "15": /local/bouton/Volume_9_10.png
          "16": /local/bouton/Volume_11_12.png
          "17": /local/bouton/Volume_11_12.png
          "18": /local/bouton/Volume_11_12.png
          "19": /local/bouton/Volume_13_14.png
          "20": /local/bouton/Volume_13_14.png
          "21": /local/bouton/Volume_13_14.png
          "22": /local/bouton/Volume_15_16.png
          "23": /local/bouton/Volume_15_16.png
          "24": /local/bouton/Volume_15_16.png
          "25": /local/bouton/Volume_17_19.png
          "26": /local/bouton/Volume_17_19.png
          "27": /local/bouton/Volume_17_19.png
          "28": /local/bouton/Volume_20_22.png
          "29": /local/bouton/Volume_20_22.png
          "30": /local/bouton/Volume_20_22.png
        style:
          top: 26%
          left: 86.4%
          width: 33px
    title: volume level tv on

Jusque la donc pas de souci, j’ai voulu faire de même pour mon ampli,
pour la tv c’était simple celle ci va par pas de 1 en 1 donc :
volume 1 = cette image,
volume 2 = cette image,
… bref le code est assez parlant.

Concernant l’ampli je voulais faire par plage de 5% en 5% sinon le code serai interminable avec un volume allant de -80dB a 20dB avec des pas de 0.5 dB, de plus que j’ai encore des souci avec des pas de 0.6dB des fois ( au niveau de l’affichage mais c’est un autre problème sa )

J’ai donc tenter ceci en créant un sensor :

{% set vol = (state_attr('media_player.marantz_cinema_50', 'volume_level') * 100) | int %}
          {% if vol <= 5 %}
            "0-5"
          {% elif vol <= 10 %}
            "6-10"
          {% elif vol <= 15 %}
            "10-15"
          {% elif vol <= 20 %}
            "16-20"
          {% elif vol <= 30 %}
            "21-30"
          {% elif vol <= 40 %}
            "31-40"
          {% elif vol <= 50 %}
            "41-50"
          {% elif vol <= 60 %}
            "51-60"
          {% elif vol <= 70 %}
            "61-70"
          {% elif vol <= 80 %}
            "71-80"
          {% elif vol <= 90 %}
            "81-90"
          {% else %}
            "91-100"
          {% endif %}

Le sensor a l’air de fonctionner vu que je vois le statut ci dessous (State:
« 21-30 »

Par contre impossible d’afficher l’image correspondante, pourtant c’est exactement les même image que pour le volume de la tv.
J’ai la fameuse roue qui tourne quand il ne trouve pas d’image :

voici le code si vous voyez une erreur :

  - type: conditional
    conditions:
      - condition: state
        entity: media_player.marantz_cinema_50
        state: "on"
    elements:
      - type: image
        entity: sensor.plage_volume_ampli
        state_image:
          0-5: /local/bouton/Volume_0.png
          6-10: /local/bouton/Volume_1_2.png
          10-15: /local/bouton/Volume_3_4.png
          16-20: /local/bouton/Volume_5_6.png
          21-30: /local/bouton/Volume_7_8.png
          31-40: /local/bouton/Volume_9_10.png
          41-50: /local/bouton/Volume_11_12.png
          51-60: /local/bouton/Volume_13_14.png
          61-70: /local/bouton/Volume_15_16.png
          71-80: /local/bouton/Volume_17_19.png
          81-90: /local/bouton/Volume_20_22.png
          91-100: /local/bouton/Volume_22_30.png
        style:
          top: 90%
          left: 50%
          width: 33px

A savoir qu’il me suprime a chaque actualisation les guillemets avant et après les chiffres, j’ai tester les deux solution cela ne fonctionne pas.

EDIT :

Je viens de trouver le problème c’est le guillemet du code du sensor qui posaient problème
Cette fois sa marche :grin: