Pool Wärmepumpe "Evolution Topline" Modbus Register finden ohne Anleitung

Hallo,

ich habe hier eine Pool WP die ich über Modbus via ESPHOME einbinden will.
Auf dem PCB ist ein 2. RS 485 Port.

Wie geht man vor wenn man keine Informationen über die Register hat?

Aktueller stand: Bei Gerät 1 antwortet er, bei Gerät 0 nicht, Fehler. Annahme: 1 Passt
Die ersten 40 Register eingebunden, Daten werden gelesen, Annahme Baudrate passt???

Daten in diesen Registern ergeben keinen Sinn. 20 Nullen, 15 fixe Zahlen, 5 Werte ändern sich selten. Annahme: Einfach die falsch Register ?

Gibt es die Möglichkeit eine Dump zu erstellen mit ESPHOME?
Kann man eine falsche Baudrate ausschließen da Modbus CRC hat?
Kann man ausschließen das das Gerät unter weiteren Adressen erreichbar ist? Das ist doch unüblich oder?

Wie würdet ihr vorgehen? Adressen 1000 2000 3000 … testen?

Modell ist “Evolution Topline 9” mit full Inverter,

Wa lässt dich annehmen, dass dies eine Modbus Schnittstelle ist? Im Web findet sich nichts dazu…

Auf dem PCB steht RS 485_2 , an _1 hängt die Bedienung mit Wlan Krams. Wenn das standard Seriell wäre würde ich bestimmt nichts lesen können via Modbus. Das Board sieht so aus als ob es in verschieden Geräte geht. Ist natürlich die Frage ob die Firmware Modbus unterstützt.

Was sagt denn dein Lieferant dazu?

Bist Du mit der WP weitergekommen?
Ich habe eine “Evolution Baseline 9” und habe schon einiges probiert - aber das Ding will einfach nicht mit mir reden. Mit einem ESP und RS485-TTL Konverter bekomme ich mit dem ESPhome Template von Richard Stevens und 9600baud 8n1 viele “duplicate modbus commands”, aber keine sinnvollen Werte.
Fuer mich sieht das nach einem Protokollproblem aus … was hast Du denn eingestellt, dass Du Werte zurueckbekommst?

Hallo, nein ich habe nicht weiter getestet.

Ich habe wahllos Register gelesen, kam aber nicht viel sinnvolles zurück.
Sehr wenige Register lieferten Daten, die aber nicht interpretiert werden konnten

Meine Überlegung war, wenn was zurück kommt, ist es Modbus Protokoll.

Auch kam unter einer anderen ID nichts zurück.

Mein Setup:

# Setup Modbus #1 for
uart:
- id: uart_modbus
  tx_pin: 33
  rx_pin: 32
  baud_rate: 9600 #115200 #9600

modbus:
  id: modbus_1
  #flow_control_pin: 14
  #send_wait_time: 200ms
  uart_id: uart_modbus
  #setup_priority: -10

modbus_controller:
  - id: modbus_controller_1
    address: 0x01
    modbus_id: modbus_1
    command_throttle: 100ms
    setup_priority: -10
    update_interval: 10s

sensor:
  - platform: modbus_controller
    modbus_controller_id: modbus_controller_1
    name: "x0"
    register_type: holding
    address: 0
    unit_of_measurement: "x"
    value_type: U_WORD

 usw ...

Das ist quasi identisch zu meiner Config (ich nutze nur andere Pins vom ESP32).
Wenn ich als Gegenstelle zu dem ESP32 mit ESPhome und dem RS485-TTL Konverter einen Modbus-Simulator mit RS485-TTL Konverter haenge, dann funktioniert alles wie gedacht und fehlerfrei - sobald ich das Ganze aber an die Waermepumpe haenge (egal ob an den freien RS485-2 oder an den RS485-1 statt des WLAN Moduls), dann kommt nix Sinnvolles und jede Menge “duplicate modbus command” Fehler - also so, als wenn keine Gegenstelle vorhanden waere. Die Frage ist jetzt, ob das ein elektrisches (Pegel/Timing/…) oder ein logisches (UARTconfig/Protokol/…) Problem ist.

  • Was kam denn bei Dir zurueck?
  • Hast Du die Config aus dem Github-Link meiner anderen Mail probiert, oder bist Du nur Register fuer Register durchgegangen?
  • Hattest Du auch diese “duplicate modbus command” Fehler?