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 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
                                    • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            877
                                            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