Home Assistant Modbus Einrichtung

Ja das Display hat die beschriebenen Klemmen sogar 2 also A u B als input und auch noch mal A u B als Output, so das ich das Prima in meinen bestehenden Bus einbinden kann. Hab auch in den Parametern geguckt, Adresse Baudrate usw. alles einstellbar. Mir fehlt nur die Parameterliste. Ich gehe davon aus, das HDG sich nicht extrem viele verschiedene Listen ausdenkt. Ich würde gern mal gucken, was da so kommt und als start hab ich gedacht hänge ich mich an eine Liste die funktioniert mal ran :)
 
@ktmexc, hättest du auch für mich die ModBus Tabelle? Ich habe eine Verbindung und lese das Holding Register aus. Ich bekomm Werte, aber keine Idee was was ist.
Beim InputRegister bekomm ich einen Fehler -> HDG weißt die anfrage ab
 

Anhänge

  • Screenshot 2025-06-13 100547.png
    Screenshot 2025-06-13 100547.png
    32,2 KB · Aufrufe: 13
Moin, Ich habe eine Frage: Wie kann ich in modbus.yaml mein Register editierbar machen? Bisher habe ich in einer Automatisierung die Aktion „modbus.write_register” benutzt. Wenn das Register jedoch als „number” definiert ist, brauche ich keine Automatisierung, sondern kann dem Register einen Wert im Template.yaml zuweisen.
Ich habe es so versucht

YAML:
#[261] Maximal Current Command
#This Register can be used to read and write the maximal current
    number:
      - platform: modbus_controller
        modbus_controller_id: my_modbus_hub
      - name: "max Strom"
        unique_id: whec_max_strom
        slave: 1
        address: 261
        scan_interval: 5
        input_type: holding
        device_class: current
        unit_of_measurement: A
        state_class: measurement
        scale: 0.1
        offset: 0
        precision: 1
        data_type: uint16

Ich bekomme aber eine Fehlermeldung beim Kompilieren.

FehlerNumber.png
 
Ich klink mich hier auch mal ein.
Hab nen HDG Euro 30 Kessel und möchte diesen auch via ESP32 in Home Assistent integrieren.

ESP32 ist nach Vorlage von User V01der aufgebaut, mit dem Unterschied das ich einen ESP32 mit Ethernet, Switch + Stromversorgung hinters HDG Display zwänge.
Das ganze bis auf den Switch kommt dann noch in ein schickes 3D Druck Gehäuse.
Bilder vom Aufbau stell ich dann hier ein.

Mein Problem ist aktuell das mir mein Versuchsaufbau keine Werte liefert.
Edit: Der Fehler sitzt an der Tastatur, Pinout von meinem WT32-ETH01 zu dem von V01der unterscheidet sich ja doch ein wenig.

Muss man die Externe Modbus Schnittstelle erst aktivieren? und wenn ja wie?
 
Zuletzt bearbeitet:
Hallo @wischi83 ,

nein aktivieren musst du sie nicht, aber die richtige Baudrate und Adresse musst du einstellen.
Falls du den "Techniker PIN" für den Kessel benötigst, gerne per PN
Baudrate und adresse geht aber auch über "Benutzer 2"

Lg
Anderl
 
Hallo @wischi83 ,

nein aktivieren musst du sie nicht, aber die richtige Baudrate und Adresse musst du einstellen.
Falls du den "Techniker PIN" für den Kessel benötigst, gerne per PN
Baudrate und adresse geht aber auch über "Benutzer 2"

Lg
Anderl
Hallo Anderl,

Das Angebot mit dem Techniker Pin nehm ich gerne an.
Leider kann ich dir aus Gründen der Forumsbeschrenkung für Neulinge keine PN senden.

Danke für seine Hilfe
 
Zuletzt bearbeitet:
Wie angekündigt, Infos von meinem Lösungsansatz.

