Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Namen eines Datenpunktes als Variabel

    NEWS

    • Neues Video auf YouTube

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    Namen eines Datenpunktes als Variabel

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

      Ich möchte einen Datenpunkt auswerten der variabel ist.
      Sein Name ändert sich aber jeden Tag, da er dessen Nummer im Namen enthält:

      fronius-solarweb.0.6731b5c1-b08c-4c01-8091-8f7820166668.day.EnergyProductionTotal.values.19
      Screenshot 2023-11-20 173844.jpg

      Wenn ich jetzt die Variable vom Vortag auswerten will, wie muss ich das im Skript schreiben?

      So ähnlich stelle ich mir das vor:
      javascript.0.scriptEnabled.common.SmartHome.froniusPvErzeugungGestern= "fronius-solarweb.0.6731b5c1-b08c-4c01-8091-8f7820166668.day.EnergyProductionTotal.values."+tag((heute)-1)

      paul53 MartinP 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Tom41Solar last edited by paul53

        @tom41solar sagte: Vortag auswerten will, wie muss ich das im Skript schreiben?

        const path = 'fronius-solarweb.0.6731b5c1-b08c-4c01-8091-8f7820166668.day.EnergyProductionTotal.values.';
        const idGestern = path + new Date(Date.now() - 86400000).getDate();
        
        T 1 Reply Last reply Reply Quote 1
        • MartinP
          MartinP @Tom41Solar last edited by

          @tom41solar Macht der einen "Monats-Rundlauf"?
          Es werden also jetzt im November Datenpunkte von 1 .... 30 angelegt, und im Dezember werden sukzessive in 1...30 neue Werte geschrieben, und dann am 31. auch der Datenpunkt für Monate mit 31 Tagen angelegt?

          Wenn man es hemdsärmelig machen würde, könnte man ggfs. einfach von 1....31 durchscannen, bis man einen Datenpunkt findet, der aktualisiert wurde ...

          Oder 31 Callbacks anlegen mit "Wurde geändert" als Trigger ....

          1 Reply Last reply Reply Quote 1
          • T
            Tom41Solar @paul53 last edited by

            @paul53 besten Dank.
            Es klappt schon fast.

            Der Name ist super:
            fronius-solarweb.0.6731b5c1-b08c-4c01-8091-8f7820166668.day.EnergyProductionTotal.values.19

            Das Skript schreibt er mir aber den Namen der Variabel in den Datenpunkt und nicht den Wert:
            Screenshot 2023-11-20 185704.jpg

            Dies ist mein Skript:
            const path = 'fronius-solarweb.0.6731b5c1-b08c-4c01-8091-8f7820166668.day.EnergyProductionTotal.values.';
            const idGestern = path + new Date(Date.now() - 86400000).getDate()
            setState("javascript.0.scriptEnabled.common.SmartHome.froniusPvErzeugungGestern"/froniusPvErzeugungGestern/, idGestern);

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

              @tom41solar sagte: javascript.0.scriptEnabled.common

              Dorthin schreibt man keine eigenen Daten!!

              const path = 'fronius-solarweb.0.6731b5c1-b08c-4c01-8091-8f7820166668.day.EnergyProductionTotal.values.';
              const idGestern = path + new Date(Date.now() - 86400000).getDate();
              const idTag = '0_userdata.0.PV.Erzeugung.gestern';
              
              if(existsState(idTag)) setState(idTag, getState(idGestern).val, true); // Skriptstart
              else createState(idTag, getState(idGestern).val, {type: 'number', unit: 'Wh', name: 'PV-Erzeugung gestern', role: 'value.energy'});
              
              schedule('3 3 * * *', function() { // täglich um 3:03 Uhr
                  setState(idTag, getState(idGestern).val, true);
              });
              
              T 1 Reply Last reply Reply Quote 1
              • T
                Tom41Solar @paul53 last edited by

                @paul53 absolut perfekt !
                Besten Dank.

                Ich habe lange gebraucht bis ich das mit den 86400000 ms = 1 Tag verstanden habe und dann das Programm entsprechend für andere Tage anpassen konnte. Deshalb der späte Dank.

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

                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                792
                Online

                32.0k
                Users

                80.5k
                Topics

                1.3m
                Posts

                3
                6
                177
                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