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 last edited by c1olli

      Um die Ladung meiner Wallbox zu steuern benötige ich ein kleines Script, um den PV Überschuss zu ermitteln, damit mir beim Laden des Autos nicht der Hausspeicher geleert wird.

      Folgende Datenpunkte habe ich identifiziert:
      idPVout = Aktuelle PV Erzeugung
      idVerb = Aktueller Verbrauch
      idBatt = Aktuelle Batterieladung
      idWatt = Aktuelle Fahrzeugladung

      Der neue Datenpunkt soll idPVload = '0_userdata.0.PVload sein

      // aktuellen PV-Ueberschuss für Wattpilot berechnen
      // PV Erzeugung - Akt Verbrauch - Batt- Speicher + Wattpilot out
      const idPVout = 'energymanager.0.PV-Anlage_(PV-Anlage).PowerACOut';
      const idVerb = 'energymanager.0.Standort_(Standort_1).PowerConsumed';
      const idBatt = 'energymanager.0.Standort_(Standort_1).PowerBuffered';
      const idWatt = 'fronius-wattpilot.0.power';
      

      Wer kann helfen, btw wie muss das aussehen?

      Gruss
      Olli

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

        @c1olli
        Also es funktioniert nicht so wie ich will, Javascript wirft auch Fehlermeldungen.
        Siehe nächsten Beitrag

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

          @c1olli
          Also es funktioniert nicht so wie ich will, Javascript wirft auch Fehlermeldungen.

          Es soll die zur Verfügung stehende Energie für die Ladung des E-Autos berechnet werden, da die Wallbox sonst den Speicher leert.
          Das Script für die Wallbox ist vorhanden und funktioniert.

          Berechnung:
          PV Überschuss ( energymanager.0.Standort_(Standort_1).PowerProduced)

          • Momentanverbrauch (fronius.0.powerflow.P_Load) (negativer Wert, daher Addition)
          • Speicherladung (energymanager.0.Standort_(Standort_1).PowerBuffered)
          • Speicherentladung (energymanager.0.Standort_(Standort_1).PowerConsumedFromStorage)
          • Ladung der Wallbox (fronius-wattpilot.0.power) (Wert muss mit 1000 multipliziert werden, da kW - alle anderen Werte sind in Watt)
            Neuer Datenpunkt: PV_Ueberschuss (0_userdata.0.PVload)
            Der Wert sollte alle 10 Sekunden neu berechnet werden.
          // 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 - 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(idPVout, function(dp) {
          pvout = dp.state.val;
          aktuell = Math.round((pvout + verb - battin - battout + (watt * 1000)) * 100) / 100;
          setState(idPVload, aktuell, true);
          });
          

          Fehlermeldung von Javascript:

          11:48:16.311	warn	javascript.0 (22409) at script.js.common.Wattpilot_steuern.PV-Ueberschuss:10:13
          11:48:16.311	warn	javascript.0 (22409) at script.js.common.Wattpilot_steuern.PV-Ueberschuss:24:3
          11:48:16.314	warn	javascript.0 (22409) at script.js.common.Wattpilot_steuern.PV-Ueberschuss:12:14
          11:48:16.314	warn	javascript.0 (22409) at script.js.common.Wattpilot_steuern.PV-Ueberschuss:24:3
          11:48:16.317	warn	javascript.0 (22409) at script.js.common.Wattpilot_steuern.PV-Ueberschuss:13:15
          11:48:16.317	warn	javascript.0 (22409) at script.js.common.Wattpilot_steuern.PV-Ueberschuss:24:3
          

          Die Werte beim jetzigem Script sind teilweise unplausibel.
          Ich habs auch schon mit Blockly versucht, aber das krieg ich auch nicht hin.

          Für Hilfe wäre ich sehr dankbar.
          Gruß Olli

          Homoran paul53 3 Replies Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @c1olli last edited by

            @c1olli hast du globale Skripte?

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

              @homoran

              Was sind globale Scripte?

              • Ich habs gerade mal nachgelesen, aber ich weiß nicht ob ich solche Skripte habe. Wie erkenne ich die?
              Homoran 1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @c1olli last edited by

                @c1olli sagte in Daten für neuen Datenpunkt verarbeiten:

                @homoran

                Was sind globale Scripte?

                Skripte im Verzeichnis global
                Aus Sicherheitsgründen nur für EXPERTEN zu sehen.

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

                  @c1olli sagte: Fehlermeldung von Javascript:

                  Im Tab "Protokolle" finden sich weitere Informationen zu den Warnungen.

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

                    @homoran java.jpg

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

                      so jetzt im Experten Modus
                      java1.png

                      Im Tab Fehlermeldungen steht nichts.

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

                        @c1olli sagte: Standort_(Standort_1)

                        Ein solches Konstrukt in der ID kann Probleme bereiten, denn genau zu diesen IDs gibt es die Warnungen.

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

                          @paul53
                          Die Werte kommen vom Kiwigrid Adapter. Was kann ich da tun?

                          Ist das Script denn sonst ok?

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

                            @c1olli sagte in Daten für neuen Datenpunkt verarbeiten:

                            so jetzt im Experten Modus

                            du weisst, dass alle globalen Skripte vor jedem anderen Skript ausgeführt werden?
                            die angemeckerte Zeile 24 existiert nämlich gar nicht in deinem Skript!

                            warum hast du überhaupt globale Skripte wenn du fragen musst, was das ist?

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

                              @homoran
                              Wahrscheinlich weil ich die einfach so eingetragen habe, da ich mich nicht so gut mit der Materie auskenne.
                              Aber ich habe das Ganze jetzt umstrukturiert. Ich hoffe so ist es ok.
                              java1.jpg

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

                                @c1olli sagte in Daten für neuen Datenpunkt verarbeiten:

                                da ich mich nicht so gut mit der Materie auskenne.

                                und für solche User ist der global Ordner extra versteckt!

                                ist der jetzt leer?

                                C 1 Reply Last reply Reply Quote 0
                                • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            922
                                            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