Integracja pompy ciepła JNOD (klon Sprsun) z HA modbus rs-485

Mam jeszcze jedno pytanie odnośnie rejestru o numerze 211 w sterowniku Carel. W opisie jest opisane, że to “przegrzanie” czy “podgrzanie”, ale czego? Na co wskazuje ten rejestr? O ile dobrze pamiętam to na początku zwracało temperaturę lekko ponad 5*C z parametrami:

  - platform: modbus_controller
    modbus_controller_id: pompa
    name: "Przegrzanie/podgrzanie? (TEST 211 podgrzanie?)"
    id: sprsun_przegrzanie
    register_type: holding
    address: 211
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

Ze względu na układ automatycznej zmiany kierunku przesyłania danych ta płytka może działać tylko przy jakichś konkretnych prędkościach połączenia (lub wręcz tylko przy jednej) - sprawdź w jej dokumentacji jaka to ma być prędkość i czy jest to 19200 bodów.
Być może TX i RX powinny być połączone na wprost, a nie na krzyż (czasem opisy są nadrukowane wbrew logice).

Próbowałem zamieniać RX TX na odwrót, ale to nic nie dało (nadal nie działa). A odnośnie bodów to nie mam żadnej dokumentacji technicznej tej płytki (mam ją z Chin) :confused:

Nie znalazłem dokumentacji, ale na podstawie znalezionego schematu

sądzę, że pamięć mnie zawiodła - nie widzę nic co by tu mogło jakoś wymuszać prędkość.

A i jeszcze jedno - zgodnie z tym schematem łączysz TX z TX, a RX z RX.

W każdym razie są kontrolki więc po ich zachowaniu powinieneś mieć chociaż namiastkę diagnostyki.

No i sprawdź czy schemat pasuje.

Ok, jutro jeszcze raz sprawdzę podłączenie TX z TX i RX z RX - chyba, że moge to na szybko (choćby dla testu) zamienić jakiś w kodzie?

Co do kontrolek, z tego co pamiętam to zapala się szybko i gaśnie tylko RXD, a TXD się nie świeci wcale.

Możesz - zamień GPIO

Spróbuję dzisiaj i dam znać.
Tak nawiasem, na stronie ESPHome napisali takie samo połączenie z tą samą płytką jakie mam ja:

LINK

Na podstawie schematu i opisanego zachownia ewidentnie jest to ten przypadek odwrotnego oznaczenia pinów rx,tx.
Ledy też mrugają odwrotnie. Oczywiście stosowaną zasadę oznaczeń chinczycy nie wiadomo dlaczego musieli zmienić? :slight_smile:
Podłącz 1:1 rx<>rxd i tx<>txd

Pewnie nikogo nie zaskoczę, gdyż… Działa :grin:
Dzięki za pomoc :slight_smile:

PS. Ktoś może rozkminił za co dokładnie odpowiada adres 211 w sterowniku Carel (przegranie/podgrzanie)?

OFF TOPIC

Język chiński jest językiem kontekstowym, być może w oryginalnej dokumentacji było coś co miało znaczyć “tu podłącz RX z MCU” (dzięki kontekstowości można czasem coś podobnego zapisać jednym czy dwoma znakami hanzi, z tego powodu np. na Ali są tak fatalne tłumaczenia na polski), ale na PCB zostało nadrukowane tylko RX, swoją drogą czasem dodatkowa dokumentacja jest nadrukowana na płytkach po chińsku (świetny przykład to fotka właśnie tej płytki, gdzie jest informacja o podłączeniu uziemienia w oryginale).


to bynajmniej nie jest napis, sugerujący cokolwiek wspólnego z 485 (jak widać gdzieś wyżej na fragmencie pochodzącym bodajże z dokumentacji ESPHome) tylko “chińskie GND”, ale te 3 znaki (“litery-słowa”) to całe zdanie - “weź duży grunt” (to takie mniej więcej bezpośrednie znaczenia) = podłącz uziemienie.

