Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. IDM Wärmepumpe per Modbus schreiben und lesen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    793

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

IDM Wärmepumpe per Modbus schreiben und lesen

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
2 Beiträge 1 Kommentatoren 2.0k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Magnus TaddaM Offline
    Magnus TaddaM Offline
    Magnus Tadda
    schrieb am zuletzt editiert von Magnus Tadda
    #1

    Hallo zusammen,
    ich schreibe euch hier ne kleine Anleitung, da ich hier im Forum nur ganz schwer an all die Fakten rangekommen bin.
    Außerdem musste ich auch noch andere Quellen anzapfen...
    Worum gehts: Ich habe eine IDM Wärmepumpe mit Navigator 2.0 und auch die zugehörige Steuerung mit Thermostaten im Dachgeschoss.
    Einen Umbau der Heizung im OG und EG ergaben bei mir jetzt HmIP-Geräte.
    Somit hatte ich aus dem OG und EG keine Heizungsanforderung mehr, da die Wärmepumpe diese Räume nicht mehr sieht.
    Im iobroker kann man das ganz gut zusammen bringen und auch noch über ein schönes Display steuern.

    Wie bin ich vorgegangen:

    1. IDM Wärmepumpe erst mal auf Modbus umstellen.
      Das kann man in der verlinkten Anleitung ganz gut nachlesen unter Punkt 3.1: Modbus TCP auf "Ein" schalten.
      Dafür benötigt ihr noch den Fachmanncode (4 stellig das heutige Datum-> Achtung, nun könnt ihr einiges umstellen!! Bitte vorsichtig sein.)
      link text
      Dieses Dokument ist auch nachher noch für die Register ganz wichtig!
      1.1 Darauf achten, dass eure Wärmepumpe immer die gleiche IP hat. Bei mir steuert meine Fritzbox das. Oder direkt in der Wärmepumpe umstellen. Punkt 2.3 von IDM
    2. Räume mit Modbus TCP einrichten nach der Anleitung Punkt 3.3 von IDM.
    3. iobroker Modbus und Javascript intstallieren, falls nicht vorhanden
    4. Modbus Einstellungen unter Instanzen:
      eedfea0b-5e5b-4feb-a633-2e71cd8110c2-image.png
      3fb43789-5bff-4bf6-a4fc-29ef83718ef8-image.png
      67b47846-8aa4-4364-b74a-b65c3afe0cd1-image.png
    5. Holding-Register füllen:
      0c257bc6-aab4-409e-91cf-b746270e1130-image.png
      Die ersten Räume sind die Räume direkt aus der IDM Steuerung. Die werden nur gelesen (Haken bei Abfrage)
      Dann kommen die Räume von den HMIP Geräten:
      eeeb8d94-3f59-41ab-aa4e-b23ef6c3ab87-image.png
      Hier habe ich bei den Werten die ich auf die Wärmepumpe schreiben will noch zusätzlich einen Haken bei WP (Schreibimpuls) gesetzt.
      Alles speicher und weiter mit Javascript.
    6. HMIP in iobroker einrichten -> Das muss jeder selbst wissen und geht relativ einfach. ;)
    7. Javascipt schreiben mit Blocky:
      4e4ab908-6a25-4a9e-871a-5fec482fad1e-image.png
      zum Importieren des Scripts, hier den Code:
      Den müsst ihr dann auf eure Objekte usw. abgleichen.
    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on_ext" id="8(,(mm$c;lDY@xNwhmpn" x="-387" y="38">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="1tfnl+kNn**Uku~@f4(.">
            <field name="oid">hmip.0.devices.3014F711A000265D898974EB.channels.1.actualTemperature</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="control" id="=:h+NH(Y_i7FKU!0CCs/">
            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
            <field name="OID">modbus.0.holdingRegisters.2037_Temp__OGSchlafenMod</field>
            <field name="WITH_DELAY">FALSE</field>
            <value name="VALUE">
              <block type="get_value_var" id="~@5QUQq~NwDuKLKC:lrF">
                <field name="ATTR">val</field>
                <value name="OID">
                  <shadow type="field_oid" id=";k1vg#n)rVF*!ywPYYp|">
                    <field name="oid">hmip.0.devices.3014F711A000265D898974EB.channels.1.actualTemperature</field>
                  </shadow>
                </value>
              </block>
            </value>
          </block>
        </statement>
      </block>
    </xml>
    

    Und zwar habe ich hier den Trigger "Falls Objekte..." verwendet.
    Ganz wichtig ist hier die Auslösung durch "STEUERE"!!!

    Zur Erklärung:
    Steuere sendet hier an den Modbusadapter ein Signal im iobroker. In diesem Fall die Temperatur.
    Der Adapter gibt dann das Signal weiter an die IDM WP und trägt in das Register die Temperatur.
    Danach kommt über die Abfrage des Modbusadapter vom iobroker der Registereintrag der Wärmepumpe wieder zurück.

    Dadurch, dass ich steuern gewählt habe, wird das Signal nur kurz unter den Objekten angezeigt (also im iobroker). Danach wird wieder eine Null gesetzt/angezeigt. Der Wert bleibt jedoch in der Wärmepumpe und muss dann wieder abgerufen werden. Daher die 2 Haken im Holding-Register für Abfrage und Schreiben.
    Mit aktualisieren bleibt der Wert in den Objekten drin, wird aber nicht an die WP ins Register übertragen. Keine Ahnung warum.

    Anders habe ichs nicht hin bekommen und auch ganz schön lange benötigt, bis ich das als Modbus- und iobroker-Neuling verstanden habe...
    Falls es noch jemand einfacher kann, bitte gerne melden!

    Ich werde jetzt noch die Feuchtigkeit und weitere Werte pflegen und übertragen, so dass meine Steuerung komplett ist.

    Kleiner Hinweis: Die Raumsolltemperaturen (Eco, Normal, Komfort) sollten möglichst direkt an der
    Navigatorregelung eingestellt werden und auch nicht ständig geändert werden, da bei
    Änderungen die Zonenmodule einen automatischen Neustart durchführen und damit auch die
    Berechnung für die Bewirtschaftung der Räume immer wieder von vorne beginnt!

    Viel Spaß damit und gebt mir gerne eine Rückmeldung...

    Magnus TaddaM 1 Antwort Letzte Antwort
    2
    • Magnus TaddaM Magnus Tadda

      Hallo zusammen,
      ich schreibe euch hier ne kleine Anleitung, da ich hier im Forum nur ganz schwer an all die Fakten rangekommen bin.
      Außerdem musste ich auch noch andere Quellen anzapfen...
      Worum gehts: Ich habe eine IDM Wärmepumpe mit Navigator 2.0 und auch die zugehörige Steuerung mit Thermostaten im Dachgeschoss.
      Einen Umbau der Heizung im OG und EG ergaben bei mir jetzt HmIP-Geräte.
      Somit hatte ich aus dem OG und EG keine Heizungsanforderung mehr, da die Wärmepumpe diese Räume nicht mehr sieht.
      Im iobroker kann man das ganz gut zusammen bringen und auch noch über ein schönes Display steuern.

      Wie bin ich vorgegangen:

      1. IDM Wärmepumpe erst mal auf Modbus umstellen.
        Das kann man in der verlinkten Anleitung ganz gut nachlesen unter Punkt 3.1: Modbus TCP auf "Ein" schalten.
        Dafür benötigt ihr noch den Fachmanncode (4 stellig das heutige Datum-> Achtung, nun könnt ihr einiges umstellen!! Bitte vorsichtig sein.)
        link text
        Dieses Dokument ist auch nachher noch für die Register ganz wichtig!
        1.1 Darauf achten, dass eure Wärmepumpe immer die gleiche IP hat. Bei mir steuert meine Fritzbox das. Oder direkt in der Wärmepumpe umstellen. Punkt 2.3 von IDM
      2. Räume mit Modbus TCP einrichten nach der Anleitung Punkt 3.3 von IDM.
      3. iobroker Modbus und Javascript intstallieren, falls nicht vorhanden
      4. Modbus Einstellungen unter Instanzen:
        eedfea0b-5e5b-4feb-a633-2e71cd8110c2-image.png
        3fb43789-5bff-4bf6-a4fc-29ef83718ef8-image.png
        67b47846-8aa4-4364-b74a-b65c3afe0cd1-image.png
      5. Holding-Register füllen:
        0c257bc6-aab4-409e-91cf-b746270e1130-image.png
        Die ersten Räume sind die Räume direkt aus der IDM Steuerung. Die werden nur gelesen (Haken bei Abfrage)
        Dann kommen die Räume von den HMIP Geräten:
        eeeb8d94-3f59-41ab-aa4e-b23ef6c3ab87-image.png
        Hier habe ich bei den Werten die ich auf die Wärmepumpe schreiben will noch zusätzlich einen Haken bei WP (Schreibimpuls) gesetzt.
        Alles speicher und weiter mit Javascript.
      6. HMIP in iobroker einrichten -> Das muss jeder selbst wissen und geht relativ einfach. ;)
      7. Javascipt schreiben mit Blocky:
        4e4ab908-6a25-4a9e-871a-5fec482fad1e-image.png
        zum Importieren des Scripts, hier den Code:
        Den müsst ihr dann auf eure Objekte usw. abgleichen.
      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on_ext" id="8(,(mm$c;lDY@xNwhmpn" x="-387" y="38">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="1tfnl+kNn**Uku~@f4(.">
              <field name="oid">hmip.0.devices.3014F711A000265D898974EB.channels.1.actualTemperature</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="control" id="=:h+NH(Y_i7FKU!0CCs/">
              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
              <field name="OID">modbus.0.holdingRegisters.2037_Temp__OGSchlafenMod</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE">
                <block type="get_value_var" id="~@5QUQq~NwDuKLKC:lrF">
                  <field name="ATTR">val</field>
                  <value name="OID">
                    <shadow type="field_oid" id=";k1vg#n)rVF*!ywPYYp|">
                      <field name="oid">hmip.0.devices.3014F711A000265D898974EB.channels.1.actualTemperature</field>
                    </shadow>
                  </value>
                </block>
              </value>
            </block>
          </statement>
        </block>
      </xml>
      

      Und zwar habe ich hier den Trigger "Falls Objekte..." verwendet.
      Ganz wichtig ist hier die Auslösung durch "STEUERE"!!!

      Zur Erklärung:
      Steuere sendet hier an den Modbusadapter ein Signal im iobroker. In diesem Fall die Temperatur.
      Der Adapter gibt dann das Signal weiter an die IDM WP und trägt in das Register die Temperatur.
      Danach kommt über die Abfrage des Modbusadapter vom iobroker der Registereintrag der Wärmepumpe wieder zurück.

      Dadurch, dass ich steuern gewählt habe, wird das Signal nur kurz unter den Objekten angezeigt (also im iobroker). Danach wird wieder eine Null gesetzt/angezeigt. Der Wert bleibt jedoch in der Wärmepumpe und muss dann wieder abgerufen werden. Daher die 2 Haken im Holding-Register für Abfrage und Schreiben.
      Mit aktualisieren bleibt der Wert in den Objekten drin, wird aber nicht an die WP ins Register übertragen. Keine Ahnung warum.

      Anders habe ichs nicht hin bekommen und auch ganz schön lange benötigt, bis ich das als Modbus- und iobroker-Neuling verstanden habe...
      Falls es noch jemand einfacher kann, bitte gerne melden!

      Ich werde jetzt noch die Feuchtigkeit und weitere Werte pflegen und übertragen, so dass meine Steuerung komplett ist.

      Kleiner Hinweis: Die Raumsolltemperaturen (Eco, Normal, Komfort) sollten möglichst direkt an der
      Navigatorregelung eingestellt werden und auch nicht ständig geändert werden, da bei
      Änderungen die Zonenmodule einen automatischen Neustart durchführen und damit auch die
      Berechnung für die Bewirtschaftung der Räume immer wieder von vorne beginnt!

      Viel Spaß damit und gebt mir gerne eine Rückmeldung...

      Magnus TaddaM Offline
      Magnus TaddaM Offline
      Magnus Tadda
      schrieb am zuletzt editiert von
      #2

      @magnus-tadda
      Ich habe das Skipt etwas umgearbeitet. Dann passt es für mich besser:
      472893ea-58ef-4bfa-9cc6-42e1fb0dcfaa-image.png

      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate
      FAQ Cloud / IOT
      HowTo: Node.js-Update
      HowTo: Backup/Restore
      Downloads
      BLOG

      727

      Online

      32.6k

      Benutzer

      82.0k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe