ESPHome: switch condition?

Tes {chaine_xxx} mais ça corresponds à rien, même si c’est une variable, il faut à minina la créer, et la valoriser qq part

De toute façon, la doc des scripts indique explicitement comment passer une variable à un script


et comment les utiliser dans le script

J’en conclue que ce que tu me montres c’est la deuxième partie
C’est chiant à lire sur ta capture d’écran mais tu as des quotes qui servent à rien à l’intérieur des moustaches

{{'chaine_n'}}

au lieu de

{{chaine_n}}

Ben oui c’est bien gentil tous ces exemples que j’ai déja vu mais ce sont tous des cas d’utilisation du script appelé par une automation hors moi mon script il sera directement appelé par une carte Image :frowning: En plus la rubrique Scripts dans HA c’est un enfer ce truc :frowning: Si tu fais en GUI tu es trop limité au niveau édition et si j’essaye de faire le script directement en yaml il apparait même pas dans le GUI :frowning:

ça change absolument rien… La section « action » est identique … Les 3 élements service, target et data sont exactement les même avec ta carte
Et puis bon du point de vue pratique : 1 automatisation + 10 boutons avec 10 triggers comparé à 10 boutons avec 10 actions c’est pas forcement plus compliqué, juste une question de goût

Là tu résumes le truc. La gui c’est pas pour faire des trucs avancés…
A la place de la gui, mets l’add-on visualstudio. Il est très bien pour visualiser la syntaxe yaml (et les erreurs)

Sauf que l’automatisation va se déclencher comment ? parce que tu peux pas conditionner ça à un/des bouton(s) non ? :confused:

Euh merci mais les cochonneries micro$oft non merci j’utilise mon éditeur habituel sous Linux qui va très bien :wink: Toute façon là vu le temps perdu pour trouver une solution à un problème très basique je vais juste faire autant de scnipts que de presets :frowning: Ça sera inergonomique au possible et pas du tout pratique à mettre en oeuvre mais bon ça marchera…
J’ai réexploré la voie ESPHome aussi avec ça qui est quasiment bon mais visiblement il est impossible de concaténer variable et texte comme j’essaye de le faire :frowning:

api:
  reboot_timeout: 10min
  services:
    - service: favorites
      variables:
        millier: Int
        centaine: Int
        dizaine: Int
        unite: Int
      then:
        - button.press: bd{{millier}}
        - delay: 0.1s
        - button.press: bd5
        - delay: 0.1s
        - button.press: bd1
        - delay: 0.1s
        - button.press: bd7
        - delay: 0.1s
        - button.press: bok

Venant du monde de la domotique classique (AMX, Crestron,…) c’est assez surprenant comment il y a beaucoup de choses tellement plus simple en HA mais comment on peut se prendre le choux sur des détails à la c*n qui sont super faciles à gérer dans les domotiques traditionnelles…

C’est un peu le principe des automatisations quand même, et je l’ai écrit : autant de triggers que de boutons

Soit, mais c’est un apriori, même dans le monde linux on utilise VSC :wink:
Se passer d’un outil pratique c’est dommage à mon avis

C’est tout sauf de l’usage basique ça, ça reste de l’usage intelligent pour éviter de dupliquer des dizaines de lignes.
Et comme tout le reste, le temps que tu perds à construire un truc un peu sympa/efficace, tu le gagnes en maintenance

Même s’il y a des similitudes, la syntaxe ESP/HA n’est pas la même…
Il y a forcement un moyen puisque ça fonctionne sur ce principe pour les substitutions par exemple

substitutions:
  devicename: dragonportail

esphome:
  name: ${devicename}

et pour les variables gloables

C’est parce qu’en amont de ça quelqu’un a pensé et a préparé les fonctions prévues pour (créer/modifier/jouer/supprimer une séquence de touches)… C’est facile dans un ecosystème limité/maitrisé… C’est d’ailleurs certainement en partie à cause de ce périmètre trop petit que tu utilises HA , parce que ça marche avec pleins d’autres trucs et c’est bien pratique

Oui pour l’utilisation sous Linux mais l’a-priori non ! Ca reste de la cochonnerie (regarde déja la licence du bordel sans même parler d’informatique…) tous ce qui sort de chez eux !

