Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Zwei oder mehr Werte im VIS addieren?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zwei oder mehr Werte im VIS addieren?

    This topic has been deleted. Only users with topic management privileges can see it.
    • Soundy
      Soundy last edited by

      Hallo,

      Ich habe mehrere Datenquellen (Stromverbrauch), die ich ganz unkompliziert im VIS addieren möchte, ohne derzeit auf ein Skript zurück zu greifen. Also z.B. so:

      sonoff.0.Schaltmodul1_F9896D.ENERGY_Power_0 + sonoff.0.Schaltmodul1_F9896D.ENERGY_Power_1

      Das ganze vielleicht direkt im "basic number>" Widget?
      Am liebsten sowas einfach unter "object ID" rein und fertig...
      Oder geht das nicht?

      Leider habe ich nichts passendes gefunden, was auch funktioniert.

      Lg, Jürgen

      Peoples 1 Reply Last reply Reply Quote 0
      • Peoples
        Peoples @Soundy last edited by

        @soundy
        Das kannst du mit einem Binding und einem Textwidget machen:

        {wert1:sonoff.0.Schaltmodul1_F9896D.ENERGY_Power_0; wert2:sonoff.0.Schaltmodul1_F9896D.ENERGY_Power_1; (wert1+wert2).toFixed(2)+ " kW"}
        

        Sollte ein Wert rauskommen der zweistellig nach dem Komma ist

        Soundy 1 Reply Last reply Reply Quote 0
        • Soundy
          Soundy @Peoples last edited by

          @peoples

          Danke für die blitzschnelle Antwort, die ja auch recht verständlich klingt.

          Meintest du dieses Widget:

          Screenshot 2021-03-06 225824.png

          Ich hab es nun so eingefügt:

          Screenshot 2021-03-06 225925.png

          Angezeigt wird mir gar nichts.

          Hab es auch mit "basic number" (ergibt: NaN) und "basic html" (ergibt: wert1+wert2 =aber hintereinander) probiert. Also das kann auch nicht richtig sein. Ist es heute schon zu spät oder mach ich was falsch? 😞

          Lg, Jürgen

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

            @soundy sagte in Zwei oder mehr Werte im VIS addieren?:

            Hab es auch mit "basic number" (ergibt: NaN)

            ist ja auch Not a Number.
            dann nur (wert1+wert2) und anzahl Nachkommastellen und Einheit im widget einstellen

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

              @homoran

              Ups,...

              laut https://forum.iobroker.net/topic/1248/bindings-of-objects-berechnungen/3 darf ich diese Berechnungen nicht in der "Object ID" verwenden. Daher klappt das auch nicht, aber habe ich auch im Screenshot gezeigt...

              In einem "basic HTML" Widget habe ich es nun unter html drinnen:

              Screenshot 2021-03-06 234427.png

              {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; (wert1)+(wert2)} W
              

              Das ergibt mir nun aber in der Ausgabe "Wert1+Wert", also nur die beiden Zahlen hintereinander gereiht. Wenn ich aber subtrahieren würde, also so:

              {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; (wert1)-(wert2)} W
              

              Dann werden die beiden Werte voneinander abgezogen.

              Jetzt verstehe ich gar nichts mehr, wieso und wo ist der Denkfehler?

              Wieso kann ich das übrigens nicht in einem "basic number" Widget machen?

              Lg, Jürgen

              htrecksler 1 Reply Last reply Reply Quote 0
              • htrecksler
                htrecksler Forum Testing @Soundy last edited by

                @soundy sagte in Zwei oder mehr Werte im VIS addieren?:

                Wieso kann ich das übrigens nicht in einem "basic number" Widget machen?

                weil das Resultat aus dem Binding ein Text ist. Wie Homoran schon schrieb "NaN" (Not a number)

                Soundy 1 Reply Last reply Reply Quote 0
                • Soundy
                  Soundy @htrecksler last edited by

                  @htrecksler

                  Okay, aber wieso kommt es dazu:

                  In einem "basic HTML" Widget habe ich es nun unter html drinnen:

                  Screenshot 2021-03-06 234427.png

                  {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; (wert1)+(wert2)} W
                  

                  Das ergibt mir nun aber in der Ausgabe "Wert1+Wert", also nur die beiden Zahlen hintereinander gereiht.

                  z.B. Wert 1 = 10, Wert 2 = 5, Ergebnis: 105

                  Wenn ich aber subtrahieren würde, also so:

                  {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; (wert1)-(wert2)} W
                  

                  Dann werden die beiden Werte voneinander abgezogen.

                  z.B. Wert 1 = 10, Wert 2 = 5, Ergebnis: 5

                  Jetzt verstehe ich gar nichts mehr, wieso und wo ist der Denkfehler?

                  SBorg htrecksler 2 Replies Last reply Reply Quote 0
                  • SBorg
                    SBorg Forum Testing Most Active @Soundy last edited by

                    @soundy "Recht" einfach 😉
                    Bindings werden immer als String gelesen. Bei einer Operation mittels "-" "weiß" JS dann, dass es sich trotzdem um Zahlen handelt und subtrahiert sie korrekt. Mittels "+" kann man aber auch Strings aneinanderhängen und genau das passiert dann bei dir. Du musst die Berechnung klammern, nicht nur den einzelnen Wert. Dann "kapiert" auch JS das du rechnen möchtest: (wert1 + wert2)

                    1 Reply Last reply Reply Quote 0
                    • htrecksler
                      htrecksler Forum Testing @Soundy last edited by

                      @soundy das kann ich dir auch nicht beantworten, was passiert denn wenn du eine Klammer um das gesamte Argument legst:
                      ( (wert1)+(wert2) )

                      Soundy 1 Reply Last reply Reply Quote 0
                      • Soundy
                        Soundy @htrecksler last edited by

                        @SBorg @htrecksler

                        Gut, das ist ja alles verständlich, wie ihr schreibt...

                        Ich habe nun in einem "basic HTML" Widget im Feld HTML nun folgendes:

                        {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; ((wert1)+(wert2))}
                        

                        Es setzt aber nur die Strings aneinander... 😞

                        Ich bin auch nicht auf ein "basic HTML" gebunden. Gäbe es einfachere und funktionelle Möglichkeiten mit "basic number" oder einem anderen Widget? Es muss eigentlich nur auf einem VIS anzeigbar sein. Mehr will ich momentan nicht, da die Werte nur informativ angezeigt werden sollen ...

                        Soundy 1 Reply Last reply Reply Quote 0
                        • Soundy
                          Soundy @Soundy last edited by

                          MOMENT MAL .... !!!

                          Jetzt hab ich nach dem "Trail-and-Error-Prinzip" folgendes probiert:

                          {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; ((+wert1)+(+wert2))}
                          

                          Beide Werte geklammert und jeweils ein "+" vorweg und es funktioniert.

                          Bitte wieso? Das liest sich komplett unlogisch diese Schreibweise, gibts dafür eine Erklärung? omg

                          Peoples 1 Reply Last reply Reply Quote 0
                          • Peoples
                            Peoples @Soundy last edited by

                            @soundy sagte in Zwei oder mehr Werte im VIS addieren?:

                            {wert1:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_0; wert2:sonoff.0.Doppelschalter_Kinderzimmer_F9896D.ENERGY_Power_1; parseInt(wert1)+parseInt(+wert2)}
                            

                            sollte auch funktionierten und ist "sauberer"

                            Dominik F. I 2 Replies Last reply Reply Quote 0
                            • Dominik F.
                              Dominik F. @Peoples last edited by

                              Ich würde mich gerne hier mal anschließen und habe eine Frage dazu:
                              In meinem Fall würde ich gerne zu einem Datenpunkt der eine Uhrzeit enthält 30 min. addieren.
                              Habt ihr da eine Idee wie das funktionieren könnte?

                              1 Reply Last reply Reply Quote 0
                              • I
                                io2345 @Peoples last edited by io2345

                                @peoples Der Post ist zwar ein bißchen älter, aber nach wie vor aktuell. Das funktioniert auch astrein mit zwei Variablen. Nehme ich allerdings noch einen dritten Wert hinzu, also
                                {wert1:<Objekt1>; wert2:<Objekt2>; wert3:<Objekt3>; parseInt(wert1)+parseInt(+wert2)+parseInt(+wert3)}
                                ist das Ergebnis "0;". Wie macht man das richtig? Oder sind nur zwei Werte möglich?

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @io2345 last edited by

                                  @io2345
                                  Hast Du das rauskopiert oder abgetippt?

                                  Was sollen da die zusätzlichen + nach der öffnenden Klammer?

                                  I 1 Reply Last reply Reply Quote 0
                                  • I
                                    io2345 @Codierknecht last edited by

                                    @codierknecht So steht's zwei Beiträge drüber im Eintrag von Peoples. Das funktioniert auch mit zwei Werten

                                    Codierknecht OliverIO 2 Replies Last reply Reply Quote 0
                                    • Codierknecht
                                      Codierknecht Developer Most Active @io2345 last edited by

                                      @io2345 sagte in Zwei oder mehr Werte im VIS addieren?:

                                      Das funktioniert auch mit zwei Werten

                                      Das funzt auch mit 3 Werten einwandfrei:

                                      {wert1:alias.0.Test.Zahl; wert2:alias.0.Test.Zahl; wert3:alias.0.Test.Zahl; parseInt(wert1)+parseInt(wert2)+parseInt(wert3)}
                                      

                                      In meinem Test-DP steht 'ne 22. Macht nach Adam Riese und Eva Zwerg also 66.

                                      Quod erat demonstrandum
                                      62968f53-36ca-4733-86c6-f67a01a8d1b7-image.png

                                      1 Reply Last reply Reply Quote 0
                                      • OliverIO
                                        OliverIO @io2345 last edited by

                                        @io2345

                                        Was für Zahlen stehen denn da drin?
                                        parseInt ist nur für Ganzzahl da. Wenn da überall irgendwas mit 0.123 drin steht, wird da immer null draus.
                                        Für fliesskomma zahlen tausche mit

                                        parseFloat

                                        I 1 Reply Last reply Reply Quote 0
                                        • I
                                          io2345 @OliverIO last edited by

                                          @oliverio Aha!
                                          Habe in der Zwischenzeit mal die ganzen Parse-Sachen weggelassen und nur wert1+wert2+wert3 verwendet -> geht auch und das Ergebnis wird eine Komma-Zahl.
                                          Solange da kein String mit was anderem als Zahlen drin steht, muss man offenbar gar nicht viel machen.

                                          Danke euch beiden für die Erleuchtung!

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          565
                                          Online

                                          31.9k
                                          Users

                                          80.1k
                                          Topics

                                          1.3m
                                          Posts

                                          9
                                          19
                                          5308
                                          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