Gehäuse ist minimalistisch ausgelegt, so das hauptsächlich die Bauteile an Ort und Stelle bleiben.
Dazu gibts noch einen Deckel der den ganzen Kabelsalat bändigt.

Werte kommen sauber rein, ESP Chip Temperatur wird zusätzlich mit überwacht um eventuell dadurch auftretende Probleme früh zu erkennen.

Für alle die es nachbauen möchten:

Verbaute Komponenten:
  1. ESP32 ETH01
  2. Waveshare TTL to RS485
  3. DC/DC Wandler 5-30V zu 5V/3A (Versorgung ESP32 und 100Mbit Switch)
Danke geht an User ktmexc für seinen Input!🍻
YAML:
esphome:
  name: "hdgeuro30"
# Example configuration entry
esp32:
  board: esp32dev
  framework:
    type: arduino

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO0_IN
  phy_addr: 1
  power_pin: GPIO16

  # Optional manual IP
  manual_ip:
    static_ip: 192.168.178.49
    gateway: 192.168.178.1
    subnet: 255.255.255.0

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxx"

#Konfiguration für Modbus-UART
uart:
  tx_pin: GPIO17
  rx_pin: GPIO5
  baud_rate: 19200

modbus:
  id: modbus1
  send_wait_time: 100ms

modbus_controller:
  - id: modbus_device
    address: 0x1
    modbus_id: modbus1
    update_interval: 60s
    command_throttle: 50ms
    setup_priority: -10

sensor:
  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Puffer 1 oben"
    register_type: holding
    address: 210
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Puffer 1 mitte"
    register_type: holding
    address: 212
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Puffer 1 unten"
    register_type: holding
    address: 214
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Pufferladegrad 1"
    register_type: holding
    address: 215
    unit_of_measurement: "%"
    value_type: S_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Kesselvorlauf"
    register_type: holding
    address: 103
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Kesselrucklauf"
    register_type: holding
    address: 105
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Abgastemperatur"
    register_type: holding
    address: 97
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Restsauerstoff"
    icon: 'mdi:percent'
    register_type: holding
    address: 91
    unit_of_measurement: "%"
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      multiply: 0.1
    lambda: !lambda |-
      if((x > 200.0)||(x < -200)){
        return 200.0;
      }
      else{
        return x;
      }

  - platform: internal_temperature
    name: "ESP32 Temperatur HDG"

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Betriebsphase"
    register_type: holding
    address: 71
    unit_of_measurement: ""
    value_type: S_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Wartungsmeldung"
    register_type: holding
    address: 20
    unit_of_measurement: ""
    value_type: S_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Restlaufzeit bis Wartung"
    register_type: holding
    address: 21
    unit_of_measurement: "h"
    value_type: S_WORD

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Freilufttemperatur"
    register_type: holding
    address: 40
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature
    state_class: measurement

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Heizkreis 1 Vorlauf"
    register_type: holding
    address: 286
    unit_of_measurement: "°C"
    value_type: S_WORD
    device_class: temperature

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Brauchwasser oben"
    register_type: holding
    address: 485
    unit_of_measurement: "°C"
    value_type: S_WORD 
    device_class: temperature

binary_sensor:
  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Heizkreispumpe 1"
    register_type: holding
    address: 284
    bitmask: 0x2000

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Netzpumpe"
    register_type: holding
    address: 434
    bitmask: 0x2000

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Brauchwasserpumpe"
    register_type: holding
    address: 484
    bitmask: 0x2000

  - platform: modbus_controller
    modbus_controller_id: modbus_device
    name: "Kesselpumpe"
    register_type: holding
    address: 79
    bitmask: 0x2000

20250919_094128.jpg20250919_094114.jpg20250918_200354.jpg
 
Zuletzt bearbeitet:

Zurzeit aktive Besucher

Neueste Beiträge

Letzte Anleitungen

Statistik des Forums

Themen
7.127
Beiträge
69.456
Mitglieder
7.536
Neuestes Mitglied
Mario2025
Zurück
Oben