Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Summe zweier Leistungen in Diagramm

    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

    Summe zweier Leistungen in Diagramm

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

      Hallo Leute,
      ich bin ganz neu mit iobroker und hatte auch nocht nicht viel Zeit mich im Detail damit zu beschäftigen.
      Auf die schnelle ist es mir geglückt mit Echarts einen Plot zu erstellen, der mir die Leistung des Shelly 3em pro und die Leistung der AVM Steckdose anzeigt. Die AVM Steckdose misst die Leistung der Balkon-PV-Anlage, der Shelly den Gesamtstrom.
      Da der Shelly-Wert aber den AVM Wert beinhaltet, würde ich gerne zusätzlich noch Shelly+AVM anzeigen lassen. Hat jemand einen Vorschlag, wie das am einfachsten geht?
      Danke
      F.

      arteck 1 Reply Last reply Reply Quote 0
      • arteck
        arteck Developer Most Active @fenderbender last edited by arteck

        @fenderbender zusammen addieren in einen Datenpunkt(dp) mit alias.. oder willst du nur es im Chart sehen ??

        F 1 Reply Last reply Reply Quote 0
        • F
          fenderbender @arteck last edited by

          @arteck Wie gesagt, ich bin wirklich ganz frisch dabei und wüsste nicht, wo ich starten soll, wenn ich zwei Daten zu einem Datenpunkt(db) zusammenaddieren soll...
          Fürs erste würde aber auch der chart alleine reichen.

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

            @fenderbender sagte: wo ich starten soll, wenn ich zwei Daten zu einem Datenpunkt(db) zusammenaddieren soll...

            Per Skript (Javascript- oder Node-Red-Adapter) addieren und das Ergebnis in einen eigenen Datenpunkt unter "0_userdata.0" schreiben.

            F 1 Reply Last reply Reply Quote 0
            • F
              fenderbender @paul53 last edited by

              @paul53

              Danke,
              jetzt hat es geklappt. Ich glaub, ich hab es 100x genau so gemacht und 99x hat es nicht funktioniert 😉 Keine Ahnung, was der springede Punkt war...

              So ist der Code, falls mal jemand das gleiche Problem hat:

              
              let cond0 = false;
              
              schedule("*/20 */1 * * * *", async function (obj) {
                  _sendToFrontEnd(1718355200404, {trigger: true});
                  
                  const _cond = true;
              
                  if (_cond) {
              		 const val2_1718354443566 = (await getStateAsync("fritzdect.0.DECT_087610284504.power")).val;
              		 const val1_1718354443566 = (await getStateAsync("shelly.0.shellypro3em#34987a45fd1c#1.EM0.TotalActivePower")).val;
              		_sendToFrontEnd(1718354443566, {val: val1_1718354443566 + val2_1718354443566, ack: true});
              		await setStateAsync("0_userdata.0.sum_power", val1_1718354443566 + val2_1718354443566, true);
                  } else {
              		
                  }
              });
              
              
              1 Reply Last reply Reply Quote 0
              • F
                fenderbender last edited by

                Hallo Leute, könnt ihr mir nochmal helfen?
                Ich hab ja das Javaskrtipt von Rules erstellen lassen und ich hab noch weitere Skripts vor. Leider funktionieren die oft nicht und ich weiß nicht warum.
                Kann mir dazu noch jemand erklären, was eigentlich in meinem Skript passiert?

                • Was bedeutet _sendToFrontEnd
                • was bedeutet die Zeichenfolge 1718355200404 - das ist ja keine Variable...?
                • warum brauchts im setStateAsync am Ende noch ein ,true ?

                Wie würde das Skript aussehen, wenn es nicht Rules sondern jemand schreibt, der von java Ahnung hat

                Danke und Grüße

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

                  @fenderbender sagte: was bedeutet die Zeichenfolge 1718355200404

                  Das ist ein Zeitstempel mit der Uhrzeit "2024.06.14 10:53:20.404".

                  @fenderbender sagte in Summe zweier Leistungen in Diagramm:

                  warum brauchts im setStateAsync am Ende noch ein ,true ?

                  Damit wird der Wert bestätigt (ack = true). Siehe Doku.

                  @fenderbender sagte in Summe zweier Leistungen in Diagramm:

                  Wie würde das Skript aussehen, wenn es nicht Rules sondern jemand schreibt, der von java Ahnung hat

                  const idShelly = 'shelly.0.shellypro3em#34987a45fd1c#1.EM0.TotalActivePower';
                  const idAVM = 'fritzdect.0.DECT_087610284504.power';
                  const idSum = '0_userdata.0.sum_power';
                  
                  on(idShelly, function(dp) {
                      setState(idSum, dp.state.val + getState(idAVM).val, true);
                  });
                  

                  Javascript ist nicht Java!

                  1 Reply Last reply Reply Quote 0
                  • F
                    fenderbender last edited by

                    @paul53
                    ok, danke schon mal. Sieht schon eher nach etwas aus, das ich evtl bald verstehe 😉
                    Dieses on(...) ist etwas, das darauf wartet das idShelly einen neuen Wert bekommt oder? Und wenn der Wert da ist, wird die function ausgewertet. Hab ich das erfasst?
                    Und dp.state.val schreibst du, weil dp der Rückgabewert von der Funktion ist und bedeutet so viel wie Rückgabewert = getState(idShelly).val + getState(idAVM).val

                    Danke nochmal

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

                      @fenderbender sagte: Hab ich das erfasst?

                      Ja, on(id, callback) triggert auf Wertänderungen.
                      Doku zu den Funktionen des Javascript-Adapters.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      871
                      Online

                      31.9k
                      Users

                      80.3k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      372
                      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