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 für JSON Tabelle

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Javascript für JSON Tabelle

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptmonitoring
33 Beiträge 3 Kommentatoren 2.5k Aufrufe 5 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.
  • paul53P paul53

    @AxelF1977 sagte:

    was habe ich aktuell im Juni verbraucht, und wieviel jeweils im Juni der letzten 2 Jahre?

    @AxelF1977 sagte in Javascript für JSON Tabelle:

    Die alten bleiben erhalten.

    Dann hast Du doch alle Werte, die für Vergleiche benötigt werden, in der Struktur von SourceAnalytix.

    AxelF1977A Offline
    AxelF1977A Offline
    AxelF1977
    schrieb am zuletzt editiert von
    #21

    @paul53 sagte in Javascript für JSON Tabelle:

    @AxelF1977 sagte:

    was habe ich aktuell im Juni verbraucht, und wieviel jeweils im Juni der letzten 2 Jahre?

    @AxelF1977 sagte in Javascript für JSON Tabelle:

    Die alten bleiben erhalten.

    Dann hast Du doch alle Werte, die für Vergleiche benötigt werden, in der Struktur von SourceAnalytix.

    Ich möchte die Werte ja in einer Tabelle über json darstellen. Die nackten Zahlen habe ich, die sind alle da, aber ich kann die so nicht in Tabellenform darstellen. Ich möchte in VIS zu jeder Steckdose (Datenpunkt) die Werte in Tabellenform Monat und Woche darstellen. Deshalb das Ganze

    ASROCK Deskmini Intel I3 8100 16GB mit Proxmox VM ioBroker VM DIYHue| CCU piVCCU + FHEM auf Raspberry | Maria DB mit Grafana und Prometheus auf Tinker Board

    paul53P 1 Antwort Letzte Antwort
    0
    • AxelF1977A AxelF1977

      @paul53 sagte in Javascript für JSON Tabelle:

      @AxelF1977 sagte:

      was habe ich aktuell im Juni verbraucht, und wieviel jeweils im Juni der letzten 2 Jahre?

      @AxelF1977 sagte in Javascript für JSON Tabelle:

      Die alten bleiben erhalten.

      Dann hast Du doch alle Werte, die für Vergleiche benötigt werden, in der Struktur von SourceAnalytix.

      Ich möchte die Werte ja in einer Tabelle über json darstellen. Die nackten Zahlen habe ich, die sind alle da, aber ich kann die so nicht in Tabellenform darstellen. Ich möchte in VIS zu jeder Steckdose (Datenpunkt) die Werte in Tabellenform Monat und Woche darstellen. Deshalb das Ganze

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

      @AxelF1977 sagte:

      Ich möchte in VIS zu jeder Steckdose (Datenpunkt) die Werte in Tabellenform Monat und Woche darstellen.

      Das habe ich auch so verstanden. Das hat aber nichts mit dem Vergleich von Monatswerten im gleichen Monat verschiedener Jahre zu tun.

      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

      AxelF1977A 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @AxelF1977 sagte:

        Ich möchte in VIS zu jeder Steckdose (Datenpunkt) die Werte in Tabellenform Monat und Woche darstellen.

        Das habe ich auch so verstanden. Das hat aber nichts mit dem Vergleich von Monatswerten im gleichen Monat verschiedener Jahre zu tun.

        AxelF1977A Offline
        AxelF1977A Offline
        AxelF1977
        schrieb am zuletzt editiert von
        #23

        @paul53 sagte in Javascript für JSON Tabelle:

        @AxelF1977 sagte:

        Ich möchte in VIS zu jeder Steckdose (Datenpunkt) die Werte in Tabellenform Monat und Woche darstellen.

        Das habe ich auch so verstanden. Das hat aber nichts mit dem Vergleich von Monatswerten im gleichen Monat verschiedener Jahre zu tun.

        Das stimmt. Dann hatte ich Dich eben falsch verstanden, sorry.

        ASROCK Deskmini Intel I3 8100 16GB mit Proxmox VM ioBroker VM DIYHue| CCU piVCCU + FHEM auf Raspberry | Maria DB mit Grafana und Prometheus auf Tinker Board

        1 Antwort Letzte Antwort
        0
        • AxelF1977A AxelF1977

          Hallo,

          ich möchte aus einzelnen Datenpunkten einen JSON String für eine Tabelle machen. Erste Hilfe habe ich bereits im Forum gefunden, möchte das aber noch erweitern.

          Es geht um Daten aus dem Sourceanalytix Adapter. Einmal für die Monate, einmal für die einzelnen Wochen.

          Wie folgt sieht mein Script gerade aus

          const idTable = '0_userdata.0.json.AlleVerbrauchertotalmonate'; // ID JSON-Tabelle
          const ids = ['sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.01_January','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.02_February','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.03_March','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.04_April','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.05_May','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.06_June','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.07_July','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.08_August','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.09_September','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.10_October','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.11_November','sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months.12_December']; 
           
          var table = [];
          for(let i = 0; i < ids.length; i++) {
              table[i] = {};
              table[i].Name = getObject(ids[i]).common.name;
              table[i].Wert = getState(ids[i]).val;
          }
          setState(idTable, JSON.stringify(table), true);
           
          on(ids, function(dp) {
              let idx = ids.indexOf(dp.id);
              table[idx].Wert = dp.state.val;
              setState(idTable, JSON.stringify(table), true);
          });
          

          Wie Ihr seht, habe ich erstmal jeden Datenpunkt einzeln angegeben, aus dem der String zusammengebaut werde soll. Bei 12, wie hier, geht das ja noch, bei 56 Wochen, ist das schon mehr. Wie sage ich dem Script, nehme alle Datenpunkte aus dem Ordner

          sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.months
          oder
          sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.weeks

          Das wäre so der Anfang um es mir leichter zu machen. Dann muss ich für die ganzen einzelnen Datenpunkte, die analysiert werden (62 Stück), jeweils ein Script machen. Oder geht das auch noch einfacher?

          Da es so viele Ordner mit Datenpunkten sind, wo ich auch noch Namen anpassen muss, geht das Umbennen per Script?

          85bababb-9413-487a-8fa8-e362431be965-image.png

          Die rechte Spalte soll andere Namen haben

          So soll das dann aussehen, von englisch auf deutsch (oder muss das alles von Hand erfolgen?)

          4db1cab1-5a25-42b7-8500-b4ac2a15184e-image.png

          Vielen Dank

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

          @AxelF1977 sagte:

          von englisch auf deutsch

          Man kann das Jahr im $Selector auch unberücksichtigt lassen und im Namen bei gleichzeitiger Übersetzung unterbringen.

          const idTable = '0_userdata.0.Verbrauch.Gerätename.Monate.json'; // Vorschlag ID JSON-Tabelle
          const monate = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
          
          var select = $('sourceanalytix.0.Geräte-ID.20*.consumed.months.*'); // Geräte-ID ersetzen
          var ids = []; 
          var table = [];
          select.each(function(id, i) {
              ids[i] = id;
              table[i] = {};
              let idx = parseInt(id.substring(id.lastIndexOf('.') + 1)) - 1;
              let monat = monate[idx];
              table[i].Name = monat + ' ' + id.split('.')[3]; // z.B. "Februar 2020"
              table[i].Wert = getState(id).val;
          });
          setState(idTable, JSON.stringify(table), true);
           
          on(ids, function(dp) {
              let idx = ids.indexOf(dp.id);
              table[idx].Wert = dp.state.val;
              setState(idTable, JSON.stringify(table), true);
          });
          

          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

          AxelF1977A 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @AxelF1977 sagte:

            von englisch auf deutsch

            Man kann das Jahr im $Selector auch unberücksichtigt lassen und im Namen bei gleichzeitiger Übersetzung unterbringen.

            const idTable = '0_userdata.0.Verbrauch.Gerätename.Monate.json'; // Vorschlag ID JSON-Tabelle
            const monate = ['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'];
            
            var select = $('sourceanalytix.0.Geräte-ID.20*.consumed.months.*'); // Geräte-ID ersetzen
            var ids = []; 
            var table = [];
            select.each(function(id, i) {
                ids[i] = id;
                table[i] = {};
                let idx = parseInt(id.substring(id.lastIndexOf('.') + 1)) - 1;
                let monat = monate[idx];
                table[i].Name = monat + ' ' + id.split('.')[3]; // z.B. "Februar 2020"
                table[i].Wert = getState(id).val;
            });
            setState(idTable, JSON.stringify(table), true);
             
            on(ids, function(dp) {
                let idx = ids.indexOf(dp.id);
                table[idx].Wert = dp.state.val;
                setState(idTable, JSON.stringify(table), true);
            });
            
            AxelF1977A Offline
            AxelF1977A Offline
            AxelF1977
            schrieb am zuletzt editiert von AxelF1977
            #25

            @paul53 Danke.

            Habe es mal eingebaut, funktioniert.

            ich konnte mir das alles nochmal genauer ansehen. Also der Ordner consumed enthält nur Werte die 0 sind. Evtl. taucht dort wirklich erst ein Wert auf, wenn der Monat/die Woche abgeschlossen ist. Aktuell ist der Monat 0. Das passt nicht wirklich zu dem, wie ich die Werte betrachten möchte. Also im Skript auf meterReadings geändert, und der aktuelle Wert ist da.

            Auch das umbenennen über das Script läuft klasse, danke.

            Was jetzt halt wirklich toll wäre, wenn das Script die Ordner unter 0_userdata.0.Verbrauch.Gerätename.Monate.json selbstständig anlegen würde.

            Also von jedem "Gerät" die Ordnerstruktur mit der json Datei anlegt, es dadurch nur ein Script gibt. Aktuell müsste ich 62 Skripte anlegen, und dazu alle Datenpunkte von Hand, was einfach ewig dauert. Und pflegen ist so wohl auch nicht drin. Wenn dann neue Steckdosen kommen, muss alles wieder von Hand geändert werden.

            Du wollstest ja noch einen Screenshot mit Daten, ich hoffe diesmal kannst Du mehr erkennen

            006232b7-637d-4fe5-9684-839b986fdea8-image.png

            ASROCK Deskmini Intel I3 8100 16GB mit Proxmox VM ioBroker VM DIYHue| CCU piVCCU + FHEM auf Raspberry | Maria DB mit Grafana und Prometheus auf Tinker Board

            paul53P 2 Antworten Letzte Antwort
            0
            • AxelF1977A AxelF1977

              @paul53 Danke.

              Habe es mal eingebaut, funktioniert.

              ich konnte mir das alles nochmal genauer ansehen. Also der Ordner consumed enthält nur Werte die 0 sind. Evtl. taucht dort wirklich erst ein Wert auf, wenn der Monat/die Woche abgeschlossen ist. Aktuell ist der Monat 0. Das passt nicht wirklich zu dem, wie ich die Werte betrachten möchte. Also im Skript auf meterReadings geändert, und der aktuelle Wert ist da.

              Auch das umbenennen über das Script läuft klasse, danke.

              Was jetzt halt wirklich toll wäre, wenn das Script die Ordner unter 0_userdata.0.Verbrauch.Gerätename.Monate.json selbstständig anlegen würde.

              Also von jedem "Gerät" die Ordnerstruktur mit der json Datei anlegt, es dadurch nur ein Script gibt. Aktuell müsste ich 62 Skripte anlegen, und dazu alle Datenpunkte von Hand, was einfach ewig dauert. Und pflegen ist so wohl auch nicht drin. Wenn dann neue Steckdosen kommen, muss alles wieder von Hand geändert werden.

              Du wollstest ja noch einen Screenshot mit Daten, ich hoffe diesmal kannst Du mehr erkennen

              006232b7-637d-4fe5-9684-839b986fdea8-image.png

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

              @AxelF1977 sagte in Javascript für JSON Tabelle:

              Du wollstest ja noch einen Screenshot mit Daten

              Es sind einfach noch zu wenige Daten.

              @AxelF1977 sagte in Javascript für JSON Tabelle:

              Also der Ordner consumed enthält nur Werte die 0 sind. Evtl. taucht dort wirklich erst ein Wert auf, wenn der Monat/die Woche abgeschlossen ist.

              Ja, sehr wahrscheinlich. Unter "meterReadings" werden sich die Zählerstände befinden, wobei der Juni-Wert bei Übergang zum Juli stehen bleiben wird und dann im Juli weiter gezählt wird. Man benötigt die Zählerstände, um die Differenz zwischen Monatsende und Monatsanfang (=Monats-Verbrauch) ermitteln zu können. Für die JSON-Tabelle wirst Du die Werte unter "consumed" benötigen, da diese den Verbrauch (Differenz) für den zugehörigen Zeitraum enthalten werden.

              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

              AxelF1977A 1 Antwort Letzte Antwort
              0
              • AxelF1977A AxelF1977

                @paul53 Danke.

                Habe es mal eingebaut, funktioniert.

                ich konnte mir das alles nochmal genauer ansehen. Also der Ordner consumed enthält nur Werte die 0 sind. Evtl. taucht dort wirklich erst ein Wert auf, wenn der Monat/die Woche abgeschlossen ist. Aktuell ist der Monat 0. Das passt nicht wirklich zu dem, wie ich die Werte betrachten möchte. Also im Skript auf meterReadings geändert, und der aktuelle Wert ist da.

                Auch das umbenennen über das Script läuft klasse, danke.

                Was jetzt halt wirklich toll wäre, wenn das Script die Ordner unter 0_userdata.0.Verbrauch.Gerätename.Monate.json selbstständig anlegen würde.

                Also von jedem "Gerät" die Ordnerstruktur mit der json Datei anlegt, es dadurch nur ein Script gibt. Aktuell müsste ich 62 Skripte anlegen, und dazu alle Datenpunkte von Hand, was einfach ewig dauert. Und pflegen ist so wohl auch nicht drin. Wenn dann neue Steckdosen kommen, muss alles wieder von Hand geändert werden.

                Du wollstest ja noch einen Screenshot mit Daten, ich hoffe diesmal kannst Du mehr erkennen

                006232b7-637d-4fe5-9684-839b986fdea8-image.png

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

                @AxelF1977 sagte:

                wenn das Script die Ordner unter 0_userdata.0.Verbrauch.Gerätename.Monate.json selbstständig anlegen würde.

                Statt Zeile 15:

                if(existsState(idTable)) setState(idTable, JSON.stringify(table), true);
                else createState(idTable, JSON.stringify(table), {type: 'string'});
                

                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

                AxelF1977A 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @AxelF1977 sagte in Javascript für JSON Tabelle:

                  Du wollstest ja noch einen Screenshot mit Daten

                  Es sind einfach noch zu wenige Daten.

                  @AxelF1977 sagte in Javascript für JSON Tabelle:

                  Also der Ordner consumed enthält nur Werte die 0 sind. Evtl. taucht dort wirklich erst ein Wert auf, wenn der Monat/die Woche abgeschlossen ist.

                  Ja, sehr wahrscheinlich. Unter "meterReadings" werden sich die Zählerstände befinden, wobei der Juni-Wert bei Übergang zum Juli stehen bleiben wird und dann im Juli weiter gezählt wird. Man benötigt die Zählerstände, um die Differenz zwischen Monatsende und Monatsanfang (=Monats-Verbrauch) ermitteln zu können. Für die JSON-Tabelle wirst Du die Werte unter "consumed" benötigen, da diese den Verbrauch (Differenz) für den zugehörigen Zeitraum enthalten werden.

                  AxelF1977A Offline
                  AxelF1977A Offline
                  AxelF1977
                  schrieb am zuletzt editiert von
                  #28

                  @paul53 sagte in Javascript für JSON Tabelle:

                  @AxelF1977 sagte in Javascript für JSON Tabelle:

                  Du wollstest ja noch einen Screenshot mit Daten

                  Es sind einfach noch zu wenige Daten.

                  Welche Daten benötigst Du? Dann probiere natürlich diese zu zeigen. Auf dem Screenshot sind die Werte die ein Ordner eines Datenpunktes hergibt. Viel mehr gibt ein Ordner im sourceanalytix nicht her. Es sei denn ich kann noch weitere Optionen übers Admin Menü einblenden.

                  @AxelF1977 sagte in Javascript für JSON Tabelle:

                  Also der Ordner consumed enthält nur Werte die 0 sind. Evtl. taucht dort wirklich erst ein Wert auf, wenn der Monat/die Woche abgeschlossen ist.

                  Ja, sehr wahrscheinlich. Unter "meterReadings" werden sich die Zählerstände befinden, wobei der Juni-Wert bei Übergang zum Juli stehen bleiben wird und dann im Juli weiter gezählt wird. Man benötigt die Zählerstände, um die Differenz zwischen Monatsende und Monatsanfang (=Monats-Verbrauch) ermitteln zu können. Für die JSON-Tabelle wirst Du die Werte unter "consumed" benötigen, da diese den Verbrauch (Differenz) für den zugehörigen Zeitraum enthalten werden.

                  Verstehe. Dann scheint consumption richtig zu sein, auch wenn da gerade noch alle Werte 0 sind. Das müsste ich dann nächste Woche mal beobachten, der Monatswechsel ist jetzt nicht mehr weit.

                  Ich leihe mir mal einen Screenshot aus dem Forum.

                  Bild Text

                  Hier ist wirklich zu sehen, das unter Meter_Radings die Werte aufaddiert werden, bei consumption jeder Monat einzeln betrachtet wird. Differenz von 03_March zu 04_April ist der Wert von Current_month bei consumption.

                  ASROCK Deskmini Intel I3 8100 16GB mit Proxmox VM ioBroker VM DIYHue| CCU piVCCU + FHEM auf Raspberry | Maria DB mit Grafana und Prometheus auf Tinker Board

                  1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @AxelF1977 sagte:

                    wenn das Script die Ordner unter 0_userdata.0.Verbrauch.Gerätename.Monate.json selbstständig anlegen würde.

                    Statt Zeile 15:

                    if(existsState(idTable)) setState(idTable, JSON.stringify(table), true);
                    else createState(idTable, JSON.stringify(table), {type: 'string'});
                    
                    AxelF1977A Offline
                    AxelF1977A Offline
                    AxelF1977
                    schrieb am zuletzt editiert von
                    #29

                    @paul53 sagte in Javascript für JSON Tabelle:

                    @AxelF1977 sagte:

                    wenn das Script die Ordner unter 0_userdata.0.Verbrauch.Gerätename.Monate.json selbstständig anlegen würde. Statt Zeile 15:

                    if(existsState(idTable)) setState(idTable, JSON.stringify(table), true);
                    else createState(idTable, JSON.stringify(table), {type: 'string'});
                    

                    Cool :+1: Funktioniert super. Danke

                    Da es toll wäre, wenn es nur ein Skript pro Monat und eines pro Wochen geben würde, kann das Script nicht jeden Ordner in SA durchgehen und dann für jede ID diese Ordnerstrucktur anlegen?

                    54278e75-1c55-4e04-b7d8-548300665d0b-image.png

                    0_userdata.0.Verbrauch.ID.Monate.json
                    

                    ASROCK Deskmini Intel I3 8100 16GB mit Proxmox VM ioBroker VM DIYHue| CCU piVCCU + FHEM auf Raspberry | Maria DB mit Grafana und Prometheus auf Tinker Board

                    1 Antwort Letzte Antwort
                    0
                    • AxelF1977A Offline
                      AxelF1977A Offline
                      AxelF1977
                      schrieb am zuletzt editiert von
                      #30

                      Ich habe mal ein wenig gebastelt, und bin jetzt bei folgendem Ergebnis. Ist zwar jetzt viel Handarbeit, da die Scripte manuell kopiert und angelegt werden müssen (mal gucken wie lange das dauert), aber das Ergebnis zählt.

                      Script Monate

                      var d = new Date();
                      var n = d.getFullYear();
                      const idTable = '0_userdata.0.Verbrauch.AlleVerbauchertotal.' + n + '.consumed.Monate.json'; // Vorschlag ID JSON-Tabelle
                      const monate = ['01 Januar','02 Februar','03 März','04 April','05 Mai','06 Juni','07 Juli','08 August','07 September','10 Oktober','11 November','12 Dezember'];
                       
                      var select = $('sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.consumed.months.*'); // Geräte-ID ersetzen
                      var ids = []; 
                      var table = [];
                      select.each(function(id, i) {
                          ids[i] = id;
                          table[i] = {};
                          let idx = parseInt(id.substring(id.lastIndexOf('.') + 1)) - 1;
                          let monat = monate[idx];
                          table[i].Name = monat + ' ' + id.split('.')[3]; // z.B. "Februar 2020"
                          table[i].Wert = getState(id).val;
                      });
                      if(existsState(idTable)) setState(idTable, JSON.stringify(table), true);
                      else createState(idTable, JSON.stringify(table), {type: 'string'});
                       
                      on(ids, function(dp) {
                          let idx = ids.indexOf(dp.id);
                          table[idx].Wert = dp.state.val;
                          setState(idTable, JSON.stringify(table), true);
                      });
                      

                      Script Wochen

                      var d = new Date();
                      var n = d.getFullYear();
                      const idTable = '0_userdata.0.Verbrauch.AlleVerbauchertotal.' + n + '.consumed.Weeks.json'; // Vorschlag ID JSON-Tabelle
                      //const monate = ['01 Januar','02 Februar','03 März','04 April','05 Mai','06 Juni','07 Juli','08 August','07 September','10 Oktober','11 November','12 Dezember'];
                       
                      var select = $('sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.consumed.weeks.*'); // Geräte-ID ersetzen
                      var ids = []; 
                      var table = [];
                      select.each(function(id, i) {
                          ids[i] = id;
                          table[i] = {};
                          table[i].Name = getObject(id).common.name;
                          table[i].Wert = getState(id).val;
                      });
                      if(existsState(idTable)) setState(idTable, JSON.stringify(table), true);
                      else createState(idTable, JSON.stringify(table), {type: 'string'});
                       
                      on(ids, function(dp) {
                          let idx = ids.indexOf(dp.id);
                          table[idx].Wert = dp.state.val;
                          setState(idTable, JSON.stringify(table), true);
                      });
                      

                      Ordnerstruktur Scripte (das dann für aktuell 62 Ordner) mehr kommen noch dazu
                      d6bfd9e6-cdcc-4ff1-856d-3b4468573680-image.png

                      Ordnerstruktur nachdem alles angelegt ist
                      4a52bc7b-7b61-4f48-a342-2288154d991b-image.png

                      ASROCK Deskmini Intel I3 8100 16GB mit Proxmox VM ioBroker VM DIYHue| CCU piVCCU + FHEM auf Raspberry | Maria DB mit Grafana und Prometheus auf Tinker Board

                      1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @AxelF1977 sagte:

                        nehme alle Datenpunkte aus dem Ordner

                        const idTable = '0_userdata.0.json.AlleVerbrauchertotalwochen'; // ID JSON-Tabelle
                        const select = $('sourceanalytix.0.0_userdata__0__Berechnungen__AlleVerbauchermitGosund.2020.meterReadings.weeks.*');
                        
                        var ids = []; 
                        var table = [];
                        select.each(function(id, i) {
                            ids[i] = id;
                            table[i] = {};
                            table[i].Name = getObject(id).common.name;
                            table[i].Wert = getState(id).val;
                        });
                        setState(idTable, JSON.stringify(table), true);
                         
                        on(ids, function(dp) {
                            let idx = ids.indexOf(dp.id);
                            table[idx].Wert = dp.state.val;
                            setState(idTable, JSON.stringify(table), true);
                        });
                        
                        etvE Offline
                        etvE Offline
                        etv
                        schrieb am zuletzt editiert von
                        #31

                        Hallo @paul53 ,

                        ich bin bei der Suche auf diesen Threat gestoßen und hab noch eine Frage dazu:

                        der Teil in der on(ids ...Funktion wird gebraucht um Änderungen der Datenpunkte in die Tabelle zu übernehmen, oder?

                        Und der erste Teil legt die Tabelle mit den aktuellen Inhalten der Datenpunkte an, oder?

                        Brauch für meinen 3d-Drucker auch eine Funktion, die meine Daten aus Octoprint und Energieverbrauch "tabellentauglich" für VIS aufbereitet, weil aktuell hab ich in jedem Datenpunkt nur mittels JSON.stringify eine "Daten-Wurst" im Format ["wert1","wert2","wert3"] liegen.

                        Liebe Grüße
                        Tom

                        …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • etvE etv

                          Hallo @paul53 ,

                          ich bin bei der Suche auf diesen Threat gestoßen und hab noch eine Frage dazu:

                          der Teil in der on(ids ...Funktion wird gebraucht um Änderungen der Datenpunkte in die Tabelle zu übernehmen, oder?

                          Und der erste Teil legt die Tabelle mit den aktuellen Inhalten der Datenpunkte an, oder?

                          Brauch für meinen 3d-Drucker auch eine Funktion, die meine Daten aus Octoprint und Energieverbrauch "tabellentauglich" für VIS aufbereitet, weil aktuell hab ich in jedem Datenpunkt nur mittels JSON.stringify eine "Daten-Wurst" im Format ["wert1","wert2","wert3"] liegen.

                          Liebe Grüße
                          Tom

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

                          @etv sagte:

                          der Teil in der on(ids ...Funktion wird gebraucht um Änderungen der Datenpunkte in die Tabelle zu übernehmen, oder?

                          Ja, wenn sich Werte ändern, wird darauf reagiert.

                          @etv sagte in Javascript für JSON Tabelle:

                          Und der erste Teil legt die Tabelle mit den aktuellen Inhalten der Datenpunkte an, oder?

                          Ja.

                          @etv sagte in Javascript für JSON Tabelle:

                          "Daten-Wurst" im Format ["wert1","wert2","wert3"]

                          Bitte komplettes JSON in Code tags posten. Wie soll die JsonTable aussehen ?

                          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

                          etvE 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @etv sagte:

                            der Teil in der on(ids ...Funktion wird gebraucht um Änderungen der Datenpunkte in die Tabelle zu übernehmen, oder?

                            Ja, wenn sich Werte ändern, wird darauf reagiert.

                            @etv sagte in Javascript für JSON Tabelle:

                            Und der erste Teil legt die Tabelle mit den aktuellen Inhalten der Datenpunkte an, oder?

                            Ja.

                            @etv sagte in Javascript für JSON Tabelle:

                            "Daten-Wurst" im Format ["wert1","wert2","wert3"]

                            Bitte komplettes JSON in Code tags posten. Wie soll die JsonTable aussehen ?

                            etvE Offline
                            etvE Offline
                            etv
                            schrieb am zuletzt editiert von
                            #33

                            @paul53, OK danke!

                            Tabelle ist noch im "Rohzustand" und nicht fertiggedacht.....wenn ich das Projekt angehe, dann poste ich das da - herzlichen Dank!!

                            Liebe Grüße
                            Tom

                            …ist schon sehr lange begeisterter ioBroker Nutzer! 1x zu Hause und 1x auf der Alm. ioBroker ist das 'Hirn' des Smarthome und steuert HomeMatic und Shellys, loggt was so passiert, zeigt es auf Tabletts schön an und ermöglicht mir via Cloud Adapter den Fernzugriff...

                            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

                            832

                            Online

                            32.5k

                            Benutzer

                            81.7k

                            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