Hilfe bei Integration von Modbus

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • MRU
    Smart Home'r
    • 29.08.2022
    • 68

    #1

    Hilfe bei Integration von Modbus

    Hallo, ich verwende einen von Azzurro ZCS Wechselrichter (sollte eigentlich ein Sofar Solar Wechselrichter sein). Die Daten des Wechselrichters werden alle 5 Minuten an einen Server gesendet, dort können diese über ein Cloud Portal / App / Api abgerufen werden. Diese Cloud ist nicht richtig zuverlässig, deshalb möchte ich meine API auf eine lokale Abfrage umstellen. Zufällig bin ich auf eine Anleitung gestoßen, dass dieser Wechselrichter seit dem letzten Update lokal über Modbus über Port 8899 in Homeassistant eingebunden werden kann. Effektiv antwortet mir dieser Wechselrichter über diesen Port und ich kann die Register abrufen:

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 570
Größe: 99,4 KB
ID: 410754


    Meine Frage lautet, wie komme ich zu den richtigen Werten? Eigentlich sollte diese Beschreibung ja ausreichen um die Registeradressen abzufragen? Das Plugin von Homeassistant stützt sich auf dieser .yaml Datei:

    home_assistant_solarman/custom_components/solarman/inverter_definitions/sofar_g3hyd.yaml at main · StephanJoubert/home_assistant_solarman · GitHub

    Die genannten Register müssten demnach in einen Hex to Decimal Converter und in die Loxone, oder habe ich einen Denkfehler?

    z.B:

    - name: "Battery 1 SOC"
    class: "battery"
    state_class: "measurement"
    uom: "%"
    scale: 1
    rule: 1
    registers: [ 0x0608 ]​

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 549
Größe: 13,8 KB
ID: 410755

    Leider bekomme ich keine Werte und die Einheit liefert Ampere und nicht Prozent.

    Vielleicht kann mir jemand weiterhelfen.

    Danke und Lg​​
    Angehängte Dateien
  • kofi1990
    Extension Master
    • 21.03.2017
    • 167

    #2
    Hi, folgendes ist mir bei deiner SoC Abfrage aufgefallen:

    Das Register ist in der Tat das gleiche wie bei dem Sofar HYD.
    Du musst jedoch wie folgt abfragen:
    IO-Adresse: 1544
    Befehl: 3-Read Holding
    Datentyp: 16bit-Unsigned Integer

    Wenn es also wirklich ein Sofar Solar Hyd mit anderem Namen ist, sollte der Rest auch funktionieren.
    So könntest du es mal probieren. In Post 7 sind die Registeradressen:
    Liebes Forum, ich brauche Hilfe beim Einbinden eines SofarSolar HYD 15KTL. Lt. Datenblatt gibt es eine Möglichkeit zur Verbindung per Modbus über RS485 (also Modbus RTU). bzgl. Modbus TCP habe ich leider nichts gefunden. Mit der Modbus Extention von Loxone hab ich mich bisher noch nicht befasst - ich denke aber damit sollte


    LG

    Kommentar

    • MRU
      Smart Home'r
      • 29.08.2022
      • 68

      #3
      kofi1990 du bist mein Held, danke Offiziell gibt einem der Azzurro Support keine Auskunft darüber dass es diese Möglichkeit gibt:

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 526
Größe: 3,0 KB
ID: 410760
      Jetzt benötige ich noch folgende Werte:

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 511
Größe: 24,4 KB
ID: 410761

      Danke, danke danke

      Kommentar


      • kofi1990
        kofi1990 kommentierte
        Kommentar bearbeiten
        die Werte sind alle in dem Anhang von Post 7 im Sofar-Solar Hyd Forum.

        Folgendes Beachten:
        Spalte B = Registeradressen = Hexadezimal (Muss umgerechnet werden)
        Spalte D =
        U16 = 16bit unsigned integer
        I16 = 16bit signed integer
        U32 = 32bit unsigned integer
        I32 = 32bit signed integer
        !Achtung: bei den 32bit registern muss zusätzlich der Hakein bei 16-bit Register und Registerreihenfolge gesetzt werden.

        GridPower = 1160 (I16) --> Umrechnen 0,01
        Grid Export = 1682 (U32) --> Umrechnen 0,1
        Grid Import = 1678 (U32) --> Umrechnen 0,1
        Battery Power = 1542 (I16) --> Umrechnen 0,1
        PVPower = 1476 (U16) --> Umrechnen 0,1

        Mit Umrechnen mein ich die Korrektur der Eingangswerte:
        0,1 =
        Eingangswert 1: 0
        Zielwert 1: 0
        Eingangswert 2: 10
        Zielwert 2: 1

        Damit sollt es gehen.

        Power Charging und Power Discharging wird gemeinsam über BatteryPower übergeben (positiv/negativ)
    • kofi1990
      Extension Master
      • 21.03.2017
      • 167

      #4
      Sehr gut

      Hast du einen Smart Dongle direkt am Wechselrichter und greifst du die Daten dort über Modbus TCP ab?
      Ich hab im September die Einrichtung über einen Converter durchgeführt (also die 2-adrigen Kabel direkt am Wechselrichter angeschlossen) und dann auf den Converter per ModbusTCP zugegriffen.
      Da wusste ich noch nicht, dass der Dongle Modbus TCP unterstützt...

      Kommentar

      • MRU
        Smart Home'r
        • 29.08.2022
        • 68

        #5
        Hallo, ja ich habe einen ZSM-ETH-USB Adapter am Wechselrichter, wusste ich auch nicht, hätte ich mir die ganze Arbeit mit der API sparen können 😊

        Kannst du mir eventuell noch sagen, wie ich folgenden Werte abfragen kann? Sorry, habe leider keine Erfahrungen mit Modbus...

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 527
Größe: 23,8 KB
ID: 410768

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 509
Größe: 22,9 KB
ID: 410769​​

        Kommentar

        • kofi1990
          Extension Master
          • 21.03.2017
          • 167

          #6
          ja,

          PV_Power1:
          Register 1414
          16-bit Unsigned Integer
          Eingangswert 1:0
          Zielwert 1: 0
          Eingangswert 2: 100
          Zielwert 2: 1
          Einheit ist dann KW

          PowerFactor_PCC_R
          Register 1113
          16-bit Signed Integer
          Eingangswert 1:0
          Zielwert 1: 0
          Eingangswert 2: 100
          Zielwert 2: 1
          Einheit ist dann p.u.

          Kommentar


          • kofi1990
            kofi1990 kommentierte
            Kommentar bearbeiten
            noch was:
            PV_Power 1 = 1414
            PV_Power 2 = 1417
            PV_Power_Gesamt = 1476

            Wobei ich immer die Einzelwerte (Power1 und 2) zur berechnung nehmen würde, da Power_Gesamt sehr grobe Werte übermittelt.
        • MRU
          Smart Home'r
          • 29.08.2022
          • 68

          #7
          Hallo, danke für die Hilfe, nun sollte es einigermaßen klappen. Ich habe leider Probleme den Wert für die aktuelle Einspeisung / Bezug zu finden. Die anderen Werte sollten eigenlich passen:

          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 499
Größe: 16,7 KB
ID: 410954

          ActivePower_Load_Sys: 1199
          ActivePower_Output_Total: 1157
          ActivePower_PCC_Total: 1160
          ActivePower_PV_Ext: 1198
          ApparentPower_Output_Total: 1159
          ApparentPower_PCC_Total: 1162
          Battery_charging_discharging: 1542
          Battery_SOC: 1544
          Battery_Temperature:1543
          Energy_Purchase_Today: 1677
          Energy_Selling_Today: 1680 - 1681?
          PV1_Power: 1414
          PV1_Voltage: 1412
          PV2_Power: 1417
          PV2_Voltage: 1415
          PV_Generation_Today: 1668
          PV_Generation_Total: 1670
          ReactivePower_Output_Total:1158
          ReactivePower_PCC_Total: 1161

          Welchen Wert nimmst du für die Anzeige der Einspeisung/Bezug Grid? Reactive, Apparent, Active?

          Danke!












          Kommentar

          Lädt...