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

  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. ModBus Hilfe - Azzurro ZCS

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

ModBus Hilfe - Azzurro ZCS

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
47 Beiträge 14 Kommentatoren 11.4k Aufrufe 12 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.
  • mrFenyxM 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 ;)

    S Offline
    S Offline
    Schwabe_CH
    schrieb am zuletzt editiert von
    #26

    @mrfenyx - Zuerst mal danke für die Mühe mit der Erklärung.
    Habe in der Zwischenzeit die selben Voraussetzungen an Hardware.

    Den bisherigen Versuche mit Waveshare RS485 to RJ45 Ethernet Modul habe ich abgebrochen. Scheint nicht zu funktionieren.

    Pi/USB-RS485 (ttyUSB0) - Inverter Azzurro 1PH HYD6000 ZSS HP.

    Der Inverter hat zumindest einen komfortablen COM Anschluss.
    Die Belegung der COM Pins wurde mir vom Azzurro Support bestätigt. 5(+) - 6(-). Sind auch mit A+ und A- am USB verbunden.
    Modbusadresse steht auf 1.

    Mit: Mit dem Befehl journalctl -u mbusd@ttyUSB0.service -f -n 10 kann man sehen was da gerade passiert, im besten fall, keine Fehler meinst du sicherlich so etwas als Antwort?

    journalctl -u mbusd@ttyUSB0.service -f -n 10
    -- Logs begin at Sun 2023-09-10 14:17:02 CEST. --

    Kein Eintrag ist für mich als positiv zu bewerten.

    Jedoch der folgenden Befehl: mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v

    ergibt:

    -- Polling slave 1...
    [01][03][02][13][00][01][74][77]
    Waiting for a confirmation...
    <01><90><02><00><00>
    ERROR CRC received 0x0 != CRC calculated 0xCDC1
    Read output (holding) register failed: Invalid CRC

    Hattest du diesen Fehler auch? Wenn ja wie wurde er behoben?

    Hast du einen Lösungsvorschlag?

    Grüsse
    RP

    mrFenyxM 1 Antwort Letzte Antwort
    0
    • S Schwabe_CH

      @mrfenyx - Zuerst mal danke für die Mühe mit der Erklärung.
      Habe in der Zwischenzeit die selben Voraussetzungen an Hardware.

      Den bisherigen Versuche mit Waveshare RS485 to RJ45 Ethernet Modul habe ich abgebrochen. Scheint nicht zu funktionieren.

      Pi/USB-RS485 (ttyUSB0) - Inverter Azzurro 1PH HYD6000 ZSS HP.

      Der Inverter hat zumindest einen komfortablen COM Anschluss.
      Die Belegung der COM Pins wurde mir vom Azzurro Support bestätigt. 5(+) - 6(-). Sind auch mit A+ und A- am USB verbunden.
      Modbusadresse steht auf 1.

      Mit: Mit dem Befehl journalctl -u mbusd@ttyUSB0.service -f -n 10 kann man sehen was da gerade passiert, im besten fall, keine Fehler meinst du sicherlich so etwas als Antwort?

      journalctl -u mbusd@ttyUSB0.service -f -n 10
      -- Logs begin at Sun 2023-09-10 14:17:02 CEST. --

      Kein Eintrag ist für mich als positiv zu bewerten.

      Jedoch der folgenden Befehl: mbpoll -m rtu /dev/ttyUSB0 -b 9600 -P none -r 531 -0 -1 -v

      ergibt:

      -- Polling slave 1...
      [01][03][02][13][00][01][74][77]
      Waiting for a confirmation...
      <01><90><02><00><00>
      ERROR CRC received 0x0 != CRC calculated 0xCDC1
      Read output (holding) register failed: Invalid CRC

      Hattest du diesen Fehler auch? Wenn ja wie wurde er behoben?

      Hast du einen Lösungsvorschlag?

      Grüsse
      RP

      mrFenyxM Offline
      mrFenyxM Offline
      mrFenyx
      schrieb am zuletzt editiert von
      #27

      @schwabe_ch ja, den Fehler habe ich auch immer noch sehr oft - anscheinend gibt es da ein Problem wenn man direkt auf die Daten mit ModbusRTU zugreifen will. Da hilft aber das mbusd Tool, was die ModbusRTU daten in ModbusTCP konvertiert (wenn es richtig konfiguriert ist :wink: ). Versuch es mit diesem Befehl: mbpoll localhost -r 531 -0 -1 -v. Damit geht es bei mir 99% der Zeit (manchmal schlägt das auch fehl).

      Stell auch sicher dass das mbusd tool wirklich läuft, mit sudo service mbusd@ttyUSB0 status. Hier soll das Ergebnis so aussehen:
      39300ee1-2246-491b-94a9-01dd323f312e-image.png
      Viel Glück! Wenn es weiterhin Probleme gibt, lass es mich wissen, vielleicht kann ich helfen.

      S 1 Antwort Letzte Antwort
      0
      • Snowboarder2611S Offline
        Snowboarder2611S Offline
        Snowboarder2611
        schrieb am zuletzt editiert von
        #28

        Hallo in die Runde,
        Erst einmal ein großes Dankeschön für die Erklärung.
        Ich habe nun seit heute meinen Wechselrichter 3PH HYD15000
        Dort gibt es einen Com Anschluss. Die Pins 5 und 6 gehen zur Kommunikation an den 3 Phasen Messer.
        Pin 1-4 (je zwei + und -) sind noch frei. Laut Anleitung dienen diese zur Bildung einer Cascade.
        Allerdings habe ich schon von Begin an Probleme mit den Programmen auf dem Pi.
        Ich habe mbpoll installiert. Die Adresse des USB Gerätes (das aus deinem Amazonlink) ist auch /dev/ttyUSB0
        Ich habe geschaut, ob es läuft. Dabei kam auch was zurück. Also OK.
        Nun mbusd. Da fing es bei mir an schwierig zu werden. Da ich kein Held in Sachen Pi bin, kann ich da auch nicht Dinge die andere für selbsterklärend sind.
        Habe aber mbusd wohl soweit installiert bekommen.
        Aber wie erzeuge ich die Config in dem besagten Ordner? Ich habe da einiges rumprobiert. Aber dies wohl dann doch nicht wirklich richtig gemacht. Hier benötige ich noch mal eine genauere Erklärung.
        Mit dem Befehl journalctl -u mbusd@<serial port>.service -f -n 10 kam nur -bash: serial: No such file or directory
        Dann habe ich nochmal mbpoll ausprobiert mbpoll localhost -r 531 -0 -1 -v und es kommt Connecting to [localhost]:502 Connecting to [localhost]:502 mbpoll: Connection failed: Connection refused.

        Jetzt komme ich hier erst mal nicht weiter.

        1 Antwort Letzte Antwort
        0
        • mrFenyxM mrFenyx

          @schwabe_ch ja, den Fehler habe ich auch immer noch sehr oft - anscheinend gibt es da ein Problem wenn man direkt auf die Daten mit ModbusRTU zugreifen will. Da hilft aber das mbusd Tool, was die ModbusRTU daten in ModbusTCP konvertiert (wenn es richtig konfiguriert ist :wink: ). Versuch es mit diesem Befehl: mbpoll localhost -r 531 -0 -1 -v. Damit geht es bei mir 99% der Zeit (manchmal schlägt das auch fehl).

          Stell auch sicher dass das mbusd tool wirklich läuft, mit sudo service mbusd@ttyUSB0 status. Hier soll das Ergebnis so aussehen:
          39300ee1-2246-491b-94a9-01dd323f312e-image.png
          Viel Glück! Wenn es weiterhin Probleme gibt, lass es mich wissen, vielleicht kann ich helfen.

          S Offline
          S Offline
          Schwabe_CH
          schrieb am zuletzt editiert von
          #29

          @mrfenyx Danke für die Hilfe. Habe mich heute wieder mal daran gewagt.
          Nun habe ich beim Aufruf von :
          /etc/mbusd $ journalctl -u mbusd@ttyUSB0.service -f -n 10
          einen Fehler.
          Screenshot 2023-09-17 183615.png

          Screenshot 2023-09-17 183649.png

          Screenshot 2023-09-17 184525.png

          Screenshot 2023-09-17 184547.png

          Meiner Meinung nach richtiges .conf File, in richtigem Verzeichnis.
          Woran könnte das liegen.
          Die erste Idee, Berechtigung, ist aber root/root.

          Screenshot 2023-09-17 184017.png Screenshot 2023-09-17 184133.png

          Hast Du einen Tip woran das liegen könnte?

          Danke und einen schönen Abend

          mrFenyxM 1 Antwort Letzte Antwort
          0
          • S Schwabe_CH

            @mrfenyx Danke für die Hilfe. Habe mich heute wieder mal daran gewagt.
            Nun habe ich beim Aufruf von :
            /etc/mbusd $ journalctl -u mbusd@ttyUSB0.service -f -n 10
            einen Fehler.
            Screenshot 2023-09-17 183615.png

            Screenshot 2023-09-17 183649.png

            Screenshot 2023-09-17 184525.png

            Screenshot 2023-09-17 184547.png

            Meiner Meinung nach richtiges .conf File, in richtigem Verzeichnis.
            Woran könnte das liegen.
            Die erste Idee, Berechtigung, ist aber root/root.

            Screenshot 2023-09-17 184017.png Screenshot 2023-09-17 184133.png

            Hast Du einen Tip woran das liegen könnte?

            Danke und einen schönen Abend

            mrFenyxM Offline
            mrFenyxM Offline
            mrFenyx
            schrieb am zuletzt editiert von
            #30

            @schwabe_ch Hier die /etc/mbusd/mbusd-ttyUSB0.conf bei mir (ownership ist root:root):

            # 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
            

            So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden. Was sagt das Befehl ls /dev/*USB*?

            Thomas BraunT S 2 Antworten Letzte Antwort
            0
            • mrFenyxM mrFenyx

              @schwabe_ch Hier die /etc/mbusd/mbusd-ttyUSB0.conf bei mir (ownership ist root:root):

              # 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
              

              So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden. Was sagt das Befehl ls /dev/*USB*?

              Thomas BraunT Online
              Thomas BraunT Online
              Thomas Braun
              Most Active
              schrieb am zuletzt editiert von
              #31

              @mrfenyx sagte in ModBus Hilfe - Azzurro ZCS:

              So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden.

              Ich würde da ohnehin empfehlen, den Link zum Gerät aus /dev/serial/by-id einzutragen.

              Linux-Werkzeugkasten:
              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
              NodeJS Fixer Skript:
              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

              S 1 Antwort Letzte Antwort
              0
              • mrFenyxM mrFenyx

                @schwabe_ch Hier die /etc/mbusd/mbusd-ttyUSB0.conf bei mir (ownership ist root:root):

                # 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
                

                So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden. Was sagt das Befehl ls /dev/*USB*?

                S Offline
                S Offline
                Schwabe_CH
                schrieb am zuletzt editiert von
                #32

                @mrfenyx -- Danke fürden Hinweis.

                ls /dev/USB ergibt /dev/ttyUSB0

                Ich habe seit gestern das wohl falsch bestellte WIFI Kit white Datalogger eines Kollegen angeschlossen um zu testen ob die RS485 überhaupt funktioniert.

                Tut sie, es werden auch Daten an die App übermittelt.
                So weit so gut, aber der Inverter zeigt das RS485 Logo im Display nicht immer an. Folgendes hat eine zeitliche wenn auch nicht ganz genaue Messung ergeben:

                20-25 Sekunden up
                60-70 Sekunden down
                20-25 Sekunden up
                60-670 Sekunden down
                ...usw

                Könnte der Fehler von mbpoll damit zusammenhängen?
                Denn der neue Aufruf nachdem ich nochmals alles auf einer neuen SD erstellt habe sieht folgendermassen aus:
                Datalogger wurde natürlich vorher abgehängt.

                -- Polling slave 1...
                [01][03][02][13][00][01][74][77]
                Waiting for a confirmation...
                ERROR Connection timed out: select
                Read output (holding) register failed: Connection timed out

                mrFenyxM 1 Antwort Letzte Antwort
                0
                • Thomas BraunT Thomas Braun

                  @mrfenyx sagte in ModBus Hilfe - Azzurro ZCS:

                  So wie ich die Fehlermeldung lese, kann es dein USB - Serial Gerät nicht finden.

                  Ich würde da ohnehin empfehlen, den Link zum Gerät aus /dev/serial/by-id einzutragen.

                  S Offline
                  S Offline
                  Schwabe_CH
                  schrieb am zuletzt editiert von
                  #33

                  @thomas-braun : Könntest du mir bitte kurz erklären was der Unterschied von /dev/serial/by-id zu /dev/ttyUSB0 wäre.

                  Thomas BraunT 1 Antwort Letzte Antwort
                  0
                  • S Schwabe_CH

                    @thomas-braun : Könntest du mir bitte kurz erklären was der Unterschied von /dev/serial/by-id zu /dev/ttyUSB0 wäre.

                    Thomas BraunT Online
                    Thomas BraunT Online
                    Thomas Braun
                    Most Active
                    schrieb am zuletzt editiert von
                    #34

                    @schwabe_ch

                    Kann ich. Die /dev/tty* Dateien werden vom Kernel 'zufällig' in der Reihenfolge des Auftauchens des Gerätes vergeben. Das kann sich ändern, jenachdem ob ein Gerät von Hand umgestöpselt wird oder welches Gerät beim Booten zuerst 'hier bin ich' ruft.
                    Die Links aus /dev/serial/by-id sind immer die gleichen (außer bei einem Firmware-Update würde die ID verändert) und verweisen dann auf das richtige, zuvor vom Kernel (siehe oben) zugewiesene Gerät in /dev/tty*

                    Deswegen gibt man in den Einstellungen auch die fixe Datei als Adressat an und nicht den Wanderzirkus aus /dev/tty*

                    Linux-Werkzeugkasten:
                    https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                    NodeJS Fixer Skript:
                    https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                    iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                    S 1 Antwort Letzte Antwort
                    0
                    • Thomas BraunT Thomas Braun

                      @schwabe_ch

                      Kann ich. Die /dev/tty* Dateien werden vom Kernel 'zufällig' in der Reihenfolge des Auftauchens des Gerätes vergeben. Das kann sich ändern, jenachdem ob ein Gerät von Hand umgestöpselt wird oder welches Gerät beim Booten zuerst 'hier bin ich' ruft.
                      Die Links aus /dev/serial/by-id sind immer die gleichen (außer bei einem Firmware-Update würde die ID verändert) und verweisen dann auf das richtige, zuvor vom Kernel (siehe oben) zugewiesene Gerät in /dev/tty*

                      Deswegen gibt man in den Einstellungen auch die fixe Datei als Adressat an und nicht den Wanderzirkus aus /dev/tty*

                      S Offline
                      S Offline
                      Schwabe_CH
                      schrieb am zuletzt editiert von
                      #35

                      @thomas-braun Danke, bei mir im /dev/serial/by-id/ ist ein Verweis mit dem Namen: usb-FTDI_FT232R_USB_UART_A10OQNJW-if00-port0 auf ../../ttyUSB0 enthalten. Das bedeutet somit, egal in welchem der 4 USB Ports und egal wie viele USB Devices daran angeschlossen sind mit dem .../by-id/ findet er immer den für mich entscheidenden ttyUSB0.

                      Thomas BraunT 1 Antwort Letzte Antwort
                      0
                      • S Schwabe_CH

                        @thomas-braun Danke, bei mir im /dev/serial/by-id/ ist ein Verweis mit dem Namen: usb-FTDI_FT232R_USB_UART_A10OQNJW-if00-port0 auf ../../ttyUSB0 enthalten. Das bedeutet somit, egal in welchem der 4 USB Ports und egal wie viele USB Devices daran angeschlossen sind mit dem .../by-id/ findet er immer den für mich entscheidenden ttyUSB0.

                        Thomas BraunT Online
                        Thomas BraunT Online
                        Thomas Braun
                        Most Active
                        schrieb am zuletzt editiert von Thomas Braun
                        #36

                        @schwabe_ch

                        Wobei es wie bereits gesagt passieren kann, dass da auf einmal /dev/ttyUSB1 verlinkt wird. Deswegen geht man ja auf die by-id-Datei und nicht direkt auf die Geräte-Datei.

                        Linux-Werkzeugkasten:
                        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                        NodeJS Fixer Skript:
                        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                        S 1 Antwort Letzte Antwort
                        0
                        • Thomas BraunT Thomas Braun

                          @schwabe_ch

                          Wobei es wie bereits gesagt passieren kann, dass da auf einmal /dev/ttyUSB1 verlinkt wird. Deswegen geht man ja auf die by-id-Datei und nicht direkt auf die Geräte-Datei.

                          S Offline
                          S Offline
                          Schwabe_CH
                          schrieb am zuletzt editiert von
                          #37

                          @thomas-braun Wieder was gelernt, danke. :+1:

                          1 Antwort Letzte Antwort
                          0
                          • S Schwabe_CH

                            @mrfenyx -- Danke fürden Hinweis.

                            ls /dev/USB ergibt /dev/ttyUSB0

                            Ich habe seit gestern das wohl falsch bestellte WIFI Kit white Datalogger eines Kollegen angeschlossen um zu testen ob die RS485 überhaupt funktioniert.

                            Tut sie, es werden auch Daten an die App übermittelt.
                            So weit so gut, aber der Inverter zeigt das RS485 Logo im Display nicht immer an. Folgendes hat eine zeitliche wenn auch nicht ganz genaue Messung ergeben:

                            20-25 Sekunden up
                            60-70 Sekunden down
                            20-25 Sekunden up
                            60-670 Sekunden down
                            ...usw

                            Könnte der Fehler von mbpoll damit zusammenhängen?
                            Denn der neue Aufruf nachdem ich nochmals alles auf einer neuen SD erstellt habe sieht folgendermassen aus:
                            Datalogger wurde natürlich vorher abgehängt.

                            -- Polling slave 1...
                            [01][03][02][13][00][01][74][77]
                            Waiting for a confirmation...
                            ERROR Connection timed out: select
                            Read output (holding) register failed: Connection timed out

                            mrFenyxM Offline
                            mrFenyxM Offline
                            mrFenyx
                            schrieb am zuletzt editiert von
                            #38

                            @schwabe_ch also leider habe ich auch manchmal das Problem dass das RS485 Logo nicht mehr im Display vom Inverter angezeigt wird. Wenn das passiert, dann schickt es tatsächlich keine Daten mehr - bei mir passiert das aber extrem selten, vielleicht einmal alle 2-3 Monate. Die einzige Lösung die ich dafür bis jetzt habe, ist am Inverter in die Einstellungen zu gehen, zu Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.) - nichts ändern, nur öffnen und bestätigen. Dann kommt das Logo wieder im Display an und die Daten gehen zur Raspi.
                            Wegen mbpoll, wie schon vorher gesagt, ich bekomme fast nie Daten wenn ich diese direkt per ModbusRTU anfrage, also quasi /dev/... benutze. Es funktioniert aber 99,9% richtig wenn ich mit mbusd das in ModbusTCP "konvertiere" und dann localhost:502 benutze.

                            S 1 Antwort Letzte Antwort
                            0
                            • mrFenyxM mrFenyx

                              @schwabe_ch also leider habe ich auch manchmal das Problem dass das RS485 Logo nicht mehr im Display vom Inverter angezeigt wird. Wenn das passiert, dann schickt es tatsächlich keine Daten mehr - bei mir passiert das aber extrem selten, vielleicht einmal alle 2-3 Monate. Die einzige Lösung die ich dafür bis jetzt habe, ist am Inverter in die Einstellungen zu gehen, zu Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.) - nichts ändern, nur öffnen und bestätigen. Dann kommt das Logo wieder im Display an und die Daten gehen zur Raspi.
                              Wegen mbpoll, wie schon vorher gesagt, ich bekomme fast nie Daten wenn ich diese direkt per ModbusRTU anfrage, also quasi /dev/... benutze. Es funktioniert aber 99,9% richtig wenn ich mit mbusd das in ModbusTCP "konvertiere" und dann localhost:502 benutze.

                              S Offline
                              S Offline
                              Schwabe_CH
                              schrieb am zuletzt editiert von
                              #39

                              @mrfenyx said in ModBus Hilfe - Azzurro ZCS:

                              Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.)

                              Ich habe aber keinen Menüpunkt Kommunikation.
                              Unter Einstellungen -> 8. Modus-Adresse -> 1. Modus-Adresse / 2. Baud-Rate.
                              Unter Punkt 2. Baud-Rate sind lediglich die üblichen 9600 usw. aufgeführt. Nix mit Stop bit. etc.
                              Die Anzeige von RS485 im Display folgt auch einer ziemlich genauen zeitlichen Abfolge. 20 Sek up-60 Sek down usw....
                              Vom Support azzurro erhalte ich keine Antwort. Mein Solateur ist hilflos überfragt. Dem musste zuerst einmal der Unterschied von RTU und TCP erklärt werden.
                              Ich hatte gehofft das Problem könnte mit V6 behoben werden. Leider nein.
                              Irgend eine andere Idee wie ich z.B. die Abfrage optimieren könnte um das Fenster 20 Sek. z.B. in einer Schleife bzw. Zeitverzögerung zu erwischen?

                              mrFenyxM 1 Antwort Letzte Antwort
                              0
                              • Snowboarder2611S Offline
                                Snowboarder2611S Offline
                                Snowboarder2611
                                schrieb am zuletzt editiert von
                                #40

                                Hi mrfenyx,

                                vielleicht kannst du mir an diesem Punkt den entscheidenden Tipp geben:

                                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.

                                Genau da hakt es bei mir, ich bekomme verschiedene Fehlermeldungen im Wechsel:

                                • ERROR Connection reset by peer: read
                                  Read output (holding) register failed: Connection reset by peer
                                • ERROR Connection timed out: select
                                  Read output (holding) register failed: Connection timed out
                                • ERROR CRC received 0x190 != CRC calculated 0x4C00
                                  Read output (holding) register failed: Invalid CRC

                                Ist das ein Hardware-Problem mit dem Adapter oder kann ich da irgendwas retten? Wäre für jede Hilfe dankbar, bevor ich den nächsten Adapter kaufe...

                                Besten Dank & Grüße

                                Thomas BraunT mrFenyxM 2 Antworten Letzte Antwort
                                0
                                • Snowboarder2611S Snowboarder2611

                                  Hi mrfenyx,

                                  vielleicht kannst du mir an diesem Punkt den entscheidenden Tipp geben:

                                  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.

                                  Genau da hakt es bei mir, ich bekomme verschiedene Fehlermeldungen im Wechsel:

                                  • ERROR Connection reset by peer: read
                                    Read output (holding) register failed: Connection reset by peer
                                  • ERROR Connection timed out: select
                                    Read output (holding) register failed: Connection timed out
                                  • ERROR CRC received 0x190 != CRC calculated 0x4C00
                                    Read output (holding) register failed: Invalid CRC

                                  Ist das ein Hardware-Problem mit dem Adapter oder kann ich da irgendwas retten? Wäre für jede Hilfe dankbar, bevor ich den nächsten Adapter kaufe...

                                  Besten Dank & Grüße

                                  Thomas BraunT Online
                                  Thomas BraunT Online
                                  Thomas Braun
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #41

                                  @snowboarder2611

                                  Sieht für mich nach Fehlern in der Kommunikation zwischen den Geräten aus. Netzwerk stabil?

                                  Linux-Werkzeugkasten:
                                  https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                  NodeJS Fixer Skript:
                                  https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                  iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                  1 Antwort Letzte Antwort
                                  0
                                  • Snowboarder2611S Offline
                                    Snowboarder2611S Offline
                                    Snowboarder2611
                                    schrieb am zuletzt editiert von
                                    #42

                                    @Thomas-Braun
                                    der USB Adapter steckt im Raspi. Bei der Abfrage von mir, will ich ja zuerst einmal die Verbindung zum Adapter testen. Dabei entstehen ja schon diese Fehler.
                                    Der Adapter hängt wiederum mit zwei Litzen am Wechselrichter.
                                    Ich wüsste nicht, wo da das Netzwerk Probleme machen sollte. Ich schicke ja nichts über WLAN oder LAN.
                                    Deshalb dachte ich, das der Adapter evtl nicht funktioniert. Ich habe den Adapter gekauft, welcher in Post 4 verlinkt ist.

                                    Gruß

                                    Thomas BraunT 1 Antwort Letzte Antwort
                                    0
                                    • Snowboarder2611S Snowboarder2611

                                      @Thomas-Braun
                                      der USB Adapter steckt im Raspi. Bei der Abfrage von mir, will ich ja zuerst einmal die Verbindung zum Adapter testen. Dabei entstehen ja schon diese Fehler.
                                      Der Adapter hängt wiederum mit zwei Litzen am Wechselrichter.
                                      Ich wüsste nicht, wo da das Netzwerk Probleme machen sollte. Ich schicke ja nichts über WLAN oder LAN.
                                      Deshalb dachte ich, das der Adapter evtl nicht funktioniert. Ich habe den Adapter gekauft, welcher in Post 4 verlinkt ist.

                                      Gruß

                                      Thomas BraunT Online
                                      Thomas BraunT Online
                                      Thomas Braun
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #43

                                      @snowboarder2611

                                      CRC sind jedenfalls Prufsummenfehler. Die werden in der Regel bei wackeligen Datenübertragungen ausgelöst.

                                      Linux-Werkzeugkasten:
                                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                      NodeJS Fixer Skript:
                                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                      1 Antwort Letzte Antwort
                                      0
                                      • Snowboarder2611S Snowboarder2611

                                        Hi mrfenyx,

                                        vielleicht kannst du mir an diesem Punkt den entscheidenden Tipp geben:

                                        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.

                                        Genau da hakt es bei mir, ich bekomme verschiedene Fehlermeldungen im Wechsel:

                                        • ERROR Connection reset by peer: read
                                          Read output (holding) register failed: Connection reset by peer
                                        • ERROR Connection timed out: select
                                          Read output (holding) register failed: Connection timed out
                                        • ERROR CRC received 0x190 != CRC calculated 0x4C00
                                          Read output (holding) register failed: Invalid CRC

                                        Ist das ein Hardware-Problem mit dem Adapter oder kann ich da irgendwas retten? Wäre für jede Hilfe dankbar, bevor ich den nächsten Adapter kaufe...

                                        Besten Dank & Grüße

                                        mrFenyxM Offline
                                        mrFenyxM Offline
                                        mrFenyx
                                        schrieb am zuletzt editiert von
                                        #44

                                        @snowboarder2611 said in ModBus Hilfe - Azzurro ZCS:

                                        ERROR CRC received 0x190 != CRC calculated 0x4C00
                                        Read output (holding) register failed: Invalid CRC

                                        Genau sowas hatte ich auch ständig bekommen aber das gute daran ist, das bedeutet auch dass die Daten "irgendwie" kommuniziert werden. Ich würde dir auch raten, mbusd zu benutzen. Dann kommen keine Fehlermeldungen mehr und du kannst auch direkt die Daten per ModbusTCP von woanders einfach lesen.

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Schwabe_CH

                                          @mrfenyx said in ModBus Hilfe - Azzurro ZCS:

                                          Kommunikation und dort alle einzelne Einstellungen einmal öffnen und bestätigen (also Port, Baud Rate, Stop bit, etc.)

                                          Ich habe aber keinen Menüpunkt Kommunikation.
                                          Unter Einstellungen -> 8. Modus-Adresse -> 1. Modus-Adresse / 2. Baud-Rate.
                                          Unter Punkt 2. Baud-Rate sind lediglich die üblichen 9600 usw. aufgeführt. Nix mit Stop bit. etc.
                                          Die Anzeige von RS485 im Display folgt auch einer ziemlich genauen zeitlichen Abfolge. 20 Sek up-60 Sek down usw....
                                          Vom Support azzurro erhalte ich keine Antwort. Mein Solateur ist hilflos überfragt. Dem musste zuerst einmal der Unterschied von RTU und TCP erklärt werden.
                                          Ich hatte gehofft das Problem könnte mit V6 behoben werden. Leider nein.
                                          Irgend eine andere Idee wie ich z.B. die Abfrage optimieren könnte um das Fenster 20 Sek. z.B. in einer Schleife bzw. Zeitverzögerung zu erwischen?

                                          mrFenyxM Offline
                                          mrFenyxM Offline
                                          mrFenyx
                                          schrieb am zuletzt editiert von
                                          #45

                                          @schwabe_ch said in ModBus Hilfe - Azzurro ZCS:

                                          Irgend eine andere Idee wie ich z.B. die Abfrage optimieren könnte um das Fenster 20 Sek. z.B. in einer Schleife bzw. Zeitverzögerung zu erwischen?

                                          Kannst versuchen alle 10-15 Sekunden eine Abfrage zu machen. Dann werden die meisten fehlschlagen aber es kommen auch Daten. Das ist aber nicht normal. Zum Azzurro Support, ja, die sind absolut nicht hilfreich, leider.

                                          S 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

                                          790

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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