Esp32 i led matrix hub75

witam bardzo proszę o pomoc . Mianowicie zrobiłem sobie do warsztatu wyswietlacz led matrix i 2 lata działa bez problemu . Naszło mnie na zmiene falownika no i jedne encja sie nie pokrywa no i mowie sobie zmienie . a tu kiszka.

  name: led-matrix-hub75-huidu-wf2-1
  friendly_name: LED matrix Huidu HD-WF2
  platformio_options:
    board_build.flash_mode: dio

external_components:
  - source: github://TillFleisch/ESPHome-HUB75-MatrixDisplayWrapper@main

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "b/Asnp8jGArLh3M8k0hxxxxxxxxx9V7nmVq904G/kwdc="

ota:
  - platform: esphome
    password: "446e349056xxxxxxxxxafcb57cf"

wifi:
  ssid: !secret wifi_ssid_in
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.42
    gateway: 192.168.1.100
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Led-Matrix1 Fallback Hotspot"
    password: "Zp7xxxxxLvZd"


captive_portal:

sensor:
  - platform: homeassistant
    id: inwenter_pv_power
    entity_id: sensor.inveter_pv_charging_power
    internal: true
  - platform: homeassistant
    id: inwenter_power_output
    entity_id: sensor.inwenter_inveter_ac_output_active_power
    internal: true
  - platform: homeassistant
    id: bms_state_off_charge
    entity_id: sensor.bms_state_off_charge_1_2
  - platform: homeassistant
    id: moc
    entity_id: sensor.moc_banki
  - platform: homeassistant
    id: discharge
    entity_id: sensor.bms_discharge_1_2
  - platform: homeassistant
    id: siec
    entity_id: sensor.zamel_mew_01_glowny_licznik_firma_power_active_phase_1
  - platform: homeassistant
    id: temp
    entity_id: sensor.czujnik_naslonecznieniaa_i_temp_temperatura_zewnetrzna
  - platform: homeassistant
    id: warsztat_pobor
    entity_id: sensor.pozostalosc_po_odjeciu
  - platform: homeassistant
    id: dom_pobor
    entity_id: sensor.zamel_lew_01_electricity_meter_power_active_phase_1
  - platform: homeassistant
    id: volt
    entity_id: sensor.napiecie_bankow
  - platform: homeassistant
    id: dzis
    entity_id: sensor.energy_production_today
  - platform: homeassistant
    id: jutro
    entity_id: sensor.energy_production_tomorrow
  - platform: homeassistant
    id: teraz
    entity_id: sensor.inwenter_inverter_kwh_charging_power
  - platform: homeassistant
    id: CO2
    entity_id: sensor.czujnik_co2_co2_concentration

    
i2c:
  sda: 41
  scl: 42

time:
  - platform: pcf8563
    address: 0x51
    id: pcf8563_time
  - platform: homeassistant
    id: homeassistant_time
    on_time_sync:
      then:
        - pcf8563.write_time: pcf8563_time

font:
  - file: "gfonts://Roboto"
    id: roboto
    size: 27
  - file: "gfonts://Roboto"
    id: roboto2
    size: 16
  - file: 'fonts/pixelmix.ttf'
    id: digit_font
    size: 8

globals:
  - id: toggle_display
    type: int
    restore_value: no
    initial_value: "0"


interval:
  - interval: 5s
    then:
      - lambda: |-
          id(toggle_display)++;
          if (id(toggle_display) > 2) id(toggle_display) = 0;
      - component.update: huidu_wf2_x1