(PS Nie znam chińskiego, ale uczestniczyłem w paru większych projektach tłumaczeń aplikacji i czasem się okazywało, że źródłowy tekst był po chińsku i nie był przetłumaczony na angielski, który był źródłowy dla polskiego, więc bywało, że musiałem przebrnąć i przez chiński)

1 polubienie

… a już myślałem, że nie jesteś mnie w stanie niczym zaskoczy :stuck_out_tongue_winking_eye:

2 polubienia

@RobinI30 @szopen @Blackscreener
Koledzy, przychodzę do Was znów z problemem odnośnie mojego połączenia modułu ESPHome z pompą ciepła SPRSUN.
Około miesiąca temu jakimś cudem straciłem połączenie z pompą ciepła przez Modbusa. Oczywiście nic nie było w tym czasie grzebane, ruszane, żadnych ustawień w ESPHome ani w pompie nie ruszałem. Wszystko działało bez najmniejszego problemu przez około 5 miesięcy. Po tym czasie w ESPHome przestałem otrzymywać jakiekolwiek dane z pompy.
W celu lepszego zrozumienia, w kodzie ESPHome włączyłem tryb logowania “DEBUG”, a logi jakie otrzymałem to:

[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 24s'
[E][custom:782]: ######################################################## FREE HEAP: 184.26 KB
[E][custom:783]: ######################################################## Czas uruchomienia: ���?
[D][modbus_controller:043]: Modbus command to device=1 register=0x28 countdown=0 no response received - removed from send queue
[D][sensor:094]: 'uptime_sec': Sending state 163409.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x00 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0xBC countdown=0 no response received - removed from send queue
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=217 count=1
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=323 count=1
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=333 count=3
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 29s'
[D][sensor:094]: 'Sygnał WiFi (RSSI)': Sending state -83.00000 dBm with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (kod ESPHome)': Sending state 34.00000 % with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (mój kod)': Sending state 34.00000 % with 0 decimals of accuracy
[D][sensor:094]: 'Heap Free': Sending state 183644.00000 B with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0xD9 countdown=0 no response received - removed from send queue
[D][sensor:094]: 'uptime_sec': Sending state 163414.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x143 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0x14D countdown=0 no response received - removed from send queue
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 34s'
[D][modbus_controller:043]: Modbus command to device=1 register=0x28 countdown=0 no response received - removed from send queue
[E][custom:782]: ######################################################## FREE HEAP: 183.64 KB
[E][custom:783]: ######################################################## Czas uruchomienia: 
[D][sensor:094]: 'uptime_sec': Sending state 163419.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x00 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0x0B countdown=0 no response received - removed from send queue
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=188 count=11
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=201 count=5
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=207 count=1
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=211 count=1
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 39s'
[D][sensor:094]: 'Sygnał WiFi (RSSI)': Sending state -85.00000 dBm with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (kod ESPHome)': Sending state 30.00000 % with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (mój kod)': Sending state 30.00000 % with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0xBC countdown=0 no response received - removed from send queue
[D][sensor:094]: 'Heap Free': Sending state 183824.00000 B with 0 decimals of accuracy
[D][sensor:094]: 'uptime_sec': Sending state 163424.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0xC9 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0xCF countdown=0 no response received - removed from send queue
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 44s'
[D][modbus_controller:043]: Modbus command to device=1 register=0xD3 countdown=0 no response received - removed from send queue
[E][custom:782]: ######################################################## FREE HEAP: 183.82 KB
[E][custom:783]: ######################################################## Czas uruchomienia: ���?
[D][modbus_controller:043]: Modbus command to device=1 register=0x28 countdown=0 no response received - removed from send queue
[D][sensor:094]: 'uptime_sec': Sending state 163429.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x00 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0x0B countdown=0 no response received - removed from send queue
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=217 count=1
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=323 count=1
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=333 count=3
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 49s'
[D][sensor:094]: 'Sygnał WiFi (RSSI)': Sending state -88.00000 dBm with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (kod ESPHome)': Sending state 24.00000 % with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (mój kod)': Sending state 24.00000 % with 0 decimals of accuracy
[D][sensor:094]: 'Heap Free': Sending state 183628.00000 B with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0xD9 countdown=0 no response received - removed from send queue
[D][sensor:094]: 'uptime_sec': Sending state 163434.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x143 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0x14D countdown=0 no response received - removed from send queue
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 54s'
[E][custom:782]: ######################################################## FREE HEAP: 183.63 KB
[E][custom:783]: ######################################################## Czas uruchomienia: ��?
[D][modbus_controller:043]: Modbus command to device=1 register=0x28 countdown=0 no response received - removed from send queue
[D][sensor:094]: 'uptime_sec': Sending state 163439.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x00 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0x0B countdown=0 no response received - removed from send queue
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=188 count=11
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=201 count=5
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=207 count=1
[W][modbus_controller:136]: Duplicate modbus command found: type=0x3 address=211 count=1
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 23m 59s'
[D][sensor:094]: 'Sygnał WiFi (RSSI)': Sending state -88.00000 dBm with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (kod ESPHome)': Sending state 24.00000 % with 0 decimals of accuracy
[D][sensor:094]: 'Sygnał WiFi (mój kod)': Sending state 24.00000 % with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0xBC countdown=0 no response received - removed from send queue
[D][sensor:094]: 'Heap Free': Sending state 181872.00000 B with 0 decimals of accuracy
[D][sensor:094]: 'uptime_sec': Sending state 163444.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0xC9 countdown=0 no response received - removed from send queue
[D][modbus_controller:043]: Modbus command to device=1 register=0xCF countdown=0 no response received - removed from send queue
[D][text_sensor:064]: 'Czas uruchomienia': Sending state '1d 21h 24m 4s'
[D][modbus_controller:043]: Modbus command to device=1 register=0xD3 countdown=0 no response received - removed from send queue
[E][custom:782]: ######################################################## FREE HEAP: 181.87 KB
[E][custom:783]: ######################################################## Czas uruchomienia: 1d_21h_24m_4s
[D][sensor:094]: 'uptime_sec': Sending state 163449.85938 s with 0 decimals of accuracy
[D][modbus_controller:043]: Modbus command to device=1 register=0x28 countdown=0 no response received - removed from send queue

Jeśli chodzi o płytkę to miga ciągle TXD, natomiast RXD nie miga wcale. Poniżej zamieszczam filmik jak to wygląda w czasie rzeczywistym.
Filmik: LINK

Konfiguracja mojego ESPHome wygląda następująco:


esphome:
  name: sprsun-esp32

# esp8266:
#   board: nodemcuv2

esp32:
  board: nodemcu-32s

# Enable logging
logger:
  # level: VERBOSE
  level: DEBUG
  # level: INFO
  # level: ERROR
  # baud_rate: 0

wifi:
  # ssid: "Xiao (2G)"
  ssid: "XYZ"
  password: "xxxxxxxxxxx"

  # Optional manual IP
  manual_ip:
    static_ip: 10.0.0.47
    gateway: 10.0.0.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sprsun Fallback Hotspot"
    password: "xxxxxxxxxxxxxxxx"

ota:

# Example configuration entry
http_request:
  useragent: esphome/device
  timeout: 1s

# Enable Web server
web_server:
  port: 80
  version: 1

captive_portal:
uart:
  id: mod_sprsun
  # rx_pin: GPIO16
  # tx_pin: GPIO17
  rx_pin: GPIO17
  tx_pin: GPIO16
  baud_rate: 19200
  stop_bits: 2
  rx_buffer_size: 512
  parity: none
   
modbus:
  id: modbus1
  send_wait_time: 300ms
  # flow_control_pin: GPIO5

modbus_controller:
  - id: pompa
    address: 0x1
    modbus_id: modbus1
    setup_priority: -10
    update_interval: 10s
    # update_interval: 5s

debug:
  update_interval: 10s

globals:
  - id: numValToSend1
    type: bool
    restore_value: no
  - id: numValToSend2
    type: bool
    restore_value: no
.
.
.
  - id: numValToSend18
    type: bool
    restore_value: no

  - id: sprsun_zadana_temperatura_grzania_Wartosc
    type: double
    restore_value: no
  - id: sprsun_temperatura_powrotu_Wartosc
    type: double
    restore_value: no
.
.
.
  - id: sprsun_natezenie_falownika_silnika_kompresora_Wartosc
    type: double
    restore_value: no


sensor:
  - platform: uptime
    id: uptime_sec
    update_interval: 5s

  - platform: wifi_signal
    name: "Sygnał WiFi (RSSI)"
    id: wifi_signal_db
    update_interval: 10s
    entity_category: "diagnostic"

  - platform: copy
    source_id: wifi_signal_db
    name: "Sygnał WiFi (kod ESPHome)"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "%"
    entity_category: "diagnostic"
    device_class: ""

  - platform: copy
    source_id: wifi_signal_db
    name: "Sygnał WiFi (mój kod)"
    filters:
      - lambda: |-            
            int quality;
            if (x <= -100) {        // Minimalna wartość zasięgu (w dBm)
              quality = 0;
            } else if (x >= -50) {  // Maksymalna wartość zasięgu (w dBm)
              quality = 100;
            } else {
              quality = 2 * (x + 100);
            }
            return quality;
    unit_of_measurement: "%"
    entity_category: "diagnostic"
    device_class: ""

  - platform: debug
    free:
      name: "Heap Free"
      id: heapfree
#    fragmentation:
#      name: "Heap Fragmentation"
#    block:
#      name: "Heap Max Block"
#    loop_time:
#      name: "Loop Time"

  - platform: modbus_controller
    modbus_controller_id: pompa
    name: "Zadana temperatura grzania"
    id: sprsun_zadana_temperatura_grzania
    register_type: holding
    address: 1
    unit_of_measurement: "°C"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1
    on_value:
      then:
        - lambda: |-
            id(numValToSend1) = true;
            id(sprsun_zadana_temperatura_grzania_Wartosc) = id(sprsun_zadana_temperatura_grzania).state;
.
.
.
  - platform: modbus_controller
    modbus_controller_id: pompa
    name: "Natężenie falownika (silnika kompresora)"
    id: sprsun_natezenie_falownika_silnika_kompresora
    register_type: holding
    address: 335
    unit_of_measurement: "A"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1
    on_value:
      then:
        - lambda: |-
            id(numValToSend18) = true;
            id(sprsun_natezenie_falownika_silnika_kompresora_Wartosc) = id(sprsun_natezenie_falownika_silnika_kompresora).state;

text_sensor:
.
.
.
  - platform: modbus_controller
    modbus_controller_id: pompa
    id: sprsun_grzalka
    bitmask: 0
    register_type: holding
    address: 323
    raw_encode: HEXBYTES
    name: Tryb pracy grzałki
    lambda: |-
      uint16_t value = modbus_controller::word_from_hex_str(x, 0);
      switch (value) {
        case 0: return std::string("Włączona");
        case 1: return std::string("CWU");
        case 2: return std::string("Ogrzewanie");
        case 3: return std::string("Wszystko razem");
        default: return std::string("Unknown");
      }
      return x;

  - platform: template
    name: "Czas uruchomienia"
    id: czas_uruchomienia
    lambda: |-
      int seconds = (id(uptime_sec).state);
      int days = seconds / (24 * 3600);
      seconds = seconds % (24 * 3600); 
      int hours = seconds / 3600;
      seconds = seconds % 3600;
      int minutes = seconds /  60;
      seconds = seconds % 60;
      return { (String(days) +"d " + String(hours) +"h " + String(minutes) +"m "+ String(seconds) +"s").c_str() };
    icon: mdi:clock-start
    update_interval: 5s

  - platform: debug

  - platform: wifi_info
    ip_address:
      name: ESP IP Address
      # address_0:
      #   name: ESP IP Address 0
      # address_1:
      #   name: ESP IP Address 1
      # address_2:
      #   name: ESP IP Address 2
      # address_3:
      #   name: ESP IP Address 3
      # address_4:
      #   name: ESP IP Address 4
    ssid:
      name: ESP Connected SSID
    # bssid:
    #   name: ESP Connected BSSID
    mac_address:
      name: ESP Mac Wifi Address
    # scan_results:
    #   name: ESP Latest Scan Results
    # dns_address:
    #   name: ESP DNS Address

switch:
  - platform: modbus_controller
    name: "Pompa ciepła ON/OFF"
    id: "sprsun_wlaczy_wylacz"
    address: 40
    register_type: coil
    icon: "mdi:toggle-switch"


# Example configuration entry
interval:
  - interval: 10s
    then:
      - lambda: |-
          String heap = String(id(heapfree).state / 1000);
          
          int seconds = (id(uptime_sec).state);
          int days = seconds / (24 * 3600);
          seconds = seconds % (24 * 3600); 
          int hours = seconds / 3600;
          seconds = seconds % 3600;
          int minutes = seconds /  60;
          seconds = seconds % 60;
          String czas = String(days) + "d_" + String(hours) + "h_" + String(minutes) + "m_"+ String(seconds) + "s";

          ESP_LOGE("custom", "######################################################## FREE HEAP: %s KB", heap);
          ESP_LOGE("custom", "######################################################## Czas uruchomienia: %s", czas);

Czy być może ktoś ma jakieś pomysły co mogło nawalić?
Zastanawiam się co mogę jeszcze uczynić w miarę prostą metodą, aby znaleźć w czym leży problem. W ekstremalnym wypadku chyba będę musiał rozkręcić boczną ścianą pompy ciepła i podłączyć się bezpośrednio 2 krótkimi przewodami, by wykluczyć czy sygnał modbus działa na choćby tak krótkim odcinku. Natomiast tej metody wolałbym uniknąć z racji pogody i wymuszenia demontażu całego układu ze skrzynki. Czy być może ktoś ma inne pomysły, gdzie może leżeć problem?

Na pierwszy rzut oka nie ma komunikacji RS485, typuję

  • uszkodzona płytka konwertera RS485
  • zamoknięte przewody
  • zimne luty
  • uszkodzenie modułu RS485 w klimie

No chyba, że zignorowałęś jakieś breaking change i skompilowałeś mimo tego świeży wsad (no ale Ty jesteś użytkownikiem, to musisz o to dbać) wstępnie odrzuciłem taki pomysł, bo napisałeś

Okej, a co byś sprawdził w pierwszej kolejności jakbyś był na moim miejscu? Co może być najbardziej prawdopodobną awarią?
I też tak jak pisałem wcześniej, ten moduł, bez jakichkolwiek zmian (również software’owych) działał bez problemu przez 5 miesięcy. Po prostu po tym czasie nagle zdechło i po kilku dniach zauważyłem, że mam brak danych.

Jeśli chodzi o zamoknięte przewody to to bym wykluczył, bo całość idzie w szczelnej otulinie do wnętrza kotłowni, a w kotłowni jest ciepło. Jedynie wilgotnośc przy PCB modbusa (w pompie ciepła, ale czy to realne i czy to częsta awaria?).
Zastanawiałem się też czy to w ogóle może być wina przewodu, dlatego zaproponowałem takie awaryjne, ostateczne rozwiązanie by wpiąć moduł “bezpośrednio” krótkim przewodem do modbusa w pompie.
Jeśli chodzi o konwerter, tych powinienem mieć jeszcze kilka na stanie, jednak musze polutowac goldpiny.

Jeśli chodzi o edycje kodu to tam właśnie nic nie było ruszane. Po prostu z dnia na dzień zdechło, niestety :confused: I o ile myślę, że bardzo rzadko są takie przypadłości, o tyle jestem tą awarią zaskoczony i rozkminiam co by tu mogło nawalić. Mam sporo takich układów IoT w domu, większość jest na zewnątrz i nigdy z czymś takim jeszcze się nie spotkałem :confused:

no jeśli go myszy przegryzły, to oczywiście :rofl: ale tak jeszcze bardziej na poważnie to zmiana pór roku jest najlepszym testem dla samoróbek
(a nawet dla konstrukcji fabrycznych - miejsce na foto czujnika ze stacji pogodowej, którą poprawiałem po Chińczyku, ale nie chciałem ryzykować za bardzo i nie zaimpregnowałem całości płytki sensora TH - już się to zemściło…)
możesz się podłączyć na krótko, zrób to
masz konwerter na podmianę - podmień
coś wspomniałeś o goldpinach - połączenie lutowane jest bardziej niezawodne

Brak edycji YAMLa to jeszcze nie wszystko - sama rekompilacja w innej wersji ESPHome może wygenerować zupełnie inny wsad (a nie mówię nawet o potencjalnych zmianach w komponentach które używasz), a raczej nie da się siedzieć na starych wersjach, bo ilość zmian się nawarstwia.
Używasz dość zaawansowanego YAMLa, więc zgaduję, że zdajesz sobie z tego sprawę…
Nie pokazałeś loga od początku więc nie wiadomo w jakiej wersji to było kompilowane i czy w związku z tym powinieneś szukać breaking changes czy nie.

Haha, zgadza się, ale to już wykluczyłem, bo oglądałem kabel i on generalnie jest w grubej otulinie. W najgorszym wypadku (naj nie pomogą prostsze diagnozy) przedzwonię cały kabel miernikiem i sprawdzę czy nie ma zwarcia.
Co do pór roku - zgadza się, sam się już na tym wielokrotnie przejechałem przy ESP :stuck_out_tongue:

Co do tej części to zgadza się, ale to już też wykluczyłem, gdyż żadnych rekompilacji nie było w tym czasie. Po prostu w okolicach maja zaprogramowałem cały układ i od tamtej pory nie robiłem żadnego upgrade’u firmware’a, więc tą kwestię wykluczam całkowicie. Jeśli cokolwiek bym grzebał/rekompilował to to byłoby pierwsze co zabrałbym pod uwagę :slight_smile:

@szopen Nawet nie musiałem rozbierać bocznej ścianki pompy. Wadą była… płytka Modbus przy ESPHome :confused: Jestem trochę zażenowany tą awarią, choć ważne, że wpadłem na pomysł, że od razu przelutuję kolejną płytkę, sprawdzę i upewnię się, że na nowej też jest ten błąd :wink:
Swoją drogą, ta płytka Modbus to serio taka awaryjna sprawa? Ile mam tych płytek tak pierwszy raz spotykam się z taką awarią. Chyba od razu tą uszkodzoną wywalę do śmieci.

Wrzucisz ładne foto z każdej strony? Ciekaw jestem czy są widoczne jakiś uszkodzenia.
(szczerze mówiąc nie znam warunków instalacji, ale może dobrze by było mieć prawidłowe uziemienie magistrali rs485?)

Jeśli zimne luty, to tylko norma RoHS robi swoje.

Jasne, zaraz Ci wrzucę. Choć na moje oko nie widać żadnych upaleń, “czarnych” miejsc, ale zerkniesz, może coś zauważysz :smiley:
A co do uziemienia RS485 to jak tego dokonać? Od strony płytki Modbus przy ESP32 mam podpięte tylko GND i VCC (choć pewnie nie o to Ci chodzi?).