M-Tec Wärmepumpe Modbus TCP Keba

Hallo Leute,

ich versuche mit meiner M-Tec Wärmepumpe eine Verbindung mit Modbus herzustellen, aber ich weiß nicht so richtig wie ich vorgehen muss. Ich habe mir einiges durchgelesen, aber das bringt mich alles nicht weiter. Die Wärmepumpe hat eine Keba Platine und nutzt auch das System.
Kann mich jemand in die richtige Richtung schubsen?

Gruß
Keen

Nachtrag:
Vom Installateur habe ich eine Excel Tabelle mit den ganzen Sensoren für Modbus bekommen.
Oder bin ich hier falsch?

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Versuch es mal mit Sunsec:
https://github.com/CJNE/ha-sunspec

Wie muss ich da vorgehen? ich habe es installiert, aber ich sehe nirgends Einträge die darauf deuten das ich es installiert habe.

Unter Integrationen hinzufügen kann ich SunSpec auswählen, im folgenden Dialog kann ich den Hostnamen und den Port eintragen. Es kann aber keine Verbindung aufgebaut werden.

Hab’s nun hinbekommen, es waren lediglich ein paar Zeilen Code nötig die ich mir im Netz zusammen gesucht habe.

1 „Gefällt mir“

Hej Keen, was hast Du denn da so an Code entsprechend eingefügt? Ich möchte auch meinen Energy Smart und die M-TEC Wärmepumpe hinzufügen. Danke!

Hier meine Einträge in der modbus.yaml
unter host kommt die IP deiner Wärmepumpe und bei port die 502
Dies ist erstmal ein Anfang, man kann noch sehr viel mehr Werte auslesen, das erweitere ich mal wenn ich mehr Zeit habe.

  - name: WP_M-Tec
    type: tcp
    host: !secret modbus_wp_ip
    port: !secret modbus_wp_port
    sensors:
      - name: WP_M-Tec_aktuell_eingestellte_Raumtemperatur
        data_type: uint16
        slave: 1
        address: 2
        device_class: temperature
        scan_interval: 15
        scale: 0.1
        precision: 1
        state_class: measurement
        unique_id: eingestellte_Raumtemperatur
        unit_of_measurement: °C
      - name: WP_M-Tec_Warmwasserspeicher_Temperatur
        data_type: uint16
        slave: 1
        address: 401
        device_class: temperature
        scale: 0.1
        precision: 1
        state_class: measurement
        unique_id: Warmwasserspeicher_Temperatur
        unit_of_measurement: °C
      - name: WP_M-Tec_gesamte_Heizenergie
        data_type: uint16
        slave: 1
        address: 701
        device_class: power
        scale: 1
        precision: 1
        state_class: measurement
        unique_id: gesammte_Heizenergie
        unit_of_measurement: kWh
      - name: WP_M-Tec_Heizleistung
        data_type: uint16
        slave: 1
        address: 706
        device_class: power
        scale: 0.001
        precision: 2
        state_class: measurement
        unique_id: Heizleistung
        unit_of_measurement: kW
      - name: WP_M-Tec_Stromverbrauch
        data_type: uint16
        slave: 1
        address: 707
        device_class: power
        scale: 1
        precision: 1
        unit_of_measurement: W
        state_class: measurement
        unique_id: Stromverbrauch
      - name: WP_M-Tec_Sole_Eingangstemperatur
        data_type: uint16
        slave: 1
        address: 708
        device_class: temperature
        scan_interval: 15
        scale: 0.1
        precision: 1
        state_class: measurement
        unique_id: Sole_Eingangstemperatur
        unit_of_measurement: °C
      - name: WP_M-Tec_Sole_Ausgangstemperatur
        data_type: uint16
        slave: 1
        address: 709
        device_class: temperature
        scan_interval: 15
        scale: 0.1
        precision: 1
        state_class: measurement
        unique_id: Sole_Ausgangstemperatur
        unit_of_measurement: °C
      - name: WP_M-Tec_Rücklauftemperatur
        data_type: uint16
        slave: 1
        address: 710
        device_class: temperature
        scale: 0.1
        precision: 1
        state_class: measurement
        unique_id: Rücklauftemperatur
        unit_of_measurement: °C
2 „Gefällt mir“

@Keen: vielen Dank für die gute Starthilfe! Klappt super.
Wäre es aber nicht besser die Sole Ein-/Ausgangstemperaturen in int16 einzusammeln? Die Temperaturen können ja auch mal negativ (Minusgrade) werden.

Minusgrade erreichen sie bei mir nicht, ich habe eine Tiefenbohrung

Interessant! Ich nutze PVT Kollektoren. Damit geht Sole auch im Minusbereich. Musste deshalb auf int16 umstellen. Funktioniert aber prima dein Modbus yaml! Vielen Dank!

Servus Keen,

Ich bekomme morgen auch die M-Tec Wärmepumpe und würde das auch gerne so machen.
Welchen Harware Adapter hast du für die Modbus Schnittstelle genommen?
Danke
Thomas

Die Heizung ist lediglich mit einem Ethernet Kabel verbunden. Sonst keine Adapter oder ähnliches.

1 „Gefällt mir“

Hallo,

wenn es euch Interessiert, ich habe eine Integration für die M-TEC Heizung erstellt:

Super, werde ich bei Gelegenheit mal ausprobieren!

@superbox-dev Ich habe die Integration heute ohne Probleme installiert und in Betrieb genommen. Danke für die tolle Arbeit, super Ergebnis und Funktionalität!

Ich werde bei mir eine Zeitlang parallel laufen lassen (müssen), da ich vor einem halben Jahr per Modbus vieles eingerichtet hatte. Mal sehen, was jetzt wie final zum Einsatz und Nutzung kommt,

Vielen Dank für Deine Arbeit!

Danke, freut mich das dir die Integration gefällt. Sollten irgendwelche Sensoren/Entitäten noch fehlen kannst du dich gerne melden.

1 „Gefällt mir“

Hallo zusammen,

ich habe nun eine Home Assistant Modbus Integration für Wärmepumpen mit einer Keba Steuerung (M-Tec) implementiert, da ich noch ein paar zusätzliche Sensorwerte benötige. Ich denke es ist eine gute Ergänzung zu der Keenergy Integration.

Welche Sensorwerte fehlen dir denn? Ich kann dieser gerne noch ergänzen.

Es wären zB noch die Werte des Pufferspeichers interessant. :grinning_face:

Ja, diesen Wunsch hatte bereits @Keen und kommt mit dem nächsten Release. In der Beta-Version v1.5.0b3 kann man das bereits testen.

1 „Gefällt mir“

ich habe eine Neura DX R410a WP aus 2016

Steuerung KEBA AP420

hab mir das selbst zusammen gebaut - falls es jemand weiterhilft

- name: neura_ap420
  type: tcp
  host: 192.168.1.xxx
  port: 502
  delay: 1
  sensors:
 ####Heizkreis
    - name: WP Heizkreis 1 Raumtemperatur
      unique_id: wp_heizkreis1_raumtemperatur
      slave: 1
      input_type: holding
      address: 0
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Heizkreis 1 Luftfeuchtigkeit
      unique_id: wp_heizkreis1_luftfeuchtigkeit
      slave: 1
      input_type: holding
      address: 1
      scan_interval: 30
      scale: 1
      precision: 0
      device_class: humidity
      state_class: measurement
      unit_of_measurement: "%"

    - name: WP Heizkreis 1 Vorlauf Soll
      unique_id: wp_heizkreis1_vorlauf_soll
      slave: 1
      input_type: holding
      address: 2
      scan_interval: 60
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Heizkreis 1 Waermeanforderung
      unique_id: wp_heizkreis1_waermeanforderung
      slave: 1
      input_type: holding
      address: 8
      scan_interval: 30
      scale: 1
      precision: 0
      state_class: measurement
      unit_of_measurement: state

    - name: WP Externe Waermeanforderung
      unique_id: wp_externe_waermeanforderung
      slave: 1
      input_type: holding
      address: 12
      scan_interval: 30
      scale: 1
      precision: 0
      unit_of_measurement: state

###Kältekreis
    - name: WP Vorlauf Temperatur
      unique_id: wp_vorlauf_temperatur
      slave: 1
      input_type: holding
      address: 700
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Ruecklauf Temperatur
      unique_id: wp_ruecklauf_temperatur
      slave: 1
      input_type: holding
      address: 701
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Kompressor Ausschalttemperatur
      unique_id: wp_kompressor_ausschalttemperatur
      slave: 1
      input_type: holding
      address: 702
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Kompressor Einschalttemperatur
      unique_id: wp_kompressor_einschalttemperatur
      slave: 1
      input_type: holding
      address: 703
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Verdampfung Temperatur
      unique_id: wp_verdampfung_temperatur
      slave: 1
      input_type: holding
      address: 706
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Ueberhitzung IST Temperatur
      unique_id: wp_ueberhitzung_ist_temperatur
      slave: 1
      input_type: holding
      address: 707
      scan_interval: 30
      scale: 0.1
      precision: 1
      device_class: temperature
      state_class: measurement
      unit_of_measurement: °C

    - name: WP Niederdruck
      unique_id: wp_niederdruck
      slave: 1
      input_type: holding
      address: 709
      scan_interval: 30
      scale: 0.1
      precision: 2
      state_class: measurement
      unit_of_measurement: bar

###Betrieb
    - name: WP Verdichter Status
      unique_id: wp_verdichter_status
      slave: 1
      input_type: holding
      address: 714
      scan_interval: 15
      scale: 1
      precision: 0
      unit_of_measurement: state

    - name: WP Quelle Pumpe Status
      unique_id: wp_quelle_pumpe_status
      slave: 1
      input_type: holding
      address: 715
      scan_interval: 15
      scale: 1
      precision: 0
      unit_of_measurement: state

    - name: WP Betriebsmodus
      unique_id: wp_betriebsmodus
      slave: 1
      input_type: holding
      address: 1500
      scan_interval: 15
      scale: 1
      precision: 0
      unit_of_measurement: state

  switches:
    - name: wp_Betrieb_ONOFF
      slave: 1
      address: 1500
      write_type: holding
      command_on: 2
      command_off: 0
      verify:
        input_type: holding
        address: 1500
        state_on: 2
        state_off: 0