display:
  - platform: hub75_matrix_display
    id: huidu_wf2_x1
    width: 64
    height: 32
    chain_length: 5
    clock_phase: false
    update_interval: 8ms
    R1_pin: 2
    R2_pin: 3
    G1_pin: 6
    G2_pin: 7
    B1_pin: 10
    B2_pin: 11
    A_pin: 39
    B_pin: 38
    C_pin: 37
    D_pin: 36
    E_pin: 21
    OE_pin: 35
    CLK_pin: 34
    LAT_pin: 33
    lambda: |-
      auto blue = Color(0, 0, 255);
      auto green = Color(0, 255, 0);
      auto red = Color(255, 0, 0);
      auto yellow = Color(255, 255, 0);
      auto orange = Color(255, 165, 0);
      auto rtc = id(pcf8563_time).now();

      it.strftime(0, -6, id(roboto), "%H:%M:%S", rtc);
      it.strftime(110, -2, id(roboto2), "%d-%m-%y", rtc);
      it.printf(110, 14, id(digit_font), "PV: %.0fw", id(inwenter_pv_power).state);
      it.printf(0, 23, id(digit_font), "Siec: %.0fw / Warsztat: %.0fw / Dom: %.0fw", id(siec).state, id(warsztat_pobor).state, id(dom_pobor).state);

      it.printf(263, 16, id(digit_font), "P:%.0f w", id(moc).state);
      it.printf(263, 0, id(digit_font), ":%.0f%% : %.0f*C", id(bms_state_off_charge).state, id(temp).state);
      it.printf(263, 24, id(digit_font), "V:%.2f v", id(volt).state);

      
      if (id(toggle_display) == 0) {
          it.printf(175, 0, id(digit_font), "Dzis:%.2fkwh", id(dzis).state);
      } else if (id(toggle_display) == 1) {
          it.printf(175, 0, id(digit_font), "Jutro:%.2fkwh", id(jutro).state);
      } else {
          it.printf(175, 0, id(digit_font), "Teraz:%.2fkwh", id(teraz).state);
      }

      id(huidu_wf2_x1)->set_brightness(15); 
      
      if (id(inwenter_pv_power).state > 400.0) {
        // Rysowanie słońca
        it.filled_circle(241, 21, 6, yellow);
      
        static float intensity = 1.0;
        static bool fading_out = true;

        if (fading_out) {
          intensity -= 0.05;
          if (intensity <= 0.2) fading_out = false;
        } else {
          intensity += 0.05;
          if (intensity >= 1.0) fading_out = true;
        }

        for (int i = 0; i < 360; i += 45) {
          float angle = i * 3.14159 / 180.0;
          int x1 = 241 + cos(angle) * 7;
          int y1 = 21 + sin(angle) * 7;
          int x2 = 241 + cos(angle) * 11;  // Promienie teraz są dłuższe
          int y2 = 21 + sin(angle) * 11;
          auto faded_color = Color(255 * intensity, 165 * intensity, 0 * intensity);
          it.line(x1, y1, x2, y2, faded_color);
        } // <--- Zamknięcie pętli for
      } // <--- Zamknięcie if

      // Rysowanie obrysu akumulatora (niezależnie od słońca)
      int x = 255;   // Pozycja X baterii
      int y = 2;     // Pozycja Y baterii
      int width = 6;  // Szerokość baterii
      int height = 27; // Wysokość baterii


      it.rectangle(x, y, width, height, blue); // Obrys baterii w kolorze niebieskim

      // Biegun dodatni - środek baterii, szerokość 4 px, wysokość 1 px
      int terminal_width = 4;
      int terminal_height = 1;
      int terminal_x = x + (width - terminal_width) / 2; // Wyśrodkowanie
      int terminal_y = y - 1; // Jeden piksel nad obrysem baterii
     
      it.filled_rectangle(terminal_x, terminal_y, terminal_width, terminal_height, red);

      // Pobranie poziomu naładowania baterii (wartość w procentach)
      float charge_level = id(bms_state_off_charge).state / 100.0f; // Zakładamy wartości 0-100%

      // Ograniczenie wartości do przedziału [0, 1] (0% - 100%)
      charge_level = std::min(1.0f, std::max(0.0f, charge_level));

      // Obliczenie liczby pełnych linii (23 linii na 100% naładowania)
      int full_lines = std::round(charge_level * 23); // 23 linii na 100% (każda linia to 4% naładowania)

      // Rysowanie zielonych linii wypełnienia baterii
      for (int i = 0; i < full_lines; ++i) {
      int y_pos = y + height - (i + 1) * 1 - 3 - 1;  // Przesunięcie o 1 piksel dla każdej linii w pionie
      it.filled_rectangle(x + 1, y_pos, width - 2, 4, green); // Szerokość linii zgodnie z wymogami
      }





