Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. ModBus Hilfe - Azzurro ZCS

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ModBus Hilfe - Azzurro ZCS

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

      Hi,

      wir bekommen bald eine PV Anlage von der Firma ZCS Azzurro. Die Daten können daraus per ModBus gelesen werden aber die Anleitung die ich bekommen habe ist ziemlich kompliziert und ich verstehe nicht genau wie man das verbinden könnte, oder falls es im ModBus Adapter in iobroker gehen würde.

      Die Anleitung habe ich hier angehängt: Modbus communication protocol (storage and hybrid inverter).pdf

      Könnte mir vielleicht jemand helfen, und für jetzt sagen ob das überhaupt gehen könnte? Z.B. im angehängtes Dokument im Kapitel 2.2 steht auf Seite 15 wie man das "Operating Status" auslesen kann oder auf Seite 17, wie viel Strom man ins Netzt eingespeist hat oder aus dem Netz entnommen. Wie könnte ich diese Infos beispielsweise im Adapter eingeben?

      Vielen Dank!

      W 1 Reply Last reply Reply Quote 0
      • W
        Walkinlarge2010 @mrFenyx last edited by

        @mrfenyx

        Hi MrFenyx,

        ich stehe aktuell vor einer ähnlichen Herausforderung und überlege einen Azzurro WR zu nehmen. Hast du schon Zugriff über den ModBus realisieren können?

        VG Walkinlarge

        K 1 Reply Last reply Reply Quote 0
        • K
          Kodo_sh @Walkinlarge2010 last edited by

          @walkinlarge2010

          Hi
          Seid ihr schon mit dem auslesen weiter gekommen.
          Wir vertreiben PV und auch Auzurro.
          Habe vor einiger Zeit unseren Fronius verkauft und nun selber einen Auzurro (um ihn besser kennen zu lernen)
          Würde auch gerne die Daten via Broker verarbeiten.
          Über ein NDA kann ich das komplette Mod Bus Protokoll bekommen, habe jedoch selber nicht die Ahnung dies via Adapter oder Script zu implementieren.

          Gruß Alex

          mrFenyx 1 Reply Last reply Reply Quote 0
          • mrFenyx
            mrFenyx @Kodo_sh last edited by

            @kodo_sh hi, ja, das habe ich schon hinbekommen. ich schreibe gleich etwas mehr dazu, wie das geht, welche hardware man braucht, configs, etc.

            1 Reply Last reply Reply Quote 0
            • mrFenyx
              mrFenyx last edited by mrFenyx

              Lösung

              Hardware

              Um die Daten ber ModBus zu lesen, braucht man eine physiskalische Verbindung zum Wechselrichter. Dafür muss man einen RS485 zu USB Adapter kaufen. Ich habe mehrere solche Adapter probiert und fast keiner davon funktioniert richtig, außer dem hier: https://smile.amazon.de/gp/product/B082D5PXJ4/.

              Zusätzlich braucht man auch etwas, was die Daten dann zukünftig liest. Ich habe eine RaspberryPi dafür benutzt.

              Als nächstes muss man die Verbindung zwischen dem Wechselrichter und dem RS485 Adapter machen. Das ist eigentlich das "schwierige" Teil, da bei dem Wechselrichter nur 2 Pins verfügbar sind und eine passende Klemme wird nicht mitgeliefert. Ich hatte zufällig etwas gefunden was mit ein bisschen "Handarbeit" gepasst hat. Den RS485 Port findest du beim WR auf der unteren Seite, wo auch alle anderen Kabel rauskommen.

              Sobald die Verbindung physikalisch steht, kann man den Stick in der RasPi einstecken. Mit dem Befehl lsusb kann man dann prüfen ob der Stick erkannt wird. Es soll ein Gerät angezeigt, ähnlich wie dieser: Bus 001 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC.

              Software

              Für einfaches, lokales Testen kann man das Tool mbpoll. Installation passiert dann laut Doku so:

              wget -O- http://www.piduino.org/piduino-key.asc | sudo apt-key add -
              echo 'deb http://raspbian.piduino.org stretch piduino' | sudo tee /etc/apt/sources.list.d/piduino.list
              sudo apt update
              sudo apt install mbpoll
              

              Da ich eigentlich nur dieses eine Gerät an den USB Ports des RasPis angebunden habe, hat es die Adresse /dev/ttyUSB0. Wenn mehrere USB Geräte verbunden sind, musst du herausfinden auf welche Adresse der RS485 Adapter läuft. Dann kann man sowas ausführen, um zu schauen ob alles läuft: mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v. Im besten Fall kommt dann ein Wert heraus und nicht eine Fehlermeldung. Leider funktioniert es bei mir so nicht zuverlässig (bin mir nicht sicher wieso und da ich es eigentlich nicht so benutzen würde, ist es mir eigentlich egal).

              Bei mir läuft ioBroker eigentlich auf einer anderen RasPi, die zu weit weg ist um die direkt am WR zu verbinden. Deswegen benutze ich auf dem RasPi dass am WR verbunden ist ein zusätzliches Tool, ein sogenanntes ModBus RTU to TCP Gateway. Die software heißt mbusd. Wie man es baut und installiert steht im Link, ist nicht so schwierig. Sobald die Installation durch ist, braucht man eine Config Datei. Ich benutze das hier:

              # Serial port device name
              device = /dev/ttyUSB0
              
              # Serial port speed (Folow on your PLC or Modbus Device config)
              speed = 9600
              
              # Serial port mode (Folow on your PLC or Modbus Device config)
              mode = 8n1
              
              # RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1)
              trx_control = addc
              
              # Sysfs file to use to control data direction
              # trx_sysfile =
              
              ############# TCP port settings #############
              
              # TCP server port number
              port = 502
              
              # Maximum number of simultaneous TCP connections
              maxconn = 32
              
              # Connection timeout value in seconds
              timeout = 60
              
              ######### Request/response settings #########
              
              # Maximum number of request retries
              retries = 3
              
              # Pause between requests in milliseconds
              pause = 100
              
              # Response wait time in milliseconds
              wait = 500
              

              Die Datei soll man im Ordner /etc/mbusd als mbusd-ttyUSB0.conf speichern (oder wenn nicht ttyUSB0, dann die richtige Adresse / Serial Port). Dann kann man mbusd als Service aktivieren indem man dieses Befehl ausführt: systemctl enable mbusd@ttyUSB0.service. Auch hier, ttyUSB0 mit der eigentlichen Adresse ersetzen, falls notwendig. Mit dem Befehl journalctl -u mbusd@<serial port>.service -f -n 10 kann man sehen was da gerade passiert, im besten fall, keine Fehler 😉

              Wenn das erstmal geht, dann kann man nochmal mbpoll ausprobieren mbpoll localhost -r 531 -0 -1 -v. Wenn alles richtig ist, dann bekommt man etwas ähnliches wie das hier:

              debug enabled
              Set device=localhost
              mbpoll 1.4-25 - FieldTalk(tm) Modbus(R) Master Simulator
              Copyright © 2015-2019 Pascal JEAN, https://github.com/epsilonrt/mbpoll
              This program comes with ABSOLUTELY NO WARRANTY.
              This is free software, and you are welcome to redistribute it
              under certain conditions; type 'mbpoll -w' for details.
              
              Connecting to [localhost]:502
              Connecting to [localhost]:502
              Set response timeout to 1 sec, 0 us
              Protocol configuration: Modbus TCP
              Slave configuration...: address = [1]
                                      start reference = 531, count = 1
              Communication.........: localhost, port 502, t/o 1.00 s, poll rate 1000 ms
              Data type.............: 16-bit register, output (holding) register table
              
              -- Polling slave 1...
              [00][01][00][00][00][06][01][03][02][13][00][01]
              Waiting for a confirmation...
              <00><01><00><00><00><05><01><03><02><00><E1>
              [531]:  225
              

              Noch eine wichtige Info die man zukünftig braucht ist die IP Adresse vom RasPi. Wenn man es nicht schon kennt dann bekommt man es über den Befehl ifconfig.

              Die richtige ModBus Adresse finden

              Ein weiteres wichtiges Stück Info ist, wie man die Adressen aus der Dokumentation zu dem "übersetzt" was mbpoll, ioBroker oder ein anderer ModBus Master braucht. Wichtig sind hier 2 Sachen zu verstehen:

              • die Adressen in der Anleitung sind im Hexadecimal eingetragen. Diese muss man zu Decimal konvertieren. Z.B habe ich die Adresse 0x0200 (Running State). 0x0200 in Decimal ist 512. Rechner finden man online, hier z.B. https://www.rapidtables.com/convert/number/hex-to-decimal.html
              • bei ioBroker (und auch andere ModBus Master) spricht man die sogenannten "Holding Register" an indem man die Adresse die man vorher bekommen hat, 512, zu 40001 addiert. Also, um das "Running State" in ioBroker anzuzeigen, braucht man die Adresse 40513.

              ioBroker Config

              Nun zum spannenden Teil. In ioBroker braucht man den modbus adapter. Sobald dieser installiert ist und eine Instanz zur Konfiguration verfügbar ist, soll man diese ungefähr wie folgt konfigurieren:
              d8ddbd21-45aa-4125-86e0-372a2a8c2f9b-image.png
              727f98bb-85d4-4c8f-8544-5af69bfed9cd-image.png

              Dann springt man zu den Holding Registers und fängt an, die einzelnen Adresse hinzuzufügen. Ich habe schon ziemlich viele schon bei mir hinzugefügt also teile ich diese gerne mit euch:

              _address	name	description	unit	type	len	factor	offset	formula	role	room	poll	wp	cw	isScale
              40513	operating_status	Operating Status		uint16be	1	1	0		value		true	false	false	false
              40519	grid_voltage	Grid Voltage	V	uint16be	1	0.1	0		value		true	false	false	false
              40520	grid_current	Grid Current	A	int16be	1	0.01	0		value		true	false	false	false
              40525	grid_frequency	Grid Frequency	Hz	uint16be	1	0.01	0		value		true	false	false	false
              40526	batt_charge_discharge_power	Battery Charge / Discharge Power	W	int16be	1	10	0		value		true	false	false	false
              40527	batt_voltage	Battery Voltage	V	uint16be	1	0.1	0		value		true	false	false	false
              40528	batt_charge_discharge_current	Battery Charge / Discharge Current	A	int16be	1	0.01	0		value		true	false	false	false
              40529	batt_soc	Battery Status of Charge	%	uint16be	1	1	0		value		true	false	false	false
              40530	batt_temp	Battery Temperature	°C	uint16be	1	1	0		value		true	false	false	false
              40531	grid_power	Grid Power: to Grid + / From Grid -	W	int16be	1	10	0		value		true	false	false	false
              40532	load_power	Household Consumption	W	uint16be	1	10	0		value		true	false	false	false
              40533	batt_inverter_power	Battery Inverter Power: Discharge + / Charge -	W	int16be	1	10	0		value		true	false	false	false
              40534	pv_power_gen	PV Generated Power	W	uint16be	1	10	0		value		true	false	false	false
              40535	eps_output_voltage	EPS Output Voltage	V	uint16be	1	0.1	0		value		true	false	false	false
              40536	eps_output_power	EPS Output Power	kW	uint16be	1	0.01	0		value		true	false	false	false
              40537	daily_energy	Daily Energy	kW	uint16be	1	0.01	0		value		true	false	false	false
              40538	daily_energy_to_grid	Daily Energy to Grid	kW	uint16be	1	0.01	0		value		true	false	false	false
              40539	daily_energy_from_grid	Daily Energy from Grid	kW	uint16be	1	0.01	0		value		true	false	false	false
              40540	daily_energy_load	Daily Energy Load	kW	uint32sw	2	0.01	0		value		true	false	false	false
              40541	total_energy	Total Energy	kW	uint32be	2	1	0		value		true	false	false	false
              40543	total_energy_to_grid	Total Energy to Grid	kW	uint32be	2	1	0		value		true	false	false	false
              40545	total_energy_from_grid	Total Energy from Grid	kW	uint32be	2	1	0		value		true	false	false	false
              40547	total_energy_load	Total Energy Load	kW	uint32be	2	1	0		value		true	false	false	false
              40549	batt_daily_charge	Daily Energy Charging Battery	kW	uint16be	1	0.01	0		value		true	false	false	false
              40550	batt_daily_discharge	Daily Energy Discharging Battery	kW	uint16be	1	0.01	0		value		true	false	false	false
              40551	batt_total_charge	Total Energy Charging Battery	kW	uint32be	2	1	0		value		true	false	false	false
              40553	batt_total_discharge	Total Energy Discharging Battery	kW	uint32be	2	1	0		value		true	false	false	false
              40561	grid_voltage	Grid Voltage	V	uint16be	1	0.1	0		value		true	false	false	false
              

              Um diese zu importieren, hier drauf clicken und dann dort direkt einfügen:
              f2d68fc6-421f-4d04-8f38-5ac3dda0de7d-image.png

              Das war es schon. Ich hoffe das es hilft. Wenn es fragen dazu gibt, einfach reinschreiben 😉

              K S 2 Replies Last reply Reply Quote 1
              • K
                Kodo_sh @mrFenyx last edited by

                @mrfenyx Danke für deine Mühe 🙂

                das schaut alles schon mal ganz klasse aus.
                Ich habe am Azzurro das LAN-Modul, ein direktes auslesen per TCP ist wohl nicht möglich oder?
                Ich werde die Tage nochmal mit dem Support telefonieren.

                Anderenfalls werde ich mein Glück mit einem 484/POE LAN Adapter versuchen. Der USB Dongle mit Raspi ist mir irgendwie etwas zuviel.

                Sobald ich neue Infos habe, gebe ich sie gerne weiter.

                Gruß und ein schönes 2023

                mrFenyx 1 Reply Last reply Reply Quote 0
                • mrFenyx
                  mrFenyx @Kodo_sh last edited by

                  @kodo_sh dir auch ein gutes 2023 und erstmal viel Glück mit dem Support. Bei mir waren die leider nicht wirklich freundlich oder hilfreich. Ich habe am WR das WiFi Modul aber es wird nur dafür benutzt um die Daten an Azzurro selbst zu schicken und für deren (Web)App. Leider werden diese Daten auch sehr unregelmäßig und selten versandt und ich konnte die auch nicht "abfangen".
                  Wenn du es ohne RasPi und Dongle irgendwie schaffst, lass es mich bitten wissen 😉

                  E 1 Reply Last reply Reply Quote 0
                  • E
                    etsob @mrFenyx last edited by

                    Hey @mrfenyx, vielen Dank für die gute Beschreibung der todos. Wir haben in vier Wochen unseren installationstermin. Ich denke mit der Übersicht kann man schon etwas anfangen. Danke dafür.

                    Ich nutze auf jeden Fall als kleines danke schön, den Smileys Link ☺️

                    Mich würde nur mal interessieren, wie deine. Verbindung am Azzurro zu den Pins des modbus rtu aussieht. Hast du zufällig ein Foto?

                    Hattest du mit dem Gedanken gespielt einen rs232 zu lan Converter zu statt des rpi zu nutzen?

                    Viele Grüße

                    mrFenyx 1 Reply Last reply Reply Quote 0
                    • mrFenyx
                      mrFenyx @etsob last edited by

                      @etsob Viel Glück mit der Installation. Wegen RS232 zu LAN, nein, habe ich nicht überlegt. Ich habe einige RPIs die bei mir rumliegen also war das für mich eigentlich die einzige Lösung die ich mir angeschaut habe. Hier noch einige Fotos zu der Verbindung. Ich habe dafür ein sogenanntes Twisted Pair benutzt (sind eigentlich die Kabel, die man in einem LAN Kabel finden - ein Paar davon habe ich benutzt.

                      1. Die 4 Schrauben entfernen und Deckel Öffnen
                        f6c1eaba-e856-4b37-9e6a-7f98234b6882-image.png
                      2. So sieht die Verbindung am USB Stick aus
                        b39585cb-0f38-45b9-a513-fe2c3a166c4f-image.png
                      3. So sieht die Verbindung am WR aus
                        bfb30b20-650c-4e7f-aaff-4051e0dca868-image.png

                      Für mich war eigentlich das größte Problem ein "Adapter" zu finden - das grüne Teil. Mein Elektriker hatte sowas bei uns "vergessen" und ich habe es ein bisschen gefeilt und es hat glücklicher weise gepasst.

                      E E 2 Replies Last reply Reply Quote 0
                      • E
                        etsob @mrFenyx last edited by

                        @mrfenyx

                        Perfekt. Danke dir 👍🏻

                        1 Reply Last reply Reply Quote 0
                        • E
                          ehi @mrFenyx last edited by ehi

                          @mrfenyx Vielen Dank für die tolle Anleitung,
                          mit ihr ist es mir gelungen meinen Azzurro ZCS HYD 15000 Wechselrichter auszulesen!
                          Allerdings haben die 3-Phasen Wechselrichter wohl andere Adressen als die 1-Phasigen.
                          Falls jemand die Adressen bzw. die Holding Register dafür brauchen kann stelle ich sie gerne hier rein.

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            Andi 5 @ehi last edited by

                            @ehi Hallo ich habe den selben Wechselrichter habe aber das Modbus Protokoll nicht könntest du mir das schicken?
                            Danke

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @Andi 5 last edited by

                              @andi-5 sagte in ModBus Hilfe - Azzurro ZCS:

                              habe aber das Modbus Protokoll nicht könntest du mir das schicken?

                              wenn du die Registerbeschreibung meinst ist die oben im Thread
                              https://forum.iobroker.net/post/910443
                              sehr weit unten

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                Andi 5 @Homoran last edited by

                                @homoran Danke aber ich brauche die Adressen vom 3 Phasen Wechselrichter. Ich bin neu auf dem Gebiet und das ist mein erster Versuch.
                                Danke

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  korhorlefor @Andi 5 last edited by

                                  @andi-5 Gibt es denn da Unterschiede bezüglich der Register? In dem Pdf ist generell die Rede von Storage and Hybrid Invertern. Ich wäre jetzt davon ausgegangen, dass es keinen Unterschied macht ob ein oder dreiphasig.

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    Andi 5 @korhorlefor last edited by

                                    @korhorlefor kann ich noch nicht sagen aber Ehi hat geschrieben dass die 3-Phasen Wechselrichter wohl andere Adressen als die 1-Phasigen haben.

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      korhorlefor last edited by

                                      @andi-5 versuch nochmal unter https://openwb.de/forum/download/file.php?id=14331&sid=b0cb172e8faa221ead96bc3424bf151f dein Glück. Das ist die Registerbeschreibung der Sofar Wechselrichter. Die sollen baugleich sein mit Azzurro.

                                      1 Reply Last reply Reply Quote 0
                                      • mrFenyx
                                        mrFenyx last edited by mrFenyx

                                        @Andi-5 meine Anleitung bezieht sich auf einen 3-Phasen Wechselrichter. Die Register da drin sollten gehen. Hier aber auch die komplette Definition: ModBus-RTU Communication Protocol Ibrido monofase e 3000SP.pdf

                                        UPDATE: ach, jetzt verstehe ich! @Andi-5 braucht die Modbus Register von 1-phasigem Wechselrichter!

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          korhorlefor @mrFenyx last edited by

                                          Hat jemand mal den oben genannte USB RS485 Adapter mit dem ZCS Azzurro HYD 10000 verbunden? Ich versuche das gerade über die Com-Schnittstelle, wundere mich aber, dass der WR überhaupt nicht antwortet. Über Erfahrungen damit wäre ich dankbar.

                                          K T 2 Replies Last reply Reply Quote 0
                                          • K
                                            korhorlefor @korhorlefor last edited by

                                            Ich hatte ein Kontaktfehler. Es geht nun.
                                            Es handelt sich bei mir um zwei WR HYD 15000, die im Master Slave Betrieb arbeiten.
                                            Mit dem Rs485 Adapter gehe ich über die Com Schnittstelle auf die Pins 1 und 3 des ersten WR. Dann wird der erste WR(Master) mit den Pins 2 und 4 auf die Pins 1 und 3 des zweiten WR (Slave) verbunden.
                                            Das ist zwar entgegen der Skizze im Handbuch aber nach den Bezeichnung aus der Tabelle macht es so Sinn. Über die unterschiedlichen Modbus Ids kann man dann unabhängig auf beide WR zugreifen.

                                            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

                                            633
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            14
                                            47
                                            7270
                                            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