Sinon pour revenir au sujet j’ai réussi à torcher le truc dans ESPHome :partying_face: avec les lambdas ! Je vais regarder quand j’aurais un peu plus le temps à optimiser mieux le truc mais déja ça marche nickel comme ça :sunglasses:

Merci encore pour toute ton aide et tes suggestions :+1:

substitutions:
  friendly_name: kincony-k868-ag
  source_name: maison

esphome:
  name: $friendly_name

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

web_server:

ota:

wifi:
  networks:
  - ssid: !secret wifi_ssid
    password: !secret wifi_passwd
  - ssid: !secret wifi_puppy
    password: !secret wifi_puppy_passwd
  - ssid: !secret wifi_cstj
    password: !secret wifi_cstj_passwd
  ap:
    ssid: $friendly_name

captive_portal:

globals:
  - id: chiffre
    type: int
    restore_value: no
    initial_value: '0'
api:
  reboot_timeout: 10min
  services:
    - service: favorites
      variables:
        millier: Int
        centaine: Int
        dizaine: Int
        unite: Int
      then:
        - lambda: |-
            id(chiffre) = millier;
        - switch.turn_on: composition
        - delay: 0.08s
        - lambda: |-
            id(chiffre) = centaine;
        - switch.turn_on: composition
        - delay: 0.08s
        - lambda: |-
            id(chiffre) = dizaine;
        - switch.turn_on: composition
        - delay: 0.08s
        - lambda: |-
            id(chiffre) = unite;
        - switch.turn_on: composition
        - delay: 0.08s
        - button.press: bok
        

switch:
  - platform: template
    id: composition
    turn_on_action:
      then:
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==0) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd0
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==1) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd1
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==2) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd2
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==3) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd3
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==4) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd4
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==5) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd5
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==6) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd6
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==7) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd7
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==8) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd8
        - if:
            condition:
              lambda: |-
                if (id(chiffre)==9) {
                  return true;
                } else {
                  return false;
                }
            then:
              - button.press: bd9

sensor:
  - platform: wifi_signal
    name: $friendly_name WiFi Signal
    update_interval: 60s
  - platform: uptime
    name: $friendly_name Uptime
    filters:
      - lambda: return x / 60.0;
    unit_of_measurement: minutes

remote_transmitter:
  pin: GPIO2
  carrier_duty_percent: 50%

button:
  - platform: template
    name: $source_name Power
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0020 0021 0040 0021 0020 06C3"
  - platform: template
    name: $source_name TV Power
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0040 0041 0020 0021 0040 0041 0020 06C3"
  - platform: template
    name: $source_name A/V
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0020 0021 0040 06C3"
  - platform: template
    name: $source_name Red
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0020 0021 0040 0021 0020 0041 0040 06C3"
  - platform: template
    name: $source_name Green
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0041 0020 0020 0041 0020 0021 0020 0021 0040 0041 0020 0021 0040 0021 0020 0021 0020 0041 0020 06C3"
  - platform: template
    name: $source_name Yellow
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0041 0020 06C3"
  - platform: template
    name: $source_name Blue
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0040 06C3"
  - platform: template
    name: $source_name Mute
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0021 0020 0020 0021 0040 0041 0021 0020 0020 0021 0040 0041 0020 0021 0040 0021 0020 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name TV
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0020 0021 0040 0041 0040 0041 0020 06C3"
  - platform: template
    name: $source_name EPG
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0020 0021 0040 0041 0020 0021 0040 06C3"
  - platform: template
    name: $source_name Settings
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0020 0021 0040 0021 0020 0041 0020 0021 0020 06C3"
  - platform: template
    name: $source_name i
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0020 06C3"
  - platform: template
    name: $source_name Vol +
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0041 0040 0021 0020 0041 0040 06C3"
  - platform: template
    name: $source_name Vol -
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0041 0041 0020 0020 0041 0021 0020 0020 06C3"
  - platform: template
    name: $source_name CH +
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0020 0021 0040 0021 0020 06C3"
  - platform: template
    name: $source_name CH -
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0041 0040 0021 0020 0021 0020 0041 0020 06C3"
  - platform: template
    name: $source_name Up
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0020 0021 0040 0041 0020 06C3"
  - platform: template
    name: $source_name Down
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0021 0020 0020 0021 0040 0041 0020 0021 0020 0021 0020 0021 0021 0020 0040 06C3"
  - platform: template
    name: $source_name Left
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000C 0000 0021 0020 0021 0020 0040 0041 0020 0021 0020 0021 0040 0041 0021 0020 0020 0021 0021 0020 0020 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name Right
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0040 0041 0040 0041 0020 0021 0020 06C3"
  - platform: template
    name: $source_name OK
    id: "bok"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0040 0041 0020 0021 0040 0021 0020 06C3"
  - platform: template
    name: $source_name Home
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0020 0021 0040 0041 0020 06C3"
  - platform: template
    name: $source_name Return
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000C 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0020 0021 0020 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name APP
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name PIP
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0041 0040 0041 0020 0021 0020 0021 0040 06C3"
  - platform: template
    name: $source_name Menu
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0040 0041 0041 06C3"
  - platform: template
    name: $source_name Rewind
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000A 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0041 0040 0041 0020 0021 0040 06C3"
  - platform: template
    name: $source_name Play/Pause
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0040 0041 0020 0021 0020 06C3"
  - platform: template
    name: $source_name Forward
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0041 0040 0021 0020 0021 0021 0020 0020 06C3"
  - platform: template
    name: $source_name 1
    id: "bd1"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000C 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0021 0020 0021 0020 0021 0020 0041 0020 06C3"
  - platform: template
    name: $source_name 2
    id: "bd2"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0021 0020 0020 0021 0040 0021 0020 0021 0020 0021 0020 0021 0020 0041 0040 06C3"
  - platform: template
    name: $source_name 3
    id: "bd3"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000C 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0021 0020 0021 0020 0041 0020 0021 0020 06C3"
  - platform: template
    name: $source_name 4
    id: "bd4"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0021 0020 0041 0040 0021 0020 06C3"
  - platform: template
    name: $source_name 5
    id: "bd5"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0021 0020 0041 0040 0041 0020 06C3"
  - platform: template
    name: $source_name 6
    id: "bd6"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0041 0020 0020 0021 0020 0021 0020 0041 0020 0021 0040 06C3"
  - platform: template
    name: $source_name 7
    id: "bd7"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000C 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0021 0020 0021 0040 0021 0020 0021 0020 0020 06C3"
  - platform: template
    name: $source_name 8
    id: "bd8"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0040 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name 9
    id: "bd9"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0041 0040 0021 0020 0041 0020 06C3"
  - platform: template
    name: $source_name 0
    id: "bd0"
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000C 0000 0020 0021 0040 0021 0020 0041 0020 0021 0020 0021 0040 0021 0020 0021 0020 0021 0020 0021 0020 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name Resize
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0020 0021 0040 0041 0020 0021 0020 0021 0040 0021 0020 0041 0040 0041 0020 0021 0020 0021 0020 06C3"
  - platform: template
    name: $source_name Keyboard
    on_press:
      - remote_transmitter.transmit_pronto:
          data: "0000 006D 000B 0000 0020 0021 0040 0021 0020 0041 0021 0020 0020 0021 0040 0021 0020 0041 0020 0021 0040 0021 0020 0021 0020 06C3"
1 « J'aime »

C’est tout vu, c’est MIT

En tout cas, cool pour ton objectif

En tant qu’anti-microsoft primaire, je souscris (presque) à cela. Les versions windows et leur stratégie de mise à jour sont à pleurer.

Mais, VSC c’est différent. C’est du vrai open source depuis toujours. C’est bien conçu. Il y a plein de plugin/extension pour faire plein de trucs. Markdown, asciidoc, yaml, json, mermaid,…
En tant que vieil aficionado de vi, essayer VSC (malgré les préjugés) c’est l’adopter :slight_smile:

Ben Perso Atom me convenait très bien même s’il est abandonné maintenant :slight_smile:

Bonjour,
Personnellement je n’ai absolument pas vu le but de ce post, afficher ses favoris radios ?
:upside_down_face:

Alors ça pourrait s’utiliser pour la radio aussi si tuner en IR, mais là c’est pour gérer des pages de favoris télé sur Lovelace :wink:

OK, merci, je ne regarde jamais la télé :joy:, et pour la musique Denon / HEOS, Spotify font le boulot :smirk:
Bob

pareil ici :wink: c’est pour une install ailleurs !