[Résolu] Capture/Envoi code IR avec ESPHome?

Bonjour

J’essaye de faire du pilotage IR avec ESPHome mais je galère un peu ! J’ai fait le sketch suivant pour utiliser avec un Kincony K868-AG: 433MHz RF and IR gateway – KC868-AG - Smart Home Automation | KinCony

substitutions:
  friendly_name: kincony-k868-ag

esphome:
  name: $friendly_name

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

web_server:

ota:

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

captive_portal:

api:
  reboot_timeout: 120min

remote_receiver:
  pin:
    number: GPIO23
    inverted: True
  dump: all

remote_transmitter:
  pin: GPIO2
  carrier_duty_percent: 50%

switch:
  - platform: template
    name: "Power"
    turn_on_action:
    -  remote_transmitter.transmit_raw:
         code: [-1032, 1039, -1030, 1040, -1030, 1039, -1029, 1041, -1029, 2076, -1033, 2075, -1033, 2075, -1033, 2076, -2032, 4544, -1032, 1040, -1028, 1066, -1004, 1040, -1029, 2077, -1032, 2076, -1032, 1040, -1030, 2076, -1032, 1041]
    turn_off_action:
    -  remote_transmitter.transmit_raw:
        code: [4199, -1032, 1041, -1029, 1040, -1029, 1041, -1028, 1041, -1029, 2076, -1033, 2076, -1033, 2075, -1033, 2076, -2032, 4545, -1031, 2077, -1032, 1041, -1028, 1041, -1029, 1040, -1029, 1041, -1029, 1041, -1027, 1042, -1028, 1042]

Je prends la téléco de l’appareil puis j’appuie sur un des boutons et j’ai récupéré le code reçu en RAW par ESPHome et je l’ai mis dans les commandes à exécuter ! Cependant quand j’émets mes 2 codes de test, ils les fractionnenent sur plusieurs lignes et l’appareil piloté ne réagit pas (alors que les LED émettent bien un signal !).
Le log quand j’essaye d’envoyer un code IR:

[D][switch:021]: 'Power' Toggling ON.
[D][remote.raw:041]: Received Raw: 66, -4072, 121, -5058, 65, -6152, 70, -4037, 69, -5508, 68, -9247, 69, -3039, 123, -1948, 171
[D][switch:021]: 'Power' Toggling ON.
[D][remote.raw:041]: Received Raw: 67, -2001, 273, -3867, 70, -6147, 143, -7073, 67, -9647, 72
[D][remote.raw:041]: Received Raw: 68
[D][switch:021]: 'Power' Toggling ON.
[D][remote.raw:041]: Received Raw: 195, -1876, 68, -2002, 140, -1929, 138, -1933, 67, -6149, 64, -3109, 45
[D][remote.raw:041]: Received Raw: 69
[D][remote.raw:041]: Received Raw: 72, -1999, 72

Merci pour vos lumières, idées :wink:

Vincèn

Hello, qu’est ce que tu essaie de controler (marque)?

tu pourais modifier le dump: all par la marque de ton matos :

  • coolix: Decode and dump Coolix infrared codes.
  • dish: Decode and dump Dish infrared codes.
  • jvc: Decode and dump JVC infrared codes.
  • lg: Decode and dump LG infrared codes.
  • magiquest: Decode and dump MagiQuest wand infrared codes.
  • midea: Decode and dump Midea infrared codes.
  • nec: Decode and dump NEC infrared codes.
  • nexa: Decode and dump Nexa (RF) codes.
  • panasonic: Decode and dump Panasonic infrared codes.
  • pioneer: Decode and dump Pioneer infrared codes.
  • raw: Print all remote codes in their raw form. Useful for using arbitrary protocols.
  • rc5: Decode and dump RC5 IR codes.
  • rc_switch: Decode and dump RCSwitch RF codes.
  • samsung: Decode and dump Samsung infrared codes.
  • samsung36: Decode and dump Samsung36 infrared codes.
  • sony: Decode and dump Sony infrared codes.
  • toshiba_ac: Decode and dump Toshiba AC infrared codes.

ça te permetra (peut être) d’avoir le code plus court que le raw à la rallonge que tu as

je te met mon code qui controle l’airco + on/off la tv

remote_receiver:
  id: rcvr
  pin: 
    number: GPIO5
    inverted: True
  dump: lg

# Configure the IR LED: this one sends commands to other devices
remote_transmitter:
  pin: GPIO14
  carrier_duty_percent: 50%
  
climate:
  - platform: fujitsu_general
    name: "AirCo CH Alexandre"
    receiver_id: rcvr
    sensor: sensorxiaomichalexandre
    
switch:
  - platform: template
    name: "LG TV Off"
    turn_on_action:
      remote_transmitter.transmit_lg:
        data: 0x20DF10EF 
        nbits: 32

Désolé de ne pas l’avoir précisé mais ce sont des matos exotiques donc non répertorié par ESPHome :frowning: J’ai testé ma TV Samsung et là pas de soucis: quand j’ai fait la capture il a reconnu le samsung et en faisant de la même façon que ton code le pilotage marche nickel mais là j’ai des petites box TV sur IP qui sont des trucs batards, des vieux décodeurs sky…

HA zut :frowning:
je suis pas un spécialiste mais de se que j’avais compris le code raw est une suite de chiffres positif puis négatif même si il est sur plusieurs lignes et ton code raw ne suis pas cette règle :frowning:

cette vidéos m’avait aidé à l’époque (c’est en anglais), ont sais jamais :slight_smile:

Oui tu confirmes ce que j’ai lu ailleurs et même en refaisant plusieurs fois la capture pour avoir la première valeur positive aucun changement au niveau de l’appareil piloté :frowning:

Merci pour le tutorial sur TV poubelle qui est un peu brouillon mais la seule chose que je vois différente est le fait d’utiliser le code raw de plusieurs captures successives au lieu d’une seule… mais le soucis est que du coup ça coince pour l’alternance une valeur positive, une valeur négative donc j’ai tronqué la dernière valeur mais pas mieux :frowning: je désespère un peu d’arriver à faire marcher ce bazard !

Voici le code utilisé actuellement:

remote_transmitter:
  pin: GPIO2
  carrier_duty_percent: 50%

switch:
#  - platform: template
#    name: "Power"
#    turn_on_action:
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E040BF
#          nbits: 32
#  - platform: template
#    name: "Input"
#    turn_on_action:
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E0807F
#          nbits: 32
#  - platform: template
#    name: "1"
#    turn_on_action:
#      - remote_transmitter.transmit_samsung:
#          data: 0xE0E020DF
#          nbits: 32
  - platform: template
    name: "1"
    turn_on_action:
    -  remote_transmitter.transmit_raw:
         code: [4199, -1032, 1040, -1030, 1040, -1030, 1038, -1031, 1040, -1030, 2074, -1034, 2074, -1034, 2075, -1034, 2074, -2034, 4543, -1033, 2073, -1036, 1039, -1030, 1039, -1030, 1040, -1030, 1039, -1030, 1039, -1030, 1039, -1031,
                4199, -1033, 1039, -1031, 1038, -1031, 1039, -1030, 1040, -1029, 2076, -1033, 2074, -1034, 2076, -1033, 2075, -2033, 4542, -1034, 2075, -1034, 1039, -1030, 1039, -1030, 1039, -1031, 1039, -1030, 1040, -1030, 1040, -1029,
                4197, -1033, 1041, -1029, 1041, -1028, 1041, -1029, 1040, -1029, 2076, -1032, 2075, -1035, 2075, -1033, 2076, -2032, 4543, -1033, 2075, -1033, 1040, -1030, 1039, -1031, 1040, -1029, 1039, -1030, 1040, -1030, 1040, -1029,
                4198, -1032, 1041, -1029, 1040, -1030, 1040, -1029, 1041, -1028, 2076, -1033, 2075, -1033, 2076, -1033, 2075, -2033, 4543, -1033, 2076, -1032, 1041, -1029, 1040, -1030, 1040, -1029, 1040, -1030, 1039, -1029, 1040, -1030,
                4199, -1032, 1040, -1029, 1041, -1029, 1039, -1031, 1039, -1030, 2075, -1033, 2076, -1033, 2075, -1033, 2076, -2033, 4542, -1033, 2076, -1033, 1040, -1029, 1065, -1005, 1040, -1029, 1040, -1030, 1040, -1029, 1040, -1029,
                4198, -1033, 1040, -1029, 1040, -1030, 1040, -1029, 1039, -1030, 2075, -1034, 2076, -1032, 2076, -1033, 2076, -2032, 4544, -1031, 2076, -1033, 1040, -1030, 1040, -1029, 1040, -1030, 1040, -1029, 1039, -1030, 1041, -1029,
                4199, -1032, 1041, -1029, 1039, -1030, 1041, -1028, 1041, -1029, 2076, -1032, 2101, -1007, 2076, -1034, 2076, -2032, 4543, -1033, 2075, -1033, 1040, -1029, 1041, -1029, 1041, -1028, 1040, -1030, 1040, -1029, 1039, -1031,
                4199, -1031, 1040, -1030, 1041, -1029, 1040, -1030, 1038, -1030, 2075, -1034, 2076, -1033, 2075, -1033, 2076, -2032, 4543, -1033, 2076, -1032, 1041, -1029, 1041, -1028, 1040, -1030, 1040, -1029, 1040, -1029, 1042, -1028,
                4199, -1032, 1041, -1030, 1038, -1031, 1040, -1029, 1038, -1032, 2074, -1034, 2076, -1033, 2075, -1033, 2076, -2032, 4543, -1033, 2075, -1033, 1041, -1029, 1040, -1029, 1040, -1030, 1065, -1004, 1040, -1030, 1038, -1031,
                4198, -1033, 1040, -1029, 1040, -1030, 1040, -1029, 1040, -1030, 2075, -1033, 2075, -1034, 2075, -1033, 2076, -2032, 4544, -1033, 2075, -1033, 1041, -1028, 1041, -1028, 1041, -1029, 1041, -1029, 1039, -1030, 1040, -1030,
                4198, -1032, 1041, -1029, 1040, -1029, 1041, -1029, 1040, -1029, 2076, -1033, 2075, -1034, 2074, -1034, 2076, -2032, 4543, -1033, 2075, -1033, 1065, -1005, 1040, -1029, 1040, -1029, 1040, -1031, 1040, -1029, 1040, -1029, 1039]

Bon j’ai trouvé la solution qui marche avec deux options en plus et là nickel :wink: et basiquement il faut concaténer tout ce que l’on reçoit en raw lors de la capture en faisant juste un appui simple sur le bouton à capturer (la concaténation s’arrête quand on a deux positifs ou deux négatifs à la suite !)
le code pour info:

remote_receiver:
  pin:
    number: GPIO23
    inverted: True
  dump: raw
  idle: 25ms

remote_transmitter:
  pin: GPIO2
  carrier_duty_percent: 50%

switch:
  - platform: template
    name: "1"
    turn_on_action:
    -  remote_transmitter.transmit_raw:
        carrier_frequency: 38kHz
        code: [2694, -888, 454, -441, 455, -441, 454, -889, 455, -889, 1323, -888, 455, -441, 456, -440, 455, -441, 454, -442, 456, -439, 455, -442, 455, -441, 904, -888, 904, -888, 454, -441, 903, -889, 904, -888, 455, -442, 902, -889, 454, -442, 454,-441, 455, -441, 456, -440, 455, -441, 454, -442, 456, -441, 454, -441, 456, -440, 455, -441]
  - platform: template
    name: "2"
    turn_on_action:
    -  remote_transmitter.transmit_raw:
        carrier_frequency: 38kHz
        code: [2694, -889, 452, -443, 453, -443, 453, -891, 454, -890, 1321, -890, 454, -443, 477, -418, 454, -442, 453, -443, 453, -442, 455, -441, 454, -442, 901, -891, 902, -889, 453, -443, 925, -867, 452, -443, 454, -442, 451, -445, 901, -890, 453, -442, 454, -443, 453, -442, 453, -444, 452, -443, 453, -442, 454, -442, 453, -443, 453, -442, 903, -889, 453]
  - platform: template
    name: "3"
    turn_on_action:
    -  remote_transmitter.transmit_raw:
        carrier_frequency: 38kHz
        code: [2691, -891, 453, -442, 454, -442, 454, -890, 453, -890, 1322, -889, 453, -442, 454, -442, 453, -443, 454, -441, 453, -443, 454, -442, 452, -443, 902, -889, 902, -889, 452, -444, 902, -889, 900, -891, 452, -443, 903, -888, 454, -442, 453,-443, 454, -441, 454, -442, 454, -442, 453, -442, 454, -442, 454, -442, 453, -442, 902, -442, 452]