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. täglich neu erstelltes Array mit Tagesinfos einer PV Anlage

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.2k

täglich neu erstelltes Array mit Tagesinfos einer PV Anlage

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
blockly
11 Beiträge 3 Kommentatoren 754 Aufrufe 2 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.
  • M Offline
    M Offline
    Maddm
    schrieb am zuletzt editiert von Maddm
    #1

    Hi,
    ich lesen via modbus-Adapter ein paar Livedaten von meinem Wechselrichter aus, die ich mir dann ins vis ausgeben und anzeigen lasse. Was mir noch fehlt bzw. was ich gern noch hätte, wäre eine Art Übersicht, wie denn die Werte in den letzten sieben Tagen gewesen sind.

    So soll das Ganze hinterher im vis aussehen: ne einfache Tabelle, die die Werte der vergangenen Woche auflistet (alle 7 Werte liegen als einzelne Datenpunkte vor)

    Datum       Ertrag___Einspeisung___Ladung___Deckung PV___Deckung Batterie___Deckung Netz___Gesamtverbrauch
    16.07.23    40,4 kWh 32,1 kWh      3,6 kWh  4,7 kW       1,6 kWh             0,2 kWh       6,5 kWh
    15.07.23    29,8 kWh 23,0 kWh      3,1 kWh  3,7 kW       3,5 kWh             0,6 kWh       7,8 kWh   
    14.07.23
    13.07.23
    12.07.23
    11.07.23
    10.07.23
    

    Update: ich hab den Vorschlag von @mickym schon eingearbeitet
    Meine Idee war, dafür nur einen einzigen Datenpunkt zu verwenden, idealerweise ein JSON Array, der täglich um 23:59 neu erstellt wird. Das JSON beinhaltet 7 Unterobjekte (A-G), die je einen der 7 Vortage repräsentieren, A wäre der Vortag, B wäre vorgestern usw...
    Das Array beinhaltet 1 Objekte, die je einen der 7 Vortage repräsentieren. Beim Start soll das JSON nicht anwachsen, sondern der Inhalt von G mit F überschrieben (G ist dann also nicht mehr verfügbar), E mit F usw und A wird mit den Inhalten des aktuellen Tages neu aufgebaut Array nicht anwachsen, sondern der älteste (=letzte) Eintrag fliegt raus, der aktuelle Tag wird auf die erste Position

    var aRueckblick = [
        {
            "Datum":"16.07.23",
            "Ertrag":"40,4 kWh",
            "Einspeisung":"32,1 kWh",
            "Ladung":"3,6 kWh",
            "Deckung PV":"4,7 kWh",
            "Deckung Batterie":"1,6 kWh",
            "Deckung Netz":"0,2 kWh",
            "Gesamtverbrauch":"6,5 kWh"
        },
        {
            "Datum":"15.07.23",
            "Ertrag":"29,8 kWh",
            "Einspeisung":"23,0 kWh",
            "Ladung":"3,1 kWh",
            "Deckung PV":"3,7 kWh",
            "Deckung Batterie":"3,5 kWh",
            "Deckung Netz":"0,6 kWh",
            "Gesamtverbrauch":"7,8 kWh"
        },
        {},
        {},
        {},
        {},
        {}
    ]
    

    soviel zur Theorie... jetzt kommt die Praxis und da scheitert es dann. Ich bin in Javascript eher unfit (zumindest bei den iobroker spezifischen Details) und mit Blockly hab ich selbst auch noch zu wenig Erfahrung um so etwas großes schon zu stemmen. Das ist auch der Grund, weswegen ich nicht ins Blockly bzw. Javascript Unterforum gegangen bin - ich weiß nicht, womit sich das besser / einfacher lösen lässt.

    Ich bin auch unsicher, ob die gewünsche Art der Speicherung (JSON), die geplante Anzeige (HTML Widget mit Tabellenquellcode) etc. überhaupt die richtigen Ideen sind... da bin ich auch offen für andere Ideen, die besser passen, evtl. gibts ja schon vergleichbare Lösungen, die ich adaptieren kann.

    Wenn mir hier also jemand wenig unter die Arme greifen kann/möchte wäre das echt super, learn from the best.

    mickymM 1 Antwort Letzte Antwort
    0
    • M Maddm

      Hi,
      ich lesen via modbus-Adapter ein paar Livedaten von meinem Wechselrichter aus, die ich mir dann ins vis ausgeben und anzeigen lasse. Was mir noch fehlt bzw. was ich gern noch hätte, wäre eine Art Übersicht, wie denn die Werte in den letzten sieben Tagen gewesen sind.

      So soll das Ganze hinterher im vis aussehen: ne einfache Tabelle, die die Werte der vergangenen Woche auflistet (alle 7 Werte liegen als einzelne Datenpunkte vor)

      Datum       Ertrag___Einspeisung___Ladung___Deckung PV___Deckung Batterie___Deckung Netz___Gesamtverbrauch
      16.07.23    40,4 kWh 32,1 kWh      3,6 kWh  4,7 kW       1,6 kWh             0,2 kWh       6,5 kWh
      15.07.23    29,8 kWh 23,0 kWh      3,1 kWh  3,7 kW       3,5 kWh             0,6 kWh       7,8 kWh   
      14.07.23
      13.07.23
      12.07.23
      11.07.23
      10.07.23
      

      Update: ich hab den Vorschlag von @mickym schon eingearbeitet
      Meine Idee war, dafür nur einen einzigen Datenpunkt zu verwenden, idealerweise ein JSON Array, der täglich um 23:59 neu erstellt wird. Das JSON beinhaltet 7 Unterobjekte (A-G), die je einen der 7 Vortage repräsentieren, A wäre der Vortag, B wäre vorgestern usw...
      Das Array beinhaltet 1 Objekte, die je einen der 7 Vortage repräsentieren. Beim Start soll das JSON nicht anwachsen, sondern der Inhalt von G mit F überschrieben (G ist dann also nicht mehr verfügbar), E mit F usw und A wird mit den Inhalten des aktuellen Tages neu aufgebaut Array nicht anwachsen, sondern der älteste (=letzte) Eintrag fliegt raus, der aktuelle Tag wird auf die erste Position

      var aRueckblick = [
          {
              "Datum":"16.07.23",
              "Ertrag":"40,4 kWh",
              "Einspeisung":"32,1 kWh",
              "Ladung":"3,6 kWh",
              "Deckung PV":"4,7 kWh",
              "Deckung Batterie":"1,6 kWh",
              "Deckung Netz":"0,2 kWh",
              "Gesamtverbrauch":"6,5 kWh"
          },
          {
              "Datum":"15.07.23",
              "Ertrag":"29,8 kWh",
              "Einspeisung":"23,0 kWh",
              "Ladung":"3,1 kWh",
              "Deckung PV":"3,7 kWh",
              "Deckung Batterie":"3,5 kWh",
              "Deckung Netz":"0,6 kWh",
              "Gesamtverbrauch":"7,8 kWh"
          },
          {},
          {},
          {},
          {},
          {}
      ]
      

      soviel zur Theorie... jetzt kommt die Praxis und da scheitert es dann. Ich bin in Javascript eher unfit (zumindest bei den iobroker spezifischen Details) und mit Blockly hab ich selbst auch noch zu wenig Erfahrung um so etwas großes schon zu stemmen. Das ist auch der Grund, weswegen ich nicht ins Blockly bzw. Javascript Unterforum gegangen bin - ich weiß nicht, womit sich das besser / einfacher lösen lässt.

      Ich bin auch unsicher, ob die gewünsche Art der Speicherung (JSON), die geplante Anzeige (HTML Widget mit Tabellenquellcode) etc. überhaupt die richtigen Ideen sind... da bin ich auch offen für andere Ideen, die besser passen, evtl. gibts ja schon vergleichbare Lösungen, die ich adaptieren kann.

      Wenn mir hier also jemand wenig unter die Arme greifen kann/möchte wäre das echt super, learn from the best.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      @maddm Ich würde keine Objekte A-G nehmen, sondern ein einfaches Array mit Objekten.

      Über den Index kannst Du auf die einzelnen Objekte zugreifen:

      var oRueckblick = [
          {
              "Datum":"16.07.23",
              "Ertrag":"40,4 kWh",
              "Einspeisung":"32,1 kWh",
              "Ladung":"3,6 kWh",
              "Deckung PV":"4,7 kWh",
              "Deckung Batterie":"1,6 kWh",
              "Deckung Netz":"0,2 kWh",
              "Gesamtverbrauch":"6,5 kWh"
          },
          {
              "Datum":"15.07.23",
              "Ertrag":"29,8 kWh",
              "Einspeisung":"23,0 kWh",
              "Ladung":"3,1 kWh",
              "Deckung PV":"3,7 kWh",
              "Deckung Batterie":"3,5 kWh",
              "Deckung Netz":"0,6 kWh",
              "Gesamtverbrauch":"7,8 kWh"
          },
          {},
          {},
          {},
          {},
          {}
      ]
      
      

      mit

      oRueckblick.shift();
      oRueckblick.push(newObj);
      

      mit shift - entfernst Du das erste Objekt mit push hängst Du ein neues dran. ;)

      Tabellen ARBEITEN grundsätzlich mit Arrays, die Objekte enthalten. Ein Arrayentrag entspricht einer Zeile, in den Objekten wird die Zuordnung zu den Spalten festgelegt.

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      M 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        @maddm Ich würde keine Objekte A-G nehmen, sondern ein einfaches Array mit Objekten.

        Über den Index kannst Du auf die einzelnen Objekte zugreifen:

        var oRueckblick = [
            {
                "Datum":"16.07.23",
                "Ertrag":"40,4 kWh",
                "Einspeisung":"32,1 kWh",
                "Ladung":"3,6 kWh",
                "Deckung PV":"4,7 kWh",
                "Deckung Batterie":"1,6 kWh",
                "Deckung Netz":"0,2 kWh",
                "Gesamtverbrauch":"6,5 kWh"
            },
            {
                "Datum":"15.07.23",
                "Ertrag":"29,8 kWh",
                "Einspeisung":"23,0 kWh",
                "Ladung":"3,1 kWh",
                "Deckung PV":"3,7 kWh",
                "Deckung Batterie":"3,5 kWh",
                "Deckung Netz":"0,6 kWh",
                "Gesamtverbrauch":"7,8 kWh"
            },
            {},
            {},
            {},
            {},
            {}
        ]
        
        

        mit

        oRueckblick.shift();
        oRueckblick.push(newObj);
        

        mit shift - entfernst Du das erste Objekt mit push hängst Du ein neues dran. ;)

        Tabellen ARBEITEN grundsätzlich mit Arrays, die Objekte enthalten. Ein Arrayentrag entspricht einer Zeile, in den Objekten wird die Zuordnung zu den Spalten festgelegt.

        M Offline
        M Offline
        Maddm
        schrieb am zuletzt editiert von
        #3

        @mickym
        Ok, Array of Objects statt Object macht Sinn, dann kann man mit Push + Shift einfach Objekte hinzufügen oder entfernen.
        Wobei statt shift (=Löschen erstes Element) eher pop (Löschen letztes Element) Sinn macht, ebenso fürs Hinzufügen eines neuen "ersten" Elements: unshift statt push.

        Meinst Du, dass das mit Blockly lösbar ist, oder schreibt man da nicht einfacher ein Script? Das habe ich bisher halt noch überhaupt nicht gemacht und ich kenne die ganzen iobroker-Spezifika nicht:
        (1) triggern um 23:59
        (2) lesen des aktuellen Datenpunkts (Array of objects)
        (3) dann löschen des letzten Elements im Array mit pop
        (4) Erstellung des Tages-Objekts und im Array an Position mit ushift
        (5) zurückschreiben des modifizierten Arrays

        Wie ich das Ganze dann in vis darstelle, da hab ich noch nicht geschaut, welches Widget dafür das Geeignete ist.

        mickymM 1 Antwort Letzte Antwort
        0
        • M Maddm

          @mickym
          Ok, Array of Objects statt Object macht Sinn, dann kann man mit Push + Shift einfach Objekte hinzufügen oder entfernen.
          Wobei statt shift (=Löschen erstes Element) eher pop (Löschen letztes Element) Sinn macht, ebenso fürs Hinzufügen eines neuen "ersten" Elements: unshift statt push.

          Meinst Du, dass das mit Blockly lösbar ist, oder schreibt man da nicht einfacher ein Script? Das habe ich bisher halt noch überhaupt nicht gemacht und ich kenne die ganzen iobroker-Spezifika nicht:
          (1) triggern um 23:59
          (2) lesen des aktuellen Datenpunkts (Array of objects)
          (3) dann löschen des letzten Elements im Array mit pop
          (4) Erstellung des Tages-Objekts und im Array an Position mit ushift
          (5) zurückschreiben des modifizierten Arrays

          Wie ich das Ganze dann in vis darstelle, da hab ich noch nicht geschaut, welches Widget dafür das Geeignete ist.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #4

          @maddm Das dürfte gehen.

          42cc9e23-2763-4d6c-af95-a0e95fd9518c-image.png

          Und auch wenn Blockly nicht gut mit Objekten umgehen kann, kannst Du Arrays mit Blockly bearbeiten.

          Da ich kein Puzzle-Freund bin - musst Du selbst suchen - ansonsten würde ich halt mit JSONATA arbeiten. ;)

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          M 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @maddm Das dürfte gehen.

            42cc9e23-2763-4d6c-af95-a0e95fd9518c-image.png

            Und auch wenn Blockly nicht gut mit Objekten umgehen kann, kannst Du Arrays mit Blockly bearbeiten.

            Da ich kein Puzzle-Freund bin - musst Du selbst suchen - ansonsten würde ich halt mit JSONATA arbeiten. ;)

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

            Ok, ich bin ein ganzes Stück weiter und glaube, dass das Blockly Script in Summe "fast" funktioniert.
            So sieht es aktuell aus (ist aktuell auf "alle 5 Minuten" zum Probieren gesetzt):
            4546cdf4-a905-49f4-9495-fe028687994c-image.png

            Der Output entspricht durchaus dem, wie ich es erwartet habe, allerdings kann das von @mickym genannte Widget die Daten noch nicht sauber als Tabelle darstellen. So sieht es aus, wenn ich nur die Objekt ID im Widget angebe:
            291deabe-2a37-40cb-a778-a4de15d1a657-image.png

            Gebe ich aber in den Eigenschaften den ersten Spaltenkopf an:
            dfdd4c4a-8865-42a9-820c-cfa727536dfb-image.png
            sieht es dann leider so aus:
            808a80db-1b4e-45fa-8468-2cba13e9830b-image.png

            Meine Vermutung ist, dass ich zu viele Hochkommas bei den Einträgen mache und dass damit das Ganze scheitert... wenn ich in den Datenpunkten drüber hovere sehe ich auch sehr viele escapte Hochkommas etc...
            fff12966-52ee-4274-82f9-1d8a75bd2e16-image.png

            Sieht jemand, wo ich noch nen Fehler mache?

            paul53P 1 Antwort Letzte Antwort
            0
            • M Maddm

              Ok, ich bin ein ganzes Stück weiter und glaube, dass das Blockly Script in Summe "fast" funktioniert.
              So sieht es aktuell aus (ist aktuell auf "alle 5 Minuten" zum Probieren gesetzt):
              4546cdf4-a905-49f4-9495-fe028687994c-image.png

              Der Output entspricht durchaus dem, wie ich es erwartet habe, allerdings kann das von @mickym genannte Widget die Daten noch nicht sauber als Tabelle darstellen. So sieht es aus, wenn ich nur die Objekt ID im Widget angebe:
              291deabe-2a37-40cb-a778-a4de15d1a657-image.png

              Gebe ich aber in den Eigenschaften den ersten Spaltenkopf an:
              dfdd4c4a-8865-42a9-820c-cfa727536dfb-image.png
              sieht es dann leider so aus:
              808a80db-1b4e-45fa-8468-2cba13e9830b-image.png

              Meine Vermutung ist, dass ich zu viele Hochkommas bei den Einträgen mache und dass damit das Ganze scheitert... wenn ich in den Datenpunkten drüber hovere sehe ich auch sehr viele escapte Hochkommas etc...
              fff12966-52ee-4274-82f9-1d8a75bd2e16-image.png

              Sieht jemand, wo ich noch nen Fehler mache?

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

              @maddm
              Vorschlag: Wandle das JSON in ein Objekt und arbeite mit Listen-Funktionen. Zum Schluss Wandlung der Liste in eine JSON-Liste.

              Blockly_temp.JPG

              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

                @maddm
                Vorschlag: Wandle das JSON in ein Objekt und arbeite mit Listen-Funktionen. Zum Schluss Wandlung der Liste in eine JSON-Liste.

                Blockly_temp.JPG

                M Offline
                M Offline
                Maddm
                schrieb am zuletzt editiert von Maddm
                #7

                Danke @paul53 , die Idee gefällt mir - da spare ich mir eine der Variablen (alteListe).

                Ich habs jetzt mal wie du gezeigt hast nachgebaut:
                9df81752-ce86-4995-85c4-0c399e8a4790-image.png
                aber im Datenpunkt (angelegt als Datenpunkt, Typ json) abgespeichert sind nur leere Objekte:
                0b9a9fff-d0ec-4107-983a-37372b4084b8-image.png
                Was aber geht: der Datenpunkt hat nie mehr als 7 Objekte.

                Das Log zeigt folgenden Output an:

                
                19:53:16.856	info	javascript.0 (1447) Stop script script.js.PV.PVRueckblick
                19:53:16.860	info	javascript.0 (1447) Start javascript script.js.PV.PVRueckblick
                19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=0_userdata.0.PV.Rueckblick.pvrueckblick, timerId=undefined) => {"val":"[{},{},{},{},{},{},{}]","ack":true,"ts":1689616361712,"q":0,"c":"script.js.PV.PVRueckblick","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1689616232866}
                19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: konvertierte neue Liste: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]7
                19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13001_Daily_PV_Generation, timerId=undefined) => {"val":43.4,"ack":true,"ts":1689616330375,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689616330375}
                19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13004_Daily_export__energy_from_PV, timerId=undefined) => {"val":30.4,"ack":true,"ts":1689614099904,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689614099904}
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13039_Daily_Charge_Energy, timerId=undefined) => {"val":5.6,"ack":true,"ts":1689604060863,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689604060863}
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13016_Daily_direct__Energy_Consumption, timerId=undefined) => {"val":7.4,"ack":true,"ts":1689616330380,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689616330380}
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13025_Daily_battery_discharge_Energy, timerId=undefined) => {"val":3.3,"ack":true,"ts":1689615277304,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689615277304}
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13035_Daily_Import_Energy, timerId=undefined) => {"val":0.2,"ack":true,"ts":1689575875353,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689575875353}
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=0_userdata.0.PV.Rueckblick.hausverbrauch, timerId=undefined) => {"val":10.9,"ack":true,"ts":1689616330388,"q":0,"c":"script.js.PV.Hausverbrauch","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1689616330388}
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: aktueller Tag: [object Object]
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: neue Liste: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]7
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: setForeignState(id=0_userdata.0.PV.Rueckblick.pvrueckblick, state={"val":"[{},{},{},{},{},{},{}]","ack":true,"ts":1689616396874,"q":0,"from":"system.adapter.javascript.0","lc":1689616232866,"c":"script.js.PV.PVRueckblick"})
                19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                
                

                Hinweis
                Da ich nicht weiß, wie der offiziell richtige Weg ist: da sich hier Blockly als tauglich erwiesen hat, wäre es schön, wenn ein Moderator den Thread ins Unterforum von Blockly schieben könnte.

                paul53P 2 Antworten Letzte Antwort
                0
                • M Maddm

                  Danke @paul53 , die Idee gefällt mir - da spare ich mir eine der Variablen (alteListe).

                  Ich habs jetzt mal wie du gezeigt hast nachgebaut:
                  9df81752-ce86-4995-85c4-0c399e8a4790-image.png
                  aber im Datenpunkt (angelegt als Datenpunkt, Typ json) abgespeichert sind nur leere Objekte:
                  0b9a9fff-d0ec-4107-983a-37372b4084b8-image.png
                  Was aber geht: der Datenpunkt hat nie mehr als 7 Objekte.

                  Das Log zeigt folgenden Output an:

                  
                  19:53:16.856	info	javascript.0 (1447) Stop script script.js.PV.PVRueckblick
                  19:53:16.860	info	javascript.0 (1447) Start javascript script.js.PV.PVRueckblick
                  19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=0_userdata.0.PV.Rueckblick.pvrueckblick, timerId=undefined) => {"val":"[{},{},{},{},{},{},{}]","ack":true,"ts":1689616361712,"q":0,"c":"script.js.PV.PVRueckblick","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1689616232866}
                  19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: konvertierte neue Liste: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]7
                  19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13001_Daily_PV_Generation, timerId=undefined) => {"val":43.4,"ack":true,"ts":1689616330375,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689616330375}
                  19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13004_Daily_export__energy_from_PV, timerId=undefined) => {"val":30.4,"ack":true,"ts":1689614099904,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689614099904}
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13039_Daily_Charge_Energy, timerId=undefined) => {"val":5.6,"ack":true,"ts":1689604060863,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689604060863}
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13016_Daily_direct__Energy_Consumption, timerId=undefined) => {"val":7.4,"ack":true,"ts":1689616330380,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689616330380}
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13025_Daily_battery_discharge_Energy, timerId=undefined) => {"val":3.3,"ack":true,"ts":1689615277304,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689615277304}
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13035_Daily_Import_Energy, timerId=undefined) => {"val":0.2,"ack":true,"ts":1689575875353,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689575875353}
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=0_userdata.0.PV.Rueckblick.hausverbrauch, timerId=undefined) => {"val":10.9,"ack":true,"ts":1689616330388,"q":0,"c":"script.js.PV.Hausverbrauch","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1689616330388}
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: aktueller Tag: [object Object]
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: neue Liste: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]7
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: setForeignState(id=0_userdata.0.PV.Rueckblick.pvrueckblick, state={"val":"[{},{},{},{},{},{},{}]","ack":true,"ts":1689616396874,"q":0,"from":"system.adapter.javascript.0","lc":1689616232866,"c":"script.js.PV.PVRueckblick"})
                  19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  
                  

                  Hinweis
                  Da ich nicht weiß, wie der offiziell richtige Weg ist: da sich hier Blockly als tauglich erwiesen hat, wäre es schön, wenn ein Moderator den Thread ins Unterforum von Blockly schieben könnte.

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

                  @maddm sagte: im Datenpunkt (angelegt als Datenpunkt, Typ json) abgespeichert sind nur leere Objekte:

                  Wenn man die Liste aus dem Datenpunkt erstellt, muss der Datenpunkt eine gültige JSON-Liste enthalten, was wahrscheinlich nicht der Fall ist. Deshalb lösche den Inhalt vom Datenpunkt und fange mit einer leeren Liste an.

                  Blockly_temp.JPG

                  Blockly_temp.JPG
                  Du verwendest "erstelle Text aus" mit einem Objekt. Das funktioniert nicht [object Object]. Man kann entweder nur das blanke Objekt ausgeben oder man muss das Objekt in ein JSON wandeln.

                  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 Maddm

                    Danke @paul53 , die Idee gefällt mir - da spare ich mir eine der Variablen (alteListe).

                    Ich habs jetzt mal wie du gezeigt hast nachgebaut:
                    9df81752-ce86-4995-85c4-0c399e8a4790-image.png
                    aber im Datenpunkt (angelegt als Datenpunkt, Typ json) abgespeichert sind nur leere Objekte:
                    0b9a9fff-d0ec-4107-983a-37372b4084b8-image.png
                    Was aber geht: der Datenpunkt hat nie mehr als 7 Objekte.

                    Das Log zeigt folgenden Output an:

                    
                    19:53:16.856	info	javascript.0 (1447) Stop script script.js.PV.PVRueckblick
                    19:53:16.860	info	javascript.0 (1447) Start javascript script.js.PV.PVRueckblick
                    19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=0_userdata.0.PV.Rueckblick.pvrueckblick, timerId=undefined) => {"val":"[{},{},{},{},{},{},{}]","ack":true,"ts":1689616361712,"q":0,"c":"script.js.PV.PVRueckblick","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1689616232866}
                    19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: konvertierte neue Liste: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]7
                    19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13001_Daily_PV_Generation, timerId=undefined) => {"val":43.4,"ack":true,"ts":1689616330375,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689616330375}
                    19:53:16.873	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13004_Daily_export__energy_from_PV, timerId=undefined) => {"val":30.4,"ack":true,"ts":1689614099904,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689614099904}
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13039_Daily_Charge_Energy, timerId=undefined) => {"val":5.6,"ack":true,"ts":1689604060863,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689604060863}
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13016_Daily_direct__Energy_Consumption, timerId=undefined) => {"val":7.4,"ack":true,"ts":1689616330380,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689616330380}
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13025_Daily_battery_discharge_Energy, timerId=undefined) => {"val":3.3,"ack":true,"ts":1689615277304,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689615277304}
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=modbus.0.inputRegisters.13035_Daily_Import_Energy, timerId=undefined) => {"val":0.2,"ack":true,"ts":1689575875353,"q":0,"from":"system.adapter.modbus.0","user":"system.user.admin","lc":1689575875353}
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: getState(id=0_userdata.0.PV.Rueckblick.hausverbrauch, timerId=undefined) => {"val":10.9,"ack":true,"ts":1689616330388,"q":0,"c":"script.js.PV.Hausverbrauch","from":"system.adapter.javascript.0","user":"system.user.admin","lc":1689616330388}
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: aktueller Tag: [object Object]
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: neue Liste: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]7
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: setForeignState(id=0_userdata.0.PV.Rueckblick.pvrueckblick, state={"val":"[{},{},{},{},{},{},{}]","ack":true,"ts":1689616396874,"q":0,"from":"system.adapter.javascript.0","lc":1689616232866,"c":"script.js.PV.PVRueckblick"})
                    19:53:16.874	info	javascript.0 (1447) script.js.PV.PVRueckblick: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    
                    

                    Hinweis
                    Da ich nicht weiß, wie der offiziell richtige Weg ist: da sich hier Blockly als tauglich erwiesen hat, wäre es schön, wenn ein Moderator den Thread ins Unterforum von Blockly schieben könnte.

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

                    @maddm sagte: nur leere Objekte:

                    Habe es mal getestet: Das Problem ist, dass das Datum nicht JSON-konform eingetragen wird. So funktioniert es:

                    Blockly_temp.JPG

                    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

                      @maddm sagte: nur leere Objekte:

                      Habe es mal getestet: Das Problem ist, dass das Datum nicht JSON-konform eingetragen wird. So funktioniert es:

                      Blockly_temp.JPG

                      M Offline
                      M Offline
                      Maddm
                      schrieb am zuletzt editiert von
                      #10

                      @paul53 said in täglich neu erstelltes Array mit Tagesinfos einer PV Anlage:

                      @maddm sagte: nur leere Objekte:

                      Habe es mal getestet: Das Problem ist, dass das Datum nicht JSON-konform eingetragen wird. So funktioniert es:

                      Blockly_temp.JPG

                      Richtig, das war der Fehler - ich muss auch die Werte in Hochkommas setzten, jetzt passt es und sieht auch in Summe schön aus.
                      Danke für alle die geholfen haben :)

                      3b3ae106-c3d8-42f5-9d45-3c255a59e629-image.png

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • M Maddm

                        @paul53 said in täglich neu erstelltes Array mit Tagesinfos einer PV Anlage:

                        @maddm sagte: nur leere Objekte:

                        Habe es mal getestet: Das Problem ist, dass das Datum nicht JSON-konform eingetragen wird. So funktioniert es:

                        Blockly_temp.JPG

                        Richtig, das war der Fehler - ich muss auch die Werte in Hochkommas setzten, jetzt passt es und sieht auch in Summe schön aus.
                        Danke für alle die geholfen haben :)

                        3b3ae106-c3d8-42f5-9d45-3c255a59e629-image.png

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

                        @maddm sagte: ich muss auch die Werte in Hochkommas setzten

                        Wenn es Zahlen sind, ist es nicht nötig.

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


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        599

                        Online

                        32.4k

                        Benutzer

                        81.5k

                        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