Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Gelöst] Daten für neuen Datenpunkt verarbeiten

    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

    [Gelöst] Daten für neuen Datenpunkt verarbeiten

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

      @homoran

      Jepp, nun ist er leer.

      Ich hatte den Experten Modus an um einen Test Adapter zu installieren, danach hatte ich mich an das Script gemacht, so ist da wahrscheinlich was im falschen Ordner gelandet.

      C 1 Reply Last reply Reply Quote 0
      • C
        c1olli @c1olli last edited by

        Also eine Fehlermeldung kommt nicht mehr, nur die Berechnung passt noch nicht ganz.
        Kann das eventuell durch die Addition eines negativen Wertes kommen?

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

          @homoran sagte: warum hast du überhaupt globale Skripte wenn du fragen musst, was das ist?

          Ich sehe im offenen Ordner "global" keine Skripte. Die Skripte darunter sind in der Wurzel angesiedelt.

          Homoran 1 Reply Last reply Reply Quote 1
          • paul53
            paul53 @c1olli last edited by

            @c1olli sagte: die Berechnung passt noch nicht ganz.

            Bis auf pvout ändern sich die Variablen nach dem Skriptstart nicht mehr, sondern bleiben konstant. Dann kann die Berechnung natürlich nicht stimmen.

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

              @paul53 Danke! Da hab ich schief geguckt 👓

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

                @paul53
                Ob sich die Variablen ändern kommt ja darauf an, wie die Umstände gerade sind.
                Wie kann man es den besser machen?

                paul53 1 Reply Last reply Reply Quote 0
                • C
                  c1olli @Homoran last edited by

                  @homoran
                  Macht ja nichts, nachdem ich jetzt die Scripte neu eingeordnet habe gibt es keine Fehlermeldung mehr. 🤷‍♂️

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

                    @c1olli sagte Wie kann man es den besser machen?

                    4 weitere Trigger, in denen die jeweils zugeordnete Variable aktualisiert wird. Beispiel:

                    on(idVerb, function(dp) {
                        verb = dp.state.val;
                    });
                    
                    C 1 Reply Last reply Reply Quote 0
                    • C
                      c1olli @paul53 last edited by

                      @paul53
                      also so?

                      // aktuellen PV-Ueberschuss für Wattpilot berechnen
                      // PV Erzeugung - Akt Verbrauch - Speicher Entladung - Speicher Ladung + Wattpilot
                      const idPVout = 'energymanager.0.Standort_(Standort_1).PowerProduced';
                      const idVerb = 'fronius.0.powerflow.P_Load';
                      const idBattin = 'energymanager.0.Standort_(Standort_1).PowerBuffered';
                      const idBattout = 'energymanager.0.Standort_(Standort_1).PowerConsumedFromStorage';
                      const idWatt = 'fronius-wattpilot.0.power';
                      const idPVload = '0_userdata.0.PVload'
                      
                      var pvout = getState(idPVout).val;
                      var verb = getState(idVerb).val;
                      var battin = getState(idBattin).val;
                      var battout = getState(idBattout).val;
                      var watt = getState(idWatt).val;
                      var aktuell = Math.round((pvout - (verb * -1) - battin - battout + (watt * 1000)) * 100) / 100;
                      if(existsState(idPVload)) setState(idPVload, aktuell, true);
                      else createState(idPVload, aktuell, {type: 'number', name: 'PV_Ueberschuss', unit: 'W', role: 'value'});
                      
                      on(idVerb, function(dp) {
                          verb = dp.state.val;
                      }); 
                      on(idBattin, function(dp) {
                          battin = dp.state.val;
                      });
                      on(idBattout, function(dp) {
                          battout = dp.state.val;
                      });
                      on(idWatt, function(dp) {
                          watt = dp.state.val;
                      });
                      on(idPVout, function(dp) {
                      pvout = dp.state.val;
                      aktuell = Math.round((pvout - (verb * -1) - battin - battout + (watt * 1000)) * 100) / 100;
                      setState(idPVload, aktuell, true);
                      });
                      
                      paul53 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @c1olli last edited by paul53

                        @c1olli sagte: also so?

                        Ja, so werden zumindest die Werte zur Berechnung aktualisiert. Ob idPVout der optimale Trigger für den Berechnungszeitpunkt ist, kann ich nicht beurteilen.

                        battin und battout werden beide subtrahiert?

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

                          @paul53
                          Ja, beide werden abgezogen. Battout macht auf den ersten Blick keinen Sinn, aber da ich nicht will, dass der Speicher vom Haus leer gesaugt wird wird der Wert von der zur Ladung verfügbaren Energie abgezogen.
                          Bei Battin wird sicher gestellt, dass erst der Speicher und dann erst das Auto geladen wird.
                          Das funktioniert auch jetzt so wie es soll. Die Werte werden gut angepasst und die Ladung nimmt jetzt nur den PV Überschuss.

                          Hintergrund ist, dass die Wallbox zwar mit dem Wechselrichter kommuniziert, aber den Speicher nicht mit einbezieht.

                          PVout ist die PV Erzeugung, wenn sich da was ändert muß der Rest reagieren - so meine Herangehensweise.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          879
                          Online

                          31.9k
                          Users

                          80.2k
                          Topics

                          1.3m
                          Posts

                          3
                          25
                          879
                          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