RS485 aus einem Regler einlesen

Hallo,
Ich suche eine Möglichkeit Daten aus einem Regler auszulesen.

Der Regler hat eine RS485 Schnittstelle die ähnlich Modbus RTU funktioniert.

Wie könnte man das am einfachsten realisieren, das man die Daten auf Anforderung über WLAN in Homeassistant einlesen kann?
Esphome hat ja eine Möglichkeit, hat das schon einmal jemand gemacht?
Grüße HaJo

Ja, ich habe meine Wärmepumpe so in HA integriert.

Ein Waveshare RS232/485 im LAN angemeldet, auf Modbus konfiguriert und dann einige Zeilen config.yaml gebaut. Dann waren alle für mich wichtigen Werte im HA verfügbar.

Ich habe was Bastler-freundliches aber robust verbautes gesucht, da ich den Verteiler für die Wärmepumpe nicht jede Woche öffnen wollte. Aber man kann natürlich auch einen ESP32 mit einem Modbus-Adapter verheiraten und über ESPHome eine fertig verfügbare Konfiguration flashen. Dann kann man schon mal drauf los basteln, programmieren und testen. Ich wollte in meinem Fall ein Metallgehäuse, PoE Versorgung, Hutschienen-Montage und robuste Stecker.

Hallo, danke für die Info.

Das klingt interessant. Wo findet man denn info dazu wie das in der Config zu handeln ist?

Grüße

HaJo

Puh, also meine eigene Lernkurve war da recht steil, weil ich komplett neu in HA war und gleich mal ein nicht unterstütztes Gerät mit einem nur in yaml implementierten Bus anbinden wollte. Also ich versuche das mal zusammen zu berommen:

Quelle 1: Modbus - Home Assistant
Dann habe ich viel gesucht, was andere mit ihren Wärmepumpen so getrieben haben, dazu gibt es einen langen Thread hier irgendwo, suche mal nach “AWARMA”.

Die yaml Config sieht so aus, dass du zuerst das Device beschreibst und dann seine Fähigkeiten.
Der Protokolltyp steht bei mir auf tcp, das Waveshare Modul macht daraus rtu. Aber schau mal in den Link oben, da stehen die anderen Optionen. Ich habe dann einfach mal probiert, bis es lief. Das Waveshare-Modul funktioniert inzwischen auch in komplexen Netz-Strukturen sehr gut.

- name: waermepumpe
  type: tcp
  host: 192.168.80.10
  port: 502
  delay: 10
  timeout: 1
  message_wait_milliseconds: 100

  sensors:
    - name: p00_power_on
      unique_id: wp_p00_power_on
      slave: 1
      address: 4096
      input_type: holding

    - name: "P59 Min Pumpenleistung"
      unique_id: wp_p59_min_pump_speed
      unit_of_measurement: "%"
      address: 8249
      slave: 1
      scale: 10.0
      input_type: holding
      scan_interval: 600

    - name: "P61 Min Wasserfluss"
      unique_id: wp_p61_min_waterflow
      unit_of_measurement: "l/min"
      slave: 1
      address: 8251
      scale: 1
      input_type: holding
      scan_interval: 600