Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. gelöst: json tabelle erstellen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    444

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    367

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    964

gelöst: json tabelle erstellen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
8 Beiträge 2 Kommentatoren 541 Aufrufe 1 Beobachtet
  • Ä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.
  • M Offline
    M Offline
    michihorn
    schrieb am zuletzt editiert von michihorn
    #1

    Hallo
    ich möchte gerne eine json-Tabelle erstellen. (habe ich noch nie gemacht)
    Inhalt soll einmal monatlich am letzten Tag des Monats der Zählerwert des Smartmeter Adapters sein. Das bedeutet, jeden Monat soll eine neue Zeile erstellt werden mit den Feldnamen Monat/Jahr und Zählerwert. Kann mich jemand mal in die richtige Richtung schupsen?
    Gruß
    Michael

    paul53P 1 Antwort Letzte Antwort
    0
    • M michihorn

      Hallo
      ich möchte gerne eine json-Tabelle erstellen. (habe ich noch nie gemacht)
      Inhalt soll einmal monatlich am letzten Tag des Monats der Zählerwert des Smartmeter Adapters sein. Das bedeutet, jeden Monat soll eine neue Zeile erstellt werden mit den Feldnamen Monat/Jahr und Zählerwert. Kann mich jemand mal in die richtige Richtung schupsen?
      Gruß
      Michael

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

      @michihorn sagte: in die richtige Richtung schupsen?

      const idZaehler = 'abc';
      const idJSON = '0_userdata.0.xyz';
      
      const arr = JSON.parse(getState(idJSON).val); // Mind. ein '[]' muss vorhanden sein
      
      schedule('50 59 23 * * *', function() {
          const tomorrow = Date.now() + 20000;
          if(new Date(tomorrow).getDate() == 1) {
              const obj = {
                  'Monat/Jahr': formatDate(new Date(), 'MM/YYYY'),
                  'Zählerstand': getState(idZaehler).val
              };
              arr.push(obj);
              // Anzahl Einträge verringern? 
              setState(idJSON, JSON.stringify(arr), 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

      1 Antwort Letzte Antwort
      1
      • M Offline
        M Offline
        michihorn
        schrieb am zuletzt editiert von michihorn
        #3

        @paul53 sagte in json tabelle erstellen:

        const idJSON = '0_userdata.0.xyz';

        Hallo Paul,
        zum Testen habe ich für idZähler, den aktuellen Verbrauch genommen,
        den DP idJSON hast Du als Zustandstyp "json" in den Objecten angelegt?
        Denn ich komme folgende Warnmeldungen

        const idZaehler = 'smartmeter.0.1-0:16_7_0__255.value';
        const idJSON = '0_userdata.0.Haus.Energie.Strom_JSON';
         
        const arr = JSON.parse(getState(idJSON).val);
        
        
        schedule('50 59 23 * * *', function() {
            const tomorrow = Date.now() + 20000;
            if(new Date(tomorrow).getDate() == 1) {
                const obj = {
                    'Monat/Jahr': formatDate(new Date(), 'MM/YYYY'),
                    'Zählerstand': getState(idZaehler).val
                };
                arr.push(obj);
                 //Anzahl Einträge verringern? 
                setState(idJSON, JSON.stringify(arr), true);
            }
        });
        
        11:14:54.661	info	javascript.0 (1239) Start javascript script.js.Trash.Skript_1json
        11:14:54.669	warn	javascript.0 (1239) at script.js.Trash.Skript_1json:4:24
        11:14:54.669	warn	javascript.0 (1239) at script.js.Trash.Skript_1json:20:3
        11:14:54.683	info	javascript.0 (1239) script.js.Trash.Skript_1json: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
        
        paul53P 1 Antwort Letzte Antwort
        0
        • M michihorn

          @paul53 sagte in json tabelle erstellen:

          const idJSON = '0_userdata.0.xyz';

          Hallo Paul,
          zum Testen habe ich für idZähler, den aktuellen Verbrauch genommen,
          den DP idJSON hast Du als Zustandstyp "json" in den Objecten angelegt?
          Denn ich komme folgende Warnmeldungen

          const idZaehler = 'smartmeter.0.1-0:16_7_0__255.value';
          const idJSON = '0_userdata.0.Haus.Energie.Strom_JSON';
           
          const arr = JSON.parse(getState(idJSON).val);
          
          
          schedule('50 59 23 * * *', function() {
              const tomorrow = Date.now() + 20000;
              if(new Date(tomorrow).getDate() == 1) {
                  const obj = {
                      'Monat/Jahr': formatDate(new Date(), 'MM/YYYY'),
                      'Zählerstand': getState(idZaehler).val
                  };
                  arr.push(obj);
                   //Anzahl Einträge verringern? 
                  setState(idJSON, JSON.stringify(arr), true);
              }
          });
          
          11:14:54.661	info	javascript.0 (1239) Start javascript script.js.Trash.Skript_1json
          11:14:54.669	warn	javascript.0 (1239) at script.js.Trash.Skript_1json:4:24
          11:14:54.669	warn	javascript.0 (1239) at script.js.Trash.Skript_1json:20:3
          11:14:54.683	info	javascript.0 (1239) script.js.Trash.Skript_1json: registered 0 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @michihorn sagte: ich komme folgende Warnmeldungen

          Trage manuell ein leeres Array [] ein.

          @michihorn sagte in json tabelle erstellen:

          für idZähler, den aktuellen Verbrauch genommen,

          Du meinst den Zählerstand in kWh?

          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

          M 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @michihorn sagte: ich komme folgende Warnmeldungen

            Trage manuell ein leeres Array [] ein.

            @michihorn sagte in json tabelle erstellen:

            für idZähler, den aktuellen Verbrauch genommen,

            Du meinst den Zählerstand in kWh?

            M Offline
            M Offline
            michihorn
            schrieb am zuletzt editiert von michihorn
            #5

            @paul53 sagte in json tabelle erstellen:

            Du meinst den Zählerstand in kWh?

            Nein in Watt

            Möglicherweise habe ich deine Anweisung falsch gedeutet, das leere Array habe ich in den Objekten eingetragen, die Warnmeldung ist weg. Wie kann ich das Script auf Funktion test, den Schedule auf "minütlich" setzen reicht nicht

            paul53P 2 Antworten Letzte Antwort
            0
            • M michihorn

              @paul53 sagte in json tabelle erstellen:

              Du meinst den Zählerstand in kWh?

              Nein in Watt

              Möglicherweise habe ich deine Anweisung falsch gedeutet, das leere Array habe ich in den Objekten eingetragen, die Warnmeldung ist weg. Wie kann ich das Script auf Funktion test, den Schedule auf "minütlich" setzen reicht nicht

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

              @michihorn sagte: Nein in Watt

              Das ist die momentane Leistung!

              Du möchtest den Zählerstand in die Tabelle schreiben oder den Monatsverbrauch? Falls Monatsverbrauch, dann wird ein Hilfs-Datenpunkt benötigt, in dem sich der Zählerstand am Monatsende gemerkt wird.

              @michihorn sagte in json tabelle erstellen:

              die Warnmeldung ist allerdings beblieben

              Ich meinte auch: [] manuell im Tab "Objekte" eintragen. Sonst im Skript:

              var arr = [];
              if(getState(idJSON).val) arr = JSON.parse(getState(idJSON).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

              1 Antwort Letzte Antwort
              0
              • M michihorn

                @paul53 sagte in json tabelle erstellen:

                Du meinst den Zählerstand in kWh?

                Nein in Watt

                Möglicherweise habe ich deine Anweisung falsch gedeutet, das leere Array habe ich in den Objekten eingetragen, die Warnmeldung ist weg. Wie kann ich das Script auf Funktion test, den Schedule auf "minütlich" setzen reicht nicht

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

                @michihorn sagte: Wie kann ich das Script auf Funktion test

                Den Monatswechsel abwarten.

                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

                M 1 Antwort Letzte Antwort
                2
                • paul53P paul53

                  @michihorn sagte: Wie kann ich das Script auf Funktion test

                  Den Monatswechsel abwarten.

                  M Offline
                  M Offline
                  michihorn
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 sagte in json tabelle erstellen:

                  Den Monatswechsel abwarten.

                  ☺ So lange kann ich nicht mehr warten. Hab mal ganz brutal alles ausgeklammert:

                  const idZaehler = 'smartmeter.0.1-0:1_8_0__255.value';
                  const idJSON = '0_userdata.0.Haus.Energie.Strom_JSON';
                  
                  var arr = JSON.parse(getState(idJSON).val);
                  
                  //schedule('50 59 23 * * *', function() {
                  schedule("*/1 * * * *", function () {
                      var txt = '💬 Neuer Zählerstand gespeichert für ' + formatDate((Date.now()), "MM.JJ");
                      WhatsAppBot([0], txt);
                  
                      //const tomorrow = Date.now() + 20000;
                      //const tomorrow = Date.now();
                      //if (new Date(tomorrow).getDate() == 1) {
                          const obj = {
                              'Monat/Jahr': formatDate(new Date(), 'MM/YYYY'),
                              'Zählerstand': getState(idZaehler).val
                          };
                          arr.push(obj);
                          //Anzahl Einträge verringern? 
                          setState(idJSON, JSON.stringify(arr), true);
                    //  }
                  });
                  

                  Das Ergebnis in den Objekten sieht wie erwartet aus:

                  [{"Monat/Jahr":"01/2024","Zählerstand":3178.1119}]
                  

                  Das ganze dann in einer Tabelle:
                  zählerstand.png

                  Danke Paul

                  1 Antwort Letzte Antwort
                  0

                  Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                  Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                  Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                  Registrieren Anmelden
                  Antworten
                  • In einem neuen Thema antworten
                  Anmelden zum Antworten
                  • Älteste zuerst
                  • Neuste zuerst
                  • Meiste Stimmen


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  491

                  Online

                  32.8k

                  Benutzer

                  82.8k

                  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