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. [gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO

NEWS

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

[gelöst] Benötige Hilfe MODBUS TCP: Hoymiles HM-1500/DTU-PRO

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
87 Beiträge 24 Kommentatoren 30.5k 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.
  • S Offline
    S Offline
    s8472
    schrieb am zuletzt editiert von
    #73

    @sigika
    Hallo,
    "ILLEGAL FUNCTION" bezieht sich, soweit ich das beobachtet habe, auf den Modbus Function Code. Also um welchen registertyp es sich handelt, und ob im Block oder einzeln gelesen / geschrieben wird. Ich habe die Meldung immer bekommen, wenn (durch die unglückliche Adressberechnung der DTU) eine Adresse außerhalb des gültigen Adressbereichs heraus kam, oder nicht als Holding abgefragt habe (sie Register Liste von Hoymiles: function code 0x03.

    wichtig war bei mir, dass die 1. Adresse im Block mit der offiziellen Adressliste übereinstimmt und dann die Register ab da zusammenhängend im Block gelesen werden.

    Gruß

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      SigiKa
      schrieb am zuletzt editiert von
      #74

      @s8472

      Hallo,
      Danke, jetzt komme ich schon weiter. Da bin ich wohl auch an den komischen Offset der Adressen aus der DTU gescheitert. So wie es aussieht hat die DTU-Pro die selben Adressen/Register wie die DTU-Pro-S.

      Mit der Anleitung aus deiner Konfiguration und Eintrag in die Holdingregister, sehe ich jetzt auch Werte (nicht alle, weil schon finster und die Micros off sind ...) Aber den Error habe ich jetzt endlich weg.

      Eine DTU spezifische Frage hätte ich noch, vielleicht bist du auch schon darüber gestolpert:
      Nachdem die RS484 Schnittstelle auf "Remote Control" geändert wurde, funktioniert dann das "Export Management" noch? Ich verwende in meiner DTU eine Nulleinspeisung. Ist die dann noch aktiv, oder muss ich die jetzt ständig selber über den ioBroker abgleichen?
      Und wie schaut es mit der Verbindung zur Cloud aus, die ist mit der Umstellung des modbus auch nicht mehr aktiv, oder?

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        s8472
        schrieb am zuletzt editiert von
        #75

        Moin,
        zum Export Management kann ich nichts sagen. Habe ich nicht weiter getestet, weil ich es nicht nutze.
        Die Cloud-Anbindung funktionierte bei mir weiter (habe ich zur Plausibilitätsprüfung der Messwerte verwendet).

        1 Antwort Letzte Antwort
        0
        • S s8472

          Hallo,
          ich habe mich seit gestern auch einmal mit den Modbus Datenpunkten der DTU befasst und an mir selbst gezweifelt. (DTU-Pro-S mit HMS-800-2T)
          Schuld ist die Adressierung, die die DTU verwendet. diese ist Byte-orientiert. Das führt dazu, dass die Adressen zwischen DTU und ioBroker (und anderen Modbus Clients) abweichen: die DTU zählt die Bytes ab der Startadresse hoch. ioBroker und andere zählen die Worte ab der Startadresse hoch. Und da die Register immer als Block (function code 0x03) gelesen werden...

          Wichtig ist in den Allgemeinen Einstellungen noch die Blockgröße von 40 (oder einem Mehrfachen davon) Registern:
          Clipboard01.png

          Hier einmal beispielhaft meine Datenpunkte für die Holding-Register:

          _address	name	description	unit	type	len	factor	offset	formula	role	room	poll	wp	cw	isScale
          4096	Inverter.1.SN.0			uint8be	1	1	0	x.toString(16)	value		true	false	false	false
          4097	Inverter.1.SN.1			uint8le	1	1	0	x.toString(16)	value		true	false	false	false
          4097	Inverter.1.SN.2			uint8be	1	1	0	x.toString(16)	value		true	false	false	false
          4098	Inverter.1.SN.4			uint8be	1	1	0	x.toString(16)	value		true	false	false	false
          4098	Inverter.1.SN.3			uint8le	1	1	0	x.toString(16)	value		true	false	false	false
          4099	Inverter.1.SN.5			uint8le	1	1	0	x.toString(16)	value		true	false	false	false
          4099	Inverter.1.Port			uint8be	1	1	0		value		true	false	false	false
          4100	Inverter.1.PV.Spannung		V	uint16be	1	0.1	0		value		true	false	false	false
          4101	Inverter.1.PV.Strom		A	uint16be	1	0.01	0		value		true	false	false	false
          4102	Inverter.1.Netz.Spannung		V	uint16be	1	0.1	0		value		true	false	false	false
          4103	Inverter.1.Netz.Frequenz		Hz	uint16be	1	0.01	0		value		true	false	false	false
          4104	Inverter.1.PV.Leistung		W	uint16be	1	0.1	0		value		true	false	false	false
          4105	Inverter.1.Energie.heute		Wh	uint16be	1	1	0		value		true	false	false	false
          4106	Inverter.1.Energie.gesamt		Wh	uint32be	2	1	0		value		true	false	false	false
          4108	Inverter.1.Temperatur		°C	int16be	1	0.1	0		value.temperature		true	false	false	false
          4109	Inverter.1.Status			int16be	1	1	0		state		true	false	false	false
          4110	Inverter.1.Alarm.Code			int16be	1	1	0		state		true	false	false	false
          4111	Inverter.1.Alarm.Count			int16be	1	1	0		value		true	false	false	false
          

          Ergebis:
          1cbd9377-e64f-4cc4-838f-5e0acc5c767a-image.png

          S Offline
          S Offline
          Shakesbier
          schrieb am zuletzt editiert von
          #76

          @s8472 mit welcher Adresse würde es denn mit Inverter 2 weitergehen?

          Das ist ja echt irgendwie tricki das Ganze 🙈

          Danke dir.

          Gruß

          1 Antwort Letzte Antwort
          0
          • S s8472

            Hallo,
            ich habe mich seit gestern auch einmal mit den Modbus Datenpunkten der DTU befasst und an mir selbst gezweifelt. (DTU-Pro-S mit HMS-800-2T)
            Schuld ist die Adressierung, die die DTU verwendet. diese ist Byte-orientiert. Das führt dazu, dass die Adressen zwischen DTU und ioBroker (und anderen Modbus Clients) abweichen: die DTU zählt die Bytes ab der Startadresse hoch. ioBroker und andere zählen die Worte ab der Startadresse hoch. Und da die Register immer als Block (function code 0x03) gelesen werden...

            Wichtig ist in den Allgemeinen Einstellungen noch die Blockgröße von 40 (oder einem Mehrfachen davon) Registern:
            Clipboard01.png

            Hier einmal beispielhaft meine Datenpunkte für die Holding-Register:

            _address	name	description	unit	type	len	factor	offset	formula	role	room	poll	wp	cw	isScale
            4096	Inverter.1.SN.0			uint8be	1	1	0	x.toString(16)	value		true	false	false	false
            4097	Inverter.1.SN.1			uint8le	1	1	0	x.toString(16)	value		true	false	false	false
            4097	Inverter.1.SN.2			uint8be	1	1	0	x.toString(16)	value		true	false	false	false
            4098	Inverter.1.SN.4			uint8be	1	1	0	x.toString(16)	value		true	false	false	false
            4098	Inverter.1.SN.3			uint8le	1	1	0	x.toString(16)	value		true	false	false	false
            4099	Inverter.1.SN.5			uint8le	1	1	0	x.toString(16)	value		true	false	false	false
            4099	Inverter.1.Port			uint8be	1	1	0		value		true	false	false	false
            4100	Inverter.1.PV.Spannung		V	uint16be	1	0.1	0		value		true	false	false	false
            4101	Inverter.1.PV.Strom		A	uint16be	1	0.01	0		value		true	false	false	false
            4102	Inverter.1.Netz.Spannung		V	uint16be	1	0.1	0		value		true	false	false	false
            4103	Inverter.1.Netz.Frequenz		Hz	uint16be	1	0.01	0		value		true	false	false	false
            4104	Inverter.1.PV.Leistung		W	uint16be	1	0.1	0		value		true	false	false	false
            4105	Inverter.1.Energie.heute		Wh	uint16be	1	1	0		value		true	false	false	false
            4106	Inverter.1.Energie.gesamt		Wh	uint32be	2	1	0		value		true	false	false	false
            4108	Inverter.1.Temperatur		°C	int16be	1	0.1	0		value.temperature		true	false	false	false
            4109	Inverter.1.Status			int16be	1	1	0		state		true	false	false	false
            4110	Inverter.1.Alarm.Code			int16be	1	1	0		state		true	false	false	false
            4111	Inverter.1.Alarm.Count			int16be	1	1	0		value		true	false	false	false
            

            Ergebis:
            1cbd9377-e64f-4cc4-838f-5e0acc5c767a-image.png

            S Offline
            S Offline
            Shakesbier
            schrieb am zuletzt editiert von
            #77

            @s8472 Hi.

            Also ich hab das jetzt mal so eingetragen.

            Sieht soweit auch recht gut aus.

            Nur bei der PV Leistung wird mir nur die Leistung von einem Solarmodul angezeigt. (Habe 2 Stück installiert)

            Weißt du eventuell warum das so sein könnte?

            Danke dir.

            S 1 Antwort Letzte Antwort
            0
            • S Shakesbier

              @s8472 Hi.

              Also ich hab das jetzt mal so eingetragen.

              Sieht soweit auch recht gut aus.

              Nur bei der PV Leistung wird mir nur die Leistung von einem Solarmodul angezeigt. (Habe 2 Stück installiert)

              Weißt du eventuell warum das so sein könnte?

              Danke dir.

              S Offline
              S Offline
              s8472
              schrieb am zuletzt editiert von
              #78

              Moin @shakesbier ,
              ein Wechselrichtereingang belegt 1 Datenblock.
              Ein Dualwechselrichter de entsprechen 2.
              Das kann man auch an der Seriennummer erkennen.

              S 1 Antwort Letzte Antwort
              0
              • S s8472

                Moin @shakesbier ,
                ein Wechselrichtereingang belegt 1 Datenblock.
                Ein Dualwechselrichter de entsprechen 2.
                Das kann man auch an der Seriennummer erkennen.

                S Offline
                S Offline
                Shakesbier
                schrieb am zuletzt editiert von
                #79

                @s8472 Hi.

                Danke schon mal.

                Wie muss ich das denn in den Registern eintragen?

                Bin da sehr unerfahren 🙈

                Gruß Shakesbier

                S 1 Antwort Letzte Antwort
                0
                • S Shakesbier

                  @s8472 Hi.

                  Danke schon mal.

                  Wie muss ich das denn in den Registern eintragen?

                  Bin da sehr unerfahren 🙈

                  Gruß Shakesbier

                  S Offline
                  S Offline
                  s8472
                  schrieb am zuletzt editiert von
                  #80

                  Es sind immer 40er Datenblöcke.
                  deswegen ist es auch wichtig in den Allgemeinen Einstellungen die Blockgröße auf 40 Byte zu stellen.

                  4096	Inverter.1.SN.0
                  4097	Inverter.1.SN.1
                  4097	Inverter.1.SN.2
                  4098	Inverter.1.SN.3
                  4098	Inverter.1.SN.4
                  4099	Inverter.1.SN.5
                  4099	Inverter.1.Port
                  4100	Inverter.1.PV.Spannung
                  4101	Inverter.1.PV.Strom
                  4102	Inverter.1.Netz.Spannung
                  4103	Inverter.1.Netz.Frequenz
                  4104	Inverter.1.PV.Leistung
                  4105	Inverter.1.Energie.heute
                  4106	Inverter.1.Energie.gesamt
                  4108	Inverter.1.Temperatur
                  4109	Inverter.1.Status
                  4110	Inverter.1.Alarm.Code
                  4111	Inverter.1.Alarm.Count
                  4112	Inverter.1.Link
                  	
                  4136	Inverter.2.SN.0
                  4137	Inverter.2.SN.1
                  4137	Inverter.2.SN.2
                  4138	Inverter.2.SN.3
                  4138	Inverter.2.SN.4
                  4139	Inverter.2.SN.5
                  4139	Inverter.2.Port
                  4140	Inverter.2.PV.Spannung
                  4141	Inverter.2.PV.Strom
                  4142	Inverter.2.Netz.Spannung
                  4143	Inverter.2.Netz.Frequenz
                  4144	Inverter.2.PV.Leistung
                  4145	Inverter.2.Energie.heute
                  4146	Inverter.2.Energie.gesamt
                  4148	Inverter.2.Temperatur
                  4149	Inverter.2.Status
                  4150	Inverter.2.Alarm.Code
                  4151	Inverter.2.Alarm.Count
                  4152	Inverter.2.Link
                  	
                  4176	Inverter.3.SN.0
                  4177	Inverter.3.SN.1
                  4177	Inverter.3.SN.2
                  4178	Inverter.3.SN.3
                  4178	Inverter.3.SN.4
                  4179	Inverter.3.SN.5
                  4179	Inverter.3.Port
                  4180	Inverter.3.PV.Spannung
                  4181	Inverter.3.PV.Strom
                  4182	Inverter.3.Netz.Spannung
                  4183	Inverter.3.Netz.Frequenz
                  4184	Inverter.3.PV.Leistung
                  4185	Inverter.3.Energie.heute
                  4186	Inverter.3.Energie.gesamt
                  4188	Inverter.3.Temperatur
                  4189	Inverter.3.Status
                  4190	Inverter.3.Alarm.Code
                  4191	Inverter.3.Alarm.Count
                  4192	Inverter.3.Link
                  

                  und immer so weiter je Eingang

                  S 1 Antwort Letzte Antwort
                  0
                  • S s8472

                    Es sind immer 40er Datenblöcke.
                    deswegen ist es auch wichtig in den Allgemeinen Einstellungen die Blockgröße auf 40 Byte zu stellen.

                    4096	Inverter.1.SN.0
                    4097	Inverter.1.SN.1
                    4097	Inverter.1.SN.2
                    4098	Inverter.1.SN.3
                    4098	Inverter.1.SN.4
                    4099	Inverter.1.SN.5
                    4099	Inverter.1.Port
                    4100	Inverter.1.PV.Spannung
                    4101	Inverter.1.PV.Strom
                    4102	Inverter.1.Netz.Spannung
                    4103	Inverter.1.Netz.Frequenz
                    4104	Inverter.1.PV.Leistung
                    4105	Inverter.1.Energie.heute
                    4106	Inverter.1.Energie.gesamt
                    4108	Inverter.1.Temperatur
                    4109	Inverter.1.Status
                    4110	Inverter.1.Alarm.Code
                    4111	Inverter.1.Alarm.Count
                    4112	Inverter.1.Link
                    	
                    4136	Inverter.2.SN.0
                    4137	Inverter.2.SN.1
                    4137	Inverter.2.SN.2
                    4138	Inverter.2.SN.3
                    4138	Inverter.2.SN.4
                    4139	Inverter.2.SN.5
                    4139	Inverter.2.Port
                    4140	Inverter.2.PV.Spannung
                    4141	Inverter.2.PV.Strom
                    4142	Inverter.2.Netz.Spannung
                    4143	Inverter.2.Netz.Frequenz
                    4144	Inverter.2.PV.Leistung
                    4145	Inverter.2.Energie.heute
                    4146	Inverter.2.Energie.gesamt
                    4148	Inverter.2.Temperatur
                    4149	Inverter.2.Status
                    4150	Inverter.2.Alarm.Code
                    4151	Inverter.2.Alarm.Count
                    4152	Inverter.2.Link
                    	
                    4176	Inverter.3.SN.0
                    4177	Inverter.3.SN.1
                    4177	Inverter.3.SN.2
                    4178	Inverter.3.SN.3
                    4178	Inverter.3.SN.4
                    4179	Inverter.3.SN.5
                    4179	Inverter.3.Port
                    4180	Inverter.3.PV.Spannung
                    4181	Inverter.3.PV.Strom
                    4182	Inverter.3.Netz.Spannung
                    4183	Inverter.3.Netz.Frequenz
                    4184	Inverter.3.PV.Leistung
                    4185	Inverter.3.Energie.heute
                    4186	Inverter.3.Energie.gesamt
                    4188	Inverter.3.Temperatur
                    4189	Inverter.3.Status
                    4190	Inverter.3.Alarm.Code
                    4191	Inverter.3.Alarm.Count
                    4192	Inverter.3.Link
                    

                    und immer so weiter je Eingang

                    S Offline
                    S Offline
                    Shakesbier
                    schrieb am zuletzt editiert von
                    #81

                    @s8472 ahhhh jetzt verstehe ich.

                    Inverter 1 ist der 1. Eingang und Inverter 2 der 2. Eingang.

                    Jeder Eingang hat 40 Blöcke.

                    Wenn ich einen 2. Wechselrichter habe.

                    Beginnt der dann beim Block Inverter 3?

                    Gruß

                    S 1 Antwort Letzte Antwort
                    0
                    • S Shakesbier

                      @s8472 ahhhh jetzt verstehe ich.

                      Inverter 1 ist der 1. Eingang und Inverter 2 der 2. Eingang.

                      Jeder Eingang hat 40 Blöcke.

                      Wenn ich einen 2. Wechselrichter habe.

                      Beginnt der dann beim Block Inverter 3?

                      Gruß

                      S Offline
                      S Offline
                      s8472
                      schrieb am zuletzt editiert von
                      #82

                      @shakesbier genau 👍

                      S 1 Antwort Letzte Antwort
                      0
                      • S s8472

                        @shakesbier genau 👍

                        S Offline
                        S Offline
                        Shakesbier
                        schrieb am zuletzt editiert von
                        #83

                        @s8472 perfekt.

                        Danke dir 😊

                        Probier ich später mal aus

                        S 1 Antwort Letzte Antwort
                        0
                        • S Shakesbier

                          @s8472 perfekt.

                          Danke dir 😊

                          Probier ich später mal aus

                          S Offline
                          S Offline
                          Shakesbier
                          schrieb am zuletzt editiert von
                          #84

                          @shakesbier
                          So du bist der Beste.

                          Klappt einwandfrei.

                          Kann man den Chint Zähler auch per Modbus (Iobroker) auslesen?

                          S 1 Antwort Letzte Antwort
                          0
                          • S Shakesbier

                            @shakesbier
                            So du bist der Beste.

                            Klappt einwandfrei.

                            Kann man den Chint Zähler auch per Modbus (Iobroker) auslesen?

                            S Offline
                            S Offline
                            s8472
                            schrieb am zuletzt editiert von
                            #85

                            @shakesbier
                            Ist der Zähler für Einspeisemanagement an die DTU angeschlossen? Dafür stehen keine Register in der Liste.
                            Eventuell direkt in ioBroker einbinden?

                            1 Antwort Letzte Antwort
                            0
                            • L Offline
                              L Offline
                              leopard330
                              schrieb am zuletzt editiert von
                              #86

                              Bei firmware V00.02.23 von DTU, geht es nicht mehr mit diese daten.

                              Poll error count: 1 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"}

                              Auf altere firmware, lief alles perfect

                              1 Antwort Letzte Antwort
                              0
                              • Frank WetterichF Offline
                                Frank WetterichF Offline
                                Frank Wetterich
                                schrieb am zuletzt editiert von
                                #87

                                Hallo zusammen,
                                ich habe eine generelle Frage zu den Daten.
                                Ihr verwendet Uint16 (generell) und Uint32 (für Total Production)

                                Aber hat nicht ein Register 2 Byte, also füllt das Uint16 schon aus?
                                Mein Gedanke: müssten nicht alle Daten Uint32 sein und Total Production Unit64?
                                Vielleicht habe ich einen Denkfehler - gern korrigieren ;)

                                Gruß Faddl

                                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

                                648

                                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