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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    509

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Javascript für JSON Tabelle

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptmonitoring
33 Beiträge 3 Kommentatoren 2.7k 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.
  • AxelF1977A AxelF1977

    @paul53 sagte in Javascript für JSON Tabelle:

    @AxelF1977 sagte:

    Ich mpöchte diese Daten min. der letzten 2 Jahre inkl. dem laufenden Jahr halten.

    Das würde ich mit 2 Datenpunkten machen, die alle Werte der letzten 2 Jahre (24 Monate / 104 Wochen) enthalten. Dann muss man keine neuen Datenpunkte erstellen und keine zu alten Datenpunkte löschen.

    Ok, ich versuche mir das gerade vorzustellen, wie das funktioniert. Aber mit Filtern sollte man dann ja da die Werte zum Vergleichen gezielt rausholen könne, oder?

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

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

    @AxelF1977 sagte:

    Aber mit Filtern sollte man dann ja da die Werte zum Vergleichen gezielt rausholen könne, oder?

    Ja.

    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:

      Aber mit Filtern sollte man dann ja da die Werte zum Vergleichen gezielt rausholen könne, oder?

      Ja.

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

      @paul53 sagte in Javascript für JSON Tabelle:

      @AxelF1977 sagte:

      Aber mit Filtern sollte man dann ja da die Werte zum Vergleichen gezielt rausholen könne, oder?

      Ja.

      Dann würde das ja super funktionieren.

      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

        @paul53 sagte in Javascript für JSON Tabelle:

        @AxelF1977 sagte:

        neu anlegen, weil es ein neues Jahr ist. Ich möchte die Werte behalten vom Jahr zuvor.

        Soll es über mehrere Jahre gehen ? Wie viele (welche) Datenpunkte stehen unter "weeks" bzw. "months" ?

        Hallo @paul53,

        erstmal Danke für die Antwort, und danke das Du dran bleibst.

        Die Struktur eines jeden Ordners ist im Adapter genau gleich, und sieht aus wie auf dem Screenshot

        3e4f1342-fc2e-4586-8d1c-987ee772ccf1-image.png

        Nächstes Jahr kommt dann Ordner 2021 mit der selben Struktur dazu usw. Der Ordner month erhält 12 Datenpunkte, einen zu jedem Monat. Selbiges für den Ordner weeks, ein Datenpunkt pro Woche.

        Ich mpöchte diese Daten min. der letzten 2 Jahre inkl. dem laufenden Jahr halten. Um Vergleiche anstellen zu können und auszuwerten wie sich wo welcher Verbrauch verändert hat.

        @paul53 sagte in Javascript für JSON Tabelle:

        Anstelle der vielen Datenpunkte (pro Woche / pro Monat) würde ich die historischen Werte in je einem Array speichern.

        Hier verstehe ich gerade nur Bahnhof

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

        @AxelF1977 sagte:

        Die Struktur eines jeden Ordners ist im Adapter genau gleich, und sieht aus wie auf dem Screenshot

        Wann erstellt SourceAnalytix die Ordner-Struktur ? Jedes Jahr am 1. Januar ? Komplett für das ganze Jahr ? Werden die Ordner des Vorjahres gelöscht ?

        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:

          Die Struktur eines jeden Ordners ist im Adapter genau gleich, und sieht aus wie auf dem Screenshot

          Wann erstellt SourceAnalytix die Ordner-Struktur ? Jedes Jahr am 1. Januar ? Komplett für das ganze Jahr ? Werden die Ordner des Vorjahres gelöscht ?

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

          @paul53 sagte in Javascript für JSON Tabelle:

          @AxelF1977 sagte:

          Die Struktur eines jeden Ordners ist im Adapter genau gleich, und sieht aus wie auf dem Screenshot

          Wann erstellt SourceAnalytix die Ordner-Struktur ? Jedes Jahr am 1. Januar ? Komplett für das ganze Jahr ?

          Soweit ich es verstanden habe ja. Mit Wechsel ins neue Jahr werden die Ordner erstellt, inkl der gesamten Struktur. Die alten bleiben erhalten.
          Das sind Erfahrungen die ich gelesen habe, ich selber hatte den Fall bisher nicht.

          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

            @paul53 sagte in Javascript für JSON Tabelle:

            @AxelF1977 sagte:

            neu anlegen, weil es ein neues Jahr ist. Ich möchte die Werte behalten vom Jahr zuvor.

            Soll es über mehrere Jahre gehen ? Wie viele (welche) Datenpunkte stehen unter "weeks" bzw. "months" ?

            Hallo @paul53,

            erstmal Danke für die Antwort, und danke das Du dran bleibst.

            Die Struktur eines jeden Ordners ist im Adapter genau gleich, und sieht aus wie auf dem Screenshot

            3e4f1342-fc2e-4586-8d1c-987ee772ccf1-image.png

            Nächstes Jahr kommt dann Ordner 2021 mit der selben Struktur dazu usw. Der Ordner month erhält 12 Datenpunkte, einen zu jedem Monat. Selbiges für den Ordner weeks, ein Datenpunkt pro Woche.

            Ich mpöchte diese Daten min. der letzten 2 Jahre inkl. dem laufenden Jahr halten. Um Vergleiche anstellen zu können und auszuwerten wie sich wo welcher Verbrauch verändert hat.

            @paul53 sagte in Javascript für JSON Tabelle:

            Anstelle der vielen Datenpunkte (pro Woche / pro Monat) würde ich die historischen Werte in je einem Array speichern.

            Hier verstehe ich gerade nur Bahnhof

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

            @AxelF1977 sagte:

            sieht aus wie auf dem Screenshot

            Zeige bitte mal die Status-Ansicht der gleichen Datenpunkte, in der man Wert, Zeitstempel und letzte Änderung sehen kann. Ich möchte ein Vorstellung davon bekommen, was wann in die Datenpunkte geschrieben wird.

            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:

              sieht aus wie auf dem Screenshot

              Zeige bitte mal die Status-Ansicht der gleichen Datenpunkte, in der man Wert, Zeitstempel und letzte Änderung sehen kann. Ich möchte ein Vorstellung davon bekommen, was wann in die Datenpunkte geschrieben wird.

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

              @paul53 sagte in Javascript für JSON Tabelle:

              @AxelF1977 sagte:

              sieht aus wie auf dem Screenshot

              Zeige bitte mal die Status-Ansicht der gleichen Datenpunkte, in der man Wert, Zeitstempel und letzte Änderung sehen kann. Ich möchte ein Vorstellung davon bekommen, was wann in die Datenpunkte geschrieben wird.

              Ich hoffe damit kannst Du was anfangen. Ich bin auf Arbeit und habe nur per VPN mit meinem Mobiltelefon zugriff

              8f1892c3-95e9-4b09-affc-16c655836a8a-image.png

              Screenshot erstellt um 11:01 Uhr

              Anbei ein anderer Datenpunkt, der sich öfter aktualisiert, da hier alle Verbrauchswerte zusammenlaufen. Die Datenpunkte werden bei Änderung sofort aktualisiert.

              c2f4ea7f-82a4-47ac-98e9-5ec913043e9c-image.png

              Screenshot erstellt 11:09 Uhr

              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:

                sieht aus wie auf dem Screenshot

                Zeige bitte mal die Status-Ansicht der gleichen Datenpunkte, in der man Wert, Zeitstempel und letzte Änderung sehen kann. Ich möchte ein Vorstellung davon bekommen, was wann in die Datenpunkte geschrieben wird.

                Ich hoffe damit kannst Du was anfangen. Ich bin auf Arbeit und habe nur per VPN mit meinem Mobiltelefon zugriff

                8f1892c3-95e9-4b09-affc-16c655836a8a-image.png

                Screenshot erstellt um 11:01 Uhr

                Anbei ein anderer Datenpunkt, der sich öfter aktualisiert, da hier alle Verbrauchswerte zusammenlaufen. Die Datenpunkte werden bei Änderung sofort aktualisiert.

                c2f4ea7f-82a4-47ac-98e9-5ec913043e9c-image.png

                Screenshot erstellt 11:09 Uhr

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

                @AxelF1977 sagte:

                Anbei ein anderer Datenpunkt,

                Welcher ?

                @AxelF1977 sagte in Javascript für JSON Tabelle:

                Ich hoffe damit kannst Du was anfangen.

                Das ist noch etwas wenig, um daraus etwas zu erkennen.
                Da die Datenpunkte unter "meterReadings" sind, würde ich vermuten, dass sie die Zählerstände enthalten (z.B. Ende des Monats / aktuell des laufenden Monats) ? Was Du auswerten möchtest, sind vermutlich die Monats-/Wochen-Verbrauchswerte, die sich meiner Meinung nach unter "consumed" befinden sollten.

                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:

                  Anbei ein anderer Datenpunkt,

                  Welcher ?

                  @AxelF1977 sagte in Javascript für JSON Tabelle:

                  Ich hoffe damit kannst Du was anfangen.

                  Das ist noch etwas wenig, um daraus etwas zu erkennen.
                  Da die Datenpunkte unter "meterReadings" sind, würde ich vermuten, dass sie die Zählerstände enthalten (z.B. Ende des Monats / aktuell des laufenden Monats) ? Was Du auswerten möchtest, sind vermutlich die Monats-/Wochen-Verbrauchswerte, die sich meiner Meinung nach unter "consumed" befinden sollten.

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

                  @paul53 sagte in Javascript für JSON Tabelle:

                  @AxelF1977 sagte:

                  Anbei ein anderer Datenpunkt,

                  Welcher ?

                  @AxelF1977 sagte in Javascript für JSON Tabelle:

                  Ich hoffe damit kannst Du was anfangen.

                  Das ist noch etwas wenig, um daraus etwas zu erkennen.
                  Da die Datenpunkte unter "meterReadings" sind, würde ich vermuten, dass sie die Zählerstände enthalten (z.B. Ende des Monats / aktuell des laufenden Monats) ? Was Du auswerten möchtest, sind vermutlich die Monats-/Wochen-Verbrauchswerte, die sich meiner Meinung nach unter "consumed" befinden sollten.

                  Ich prüfe dass dann heute Abend wenn ich zu Hause bin. Da kann ich dann besser Arbeiten. Am Mobiltelefon ist das furchtbar.

                  Ich probiere Dir dann alle Infos zukommen zu lassen.

                  Vielen Dank für die Zeit, die Du hier opferst um mir zu helfen.

                  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

                    @paul53 sagte in Javascript für JSON Tabelle:

                    @AxelF1977 sagte:

                    Ich mpöchte diese Daten min. der letzten 2 Jahre inkl. dem laufenden Jahr halten.

                    Das würde ich mit 2 Datenpunkten machen, die alle Werte der letzten 2 Jahre (24 Monate / 104 Wochen) enthalten. Dann muss man keine neuen Datenpunkte erstellen und keine zu alten Datenpunkte löschen.

                    Ok, ich versuche mir das gerade vorzustellen, wie das funktioniert. Aber mit Filtern sollte man dann ja da die Werte zum Vergleichen gezielt rausholen könne, oder?

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

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

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

                    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:

                      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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          463

                                          Online

                                          32.6k

                                          Benutzer

                                          81.9k

                                          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