switch:
  - platform: hub75_matrix_display
    matrix_id: huidu_wf2_x1
    restore_mode: ALWAYS_ON
    id: matrix_power_x1
  
  - platform: gpio
    id: led_run
    pin: 40

binary_sensor:
  - platform: gpio
    id: test_key
    pin:
      number: 17
      inverted: true

number:
  - platform: hub75_matrix_display
    matrix_id: huidu_wf2_x1
    name: "Brightness X1"

text_sensor:
  - platform: wifi_info
    ip_address: 
      name: "Led Sufit IP Address"
      id: Led_Sufit_ip
    ssid:
      name: "Sieć WiFi"
    mac_address:
      name: "MAC"

i wywala ze swich mu nie pasi

INFO ESPHome 2025.11.0
INFO Reading configuration /config/esphome/led-matrix1.yaml...
ERROR Unable to load component hub75_matrix_display.switch:
Traceback (most recent call last):
  File "/esphome/esphome/loader.py", line 199, in _lookup_module
    module = importlib.import_module(f"esphome.components.{domain}")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 999, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/data/external_components/82436398/components/hub75_matrix_display/switch/__init__.py", line 15, in <module>
    CONFIG_SCHEMA = switch.SWITCH_SCHEMA.extend(
                    ^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'esphome.components.switch' has no attribute 'SWITCH_SCHEMA'. Did you mean: '_SWITCH_SCHEMA'?
Failed config

Platform not found: 'switch.hub75_matrix_display'
``` nastepnie wywaliłęm swich .

esphome:
name: led-matrix-hub75-huidu-wf2-1
friendly_name: LED matrix Huidu HD-WF2
platformio_options:
board_build.flash_mode: dio

external_components:

  • source: github://TillFleisch/ESPHome-HUB75-MatrixDisplayWrapper@main

esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino

Enable logging

logger:

Enable Home Assistant API

api:
encryption:
key: “b/Asnp8jGArLh3M8k0h7xxxxxxxxxx89V7nmVq904G/kwdc=”

ota:

  • platform: esphome
    password: “446e349056xxxxxxxxxxe0f4eafcb57cf”

wifi:
ssid: !secret wifi_ssid_in
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.42
gateway: 192.168.1.100
subnet: 255.255.255.0

Enable fallback hotspot (captive portal) in case wifi connection fails

ap:
ssid: “Led-Matrix1 Fallback Hotspot”
password: “Zp7xxxxxxvZd”

captive_portal:

sensor:

  • platform: homeassistant
    id: inwenter_pv_power
    entity_id: sensor.inveter_pv_charging_power
    internal: true
  • platform: homeassistant
    id: inwenter_power_output
    entity_id: sensor.inwenter_inveter_ac_output_active_power
    internal: true
  • platform: homeassistant
    id: bms_state_off_charge
    entity_id: sensor.bms_state_off_charge_1_2
  • platform: homeassistant
    id: moc
    entity_id: sensor.moc_banki
  • platform: homeassistant
    id: discharge
    entity_id: sensor.bms_discharge_1_2
  • platform: homeassistant
    id: siec
    entity_id: sensor.zamel_mew_01_glowny_licznik_firma_power_active_phase_1
  • platform: homeassistant
    id: temp
    entity_id: sensor.czujnik_naslonecznieniaa_i_temp_temperatura_zewnetrzna
  • platform: homeassistant
    id: warsztat_pobor
    entity_id: sensor.pozostalosc_po_odjeciu
  • platform: homeassistant
    id: dom_pobor
    entity_id: sensor.zamel_lew_01_electricity_meter_power_active_phase_1
  • platform: homeassistant
    id: volt
    entity_id: sensor.napiecie_bankow
  • platform: homeassistant
    id: dzis
    entity_id: sensor.energy_production_today
  • platform: homeassistant
    id: jutro
    entity_id: sensor.energy_production_tomorrow
  • platform: homeassistant
    id: teraz
    entity_id: sensor.inwenter_inverter_kwh_charging_power
  • platform: homeassistant
    id: CO2
    entity_id: sensor.czujnik_co2_co2_concentration

i2c:
sda: 41
scl: 42

time:

  • platform: pcf8563
    address: 0x51
    id: pcf8563_time
  • platform: homeassistant
    id: homeassistant_time
    on_time_sync:
    then:
    - pcf8563.write_time: pcf8563_time

font:

  • file: “gfonts://Roboto”
    id: roboto
    size: 27
  • file: “gfonts://Roboto”
    id: roboto2
    size: 16
  • file: ‘fonts/pixelmix.ttf’
    id: digit_font
    size: 8

globals:

  • id: toggle_display
    type: int
    restore_value: no
    initial_value: “0”

interval:

  • interval: 5s
    then:
    • lambda: |-
      id(toggle_display)++;
      if (id(toggle_display) > 2) id(toggle_display) = 0;
    • component.update: huidu_wf2_x1

display:

  • platform: hub75_matrix_display
    id: huidu_wf2_x1
    width: 64
    height: 32
    chain_length: 5
    clock_phase: false
    update_interval: 8ms
    R1_pin: 2
    R2_pin: 3
    G1_pin: 6
    G2_pin: 7
    B1_pin: 10
    B2_pin: 11
    A_pin: 39
    B_pin: 38
    C_pin: 37
    D_pin: 36
    E_pin: 21
    OE_pin: 35
    CLK_pin: 34
    LAT_pin: 33
    lambda: |-
    auto blue = Color(0, 0, 255);
    auto green = Color(0, 255, 0);
    auto red = Color(255, 0, 0);
    auto yellow = Color(255, 255, 0);
    auto orange = Color(255, 165, 0);
    auto rtc = id(pcf8563_time).now();

    it.strftime(0, -6, id(roboto), “%H:%M:%S”, rtc);
    it.strftime(110, -2, id(roboto2), “%d-%m-%y”, rtc);
    it.printf(110, 14, id(digit_font), “PV: %.0fw”, id(inwenter_pv_power).state);
    it.printf(0, 23, id(digit_font), “Siec: %.0fw / Warsztat: %.0fw / Dom: %.0fw”, id(siec).state, id(warsztat_pobor).state, id(dom_pobor).state);

    it.printf(263, 16, id(digit_font), “P:%.0f w”, id(moc).state);
    it.printf(263, 0, id(digit_font), “:%.0f%% : %.0f*C”, id(bms_state_off_charge).state, id(temp).state);
    it.printf(263, 24, id(digit_font), “V:%.2f v”, id(volt).state);

    if (id(toggle_display) == 0) {
    it.printf(175, 0, id(digit_font), “Dzis:%.2fkwh”, id(dzis).state);
    } else if (id(toggle_display) == 1) {
    it.printf(175, 0, id(digit_font), “Jutro:%.2fkwh”, id(jutro).state);
    } else {
    it.printf(175, 0, id(digit_font), “Teraz:%.2fkwh”, id(teraz).state);
    }

    id(huidu_wf2_x1)->set_brightness(15);

    if (id(inwenter_pv_power).state > 400.0) {
    // Rysowanie słońca
    it.filled_circle(241, 21, 6, yellow);

    static float intensity = 1.0;
    static bool fading_out = true;
    
    if (fading_out) {
      intensity -= 0.05;
      if (intensity <= 0.2) fading_out = false;
    } else {
      intensity += 0.05;
      if (intensity >= 1.0) fading_out = true;
    }
    
    for (int i = 0; i < 360; i += 45) {
      float angle = i * 3.14159 / 180.0;
      int x1 = 241 + cos(angle) * 7;
      int y1 = 21 + sin(angle) * 7;
      int x2 = 241 + cos(angle) * 11;  // Promienie teraz są dłuższe
      int y2 = 21 + sin(angle) * 11;
      auto faded_color = Color(255 * intensity, 165 * intensity, 0 * intensity);
      it.line(x1, y1, x2, y2, faded_color);
    } // <--- Zamknięcie pętli for
    

    } // <— Zamknięcie if

    // Rysowanie obrysu akumulatora (niezależnie od słońca)
    int x = 255; // Pozycja X baterii
    int y = 2; // Pozycja Y baterii
    int width = 6; // Szerokość baterii
    int height = 27; // Wysokość baterii

    it.rectangle(x, y, width, height, blue); // Obrys baterii w kolorze niebieskim

    // Biegun dodatni - środek baterii, szerokość 4 px, wysokość 1 px
    int terminal_width = 4;
    int terminal_height = 1;
    int terminal_x = x + (width - terminal_width) / 2; // Wyśrodkowanie
    int terminal_y = y - 1; // Jeden piksel nad obrysem baterii

    it.filled_rectangle(terminal_x, terminal_y, terminal_width, terminal_height, red);

    // Pobranie poziomu naładowania baterii (wartość w procentach)
    float charge_level = id(bms_state_off_charge).state / 100.0f; // Zakładamy wartości 0-100%

    // Ograniczenie wartości do przedziału [0, 1] (0% - 100%)
    charge_level = std::min(1.0f, std::max(0.0f, charge_level));

    // Obliczenie liczby pełnych linii (23 linii na 100% naładowania)
    int full_lines = std::round(charge_level * 23); // 23 linii na 100% (każda linia to 4% naładowania)

    // Rysowanie zielonych linii wypełnienia baterii
    for (int i = 0; i < full_lines; ++i) {
    int y_pos = y + height - (i + 1) * 1 - 3 - 1; // Przesunięcie o 1 piksel dla każdej linii w pionie
    it.filled_rectangle(x + 1, y_pos, width - 2, 4, green); // Szerokość linii zgodnie z wymogami
    }

#switch:

- platform: hub75_matrix_display

matrix_id: huidu_wf2_x1

restore_mode: ALWAYS_ON

id: matrix_power_x1

- platform: gpio

id: led_run

pin: 40

binary_sensor:

  • platform: gpio
    id: test_key
    pin:
    number: 17
    inverted: true

number:

  • platform: hub75_matrix_display
    matrix_id: huidu_wf2_x1
    name: “Brightness X1”

text_sensor:

  • platform: wifi_info
    ip_address:
    name: “Led Sufit IP Address”
    id: Led_Sufit_ip
    ssid:
    name: “Sieć WiFi”
    mac_address:
    name: “MAC”

i po tym wyskakuje .

INFO ESPHome 2025.11.0
INFO Reading configuration /config/esphome/led-matrix1.yaml…
INFO Detected timezone ‘Europe/Warsaw’
INFO Detected timezone ‘Europe/Warsaw’
WARNING GPIO3 is a strapping PIN and should only be used for I/O with care.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See Frequently Asked Questions - ESPHome - Smart Home Made Simple
WARNING GPIO37 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO36 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO35 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO34 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
WARNING GPIO33 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models
INFO Generating C++ source…
INFO Setting CONFIG_LWIP_MAX_SOCKETS to 11 (registered: api=4, captive_portal=4, mdns=2, ota=1)
INFO Compiling app… Build path: /data/build/led-matrix-hub75-huidu-wf2-1
Processing led-matrix-hub75-huidu-wf2-1 (board: esp32-s3-devkitc-1; framework: arduino, espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/55.03.31-2/platform-espressif32.zip)

INFO Package configuration completed successfully
INFO Package configuration completed successfully
HARDWARE: ESP32S3 240MHz, 320KB RAM, 8MB Flash

  • contrib-piohome @ 3.4.4
  • framework-arduinoespressif32 @ 3.3.2
  • framework-arduinoespressif32-libs @ 5.5.0+sha.129cd0d247
  • framework-espidf @ 3.50501.0 (5.5.1)
  • tool-cmake @ 4.0.3
  • tool-esp-rom-elfs @ 2024.10.11
  • tool-esptoolpy @ 5.1.0
  • tool-mklittlefs @ 3.2.0
  • tool-ninja @ 1.13.1
  • tool-scons @ 4.40801.0 (4.8.1)
  • toolchain-xtensa-esp-elf @ 14.2.0+20241119
    Reading CMake configuration…
    Dependency Graph
    |-- Networking @ 3.3.2
    |-- ESP32 Async UDP @ 3.3.2
    |-- DNSServer @ 3.3.2
    |-- WiFi @ 3.3.2
    |-- ESPmDNS @ 3.3.2
    |-- Update @ 3.3.2
    |-- noise-c @ 0.1.10
    |-- Wire @ 3.3.2
    |-- SPI @ 3.3.2
    |-- Adafruit BusIO @ 1.17.4
    |-- Adafruit GFX Library @ 1.12.4
    |-- ESP32 HUB75 LED MATRIX PANEL DMA Display @ 3.0.12+sha.533ffe9
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/src/main.cpp.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/lib5ca/ESP32 HUB75 LED MATRIX PANEL DMA Display/platforms/esp32s3/gdma_lcd_parallel16.cpp.o
    Archiving .pioenvs/led-matrix-hub75-huidu-wf2-1/esp-idf/efuse/libefuse.a
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp-tls/esp-tls-crypto/esp_tls_crypto.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp-tls/esp_tls_error_capture.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp-tls/esp_tls_platform_port.c.o
    .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp:21:19: note: ‘#pragma message: Compiling for ESP32-S3’
    21 | #pragma message “Compiling for ESP32-S3”
    | ^~~~~~~~~~~~~~~~~~~~~~~~
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp-tls/esp_tls_mbedtls.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/adc_oneshot.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/adc_common.c.o
    Archiving .pioenvs/led-matrix-hub75-huidu-wf2-1/esp-idf/esp-tls/libesp-tls.a
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/adc_cali.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/adc_cali_curve_fitting.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/deprecated/esp_adc_cal_common_legacy.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/adc_continuous.c.o
    Compiling .pioenvs/led-matrix-hub75-huidu-wf2-1/esp_adc/adc_monitor.c.o
    .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp: In member function ‘bool Bus_Parallel16::init()’:
    .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp:204:9: error: ‘gpio_hal_iomux_func_sel’ was not declared in this scope; did you mean ‘gpio_hal_func_sel’?
    204 | gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[pins[i]], PIN_FUNC_GPIO);
    | ^~~~~~~~~~~~~~~~~~~~~~~
    | gpio_hal_func_sel
    .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp:231:7: error: ‘gpio_hal_iomux_func_sel’ was not declared in this scope; did you mean ‘gpio_hal_func_sel’?
    231 | gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[_cfg.pin_wr], PIN_FUNC_GPIO);
    | ^~~~~~~~~~~~~~~~~~~~~~~
    | gpio_hal_func_sel
    .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp:254:21: warning: ‘esp_err_t gdma_new_channel(const gdma_channel_alloc_config_t*, gdma_channel_t**)’ is deprecated: please use gdma_new_ahb_channel or gdma_new_axi_channel respectively [-Wdeprecated-declarations]
    254 | gdma_new_channel(&dma_chan_config, &dma_chan);
    | ^~~~~~~~~~~~~
    In file included from .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.hpp:64,
    from .piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp:27:
    /data/cache/platformio/packages/framework-espidf/components/esp_hw_support/dma/include/esp_private/gdma.h:481:11: note: declared here
    481 | esp_err_t gdma_new_channel(const gdma_channel_alloc_config_t *config, gdma_channel_handle_t *ret_chan)
    | ^~~~~~~~~~~~~~~~
    *** [.pioenvs/led-matrix-hub75-huidu-wf2-1/lib5ca/ESP32 HUB75 LED MATRIX PANEL DMA Display/platforms/esp32s3/gdma_lcd_parallel16.cpp.o] Error 1
    ========================= [FAILED] Took 24.21 seconds =========================

wspomagając sie Czatem . podpowiada rozwiazanie zmiene w bibliotece .

1️⃣ Zamiana funkcji w kodzie biblioteki

W pliku:

.piolibdeps/led-matrix-hub75-huidu-wf2-1/ESP32 HUB75 LED MATRIX PANEL DMA Display/src/platforms/esp32s3/gdma_lcd_parallel16.cpp


znajdź linie:

gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[pins[i]], PIN_FUNC_GPIO);


i

gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[_cfg.pin_wr], PIN_FUNC_GPIO);


i zmień je na:

gpio_hal_func_sel(GPIO_PIN_MUX_REG[pins[i]], PIN_FUNC_GPIO);


oraz

gpio_hal_func_sel(GPIO_PIN_MUX_REG[_cfg.pin_wr], PIN_FUNC_GPIO);


W ESP32-S3 gpio_hal_func_sel jest poprawną funkcją do ustawiania pinów jako GPIO.

ale nie mam pojecia o co chodzi i gdzie tego pliku lub folderu szukac . przeszukalem cale homa i nic nie znalazlem .

A co na to autor tego komponentu niestandardowego?
Ile lat nie aktualizowałeś firmware?


I proszę - w przyszłości nie wybieraj na pałę działu, gdzie umieszczasz swój wątek, z HA to naprawdę nie ma wiele wspólnego.

Homa aktualizuje co kawałek lecz gdyby nie ta zmiana to nawet bym nie wiedział . Przepraszam za jak to nazwałeś wrzucenie na pałe ale myślałem ze dotyczy to Homa bo w nim te zmiany niby zaszły . Źle to zinterpretowałem . Sory . Dziwi mnie ze cały wyświetlacz działa poprawnie lecz nie można dokonać żadnej zmiany.

Gdybyś odpowiedział może by była szansa na jakiś trop.

Nie rozumiem o jakiej odpowiedzi jest mowa. Mowisz o aktualizacji?

A wyswietlacz robiony byl okolo roku temu .

Pytam jak często i kiedy ostatnio aktualizowałeś firmware temu wyświetlaczowi…
tu masz przykład tego co jest interesujące

Druga kwestia że z tego ścinka screena wynika że siedzisz na jakichś starych wersjach zarówno HA jak i ESPHome, ale ja nie mam szklanej kuli by cokolwiek z tego wnioskować…

To to pewnie przed tobą przejście przez jakieś breaking changes (chyba, że nadal masz ESPHome w tej samej wersji co z dnia ostatniej udanej kompilacji, ale nawet w takim wypadku najpierw sprawdź czy ten komponent niestandardowy dla ESPHome nie podążył za rozwojem, bo wtedy musisz podać jakąś starą wersję jawnie).
Moim zdaniem lepiej iść z rozwojem. I pytać u źródła (czyli u autora, bo szansa na znalezienie kogoś z tym samym komponentem bliska zera).

Ok ale masz na mysli przebudowac wyswietlacz jakos czy zastosowac inny ? A czy jest mozliwosc aby nazwac encje tak samo jak byla i np pomocnik aby ta encje rozsylal w takiej nazwie ?

Robiłeś to sam? to powinieneś wdrożyć rozwiązania jakbyś robił to dzisiaj znowu od zera (czyli przeczytać chociaż aktualną dokumentację, sprawdzić czy były nowsze wydania komponentu itd.).