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. Modbus ILLEGAL DATA ADDRESS

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Modbus ILLEGAL DATA ADDRESS

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
22 Beiträge 6 Kommentatoren 5.0k Aufrufe 5 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.
  • SoeniS Soeni

    @wendy2702
    OK Fehler meinerseits. nehmen wir Register E140 -> 57664 Auch hier +-1 ausprobiert, gleiches Phänomen.

    1d56ec8b-af8b-441f-8d95-4aa9eef83b7c-grafik.png

    So sieht das bei mir aus.

    c92bc778-98b7-4bae-91e5-d015e995c472-grafik.png

    Und so die Einstellungen.

    SoeniS Offline
    SoeniS Offline
    Soeni
    schrieb am zuletzt editiert von
    #6

    Hi, kann es sein, dass es deswegen nicht geht, weil die Adresse außerhalb des "Adressbereichs" von Holdingregistern ist? Also bis 49999? Wenn ja was kann man da machen?

    SoeniS wendy2702W 2 Antworten Letzte Antwort
    0
    • SoeniS Soeni

      Hi, kann es sein, dass es deswegen nicht geht, weil die Adresse außerhalb des "Adressbereichs" von Holdingregistern ist? Also bis 49999? Wenn ja was kann man da machen?

      SoeniS Offline
      SoeniS Offline
      Soeni
      schrieb am zuletzt editiert von
      #7

      Hat jemand für mich eine Idee, woran das liegen könnte? Wie ich das lösen kann?

      1 Antwort Letzte Antwort
      0
      • SoeniS Soeni

        Hi, kann es sein, dass es deswegen nicht geht, weil die Adresse außerhalb des "Adressbereichs" von Holdingregistern ist? Also bis 49999? Wenn ja was kann man da machen?

        wendy2702W Online
        wendy2702W Online
        wendy2702
        schrieb am zuletzt editiert von
        #8

        @soeni Adresse zum Testen mal bei Eingangs Register eingetragen?

        Ist das ein Register das auch beschrieben werden kann?

        Bitte keine Fragen per PN, die gehören ins Forum!

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        SoeniS 1 Antwort Letzte Antwort
        0
        • wendy2702W wendy2702

          @soeni Adresse zum Testen mal bei Eingangs Register eingetragen?

          Ist das ein Register das auch beschrieben werden kann?

          SoeniS Offline
          SoeniS Offline
          Soeni
          schrieb am zuletzt editiert von
          #9

          @wendy2702 Hi, habe ich ausprbiert, hier lautet der Fehler dann " Poll error count: 6 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"}"

          GlasfaserG 2 Antworten Letzte Antwort
          0
          • SoeniS Soeni

            @wendy2702 Hi, habe ich ausprbiert, hier lautet der Fehler dann " Poll error count: 6 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"}"

            GlasfaserG Offline
            GlasfaserG Offline
            Glasfaser
            schrieb am zuletzt editiert von
            #10

            @soeni

            Kannst du hiermit etwas anfangen , zum auslesen der Batterie :

            https://www.photovoltaikforum.com/thread/120980-akkustand-per-modbus-tcp-auslesen-solaredge-lg-resu-10h/?pageNo=8

            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

            1 Antwort Letzte Antwort
            0
            • SoeniS Soeni

              @wendy2702 Hi, habe ich ausprbiert, hier lautet der Fehler dann " Poll error count: 6 code: {"errorCode":132,"exceptionCode":1,"message":"ILLEGAL FUNCTION"}"

              GlasfaserG Offline
              GlasfaserG Offline
              Glasfaser
              schrieb am zuletzt editiert von
              #11

              @soeni

              Bist du mit dem im Link aufgeführten Register der Batterieabfrage weiter gekommen !?

              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

              SoeniS 1 Antwort Letzte Antwort
              0
              • GlasfaserG Glasfaser

                @soeni

                Bist du mit dem im Link aufgeführten Register der Batterieabfrage weiter gekommen !?

                SoeniS Offline
                SoeniS Offline
                Soeni
                schrieb am zuletzt editiert von
                #12

                @glasfaser
                Hi, hat leider etwas gedauert. ich habe auch die ausprobiert aber es geht nicht. Was halt komisch ist, wie oben beschrieben das Pythonprojekt funktioniert

                class Battery(SolarEdge):
                
                    def __init__(self, offset=False, *args, **kwargs):
                        self.model = f"Battery{offset + 1}"
                        self.wordorder = Endian.Little
                
                        super().__init__(*args, **kwargs)
                
                        self.offset = BATTERY_REGISTER_OFFSETS[offset]
                        self.registers = {
                            "c_manufacturer": (0xe100 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Manufacturer", "", 1),
                            "c_model": (0xe110 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Model", "", 1),
                            "c_version": (0xe120 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Version", "", 1),
                            "c_serialnumber": (0xe130 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Serial", "", 1),
                            "c_deviceaddress": (0xe140 + self.offset, 1, registerType.HOLDING, registerDataType.UINT16, int, "Modbus ID", "", 1),
                            "c_sunspec_did": (0xe141 + self.offset, 1, registerType.HOLDING, registerDataType.UINT16, int, "SunSpec DID", "", 1),
                
                            "rated_energy": (0xe142 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Rated Energy", "Wh", 2),
                            "maximum_charge_continuous_power": (0xe144 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Charge Continuous Power", "W", 2),
                            "maximum_discharge_continuous_power": (0xe146 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Discharge Continuous Power", "W", 2),
                            "maximum_charge_peak_power": (0xe148 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Charge Peak Power", "W", 2),
                            "maximum_discharge_peak_power": (0xe14a + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Discharge Peak Power", "W", 2),
                
                            "average_temperature": (0xe16c + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Average Temperature", "°C", 2),
                            "maximum_temperature": (0xe16e + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Temperature", "°C", 2),
                
                            "instantaneous_voltage": (0xe170 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Voltage", "V", 2),
                            "instantaneous_current": (0xe172 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Current", "A", 2),
                            "instantaneous_power": (0xe174 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Power", "W", 2),
                
                            "lifetime_export_energy_counter": (0xe176 + self.offset, 4, registerType.HOLDING, registerDataType.UINT64, int, "Total Exported Energy", "Wh", 2),
                            "lifetime_import_energy_counter": (0xe17A + self.offset, 4, registerType.HOLDING, registerDataType.UINT64, int, "Total Imported Energy", "Wh", 2),
                
                            "maximum_energy": (0xe17e + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Energy", "Wh", 2),
                            "available_energy": (0xe180 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Available Energy", "Wh", 2),
                
                            "soh": (0xe182 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "State of Health (SOH)", "%", 2),
                            "soe": (0xe184 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "State of Energy (SOE)", "%", 2),
                
                            "status": (0xe186 + self.offset, 2, registerType.HOLDING, registerDataType.UINT32, int, "Status", BATTERY_STATUS_MAP, 2),
                            "status_internal": (0xe188 + self.offset, 2, registerType.HOLDING, registerDataType.UINT32, int, "Internal Status", BATTERY_STATUS_MAP, 2),
                
                            "event_log": (0xe18a + self.offset, 2, registerType.HOLDING, registerDataType.UINT16, int, "Event Log", "", 2),
                            "event_log_internal": (0xe192 + self.offset, 2, registerType.HOLDING, registerDataType.UINT16, int, "Internal Event Log", "", 2),
                        }
                
                

                nach dem Codeausschnitt sind das Holdingregister

                GlasfaserG M 2 Antworten Letzte Antwort
                0
                • SoeniS Soeni

                  @glasfaser
                  Hi, hat leider etwas gedauert. ich habe auch die ausprobiert aber es geht nicht. Was halt komisch ist, wie oben beschrieben das Pythonprojekt funktioniert

                  class Battery(SolarEdge):
                  
                      def __init__(self, offset=False, *args, **kwargs):
                          self.model = f"Battery{offset + 1}"
                          self.wordorder = Endian.Little
                  
                          super().__init__(*args, **kwargs)
                  
                          self.offset = BATTERY_REGISTER_OFFSETS[offset]
                          self.registers = {
                              "c_manufacturer": (0xe100 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Manufacturer", "", 1),
                              "c_model": (0xe110 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Model", "", 1),
                              "c_version": (0xe120 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Version", "", 1),
                              "c_serialnumber": (0xe130 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Serial", "", 1),
                              "c_deviceaddress": (0xe140 + self.offset, 1, registerType.HOLDING, registerDataType.UINT16, int, "Modbus ID", "", 1),
                              "c_sunspec_did": (0xe141 + self.offset, 1, registerType.HOLDING, registerDataType.UINT16, int, "SunSpec DID", "", 1),
                  
                              "rated_energy": (0xe142 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Rated Energy", "Wh", 2),
                              "maximum_charge_continuous_power": (0xe144 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Charge Continuous Power", "W", 2),
                              "maximum_discharge_continuous_power": (0xe146 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Discharge Continuous Power", "W", 2),
                              "maximum_charge_peak_power": (0xe148 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Charge Peak Power", "W", 2),
                              "maximum_discharge_peak_power": (0xe14a + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Discharge Peak Power", "W", 2),
                  
                              "average_temperature": (0xe16c + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Average Temperature", "°C", 2),
                              "maximum_temperature": (0xe16e + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Temperature", "°C", 2),
                  
                              "instantaneous_voltage": (0xe170 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Voltage", "V", 2),
                              "instantaneous_current": (0xe172 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Current", "A", 2),
                              "instantaneous_power": (0xe174 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Power", "W", 2),
                  
                              "lifetime_export_energy_counter": (0xe176 + self.offset, 4, registerType.HOLDING, registerDataType.UINT64, int, "Total Exported Energy", "Wh", 2),
                              "lifetime_import_energy_counter": (0xe17A + self.offset, 4, registerType.HOLDING, registerDataType.UINT64, int, "Total Imported Energy", "Wh", 2),
                  
                              "maximum_energy": (0xe17e + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Energy", "Wh", 2),
                              "available_energy": (0xe180 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Available Energy", "Wh", 2),
                  
                              "soh": (0xe182 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "State of Health (SOH)", "%", 2),
                              "soe": (0xe184 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "State of Energy (SOE)", "%", 2),
                  
                              "status": (0xe186 + self.offset, 2, registerType.HOLDING, registerDataType.UINT32, int, "Status", BATTERY_STATUS_MAP, 2),
                              "status_internal": (0xe188 + self.offset, 2, registerType.HOLDING, registerDataType.UINT32, int, "Internal Status", BATTERY_STATUS_MAP, 2),
                  
                              "event_log": (0xe18a + self.offset, 2, registerType.HOLDING, registerDataType.UINT16, int, "Event Log", "", 2),
                              "event_log_internal": (0xe192 + self.offset, 2, registerType.HOLDING, registerDataType.UINT16, int, "Internal Event Log", "", 2),
                          }
                  
                  

                  nach dem Codeausschnitt sind das Holdingregister

                  GlasfaserG Offline
                  GlasfaserG Offline
                  Glasfaser
                  schrieb am zuletzt editiert von
                  #13

                  @soeni

                  Ist nur komisch ... laut dem Thread geht es .
                  Würde es gerne selber testen , aber ich habe meine Solaredge PV Anlage noch nicht .

                  Was ist hiermit :

                  Register 62836 als float(swap) steht für Batterieleistung [W], neg= Entladung, pos=Ladung der Batterie
                  Register 62852 als float(swap) steht für Batterieladung [%]
                  Register 62854 als uint16 steht für Betriebszustand, nämlich:
                  1: Aus
                  3: Laden
                  4: Entladen
                  6: Erhaltungsladen
                  
                  ---------------
                  

                  Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                  SoeniS 1 Antwort Letzte Antwort
                  0
                  • GlasfaserG Glasfaser

                    @soeni

                    Ist nur komisch ... laut dem Thread geht es .
                    Würde es gerne selber testen , aber ich habe meine Solaredge PV Anlage noch nicht .

                    Was ist hiermit :

                    Register 62836 als float(swap) steht für Batterieleistung [W], neg= Entladung, pos=Ladung der Batterie
                    Register 62852 als float(swap) steht für Batterieladung [%]
                    Register 62854 als uint16 steht für Betriebszustand, nämlich:
                    1: Aus
                    3: Laden
                    4: Entladen
                    6: Erhaltungsladen
                    
                    ---------------
                    
                    SoeniS Offline
                    SoeniS Offline
                    Soeni
                    schrieb am zuletzt editiert von
                    #14

                    @glasfaser ja ich habe da auch mal gefragt, aber die mit denen ich gesprochen habe nutzen nicht iobroker sondern andere Tools um dann über modbus zu kommunizieren. Deshalb dachte ich, dass iobroker hier vielleicht ein problem hat. auch weil die Register eigentlich außerhalb der Adressbereiche liegen.

                    wendy2702W 1 Antwort Letzte Antwort
                    0
                    • SoeniS Soeni

                      @glasfaser ja ich habe da auch mal gefragt, aber die mit denen ich gesprochen habe nutzen nicht iobroker sondern andere Tools um dann über modbus zu kommunizieren. Deshalb dachte ich, dass iobroker hier vielleicht ein problem hat. auch weil die Register eigentlich außerhalb der Adressbereiche liegen.

                      wendy2702W Online
                      wendy2702W Online
                      wendy2702
                      schrieb am zuletzt editiert von
                      #15

                      @soeni Mal ohne den Offset probiert?

                      Bitte keine Fragen per PN, die gehören ins Forum!

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      SoeniS 1 Antwort Letzte Antwort
                      0
                      • wendy2702W wendy2702

                        @soeni Mal ohne den Offset probiert?

                        SoeniS Offline
                        SoeniS Offline
                        Soeni
                        schrieb am zuletzt editiert von
                        #16

                        @wendy2702 ja +-1 habe ich jeweisl probiert.

                        1 Antwort Letzte Antwort
                        0
                        • SoeniS Soeni

                          Hallo,

                          ich verwende den IObroker und den Modbusadapter. Ich versuche mit meinem Wechselrichter (SolarEdge) zu kommunizieren. Die Register um 40000 aufwärts lassen sich problemlos lesen. Der Versuch das Register 57665 zu lesen wird mit

                          "Poll error count: 6 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}"
                          

                          abgebrochen. Nun dachte ich ich mache einen Fehler und die Register existieren bei mir irgendwie nicht. Ich habe lange gesucht und viel ausprobiert. Letztendlich habe ich ein pythonscript gefunden, welches darüber über MODBUS TCP die Register ausließt. Da geht es auf einmal die Adresse 57665 zu lesen. Bei IObroker habe ich dann die Adresse um +-1 geändert, jedoch ohne Erfolg. Was kann ich noch tun damit das funktioniert?

                          M Offline
                          M Offline
                          matty67
                          schrieb am zuletzt editiert von
                          #17

                          @soeni Ich bin beim Einrichten des iobrokers über deine Frage gestolpert.
                          Ich hatte dasselbe Problem. Der Datentyp muss floatsw sein.
                          Hier meine Konfig:

                          _address	name	description	unit	type	len	factor	offset	formula	role	room	poll	wp	cw	isScale
                          40000	C_SunSpec_ID	"Wert = ""SunS"" (0x53756e53). Identifiziert dies eindeutig als eine SunSpec Modbus-Karte"		uint32be	2	1	0		value		true	false	false	false
                          40002	C_SunSpec_DID	Wert = 0x0001. Identifiziert dies eindeutig als einen SunSpec “Common Block“		uint16be	1	1	0		value		true	false	false	false
                          40003	C_SunSpec_Länge	65 = Länge eines Blocks in 16-bit Registern		uint16be	1	1	0		value		true	false	false	false
                          40004	C_Hersteller	"Bei SunSpec eingetragener Wert = ""SolarEdge"""		string	16	1	0		value		true	false	false	false
                          40020	C_Modell	Spezifischer SolarEdge Wert		string	16	1	0		value		true	false	false	false
                          40044	C_Version	Spezifischer SolarEdge Wert		string	8	1	0		value		true	false	false	false
                          40052	C_Seriennummer	Eindeutiger SolarEdge Wert		string	16	1	0		value		true	false	false	false
                          40069	C_SunSpec_DID	101 = Einphasig, 102 = Spaltphase, 103 = Dreiphasig		uint16be	1	1	0		value		true	false	false	false
                          40071	I_AC_Strom	AC-Gesamtstromwert	A	uint16be	1	1	0		value		true	false	false	false
                          40072	I_AC_StromA	AC-Phase A (L1) Stromwert	A	uint16be	1	1	0		value		true	false	false	false
                          40073	I_AC_StromB	AC-Phase B (L2) Stromwert	A	uint16be	1	1	0		value		true	false	false	false
                          40074	I_AC_StromC	AC-Phase C (L3) Stromwert	A	uint16be	1	1	0		value		true	false	false	false
                          40075	I_AC_Strom_SF	AC-Strom Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40083	I_AC_Leistung	AC-Leistungswert	W	uint16be	1	1	0		value		true	false	false	false
                          40084	I_AC_Leistung_SF	AC-Leistung Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40087	I_AC_VA	Scheinleistung	VA	uint16be	1	1	0		value		true	false	false	false
                          40088	I_AC_VA_SF	Scheinleistung Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40089	I_AC_VAR	Blindleistung	VAR	uint16be	1	1	0		value		true	false	false	false
                          40090	I_AC_VAR_SF	Blindleistung Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40091	I_AC_PF	Leistungsfaktor	%	uint16be	1	1	0		value		true	false	false	false
                          40092	I_AC_PF_SF	Leistungsfaktor Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40093	I_AC_Energie_WH	AC Gesamt-Energieproduktion	Wh	uint32be	2	1	0		value		true	false	false	false
                          40095	I_AC_Energie_WH_SF	AC Gesamtenergie Skalierungsfaktor	SF	uint16be	1	1	0		value		true	false	false	true
                          40096	I_DC_Strom	DC-Stromwert	A	uint16be	1	1	0		value		true	false	false	false
                          40097	I_DC_Strom_SF	DC-Strom Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40098	I_DC_Spannung	DC-Spannungswert	V	uint16be	1	1	0		value		true	false	false	false
                          40099	I_DC_Spannung_SF	DC-Spannung Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40100	I_DC_Leistung	DC-Leistungswert	W	uint16be	1	1	0		value		true	false	false	false
                          40101	I_DC_Leistung_SF	DC-Leistung Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40103	I_Temp_Kühler	Kühlkörpertemperatur	°C	uint16be	1	1	0		value		true	false	false	false
                          40106	I_Temp_SF	Kühlkörpertemperatur Skalierungsfaktor	SF	int16be	1	1	0		value		true	false	false	true
                          40107	I_Status	Betriebszustand (1 = Aus, 2 = Schlafen (Automatisches Herunterfahren) – Nachtmodus, 3 = Aufwachen/Starten, 4 = Wechselrichter ist AN und wandelt Energie, 5 = Begrenzte Produktion, 6 = Herunterfahren, 7 = Fehler, 8 = Wartung/Setup)		uint16be	1	1	0		value		true	false	false	false
                          40108	I_Status_Anbieter	Anbieter-spezifischer Betriebszustand sowie Fehlercodes: 1 = Aus, 2 = Schlafen (Automatisches Herunterfahren) – Nachtmodus, 3 = Aufwachen/Starten, 4 = Wechselrichter ist AN und wandelt Energie, 5 = Begrenzte Produktion, 6 = Herunterfahren, 7 = Fehler, 8 = Wartung/Setup		uint16be	1	1	0		value		true	false	false	false
                          40123	C_Manufacturer	Meter manufacturer		string	32	1	0		value		true	false	false	false
                          40139	C_Model	Meter model		string	32	1	0		value		true	false	false	false
                          40155	C_Option	Export + Import, Production, consumption		string	16	1	0		value		true	false	false	false
                          40190	M_AC_Current	AC Current (sum of active phases)	A	uint16be	1	1	0		value		true	false	false	false
                          40194	M_AC_Current_S F	AC Current Scale Factor	SF	int16be	1	1	0		value		true	false	false	false
                          40206	M_AC_Power	Total Real Power (sum of active phases)	W	int16be	1	1	0		value		true	false	false	false
                          40210	M_AC_Power_SF	AC Real Power Scale Factor	SF	int16be	1	1	0		value		true	false	false	false
                          40226	M_Exported	Total Exported Real Energy	Wh	uint32be	2	1	0		value		true	false	false	false
                          40234	M_Imported	Total Imported Real Energy	Wh	uint32be	2	1	0		value		true	false	false	false
                          40242	M_Energy_W_SF	Real Energy Scale Factor	SF	int16be	1	1	0		value		true	false	false	false
                          57666	Battery_Rated_Energy	Rated Energy	Wh	floatsw	1	1	0		value		true	false	false	false
                          57716	Battery__Power	Battery Power	W	floatsw	1	1	0		value		true	false	false	false
                          
                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            bitwicht
                            schrieb am zuletzt editiert von
                            #18

                            @Soeni
                            hast du hier schon eine Lösung?
                            Ich habe exakt das gleiche Problem.

                            1 Antwort Letzte Antwort
                            0
                            • SoeniS Soeni

                              @glasfaser
                              Hi, hat leider etwas gedauert. ich habe auch die ausprobiert aber es geht nicht. Was halt komisch ist, wie oben beschrieben das Pythonprojekt funktioniert

                              class Battery(SolarEdge):
                              
                                  def __init__(self, offset=False, *args, **kwargs):
                                      self.model = f"Battery{offset + 1}"
                                      self.wordorder = Endian.Little
                              
                                      super().__init__(*args, **kwargs)
                              
                                      self.offset = BATTERY_REGISTER_OFFSETS[offset]
                                      self.registers = {
                                          "c_manufacturer": (0xe100 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Manufacturer", "", 1),
                                          "c_model": (0xe110 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Model", "", 1),
                                          "c_version": (0xe120 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Version", "", 1),
                                          "c_serialnumber": (0xe130 + self.offset, 16, registerType.HOLDING, registerDataType.STRING, str, "Serial", "", 1),
                                          "c_deviceaddress": (0xe140 + self.offset, 1, registerType.HOLDING, registerDataType.UINT16, int, "Modbus ID", "", 1),
                                          "c_sunspec_did": (0xe141 + self.offset, 1, registerType.HOLDING, registerDataType.UINT16, int, "SunSpec DID", "", 1),
                              
                                          "rated_energy": (0xe142 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Rated Energy", "Wh", 2),
                                          "maximum_charge_continuous_power": (0xe144 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Charge Continuous Power", "W", 2),
                                          "maximum_discharge_continuous_power": (0xe146 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Discharge Continuous Power", "W", 2),
                                          "maximum_charge_peak_power": (0xe148 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Charge Peak Power", "W", 2),
                                          "maximum_discharge_peak_power": (0xe14a + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Discharge Peak Power", "W", 2),
                              
                                          "average_temperature": (0xe16c + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Average Temperature", "°C", 2),
                                          "maximum_temperature": (0xe16e + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Temperature", "°C", 2),
                              
                                          "instantaneous_voltage": (0xe170 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Voltage", "V", 2),
                                          "instantaneous_current": (0xe172 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Current", "A", 2),
                                          "instantaneous_power": (0xe174 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Instantaneous Power", "W", 2),
                              
                                          "lifetime_export_energy_counter": (0xe176 + self.offset, 4, registerType.HOLDING, registerDataType.UINT64, int, "Total Exported Energy", "Wh", 2),
                                          "lifetime_import_energy_counter": (0xe17A + self.offset, 4, registerType.HOLDING, registerDataType.UINT64, int, "Total Imported Energy", "Wh", 2),
                              
                                          "maximum_energy": (0xe17e + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Maximum Energy", "Wh", 2),
                                          "available_energy": (0xe180 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "Available Energy", "Wh", 2),
                              
                                          "soh": (0xe182 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "State of Health (SOH)", "%", 2),
                                          "soe": (0xe184 + self.offset, 2, registerType.HOLDING, registerDataType.SEFLOAT, float, "State of Energy (SOE)", "%", 2),
                              
                                          "status": (0xe186 + self.offset, 2, registerType.HOLDING, registerDataType.UINT32, int, "Status", BATTERY_STATUS_MAP, 2),
                                          "status_internal": (0xe188 + self.offset, 2, registerType.HOLDING, registerDataType.UINT32, int, "Internal Status", BATTERY_STATUS_MAP, 2),
                              
                                          "event_log": (0xe18a + self.offset, 2, registerType.HOLDING, registerDataType.UINT16, int, "Event Log", "", 2),
                                          "event_log_internal": (0xe192 + self.offset, 2, registerType.HOLDING, registerDataType.UINT16, int, "Internal Event Log", "", 2),
                                      }
                              
                              

                              nach dem Codeausschnitt sind das Holdingregister

                              M Offline
                              M Offline
                              mguenther
                              schrieb am zuletzt editiert von
                              #19

                              @soeni
                              @glasfaser

                              habt ihr 2 ne Lösung für die Register der Batterien gefunden? Ich kann den Wechselrichter (Register 40001 bis 40109) und den Meter (Register 40140 bis 40243) auslesen. Leider aber nicht die Batterie.

                              Ich habe diese Register gefunden:
                              https://pastebin.com/khDMXu5L

                              und da bekomme ich genau eure Fehlermeldung

                              modbus.0
                              	2023-10-23 00:37:09.605	warn	Poll error count: 6 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                              modbus.0
                              	2023-10-23 00:37:04.329	warn	Poll error count: 5 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                              modbus.0
                              	2023-10-23 00:36:59.125	warn	Poll error count: 4 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                              modbus.0
                              	2023-10-23 00:36:53.899	warn	Poll error count: 3 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                              modbus.0
                              	2023-10-23 00:36:48.728	warn	Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                              modbus.0
                              	2023-10-23 00:36:43.561	warn	Poll error count: 1 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                              

                              ich komme nicht weiter...

                              Marcus

                              GlasfaserG 1 Antwort Letzte Antwort
                              0
                              • M mguenther

                                @soeni
                                @glasfaser

                                habt ihr 2 ne Lösung für die Register der Batterien gefunden? Ich kann den Wechselrichter (Register 40001 bis 40109) und den Meter (Register 40140 bis 40243) auslesen. Leider aber nicht die Batterie.

                                Ich habe diese Register gefunden:
                                https://pastebin.com/khDMXu5L

                                und da bekomme ich genau eure Fehlermeldung

                                modbus.0
                                	2023-10-23 00:37:09.605	warn	Poll error count: 6 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                                modbus.0
                                	2023-10-23 00:37:04.329	warn	Poll error count: 5 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                                modbus.0
                                	2023-10-23 00:36:59.125	warn	Poll error count: 4 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                                modbus.0
                                	2023-10-23 00:36:53.899	warn	Poll error count: 3 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                                modbus.0
                                	2023-10-23 00:36:48.728	warn	Poll error count: 2 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                                modbus.0
                                	2023-10-23 00:36:43.561	warn	Poll error count: 1 code: {"errorCode":131,"exceptionCode":2,"message":"ILLEGAL DATA ADDRESS"}
                                

                                ich komme nicht weiter...

                                Marcus

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                schrieb am zuletzt editiert von
                                #20

                                @mguenther sagte in Modbus ILLEGAL DATA ADDRESS:

                                Leider aber nicht die Batterie.

                                Welche Batterie !?

                                Du schreibst :

                                und den Meter (Register 40140 bis 40243) auslesen

                                Der beginnt aber laut deiner Vorlage bei 40123 und endet bei 40242.
                                Hast du dort das Register um +1 verschoben !?

                                Du kannst mal testen :

                                Modbus Instanz die du schon hast ausschalten .
                                Eine neue Instanz erstellen mit den Verbindungseinstellungen die du brauchst , dann aber nur erstmal ein Regiester dazu abfragen :

                                57666	Battery 1 Rated Energy	Batterie Nennkapazität	Wh	floatsw	2	1	0		value		true	false	false	false
                                

                                wenn nicht dann +1 oder -1 das Register verschieben . ( 57665 / 57668 )

                                oder dieses Register ( eventuell auch + 1 / - 1 ) :

                                102833	Batterie_Volt		V	floatsw	2	1	0		level		true	false	false	false
                                

                                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                M 1 Antwort Letzte Antwort
                                0
                                • GlasfaserG Glasfaser

                                  @mguenther sagte in Modbus ILLEGAL DATA ADDRESS:

                                  Leider aber nicht die Batterie.

                                  Welche Batterie !?

                                  Du schreibst :

                                  und den Meter (Register 40140 bis 40243) auslesen

                                  Der beginnt aber laut deiner Vorlage bei 40123 und endet bei 40242.
                                  Hast du dort das Register um +1 verschoben !?

                                  Du kannst mal testen :

                                  Modbus Instanz die du schon hast ausschalten .
                                  Eine neue Instanz erstellen mit den Verbindungseinstellungen die du brauchst , dann aber nur erstmal ein Regiester dazu abfragen :

                                  57666	Battery 1 Rated Energy	Batterie Nennkapazität	Wh	floatsw	2	1	0		value		true	false	false	false
                                  

                                  wenn nicht dann +1 oder -1 das Register verschieben . ( 57665 / 57668 )

                                  oder dieses Register ( eventuell auch + 1 / - 1 ) :

                                  102833	Batterie_Volt		V	floatsw	2	1	0		level		true	false	false	false
                                  
                                  M Offline
                                  M Offline
                                  mguenther
                                  schrieb am zuletzt editiert von
                                  #21

                                  @glasfaser
                                  jo, musste +1 verschieben - habs inzwischen hinbekommen, habe den anderen Thread von dir gelesen und da irgendwann die Register ab 97601 mit den Batteriedaten gefunden. Die 57xxx usw gehen gar nicht. Es ist eine SolarEdge Home DC-seitige Batterie, wenn ich mich nicht täusche (ist nicht meine Anlage, ich helfe nur, dass die Kommunikation angebunden wird). Ich poste später noch einmal meine Register.

                                  Trotzdem danke für dein Feedback.

                                  Jetzt gehts um die Berechnung und Auswertung der Werte, wieso weshalb und warum...
                                  Ich habe dazu schon das Tutorial und auch in den anderen Threads quer geschaut. Komme da mit Sicherheit noch einmal auf dich zu :)

                                  Marcus

                                  GlasfaserG 1 Antwort Letzte Antwort
                                  0
                                  • M mguenther

                                    @glasfaser
                                    jo, musste +1 verschieben - habs inzwischen hinbekommen, habe den anderen Thread von dir gelesen und da irgendwann die Register ab 97601 mit den Batteriedaten gefunden. Die 57xxx usw gehen gar nicht. Es ist eine SolarEdge Home DC-seitige Batterie, wenn ich mich nicht täusche (ist nicht meine Anlage, ich helfe nur, dass die Kommunikation angebunden wird). Ich poste später noch einmal meine Register.

                                    Trotzdem danke für dein Feedback.

                                    Jetzt gehts um die Berechnung und Auswertung der Werte, wieso weshalb und warum...
                                    Ich habe dazu schon das Tutorial und auch in den anderen Threads quer geschaut. Komme da mit Sicherheit noch einmal auf dich zu :)

                                    Marcus

                                    GlasfaserG Offline
                                    GlasfaserG Offline
                                    Glasfaser
                                    schrieb am zuletzt editiert von
                                    #22

                                    @mguenther sagte in Modbus ILLEGAL DATA ADDRESS:

                                    Trotzdem danke für dein Feedback.

                                    Kein Thema .. sehr gerne :)

                                    und auch in den anderen Threads quer geschaut.#

                                    den kannst du auch lesen :

                                    https://forum.iobroker.net/topic/38322/tutorial-solaredge-modbus-iobroker-grafana

                                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                    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

                                    623

                                    Online

                                    32.5k

                                    Benutzer

                                    81.7k

                                    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