Contrôle RS-232 avec ESPHome?

Hi

Première tentative de faire du contrôle RS-232 avec HA (fait depuis de nombreuses années avec des systèmes historiques comme l’AMX ou le Crestron) mais impossible de faire marcher la chose avec HA et ESPHome.
J’utilise le K868-A4 box ARDUINO ESP32 4 CHANNEL RELAY MODULE – KC868-A4 pour avoir un port série sur ESP.
J’ai essayé câblage droit ou croisé entre le Kincony et l’appareil piloté mais pas mieux ! (l’appareil était précédemment contrôlé sans problème par un système Crestron).
Le code ESPHome utilisé pour tester:

substitutions:
  friendly_name: esp-tr-02

esphome:
  name: $friendly_name
  platform: ESP32
  board: esp32dev

logger:

web_server:

ota:

wifi:
  networks:
  - ssid: !secret wifi_ssid
    password: !secret wifi_passwd
  manual_ip:
    static_ip: 172.16.2.81
    gateway: 172.16.1.1
    subnet: 255.255.252.0
  ap:
    ssid: $friendly_name

captive_portal:

api:
  reboot_timeout: 10min
#  services:
#    - service: volume
#      variables:
#        volume: Int
#      then:
#        - uart.write: !lambda
#            return {0x00, 0x20, 0x42};

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

button:
  - platform: template
    name: CD Input
    on_press:
      - uart.write: "CD\r"
  - platform: template
    name: DVD Input
    on_press:
      - uart.write: "DV\r"

uart:
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600
  debug:

Protocole de l’appareil que j’essaye de piloter: Domedia NextCloud

Une idée de ce qui cloche ?

Merci

Vincèn

Ma configuration


System Information

version core-2023.1.4
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.10.7
os_name Linux
os_version 5.15.80
arch x86_64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.29.1
Stage running
Available Repositories 1195
Downloaded Repositories 10
Home Assistant Cloud
logged_in true
subscription_expiration October 7, 2023 at 02:00
relayer_connected true
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled false
remote_server eu-central-1-3.ui.nabu.casa
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 9.4
update_channel stable
supervisor_version supervisor-2022.12.1
agent_version 1.4.1
docker_version 20.10.19
disk_total 228.5 GB
disk_used 11.7 GB
healthy true
supported true
board generic-x86-64
supervisor_api ok
version_api ok
installed_addons File editor (5.4.2), Nextcloud Backup (0.17.7), Samba share (10.0.0), Terminal & SSH (9.6.1), phpMyAdmin (0.8.3), Glances (0.17.2), MariaDB (2.5.1), ESPHome (2022.12.3), Node-RED (14.0.1)
Dashboards
dashboards 16
resources 8
views 188
mode storage
Recorder
oldest_recorder_run October 17, 2022 at 06:08
current_recorder_run January 14, 2023 at 14:33
estimated_db_size 1540.50 MiB
database_engine mysql
database_version 10.6.8
___

Bonjour,

j’ai du désactivé le logger pour pouvoir utliser le port série:

logger:
  baud_rate: 0      # disable logging over uart

Oui effectivement il faut faire ça quand on utilise l’UART principal de l’ESP sinon on a tous les logs dedans ! mais la sur le Kincony c’est un port séparé et en fait une fois corrigé les GPIO incorrect cela fonctionne nickel :slight_smile: Voici le code fait pour ce cas précis (pilotage d’un processeur audio Meridian):

substitutions:
  friendly_name: esp-tr-02

esphome:
  name: $friendly_name
  platform: ESP32
  board: esp32dev

logger:

web_server:

ota:

wifi:
  networks:
  - ssid: !secret wifi_ssid
    password: !secret wifi_passwd
  manual_ip:
    static_ip: 172.16.2.81
    gateway: 172.16.1.1
    subnet: 255.255.252.0
  ap:
    ssid: $friendly_name

captive_portal:

api:
  reboot_timeout: 10min

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

button:
  - platform: template
    name: Meridian CD input
    on_press:
      - uart.write: "CD\r\n"
  - platform: template
    name: Meridian DV input
    on_press:
      - uart.write: "DV\r\n"
  - platform: template
    name: Meridian Stanby
    on_press:
      - uart.write: "SB\r\n"

uart:
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600
  debug:
    direction: BOTH
    sequence:
      - lambda: UARTDebug::log_string(direction, bytes);