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. ModBus-Scale Factor Problem

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    481

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

ModBus-Scale Factor Problem

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
29 Beiträge 12 Kommentatoren 6.6k Aufrufe 2 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.
  • E Offline
    E Offline
    ehome
    schrieb am zuletzt editiert von
    #8

    Hallo,

    der Scale Factor ist der Exponent (ich hoffe das ist der richtige Ausdruck, Mathevorlesung ist schon was länger her…)

    Das bedeutet hier:

    40083_I_AC_Power *10^40084_I_AC_Power_SF

    die PV produziert 7430 W*10^-1

    also 743W bzw. 0,743 kW

    Die Werte decken sich mit den Werten im SolarEdge Online Portal.

    In der ModBus Adapterconfig habe ich nur für die Gesamtproduktion einen Faktor eingegeben, damit die Zahlen nicht zu groß werden.
    358_pic2.png
    Mit einem einfachen Skript kann man dann die Tatsächlichen Werte in javascript oder so wie ich es mache, in Wrapper Objekte schreiben.

    // Werte die alle 30s ermittelt werden sollen
    
    schedule("* * * * *", function () {
    
      //log("Setzte History Werte fuer Counter start");
        // Werte in kWh
        var waschmaschine       = Number(getState("hm-rpc.0.XXXXXXXXX.2.POWER").val)/1000;
        var trockner            = Number(getState("hm-rpc.0.XXXXXXXXX.2.POWER").val)/1000;
        var itschrank           = Number(getState("hm-rpc.0.XXXXXXXXX.2.POWER").val)/1000;
        var schreibtisch_ao     = Number(getState("hm-rpc.0.XXXXXXXXX.2.POWER").val)/1000;
        var wallbox             = Number(getState("kecontact.0.p"/*Power*/).val)/1000000;
        var wallbox_current     = Number(getState("kecontact.0.currentUser"/*Current User*/).val)/1000;
        var pv_power_aktuell    = Number(getState("modbus.0.holdingRegisters.40083_I_AC_Power").val*Math.pow(10,getState("modbus.0.holdingRegisters.40084_I_AC_Power_SF").val))/1000;
        var hausanschluss_bezug = Number(getState("modbus.0.holdingRegisters.40206_M_AC_Power").val*Math.pow(10,getState("modbus.0.holdingRegisters.40210_M_AC_Power_SF").val))/1000;
    
        var hausanschluss_verbrauch=round(pv_power_aktuell-hausanschluss_bezug,1000);
    
        waschmaschine=round(waschmaschine,100);
        trockner=round(trockner,100);
        itschrank=round(itschrank,100);
    
        setState("wrapper.0.Strom.power_pv_aktuell"/*Power PV aktuell*/,pv_power_aktuell,true);
        setState("wrapper.0.Strom.power_waschmaschine",waschmaschine,true);
        setState("wrapper.0.Strom.power_trockner",trockner,true);
        setState("wrapper.0.Strom.power_it-schrank",itschrank,true);
        setState("wrapper.0.Strom.power_schreibtisch-olli",schreibtisch_ao,true);
        setState("wrapper.0.Strom.power_wallbox",wallbox,true);
        setState("wrapper.0.Strom.current_wallbox_set"/*Stromstaerke Wallbox eingestellt*/,wallbox_current,true);
        setState("wrapper.0.Strom.power_hausanschluss_bezug"/*Power Hausanschluss Bezug*/,hausanschluss_bezug,true);
        setState("wrapper.0.Strom.power_haus_verbrauch"/*Power Hausanschluss Bezug*/,hausanschluss_verbrauch,true);
    
      //log ("Setzte History Werte fuer Temperaturen ende");
    
    });
    
    function round(zahl,n_stelle) {
        zahl = (Math.round(zahl * n_stelle) / n_stelle);
        return zahl;
    }
    
    
    1 Antwort Letzte Antwort
    0
    • wendy2702W Offline
      wendy2702W Offline
      wendy2702
      schrieb am zuletzt editiert von
      #9

      Und dieser Scale Factor ist variabel!?

      Weil wenn nicht kannst du doch einfach einen festen Faktor im Adapter angeben und musst nicht extra mit einem Script arbeiten.

      Bitte keine Fragen per PN, die gehören ins Forum!

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • V Offline
        V Offline
        valbuz
        schrieb am zuletzt editiert von
        #10

        Meiner Meinung nach, ändert dieser eben…

        2xProxmox auf NUC
        E3DC 13kWh Speicher via RCSP an ioBroker

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          MeisterF
          schrieb am zuletzt editiert von
          #11

          Im kurzen Testlauf meines SE5k mit Modbus-Zähler habe ich auch feststellen müssen, dass der Skalierungsfaktor von der aktuellen Leistung abhängt.

          Ich würde schätzen - aktuelle Leistung * 10 hoch (Skalierungsfaktor-65536)

          Da ich noch keinen Zweirichtungszähler / Endabnahme durch EVU habe, kann ich noch nicht weiter testen.

          Wäre also toll, wenn jemand entweder einen SolarEdge-Adapter auf Basis des Modbus-Adapters oder auf Basis des ?? Webseiten-Auslese-Adapters ?? (Wie heißt der gleich?) bauen könnte - ich kanns nicht.

          Letzteres wäre u.U. umfangreicher, aber vom SolarEdge-Server abhängig. Dafür ist dann keine Umrechnerrei erforderlich ;-)

          verlinkte API und PHP-Schnipsel siehe https://www.photovoltaikforum.com/wechselrichter-f3/solaredge-api-nutzen-t122938.html

          HP dc9700 debian 9 64bit, admin: 2.0.9,email: 1.0.2,flot: 1.7.0,history: 1.6.6,javascript: 3.5.1, js-controller: 1.2.3,km200: 1.1.6,modbus: 0.5.4,vis : 1.0.4,web: 2.1.9

          GB162 mit Buderus web KM200, SolarEdge SE5k mit Modbus Zähler

          1 Antwort Letzte Antwort
          0
          • V Offline
            V Offline
            valbuz
            schrieb am zuletzt editiert von
            #12

            Das Problem bei der API-Abfrage ist, dass der Intervall der Daten auf 15Min. beschränkt ist. ;)

            Auch die Abfrage ist begrenzt pro 24Std.!

            2xProxmox auf NUC
            E3DC 13kWh Speicher via RCSP an ioBroker

            1 Antwort Letzte Antwort
            0
            • wendy2702W Offline
              wendy2702W Offline
              wendy2702
              schrieb am zuletzt editiert von
              #13

              Das mit dem variablem Scale Factor ist natürlich "dumm".

              Kann man das eventuell irgendwie weg konfigurieren? Macht aus meiner Sicht eh keinen großen Sinn den variabel zu machen, aber wenn es so implementiert ist.

              Bitte keine Fragen per PN, die gehören ins Forum!

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                sol21
                schrieb am zuletzt editiert von
                #14

                ehome hat weiter oben die Verwendung des Scalefaktors ja schön beschrieben.

                Gibt es trotzdem noch Probleme? Wo genau und welchen Wert wollt Ihr konkret lesen?

                1 Antwort Letzte Antwort
                0
                • V Offline
                  V Offline
                  valbuz
                  schrieb am zuletzt editiert von
                  #15

                  @MeisterF:

                  Ich würde schätzen - aktuelle Leistung * 10 hoch (Skalierungsfaktor-65536) `

                  Wie würde dann die Rechnung aussehen?

                  Das wäre ja ein enormer Exponent ;)

                  2xProxmox auf NUC
                  E3DC 13kWh Speicher via RCSP an ioBroker

                  1 Antwort Letzte Antwort
                  0
                  • apollon77A Offline
                    apollon77A Offline
                    apollon77
                    schrieb am zuletzt editiert von
                    #16

                    Wenn ihr rausgefunden habt wie genau die Berechnung s in muss kann man den modbus Adapter normal laufen lassen, beide Werte auslesen lassen und bei Aktualisierung per JavaScript den richtig errechneten wert in einen State schreiben. Sind 3 Zeilen JavaScript und braucht keinen extra Adapter ;-))

                    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                    1 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #17

                      @apollon77:

                      Wenn ihr rausgefunden habt wie genau die Berechnung s in muss kann man den modbus Adapter normal laufen lassen, beide Werte auslesen lassen und bei Aktualisierung per JavaScript den richtig errechneten wert in einen State schreiben. Sind 3 Zeilen JavaScript und braucht keinen extra Adapter ;-)) `

                      Ich habe gleiche Meinung

                      1 Antwort Letzte Antwort
                      0
                      • V Offline
                        V Offline
                        valbuz
                        schrieb am zuletzt editiert von
                        #18

                        @ehome:

                        Mit einem einfachen Skript kann man dann die Tatsächlichen Werte in javascript oder so wie ich es mache, in Wrapper Objekte schreiben. `

                        Hallo Olli.

                        Muss beim Wrapper im voraus eine Struktur etc. definiert werden oder schreibt das Skript alles automatisch korrekt in den Wrapper?

                        Mach mich noch etwas schwer damit… :)

                        Danke

                        Patrick

                        2xProxmox auf NUC
                        E3DC 13kWh Speicher via RCSP an ioBroker

                        1 Antwort Letzte Antwort
                        0
                        • ChristianMC Offline
                          ChristianMC Offline
                          ChristianM
                          schrieb am zuletzt editiert von
                          #19

                          @Bluefox:

                          @apollon77:

                          Wenn ihr rausgefunden habt wie genau die Berechnung s in muss kann man den modbus Adapter normal laufen lassen, beide Werte auslesen lassen und bei Aktualisierung per JavaScript den richtig errechneten wert in einen State schreiben. Sind 3 Zeilen JavaScript und braucht keinen extra Adapter ;-)) `

                          Ich habe gleiche Meinung `

                          Schade, auch ich hab damit leider ein paar Probleme.

                          1 Antwort Letzte Antwort
                          0
                          • E Offline
                            E Offline
                            ehome
                            schrieb am zuletzt editiert von
                            #20

                            @Bluefox:

                            @apollon77:

                            Wenn ihr rausgefunden habt wie genau die Berechnung s in muss kann man den modbus Adapter normal laufen lassen, beide Werte auslesen lassen und bei Aktualisierung per JavaScript den richtig errechneten wert in einen State schreiben. Sind 3 Zeilen JavaScript und braucht keinen extra Adapter ;-)) `

                            Ich habe gleiche Meinung `

                            Also - wie ich geschrieben habe - benutze ich ja ein paar Zeilen javascript Code um die Werte zu berechnen.

                            Ich habe nie gesagt, dass man dafür einen extra Adapter braucht! Nichts spricht dagegen einfach Javascript Variablen zu nutzen.

                            Den Wrapper-Adapter nutze ich halt gerne, da er aus meiner Sicht einige praktische Vorteile hat.

                            1 Antwort Letzte Antwort
                            0
                            • E Offline
                              E Offline
                              ehome
                              schrieb am zuletzt editiert von
                              #21

                              @valbuz:

                              @MeisterF:

                              Ich würde schätzen - aktuelle Leistung * 10 hoch (Skalierungsfaktor-65536) `

                              Wie würde dann die Rechnung aussehen?

                              Das wäre ja ein enormer Exponent ;) `

                              Hmm, der Scale Factor würde mich auch überraschen ….

                              Wie https://forum.iobroker.net/viewtopic.php?f=20&t=6887&p=85299#p85299 kann es sein, dass man die Adressen etwas verschieben muss um sinnvolle Werte zu bekommen. Man kann seine Berechnungen ja aktuell immer mit dem SolarEge Portal vergleichen um zu sehen, ob man richtig liegt …

                              1 Antwort Letzte Antwort
                              0
                              • ChristianMC Offline
                                ChristianMC Offline
                                ChristianM
                                schrieb am zuletzt editiert von
                                #22

                                Ich habs mittlerweile auch hinbekommen mit deinem Script. Ein Adapter wäre natürlich aber trotzdem toll.

                                Christian

                                1 Antwort Letzte Antwort
                                0
                                • V Offline
                                  V Offline
                                  valbuz
                                  schrieb am zuletzt editiert von
                                  #23

                                  Also ich habe hier noch ein Problem mit der Darstellung im Wrapper…..

                                  Wenn ich in den Einstellungen der Modbus Register meine entsprechendes Register mit einem Faktor 0.1 einsetze so erhalte ich im Wrapper eine Darstellung auch mit 0.xxxx

                                  Gerne möchte ich jedoch, dass im Wrapper keine Kommazahl erscheint. So habe ich in den Einstellungen der Register den Faktor auf 1 gesetzt. Danach erhalte ich im Wrapper nur noch als Wert "true". Siehe Fotos.

                                  Was mache ich da falsch?
                                  6494_modbus1.jpg

                                  2xProxmox auf NUC
                                  E3DC 13kWh Speicher via RCSP an ioBroker

                                  1 Antwort Letzte Antwort
                                  0
                                  • I Offline
                                    I Offline
                                    ibins
                                    schrieb am zuletzt editiert von
                                    #24

                                    Hallo zusammen,

                                    ich habe seit Mai eine PV mit SE7K Wechselrichter. Mein Problem ist, das der Ertragswert 40083 I_AC_Power springt. Damit meine ich, dass scheinbar der Skalierungswert (Faktor) zwischen 0.1 und 1 pendelt. Gibt es eine Möglichkeit, dies zu unterbinden, bzw. die Einstellungen entsprechend anzupassen?

                                    Über eure Unterstützung würde ich mich freuen.

                                    Danke und Grüße,

                                    Ralf

                                    1 Antwort Letzte Antwort
                                    0
                                    • V Offline
                                      V Offline
                                      valbuz
                                      schrieb am zuletzt editiert von
                                      #25

                                      Hallo Ralf.

                                      Also ich lese mit dem Register 40101 die aktuelle Produktion aus und verwende dazu den SF von 40102.

                                      Versuche es mal damit.

                                      Pat

                                      2xProxmox auf NUC
                                      E3DC 13kWh Speicher via RCSP an ioBroker

                                      1 Antwort Letzte Antwort
                                      0
                                      • I Offline
                                        I Offline
                                        ibins
                                        schrieb am zuletzt editiert von
                                        #26

                                        Hallo Pat,

                                        vielen Dank für die Nachricht. Ich hatte ein Verständnisproblem mit der Berechnungsweise. Man benötigt immer Wert x Faktor, dann funktioniert es. Trotzdem vielen Dank für deine Nachricht.

                                        Grüße

                                        Ralf

                                        P.S: Mit den Registern 40083 und 40084 bekomme ich meine benötigten Daten.

                                        1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          swagner
                                          schrieb am zuletzt editiert von
                                          #27

                                          Hallo an Alle mit einem SolarEdge,

                                          Also ich lese den Scale Factor aus und bekomme Werte von 0, -1 bis -5 und dieser (-) Wert gibt an um wie viel das Komma beim Current Power AC verschoben werden muss.

                                          9439_scale_factor.jpg

                                          Ich hatte auch das Problem das irgendwas mit 65534 Angezeigt wurde aber ich habe mir die Dokumentation vom SolarEdge Modbus besorgt und die Daten für den Scale Factor neu eingegeben und jetzt funktioniert es, es gibt auch noch andere Werte die den Scale Factor Verwenden und je nach Leistung Variable sind.

                                          Ich habe mir auf die Schnelle (bin kein Programmiere) ein Programm mit Blockly zusammen gebaut und Skaliere die Werte, sieht in etwa so aus
                                          9439_sf_blocky.jpg

                                          Wenn jemand eine bessere Idee hat wie das Programm aussehen könnte, bitte Posten - danke.

                                          Ich habe das mal mit Node-Red gemacht, und das sieht schon nicht so schlecht aus :-)

                                          9439_node_red.png

                                          Ich habe auch einen FLOT erstellt da habe ich aber noch ein altes Script verwendet und hatte ein paar peaks wenn sich die Skalierung beim SolarEdge geändert hat, mit dem neuen Script muss ich das erst noch überprüfen.
                                          9439_auswertung.png

                                          Grüße,

                                          Stefan

                                          L 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

                                          324

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          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