Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] Daten für neuen Datenpunkt verarbeiten

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    993

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
25 Beiträge 3 Kommentatoren 1.6k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • HomoranH 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 Offline
    C Offline
    c1olli
    schrieb am zuletzt editiert von
    #13

    @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

    Gruß
    Olli

    HomoranH 1 Antwort Letzte Antwort
    0
    • C c1olli

      @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

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #14

      @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?

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      C 1 Antwort Letzte Antwort
      0
      • HomoranH 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 Offline
        C Offline
        c1olli
        schrieb am zuletzt editiert von
        #15

        @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.

        Gruß
        Olli

        C 1 Antwort Letzte Antwort
        0
        • C c1olli

          @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 Offline
          C Offline
          c1olli
          schrieb am zuletzt editiert von
          #16

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

          Gruß
          Olli

          paul53P 1 Antwort Letzte Antwort
          0
          • HomoranH 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?

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #17

            @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.

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            HomoranH 1 Antwort Letzte Antwort
            1
            • C c1olli

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

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #18

              @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.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              C 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @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.

                HomoranH Nicht stören
                HomoranH Nicht stören
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von Homoran
                #19

                @paul53 Danke! Da hab ich schief geguckt :eyeglasses:

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                C 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @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 Offline
                  C Offline
                  c1olli
                  schrieb am zuletzt editiert von
                  #20

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

                  Gruß
                  Olli

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @paul53 Danke! Da hab ich schief geguckt :eyeglasses:

                    C Offline
                    C Offline
                    c1olli
                    schrieb am zuletzt editiert von
                    #21

                    @homoran
                    Macht ja nichts, nachdem ich jetzt die Scripte neu eingeordnet habe gibt es keine Fehlermeldung mehr. :man-shrugging:

                    Gruß
                    Olli

                    1 Antwort Letzte Antwort
                    0
                    • C c1olli

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

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #22

                      @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;
                      });
                      

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      C 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @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 Offline
                        C Offline
                        c1olli
                        schrieb am zuletzt editiert von
                        #23

                        @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);
                        });
                        

                        Gruß
                        Olli

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • C c1olli

                          @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);
                          });
                          
                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #24

                          @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?

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          C 1 Antwort Letzte Antwort
                          0
                          • paul53P 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 Offline
                            C Offline
                            c1olli
                            schrieb am zuletzt editiert von c1olli
                            #25

                            @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.

                            Gruß
                            Olli

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            652

                            Online

                            32.6k

                            Benutzer

                            82.3k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe