Forum Francophone Home Assistant

Custom switch

Bonjour.
Qui peut m’aider s’il vous plait ?
J’essaye de faire un ‹ custom_switch › (On/Off) qui :
- Obtenir une variable globale du YAML
- Change la valeur de cette variable (0x0C<->0x0D)
- Écrit la nouvelle valeur sur le port UART
- Ecrit la nouvelle valeur dans la variable globale
- Allume brièvement la LED embarquée.
Mon code ci-dessous se compile bien et se téléverse bien via OTA mais il plante lorsque j’appuie sur le Switch.
Merci de votre aide.
Yaml code:

    globals:
      - id: var_on_off
        type: int
        restore_value: no
        initial_value: '0'
    switch:
      - platform: custom
        lambda: |-
          auto On_Off = new Switch_OnOff();
          App.register_component(On_Off);
          return {On_Off};
        switches:
          id: On_Off
          name: "Marche/Arrêt"
          inverted: true
          on_turn_on:
            - delay: 250ms
            - switch.turn_off: On_Off`

Custom Switch Code:

#include "esphome.h"
class Switch_OnOff : public Component, public UARTDevice, public Switch {
  public:
   void setup() override {
   pinMode(LED_BUILTIN, OUTPUT);
 }
 int data;
 void write_state(bool state) override {
     data = var_on_off->value();
     switch(data){
       case 0x0C:
         write(0x0D);
         var_on_off->value() = 0x0D;
       case 0x0D:
        write(0x0C);
        var_on_off->value() = 0x0C;
      default:
        break;
    }
    digitalWrite(LED_BUILTIN, state);
    publish_state(state);
  }
};`

Et voici le message d’erreur :
INFO 192.168.0.81: Error while reading incoming messages:
Error while reading data: [Errno 104] Connection reset by peer
INFO Disconnected from ESPHome API for 192.168.0.81
WARNING Disconnected from API
INFO 192.168.0.81: Ping Failed: Error while reading data: [Errno 104] Connection reset by peer
INFO Successfully connected to 192.168.0.81