Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. modbus und scale factors

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    modbus und scale factors

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      legro @Homoran last edited by legro

      @homoran

      Ich verstehe überhaupt nichts mehr.😕

      Es geht hier ausschließlich um sog. Holding Registers.

      Das Register 40115 enthält den Wert, der vom Versorger bezogenen Energie in Wh*100 - ist also um den Faktor 100 zu groß. Das Register 40123 enthält den Wert des sog. Skalierungsfaktors, hier: -2.

      Wenn ich in der Definition der Modbus-Register für das Register 40123 die Option SF anhake, wird der darin enthaltene Wert mit null überschrieben. Die in formula übergebene Formel findet also stets null für den Skalierungsfaktor vor. Was für ein Unsinn!

      Homoran 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @legro last edited by

        @legro sagte in modbus und scale factors:

        Ich verstehe überhaupt nichts mehr.

        was genau drnn jetzt nicht?

        Warum zeigst du das Register in den Einstellungen nicht?
        und zwar vollständig ohne Kopfzeilen oder Spalten abzuschneiden.
        Dann kann man dir wahrscheinlich auch mehr erklären, wenn man weiß dass man über das selbe spricht

        Hast du die Abfrage des Registers, das zum Schreiben gedacht ist, aktiviert?

        1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @legro last edited by

          @legro ich versuche es noch einmal:

          @legro sagte in modbus und scale factors:

          Es geht hier ausschließlich um sog. Holding Registers.

          Diese sind eigentlich nur zum Beschreiben gedacht.
          Leider werden sie von einigen Herstellern auch zum Lesen missbraucht.

          @legro sagte in modbus und scale factors:

          Wenn ich in der Definition der Modbus-Register für das Register 40123 die Option SF anhake, wird der darin enthaltene Wert mit null überschrieben.

          das macht das Gerät!
          Es ist das Standardverhalten um anzuzeigen, dass es den eingegebenen Wert übernommen hat und wieder beteit ist neue Befehle zu übernehmen.

          @legro sagte in modbus und scale factors:

          Die in formula übergebene Formel findet also stets null für den Skalierungsfaktor vor.

          eigentlich nicht.

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @legro last edited by

            @legro das ganze lässt mir keine Ruhe.

            Möglicherweise ist

            @legro sagte in modbus und scale factors:

            Es geht hier ausschließlich um sog. Holding Registers.

            genau das Problem.

            im Screenshot von @Codierknecht steht
            Screenshot_20250211-110530_Firefox.jpg

            Holdingregister sind aber grundsätzlich als Schreibregister anzusehen.

            ist denn dieses Register laut Schnittstellenbeschreibung deines Gerätes auch beschreibbar?

            L 1 Reply Last reply Reply Quote 0
            • L
              legro last edited by

              @homoran

              So sieht die Definition des SF Registers aus ,,
              94988da1-7725-4e08-be49-d9251cfeba79-image.png
              e3f138ed-417f-4333-9130-8f08f4f2df7d-image.png

              .. und das kommt anschließend dabei heraus ..
              5520e5df-9be8-421f-a753-1511349b6534-image.png

              Homoran 1 Reply Last reply Reply Quote 0
              • L
                legro @Homoran last edited by legro

                @homoran

                Das Register 40123 gehört zu den sog. Holding Registers und enthält den vom Wechselrichter (Fronius GEN24) gelieferten Skalierungsfaktor für eine ganze Reihe von weiteren Werten.

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @legro last edited by

                  @legro

                  @homoran sagte in modbus und scale factors:

                  und zwar vollständig ohne Kopfzeilen oder Spalten abzuschneiden.
                  Dann kann man dir wahrscheinlich auch mehr erklären,

                  was ist das
                  Screenshot_20250211-115431_Firefox.jpg

                  @legro sagte in modbus und scale factors:

                  @homoran

                  Das Register 40123 gehört zu den sog. Holding Registers und enthält den vom Wechselrichter (Fronius GEN24) gelieferten Skalierungsfaktor für eine ganze Reihe von weiteren Werten.

                  das mag ja alles stimmen,,aber dafür sind Holdingregister eigentlich nicht gedacht
                  deswegen die Frage danach, ob der auch beschreibbar ist
                  Dann wäre es das absolut normale Verhalten.

                  Was dir natürlich nicht hilft, wenn der Hersteller da was nicht der Norm entsprechendes macht.

                  Ganz abgesehen davon

                  @legro sagte in modbus und scale factors:

                  Das Register 40123 enthält den Wert des sog. Skalierungsfaktors, hier: -2.

                  ein Faktor von -2 ??

                  L 1 Reply Last reply Reply Quote 0
                  • L
                    legro @Homoran last edited by

                    @homoran

                    Der Wert von SF ist -2, also der Exponent zur Basis 10, so habe ich es ja auch in der oben angegebenen Formel umgesetzt.

                    Ich bin's leid. Weiß der Teufel, was hier schiefgeht. Wenn's eben nicht mittels der Option formula geht, mach' ich's halt selbst.

                    eventFromGrid = on({id: `modbus.2.holdingRegisters.200.40115_TotWhImp`, change: 'gt'}, () => {
                        let sf = Math.pow(10,getState(`modbus.2.holdingRegisters.200.40123_TotWh_SF`).val)
                        let aktImp = getState(`modbus.2.holdingRegisters.200.40115_TotWhImp`).val * sf - getState(`0_userdata.0.Fronius.Modbus.fromGrid.startDayWh`).val
                        setState(`0_userdata.0.Fronius.Modbus.fromGrid.tmpDayWh`,aktImp,true)
                        let tmpPV = JSON.parse(getState(`0_userdata.0.Fronius.Monatstabellen.${partsDate.jahr}.${partsDate.monat}.fromGridKWh`).val)
                        tmpPV[Number(partsDate.tag)-1] = aktImp
                        setState(`0_userdata.0.Fronius.Monatstabellen.${partsDate.jahr}.${partsDate.monat}.fromGridKWh`,JSON.stringify(tmpPV),true)
                    })
                    
                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @legro last edited by

                      @legro sagte in modbus und scale factors:

                      Ich bin's leid.

                      warum beantwortest du die gestellten Fragen nicht?

                      @homoran sagte in modbus und scale factors:

                      Hast du die Abfrage des Registers, das zum Schreiben gedacht ist, aktiviert?

                      und auf die Bitte dies zu zeigen kommt wieder nur ein angescnittener Screenshot
                      Screenshot_20250211-115431_Firefox.jpg

                      DA müsste meiner Erinnerung nach ein Haken rein.
                      Dazu bräuchte ich aber den Spaltenkopf

                      L 1 Reply Last reply Reply Quote 0
                      • L
                        legro @Homoran last edited by

                        @homoran

                        Diesen Haken habe ich rein- und auch rausgemacht. Sichtlich ohne Erfolg.

                        Ziemlich gefrustet habe ich das System nun einfach einmal für ein paar Stunden in Ruhe gelassen. Das war das entscheidende Rezept: Es funktioniert nun. In der Tat: Der Haken muss übrigens rein.

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @legro last edited by Homoran

                          @legro sagte in modbus und scale factors:

                          Diesen Haken habe ich rein- und auch rausgemacht. Sichtlich ohne Erfolg.

                          ist das der Haken für "Abfrage"?

                          @legro sagte in modbus und scale factors:

                          In der Tat: Der Haken muss übrigens rein.

                          dann ist er es wohl!

                          @legro sagte in modbus und scale factors:

                          Es funktioniert nun

                          wird wohl nichts mit dem Ruhen zu tun haben.
                          Höchstens wird wegen

                          If a value is marked with this flag, then the value will be stored into a variable with the following naming convention

                          diese Variable bei jeder Veränderung in den Einstellungen geleert, und steht erstmal nicht zur Verfügung

                          aber

                          you can access other read modbus values

                          ohne Haken ist es ein write Register!

                          Ansonsten

                          If the formula cannot be evaluated during runtime, then the Adapter writes a warning message to the log.

                          müsste auch etwas im Log gestanden haben

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            legro @Homoran last edited by

                            @homoran

                            Natürlich habe ich das Ganze im Log beobachtet. Den Datenpunkt 40115 habe ich ja selbst skaliert, den 40107 habe ich belassen und die Formel arbeiten lassen.

                            Waren die Werte aus 40155 durch meine Eingreifen richtig skaliert, so waren die Werte aus 40107 falsch. Und dann die Überraschung: Nach einiger Zeit waren die Werte aus 40107 im Log richtig skaliert. Daraufhin habe ich es mit 40115 probiert: Erst kam nichts, dann zwei nicht skalierte Werte, aber ab dem dritten waren sie korrekt.

                            Nein, ich verstehe es einfach nicht. Gleich mehrere Dinge könnten hier ihr Unwesen treiben: asychron arbeitende Prozesse; der GEN24 kam durcheinander, weil ihm der 40123 ständig mit null gefüllt wurde; .. usw.

                            Da das Ganze im wahrsten Sinne des Wortes bloß für den Hausgebrauch (respektive Hausautomatisierung) gebraucht wird, belasse ich's dabei und suche nicht nach weiteren Ursachen.

                            Vielen Dank an alle, die mich mit Tipps und Ratschlägen unterstützt haben.

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @legro last edited by

                              @legro sagte in modbus und scale factors:

                              Gleich mehrere Dinge könnten hier ihr Unwesen treiben

                              da gibt es noch was, das hast du noch nicht beantwortet um es auszuschließen

                              @homoran sagte in modbus und scale factors:

                              ist denn dieses Register laut Schnittstellenbeschreibung deines Gerätes auch beschreibbar?

                              L 1 Reply Last reply Reply Quote 0
                              • L
                                legro @Homoran last edited by

                                @homoran

                                Ich hätte deine Frage beantwortet, wenn ich dies herausgefunden hätte. Daher auch nur meine Vermutung, dass es den GEN24 durcheinander gebracht haben könnte.

                                1 Reply Last reply Reply Quote 1
                                • First post
                                  Last post

                                Support us

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

                                902
                                Online

                                31.6k
                                Users

                                79.5k
                                Topics

                                1.3m
                                Posts

                                3
                                23
                                525
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo