Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Bedeutung Codes Running States Sungrow Wechselrichter

NEWS

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

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

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

Bedeutung Codes Running States Sungrow Wechselrichter

Scheduled Pinned Locked Moved ioBroker Allgemein
14 Posts 6 Posters 4.2k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    helmut1963
    wrote on last edited by
    #1

    Hallo, hab mehr oder weniger erfolgreich den 8 KW Hybrid-Wechselrichter von Sungrow (HV SH8.0RT 8Kw Hybrid) mittels Modbus-Adapter in Iobroker eingebunden. Die meisten Datenpunkte sind klar, jedoch die Codes im Datenpunkt "modbus.0.inputRegisters.13000_Running_State" sagen mir nichts. Ich vermute daraus läßt sich ableiten, wie die jeweiligen Energieflüsse gerade sind. Es tauchen Werte auf von 12,13,29,40,41,43,44,45. Kennt jemand die genauen Bedeutungen?
    Gruß, Helmut
    Sungrow.jpg

    O 1 Reply Last reply
    0
    • H helmut1963

      Hallo, hab mehr oder weniger erfolgreich den 8 KW Hybrid-Wechselrichter von Sungrow (HV SH8.0RT 8Kw Hybrid) mittels Modbus-Adapter in Iobroker eingebunden. Die meisten Datenpunkte sind klar, jedoch die Codes im Datenpunkt "modbus.0.inputRegisters.13000_Running_State" sagen mir nichts. Ich vermute daraus läßt sich ableiten, wie die jeweiligen Energieflüsse gerade sind. Es tauchen Werte auf von 12,13,29,40,41,43,44,45. Kennt jemand die genauen Bedeutungen?
      Gruß, Helmut
      Sungrow.jpg

      O Offline
      O Offline
      ostseeskipper
      wrote on last edited by
      #2

      @helmut1963
      Das ist ein 8bit Register und steht im Communication Protokoll welches Bit wofür ist.
      Spätestens wenn du für den Speicher wissen willst ob gespeichert oder geladen wird brauchst du das

      Appendix 1.2 Running state
      Running state(Power flow)
      Bit0 PV power
      Bit0 == 0 No power generated from PV
      Bit0 == 1 Power generated from PV
      Bit1
      Battery
      charging
      Bit1 == 0 Not charging
      Bit1 == 1 Charging
      Bit2 Battery Bit2 == 0 Not discharging
      discharging Bit2 == 1 Discharging
      Bit3
      Positive load
      power
      Bit3 == 0 Load is reactive
      Bit3 == 1 Load is active
      Bit4
      Feed-in
      power
      Bit4 == 0 No power feed-in the grid
      Bit4 == 1 Power feed-in the grid
      Bit5
      Import Power
      from grid
      Bit5 == 0 No power imported from the
      grid
      Bit5 == 1 Importing power from grid
      Bit6 Reserved Bit6
      Bit7
      (Refitting
      System)
      Negative load
      power
      Bit7 == 0 No power generated from
      “Load”
      Bit7== 1 Power generated
      from“Load”

      T 1 Reply Last reply
      0
      • O ostseeskipper

        @helmut1963
        Das ist ein 8bit Register und steht im Communication Protokoll welches Bit wofür ist.
        Spätestens wenn du für den Speicher wissen willst ob gespeichert oder geladen wird brauchst du das

        Appendix 1.2 Running state
        Running state(Power flow)
        Bit0 PV power
        Bit0 == 0 No power generated from PV
        Bit0 == 1 Power generated from PV
        Bit1
        Battery
        charging
        Bit1 == 0 Not charging
        Bit1 == 1 Charging
        Bit2 Battery Bit2 == 0 Not discharging
        discharging Bit2 == 1 Discharging
        Bit3
        Positive load
        power
        Bit3 == 0 Load is reactive
        Bit3 == 1 Load is active
        Bit4
        Feed-in
        power
        Bit4 == 0 No power feed-in the grid
        Bit4 == 1 Power feed-in the grid
        Bit5
        Import Power
        from grid
        Bit5 == 0 No power imported from the
        grid
        Bit5 == 1 Importing power from grid
        Bit6 Reserved Bit6
        Bit7
        (Refitting
        System)
        Negative load
        power
        Bit7 == 0 No power generated from
        “Load”
        Bit7== 1 Power generated
        from“Load”

        T Offline
        T Offline
        Tiedi
        wrote on last edited by
        #3

        @ostseeskipper

        Also ich check's nicht :-)

        Was heißt nach dieser Anleitung nun der State 12 oder 40 ?

        N 2 Replies Last reply
        0
        • T Tiedi

          @ostseeskipper

          Also ich check's nicht :-)

          Was heißt nach dieser Anleitung nun der State 12 oder 40 ?

          N Offline
          N Offline
          Nordischerjung
          wrote on last edited by Nordischerjung
          #4

          @tiedi Geht es da vielleicht nach dem Binärensystem?

          12 = Bit0=0 Bit1=0 Bit2=1 Bit3=1

          Bit_____7654 3210
          Wert__0000 1100

          40:____0010 1000

          Gruß Nordischerjung

          sonnige Grüße von der Ostsee

          1 Reply Last reply
          0
          • T Tiedi

            @ostseeskipper

            Also ich check's nicht :-)

            Was heißt nach dieser Anleitung nun der State 12 oder 40 ?

            N Offline
            N Offline
            Nordischerjung
            wrote on last edited by
            #5

            @tiedi ach guck mal hier
            https://forum.iobroker.net/topic/44861/gelöst-hex-oder-dezimal-in-binär-wandeln-und-text-ausgeben

            Gruß Nordischerjung

            sonnige Grüße von der Ostsee

            1 Reply Last reply
            0
            • A Offline
              A Offline
              aleks-83
              wrote on last edited by aleks-83
              #6

              Hi,

              ich greife das Thema nochmal auf, da ich von dieser Art von Programmieren und Zahlen jonglieren absolut nichts verstehe.

              Hat jemand eine Funktion geschrieben in der man diese Fehlercodes abfragen kann?
              Oder vielleicht ein einfache Zuordnung durch Textzuweisung nach Fehlercode?

              In dem verlinkten Thread verstehe ich ebenfalls nur Bahnhof :face_with_head_bandage:

              Ich habe mal die Beschreibung von Sungrow extrahiert und angehängt.
              Sungrow WR Fehlercodes.pdf

              = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
              = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

              Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
              Glasfaser 400

              1 Reply Last reply
              0
              • A Offline
                A Offline
                aleks-83
                wrote on last edited by
                #7

                Ich habe die Zuweisung für den System Status jetzt erst einmal fest umgesetzt.

                async function StatiZuweisen() {
                  SystemStatus = getState("modbus.0.inputRegisters.12999_System_State").val;
                  Betriebsstatus = getState("modbus.0.inputRegisters.13000_Running_State").val;
                  strSystemStatus = ('' + SystemStatus);
                  strBetriebsStatus = ('' + Betriebsstatus);
                  // Systemstatus
                  if (strSystemStatus == '0') {
                    strSystemStatus = 'OK';
                  } else if (strSystemStatus == '2') {
                    strSystemStatus = 'Stop';
                  } else if (strSystemStatus == '8') {
                    strSystemStatus = 'StdBy';
                  } else if (strSystemStatus == '16') {
                    strSystemStatus = 'Initial StdBy';
                  } else if (strSystemStatus == '32') {
                    strSystemStatus = 'Startup';
                  } else if (strSystemStatus == '64') {
                    strSystemStatus = 'Running';
                  } else if (strSystemStatus == '256') {
                    strSystemStatus = 'Fault';
                  } else if (strSystemStatus == '1024') {
                    strSystemStatus = 'Maintain mode';
                  } else if (strSystemStatus == '2048') {
                    strSystemStatus = 'Forced mode';
                  } else if (strSystemStatus == '4096') {
                    strSystemStatus = 'Off-Grid mode';
                  } else if (strSystemStatus == '9473') {
                    strSystemStatus = 'Restarting';
                  } else if (strSystemStatus == '16384') {
                    strSystemStatus = 'Ext. EMS mode';
                  } else {
                    strSystemStatus = 'unbekannt';
                  }
                  // Betriebsstatus
                  if (strBetriebsStatus == '0') {
                    strBetriebsStatus = 'OK';
                  } else {
                    strBetriebsStatus = 'unbekannt';
                  }
                  console.warn((['### Wechselrichter Meldung: Systemstatus: ',SystemStatus,' - ',strSystemStatus,' - ','Betriebsstatus: ',Betriebsstatus,' - ',strBetriebsStatus].join('')));
                }
                

                Der Bereich für den Betriebsstatus ist allerdings noch offen.
                Hier verstehe ich die Dokumentation leider überhaupt nicht.

                = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                Glasfaser 400

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  aleks-83
                  wrote on last edited by
                  #8

                  Hat hier jemand weiter dran gearbeitet und alle Fehlercodes entschlüsselt?
                  Ich habe mich daran versucht, aber verstehe zu wenig von den Bit-Zuordnungen.
                  Kann mir jemand dabei helfen?

                  = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                  = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                  Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                  Glasfaser 400

                  ubeckerU 1 Reply Last reply
                  0
                  • A aleks-83

                    Hat hier jemand weiter dran gearbeitet und alle Fehlercodes entschlüsselt?
                    Ich habe mich daran versucht, aber verstehe zu wenig von den Bit-Zuordnungen.
                    Kann mir jemand dabei helfen?

                    ubeckerU Offline
                    ubeckerU Offline
                    ubecker
                    wrote on last edited by
                    #9

                    @aleks-83 was möchtest du denn damit machen?
                    ich habe mir, da ich nur die Texte zur Visualisierung brauchte, ein kleines Script geschrieben das nur den Systemstatus ausliest und in lesbaren Text übersetzt.

                    
                    let ID_Systemstatus = 'alias.0.Energie.PV_Anlage.Systemstatus';
                    let value_sys_stat = getState(ID_Systemstatus).val;
                    let Systemstatus_txt = 'javascript.0.PV_System_txt';
                    let Status_liste = ['Stop', 'Standby', 'inital Styndby', 'Start', 'Normal', 'Fehler', 'Verwaltungs Mode', 'Erzwungener Mode', 'Inselmode', 'Neustart', 'ext EMS Mode'];
                    
                    on({ id: [].concat(ID_Systemstatus), change: 'ne' }, async (obj) => {
                      let value = obj.state.val;
                      let oldValue = obj.oldState.val;
                      value_sys_stat = (obj.state ? obj.state.val : '');
                      let i = 0;
                      while (value_sys_stat > 1) {
                          value_sys_stat = value_sys_stat >> 1;
                          i++;
                        }
                    setState(Systemstatus_txt, (Status_liste[i-2]), true);
                    // console.log(i);
                    // console.log (getState(Systemstatus_txt).val);
                    });
                    

                    wobei natürlich meine Datenpunkte verwendet werden.
                    Geht vieleicht auch einfacher, aber es macht das was es soll.

                    Gruß Udo

                    A 1 Reply Last reply
                    0
                    • ubeckerU ubecker

                      @aleks-83 was möchtest du denn damit machen?
                      ich habe mir, da ich nur die Texte zur Visualisierung brauchte, ein kleines Script geschrieben das nur den Systemstatus ausliest und in lesbaren Text übersetzt.

                      
                      let ID_Systemstatus = 'alias.0.Energie.PV_Anlage.Systemstatus';
                      let value_sys_stat = getState(ID_Systemstatus).val;
                      let Systemstatus_txt = 'javascript.0.PV_System_txt';
                      let Status_liste = ['Stop', 'Standby', 'inital Styndby', 'Start', 'Normal', 'Fehler', 'Verwaltungs Mode', 'Erzwungener Mode', 'Inselmode', 'Neustart', 'ext EMS Mode'];
                      
                      on({ id: [].concat(ID_Systemstatus), change: 'ne' }, async (obj) => {
                        let value = obj.state.val;
                        let oldValue = obj.oldState.val;
                        value_sys_stat = (obj.state ? obj.state.val : '');
                        let i = 0;
                        while (value_sys_stat > 1) {
                            value_sys_stat = value_sys_stat >> 1;
                            i++;
                          }
                      setState(Systemstatus_txt, (Status_liste[i-2]), true);
                      // console.log(i);
                      // console.log (getState(Systemstatus_txt).val);
                      });
                      

                      wobei natürlich meine Datenpunkte verwendet werden.
                      Geht vieleicht auch einfacher, aber es macht das was es soll.

                      A Offline
                      A Offline
                      aleks-83
                      wrote on last edited by aleks-83
                      #10

                      @ubecker
                      Danke für dein skript.
                      Wie das funktioniert, verstehe ich nicht.
                      Wonordnet er die Werte den Texten zu?

                      Ich möchte im Prinzip das gleiche tun.
                      Also aus den Bit Werten einen lesbaren Zustand schreiben.
                      Mir fehlen aktuell einige Zuordnungen.
                      Oben in meinem Post siehst du, welche ich aktuell zugeordnet habe.

                      Aktuell bekomme ich immer wieder Meldungen meines WR über folgende Stati:
                      Betriebsstatus:
                      9, 25, 40, 41

                      Systemstatus:
                      5120, 5632

                      Edit:
                      Ich habe den WR etwas beobachtet.
                      Könnte der Betriebsstatus wiefolgt sein?
                      25 Einspeisung
                      41 Zukauf
                      9 idle?

                      = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                      = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                      Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                      Glasfaser 400

                      ubeckerU 3 Replies Last reply
                      0
                      • A aleks-83

                        @ubecker
                        Danke für dein skript.
                        Wie das funktioniert, verstehe ich nicht.
                        Wonordnet er die Werte den Texten zu?

                        Ich möchte im Prinzip das gleiche tun.
                        Also aus den Bit Werten einen lesbaren Zustand schreiben.
                        Mir fehlen aktuell einige Zuordnungen.
                        Oben in meinem Post siehst du, welche ich aktuell zugeordnet habe.

                        Aktuell bekomme ich immer wieder Meldungen meines WR über folgende Stati:
                        Betriebsstatus:
                        9, 25, 40, 41

                        Systemstatus:
                        5120, 5632

                        Edit:
                        Ich habe den WR etwas beobachtet.
                        Könnte der Betriebsstatus wiefolgt sein?
                        25 Einspeisung
                        41 Zukauf
                        9 idle?

                        ubeckerU Offline
                        ubeckerU Offline
                        ubecker
                        wrote on last edited by
                        #11

                        @aleks-83 auch diese Zuordnungen stehen in der Doku im Anhang 1.2
                        Wahrend es beim Systemstatus recht einfach ist, da jedes Bit eine Entspechende Bedeutung hat kann man wie in meinem Script einfach das gemessene Bit aus dem Systemstatus einfach durch Bit schieben den entsprechenden Text ausgeben.
                        Beim Betriebsstatus sind es Bitkombinationen die durch und und oder herausgefunden werden müssen.
                        Ich benutze diese Bits um eine Darstellung in der Vis zu erhalten. Wert wird angezeigt oder ausgeblendet, Flusslinie läuft recht oder linksrum, oder wird ausgebelbdet.
                        Screenshot 2024-11-16 163539.png
                        Im Bild sind alle Linien und Werte die aber in der Webdarstellung der Vis entsprechend an oder aus, links oder rechts rum laufen.
                        hier das Script dazu

                        
                        let Bit_0 = 5; // power from PV and discharging
                        let Bit_1 = 2; // charging
                        let Bit_2 = 4; // discharging
                        let Bit_1_2 = 7; // test auf 0 not charging / not discharging / power from PV
                        let ID_WR2Haus = 'javascript.0.PV_WR2Haus';
                        let ID_Batt_charge = 'javascript.0.PV_Batt_charge';
                        let ID_Batt_discharge = 'javascript.0.PV_Batt_discharge';
                        let ID_Batt_standby = 'javascript.0.PV_Batt_standby';
                        let ID_System_state = 'alias.0.Energie.PV_Anlage.Betriebsstatus';
                        let System_state = getState(ID_System_state).val;
                        
                        
                        // 0 = not charging ; 2 = Charging; 
                        setState(ID_Batt_charge , (System_state & Bit_1), true);
                        // 0 = not discharging ; 4 = discharging; 
                        setState(ID_Batt_discharge , (System_state & Bit_2), true);
                         // true = no Power from PV and discharging
                        setState(ID_WR2Haus , ((System_state & Bit_0) != 0 ), true);
                         // 0 = no charging, no discharging
                        setState(ID_Batt_standby , (System_state & Bit_1_2), true);
                        
                        on({ id: [].concat(ID_System_state), change: 'ne' }, async (obj) => {
                          let value = obj.state.val;
                          let oldValue = obj.oldState.val;
                          System_state = (obj.state ? obj.state.val : '');
                          setState(ID_Batt_charge , (System_state & Bit_1), true);
                          setState(ID_Batt_discharge , (System_state & Bit_2), true);
                          setState(ID_Batt_standby , (System_state & Bit_1_2), true);
                          setState(ID_WR2Haus , ((System_state & Bit_0) != 0 ), true);
                        });
                        
                        
                        

                        Damit setzte ich true oder fals für die Werte, Richtungen.
                        ich hoffe das hilft dir etwas.
                        Übrigens du darfst bei diesen Werten nicht dezumal denken. Du musst Bitmäßig denken.
                        Deine Angabe vom Systemstatus ist fasch. Hier ist wohl noch was in deinen Definition des Modbusregisters falsch.
                        für deine 5120 sollte nur 20 kommen
                        für deine 5632 sollte nur 22 kommen. (Bit 1, Bit2 und Bit4 sind gesetzt, rest ist 0
                        Aber die Werte sind unlogisch. danach wäre bei 20 Akku speist das Netz.
                        bei 22 Akku wied geladen, wird entladen und speichert ins Netz.

                        Gruß Udo

                        1 Reply Last reply
                        0
                        • A aleks-83

                          @ubecker
                          Danke für dein skript.
                          Wie das funktioniert, verstehe ich nicht.
                          Wonordnet er die Werte den Texten zu?

                          Ich möchte im Prinzip das gleiche tun.
                          Also aus den Bit Werten einen lesbaren Zustand schreiben.
                          Mir fehlen aktuell einige Zuordnungen.
                          Oben in meinem Post siehst du, welche ich aktuell zugeordnet habe.

                          Aktuell bekomme ich immer wieder Meldungen meines WR über folgende Stati:
                          Betriebsstatus:
                          9, 25, 40, 41

                          Systemstatus:
                          5120, 5632

                          Edit:
                          Ich habe den WR etwas beobachtet.
                          Könnte der Betriebsstatus wiefolgt sein?
                          25 Einspeisung
                          41 Zukauf
                          9 idle?

                          ubeckerU Offline
                          ubeckerU Offline
                          ubecker
                          wrote on last edited by
                          #12

                          @aleks-83 hier die Modbusdefinition vom mir für Betriebs und Systemstatus
                          Screenshot 2024-11-16 173020.png

                          Gruß Udo

                          1 Reply Last reply
                          1
                          • A aleks-83

                            @ubecker
                            Danke für dein skript.
                            Wie das funktioniert, verstehe ich nicht.
                            Wonordnet er die Werte den Texten zu?

                            Ich möchte im Prinzip das gleiche tun.
                            Also aus den Bit Werten einen lesbaren Zustand schreiben.
                            Mir fehlen aktuell einige Zuordnungen.
                            Oben in meinem Post siehst du, welche ich aktuell zugeordnet habe.

                            Aktuell bekomme ich immer wieder Meldungen meines WR über folgende Stati:
                            Betriebsstatus:
                            9, 25, 40, 41

                            Systemstatus:
                            5120, 5632

                            Edit:
                            Ich habe den WR etwas beobachtet.
                            Könnte der Betriebsstatus wiefolgt sein?
                            25 Einspeisung
                            41 Zukauf
                            9 idle?

                            ubeckerU Offline
                            ubeckerU Offline
                            ubecker
                            wrote on last edited by
                            #13

                            @aleks-83 noch etwas,
                            da ich in Javascript nicht so erfahren bin haben mich für diese Scrips hier einige geholfen.

                            Gruß Udo

                            A 1 Reply Last reply
                            0
                            • ubeckerU ubecker

                              @aleks-83 noch etwas,
                              da ich in Javascript nicht so erfahren bin haben mich für diese Scrips hier einige geholfen.

                              A Offline
                              A Offline
                              aleks-83
                              wrote on last edited by aleks-83
                              #14

                              @ubecker
                              Danke dir für die Hilfe.
                              Leider verstehe ich das Skript und die Doku nicht.

                              Meine Datenpunkte sind genau so eingestellt wie deine.
                              Unsigned 16 Bit (Big Endian)

                              Ich habe übrigens keinen Speicher in meiner PV.

                              = Dell Optiplex Micro - 10GB RAM - 200GB SSD - Debian VM =
                              = Node.js v20.18.3 = NPM 10.2.3 = JS Controller 7.0.6 =

                              Ubiquiti UAP-AC-LR - UAP-AC-Lite - Synology DS716+II - Fritz!Box 7490
                              Glasfaser 400

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

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

                              809

                              Online

                              32.4k

                              Users

                              81.5k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe