Skip to content
  • Home
  • 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
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Datenpunkt berechnen

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    756

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    6.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

Datenpunkt berechnen

Scheduled Pinned Locked Moved Skripten / Logik
70 Posts 7 Posters 15.5k Views
  • 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.
  • HomoranH Do not disturb
    HomoranH Do not disturb
    Homoran
    Global Moderator Administrators
    wrote on last edited by
    #51

    @ykuendig:

    Aber trimmst Du auch die Daten wie @moebius das vorgeschlagen hat? `
    An dem node hänge ich gerade und verstehe ihn noch nicht ganz.

    • Nein, ich arbeite noch mit allem, aber node-red scheint schlau zu sein und entfernt beim parseFloat() die Leerzeichen.

    @moebius:

    wahrscheinlich ist DC = 0 -> schlimm! `
    klar, daher ist es im Moment "x x x", was immer das bei parseFloat() ergibt??

    und hier in Köln heißt es: "Null x Null x Null is Null"

    bei der Division wird es dann natürlich lustig - überzeugt, dann muss ich das auch noch abfangen.

    @moebius:

    am Schluss endest du dann auch bei normalem javascript `
    Da will ich aber hin :D

    Einen Adapter in node-red wäre wahrscheinlich höchst ambitioniert ;-)

    Gruß

    Rainer

    kein Support per PN! - Fragen im Forum stellen -
    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    1 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #52

      Vor (msg.payload[9]) fehlt parseFloat.

      var DC = parseFloat(msg.payload[5]) * parseFloat(msg.payload[3]) + parseFloat(msg.payload[9]) * parseFloat(msg.payload[7]);
      var AC = parseFloat(msg.payload[0]);
      
      if(DC) {
         msg.payload = 100 * AC / DC;
      } else {
         msg.payload = 0;
      }
      
      return msg;
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Reply Last reply
      0
      • HomoranH Do not disturb
        HomoranH Do not disturb
        Homoran
        Global Moderator Administrators
        wrote on last edited by
        #53

        @paul53:

        Vor (msg.payload[9]) fehlt parseFloat. `
        Stimmt :oops:

        Das wars aber nicht alleine. nur damit lief es immer noch nicht aber Jetzt klappte es - warum???

        Hierzu habe ich noch Fragen:

        if(DC) {
           msg.payload = 100 * AC / DC;
        

        Warum hast du das DC in Klammern?

        die 100 nach vorne wegen der Rundungsfehler? oder Dezimalstellen?

        Gruß

        Rainer

        kein Support per PN! - Fragen im Forum stellen -
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Reply Last reply
        0
        • M Offline
          M Offline
          moebius
          wrote on last edited by
          #54

          @homoran: wenn du gleich nach dem selector ein switch machst und auf x x x checkst, hast du dahinter schon nur mehr gültige Werte (hoffentlich).

          Du kannst jeden flow natürlich wieder in reinem javascript implementieren.

          Aber die Schönheit und Eleganz von node-red ist dann leider weg :(

          @ykuendig: ja schon, aber ein bischen was zum üben sollte doch noch sein…
          1803_clipboard07.jpg

          1 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #55

            @Homoran:

            Warum hast du das DC in Klammern? `
            Das ist der if-Ausdruck und entspricht

            if(DC != 0)
            

            @Homoran:

            die 100 nach vorne wegen der Rundungsfehler? oder Dezimalstellen? `
            Nein, in JS bleibt es bei Float (im Gegensatz zu HM Script). Es ist nur wegen der Optik.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • HomoranH Do not disturb
              HomoranH Do not disturb
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #56

              :idea:

              Danke euch Allen für eure Geduld!

              Schonen Abend / Gute Nacht

              Rainer

              kein Support per PN! - Fragen im Forum stellen -
              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
              Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Reply Last reply
              0
              • Y Offline
                Y Offline
                ykuendig
                wrote on last edited by
                #57

                @Homoran:

                if(DC) {
                   msg.payload = 100 * AC / DC;
                ```` `  
                

                Aber Musik spielt das Ding nicht ? Oder? [Dong dong dong dong….]

                Gruss Yves

                1 Reply Last reply
                0
                • HomoranH Do not disturb
                  HomoranH Do not disturb
                  Homoran
                  Global Moderator Administrators
                  wrote on last edited by
                  #58

                  @ykuendig:

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

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

                  Wie wird eigentlich ein cron alle 15 Sekunden angelegt.

                  Gruß

                  Rainer

                  kein Support per PN! - Fragen im Forum stellen -
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                  Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Reply Last reply
                  0
                  • Y Offline
                    Y Offline
                    ykuendig
                    wrote on last edited by
                    #59

                    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]

                    Gruss Yves

                    1 Reply Last reply
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by
                      #60

                      @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]);
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      1 Reply Last reply
                      0
                      • Y Offline
                        Y Offline
                        ykuendig
                        wrote on last edited by
                        #61

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

                        Gruss Yves

                        1 Reply Last reply
                        0
                        • HomoranH Do not disturb
                          HomoranH Do not disturb
                          Homoran
                          Global Moderator Administrators
                          wrote on last edited by
                          #62

                          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~~

                          kein Support per PN! - Fragen im Forum stellen -
                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          1 Reply Last reply
                          0
                          • HomoranH Do not disturb
                            HomoranH Do not disturb
                            Homoran
                            Global Moderator Administrators
                            wrote on last edited by
                            #63

                            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

                            kein Support per PN! - Fragen im Forum stellen -
                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                            Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            1 Reply Last reply
                            0
                            • M Offline
                              M Offline
                              moebius
                              wrote on last edited by
                              #64

                              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
                              0
                              • HomoranH Do not disturb
                                HomoranH Do not disturb
                                Homoran
                                Global Moderator Administrators
                                wrote on last edited by
                                #65

                                @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

                                kein Support per PN! - Fragen im Forum stellen -
                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  moebius
                                  wrote on last edited by
                                  #66

                                  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
                                  0
                                  • HomoranH Do not disturb
                                    HomoranH Do not disturb
                                    Homoran
                                    Global Moderator Administrators
                                    wrote on last edited by
                                    #67

                                    @moebius:

                                    Mach es halt umgekehrt und reagiere auf die dp Änderung, die durch den sm adapter ausgelöst wird, in node-red. `
                                    Hä? :D
                                    @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

                                    kein Support per PN! - Fragen im Forum stellen -
                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                    Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    1 Reply Last reply
                                    0
                                    • M Offline
                                      M Offline
                                      moebius
                                      wrote on last edited by
                                      #68

                                      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
                                      0
                                      • HomoranH Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by
                                        #69

                                        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

                                        kein Support per PN! - Fragen im Forum stellen -
                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        1 Reply Last reply
                                        0
                                        • HomoranH Do not disturb
                                          HomoranH Do not disturb
                                          Homoran
                                          Global Moderator Administrators
                                          wrote on last edited by
                                          #70

                                          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

                                          kein Support per PN! - Fragen im Forum stellen -
                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                                          Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
                                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          515

                                          Online

                                          32.8k

                                          Users

                                          82.7k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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