Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Datenpunkt berechnen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Datenpunkt berechnen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      @ykuendig:

      Also, wenn ihr jetzt so Gas gebt, erwarte ich bei Sonnenaufgang die ersten Resultate. Vom Wechselrichter versteht sich. `
      144_screenshot_20170220-081231.jpg
      😄 😄 😄

      Jetzt muss ich nur noch die Datenpunkte anlegen und den cron eingeben.

      Wie wird eigentlich ein cron alle 15 Sekunden angelegt.

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • Y
        ykuendig last edited by

        im JS Adapter kannst Du ein Beispiel machen 'lassen'

        Aber im Prinzip machst Du einfach einen Stern mehr. Und dann beim ersten "*/15". [Aus dem Kopf. Nicht getestet]

        1 Reply Last reply Reply Quote 0
        • paul53
          paul53 last edited by

          @Homoran:

          Das wars aber nicht alleine. nur damit lief es immer noch nicht aber Jetzt klappte es - warum??? `
          Änderungen in der Reihenfolge, wie ich sie gemacht habe:

          1. Orignal Script Zeile

          2. parseFloat hinzugefügt

          3. Leerzeichen verändert, um die Struktur der Zeile besser zu erkennen

          4. Falsche Klammern erkannt und korrigiert

          var DC = parseFloat(((msg.payload[5])*parseFloat(msg.payload[3])+(msg.payload[9])*parseFloat(msg.payload[7])));
          var DC = parseFloat(((msg.payload[5])*parseFloat(msg.payload[3])+parseFloat(msg.payload[9])*parseFloat(msg.payload[7])));
          var DC = parseFloat(((msg.payload[5]) * parseFloat(msg.payload[3]) + parseFloat(msg.payload[9]) * parseFloat(msg.payload[7])));
          var DC = parseFloat(msg.payload[5]) * parseFloat(msg.payload[3]) + parseFloat(msg.payload[9]) * parseFloat(msg.payload[7]);
          
          1 Reply Last reply Reply Quote 0
          • Y
            ykuendig last edited by

            Und nun, wo's dunkel ist… erzähl. Wie liefs?

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

              ich habe beim ersten Sonnenstrahl extra für dich ein Bild gepostet:

              ~~![](</s><URL url=)<link_text text="http://forum.iobroker.net/download/file ... &mode=view">http://forum.iobroker.net/download/file.php?id=9116&mode=view</link_text>" />

              jetzt habe ich vor ner halben Stunde die Datenstruktur erstellt und den Flow mit den Datenpunkten verknüpft.

              Seitdem ist alles wieder 0

              Gruß

              Rainer~~

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

                Läuft so weit ganz gut. Leider sind due falschen Verbrauchswerte immer noch da.
                144_screenshot_20170226-092716.jpg
                Die Berechnung des Verbrauchs funktioniert IMHO korrekt, die Solardaten werden alle 15 Sekunden abgerufen, die Daten vom Smartmeter auch.

                Die Berechnung des Verbrauchs wird auf e7ne Änderung des Smartmeter Werts getriggert, Solarwerte und Smartmeter jedoch per Cron.

                Diese sind jedoch nicht synchron.

                Bei starken Äderungen in der Sonneneinstrahlung kommt es daher zu falschen Verbrauchswerten.

                Leider habe ich in node-Red noch nicht gefunden, wie ich den Abruf der Solarwerte auf die Änderung des Smartmeter Werts triggern kann.

                Gruß

                Rainer

                1 Reply Last reply Reply Quote 0
                • M
                  moebius last edited by

                  Hallo Rainer,

                  hoffe, du hast es schon auf javascript umgebaut - ansonsten wird ein Blitz deine Anlage treffen, denn du erzürnst den Programmiergott :lol:

                  Die Werte ändern sich so schnell, dass ein 15sec Intervall bei der Abfrage viel zu lang ist. Tatsächlich wird eine Abfrage der Ist-Werte wohl nie stimmen…

                  Du müsstest statt den Momentanwerten die kumulierten Werte der Geräte selbst verwenden.

                  Das Synchronisieren könnte man noch verbessern und nicht alle 15 sec auslesen, sondern genau definiert bei sec 0,15,30,45 (modulo).

                  Bzw wenn du verrätst wie der smartmeter Adapter getriggert wird, geht es vielleicht auch über node-red.

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

                    @moebius:

                    ansonsten wird ein Blitz deine Anlage treffen, denn du erzürnst den Programmiergott `
                    ich hoffe die Module wandeln das dann wenigstens in Strom um :mrgreen:

                    (Ich bicn wissenstechnisch noch nicht so weit - und Blockly kann dies nicht und node-red jenes - oder ich bin nur zu blöd)

                    @moebius:

                    Die Werte ändern sich so schnell, dass ein 15sec Intervall bei der Abfrage viel zu lang ist `
                    Klar, um die Realwerte geht es hier im Moment auch nicht.

                    @moebius:

                    sondern genau definiert bei sec 0,15,30,45 (modulo). `
                    ich hatte das auch gehofft, aber eben
                    @moebius:

                    wenn du verrätst wie der smartmeter Adapter getriggert wird, `
                    das weiß ich nicht.

                    Da kann man nur ein Intervall einstellen.

                    Daher wollte ich
                    @moebius:

                    Das Synchronisieren könnte man noch verbessern `
                    indem ich auf die Änderung des Wertes vom Smartmeter reagiere.

                    Gruß

                    Rainer

                    1 Reply Last reply Reply Quote 0
                    • M
                      moebius last edited by

                      Bilde mir ein auf deiner Grafik was von Momentanwerten gelesen zu haben…

                      Mach es halt umgekehrt und reagiere auf die dp Änderung, die durch den sm adapter ausgelöst wird, in node-red.

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

                        @moebius:

                        Mach es halt umgekehrt und reagiere auf die dp Änderung, die durch den sm adapter ausgelöst wird, in node-red. `
                        Hä? 😄
                        @Homoran:

                        Daher wollte ich
                        @moebius:

                        hat geschrieben:

                        Das Synchronisieren könnte man noch verbessern `

                        indem ich auf die Änderung des Wertes vom Smartmeter reagiere. `
                        :?: :?: :?:

                        Aber Wie triggere ich in Node-Red darauf

                        Gruß

                        Rainer

                        1 Reply Last reply Reply Quote 0
                        • M
                          moebius last edited by

                          du nimmst einfach statt dem "Inject" den blauen "ioBroker" input node?

                          Da suchst du dir dann den dp aus, auf den du triggern willst.

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

                            Danke,

                            den hatte ich zwar anfangs auf dem Schirm, hatte aber nicht erkannt, dass er triggert, wenn der Punkt aktualisiert wird.

                            Habe es jetzt einfach probiert und scheint zu laufen.

                            Mal sehen

                            Rainer

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

                              Ich muss diesen Thread mal wieder nach oben holen.

                              Mein Wechselrichter war ausgefallen/defekt und da dieser Flow ständig Ergebnisse lieferte, die ich nicht gebrauchen konnte, hatte ich ihn gelöscht, ohne zu wissen, dass da per mqtt alle anderen Rechner dranhingen 😞 Shit happens-

                              Jetzt habe ich einen neuen WR, der aber mit der neuen Firmware (5.4) ausgestattet ist.

                              Auch wenn @Paul53 dazu bereits in einem anderen Thread eine js-Lösung vorgestellt hat, möchte ich es nochmal mit node-red versuchen.

                              Wenn ich jetzt per hhtp-request aufrufe:

                              http://<ip>/api/dxs.json?dxsEntries=33556736&dxsEntries=33555203&dxsEntries=33555459&dxsEntries=67109120</ip>
                              

                              erhalte ich im Browser:

                              {"dxsEntries":[{"dxsId":33556736,"value":1853.714966},{"dxsId":33555203,"value":886.787903},{"dxsId":33555459,"value":966.926941},{"dxsId":67109120,"value":1738.264160}],"session":{"sessionId":0,"roleId":0},"status":{"code":0}}
                              

                              auf rexex101.com erhalte ich ein Array mit den Werten über

                              value":(\d+.\d+)
                              

                              wenn ich einen xml-node benutze erhalte ich wenn ich das richtig interpretiere, die Ergebnisse schön aufgelistet.

                              "<root><dxsentries><dxsid>33556736</dxsid><value>1154.386597</value></dxsentries><dxsentries><dxsid>33555203</dxsid><value>546.535339</value></dxsentries><dxsentries><dxsid>33555459</dxsid><value>607.851196</value></dxsentries><dxsentries><dxsid>67109120</dxsid><value>1081.819824</value></dxsentries><session><sessionid>0</sessionid><roleid>0</roleid></session><status>`0`</status></root>"
                              

                              jetzt will ich nur noch die Werte zwischen <value>…</value> auf verschiedene DPs ausgeben, bekomme es aber ums verrecken nicht mehr hin diese Ausgabe zu splitten.

                              Nehme ich statt dessen einen json-node erhalte ich:

                              msg.payload : Object
                              { dxsEntries: array[4], session: object, status: object }
                              

                              nur an den Inhalt des Arrays komme ich nicht 😞

                              Sorry

                              Rainer

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              807
                              Online

                              31.7k
                              Users

                              79.8k
                              Topics

                              1.3m
                              Posts

                              7
                              70
                              12459
                              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