ESPHome: switch condition?

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 »