Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. ModBus-Scale Factor Problem

NEWS

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

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

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

ModBus-Scale Factor Problem

Scheduled Pinned Locked Moved ioBroker Allgemein
29 Posts 12 Posters 6.4k Views 2 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.
  • V Offline
    V Offline
    valbuz
    wrote on last edited by
    #1

    Hallo

    Ich versuche mich derzeit mittels durchstöbern der Threads hier, schlau zu machen.

    Per Modbus lese ich erfolgreich einige Werte aus meinem Solaredge WR aus.

    Mein Problem besteht nun beim Scalierungsfaktor. Im Anhang ein Screenshot der Werte.

    Wenn ich hier richtig gelesen habe sollte die Formel lauten:

    Wert * 10 "hoch" Skalierungsfaktor dann wäre dies 1918 * 10 "65535" 😞

    Das kann ja nimmer stimmen….

    Was ist hier mein Denkfehler?

    Danke für Eure Hilfe.

    Patrick
    6494_unbenannt.png

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

    1 Reply Last reply
    0
    • wendy2702W Online
      wendy2702W Online
      wendy2702
      wrote on last edited by
      #2

      Meinst du den Faktor den man bei den Registern einstellt?

      Poste doch mal ein Bild von den Register Einstellungen und markiere was du meinst.

      Der Wert 65535 sieht für mich erstmal so aus als wenn dein WR auf dieses Register keine Antwort sendet, sprich es nicht unterstützt.

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

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

      1 Reply Last reply
      0
      • apollon77A Online
        apollon77A Online
        apollon77
        wrote on last edited by
        #3

        Am Ende ist 65536 der Wert "FF", das (oder auch -1), also die Maximalwerte der Wertebereiche kommen oft wenn die Felder vom Gerät nicht unterstützt sind. In dem Fall also "ignore" … psst wenn der Wert mit 1918.7W? Dann brauchst Du vllt einfachen keinen Skalierungsfaktor? 🙂

        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 Reply Last reply
        0
        • V Offline
          V Offline
          valbuz
          wrote on last edited by
          #4

          OK, es scheint hier tatsächlich kein Skalierungsfaktor nötig zu sein….

          Aber bei folgenden Werten müsste dies nötig sein:
          6494_unbenannt.png
          filename="Unbenannt1.PNG" index="0">~~

          Der Skalierungsfaktor von 8 müsste hier stimmen:

          1260670 * 10 "hoch8" = 126067000000000

          oder rechne ich hier was falsch?

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

          1 Reply Last reply
          0
          • wendy2702W Online
            wendy2702W Online
            wendy2702
            wrote on last edited by
            #5

            Wo steht denn etwas von "1260670" !?

            Was soll das für ein Wert sein?

            Und von welchen Werten redest du?

            Ich kann nur Register sehen.

            Steht in der WR Doku nicht drin welcher Faktor verwendet werden muss?

            Wenn du von dem Faktor redest:

            999_faktor.jpg

            Kommen da eher solche Werte rein und nichts von "Wert x 10 hoch irgendwas"

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

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

            1 Reply Last reply
            0
            • V Offline
              V Offline
              valbuz
              wrote on last edited by
              #6

              Hallo

              Sorry, da kam ein Bild nicht mit:

              6494_unbenannt1.png

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

              1 Reply Last reply
              0
              • apollon77A Online
                apollon77A Online
                apollon77
                wrote on last edited by
                #7

                Ihr redet von verschiedenen Dingen!!!

                Bei dem gerät von valbuz gibt es im Modbus Register die den anzuwendenden Skalierungsfaktor angeben. Ob das wirklich so gemeint ist das der sich plötzlich ändern kann oder ob der faktisch immer statisch ist weiss ich nicht.

                Der modbus-Adapter unterstützt keine dynamischen Skalierungsfaktoren, sondern hat diese (das ist der Screenshot von wendy2702) statisch bei der Definition der Register und Namen einzustellen in Form eines Multiplikators. Das heisst Deine "8" kannst Du statisch als 100000000 eintragen (wenn es denn Sinn macht)

                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 Reply Last reply
                0
                • E Offline
                  E Offline
                  ehome
                  wrote on last edited by
                  #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 Reply Last reply
                  0
                  • wendy2702W Online
                    wendy2702W Online
                    wendy2702
                    wrote on last edited by
                    #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 Reply Last reply
                    0
                    • V Offline
                      V Offline
                      valbuz
                      wrote on last edited by
                      #10

                      Meiner Meinung nach, ändert dieser eben…

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

                      1 Reply Last reply
                      0
                      • M Offline
                        M Offline
                        MeisterF
                        wrote on last edited by
                        #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 Reply Last reply
                        0
                        • V Offline
                          V Offline
                          valbuz
                          wrote on last edited by
                          #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 Reply Last reply
                          0
                          • wendy2702W Online
                            wendy2702W Online
                            wendy2702
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              sol21
                              wrote on last edited by
                              #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 Reply Last reply
                              0
                              • V Offline
                                V Offline
                                valbuz
                                wrote on last edited by
                                #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 Reply Last reply
                                0
                                • apollon77A Online
                                  apollon77A Online
                                  apollon77
                                  wrote on last edited by
                                  #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 Reply Last reply
                                  0
                                  • BluefoxB Offline
                                    BluefoxB Offline
                                    Bluefox
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    0
                                    • V Offline
                                      V Offline
                                      valbuz
                                      wrote on last edited by
                                      #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 Reply Last reply
                                      0
                                      • ChristianMC Offline
                                        ChristianMC Offline
                                        ChristianM
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        0
                                        • E Offline
                                          E Offline
                                          ehome
                                          wrote on last edited by
                                          #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 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

                                          591

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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