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. Hardware
  4. Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    501

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome

Geplant Angeheftet Gesperrt Verschoben Hardware
keba keenergy m-tec modbus
149 Beiträge 27 Kommentatoren 31.3k Aufrufe 24 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.
  • Alexander SontingerA Alexander Sontinger

    kleines Update von mir:
    habe nunmal eine Modbus-Verbindung zusammengebracht und ein paar Modbus-Werte identifizieren können.

    Habe dazu das NTouch vorsichtig geöffnet (siehe dieses Video) und ein Patch-Kabel eingesteckt. NTouch war auf DHCP eingestellt, somit habe ich dessen IP schnell herausgefunden. Im Browser die IP eingegeben und da kann man sich das Java-Interface-Applet runterladen. Hat man das zum laufen gebracht kann man sich im LAN dann mit der IP auf der Wärmepumpe mit den hinterlegten Usern anmelden.

    In meinem Fall ist der admin-User:

    • user: neura
    • pw: aruen1234 (<- von hinten neura - wie kreativ O_o)

    mit diesem User kann ich alles einstellen/einsehen.

    Tool zum Modbus-Verbindung auf PORT 502 // Slave 1 herstellen habe ich die Software Modbus-Poll genommen. Anbei meine Werte die sich eigentlich NICHT wirklich mit den Modbus-Listen hier in diesem Thread decken.

    86f970db-b7e0-4ce8-ab74-86a25683a388-grafik.png

    Ich habe

    • Wärmepumpe Neura D14EuC - 14KW
    • Keba AP420 NTouch Bedienpaneel

    Meine Wärmepumpe heizt direkt in die Fussbodenheizung rein - ohne Puffer.

    Was ich erreichen möchte:
    Wärmepumpe nicht auf Automatik-Betrieb fahren sondern bei Bedarf über einen Modbus-schreibenden Wert ein/ausschalten. Wenn mir anhand meiner Daten evtl. jemand mitteilen könnte wie ich das Ding extern anfordern kann wäre mir sehr geholfen.

    Neura: gibts nimmer
    M-TEC: Anfragen werden leider nicht beantwortet
    Keba: sie sind kein Reseller? Ja die Daten übers AP420 haben wir schon. Ist auch schon ein altes Produkt und Auslaufmodell - aber wir geben sie trotzdem nicht raus...da könnte ja jeder kommen...

    Danke

    Alexander SontingerA Offline
    Alexander SontingerA Offline
    Alexander Sontinger
    schrieb am zuletzt editiert von
    #131

    @alexander-sontinger habs herausgefunden, ich schreibe einfach über Adresse 1500 den Betriebsmodus von 2 (Automatik) auf 0 (Standby) - und dass über mein Smart Home-System

    mfg

    1 Antwort Letzte Antwort
    1
    • S Offline
      S Offline
      Sepp 1
      schrieb am zuletzt editiert von
      #132

      Hallo, ich habe seit ca 1 Jahr eine M-Tec WPLK618 in Betrieb mit PV. Die PV Überschuss-Regelung sollte über einen zusätzlichen Zähler, der S0-Impuls übermittelt funktionieren. Dies tut es aber nicht. Die Platine des IM110 wurde schon getauscht und auch der S0-Impuls Zähler. Die Einstellung auch schon oft geändert. Aber es wird nichts angezeigt, geregelt.
      Vor der WP hatte ich bereits den Puffer und diesen mit 9kW Heizstab mit PV-Überschuss (Homematic Script) betrieben. Dies habe ich weiterhin. Letztes Jahr habe ich die WP dann manuell bei Überschuss die Soll-Temp des WW und des Puffers erhöht und wenn ich es nicht vergessen habe wieder runtergeregelt. Nun habe ich seit ein paar Wochen mit Hilfe des ModBus TCP Interface eine einfache Möglichkeit die ModBus Register der WP/KEBA Steuerung zu ändern und ändere nun einfach die Soll-Temp bei PV Überschuss und erhöhe die Temp des FußbodenHeizkreises. Dies funktioniert soweit.
      Nun möchte ich aber auch die PV Überschuss Regelung der Keba Steuerung nutzen, da die ja (hoffentlich) auch Drehzahl/Leistung an den PV-Überschuss anpasst.
      Ich habe den PV-Überschuss/Zähler: "Module Type" auf "virtual" gestellt.

      Nun mein Fragen:
      -wie oft (in welchen Abständen) muss ich den PV Überschuss in das Register 1000 schreiben?
      Ich teste gerade, aber ich erkenne derzeit kein Auswirkungen in der Anzeige noch in der Regelung. Sehe ich in den PV Panels etwas dazu?

      -kann ich auch die externe Wärmequelle ansteuern über den Modbus?
      Ich erkenne auch nicht wie die ext Wärmequelle zu regeln ist. Wenn ich diese auf "Ein" setze, dann schaltet die sofort ein, sobald Wärmeanforderung vorhandne ist, unhabängig, wass ich in Startkriterien, Vorlauf setze.
      Kann mir hier ein Licht ins Dunkel bringen.
      Leider finde ich keine "Service" Doku zur Keba

      Meine Anlage: PV 20 kWp (ca 15 14 kWp Süd, der Rest Ost/West od beschattet), 1000 l Schichtenspeicher, 3x3 kW Heizstab - Regelung über Script in der Homematic PV Überschuss, alte GasBrennwert noch vorhanden (lasse ich bei hoher Luftfeuchte über 92% und unter 1°C und bei unter -6°C laufen; schaltet Homematic automatisch dazu)

      A S 2 Antworten Letzte Antwort
      0
      • S Sepp 1

        Hallo, ich habe seit ca 1 Jahr eine M-Tec WPLK618 in Betrieb mit PV. Die PV Überschuss-Regelung sollte über einen zusätzlichen Zähler, der S0-Impuls übermittelt funktionieren. Dies tut es aber nicht. Die Platine des IM110 wurde schon getauscht und auch der S0-Impuls Zähler. Die Einstellung auch schon oft geändert. Aber es wird nichts angezeigt, geregelt.
        Vor der WP hatte ich bereits den Puffer und diesen mit 9kW Heizstab mit PV-Überschuss (Homematic Script) betrieben. Dies habe ich weiterhin. Letztes Jahr habe ich die WP dann manuell bei Überschuss die Soll-Temp des WW und des Puffers erhöht und wenn ich es nicht vergessen habe wieder runtergeregelt. Nun habe ich seit ein paar Wochen mit Hilfe des ModBus TCP Interface eine einfache Möglichkeit die ModBus Register der WP/KEBA Steuerung zu ändern und ändere nun einfach die Soll-Temp bei PV Überschuss und erhöhe die Temp des FußbodenHeizkreises. Dies funktioniert soweit.
        Nun möchte ich aber auch die PV Überschuss Regelung der Keba Steuerung nutzen, da die ja (hoffentlich) auch Drehzahl/Leistung an den PV-Überschuss anpasst.
        Ich habe den PV-Überschuss/Zähler: "Module Type" auf "virtual" gestellt.

        Nun mein Fragen:
        -wie oft (in welchen Abständen) muss ich den PV Überschuss in das Register 1000 schreiben?
        Ich teste gerade, aber ich erkenne derzeit kein Auswirkungen in der Anzeige noch in der Regelung. Sehe ich in den PV Panels etwas dazu?

        -kann ich auch die externe Wärmequelle ansteuern über den Modbus?
        Ich erkenne auch nicht wie die ext Wärmequelle zu regeln ist. Wenn ich diese auf "Ein" setze, dann schaltet die sofort ein, sobald Wärmeanforderung vorhandne ist, unhabängig, wass ich in Startkriterien, Vorlauf setze.
        Kann mir hier ein Licht ins Dunkel bringen.
        Leider finde ich keine "Service" Doku zur Keba

        Meine Anlage: PV 20 kWp (ca 15 14 kWp Süd, der Rest Ost/West od beschattet), 1000 l Schichtenspeicher, 3x3 kW Heizstab - Regelung über Script in der Homematic PV Überschuss, alte GasBrennwert noch vorhanden (lasse ich bei hoher Luftfeuchte über 92% und unter 1°C und bei unter -6°C laufen; schaltet Homematic automatisch dazu)

        A Offline
        A Offline
        antfab
        schrieb am zuletzt editiert von antfab
        #133

        @sepp-1 said in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

        -wie oft (in welchen Abständen) muss ich den PV Überschuss in das Register 1000 schreiben?
        Ich teste gerade, aber ich erkenne derzeit kein Auswirkungen in der Anzeige noch in der Regelung. Sehe ich in den PV Panels etwas dazu?

        Ich schreibe via Modbus alle 5s in's Register 1000, das sieht dann so aus im Interface:
        Screenshot 2025-03-29 073134.jpg Screenshot 2025-03-29 072538_crop.jpg

        -kann ich auch die externe Wärmequelle ansteuern über den Modbus?
        Ich erkenne auch nicht wie die ext Wärmequelle zu regeln ist. Wenn ich diese auf "Ein" setze, dann schaltet die sofort ein, sobald Wärmeanforderung vorhandne ist, unhabängig, wass ich in Startkriterien, Vorlauf setze.

        Kann ich so nicht 100% sagen da ich das nicht verwende, ich schalte die "externe Wärmequelle" - also den Heizstab - manuell via Relaiskarte da ich die Keba Steuerung doof finde: die ist ja fix auf einen bestimmten Temperaturschwellwert eingestellt. Ich schalte den Heizstab allerdings so, dass er bei niederen Temperaturen der WP mithilft, möglichst rasch auf Soll-VL zu kommen nach einem Abtauvorgang oder EW-Sperre. Dann wird der Heizstab wieder deaktiviert. Wenn du eine PV Steuerung via Keba möchtest würde ich PV -> Paramter -> Ext. Wärmequelle anschauen.

        Generell zu PV: die Steuerung funktioniert meiner Meinung nach recht gut, viele Tipps und so findest du weiter oben im Thread, sonst fragen.

        S 1 Antwort Letzte Antwort
        0
        • K Offline
          K Offline
          Kieferer
          schrieb am zuletzt editiert von Kieferer
          #134

          @sepp-1 sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

          Hallo, ich habe seit ca 1 Jahr eine M-Tec WPLK618 in Betrieb mit PV. Die PV Überschuss-Regelung sollte über einen zusätzlichen Zähler, der S0-Impuls übermittelt funktionieren. Dies tut es aber nicht.

          Mhmm. Gemäß deinem Screenshot hast du einen Überschuss von 0.39kW. Prüfe bitte, ob dein M-TEC Überschusszähler bei einer erzeugten Last, z.B. ein Wasserkocher, nach unten geht. Falls nicht, sind die Stromwander an der "falschen" Stelle angeschlossen. Die Ges. Energie von 4017 kWh ist ein Indiz, dass der Zähler nicht den Überschuss erfasst.
          Auch bei mir mussten die Stromwandler an der richtigen Position platziert werden, da der Wasserkochertest den Überschuss nicht minderte.
          Deine Einschaltschwelle und Aktivierungsintervall sind zu gering. Bei einem COP von 3 dürfte die WP ~ @30% RPM ~ 1.x kW ziehen Meine 412er W-W WP zieht ~ 1 kW. Je nach dem wie hoch der Überschuss ist, fährt die WP bis zur Leistungsgrenze max. RPM, sinkt der Überschuss dann sinkt die Drehzahl. Funktioniert deine Leistungsregelung?

          Der M-TEC Modbus Zähler pollt im ms Bereich, das schreiben auf das Register wird immer nur der 2te Sieger sein.

          Die PV Überschussregelung funktioniert bei mir "out of the box" mit diesen Parametern.
          PV_1.png PV_2.png PV_3.png PV_4.png PV_5.png PV_6.png

          S 1 Antwort Letzte Antwort
          0
          • A antfab

            @sepp-1 said in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

            -wie oft (in welchen Abständen) muss ich den PV Überschuss in das Register 1000 schreiben?
            Ich teste gerade, aber ich erkenne derzeit kein Auswirkungen in der Anzeige noch in der Regelung. Sehe ich in den PV Panels etwas dazu?

            Ich schreibe via Modbus alle 5s in's Register 1000, das sieht dann so aus im Interface:
            Screenshot 2025-03-29 073134.jpg Screenshot 2025-03-29 072538_crop.jpg

            -kann ich auch die externe Wärmequelle ansteuern über den Modbus?
            Ich erkenne auch nicht wie die ext Wärmequelle zu regeln ist. Wenn ich diese auf "Ein" setze, dann schaltet die sofort ein, sobald Wärmeanforderung vorhandne ist, unhabängig, wass ich in Startkriterien, Vorlauf setze.

            Kann ich so nicht 100% sagen da ich das nicht verwende, ich schalte die "externe Wärmequelle" - also den Heizstab - manuell via Relaiskarte da ich die Keba Steuerung doof finde: die ist ja fix auf einen bestimmten Temperaturschwellwert eingestellt. Ich schalte den Heizstab allerdings so, dass er bei niederen Temperaturen der WP mithilft, möglichst rasch auf Soll-VL zu kommen nach einem Abtauvorgang oder EW-Sperre. Dann wird der Heizstab wieder deaktiviert. Wenn du eine PV Steuerung via Keba möchtest würde ich PV -> Paramter -> Ext. Wärmequelle anschauen.

            Generell zu PV: die Steuerung funktioniert meiner Meinung nach recht gut, viele Tipps und so findest du weiter oben im Thread, sonst fragen.

            S Offline
            S Offline
            Sepp 1
            schrieb am zuletzt editiert von
            #135

            @antfab Danke! Wie sieht deine Variablen dazu aus? Egal was ich dort einstelle, bei mir kommt nichts an, weder per S0-Impuls vom Zähler, noch über den Modbus.
            191f553c-96ca-4cc4-a06a-5953199b95b9-image.png

            A 1 Antwort Letzte Antwort
            0
            • K Kieferer

              @sepp-1 sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

              Hallo, ich habe seit ca 1 Jahr eine M-Tec WPLK618 in Betrieb mit PV. Die PV Überschuss-Regelung sollte über einen zusätzlichen Zähler, der S0-Impuls übermittelt funktionieren. Dies tut es aber nicht.

              Mhmm. Gemäß deinem Screenshot hast du einen Überschuss von 0.39kW. Prüfe bitte, ob dein M-TEC Überschusszähler bei einer erzeugten Last, z.B. ein Wasserkocher, nach unten geht. Falls nicht, sind die Stromwander an der "falschen" Stelle angeschlossen. Die Ges. Energie von 4017 kWh ist ein Indiz, dass der Zähler nicht den Überschuss erfasst.
              Auch bei mir mussten die Stromwandler an der richtigen Position platziert werden, da der Wasserkochertest den Überschuss nicht minderte.
              Deine Einschaltschwelle und Aktivierungsintervall sind zu gering. Bei einem COP von 3 dürfte die WP ~ @30% RPM ~ 1.x kW ziehen Meine 412er W-W WP zieht ~ 1 kW. Je nach dem wie hoch der Überschuss ist, fährt die WP bis zur Leistungsgrenze max. RPM, sinkt der Überschuss dann sinkt die Drehzahl. Funktioniert deine Leistungsregelung?

              Der M-TEC Modbus Zähler pollt im ms Bereich, das schreiben auf das Register wird immer nur der 2te Sieger sein.

              Die PV Überschussregelung funktioniert bei mir "out of the box" mit diesen Parametern.
              PV_1.png PV_2.png PV_3.png PV_4.png PV_5.png PV_6.png

              S Offline
              S Offline
              Sepp 1
              schrieb am zuletzt editiert von
              #136

              @kieferer Danke. Wie sehen deine Variablen aus dazu aus? db49c11a-e155-42e0-bb46-be0d8f2cc532-image.png

              1 Antwort Letzte Antwort
              0
              • S Sepp 1

                @antfab Danke! Wie sieht deine Variablen dazu aus? Egal was ich dort einstelle, bei mir kommt nichts an, weder per S0-Impuls vom Zähler, noch über den Modbus.
                191f553c-96ca-4cc4-a06a-5953199b95b9-image.png

                A Offline
                A Offline
                antfab
                schrieb am zuletzt editiert von
                #137

                @Kieferer ÜS-Regelung funktioniert tiptop, die WP hat bereits ein paar Jahre auf dem Buckel, daher die 4017kWh. Ich habe keinen M-Tec Zähler oder so sondern steure das alles nur via Modbus, was die M-Tec Steuerung für Werte ausrechnet ist mir herzlich egal, die Summe stimmt :-) Und Aktivierungsintervall und Einschaltschwelle sind bewusst sehr tief gewählt (siehe oben).
                @sepp-1 bei mir steht dort folgendes:
                Screenshot from 2025-04-11 20-59-03.png

                1 Antwort Letzte Antwort
                0
                • S Offline
                  S Offline
                  Sepp 1
                  schrieb am zuletzt editiert von
                  #138

                  Ich habe eine neuere Modbus Register Beschreibung gefunden: https://library.loxone.com/detail/m-tec-heat-pump-93/overview bzw direkt hier der Download https://api.library.loxone.com/downloader/file/1850/Modbusdatapoints.xls

                  1 Antwort Letzte Antwort
                  0
                  • S Sepp 1

                    Hallo, ich habe seit ca 1 Jahr eine M-Tec WPLK618 in Betrieb mit PV. Die PV Überschuss-Regelung sollte über einen zusätzlichen Zähler, der S0-Impuls übermittelt funktionieren. Dies tut es aber nicht. Die Platine des IM110 wurde schon getauscht und auch der S0-Impuls Zähler. Die Einstellung auch schon oft geändert. Aber es wird nichts angezeigt, geregelt.
                    Vor der WP hatte ich bereits den Puffer und diesen mit 9kW Heizstab mit PV-Überschuss (Homematic Script) betrieben. Dies habe ich weiterhin. Letztes Jahr habe ich die WP dann manuell bei Überschuss die Soll-Temp des WW und des Puffers erhöht und wenn ich es nicht vergessen habe wieder runtergeregelt. Nun habe ich seit ein paar Wochen mit Hilfe des ModBus TCP Interface eine einfache Möglichkeit die ModBus Register der WP/KEBA Steuerung zu ändern und ändere nun einfach die Soll-Temp bei PV Überschuss und erhöhe die Temp des FußbodenHeizkreises. Dies funktioniert soweit.
                    Nun möchte ich aber auch die PV Überschuss Regelung der Keba Steuerung nutzen, da die ja (hoffentlich) auch Drehzahl/Leistung an den PV-Überschuss anpasst.
                    Ich habe den PV-Überschuss/Zähler: "Module Type" auf "virtual" gestellt.

                    Nun mein Fragen:
                    -wie oft (in welchen Abständen) muss ich den PV Überschuss in das Register 1000 schreiben?
                    Ich teste gerade, aber ich erkenne derzeit kein Auswirkungen in der Anzeige noch in der Regelung. Sehe ich in den PV Panels etwas dazu?

                    -kann ich auch die externe Wärmequelle ansteuern über den Modbus?
                    Ich erkenne auch nicht wie die ext Wärmequelle zu regeln ist. Wenn ich diese auf "Ein" setze, dann schaltet die sofort ein, sobald Wärmeanforderung vorhandne ist, unhabängig, wass ich in Startkriterien, Vorlauf setze.
                    Kann mir hier ein Licht ins Dunkel bringen.
                    Leider finde ich keine "Service" Doku zur Keba

                    Meine Anlage: PV 20 kWp (ca 15 14 kWp Süd, der Rest Ost/West od beschattet), 1000 l Schichtenspeicher, 3x3 kW Heizstab - Regelung über Script in der Homematic PV Überschuss, alte GasBrennwert noch vorhanden (lasse ich bei hoher Luftfeuchte über 92% und unter 1°C und bei unter -6°C laufen; schaltet Homematic automatisch dazu)

                    S Offline
                    S Offline
                    Sepp 1
                    schrieb am zuletzt editiert von Sepp 1
                    #139

                    @sepp-1 ich hatte eine neue Platine bekommen und trotzdem wurde keine PV-Überschussmittels via SO-Impuls übermittelt. Nun hatte ich mal Zeit und habe die Inbetriebnahmeassistent durchlaufen. Danach wurde der PV Überschuss angezeigt und die PV Regelung arbeitet entsprechend. Die Einstellung des Modul Typ ist eigentlich egal. Es zeigt bei "Virtual" und bei "not used" die Werte an. Bin grad noch am Testen mit Filterzeitkonstante. Hatte vor default 90s, da kam aber gelegentlich bis oft falsche Werte raus. Habe jetzt mal 10s und dies sieht bisher gut aus.

                    Nun wollte ich dies noch weiter verbessern, da ich mehrere PV Überschuss Optionen inkls Akku-Ladung habe und im Sommerhalbjahr auch einspeise. Deshalb will ich per Homematic script/Befehl
                    system.Exec("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.16.xxx 502 247 06 1000 3000",&lGetOut,&lGetErr);
                    den Überschuss in das Register 1000 schreiben.
                    Grundsätzlich funktioniert das Homematic Script sehr gut. Ich kann Temperaturen von Heizkreisen und Stütztemperaturen etc. damit gut verändern. Nur das Schreiben in das Register 1000 erzeugt kein PV-Überschuss Aktion. Ich habe schon probiert dies alle 5sec , alle 2 sec zu schreiben. Die Einstellung habe ich auf "Virtual" gestellt und ich habe auch nochmals ein Installtionsroutine durchlaufen und ich habe auch den SO-Zähler wieder abgeklemmt. Alles kein Erfolg. Bzgl ModBus Script. Ich hab schon mit Device ID 255, 247 und 1 probiert...alles keine Änderung. Wenn ich in den Variablen Monitor schaue, sehe ich das Register 1000 mit dem von mir gesetzten Wert....? Jemand noch einen Tip?

                    A 1 Antwort Letzte Antwort
                    0
                    • S Sepp 1

                      @sepp-1 ich hatte eine neue Platine bekommen und trotzdem wurde keine PV-Überschussmittels via SO-Impuls übermittelt. Nun hatte ich mal Zeit und habe die Inbetriebnahmeassistent durchlaufen. Danach wurde der PV Überschuss angezeigt und die PV Regelung arbeitet entsprechend. Die Einstellung des Modul Typ ist eigentlich egal. Es zeigt bei "Virtual" und bei "not used" die Werte an. Bin grad noch am Testen mit Filterzeitkonstante. Hatte vor default 90s, da kam aber gelegentlich bis oft falsche Werte raus. Habe jetzt mal 10s und dies sieht bisher gut aus.

                      Nun wollte ich dies noch weiter verbessern, da ich mehrere PV Überschuss Optionen inkls Akku-Ladung habe und im Sommerhalbjahr auch einspeise. Deshalb will ich per Homematic script/Befehl
                      system.Exec("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.16.xxx 502 247 06 1000 3000",&lGetOut,&lGetErr);
                      den Überschuss in das Register 1000 schreiben.
                      Grundsätzlich funktioniert das Homematic Script sehr gut. Ich kann Temperaturen von Heizkreisen und Stütztemperaturen etc. damit gut verändern. Nur das Schreiben in das Register 1000 erzeugt kein PV-Überschuss Aktion. Ich habe schon probiert dies alle 5sec , alle 2 sec zu schreiben. Die Einstellung habe ich auf "Virtual" gestellt und ich habe auch nochmals ein Installtionsroutine durchlaufen und ich habe auch den SO-Zähler wieder abgeklemmt. Alles kein Erfolg. Bzgl ModBus Script. Ich hab schon mit Device ID 255, 247 und 1 probiert...alles keine Änderung. Wenn ich in den Variablen Monitor schaue, sehe ich das Register 1000 mit dem von mir gesetzten Wert....? Jemand noch einen Tip?

                      A Offline
                      A Offline
                      antfab
                      schrieb am zuletzt editiert von
                      #140

                      @sepp-1 said in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

                      Nun wollte ich dies noch weiter verbessern, da ich mehrere PV Überschuss Optionen inkls Akku-Ladung habe und im Sommerhalbjahr auch einspeise. Deshalb will ich per Homematic script/Befehl
                      system.Exec("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.16.xxx 502 247 06 1000 3000",&lGetOut,&lGetErr);
                      den Überschuss in das Register 1000 schreiben.
                      Grundsätzlich funktioniert das Homematic Script sehr gut. Ich kann Temperaturen von Heizkreisen und Stütztemperaturen etc. damit gut verändern. Nur das Schreiben in das Register 1000 erzeugt kein PV-Überschuss Aktion. Ich habe schon probiert dies alle 5sec , alle 2 sec zu schreiben. Die Einstellung habe ich auf "Virtual" gestellt und ich habe auch nochmals ein Installtionsroutine durchlaufen und ich habe auch den SO-Zähler wieder abgeklemmt. Alles kein Erfolg. Bzgl ModBus Script. Ich hab schon mit Device ID 255, 247 und 1 probiert...alles keine Änderung. Wenn ich in den Variablen Monitor schaue, sehe ich das Register 1000 mit dem von mir gesetzten Wert....? Jemand noch einen Tip?

                      Was schreibst du denn für Werte? Ganzzahl? Und was wird dir in der Keba Steuerung angezeigt (also nicht im Variablenmonitor sondern im PV Menu)?

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Sepp 1
                        schrieb am zuletzt editiert von Sepp 1
                        #141

                        @antfab Hallo, hatte mal wieder Zeit und die WP gebootet und auch den Inbetriebnahmeassistent durchgeführt und vorher bzw. dabei den Modul Typ auf Virtual gesetzt. Und ich habe den WMZ Modus auf "Analog" gesezt. Denke dies war die wichtige Einstellung, ob die WP nun den S0-Impuls ("Impuls") und den Wert vom Register 1000 nehmen soll.
                        Nun kann ich von meiner Homematic den entsprechenden PV-Überschuss Wert setzen und dabei mein PV-Überschussregelung optimieren - für Akku-Ladung, zusätzlicher Heizstab, kleines E-Auto. Vorher möchte ich aber noch die PV-Prognose für den aktuellen Tag und des nächsten Tages mit einbauen.

                        1 Antwort Letzte Antwort
                        0
                        • E Offline
                          E Offline
                          ergi
                          schrieb am zuletzt editiert von
                          #142

                          Hab hier im Beitrag mal einige Informationen gesammelt und mich mit ChatGPT mal um ein aktuelles Skript gekümmert. Vielen Dank für die Vorarbeit. Es hat jetzt auch schreibbare Datenpunkte für Normal und Absenktemperatur, Boiler Soll&Stütztemp, sowie Boiler Betriebsart erzeugt. Außerdem mit der Möglichkeit, für einen lokalen login. Einfach host, username und password ändern im ersten Abschnitt "Konfiguration"

                          /**
                           * Script für Mtec / Hautec / Keba Wärmepumpe
                           * Verwendet AXIOS statt request 
                           */
                          const axios = require('axios');
                          
                          // ==== KONFIGURATION ====
                          
                          const heizung_host = '192.168.xxx.xxx';
                          
                          const username = 'BENUTZERNAME';
                          const password = 'PASSWORT';
                          
                          // Konstanten
                          const urlOfHeatpump    = 'https://' + heizung_host + '/var/readWriteVars';
                          const urlWriteHeatpump = 'https://' + heizung_host + '/var/readWriteVars?action=set';
                          
                          // Variablen die wir lesen wollen
                          const jsonRequest = [
                              // bereits vorhandene
                              { "name": "APPL.CtrlAppl.sParam.param.setControlMode" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].tempRoom.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].topTemp.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.outdoorTemp.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].values.setValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].param.offsetRoomTemp" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].values.selectedSetTemp" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].values.heatRequest" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].values.coolRequest" },
                              { "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].values.heatRequestTop" },
                              { "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].param.normalSetTempMax.value" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].tempReflux.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].values.flowSetTemp" },
                              { "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].param.operatingMode" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].param.normalSetTemp" },
                              { "name": "APPL.CtrlAppl.sParam.heatCircuit[0].param.reducedSetTemp" },
                              { "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].param.reducedSetTempMax.value" },
                          
                              // Quelle / WP-Temperaturen (Namen je nach Firmware, hier typische KEBA-Namen)
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].TempSourceIn.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].TempSourceOut.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].TempHeatFlow.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].TempCompressorIn.values.actValue" },
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].TempCompressorOut.values.actValue" },
                          
                              // Pumpen- / Verdichter-Leistungen (skaliert, z.B. 0..1)
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].CircPump.values.setValueScaled" },
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].Source.values.setValueScaled" },
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].Compressor.values.setValueScaled" },
                          
                              // WP-Zustand
                              { "name": "APPL.CtrlAppl.sParam.heatpump[0].values.heatpumpState" },
                          
                              // Estrichprogramm aktiv?
                              { "name": "APPL.CtrlAppl.sParam.screedDrying.values.active" },
                          
                              // PV-Überschuss aktiv?
                              { "name": "APPL.CtrlAppl.sParam.photovoltaics.values.excessEnergyActive" }
                          ];
                          
                          // ==== STATES ANLEGEN ====
                          
                          // Allgemeine Temperaturen
                          createState('javascript.'+instance+'.Heizung.Aussentemperatur',      0, { type: 'number',  role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Boilertemperatur.ist',  0, { type: 'number',  role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Boilertemperatur.soll', 0, { type: 'number',  role: 'level.temperature', unit: '°C', read: true, write: true });
                          createState('javascript.'+instance+'.Heizung.Boilertemperatur.reducedSoll', 0, { type: 'number', role: 'level.temperature', unit: '°C', read: true, write: true });
                          
                          // Heizkreis-Ordner (wie gewünscht)
                          createState('javascript.'+instance+'.Heizung.Heizkreis.Raumtemperatur.soll',   0, { type: 'number',  role: 'level.temperature', unit: '°C', read: true, write: true });
                          createState('javascript.'+instance+'.Heizung.Heizkreis.Heizung.aufheizen',     false, { type: 'boolean', role: 'indicator', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Heizkreis.NormalTemp.soll',       0, { type: 'number', role: 'level.temperature', unit: '°C', read: true, write: true });
                          createState('javascript.'+instance+'.Heizung.Heizkreis.ReducedTemp.soll',      0, { type: 'number', role: 'level.temperature', unit: '°C', read: true, write: true });
                          
                          // Rücklauf
                          createState('javascript.'+instance+'.Heizung.RuecklaufTemp.ist',     0, { type: 'number',  role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.RuecklaufTemp.soll',    0, { type: 'number',  role: 'level.temperature', unit: '°C', read: true, write: false });
                          
                          // Boiler-Betriebsart
                          createState('javascript.'+instance+'.Heizung.Boiler.aufheizen',      false, { type: 'boolean', role: 'indicator', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Boiler.Betriebsart', 0, {
                              type: 'number',
                              role: 'level',
                              states: {
                                  "0": "Aus",
                                  "1": "Auto",
                                  "2": "Ein",
                                  "3": "ManAufheizen"
                              },
                              read: true,
                              write: true
                          });
                          
                          // Quelle / WP / Pumpen / Status
                          createState('javascript.'+instance+'.Heizung.QuelleTemp.Ein',    0, { type: 'number', role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.QuelleTemp.Aus',    0, { type: 'number', role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Heizkreis.VorlaufTemp.ist', 0, { type: 'number', role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.WP.VerdichterTemp.Ein', 0, { type: 'number', role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.WP.VerdichterTemp.Aus', 0, { type: 'number', role: 'value.temperature', unit: '°C', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Pumpe.Heizkreis.Soll',  0, { type: 'number', role: 'value', unit: '', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.Pumpe.Quelle.Soll',     0, { type: 'number', role: 'value', unit: '', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.WP.Verdichter.Soll',    0, { type: 'number', role: 'value', unit: '', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.WP.Status',      0, { type: 'number', role: 'value', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.WP.StatusText', '', { type: 'string', role: 'text', read: true, write: false });
                          
                          // Estrichprogramm / PV
                          createState('javascript.'+instance+'.Heizung.Estrichprogramm.aktiv', false, { type: 'boolean', role: 'indicator', read: true, write: false });
                          createState('javascript.'+instance+'.Heizung.PV.UeberschussAktiv',   false, { type: 'boolean', role: 'indicator', read: true, write: false });
                          
                          // Hilfsfunktion: WP-Statuscode in Text umwandeln (Beispiel-Mapping, je nach Doku anpassen)
                          function mapHeatpumpStateToText(code) {
                              switch (code) {
                                  case 0: return 'Standby';
                                  case 1: return 'Anforderung';
                                  case 2: return 'Heizen';
                                  case 3: return 'Abtauen';
                                  case 4: return 'Warmwasser';
                                  case 5: return 'Fehler';
                                  default: return 'Unbekannt (' + code + ')';
                              }
                          }
                          
                          // ==== FUNKTION: Daten lesen ====
                          async function readHeatpump() {
                              try {
                                  const response = await axios.post(urlOfHeatpump, jsonRequest, {
                                      httpsAgent: new (require('https').Agent)({
                                          rejectUnauthorized: false // Selbstsigniertes KEBA-Zertifikat akzeptieren
                                      }),
                                      auth: {
                                          username: username,
                                          password: password
                                      },
                                      headers: {
                                          'Content-Type': 'application/json'
                                      }
                                  });
                          
                                  const data = {};
                                  response.data.forEach(item => data[item.name] = item.value);
                          
                                  // Allgemeine Temperaturen
                                  setState('javascript.'+instance+'.Heizung.Aussentemperatur',
                                      parseFloat(data["APPL.CtrlAppl.sParam.outdoorTemp.values.actValue"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.Boilertemperatur.ist',
                                      parseFloat(data["APPL.CtrlAppl.sParam.hotWaterTank[0].topTemp.values.actValue"]) || 0, true);
                          
                                  // Heizkreis-Soll (berechneter Sollwert der WP)
                                  setState('javascript.'+instance+'.Heizung.Heizkreis.Raumtemperatur.soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatCircuit[0].values.setValue"]) || 0, true);
                          
                                  // Heizanforderung (Heizkreis) nur lesen
                                  setState('javascript.'+instance+'.Heizung.Heizkreis.Heizung.aufheizen',
                                      data["APPL.CtrlAppl.sParam.heatCircuit[0].values.heatRequest"] == "1", true);
                          
                                  // Boiler aufheizen nur lesen
                                  const heatRequestTop = data["APPL.CtrlAppl.sParam.hotWaterTank[0].values.heatRequestTop"];
                                  setState('javascript.'+instance+'.Heizung.Boiler.aufheizen',
                                      heatRequestTop === "true" || heatRequestTop === "1" || heatRequestTop === true, true);
                          
                                  // Rücklauf
                                  setState('javascript.'+instance+'.Heizung.RuecklaufTemp.ist',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatCircuit[0].tempReflux.values.actValue"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.RuecklaufTemp.soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatCircuit[0].values.flowSetTemp"]) || 0, true);
                          
                                  // Boiler-Betriebsart
                                  setState('javascript.'+instance+'.Heizung.Boiler.Betriebsart',
                                      parseInt(data["APPL.CtrlAppl.sParam.hotWaterTank[0].param.operatingMode"]) || 0, true);
                          
                                  // Normal- und Absenktemperatur (Heizkreis)
                                  setState('javascript.'+instance+'.Heizung.Heizkreis.NormalTemp.soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatCircuit[0].param.normalSetTemp"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.Heizkreis.ReducedTemp.soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatCircuit[0].param.reducedSetTemp"]) || 0, true);
                          
                                  // Boiler Soll-Temperaturen
                                  setState('javascript.'+instance+'.Heizung.Boilertemperatur.reducedSoll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.hotWaterTank[0].param.reducedSetTempMax.value"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.Boilertemperatur.soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.hotWaterTank[0].param.normalSetTempMax.value"]) || 0, true);
                          
                                  // === neue Datenpunkte setzen ===
                          
                                  // Quelle / WP Temperaturen
                                  setState('javascript.'+instance+'.Heizung.QuelleTemp.Ein',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].TempSourceIn.values.actValue"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.QuelleTemp.Aus',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].TempSourceOut.values.actValue"]) || 0, true);
                          
                                  setState('javascript.'+instance+'.Heizung.Heizkreis.VorlaufTemp.ist',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].TempHeatFlow.values.actValue"]) || 0, true);
                          
                                  setState('javascript.'+instance+'.Heizung.WP.VerdichterTemp.Ein',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].TempCompressorIn.values.actValue"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.WP.VerdichterTemp.Aus',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].TempCompressorOut.values.actValue"]) || 0, true);
                          
                                  // Pumpen-/Verdichter-Sollwerte (skaliert)
                                  setState('javascript.'+instance+'.Heizung.Pumpe.Heizkreis.Soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].CircPump.values.setValueScaled"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.Pumpe.Quelle.Soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].Source.values.setValueScaled"]) || 0, true);
                                  setState('javascript.'+instance+'.Heizung.WP.Verdichter.Soll',
                                      parseFloat(data["APPL.CtrlAppl.sParam.heatpump[0].Compressor.values.setValueScaled"]) || 0, true);
                          
                                  // WP-Status
                                  const hpState = parseInt(data["APPL.CtrlAppl.sParam.heatpump[0].values.heatpumpState"]) || 0;
                                  setState('javascript.'+instance+'.Heizung.WP.Status', hpState, true);
                                  setState('javascript.'+instance+'.Heizung.WP.StatusText', mapHeatpumpStateToText(hpState), true);
                          
                                  // Estrichprogramm
                                  setState('javascript.'+instance+'.Heizung.Estrichprogramm.aktiv',
                                      data["APPL.CtrlAppl.sParam.screedDrying.values.active"] == "true", true);
                          
                                  // PV-Überschuss aktiv?
                                  setState('javascript.'+instance+'.Heizung.PV.UeberschussAktiv',
                                      data["APPL.CtrlAppl.sParam.photovoltaics.values.excessEnergyActive"] == "true", true);
                          
                              } catch (err) {
                                  log("Fehler beim Lesen der Wärmepumpe: " + err, 'error');
                              }
                          }
                          
                          // ==== INTERVALL: alle 1 Minute lesen ====
                          schedule("* * * * *", readHeatpump);
                          
                          // ==== SCHREIBEN: Boiler-Betriebsart ====
                          on('javascript.'+instance+'.Heizung.Boiler.Betriebsart', async function (obj) {
                              if (!obj || obj.state.ack) return;
                          
                              const newValue = String(obj.state.val);
                          
                              try {
                                  await axios.post(urlWriteHeatpump, [{
                                      "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].param.operatingMode",
                                      "value": newValue
                                  }], {
                                      httpsAgent: new (require('https').Agent)({
                                          rejectUnauthorized: false
                                      }),
                                      auth: {
                                          username: username,
                                          password: password
                                      },
                                      headers: {
                                          'Content-Type': 'application/json'
                                      }
                                  });
                          
                                  log("Betriebsart erfolgreich gesetzt auf: " + newValue);
                          
                              } catch (err) {
                                  log("Fehler beim Schreiben der Betriebsart: " + err, 'error');
                              }
                          });
                          
                          // ==== SCHREIBEN: Boilertemperaturen ====
                          on('javascript.'+instance+'.Heizung.Boilertemperatur.soll', async function (obj) {
                              if (!obj || obj.state.ack) return;
                          
                              const newValue = String(obj.state.val);
                              log("Heizung: schreibe Boilertemperatur.soll = " + newValue, 'info');
                          
                              try {
                                  await axios.post(urlWriteHeatpump, [{
                                      "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].param.normalSetTempMax.value",
                                      "value": newValue
                                  }], {
                                      httpsAgent: new (require('https').Agent)({
                                          rejectUnauthorized: false
                                      }),
                                      auth: {
                                          username: username,
                                          password: password
                                      },
                                      headers: {
                                          'Content-Type': 'application/json'
                                      }
                                  });
                          
                                  log("Boilertemperatur.soll erfolgreich gesetzt auf: " + newValue, 'info');
                          
                              } catch (err) {
                                  log("Fehler beim Schreiben Boilertemperatur.soll: " + err, 'error');
                              }
                          });
                          
                          on('javascript.'+instance+'.Heizung.Boilertemperatur.reducedSoll', async function (obj) {
                              if (!obj || obj.state.ack) return;
                          
                              const newValue = String(obj.state.val);
                          
                              log("Heizung: schreibe Boilertemperatur.reducedSoll = " + newValue, 'info');
                          
                              try {
                                  await axios.post(urlWriteHeatpump, [{
                                      "name": "APPL.CtrlAppl.sParam.hotWaterTank[0].param.reducedSetTempMax.value",
                                      "value": newValue
                                  }], {
                                      httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
                                      auth: { username: username, password: password },
                                      headers: { 'Content-Type': 'application/json' }
                                  });
                          
                                  log("Boilertemperatur.reducedSoll erfolgreich gesetzt auf: " + newValue, 'info');
                          
                              } catch (err) {
                                  log("Fehler beim Schreiben reducedSetTempMax.value: " + err, 'error');
                              }
                          });
                          
                          // ==== SCHREIBEN: Normal- und Absenktemperatur Heizkreis ====
                          on('javascript.'+instance+'.Heizung.Heizkreis.NormalTemp.soll', async function (obj) {
                              if (!obj || obj.state.ack) return;
                              const newValue = String(obj.state.val);
                          
                              log("Schreibe Normal-Temperatur (Heizkreis) = " + newValue, 'info');
                          
                              try {
                                  await axios.post(urlWriteHeatpump, [{
                                      "name": "APPL.CtrlAppl.sParam.heatCircuit[0].param.normalSetTemp",
                                      "value": newValue
                                  }], {
                                      httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
                                      auth: { username: username, password: password },
                                      headers: { 'Content-Type': 'application/json' }
                                  });
                          
                                  log("NormalTemp erfolgreich gesetzt.", 'info');
                          
                              } catch (err) {
                                  log("Fehler beim Schreiben NormalTemp: " + err, 'error');
                              }
                          });
                          
                          on('javascript.'+instance+'.Heizung.Heizkreis.ReducedTemp.soll', async function (obj) {
                              if (!obj || obj.state.ack) return;
                              const newValue = String(obj.state.val);
                          
                              log("Schreibe Reduzierte Temperatur (Heizkreis) = " + newValue, 'info');
                          
                              try {
                                  await axios.post(urlWriteHeatpump, [{
                                      "name": "APPL.CtrlAppl.sParam.heatCircuit[0].param.reducedSetTemp",
                                      "value": newValue
                                  }], {
                                      httpsAgent: new (require('https').Agent)({ rejectUnauthorized: false }),
                                      auth: { username: username, password: password },
                                      headers: { 'Content-Type': 'application/json' }
                                  });
                          
                                  log("ReducedTemp erfolgreich gesetzt.", 'info');
                          
                              } catch (err) {
                                  log("Fehler beim Schreiben ReducedTemp: " + err, 'error');
                              }
                          });
                          
                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            alexander_s
                            schrieb am zuletzt editiert von
                            #143

                            Hallo zusammen,

                            ich habe eine M-Tec WLPK412 Luft Wärmepumpe. Diese ist seit Herbst 2023 installiert.
                            Ebenfalls habe ich eine 14,6 kWp PV Anlage mit ca 15kWh Speicher - der Speicher ist von M-Tec (4x Energy-Butler Module)

                            Leider funktioniert noch nicht alles wie ich mir das vorstelle:

                            1. Die WP zeigt wiederholt Fehlermeldungen, wie "Frequenzumrichter defekt" und "Ventilatorstörung" und "Kompressorkennlinie". Im Prinzip arbeitet die WP, Wasser ist warm, die Fehler bereiten mir aber Bauchschmerzen und ich befürchte, dass hier bereits irgendwo ein kleiner Defekt ist (z.B. Hauptplatine, wo beides angeschlossen ist?) der irgendwann sehr teuer werden kann. Die Fehler sind bereits kurz nach Inbetriebnahme aufgetaucht, habe ich festgestellt wenn man den Fehlerspeicher zurückverfolgt.

                            Hat jemand ähnliche Fehlermeldungen? Kann man die irgendwie beheben oder sind dafür tiefere Diagnosen/ Eingriffe notwendig? Oder kann man anhand der Fehler bereits sagen, wo der Defekt ist?
                            Auch gibt es haufenweise Fehlereinträge mit "no value set" Das werden wohl fehlerhafte Einstellungen sein?

                            2a) Ich habe eine PV Anlage im April 2025 bekommen. Diese wurde auch in der M-Tec Steuerung eingepflegt, aber diese ist kein einziges Mal mit PV-Überschuss gelaufen. Auch nicht über den Sommer, wo es wirklich perfekte wolkenlose PV Tage gegeben hat.
                            Welche Einstellungen sollten hier drin sein? Habe meine hier mal als Bilder angehängt.

                            2b) Zusätzlich habe ich zwei Zusatzheizungen. Eine 9kW mir Vor- und Rücklauf sowie ein 6kW Heizstab im Boiler.
                            Geplant war, dass PV Überschuss den 6kW Heizstab "befeuert" und die 9kW Zusatzheizung als Notfallheizung (WP fällt aus oder Außentemperatur zu niedrig) fungiert.
                            Leider wurde die Konfiguration vom Installateur so gemacht, dass sie die Notfall-Funktion der 9kW Heizung deaktiviert haben und nun mit PV Überschuss betreiben und die 6kW Heizung nur als manuelle Notfallheizung genutzt werden kann, sonst aber ungenutzt bleibt. In der M-Tec eSmart App bleibt das Modul "Heizstab" deshalb auch immer bei 0 - wird ja nicht angesteuert.
                            Ist die geplante Konfiguration (9kW = Notfallheizung, 6kW Heizstab wird mir PV Überschuss betrieben) überhaupt möglich? Ich habe einen Fronius Ohmpilot der den PV-Überschuss managed.

                            1. Software-Updates vom AP440. Ich habe aktuell die 2.6.1 Gibt es da was aktuelleres? Kommt man an die SW Updates irgendwie ran oder kann das nur der Hersteller z.B. über Fernwartung machen?

                            Bildschirmfoto 2025-11-28 um 16.43.08.jpg
                            Bildschirmfoto 2025-11-28 um 16.43.17.jpg
                            Bildschirmfoto 2025-11-28 um 16.41.33.jpg
                            Bildschirmfoto 2025-11-28 um 16.41.39.jpg
                            Bildschirmfoto 2025-11-28 um 16.41.46.jpg
                            Bildschirmfoto 2025-11-28 um 16.41.53.jpg
                            Bildschirmfoto 2025-11-28 um 16.42.01.jpg
                            Bildschirmfoto 2025-11-28 um 16.42.05.jpg
                            Bildschirmfoto 2025-11-28 um 16.42.12.jpg
                            Bildschirmfoto 2025-11-28 um 16.42.23.jpg

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              antfab
                              schrieb am zuletzt editiert von
                              #144

                              Hallo Alexander, ich versuch mich mal an einer Antwort:

                              1. Fehlermeldungen: definitiv nicht normal, würde ich dem Support melden.
                                2a) PV ist falsch konfiguriert denke ich, "Modul Type" sollte "Virtual" sein und "WMZ Modus" auf "Analog".
                                2b) Deine Konfiguration ist so glaub ich leider nicht umsetzbar, die M-Tec Steuerung kann nur 1 "Externe Wärmequelle", also Zusatzheizung. Das wäre dann Heizstab ODER Zusatzheizung. Ich finde auch dort die Konfigurationsmöglichkeiten sehr ungeschickt und steure Heizstab/Zusatzheizung komplett unabhängig von der M-Tec Steuerung mit meiner Smart Home Steuerung und Zusatzrelais (im Prinzip braucht mein Heizstab ein 24V Signal welches ihn aktiviert, das sende ich direkt über ein Modbus Relais falls das was für dich ist).
                              fuzzy1955F 1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                alexander_s
                                schrieb am zuletzt editiert von
                                #145

                                Hi,

                                vielen Dank für deine Antwort.

                                1. Diese habe ich dem Support mitgeteilt, der meinte ich soll mich an meinen Installateur wenden. Der macht aber nichts. Stehe also hier recht alleine da.
                                  2a) Danke dir. Wie sind sonst die Einstellungen hinsichtlich Einschalt/ Ausschaltschwelle und Leistungsaufnahme?
                                  2b) Oh ok. D.h. PV-Überschuss --> Fronius Ohmpilot --> 6kW Heizstab + 9kW Zusatzheizung (ohne PV) sondern nur als automatische Notfallheizung geht nicht? D.h. mein Installateur hat mir etwas zugesichert, was nicht möglich ist, weshalb es nun zwangsläufig anders konfiguriert ist, als vereinbart.
                                  Puh, damit kenne ich mich noch gar nicht aus, interessiert wäre ich schon. Ich glaub ich nutze mal meinen Weihnachtsurlaub, um mich in das Thema Modbus und Smart Home einzulesen 8)

                                Weißt du zufällig, ob diese Notallheizfunktion (zu kalt oder WP Ausfall) durch die PV-Überschussregelung trotzdem aktiv sein kann oder reaktiviert werden kann? Der Installateur meinte, dass die Notfallheizung nicht mehr ist, sondern durch PV-Überschuss-Funktion ersetzt wurde. Macht das Betreiben von der 9kW Notfallheizung (Hat eine Vor- und Rücklauf, ist ja kein Heizstab) mit PV-Überschuss überhaupt technisch sinn?

                                Wie kann ist eigentlich testen, ob diese 9kW Zusatzheizung funktioniert? Also manuell und unabhängig davon welche Konfiguration gerade eingestellt ist. Ich habe nämlich auch das Gefühl, dass diese unabhängig der Konfiguration nicht funktioniert... (ist eine andere aber auch noch offene Baustelle)

                                Anbei auch mal die Einstellungen von "Externe Wärmequelle".

                                Vielen Dank.
                                Viele Grüße

                                Bildschirmfoto 2025-12-09 um 23.45.01.jpg
                                Bildschirmfoto 2025-12-09 um 23.45.10.jpg
                                Bildschirmfoto 2025-12-09 um 23.45.16.jpg
                                Bildschirmfoto 2025-12-09 um 23.45.22.jpg
                                Bildschirmfoto 2025-12-09 um 23.45.28.jpg

                                A 1 Antwort Letzte Antwort
                                0
                                • A antfab

                                  Hallo Alexander, ich versuch mich mal an einer Antwort:

                                  1. Fehlermeldungen: definitiv nicht normal, würde ich dem Support melden.
                                    2a) PV ist falsch konfiguriert denke ich, "Modul Type" sollte "Virtual" sein und "WMZ Modus" auf "Analog".
                                    2b) Deine Konfiguration ist so glaub ich leider nicht umsetzbar, die M-Tec Steuerung kann nur 1 "Externe Wärmequelle", also Zusatzheizung. Das wäre dann Heizstab ODER Zusatzheizung. Ich finde auch dort die Konfigurationsmöglichkeiten sehr ungeschickt und steure Heizstab/Zusatzheizung komplett unabhängig von der M-Tec Steuerung mit meiner Smart Home Steuerung und Zusatzrelais (im Prinzip braucht mein Heizstab ein 24V Signal welches ihn aktiviert, das sende ich direkt über ein Modbus Relais falls das was für dich ist).
                                  fuzzy1955F Online
                                  fuzzy1955F Online
                                  fuzzy1955
                                  schrieb am zuletzt editiert von
                                  #146

                                  @antfab sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

                                  Konfigurationsmöglichkeiten sehr ungeschickt und steure Heizstab/Zusatzheizung komplett unabhängig von der M-Tec Steuerung mit meiner Smart Home Steuerung und Zusatzrelais

                                  Hallo,

                                  ich lese euren Austausch recht interessiert mit und stimme dem völlig zu. Diese Hersteller versuchen leider nur eine halbherzige Gesamtsteuerung von WP, PV, Wallbox etc.

                                  Meine Hausanlage sieht völlig anders aus, aber ich habe doch einige Erfahrungen mit Modbus und dem IOBroker gemacht. Wenn ich euch behilflich sein kann -- gerne!

                                  Grüße aus dem Mühlviertel, Hans F.

                                  Raspberry PI5 mit Linux Debian 13 (Trixie), IoBroker v7.7.19, VIS-2, MariaDB (MySQL)
                                  Shellies: 1G4, 1MiniG3, PlusI4DC, PlusPlugS, Pro0110PM. Modbus: Waveshare Relay 8 Channels, Waveshare RS485-TO-ETH.
                                  PV: 10 kWp Module, 2 x Deye WR SUN-10K, 2 x 10 kWh MeritSun LiFe Speicher, KEBA P30 Wallbox, Fronius Wattpilot home 11

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    alexander_s
                                    schrieb am zuletzt editiert von
                                    #147

                                    Hallo Hans,

                                    danke für deine Antwort und dein Angebot! Da komme ich womöglich gern darauf zurück ;)
                                    Im Urlaub hab ich ein wenig Zeit und kann mich dann auch mit Modbus und IOBroker auseinandersetzen

                                    Viele Grüße

                                    1 Antwort Letzte Antwort
                                    0
                                    • A alexander_s

                                      Hi,

                                      vielen Dank für deine Antwort.

                                      1. Diese habe ich dem Support mitgeteilt, der meinte ich soll mich an meinen Installateur wenden. Der macht aber nichts. Stehe also hier recht alleine da.
                                        2a) Danke dir. Wie sind sonst die Einstellungen hinsichtlich Einschalt/ Ausschaltschwelle und Leistungsaufnahme?
                                        2b) Oh ok. D.h. PV-Überschuss --> Fronius Ohmpilot --> 6kW Heizstab + 9kW Zusatzheizung (ohne PV) sondern nur als automatische Notfallheizung geht nicht? D.h. mein Installateur hat mir etwas zugesichert, was nicht möglich ist, weshalb es nun zwangsläufig anders konfiguriert ist, als vereinbart.
                                        Puh, damit kenne ich mich noch gar nicht aus, interessiert wäre ich schon. Ich glaub ich nutze mal meinen Weihnachtsurlaub, um mich in das Thema Modbus und Smart Home einzulesen 8)

                                      Weißt du zufällig, ob diese Notallheizfunktion (zu kalt oder WP Ausfall) durch die PV-Überschussregelung trotzdem aktiv sein kann oder reaktiviert werden kann? Der Installateur meinte, dass die Notfallheizung nicht mehr ist, sondern durch PV-Überschuss-Funktion ersetzt wurde. Macht das Betreiben von der 9kW Notfallheizung (Hat eine Vor- und Rücklauf, ist ja kein Heizstab) mit PV-Überschuss überhaupt technisch sinn?

                                      Wie kann ist eigentlich testen, ob diese 9kW Zusatzheizung funktioniert? Also manuell und unabhängig davon welche Konfiguration gerade eingestellt ist. Ich habe nämlich auch das Gefühl, dass diese unabhängig der Konfiguration nicht funktioniert... (ist eine andere aber auch noch offene Baustelle)

                                      Anbei auch mal die Einstellungen von "Externe Wärmequelle".

                                      Vielen Dank.
                                      Viele Grüße

                                      Bildschirmfoto 2025-12-09 um 23.45.01.jpg
                                      Bildschirmfoto 2025-12-09 um 23.45.10.jpg
                                      Bildschirmfoto 2025-12-09 um 23.45.16.jpg
                                      Bildschirmfoto 2025-12-09 um 23.45.22.jpg
                                      Bildschirmfoto 2025-12-09 um 23.45.28.jpg

                                      A Offline
                                      A Offline
                                      antfab
                                      schrieb am zuletzt editiert von
                                      #148

                                      @alexander_s sagte in Keba KeEnergy Heizungssteuerung (M-TEC WP) in Smarthome:

                                      1. Diese habe ich dem Support mitgeteilt, der meinte ich soll mich an meinen Installateur wenden. Der macht aber nichts. Stehe also hier recht alleine da.

                                      Da würde ich nicht locker lassen. Normal sind diese Meldungen nicht. Für mich muss eine WP 15-20 Jahre halten, Fehler gleich von Beginn sind für mich kein gutes Zeichen.

                                      2a) Danke dir. Wie sind sonst die Einstellungen hinsichtlich Einschalt/ Ausschaltschwelle und Leistungsaufnahme?

                                      Das hängt von deiner WP ab. Schau dir mal folgendes Dokument an, das hat mir am Anfang sehr weitergeholfen: Smartfox & M-Tec.
                                      Ich habe das wie folgt konfiguriert: Leistungsaufnahme: 7.4kW (=ist die tatsächliche (elektrische) maximale Leistungsaufnahme unserer WP), Einschaltschwelle 0.5kW. Ausschaltschwelle 0.2kW.
                                      Wichtig zu wissen! Die Parameter sind leider nicht so selbsterklärend wie es scheint, am Besten schaust du wirklich mal obiges Dokument durch. Und auch noch wichtig: die M-Tec Steuerung zieht vom via Modbus mitgeteilteten PV-Überschuss immer noch die Einschaltschwelle ab (wieso, wissen die Götter...). Klartext: du hast 2000W Überschuss und schickst das via Modbus, die Steuerung zieht davon 500W ab und regelt die WP als auf 1500W runter. Komplett sinnfrei für mich, ich addiere daher die Einschaltschwelle immer dazu (sende also 2500W statt 2000W).

                                      2b) Oh ok. D.h. PV-Überschuss --> Fronius Ohmpilot --> 6kW Heizstab + 9kW Zusatzheizung (ohne PV) sondern nur als automatische Notfallheizung geht nicht? D.h. mein Installateur hat mir etwas zugesichert, was nicht möglich ist, weshalb es nun zwangsläufig anders konfiguriert ist, als vereinbart.

                                      Weißt du zufällig, ob diese Notallheizfunktion (zu kalt oder WP Ausfall) durch die PV-Überschussregelung trotzdem aktiv sein kann oder reaktiviert werden kann? Der Installateur meinte, dass die Notfallheizung nicht mehr ist, sondern durch PV-Überschuss-Funktion ersetzt wurde. Macht das Betreiben von der 9kW Notfallheizung (Hat eine Vor- und Rücklauf, ist ja kein Heizstab) mit PV-Überschuss überhaupt technisch sinn?

                                      Notfallheizung und PV-Überschussregelung haben primär nix miteinander zu tun. Du kannst - soweit ich weiss, die Software kann theoretisch mehr! - 1 externe Wärmequelle angeben, das ist dein Heizstab. Dieser wird - wenn richtig konfiguriert - als Notheizung eingeschaltet wenn gewisse Kriterien erfüllt sind (z.B. bei dir wenn die Aussentemperatur unter -10° und/oder wenn PV-Überschuss vorhanden ist (und die WP schon unter Volllast läuft, du kannst angegeben, was Priorität hat. Sinnvollerweise wohl die WP).

                                      Wie kann ist eigentlich testen, ob diese 9kW Zusatzheizung funktioniert? Also manuell und unabhängig davon welche Konfiguration gerade eingestellt ist. Ich habe nämlich auch das Gefühl, dass diese unabhängig der Konfiguration nicht funktioniert... (ist eine andere aber auch noch offene Baustelle)

                                      Wie gesagt: Zusatzheizungssteuerung ist komplett für den Arsch (Sorry). Ich mach das via meiner Smarthome-Steuerung und zwar wie folgt:
                                      Wenn die WP Mühe hat, die gewünschte Temperatur zu erreichen (sie ist bei uns bewusst knapp dimensioniert), dann aktiviere ich meine "Zusatzheizungsautomatik": die schaltet die Zusatzheizung via Modbus-Relais (welches wiederum ein 24V Steuersignal auf das Schütz der Zusatzheizung freischaltet) ein solange die Soll-Vorlauftemperatur deutlich unterschritten wird, so quasi als Booster. Sobald die Vorlaufstemperatur fast erreicht wird, schaltet sie sich wieder ab. Effekt: wenn z.B. nach einem Abtauvorgang oder Sperrung durch das E-Werk (3x am Tag) die VL-Temperatur tief ist und die Räume auskühlen (wir haben Radiatoren) hilft die Zusatzheizung der WP, schneller wieder die Sollwerte zu erreichen.

                                      WIr haben die WP jetzt knapp 4 Jahre. Seit 2 Jahren habe ich die Steuerung soweit im Griff, das alles automatisch läuft und sehr sehr intelligent, ein absoluter Traum! Wir haben so im Altbau sehr konstante Raumtemperatur um die 20.7° +/- 0.3° mit maximaler PV-Ausnutzung und JAZ zwischen 3.7-3.9. Ich muss nur noch sehr selten korrigierend eingreifen. Am Anfang bin ich auch beinahe die Wände darauf, die M-Tec Steuerung ist z.T. sehr sehr doof. Grosser Vorteil: dank Passwort kann man relativ viel ändern und die Software ist "für Techniker gemacht" und lässt einem sehr viel regeln.

                                      Wir sind zufrieden mit unserer WP.

                                      1 Antwort Letzte Antwort
                                      0
                                      • A Offline
                                        A Offline
                                        alexander_s
                                        schrieb am zuletzt editiert von
                                        #149

                                        Danke dir!

                                        Also zum Thema nicht locker lassen:
                                        M-Tec reagiert nicht mehr auf meine Mails und am Telefon werde ich abgespeist, dass ich mich an den Installateur wenden muss. Da bleiben die ebenfalls recht stur in deren Haltung. M-Tec gibt keinen Endkunden-Service bzw. Hilfe. 3x schon versucht. Erst mit lieb und nett, später auch mit etwas mehr schärfe. Bin tatsächlich etwas ratlos, wer in einem Problemfall künftig meine Anlage betreuen kann...

                                        Und die Situation mit dem Installateur ... da brauch ich gar nicht erst anfangen.

                                        Wegen Notfallheizung und PV-Überschuss: Ja das dachte ich auch und so war es geplant: PV-Überschuss --> 6kW Heizstab.
                                        Aktuell hat der Installateur aber meine 9kW Notfallheizung mit PV-Überschuss gekoppelt (was für mich aus mehreren Gründen keinen Sinn ergibt) und der 6kW Heizstab ist lahmgelegt (bzw. manuell über Drehregler zuschaltbar) Ob die Notfallheizung nun auch noch als Notfallheizung geht --> ? (Gemäß Installateur nicht, nur PV Überschuss)

                                        Zusätzlich zum PV Überschuss im Heizstab, wollte ich die besagte Notfallheizug als Notfallheizung behalten. Dass das entweder oder ist, weil M-Tec nur eine externe Heizung kann, ist blöd. Hätt ich mir eine der beiden Heizungen sparen können. Oder ich mache es so wie du geschrieben hast mit Modbus.

                                        Danke dir für das hochgeladene Dokument :) Das führ ich mir mal zu Gemüte

                                        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

                                        805

                                        Online

                                        32.5k

                                        Benutzer

                                        81.8k

                                        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