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

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.8k

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

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

Bedeutung Codes Running States Sungrow Wechselrichter

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
14 Beiträge 6 Kommentatoren 4.2k Aufrufe 5 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.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      aleks-83
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        aleks-83
        schrieb am zuletzt editiert von
        #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 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          aleks-83
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von
            #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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #12

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

                  Gruß Udo

                  1 Antwort Letzte Antwort
                  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
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von 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 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

                      889

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      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