Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin für Solaredge Wechselrichter / Sunspec in Arbeit

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    zu den Registern mit Zahlenwert muss meist auch der scaleFaktor ausgelesen und verrechnet werden (Berechnung geschiet im Eval Registerwert*10Hoch(SF) )

    Code:
       Inverter_AC_EnergyWH_sf:
            type: num
            name: I_AC_Energy_WH_SF
            enforce_updates: 'True'
            modBusAddress: '40095'
            modBusDataType: int16
        Inverter_AC_Energy:
            type: num
            name: I_AC_EnergyWH
            database: yes
            database_maxage: '365'
            eval: value*10**sh.Photovoltaik.Inverter_AC_EnergyWH_sf()
            modBusAddress: '40093'
            modBusDataType: uint32

    Kommentar


      Zitat von ivande Beitrag anzeigen
      zu den Registern mit Zahlenwert muss meist auch der scaleFaktor ausgelesen und verrechnet werden (Berechnung geschiet im Eval Registerwert*10Hoch(SF) )
      den scale lese ich mit aus:


      PHP-Code:

      Produktion
      :
      typenum
      name
      I_AC_Energy_WH
      enforce_updates
      'True'
      eval: value*10**sh.Photovoltaik.Produktion_sf()
      modBusAddress'40093'
      modBusFactor'1'
      modBusDataTypeuint32
      struct
      :
      dbdevelop.verbrauch_1
      dbdevelop.verbrauch_2
      dbdevelop.zaehlerstand_1
      Produktion_sf
      :
      typenum
      name
      I_AC_Energy_WH_sf
      enforce_updates
      'True'
      modBusAddress'40095'
      modBusDataTypeuint16​ 

      Jedoch habe ich das Gefühl das der Wert nicht stimmt - Ich möchte eine anzeige bauen die mir sagt du hast heute xyz kw/h selber verbraucht
      Gruss Oliver

      Projektleiter Technische Gebäudeausrüstung

      Kommentar


        der scale Factor sollte vor dem Energie-wert ausgelesen werden, also auch in der Item-yaml vor Produktion stehen.
        Was wird denn für ein Wert bei den beiden Item's im modbus Admin Fenster angezeigt? wie hoch sollte der Tatsächliche Wert denn sein?

        Kommentar


          Zitat von ivande Beitrag anzeigen
          wie hoch sollte der Tatsächliche Wert denn sein?
          Der Scale Faktor steht auf 0

          Die Erzeugung gemäß Portal liegt bei ca 36.000kw/h


          Gegenfrage : Im Portal ist das die Erzeugung inkl. was in den Speicher geladen wurde?

          Sprich die 45000 Brutto Erzeugung ohne Speicherladung vom SE12.5?


          Code:
           [TABLE]
            [TR]
            [TD]HoldingRegister[/TD]
            [TD]40093[/TD]
            [TD]1[/TD]
            [TD]4587469[/TD]
            [TD]I_AC_Energy_WH[/TD]
            [TD]uint32[/TD]
            [TD]06.02.2023 20:37:11[/TD]
            [TD]06.02.2023 20:37:06[/TD]
            [TD]4587469[/TD]
            [/TR]
            [TR]
            [TD]HoldingRegister[/TD]
            [TD]40095[/TD]
            [TD]1[/TD]
            [TD]0[/TD]
            [TD]I_AC_Energy_WH_sf[/TD]
            [TD]int16[/TD]
            [TD]06.02.2023 20:37:11[/TD]
            [TD]06.02.2023 20:37:06[/TD]
            [TD]0[/TD]
            [/TR]
            [/TABLE]
           ​
          Gruss Oliver

          Projektleiter Technische Gebäudeausrüstung

          Kommentar


            du liest den Wert doch von modbusUnit 1 aus, das ist doch der SE3500-Batteriwwechselrichter?

            warscheinlich musst du den das Register40093 (und sf) von beiden WR auslesen und zusammenzählen..

            oder vielleicht das Register 40225/40241(sf) das müsste die Exportierte Energie vom Energie-Meter sein

            Kommentar


              Mann bin ich blöd 😅


              Klar der se 3500 ist der Batterie wr
              Mir geht es darum die erzeugte Energie anzuzeigen damit ich den täglichen eigenverbtaich berechnen kann
              Gruss Oliver

              Projektleiter Technische Gebäudeausrüstung

              Kommentar


                um den Eigenverbrauch zu berechner wirst du von der erzeugte Energie deiner WR (Register 40093) zusammenzählen und davon die exportierte Energie vom Energie-Meter (Register 40225) abziehen müssen.

                um den Verbrauch zu berechnen: erzeugte Energie deiner WR (Register 40093)-exportierte Energie+importierte Energie

                Kommentar


                  Sagt mal blöde Frage vielleicht aber welche Hardware verwendet ihr um auf den Modbus überhaupt draufzukommen?

                  Ich werde demnächst meinen Solaredge WR bekommen und würde mich da schon mal drum kümmern wollen ...

                  Kommentar


                    Sofern natives Modbus TCP: Als Hardware wird ein Stück 'Netzwerkkabel' verwendet.

                    Wenn 2-/4-Draht: Schau mal in dieses Wiki unter "Funktionierende Adapter", da sind diverse USB- und Serial-to-LAN Adapter aufgeführt (auch welche mit Konvertierung RTU zu TCP, so dass man auch ein reines Serial-Gerät über das Netzwerk ansprechen kann).

                    hth,
                    /tom

                    Kommentar


                      Guten Abend,
                      ich betreibe einen SMK10RWS mit, seit neustem, einer Solar Edge Home Battery. Nun habe von jonny7792 den folgenden Code übernommen:

                      Code:
                          C_Version:
                              type: str
                              name: C_Version
                              modBusAddress@solaredge: 40044
                              modBusDataType: string16
                              modBusUnit: '1'
                              modBusObjectType: HoldingRegister
                          AC_Leistung_sf:
                              type: num
                              name: I_AC_Power_SF # SF- Skalierungsfaktor sunspec (z.B. -3)
                              enforce_updates: True
                              modBusAddress@solaredge: 40084
                              modBusDataType: int16
                              modBusUnit: '1'
                              modBusObjectType: HoldingRegister
                          AC_Leistung:
                              type: num
                              name: I_AC_Power # Die Leistung ergit sich aus dem erhaltenen Registerwert und dem Skalierungsfaktor (AC_Leistung_sf)
                              enforce_updates: True
                              eval: value*10**sh.Photovoltaik.AC_Leistung_sf() # Berechnung der Leistung (erhaltene Registerwert * 10^Skalierungsfaktor)
                              modBusAddress@solaredge: 40083
                              modBusFactor: 0.001
                              modBusUnit: '1'
                              modBusObjectType: HoldingRegister
                      ​
                      .............................................
                      
                      
                          Speicher_Leistung:
                              type: num
                              name: S_Power
                              enforce_updates: True
                              modBusAddress@solaredge: 59764
                              modBusUnit: '1'
                              modBusDataType: float32
                              modBusFactor: 0.001
                          Speicher_Energie:
                              type: num
                              name: S_Available_Energy
                              modBusAddress@solaredge: 59776
                              modBusUnit: '1'
                              modBusDataType: float32
                              modBusFactor: 0.001
                          Speicher_SOE:
                              type: num
                              name: S_SOE
                              modBusAddress@solaredge: 59780
                              modBusUnit: '1'
                              modBusDataType: float32
                          Speicher_Status:
                              type: num
                              name: S_Status
                              modBusAddress@solaredge: 59782
                              modBusUnit: '1'
                              modBusDataType: uint32
                              Text:
                                  type: str
                                  eval_trigger: Photovoltaik.Speicher_Status
                                  eval: sh..lookup()[value]
                                  lookup:
                                      type: dict
                                      initial_value: "{0: 'Aus', 1: 'Standby', 2: 'Init', 3: 'Laden', 4: 'Entladen', 5: 'Fehler', 6: 'Leerlauf'}"  
                      ​
                      Hinweis: Da ich aktuell noch versuche mit meiner Bender-Wallbox zu sprechen habe ich das solaredge-plugin in den Deklarationen immer verwendet ( @solaredge).

                      Mein Problem, die oberen Parameter vom Wechselrichter über die PV-Produktion etc. lese ich über Modbus problemlos aus, aber bei dem Teil mit dem Speicher meldet sich

                      Code:
                      2023-03-17 20:48:10 ERROR plugins.modbus_tcp solaredge@: read error: Exception Response(131, 3, IllegalAddress) HoldingRegister.59764.1 (address.slaveUnit) regCount:1
                      2023-03-17 20:48:10 ERROR plugins.modbus_tcp solaredge@: read error: Exception Response(131, 3, IllegalAddress) HoldingRegister.59776.1 (address.slaveUnit) regCount:1
                      2023-03-17 20:48:11 ERROR plugins.modbus_tcp solaredge@: read error: Exception Response(131, 3, IllegalAddress) HoldingRegister.59780.1 (address.slaveUnit) regCount:1
                      2023-03-17 20:48:11 ERROR plugins.modbus_tcp solaredge@: read error: Exception Response(131, 3, IllegalAddress) HoldingRegister.59782.1 (address.slaveUnit) regCount:1
                      2023-03-17 20:48:11 ERROR plugins.modbus_tcp solaredge@: read error: Exception Response(131, 3, IllegalAddress) HoldingRegister.57732.1 (address.slaveUnit) regCount:1
                      2023-03-17 20:48:11 ERROR plugins.modbus_tcp solaredge@: read error: Exception Response(131, 3, IllegalAddress) HoldingRegister.57734.1 (address.slaveUnit) regCount:1​
                      Ich habe jetzt 4 Abende gelesen und dutzende Seiten durchsucht, finde aber keine Register mit denen ich die Infos über den Speicher auslesen könnte. Habt ihr einen Lösungsansatz für mich? Gibts ein Tool mit dem man einfach mal alle Register lesen kann um zu schauen wo Daten reinkommen?

                      Sind die Register von Speicher zu Speicher unterschiedlich oder sind die im WR hinterlegt?

                      Ich bin so langsam am Verzweifeln und würde ich freuen wenn jemand einen Hinweis für mich hätte wo man suchen kann.

                      Danke!!

                      GRüße
                      Carsten

                      Kommentar


                        Hi 👋!
                        Es gibt da eine Home Assistant custom component die das kann. Vielleicht findest du in dem Code die Register die dafür gelesen werden.
                        https://github.com/WillCodeForCats/s...e-modbus-multi

                        Kommentar


                          Zitat von Netsrac80 Beitrag anzeigen
                          Gibts ein Tool mit dem man einfach mal alle Register lesen kann um zu schauen wo Daten reinkommen?
                          hab die Register vom solaredge-Support auf Anfrage bekommen...

                          Kommentar

                          Lädt...
                          X