Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus ILLEGAL DATA ADDRESS

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Modbus ILLEGAL DATA ADDRESS

    This topic has been deleted. Only users with topic management privileges can see it.
    • Glasfaser
      Glasfaser @Soeni last edited by

      @soeni

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

      Soeni 1 Reply Last reply Reply Quote 0
      • Soeni
        Soeni @Glasfaser last edited by

        @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

        Glasfaser M 2 Replies Last reply Reply Quote 0
        • Glasfaser
          Glasfaser @Soeni last edited by

          @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
          
          ---------------
          
          Soeni 1 Reply Last reply Reply Quote 0
          • Soeni
            Soeni @Glasfaser last edited by

            @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.

            wendy2702 1 Reply Last reply Reply Quote 0
            • wendy2702
              wendy2702 @Soeni last edited by

              @soeni Mal ohne den Offset probiert?

              Soeni 1 Reply Last reply Reply Quote 0
              • Soeni
                Soeni @wendy2702 last edited by

                @wendy2702 ja +-1 habe ich jeweisl probiert.

                1 Reply Last reply Reply Quote 0
                • M
                  matty67 @Soeni last edited by

                  @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 Reply Last reply Reply Quote 0
                  • B
                    bitwicht last edited by

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

                    1 Reply Last reply Reply Quote 0
                    • M
                      mguenther @Soeni last edited by

                      @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

                      Glasfaser 1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @mguenther last edited by

                        @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 1 Reply Last reply Reply Quote 0
                        • M
                          mguenther @Glasfaser last edited by

                          @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

                          Glasfaser 1 Reply Last reply Reply Quote 0
                          • Glasfaser
                            Glasfaser @mguenther last edited by

                            @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

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

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

                            840
                            Online

                            31.9k
                            Users

                            80.1k
                            Topics

                            1.3m
                            Posts

                            6
                            22
                            4076
                            Loading More Posts
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes
                            Reply
                            • Reply as topic
                            Log in to reply
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                            The ioBroker Community 2014-2023
                            logo