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. Einsteigerfragen
  4. Automatisierung
  5. Daten zeitweise addieren

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    481

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Daten zeitweise addieren

Geplant Angeheftet Gesperrt Verschoben Ungelöst Automatisierung
54 Beiträge 4 Kommentatoren 3.3k 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.
  • J Jonny 0

    @mickym
    Nein, das ist nicht richtig, ich glaube wir reden aneinander vorbei.

    Ich pumpe von jetzt an konstant 1200 W in den Speicher. Sind ja 1,2 KW in einer Std.
    Dann ändert sich der Wert vom Input ja alle paar Sekunden, da ja auch mit 0,00 KWh gearbeitet wird.
    Rechnerisch müsste er mir ja dann jetzt hier grob gelistet anzeigen:

    Dauer in Min Input
    5 = 0,1 KW
    10 = 0,2 KW
    15 = 0,3 KW usw.

    Jetzt entnehme ich wieder zwischendrin eine gewisse Menge (EXPORT).
    Dann scheint die Sonne wieder und er wird mit 3000 KW geladen.....usw

    Deshalb kommen die Zahlen ja auch fast in Echtzeit.

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #35

    @jonny-0 OK - ist sowas wie Momentanverbrauch oder Momentaneinspeisung und das muss auf Zeiteinheit runtergerechnet werden?

    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.

    HomoranH 1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @jonny-0 OK - ist sowas wie Momentanverbrauch oder Momentaneinspeisung und das muss auf Zeiteinheit runtergerechnet werden?

      HomoranH Offline
      HomoranH Offline
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von Homoran
      #36

      @mickym ich hab immer noch nicht verstanden was er will!
      wenn der interne Zähler um Mitternacht nullt hat man doch am Tagesende die insgesamt eingeladene und insgesamt entnommene Menge (in kWh).
      was fehlt denn dann? Ladezustand ist doch auch da. die Entlade-/Ladeleistung in kW?

      das wäre in (blockly) (aktueller Wert-vorheriger Wert):(Timestamp-vorheriger Timestamp)

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      mickymM J 2 Antworten Letzte Antwort
      0
      • HomoranH Homoran

        @mickym ich hab immer noch nicht verstanden was er will!
        wenn der interne Zähler um Mitternacht nullt hat man doch am Tagesende die insgesamt eingeladene und insgesamt entnommene Menge (in kWh).
        was fehlt denn dann? Ladezustand ist doch auch da. die Entlade-/Ladeleistung in kW?

        das wäre in (blockly) (aktueller Wert-vorheriger Wert):(Timestamp-vorheriger Timestamp)

        mickymM Offline
        mickymM Offline
        mickym
        Most Active
        schrieb am zuletzt editiert von
        #37

        @homoran Ja genau verstehe ich es leider auch nicht. Ich kann mir nur vorstellen, weil ich bei den Shellies mal so ein Problem mit der internen Aufsummierung hatte, dass ich immer den Momentanverbrauch dann genommen habe und den bei jeder Meldung mit dem Zeitinterval abgeglichen hatte und diesen Wert dann aufsummiert hatte. Das war genauer. Aber wenn er das fix und fertig bekommt, warum sollte man es dann nochmal neu machen bzw. man könnte auch Zählerstände dann einfach zwischenspeichern zu definierten Zeitpunkten (Tageswechsel etc).

        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.

        J 1 Antwort Letzte Antwort
        1
        • HomoranH Homoran

          @mickym ich hab immer noch nicht verstanden was er will!
          wenn der interne Zähler um Mitternacht nullt hat man doch am Tagesende die insgesamt eingeladene und insgesamt entnommene Menge (in kWh).
          was fehlt denn dann? Ladezustand ist doch auch da. die Entlade-/Ladeleistung in kW?

          das wäre in (blockly) (aktueller Wert-vorheriger Wert):(Timestamp-vorheriger Timestamp)

          J Offline
          J Offline
          Jonny 0
          schrieb am zuletzt editiert von
          #38

          @homoran
          Am Tagesende......und was ist dazwischen?
          Payload.JPG

          Schau dir mal den Payload im Screen an.
          So kommt es aus der alten Wallbox.
          Das Problem die gibt es nicht mehr lange, bzw. bringt mir nichts mehr, da man mit der nur eine PV und einen Speicher verwalten kann.
          Bei der werden die Werte ja auch hochgerechnen und natürlich direkt angezeigt.

          HomoranH 1 Antwort Letzte Antwort
          0
          • J Jonny 0

            @homoran
            Am Tagesende......und was ist dazwischen?
            Payload.JPG

            Schau dir mal den Payload im Screen an.
            So kommt es aus der alten Wallbox.
            Das Problem die gibt es nicht mehr lange, bzw. bringt mir nichts mehr, da man mit der nur eine PV und einen Speicher verwalten kann.
            Bei der werden die Werte ja auch hochgerechnen und natürlich direkt angezeigt.

            HomoranH Offline
            HomoranH Offline
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #39

            @jonny-0 sagte in Daten zeitweise addieren:

            Am Tagesende......und was ist dazwischen?

            tue dir mal selbst einen Gefallen.
            formuliere das gewünschte mal sorgfältig und strukturiert.
            Wahrscheinlich fällt dir dann schon selber die Lösung ein.

            Aber mit diesen Halbsätzen hilft das einem Außenstehenden kein bischen das zu verstehen von dem du bereits alle Informationen hast, wir aber nicht

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            J 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @homoran Ja genau verstehe ich es leider auch nicht. Ich kann mir nur vorstellen, weil ich bei den Shellies mal so ein Problem mit der internen Aufsummierung hatte, dass ich immer den Momentanverbrauch dann genommen habe und den bei jeder Meldung mit dem Zeitinterval abgeglichen hatte und diesen Wert dann aufsummiert hatte. Das war genauer. Aber wenn er das fix und fertig bekommt, warum sollte man es dann nochmal neu machen bzw. man könnte auch Zählerstände dann einfach zwischenspeichern zu definierten Zeitpunkten (Tageswechsel etc).

              J Offline
              J Offline
              Jonny 0
              schrieb am zuletzt editiert von
              #40

              @mickym
              So in etwa könnte es bei mir auch funktionieren.

              Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
              Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

              Das zusammenzählen von den Payloadwerten, habe ich realisiert, leider zählt er unendlich weiter.
              Wenn ich das Ding irgendwie um 0.00 auf Neuanfang setzen könnte wäre schon das Ziel.

              msg.payload = (flow.get("import") || 0) + msg.payload;
              //msg.payload = msg.payload ;
              flow.set("import", msg.payload);
              return msg;

              mickymM 2 Antworten Letzte Antwort
              0
              • HomoranH Homoran

                @jonny-0 sagte in Daten zeitweise addieren:

                Am Tagesende......und was ist dazwischen?

                tue dir mal selbst einen Gefallen.
                formuliere das gewünschte mal sorgfältig und strukturiert.
                Wahrscheinlich fällt dir dann schon selber die Lösung ein.

                Aber mit diesen Halbsätzen hilft das einem Außenstehenden kein bischen das zu verstehen von dem du bereits alle Informationen hast, wir aber nicht

                J Offline
                J Offline
                Jonny 0
                schrieb am zuletzt editiert von
                #41

                @homoran

                Sorry, ich bin leider nicht sehr gut im erklären.

                vielleicht ist es durch den obigen post verständlicher.

                HomoranH 1 Antwort Letzte Antwort
                0
                • J Jonny 0

                  @homoran

                  Sorry, ich bin leider nicht sehr gut im erklären.

                  vielleicht ist es durch den obigen post verständlicher.

                  HomoranH Offline
                  HomoranH Offline
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #42

                  @jonny-0 sagte in Daten zeitweise addieren:

                  ich bin leider nicht sehr gut im erklären.

                  das habe ich gemerkt :blush:

                  @jonny-0 sagte in Daten zeitweise addieren:

                  vielleicht ist es durch den obigen post verständlicher.

                  leider nein.

                  also schritt für Schritt:

                  Vielleicht versteckt sich hier etwas wichtiges
                  @jonny-0 sagte in Daten zeitweise addieren:

                  Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.

                  was hat die Wallbox mit der Batterie zu tun?
                  und wovon der Mittelwert der letzten 3 Sekunden?
                  WENN die Batterie bereits maximal entlädt ergibt es doch keinen Sinn die gleiche Menge noch ins Auto zu laden :thinking_face:

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  J 1 Antwort Letzte Antwort
                  0
                  • J Jonny 0

                    @mickym
                    So in etwa könnte es bei mir auch funktionieren.

                    Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
                    Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

                    Das zusammenzählen von den Payloadwerten, habe ich realisiert, leider zählt er unendlich weiter.
                    Wenn ich das Ding irgendwie um 0.00 auf Neuanfang setzen könnte wäre schon das Ziel.

                    msg.payload = (flow.get("import") || 0) + msg.payload;
                    //msg.payload = msg.payload ;
                    flow.set("import", msg.payload);
                    return msg;

                    mickymM Offline
                    mickymM Offline
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #43

                    @jonny-0 sagte in Daten zeitweise addieren:

                    @mickym
                    So in etwa könnte es bei mir auch funktionieren.

                    Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
                    Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

                    Das zusammenzählen von den Payloadwerten, habe ich realisiert, leider zählt er unendlich weiter.
                    Wenn ich das Ding irgendwie um 0.00 auf Neuanfang setzen könnte wäre schon das Ziel.

                    msg.payload = (flow.get("import") || 0) + msg.payload;
                    //msg.payload = msg.payload ;
                    flow.set("import", msg.payload);
                    return msg;

                    Du speist einfach ein msg.reset = true ein und setzt auf 0.

                    msg.payload = (context.get("import") || 0) + msg.payload;
                    //msg.payload = msg.payload ;
                    if (msg.reset) msg.payload = 0;
                    context.set("import", msg.payload);
                    return msg;
                    

                    Dazu könntest Du eine Inject Node bemühen:

                    e17d5bd1-28c0-470d-a866-5a4d7b9fe4ca-image.png
                    04ecef71-f044-4670-a678-433a427a4e44-image.png

                    Das kannst aber im context machen, da brauchst den Flow nicht.

                    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.

                    HomoranH J 2 Antworten Letzte Antwort
                    0
                    • mickymM mickym

                      @jonny-0 sagte in Daten zeitweise addieren:

                      @mickym
                      So in etwa könnte es bei mir auch funktionieren.

                      Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
                      Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

                      Das zusammenzählen von den Payloadwerten, habe ich realisiert, leider zählt er unendlich weiter.
                      Wenn ich das Ding irgendwie um 0.00 auf Neuanfang setzen könnte wäre schon das Ziel.

                      msg.payload = (flow.get("import") || 0) + msg.payload;
                      //msg.payload = msg.payload ;
                      flow.set("import", msg.payload);
                      return msg;

                      Du speist einfach ein msg.reset = true ein und setzt auf 0.

                      msg.payload = (context.get("import") || 0) + msg.payload;
                      //msg.payload = msg.payload ;
                      if (msg.reset) msg.payload = 0;
                      context.set("import", msg.payload);
                      return msg;
                      

                      Dazu könntest Du eine Inject Node bemühen:

                      e17d5bd1-28c0-470d-a866-5a4d7b9fe4ca-image.png
                      04ecef71-f044-4670-a678-433a427a4e44-image.png

                      Das kannst aber im context machen, da brauchst den Flow nicht.

                      HomoranH Offline
                      HomoranH Offline
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #44

                      @mickym oder soll das ein Schieberegister für einen gleitenden Mittelwert werden?

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • HomoranH Homoran

                        @mickym oder soll das ein Schieberegister für einen gleitenden Mittelwert werden?

                        mickymM Offline
                        mickymM Offline
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #45

                        @homoran Na das gleitende ist das Problem. Dann musst Du wirklich mit festen Zeitintervallen die Werte einspeisen und dann hast Du eine festdefinierte Arraygröße. Wenn diese erreicht wird, wird oben ein Wert hinzugefügt und unten einer entfernt. da war ich selbst dabei, die aggregator Node zu nehmen und die entsprechend zu erweitern - dann hab ich aber die Lust verloren. ;)

                        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.

                        1 Antwort Letzte Antwort
                        0
                        • HomoranH Homoran

                          @jonny-0 sagte in Daten zeitweise addieren:

                          ich bin leider nicht sehr gut im erklären.

                          das habe ich gemerkt :blush:

                          @jonny-0 sagte in Daten zeitweise addieren:

                          vielleicht ist es durch den obigen post verständlicher.

                          leider nein.

                          also schritt für Schritt:

                          Vielleicht versteckt sich hier etwas wichtiges
                          @jonny-0 sagte in Daten zeitweise addieren:

                          Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.

                          was hat die Wallbox mit der Batterie zu tun?
                          und wovon der Mittelwert der letzten 3 Sekunden?
                          WENN die Batterie bereits maximal entlädt ergibt es doch keinen Sinn die gleiche Menge noch ins Auto zu laden :thinking_face:

                          J Offline
                          J Offline
                          Jonny 0
                          schrieb am zuletzt editiert von
                          #46

                          @homoran said in Daten zeitweise addieren:

                          @jonny-0 sagte in Daten zeitweise addieren:

                          ich bin leider nicht sehr gut im erklären.

                          das habe ich gemerkt :blush:

                          @jonny-0 sagte in Daten zeitweise addieren:

                          vielleicht ist es durch den obigen post verständlicher.

                          leider nein.

                          also schritt für Schritt:

                          Vielleicht versteckt sich hier etwas wichtiges
                          @jonny-0 sagte in Daten zeitweise addieren:

                          Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.

                          was hat die Wallbox mit der Batterie zu tun? --> Die Wallbox verwaltet hier das ganze Smarthome.
                          und wovon der Mittelwert der letzten 3 Sekunden?--> von dem import und dem export.
                          WENN die Batterie bereits maximal entlädt ergibt es doch keinen Sinn die gleiche Menge noch ins Auto zu laden :thinking_face:

                          Warum nicht ? Es kann doch auch sein das von der PV 10 KW kommen und ich mit 13 laden tu. ( max entladen Speicher)

                          HomoranH 1 Antwort Letzte Antwort
                          0
                          • J Jonny 0

                            @mickym
                            So in etwa könnte es bei mir auch funktionieren.

                            Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
                            Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

                            Das zusammenzählen von den Payloadwerten, habe ich realisiert, leider zählt er unendlich weiter.
                            Wenn ich das Ding irgendwie um 0.00 auf Neuanfang setzen könnte wäre schon das Ziel.

                            msg.payload = (flow.get("import") || 0) + msg.payload;
                            //msg.payload = msg.payload ;
                            flow.set("import", msg.payload);
                            return msg;

                            mickymM Offline
                            mickymM Offline
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von mickym
                            #47

                            @jonny-0 sagte in Daten zeitweise addieren:

                            Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
                            Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

                            Das mit den 30s sammeln und den Mittelwert zu bilden, das würde ich dann aber der Aggregator Node überlassen und dann hast Du auch definierte Zeitintervalle.

                            Bei Tageswerten wäre das Array dann 2880 Elemente (24x60x2) groß und dann kann man es füllen und hätte einen gleitenden Tageswert. Dann wäre es streng genommen auch kein Tageswert sondern die letzten 24 Std. ;)

                            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.

                            1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              @jonny-0 sagte in Daten zeitweise addieren:

                              @mickym
                              So in etwa könnte es bei mir auch funktionieren.

                              Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.
                              Dann sammeln wir wieder 30 sekunden, und addieren den neuen Mittelwert auf den vorigen auf.

                              Das zusammenzählen von den Payloadwerten, habe ich realisiert, leider zählt er unendlich weiter.
                              Wenn ich das Ding irgendwie um 0.00 auf Neuanfang setzen könnte wäre schon das Ziel.

                              msg.payload = (flow.get("import") || 0) + msg.payload;
                              //msg.payload = msg.payload ;
                              flow.set("import", msg.payload);
                              return msg;

                              Du speist einfach ein msg.reset = true ein und setzt auf 0.

                              msg.payload = (context.get("import") || 0) + msg.payload;
                              //msg.payload = msg.payload ;
                              if (msg.reset) msg.payload = 0;
                              context.set("import", msg.payload);
                              return msg;
                              

                              Dazu könntest Du eine Inject Node bemühen:

                              e17d5bd1-28c0-470d-a866-5a4d7b9fe4ca-image.png
                              04ecef71-f044-4670-a678-433a427a4e44-image.png

                              Das kannst aber im context machen, da brauchst den Flow nicht.

                              J Offline
                              J Offline
                              Jonny 0
                              schrieb am zuletzt editiert von
                              #48

                              @mickym

                              Das könnte echt funktionieren.....

                              Werde das versuchen.
                              Addiert mir alle payloads auf, und setzt es um 0.00 Uhr zurück auf 0.

                              Das wäre die allereinfachste Lösung......

                              Ich berichte....:clap: :clap: :clap: :clap:

                              1 Antwort Letzte Antwort
                              0
                              • J Jonny 0

                                @homoran said in Daten zeitweise addieren:

                                @jonny-0 sagte in Daten zeitweise addieren:

                                ich bin leider nicht sehr gut im erklären.

                                das habe ich gemerkt :blush:

                                @jonny-0 sagte in Daten zeitweise addieren:

                                vielleicht ist es durch den obigen post verständlicher.

                                leider nein.

                                also schritt für Schritt:

                                Vielleicht versteckt sich hier etwas wichtiges
                                @jonny-0 sagte in Daten zeitweise addieren:

                                Es kommt alle 3 sekunden ein Wert, den sammeln und nach 30 secunden den mittelwert aller auf die WB schieben.

                                was hat die Wallbox mit der Batterie zu tun? --> Die Wallbox verwaltet hier das ganze Smarthome.
                                und wovon der Mittelwert der letzten 3 Sekunden?--> von dem import und dem export.
                                WENN die Batterie bereits maximal entlädt ergibt es doch keinen Sinn die gleiche Menge noch ins Auto zu laden :thinking_face:

                                Warum nicht ? Es kann doch auch sein das von der PV 10 KW kommen und ich mit 13 laden tu. ( max entladen Speicher)

                                HomoranH Offline
                                HomoranH Offline
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #49

                                @jonny-0 sagte in Daten zeitweise addieren:

                                Warum nicht ? Es kann doch auch sein das von der PV 10 KW kommen und ich mit 13 laden tu. ( max entladen Speicher)

                                aber das regelt doch dann die Batteriesteuerung.
                                ich raff es nicht was du willst.

                                dann ist abends die Batterie leer und du kannst dann in der Nacht Strom kaufen.

                                und jetzt OT
                                @jonny-0 sagte in Daten zeitweise addieren:

                                Ich habe einen Varta Elements

                                die dürfen/können doch höchstens 5kW abgeben.

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                J 1 Antwort Letzte Antwort
                                0
                                • HomoranH Homoran

                                  @jonny-0 sagte in Daten zeitweise addieren:

                                  Warum nicht ? Es kann doch auch sein das von der PV 10 KW kommen und ich mit 13 laden tu. ( max entladen Speicher)

                                  aber das regelt doch dann die Batteriesteuerung.
                                  ich raff es nicht was du willst.

                                  dann ist abends die Batterie leer und du kannst dann in der Nacht Strom kaufen.

                                  und jetzt OT
                                  @jonny-0 sagte in Daten zeitweise addieren:

                                  Ich habe einen Varta Elements

                                  die dürfen/können doch höchstens 5kW abgeben.

                                  J Offline
                                  J Offline
                                  Jonny 0
                                  schrieb am zuletzt editiert von Jonny 0
                                  #50

                                  @homoran

                                  warum ist der Akku dann abend leer wenn er sich nach dem entladen wieder aufladen kann.
                                  Egal. Ich bekomme jetzt noch einen 100 KW Speicher dazu, der 250kw abgeben kann also auch dc schnellladen möglich.
                                  Auch bekomme ich noch eine weitere PV Anlage hinzu.
                                  Dies ist bzw. wir eine Anschauanlage von einem Startup unternehmen.
                                  (Habe ja nicht im Lotto gewonnen)

                                  Wie gesagt muss ich diesen umweg gehen, da die jetzige Version der WB nicht mehr als 1 Speicher und auch eine PV kann.

                                  Bei mir regelt die Batteriesteuerung nichts. die gibt ab wenn gefordert wird und nimmt auf wenn ich übrig lasse, was ich auch in der WB einstellen kann.

                                  HomoranH 1 Antwort Letzte Antwort
                                  0
                                  • J Jonny 0

                                    @homoran

                                    warum ist der Akku dann abend leer wenn er sich nach dem entladen wieder aufladen kann.
                                    Egal. Ich bekomme jetzt noch einen 100 KW Speicher dazu, der 250kw abgeben kann also auch dc schnellladen möglich.
                                    Auch bekomme ich noch eine weitere PV Anlage hinzu.
                                    Dies ist bzw. wir eine Anschauanlage von einem Startup unternehmen.
                                    (Habe ja nicht im Lotto gewonnen)

                                    Wie gesagt muss ich diesen umweg gehen, da die jetzige Version der WB nicht mehr als 1 Speicher und auch eine PV kann.

                                    Bei mir regelt die Batteriesteuerung nichts. die gibt ab wenn gefordert wird und nimmt auf wenn ich übrig lasse, was ich auch in der WB einstellen kann.

                                    HomoranH Offline
                                    HomoranH Offline
                                    Homoran
                                    Global Moderator Administrators
                                    schrieb am zuletzt editiert von Homoran
                                    #51

                                    @jonny-0 sagte in Daten zeitweise addieren:

                                    warum ist der Akku dann abend leer wenn er sich nach dem entladen wieder aufladen kann.

                                    weil das Auto erst bei Sonnenuntergang voll ist :-)

                                    @jonny-0 sagte in Daten zeitweise addieren:

                                    Ich bekomme jetzt noch einen 100 KW Speicher dazu, der 250kw abgeben kann also auch dc schnellladen möglich.

                                    100 kWh?
                                    mit 250 kW Leistungsabgabe? also 2.5C? sicher? Aber dann definitiv nicht von Varta., die dürfen nur mit 0.25C belastet werden. Sonst können die ihre Spezifikationen (Kapazität/Zyklenzahl) nicht garantieren.
                                    und ich kenne nur eine Batterie die so hohe Leistungsabgabe und trotzdem hohe Zyklenzahlen erreicht. Und die wird nur von Bastlern verbaut.
                                    Üblich sind deshalb im Moment 0.5C als Kompromiss

                                    @jonny-0 sagte in Daten zeitweise addieren:

                                    Bei mir regelt die Batteriesteuerung nichts. die gibt ab wenn gefordert wird und nimmt auf wenn ich übrig lasse

                                    naja, das ist die Regelung

                                    aber genug OT

                                    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                    J 1 Antwort Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      @jonny-0 sagte in Daten zeitweise addieren:

                                      warum ist der Akku dann abend leer wenn er sich nach dem entladen wieder aufladen kann.

                                      weil das Auto erst bei Sonnenuntergang voll ist :-)

                                      @jonny-0 sagte in Daten zeitweise addieren:

                                      Ich bekomme jetzt noch einen 100 KW Speicher dazu, der 250kw abgeben kann also auch dc schnellladen möglich.

                                      100 kWh?
                                      mit 250 kW Leistungsabgabe? also 2.5C? sicher? Aber dann definitiv nicht von Varta., die dürfen nur mit 0.25C belastet werden. Sonst können die ihre Spezifikationen (Kapazität/Zyklenzahl) nicht garantieren.
                                      und ich kenne nur eine Batterie die so hohe Leistungsabgabe und trotzdem hohe Zyklenzahlen erreicht. Und die wird nur von Bastlern verbaut.
                                      Üblich sind deshalb im Moment 0.5C als Kompromiss

                                      @jonny-0 sagte in Daten zeitweise addieren:

                                      Bei mir regelt die Batteriesteuerung nichts. die gibt ab wenn gefordert wird und nimmt auf wenn ich übrig lasse

                                      naja, das ist die Regelung

                                      aber genug OT

                                      J Offline
                                      J Offline
                                      Jonny 0
                                      schrieb am zuletzt editiert von
                                      #52

                                      @homoran

                                      Ich berichte gerne über den neuen Speicher wenn gewünscht.
                                      Nein es ist kein Varta.
                                      Ja, meine Daten oben mit 250KW laden und auch entladen sind richtig.
                                      Weshalb ich ja auch einen 90 DC Schnelllader bekomme....

                                      Ich teste jetzt ob das so einfach funktioniert mit einem Inject Node.
                                      Wäre genial gelöst.

                                      Ich berichte..

                                      Danke an alle und noch einen schönen Restabend...

                                      1 Antwort Letzte Antwort
                                      0
                                      • mickymM Offline
                                        mickymM Offline
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von mickym
                                        #53

                                        Also ich habe meinen alten Flow gefunden - der würde Dir aber nichts helfen, da Du ja glaub ohne den iobroker arbeitest. Ich bin mir auch nicht mehr ganz sicher, ob es wirklich fehlerfrei gearbeitet hat, aber der Vollständigkeit will ich ihn mal posten:

                                        Wie @Homoran schrieb ist das nicht banal:

                                        31851e08-8fab-4662-a868-f3bc7316f646-image.png

                                        Allerdings müsste ich mir das genau wieder anschauen, wie es funktioniert. ;)

                                        Wenn man den Baum so gebaut hatte - wurde die gesamte Datenpunkte so erstellt, wenn man reset auf true gesetzt hatte:

                                        c145044b-8111-4382-b1d8-1b30c1e6bd52-image.png

                                        932c0882-d09b-4390-b258-80088220fe40-image.png

                                        Das Herzstück war den Momentanverbrauch halt auf Wh umzurechnen, wie

                                        @homoran sagte in Daten zeitweise addieren:

                                        @mickym ich hab immer noch nicht verstanden was er will!
                                        wenn der interne Zähler um Mitternacht nullt hat man doch am Tagesende die insgesamt eingeladene und insgesamt entnommene Menge (in kWh).
                                        was fehlt denn dann? Ladezustand ist doch auch da. die Entlade-/Ladeleistung in kW?

                                        das wäre in (blockly) (aktueller Wert-vorheriger Wert):(Timestamp-vorheriger Timestamp)

                                        hier erwähnte.

                                        Das war damals im Topic des Kontextes ermittelt in der Node Aktuelle Wh

                                        var lasttime = context.get(msg.topic);
                                        var timespan;
                                        
                                        if (lasttime === undefined) {
                                            lasttime = msg.timestamp;
                                            context.set(msg.topic,lasttime);
                                            return null;
                                        }
                                        
                                        timespan = msg.timestamp - lasttime;
                                        lasttime = msg.timestamp;
                                        context.set(msg.topic,lasttime);
                                        msg.Wh=msg.power*(timespan/1000/60/60);
                                        
                                        return msg;
                                        

                                        Im Prinzip wurden dann die aktuellen Wh in alle Datenpunkte addiert. Sobald eine Zeitperiode beendet war (wurde genullt und der Wert in die vorherige Periode kopiert.

                                        da war der trigger - das war damals auch in einer function Node gemacht:

                                        const sec = 1000;
                                        const min = sec * 60;
                                        const hour = min * 60;
                                        const day = hour * 24;
                                        const week = day * 7;
                                        const month = day * 30.4375;
                                        const year = month * 12;
                                        var ts = new Date().getTime();
                                        var bUpdate = false;
                                        // msg.topic = msg.topic.replace(/(.*)\.use_time_date/,"$1");
                                        // var device = msg.topic.replace(/.*shellies\.(.*)/,"$1");
                                        var device = msg.device;
                                        
                                        var timespan = context.get(device)
                                        if (timespan === undefined) {
                                            
                                            // node.warn ('device: ' + device);
                                            // node.warn ('msg.start.timespan: ' + JSON.stringify(msg.start.timespan));
                                            timespan = msg.start.timespan;
                                            context.set(device,timespan); 
                                            // node.warn ('timespan = defined');
                                            return [null,null]
                                            
                                        }
                                        
                                        var addValues = [];
                                        // var resetValues = [];
                                        var msgStart = {topic: msg.topic + '.start', payload: msg.start}
                                        
                                        var topiclist="hour,month,today,total,week,year";
                                        var topics = topiclist.split(",");
                                        
                                        // node.warn ('device: ' + device);
                                        for (var w in topics) {
                                            var diff = 0;
                                            switch(topics[w]) {
                                                case 'hour':
                                                    // code block
                                                    diff= Math.trunc((ts - msg.start.ts) / hour);
                                                    // node.warn ('const hour: ' + hour);
                                                    // hours: timespan.hour
                                                    if (diff > timespan.hour){
                                                        bUpdate = true;
                                                        timespan.hour=diff;
                                        
                                                        addValues.push({topic: msg.topic + '.hour', payload: 0 , newTopic: msg.topic + '.hour_before' , start: msg.start.ts , ts: ts , hours: diff, comment: diff + ' hours since start' });
                                                    }
                                                    break;
                                                case 'month':
                                                    // code block
                                                    diff= Math.trunc((ts - msg.start.ts) / month);
                                                    // node.warn ('const month: ' + month);
                                                    // months: timespan.month
                                                    if (diff > timespan.month){
                                                        bUpdate = true;
                                                        timespan.month=diff;
                                        
                                                        addValues.push({topic: msg.topic + '.month', payload: 0 , newTopic: msg.topic + '.month_before', start: msg.start.ts , ts: ts , months: diff, comment: diff + ' months since start' });
                                                    }
                                                    break;
                                                case 'today':
                                                    // code block
                                                    diff= Math.trunc((ts - msg.start.ts) / day);
                                                    // node.warn ('const day: ' + day);
                                                    // days: timespan.day
                                                    if (diff > timespan.day){
                                                        bUpdate = true;
                                                        timespan.day=diff;
                                        
                                                        addValues.push({topic: msg.topic + '.today', payload: 0 , newTopic: msg.topic + '.yesterday' , start: msg.start.ts , ts: ts , days: diff, comment: diff + ' days since start'});
                                                    }
                                                    break;
                                                case 'total':
                                                    // code block - nichts machen - gibt nichts zum Zurücksetzen
                                                    break;
                                                case 'week':
                                                    // code block
                                                    diff= Math.trunc((ts - msg.start.ts) / week);
                                                    // node.warn ('const week: ' + week);
                                                    // weeks: timespan.week
                                                    if (diff > timespan.week){
                                                        bUpdate = true;
                                                        timespan.week=diff;
                                        
                                                        addValues.push({topic: msg.topic + '.week', payload: 0 , newTopic: msg.topic + '.week_before' , start: msg.start.ts , ts: ts , weeks: diff, comment: diff + ' weeks since start' });
                                                    }
                                                    break;
                                                case 'year':
                                                    // code block
                                                    diff= Math.trunc((ts - msg.start.ts) / year);
                                                    // if (diff > 0 ) { node.warn(' -> ts: ' + ts + ' -> msg.start.ts: ' + msg.start.ts + ' -> (ts - msg.start.ts) / year: ' + ((ts - msg.start.ts) / year))}
                                                    // node.warn ('const year: ' + year);
                                                    // years: timespan.hour
                                                    if (diff > timespan.year){
                                                        bUpdate = true;
                                                        timespan.year=diff;
                                        
                                                        addValues.push({topic: msg.topic + '.year', payload: 0 , newTopic: msg.topic + '.year_before', start: msg.start.ts , ts: ts , years: diff, comment: diff + ' years since start'});
                                                    }
                                                    break;
                                                    
                                                default:
                                                    // code block
                                            }   
                                        }
                                        
                                        // bUpdate = true;
                                        
                                        if (bUpdate){
                                            context.set(device,timespan);
                                            msgStart.payload.timespan = timespan;
                                            return [ addValues,  msgStart ];
                                        }
                                        
                                        
                                        // outputMsgs.push({topic:msg.topic + '/' + topics[w], Wh: msg.Wh});
                                        

                                        Ich hab den Flow mal exportiert - aber wie gesagt, da muss man sich wieder reinfuchsen. In den power Datenpunkt muss der Momentanverbrauch aus der Originalquelle kopiert werden. Im Detail müsste man sich gerade die function Node nochmal anschauen. Ursprünglich wollte ich das sowohl für DAUER als auch für KALENDER also bei Tageswechsel machen. Im Moment wird es wirklich nach DAUER gemacht und nicht nach Kalender. Sprich der Tag zählt genau bei Start 24 Std. Die 2. Option ist eigentlich einfacher - aber wie gesagt, ich hab mich dann nicht mehr damit beschäftigt. Manchmal vergeht einem die Lust - obwohl es sicherlich ein gutes Projekt geworden wäre - aber halt redundant zum sourceanalytics. Im Prinzip kann man den Flow aber auch für NodeRed Standalone Installationen verwenden, wenn man als Datenbank einen mqtt Broker nimmt. Muss ggf. die topics anpassen, allerdings kann man mit den Wildcards schon ziemlich universell arbeiten.

                                        [
                                           {
                                               "id": "35850f3.22dd0f",
                                               "type": "inject",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "props": [
                                                   {
                                                       "p": "payload"
                                                   },
                                                   {
                                                       "p": "topic",
                                                       "vt": "str"
                                                   }
                                               ],
                                               "repeat": "",
                                               "crontab": "",
                                               "once": false,
                                               "onceDelay": 0.1,
                                               "topic": "0_userdata/0/stromverbrauch/shellies/shelly-dummy/reset",
                                               "payload": "true",
                                               "payloadType": "bool",
                                               "x": 310,
                                               "y": 180,
                                               "wires": [
                                                   [
                                                       "80f66656.38dec8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "80f66656.38dec8",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "reset = true?",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "true"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 1,
                                               "x": 510,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "98ce503d.77b81"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "5a848615.797c98",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "define and reset topics",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "[{\"common\":{\"name\":\"total\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"yesterday\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"today\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"year\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"month\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"power\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"hour\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"hour_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"year_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"month_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"week_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"week\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"start\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"string\",\"read\":true,\"write\":false,\"def\":\"\"},\"type\":\"state\"},{\"common\":{\"name\":\"reset\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"boolean\",\"read\":true,\"write\":true,\"def\":false},\"type\":\"state\"},{\"common\":{\"name\":\"use_time_date\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"boolean\",\"read\":true,\"write\":true,\"def\":false},\"type\":\"state\"},{\"common\":{\"name\":\"flot\",\"role\":\"\",\"type\":\"string\",\"desc\":\"Created by Node-Red\",\"def\":\"\",\"read\":true,\"write\":true},\"type\":\"state\"}]",
                                                       "tot": "json"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1100,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "85d30229.134d7"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "85d30229.134d7",
                                               "type": "split",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "splt": "\\n",
                                               "spltType": "str",
                                               "arraySplt": 1,
                                               "arraySpltType": "len",
                                               "stream": false,
                                               "addname": "",
                                               "x": 1280,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "14273608.84409a"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "98ce503d.77b81",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "get parent topic",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "(.*)[\\.,\\/]reset$",
                                                       "fromt": "re",
                                                       "to": "$1",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 800,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "5a848615.797c98"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "14273608.84409a",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "set new topic",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "topic & '.' & payload.common.name",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1430,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "c26782ba.6d0cb"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "a066a4b2.bffac8",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "reset to default?",
                                               "property": "payload.common.def",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "null"
                                                   },
                                                   {
                                                       "t": "nnull"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 2280,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "aaaf4f8e.09af2"
                                                   ],
                                                   [
                                                       "8c7b3b16.005078"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "c26782ba.6d0cb",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "translate definition",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "stateName",
                                                       "pt": "msg",
                                                       "to": "payload.common.name",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "stateType",
                                                       "pt": "msg",
                                                       "to": "payload.common.type",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "stateReadonly",
                                                       "pt": "msg",
                                                       "to": "payload.common.write",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1610,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "edec84c8.29ee98"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "edec84c8.29ee98",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "unit available?",
                                               "property": "payload.common.unit",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "nnull"
                                                   },
                                                   {
                                                       "t": "null"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 1820,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "7b7016cb.ac10c8"
                                                   ],
                                                   [
                                                       "1f3da0b6.9e766f"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "1f3da0b6.9e766f",
                                               "type": "function",
                                               "z": "2c7d577a.9b4378",
                                               "name": "do nothing",
                                               "func": "\nreturn msg;",
                                               "outputs": 1,
                                               "noerr": 0,
                                               "initialize": "",
                                               "finalize": "",
                                               "x": 2050,
                                               "y": 240,
                                               "wires": [
                                                   [
                                                       "a066a4b2.bffac8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "7b7016cb.ac10c8",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "stateUnit",
                                                       "pt": "msg",
                                                       "to": "payload.common.unit",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2050,
                                               "y": 200,
                                               "wires": [
                                                   [
                                                       "a066a4b2.bffac8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "cc84166f.06b778",
                                               "type": "ioBroker out",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "topic": "",
                                               "ack": "false",
                                               "autoCreate": "true",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 2720,
                                               "y": 220,
                                               "wires": []
                                           },
                                           {
                                               "id": "aaaf4f8e.09af2",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "delete",
                                                       "p": "payload",
                                                       "pt": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2500,
                                               "y": 180,
                                               "wires": [
                                                   [
                                                       "cc84166f.06b778"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "8c7b3b16.005078",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "set defaults",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "default",
                                                       "pt": "msg",
                                                       "to": "payload.common.def",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "delete",
                                                       "p": "payload",
                                                       "pt": "msg"
                                                   },
                                                   {
                                                       "t": "move",
                                                       "p": "default",
                                                       "pt": "msg",
                                                       "to": "payload",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2470,
                                               "y": 260,
                                               "wires": [
                                                   [
                                                       "cc84166f.06b778"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "cc6771bb.13f14",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "start without object",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "eq",
                                                       "v": "",
                                                       "vt": "str"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 1,
                                               "x": 790,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "ce0be96b.5c5fa8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "ce0be96b.5c5fa8",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "Initialisiere start",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "{}",
                                                       "tot": "json"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "payload.ts",
                                                       "pt": "msg",
                                                       "to": "",
                                                       "tot": "date"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "payload.date",
                                                       "pt": "msg",
                                                       "to": " $moment(payload.ts).locale(\"de\").tz('Europe/Berlin').format('YYYY-MM-DD HH:mm:ss')",
                                                       "tot": "jsonata"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "payload.timespan",
                                                       "pt": "msg",
                                                       "to": "{\"hour\":0,\"day\":0,\"week\":0,\"month\":0,\"year\":0}",
                                                       "tot": "json"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1060,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "450761a2.575e",
                                                       "d9135ecb.c5bef"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "729a31f7.1f0d",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "set msg.topic & msg.power",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "(.*)\\/power",
                                                       "fromt": "re",
                                                       "to": "$1",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "move",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "power",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 560,
                                               "y": 560,
                                               "wires": [
                                                   [
                                                       "257ceae5.2dbc16"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "257ceae5.2dbc16",
                                               "type": "function",
                                               "z": "2c7d577a.9b4378",
                                               "name": "Aktuelle Wh",
                                               "func": "var lasttime = context.get(msg.topic);\nvar timespan;\n\nif (lasttime === undefined) {\n    lasttime = msg.timestamp;\n    context.set(msg.topic,lasttime);\n    return null;\n}\n\ntimespan = msg.timestamp - lasttime;\nlasttime = msg.timestamp;\ncontext.set(msg.topic,lasttime);\nmsg.Wh=msg.power*(timespan/1000/60/60);\n\nreturn msg;",
                                               "outputs": 1,
                                               "noerr": 0,
                                               "initialize": "",
                                               "finalize": "",
                                               "libs": [],
                                               "x": 910,
                                               "y": 560,
                                               "wires": [
                                                   [
                                                       "7b7a6cd4.f05704"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "d9135ecb.c5bef",
                                               "type": "json",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "property": "payload",
                                               "action": "",
                                               "pretty": false,
                                               "x": 1230,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "ffaaaca9.31ecf"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "ffaaaca9.31ecf",
                                               "type": "ioBroker out",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "topic": "",
                                               "ack": "true",
                                               "autoCreate": "false",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 1410,
                                               "y": 280,
                                               "wires": []
                                           },
                                           {
                                               "id": "7b7a6cd4.f05704",
                                               "type": "function",
                                               "z": "2c7d577a.9b4378",
                                               "name": "add topics",
                                               "func": "var outputMsgs = [];\nvar topiclist=\"hour,month,today,total,week,year,start\";\n\nvar topics = topiclist.split(\",\");\n\nfor (var w in topics) {\n    outputMsgs.push({topic:msg.topic + '/' + topics[w], Wh: msg.Wh});\n}\nreturn [ outputMsgs ];\n",
                                               "outputs": 1,
                                               "noerr": 0,
                                               "initialize": "",
                                               "finalize": "",
                                               "x": 1090,
                                               "y": 560,
                                               "wires": [
                                                   [
                                                       "7e64ff11.4278"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "1de3c97e.1a0bf7",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "hour",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 380,
                                               "wires": [
                                                   [
                                                       "9d1bc133.e80b7"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "21dc8345.7618bc",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "today",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 440,
                                               "wires": [
                                                   [
                                                       "9d1bc133.e80b7"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "70288298.bf84dc",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "month",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 560,
                                               "wires": [
                                                   [
                                                       "dea3c66b.907df8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "b9db5bd0.a50a78",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "total",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 680,
                                               "wires": [
                                                   [
                                                       "dea3c66b.907df8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "6e65954f.bdec0c",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "week",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 500,
                                               "wires": [
                                                   [
                                                       "9d1bc133.e80b7"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "44b9db26.ca4314",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "year",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 620,
                                               "wires": [
                                                   [
                                                       "dea3c66b.907df8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "9d1bc133.e80b7",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "Addiere Wh",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "payload + Wh",
                                                       "tot": "jsonata"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1600,
                                               "y": 440,
                                               "wires": [
                                                   [
                                                       "4bca099e.ca1e88"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "dea3c66b.907df8",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "Addiere kWh",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "payload + (Wh/1000)",
                                                       "tot": "jsonata"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1590,
                                               "y": 620,
                                               "wires": [
                                                   [
                                                       "4bca099e.ca1e88"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "4bca099e.ca1e88",
                                               "type": "ioBroker out",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "topic": "",
                                               "ack": "true",
                                               "autoCreate": "false",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 1820,
                                               "y": 520,
                                               "wires": []
                                           },
                                           {
                                               "id": "7e64ff11.4278",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "property": "topic",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]hour$",
                                                       "vt": "str",
                                                       "case": false
                                                   },
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]today$",
                                                       "vt": "str",
                                                       "case": false
                                                   },
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]week$",
                                                       "vt": "str",
                                                       "case": false
                                                   },
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]month$",
                                                       "vt": "str",
                                                       "case": false
                                                   },
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]year$",
                                                       "vt": "str",
                                                       "case": false
                                                   },
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]total$",
                                                       "vt": "str",
                                                       "case": false
                                                   },
                                                   {
                                                       "t": "regex",
                                                       "v": ".*[\\/,\\.]start$",
                                                       "vt": "str",
                                                       "case": false
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 7,
                                               "x": 1250,
                                               "y": 560,
                                               "wires": [
                                                   [
                                                       "1de3c97e.1a0bf7"
                                                   ],
                                                   [
                                                       "21dc8345.7618bc"
                                                   ],
                                                   [
                                                       "6e65954f.bdec0c"
                                                   ],
                                                   [
                                                       "70288298.bf84dc"
                                                   ],
                                                   [
                                                       "44b9db26.ca4314"
                                                   ],
                                                   [
                                                       "b9db5bd0.a50a78"
                                                   ],
                                                   [
                                                       "93fdc929.570df8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "93fdc929.570df8",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "start",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 1410,
                                               "y": 780,
                                               "wires": [
                                                   [
                                                       "107973e8.2fdc3c"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "97f2d9d1.1420f8",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "(.*)\\/start",
                                                       "fromt": "re",
                                                       "to": "$1",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "move",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "start",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "topic & '.use_time_date'",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 1900,
                                               "y": 780,
                                               "wires": [
                                                   [
                                                       "18019d9a.2b8552"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "18019d9a.2b8552",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "use_time_date",
                                               "topic": "",
                                               "attrname": "payload",
                                               "payloadType": "value",
                                               "x": 2100,
                                               "y": 780,
                                               "wires": [
                                                   [
                                                       "7f7e5f9f.41f46"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "453a7a8d.9c72f4",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "true"
                                                   },
                                                   {
                                                       "t": "false"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 2,
                                               "x": 2470,
                                               "y": 780,
                                               "wires": [
                                                   [],
                                                   [
                                                       "fc7f508d.c986d",
                                                       "fc2c5159.6e28"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "fc2c5159.6e28",
                                               "type": "function",
                                               "z": "2c7d577a.9b4378",
                                               "name": "trigger nach Dauer",
                                               "func": "const sec = 1000;\nconst min = sec * 60;\nconst hour = min * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst month = day * 30.4375;\nconst year = month * 12;\nvar ts = new Date().getTime();\nvar bUpdate = false;\n// msg.topic = msg.topic.replace(/(.*)\\.use_time_date/,\"$1\");\n// var device = msg.topic.replace(/.*shellies\\.(.*)/,\"$1\");\nvar device = msg.device;\n\nvar timespan = context.get(device)\nif (timespan === undefined) {\n    \n    // node.warn ('device: ' + device);\n    // node.warn ('msg.start.timespan: ' + JSON.stringify(msg.start.timespan));\n    timespan = msg.start.timespan;\n    context.set(device,timespan); \n    // node.warn ('timespan = defined');\n    return [null,null]\n    \n}\n\nvar addValues = [];\n// var resetValues = [];\nvar msgStart = {topic: msg.topic + '.start', payload: msg.start}\n\nvar topiclist=\"hour,month,today,total,week,year\";\nvar topics = topiclist.split(\",\");\n\n// node.warn ('device: ' + device);\nfor (var w in topics) {\n    var diff = 0;\n    switch(topics[w]) {\n        case 'hour':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / hour);\n            // node.warn ('const hour: ' + hour);\n            // hours: timespan.hour\n            if (diff > timespan.hour){\n                bUpdate = true;\n                timespan.hour=diff;\n\n                addValues.push({topic: msg.topic + '.hour', payload: 0 , newTopic: msg.topic + '.hour_before' , start: msg.start.ts , ts: ts , hours: diff, comment: diff + ' hours since start' });\n            }\n            break;\n        case 'month':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / month);\n            // node.warn ('const month: ' + month);\n            // months: timespan.month\n            if (diff > timespan.month){\n                bUpdate = true;\n                timespan.month=diff;\n\n                addValues.push({topic: msg.topic + '.month', payload: 0 , newTopic: msg.topic + '.month_before', start: msg.start.ts , ts: ts , months: diff, comment: diff + ' months since start' });\n            }\n            break;\n        case 'today':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / day);\n            // node.warn ('const day: ' + day);\n            // days: timespan.day\n            if (diff > timespan.day){\n                bUpdate = true;\n                timespan.day=diff;\n\n                addValues.push({topic: msg.topic + '.today', payload: 0 , newTopic: msg.topic + '.yesterday' , start: msg.start.ts , ts: ts , days: diff, comment: diff + ' days since start'});\n            }\n            break;\n        case 'total':\n            // code block - nichts machen - gibt nichts zum Zurücksetzen\n            break;\n        case 'week':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / week);\n            // node.warn ('const week: ' + week);\n            // weeks: timespan.week\n            if (diff > timespan.week){\n                bUpdate = true;\n                timespan.week=diff;\n\n                addValues.push({topic: msg.topic + '.week', payload: 0 , newTopic: msg.topic + '.week_before' , start: msg.start.ts , ts: ts , weeks: diff, comment: diff + ' weeks since start' });\n            }\n            break;\n        case 'year':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / year);\n            // if (diff > 0 ) { node.warn(' -> ts: ' + ts + ' -> msg.start.ts: ' + msg.start.ts + ' -> (ts - msg.start.ts) / year: ' + ((ts - msg.start.ts) / year))}\n            // node.warn ('const year: ' + year);\n            // years: timespan.hour\n            if (diff > timespan.year){\n                bUpdate = true;\n                timespan.year=diff;\n\n                addValues.push({topic: msg.topic + '.year', payload: 0 , newTopic: msg.topic + '.year_before', start: msg.start.ts , ts: ts , years: diff, comment: diff + ' years since start'});\n            }\n            break;\n            \n        default:\n            // code block\n    }   \n}\n\n// bUpdate = true;\n\nif (bUpdate){\n    context.set(device,timespan);\n    msgStart.payload.timespan = timespan;\n    return [ addValues,  msgStart ];\n}\n\n\n// outputMsgs.push({topic:msg.topic + '/' + topics[w], Wh: msg.Wh});",
                                               "outputs": 2,
                                               "noerr": 0,
                                               "initialize": "",
                                               "finalize": "",
                                               "libs": [],
                                               "x": 2690,
                                               "y": 860,
                                               "wires": [
                                                   [
                                                       "4b61812.853d08",
                                                       "990a6d1c.e33ae"
                                                   ],
                                                   [
                                                       "4cdfe1c1.22b5e",
                                                       "fc7e7f82.b40bc"
                                                   ]
                                               ],
                                               "outputLabels": [
                                                   "add",
                                                   "start"
                                               ]
                                           },
                                           {
                                               "id": "4cdfe1c1.22b5e",
                                               "type": "debug",
                                               "z": "2c7d577a.9b4378",
                                               "name": "start",
                                               "active": false,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": true,
                                               "complete": "true",
                                               "targetType": "full",
                                               "statusVal": "payload.timespan",
                                               "statusType": "msg",
                                               "x": 2890,
                                               "y": 980,
                                               "wires": []
                                           },
                                           {
                                               "id": "4b61812.853d08",
                                               "type": "ioBroker get",
                                               "z": "2c7d577a.9b4378",
                                               "name": "save value",
                                               "topic": "",
                                               "attrname": "set",
                                               "payloadType": "value",
                                               "x": 2890,
                                               "y": 820,
                                               "wires": [
                                                   [
                                                       "48de049c.55a6cc",
                                                       "2f65897a.e15036"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "2f65897a.e15036",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "set previous",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "newTopic",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "set",
                                                       "tot": "msg"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 3070,
                                               "y": 860,
                                               "wires": [
                                                   [
                                                       "d5922114.e3edb"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "d5922114.e3edb",
                                               "type": "ioBroker out",
                                               "z": "2c7d577a.9b4378",
                                               "name": "set previous period",
                                               "topic": "",
                                               "ack": "true",
                                               "autoCreate": "false",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 3280,
                                               "y": 860,
                                               "wires": []
                                           },
                                           {
                                               "id": "48de049c.55a6cc",
                                               "type": "ioBroker out",
                                               "z": "2c7d577a.9b4378",
                                               "name": "reset current period",
                                               "topic": "",
                                               "ack": "true",
                                               "autoCreate": "false",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 3090,
                                               "y": 800,
                                               "wires": []
                                           },
                                           {
                                               "id": "afcbed60.a3b52",
                                               "type": "ioBroker out",
                                               "z": "2c7d577a.9b4378",
                                               "name": "update start.timespan",
                                               "topic": "",
                                               "ack": "true",
                                               "autoCreate": "false",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "",
                                               "readonly": "",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 3080,
                                               "y": 920,
                                               "wires": []
                                           },
                                           {
                                               "id": "fc7e7f82.b40bc",
                                               "type": "json",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "property": "payload",
                                               "action": "",
                                               "pretty": false,
                                               "x": 2880,
                                               "y": 920,
                                               "wires": [
                                                   [
                                                       "afcbed60.a3b52"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "990a6d1c.e33ae",
                                               "type": "debug",
                                               "z": "2c7d577a.9b4378",
                                               "name": "add",
                                               "active": false,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "payload",
                                               "targetType": "msg",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 2870,
                                               "y": 760,
                                               "wires": []
                                           },
                                           {
                                               "id": "fc7f508d.c986d",
                                               "type": "debug",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "active": false,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "true",
                                               "targetType": "full",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 2670,
                                               "y": 800,
                                               "wires": []
                                           },
                                           {
                                               "id": "8e9e06fd.870a08",
                                               "type": "json",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "property": "payload",
                                               "action": "",
                                               "pretty": false,
                                               "x": 1730,
                                               "y": 780,
                                               "wires": [
                                                   [
                                                       "97f2d9d1.1420f8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "107973e8.2fdc3c",
                                               "type": "switch",
                                               "z": "2c7d577a.9b4378",
                                               "name": "JSON string?",
                                               "property": "payload",
                                               "propertyType": "msg",
                                               "rules": [
                                                   {
                                                       "t": "istype",
                                                       "v": "json",
                                                       "vt": "json"
                                                   }
                                               ],
                                               "checkall": "true",
                                               "repair": false,
                                               "outputs": 1,
                                               "x": 1570,
                                               "y": 780,
                                               "wires": [
                                                   [
                                                       "8e9e06fd.870a08"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "450761a2.575e",
                                               "type": "debug",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "active": false,
                                               "tosidebar": true,
                                               "console": false,
                                               "tostatus": false,
                                               "complete": "true",
                                               "targetType": "full",
                                               "statusVal": "",
                                               "statusType": "auto",
                                               "x": 1240,
                                               "y": 340,
                                               "wires": []
                                           },
                                           {
                                               "id": "13719db3.07a702",
                                               "type": "ioBroker in",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "topic": "0_userdata.0.stromverbrauch.*.*.reset",
                                               "payloadType": "value",
                                               "onlyack": "",
                                               "func": "all",
                                               "gap": "",
                                               "fireOnStart": "false",
                                               "x": 210,
                                               "y": 220,
                                               "wires": [
                                                   [
                                                       "80f66656.38dec8"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "7f7e5f9f.41f46",
                                               "type": "change",
                                               "z": "2c7d577a.9b4378",
                                               "name": "topic & device",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "(.*)\\.use_time_date",
                                                       "fromt": "re",
                                                       "to": "$1",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "device",
                                                       "pt": "msg",
                                                       "to": "topic",
                                                       "tot": "msg"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "device",
                                                       "pt": "msg",
                                                       "from": ".*[\\.,\\/](.*)",
                                                       "fromt": "re",
                                                       "to": "$1",
                                                       "tot": "str"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 2300,
                                               "y": 780,
                                               "wires": [
                                                   [
                                                       "453a7a8d.9c72f4"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "c208dc2e.5880a",
                                               "type": "ioBroker in",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "topic": "0_userdata.0.stromverbrauch.*.*.power",
                                               "payloadType": "value",
                                               "onlyack": "",
                                               "func": "all",
                                               "gap": "",
                                               "fireOnStart": "false",
                                               "x": 210,
                                               "y": 560,
                                               "wires": [
                                                   [
                                                       "729a31f7.1f0d"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "ec03eb7f.ecf038",
                                               "type": "ioBroker in",
                                               "z": "2c7d577a.9b4378",
                                               "name": "",
                                               "topic": "0_userdata.0.stromverbrauch.*.*.start",
                                               "payloadType": "value",
                                               "onlyack": "",
                                               "func": "all",
                                               "gap": "",
                                               "fireOnStart": "false",
                                               "x": 210,
                                               "y": 280,
                                               "wires": [
                                                   [
                                                       "cc6771bb.13f14"
                                                   ]
                                               ]
                                           }
                                        ]
                                        

                                        Ich bin jetzt ja auch faul und nutze den sourceanlytics.

                                        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.

                                        J 1 Antwort Letzte Antwort
                                        1
                                        • mickymM mickym

                                          Also ich habe meinen alten Flow gefunden - der würde Dir aber nichts helfen, da Du ja glaub ohne den iobroker arbeitest. Ich bin mir auch nicht mehr ganz sicher, ob es wirklich fehlerfrei gearbeitet hat, aber der Vollständigkeit will ich ihn mal posten:

                                          Wie @Homoran schrieb ist das nicht banal:

                                          31851e08-8fab-4662-a868-f3bc7316f646-image.png

                                          Allerdings müsste ich mir das genau wieder anschauen, wie es funktioniert. ;)

                                          Wenn man den Baum so gebaut hatte - wurde die gesamte Datenpunkte so erstellt, wenn man reset auf true gesetzt hatte:

                                          c145044b-8111-4382-b1d8-1b30c1e6bd52-image.png

                                          932c0882-d09b-4390-b258-80088220fe40-image.png

                                          Das Herzstück war den Momentanverbrauch halt auf Wh umzurechnen, wie

                                          @homoran sagte in Daten zeitweise addieren:

                                          @mickym ich hab immer noch nicht verstanden was er will!
                                          wenn der interne Zähler um Mitternacht nullt hat man doch am Tagesende die insgesamt eingeladene und insgesamt entnommene Menge (in kWh).
                                          was fehlt denn dann? Ladezustand ist doch auch da. die Entlade-/Ladeleistung in kW?

                                          das wäre in (blockly) (aktueller Wert-vorheriger Wert):(Timestamp-vorheriger Timestamp)

                                          hier erwähnte.

                                          Das war damals im Topic des Kontextes ermittelt in der Node Aktuelle Wh

                                          var lasttime = context.get(msg.topic);
                                          var timespan;
                                          
                                          if (lasttime === undefined) {
                                              lasttime = msg.timestamp;
                                              context.set(msg.topic,lasttime);
                                              return null;
                                          }
                                          
                                          timespan = msg.timestamp - lasttime;
                                          lasttime = msg.timestamp;
                                          context.set(msg.topic,lasttime);
                                          msg.Wh=msg.power*(timespan/1000/60/60);
                                          
                                          return msg;
                                          

                                          Im Prinzip wurden dann die aktuellen Wh in alle Datenpunkte addiert. Sobald eine Zeitperiode beendet war (wurde genullt und der Wert in die vorherige Periode kopiert.

                                          da war der trigger - das war damals auch in einer function Node gemacht:

                                          const sec = 1000;
                                          const min = sec * 60;
                                          const hour = min * 60;
                                          const day = hour * 24;
                                          const week = day * 7;
                                          const month = day * 30.4375;
                                          const year = month * 12;
                                          var ts = new Date().getTime();
                                          var bUpdate = false;
                                          // msg.topic = msg.topic.replace(/(.*)\.use_time_date/,"$1");
                                          // var device = msg.topic.replace(/.*shellies\.(.*)/,"$1");
                                          var device = msg.device;
                                          
                                          var timespan = context.get(device)
                                          if (timespan === undefined) {
                                              
                                              // node.warn ('device: ' + device);
                                              // node.warn ('msg.start.timespan: ' + JSON.stringify(msg.start.timespan));
                                              timespan = msg.start.timespan;
                                              context.set(device,timespan); 
                                              // node.warn ('timespan = defined');
                                              return [null,null]
                                              
                                          }
                                          
                                          var addValues = [];
                                          // var resetValues = [];
                                          var msgStart = {topic: msg.topic + '.start', payload: msg.start}
                                          
                                          var topiclist="hour,month,today,total,week,year";
                                          var topics = topiclist.split(",");
                                          
                                          // node.warn ('device: ' + device);
                                          for (var w in topics) {
                                              var diff = 0;
                                              switch(topics[w]) {
                                                  case 'hour':
                                                      // code block
                                                      diff= Math.trunc((ts - msg.start.ts) / hour);
                                                      // node.warn ('const hour: ' + hour);
                                                      // hours: timespan.hour
                                                      if (diff > timespan.hour){
                                                          bUpdate = true;
                                                          timespan.hour=diff;
                                          
                                                          addValues.push({topic: msg.topic + '.hour', payload: 0 , newTopic: msg.topic + '.hour_before' , start: msg.start.ts , ts: ts , hours: diff, comment: diff + ' hours since start' });
                                                      }
                                                      break;
                                                  case 'month':
                                                      // code block
                                                      diff= Math.trunc((ts - msg.start.ts) / month);
                                                      // node.warn ('const month: ' + month);
                                                      // months: timespan.month
                                                      if (diff > timespan.month){
                                                          bUpdate = true;
                                                          timespan.month=diff;
                                          
                                                          addValues.push({topic: msg.topic + '.month', payload: 0 , newTopic: msg.topic + '.month_before', start: msg.start.ts , ts: ts , months: diff, comment: diff + ' months since start' });
                                                      }
                                                      break;
                                                  case 'today':
                                                      // code block
                                                      diff= Math.trunc((ts - msg.start.ts) / day);
                                                      // node.warn ('const day: ' + day);
                                                      // days: timespan.day
                                                      if (diff > timespan.day){
                                                          bUpdate = true;
                                                          timespan.day=diff;
                                          
                                                          addValues.push({topic: msg.topic + '.today', payload: 0 , newTopic: msg.topic + '.yesterday' , start: msg.start.ts , ts: ts , days: diff, comment: diff + ' days since start'});
                                                      }
                                                      break;
                                                  case 'total':
                                                      // code block - nichts machen - gibt nichts zum Zurücksetzen
                                                      break;
                                                  case 'week':
                                                      // code block
                                                      diff= Math.trunc((ts - msg.start.ts) / week);
                                                      // node.warn ('const week: ' + week);
                                                      // weeks: timespan.week
                                                      if (diff > timespan.week){
                                                          bUpdate = true;
                                                          timespan.week=diff;
                                          
                                                          addValues.push({topic: msg.topic + '.week', payload: 0 , newTopic: msg.topic + '.week_before' , start: msg.start.ts , ts: ts , weeks: diff, comment: diff + ' weeks since start' });
                                                      }
                                                      break;
                                                  case 'year':
                                                      // code block
                                                      diff= Math.trunc((ts - msg.start.ts) / year);
                                                      // if (diff > 0 ) { node.warn(' -> ts: ' + ts + ' -> msg.start.ts: ' + msg.start.ts + ' -> (ts - msg.start.ts) / year: ' + ((ts - msg.start.ts) / year))}
                                                      // node.warn ('const year: ' + year);
                                                      // years: timespan.hour
                                                      if (diff > timespan.year){
                                                          bUpdate = true;
                                                          timespan.year=diff;
                                          
                                                          addValues.push({topic: msg.topic + '.year', payload: 0 , newTopic: msg.topic + '.year_before', start: msg.start.ts , ts: ts , years: diff, comment: diff + ' years since start'});
                                                      }
                                                      break;
                                                      
                                                  default:
                                                      // code block
                                              }   
                                          }
                                          
                                          // bUpdate = true;
                                          
                                          if (bUpdate){
                                              context.set(device,timespan);
                                              msgStart.payload.timespan = timespan;
                                              return [ addValues,  msgStart ];
                                          }
                                          
                                          
                                          // outputMsgs.push({topic:msg.topic + '/' + topics[w], Wh: msg.Wh});
                                          

                                          Ich hab den Flow mal exportiert - aber wie gesagt, da muss man sich wieder reinfuchsen. In den power Datenpunkt muss der Momentanverbrauch aus der Originalquelle kopiert werden. Im Detail müsste man sich gerade die function Node nochmal anschauen. Ursprünglich wollte ich das sowohl für DAUER als auch für KALENDER also bei Tageswechsel machen. Im Moment wird es wirklich nach DAUER gemacht und nicht nach Kalender. Sprich der Tag zählt genau bei Start 24 Std. Die 2. Option ist eigentlich einfacher - aber wie gesagt, ich hab mich dann nicht mehr damit beschäftigt. Manchmal vergeht einem die Lust - obwohl es sicherlich ein gutes Projekt geworden wäre - aber halt redundant zum sourceanalytics. Im Prinzip kann man den Flow aber auch für NodeRed Standalone Installationen verwenden, wenn man als Datenbank einen mqtt Broker nimmt. Muss ggf. die topics anpassen, allerdings kann man mit den Wildcards schon ziemlich universell arbeiten.

                                          [
                                             {
                                                 "id": "35850f3.22dd0f",
                                                 "type": "inject",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "props": [
                                                     {
                                                         "p": "payload"
                                                     },
                                                     {
                                                         "p": "topic",
                                                         "vt": "str"
                                                     }
                                                 ],
                                                 "repeat": "",
                                                 "crontab": "",
                                                 "once": false,
                                                 "onceDelay": 0.1,
                                                 "topic": "0_userdata/0/stromverbrauch/shellies/shelly-dummy/reset",
                                                 "payload": "true",
                                                 "payloadType": "bool",
                                                 "x": 310,
                                                 "y": 180,
                                                 "wires": [
                                                     [
                                                         "80f66656.38dec8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "80f66656.38dec8",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "reset = true?",
                                                 "property": "payload",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 510,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "98ce503d.77b81"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "5a848615.797c98",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "define and reset topics",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "[{\"common\":{\"name\":\"total\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"yesterday\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"today\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"year\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"month\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"power\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"hour\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"hour_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"year_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"month_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"kWh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"week_before\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"week\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"number\",\"unit\":\"Wh\",\"read\":true,\"write\":false,\"def\":0},\"type\":\"state\"},{\"common\":{\"name\":\"start\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"string\",\"read\":true,\"write\":false,\"def\":\"\"},\"type\":\"state\"},{\"common\":{\"name\":\"reset\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"boolean\",\"read\":true,\"write\":true,\"def\":false},\"type\":\"state\"},{\"common\":{\"name\":\"use_time_date\",\"desc\":\"Created by Node-Red\",\"role\":\"state\",\"type\":\"boolean\",\"read\":true,\"write\":true,\"def\":false},\"type\":\"state\"},{\"common\":{\"name\":\"flot\",\"role\":\"\",\"type\":\"string\",\"desc\":\"Created by Node-Red\",\"def\":\"\",\"read\":true,\"write\":true},\"type\":\"state\"}]",
                                                         "tot": "json"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1100,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "85d30229.134d7"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "85d30229.134d7",
                                                 "type": "split",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "splt": "\\n",
                                                 "spltType": "str",
                                                 "arraySplt": 1,
                                                 "arraySpltType": "len",
                                                 "stream": false,
                                                 "addname": "",
                                                 "x": 1280,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "14273608.84409a"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "98ce503d.77b81",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "get parent topic",
                                                 "rules": [
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "(.*)[\\.,\\/]reset$",
                                                         "fromt": "re",
                                                         "to": "$1",
                                                         "tot": "str"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 800,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "5a848615.797c98"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "14273608.84409a",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "set new topic",
                                                 "rules": [
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "/",
                                                         "fromt": "str",
                                                         "to": ".",
                                                         "tot": "str"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "to": "topic & '.' & payload.common.name",
                                                         "tot": "jsonata"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1430,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "c26782ba.6d0cb"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "a066a4b2.bffac8",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "reset to default?",
                                                 "property": "payload.common.def",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "null"
                                                     },
                                                     {
                                                         "t": "nnull"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 2,
                                                 "x": 2280,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "aaaf4f8e.09af2"
                                                     ],
                                                     [
                                                         "8c7b3b16.005078"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "c26782ba.6d0cb",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "translate definition",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "stateName",
                                                         "pt": "msg",
                                                         "to": "payload.common.name",
                                                         "tot": "msg"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "stateType",
                                                         "pt": "msg",
                                                         "to": "payload.common.type",
                                                         "tot": "msg"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "stateReadonly",
                                                         "pt": "msg",
                                                         "to": "payload.common.write",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1610,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "edec84c8.29ee98"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "edec84c8.29ee98",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "unit available?",
                                                 "property": "payload.common.unit",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "nnull"
                                                     },
                                                     {
                                                         "t": "null"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 2,
                                                 "x": 1820,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "7b7016cb.ac10c8"
                                                     ],
                                                     [
                                                         "1f3da0b6.9e766f"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "1f3da0b6.9e766f",
                                                 "type": "function",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "do nothing",
                                                 "func": "\nreturn msg;",
                                                 "outputs": 1,
                                                 "noerr": 0,
                                                 "initialize": "",
                                                 "finalize": "",
                                                 "x": 2050,
                                                 "y": 240,
                                                 "wires": [
                                                     [
                                                         "a066a4b2.bffac8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "7b7016cb.ac10c8",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "stateUnit",
                                                         "pt": "msg",
                                                         "to": "payload.common.unit",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 2050,
                                                 "y": 200,
                                                 "wires": [
                                                     [
                                                         "a066a4b2.bffac8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "cc84166f.06b778",
                                                 "type": "ioBroker out",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "topic": "",
                                                 "ack": "false",
                                                 "autoCreate": "true",
                                                 "stateName": "",
                                                 "role": "",
                                                 "payloadType": "",
                                                 "readonly": "",
                                                 "stateUnit": "",
                                                 "stateMin": "",
                                                 "stateMax": "",
                                                 "x": 2720,
                                                 "y": 220,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "aaaf4f8e.09af2",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "rules": [
                                                     {
                                                         "t": "delete",
                                                         "p": "payload",
                                                         "pt": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 2500,
                                                 "y": 180,
                                                 "wires": [
                                                     [
                                                         "cc84166f.06b778"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "8c7b3b16.005078",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "set defaults",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "default",
                                                         "pt": "msg",
                                                         "to": "payload.common.def",
                                                         "tot": "msg"
                                                     },
                                                     {
                                                         "t": "delete",
                                                         "p": "payload",
                                                         "pt": "msg"
                                                     },
                                                     {
                                                         "t": "move",
                                                         "p": "default",
                                                         "pt": "msg",
                                                         "to": "payload",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 2470,
                                                 "y": 260,
                                                 "wires": [
                                                     [
                                                         "cc84166f.06b778"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "cc6771bb.13f14",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "start without object",
                                                 "property": "payload",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "eq",
                                                         "v": "",
                                                         "vt": "str"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 790,
                                                 "y": 280,
                                                 "wires": [
                                                     [
                                                         "ce0be96b.5c5fa8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "ce0be96b.5c5fa8",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "Initialisiere start",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "{}",
                                                         "tot": "json"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "payload.ts",
                                                         "pt": "msg",
                                                         "to": "",
                                                         "tot": "date"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "payload.date",
                                                         "pt": "msg",
                                                         "to": " $moment(payload.ts).locale(\"de\").tz('Europe/Berlin').format('YYYY-MM-DD HH:mm:ss')",
                                                         "tot": "jsonata"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "payload.timespan",
                                                         "pt": "msg",
                                                         "to": "{\"hour\":0,\"day\":0,\"week\":0,\"month\":0,\"year\":0}",
                                                         "tot": "json"
                                                     },
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "/",
                                                         "fromt": "str",
                                                         "to": ".",
                                                         "tot": "str"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1060,
                                                 "y": 280,
                                                 "wires": [
                                                     [
                                                         "450761a2.575e",
                                                         "d9135ecb.c5bef"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "729a31f7.1f0d",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "set msg.topic & msg.power",
                                                 "rules": [
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "(.*)\\/power",
                                                         "fromt": "re",
                                                         "to": "$1",
                                                         "tot": "str"
                                                     },
                                                     {
                                                         "t": "move",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "power",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 560,
                                                 "y": 560,
                                                 "wires": [
                                                     [
                                                         "257ceae5.2dbc16"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "257ceae5.2dbc16",
                                                 "type": "function",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "Aktuelle Wh",
                                                 "func": "var lasttime = context.get(msg.topic);\nvar timespan;\n\nif (lasttime === undefined) {\n    lasttime = msg.timestamp;\n    context.set(msg.topic,lasttime);\n    return null;\n}\n\ntimespan = msg.timestamp - lasttime;\nlasttime = msg.timestamp;\ncontext.set(msg.topic,lasttime);\nmsg.Wh=msg.power*(timespan/1000/60/60);\n\nreturn msg;",
                                                 "outputs": 1,
                                                 "noerr": 0,
                                                 "initialize": "",
                                                 "finalize": "",
                                                 "libs": [],
                                                 "x": 910,
                                                 "y": 560,
                                                 "wires": [
                                                     [
                                                         "7b7a6cd4.f05704"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "d9135ecb.c5bef",
                                                 "type": "json",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "property": "payload",
                                                 "action": "",
                                                 "pretty": false,
                                                 "x": 1230,
                                                 "y": 280,
                                                 "wires": [
                                                     [
                                                         "ffaaaca9.31ecf"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "ffaaaca9.31ecf",
                                                 "type": "ioBroker out",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "topic": "",
                                                 "ack": "true",
                                                 "autoCreate": "false",
                                                 "stateName": "",
                                                 "role": "",
                                                 "payloadType": "",
                                                 "readonly": "",
                                                 "stateUnit": "",
                                                 "stateMin": "",
                                                 "stateMax": "",
                                                 "x": 1410,
                                                 "y": 280,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "7b7a6cd4.f05704",
                                                 "type": "function",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "add topics",
                                                 "func": "var outputMsgs = [];\nvar topiclist=\"hour,month,today,total,week,year,start\";\n\nvar topics = topiclist.split(\",\");\n\nfor (var w in topics) {\n    outputMsgs.push({topic:msg.topic + '/' + topics[w], Wh: msg.Wh});\n}\nreturn [ outputMsgs ];\n",
                                                 "outputs": 1,
                                                 "noerr": 0,
                                                 "initialize": "",
                                                 "finalize": "",
                                                 "x": 1090,
                                                 "y": 560,
                                                 "wires": [
                                                     [
                                                         "7e64ff11.4278"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "1de3c97e.1a0bf7",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "hour",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 380,
                                                 "wires": [
                                                     [
                                                         "9d1bc133.e80b7"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "21dc8345.7618bc",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "today",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 440,
                                                 "wires": [
                                                     [
                                                         "9d1bc133.e80b7"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "70288298.bf84dc",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "month",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 560,
                                                 "wires": [
                                                     [
                                                         "dea3c66b.907df8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "b9db5bd0.a50a78",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "total",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 680,
                                                 "wires": [
                                                     [
                                                         "dea3c66b.907df8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "6e65954f.bdec0c",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "week",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 500,
                                                 "wires": [
                                                     [
                                                         "9d1bc133.e80b7"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "44b9db26.ca4314",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "year",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 620,
                                                 "wires": [
                                                     [
                                                         "dea3c66b.907df8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "9d1bc133.e80b7",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "Addiere Wh",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "payload + Wh",
                                                         "tot": "jsonata"
                                                     },
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "/",
                                                         "fromt": "str",
                                                         "to": ".",
                                                         "tot": "str"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1600,
                                                 "y": 440,
                                                 "wires": [
                                                     [
                                                         "4bca099e.ca1e88"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "dea3c66b.907df8",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "Addiere kWh",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "payload + (Wh/1000)",
                                                         "tot": "jsonata"
                                                     },
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "/",
                                                         "fromt": "str",
                                                         "to": ".",
                                                         "tot": "str"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1590,
                                                 "y": 620,
                                                 "wires": [
                                                     [
                                                         "4bca099e.ca1e88"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "4bca099e.ca1e88",
                                                 "type": "ioBroker out",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "topic": "",
                                                 "ack": "true",
                                                 "autoCreate": "false",
                                                 "stateName": "",
                                                 "role": "",
                                                 "payloadType": "",
                                                 "readonly": "",
                                                 "stateUnit": "",
                                                 "stateMin": "",
                                                 "stateMax": "",
                                                 "x": 1820,
                                                 "y": 520,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "7e64ff11.4278",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "property": "topic",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]hour$",
                                                         "vt": "str",
                                                         "case": false
                                                     },
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]today$",
                                                         "vt": "str",
                                                         "case": false
                                                     },
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]week$",
                                                         "vt": "str",
                                                         "case": false
                                                     },
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]month$",
                                                         "vt": "str",
                                                         "case": false
                                                     },
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]year$",
                                                         "vt": "str",
                                                         "case": false
                                                     },
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]total$",
                                                         "vt": "str",
                                                         "case": false
                                                     },
                                                     {
                                                         "t": "regex",
                                                         "v": ".*[\\/,\\.]start$",
                                                         "vt": "str",
                                                         "case": false
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 7,
                                                 "x": 1250,
                                                 "y": 560,
                                                 "wires": [
                                                     [
                                                         "1de3c97e.1a0bf7"
                                                     ],
                                                     [
                                                         "21dc8345.7618bc"
                                                     ],
                                                     [
                                                         "6e65954f.bdec0c"
                                                     ],
                                                     [
                                                         "70288298.bf84dc"
                                                     ],
                                                     [
                                                         "44b9db26.ca4314"
                                                     ],
                                                     [
                                                         "b9db5bd0.a50a78"
                                                     ],
                                                     [
                                                         "93fdc929.570df8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "93fdc929.570df8",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "start",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 1410,
                                                 "y": 780,
                                                 "wires": [
                                                     [
                                                         "107973e8.2fdc3c"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "97f2d9d1.1420f8",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "rules": [
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "(.*)\\/start",
                                                         "fromt": "re",
                                                         "to": "$1",
                                                         "tot": "str"
                                                     },
                                                     {
                                                         "t": "move",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "start",
                                                         "tot": "msg"
                                                     },
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "/",
                                                         "fromt": "str",
                                                         "to": ".",
                                                         "tot": "str"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "to": "topic & '.use_time_date'",
                                                         "tot": "jsonata"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 1900,
                                                 "y": 780,
                                                 "wires": [
                                                     [
                                                         "18019d9a.2b8552"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "18019d9a.2b8552",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "use_time_date",
                                                 "topic": "",
                                                 "attrname": "payload",
                                                 "payloadType": "value",
                                                 "x": 2100,
                                                 "y": 780,
                                                 "wires": [
                                                     [
                                                         "7f7e5f9f.41f46"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "453a7a8d.9c72f4",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "property": "payload",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "true"
                                                     },
                                                     {
                                                         "t": "false"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 2,
                                                 "x": 2470,
                                                 "y": 780,
                                                 "wires": [
                                                     [],
                                                     [
                                                         "fc7f508d.c986d",
                                                         "fc2c5159.6e28"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "fc2c5159.6e28",
                                                 "type": "function",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "trigger nach Dauer",
                                                 "func": "const sec = 1000;\nconst min = sec * 60;\nconst hour = min * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst month = day * 30.4375;\nconst year = month * 12;\nvar ts = new Date().getTime();\nvar bUpdate = false;\n// msg.topic = msg.topic.replace(/(.*)\\.use_time_date/,\"$1\");\n// var device = msg.topic.replace(/.*shellies\\.(.*)/,\"$1\");\nvar device = msg.device;\n\nvar timespan = context.get(device)\nif (timespan === undefined) {\n    \n    // node.warn ('device: ' + device);\n    // node.warn ('msg.start.timespan: ' + JSON.stringify(msg.start.timespan));\n    timespan = msg.start.timespan;\n    context.set(device,timespan); \n    // node.warn ('timespan = defined');\n    return [null,null]\n    \n}\n\nvar addValues = [];\n// var resetValues = [];\nvar msgStart = {topic: msg.topic + '.start', payload: msg.start}\n\nvar topiclist=\"hour,month,today,total,week,year\";\nvar topics = topiclist.split(\",\");\n\n// node.warn ('device: ' + device);\nfor (var w in topics) {\n    var diff = 0;\n    switch(topics[w]) {\n        case 'hour':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / hour);\n            // node.warn ('const hour: ' + hour);\n            // hours: timespan.hour\n            if (diff > timespan.hour){\n                bUpdate = true;\n                timespan.hour=diff;\n\n                addValues.push({topic: msg.topic + '.hour', payload: 0 , newTopic: msg.topic + '.hour_before' , start: msg.start.ts , ts: ts , hours: diff, comment: diff + ' hours since start' });\n            }\n            break;\n        case 'month':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / month);\n            // node.warn ('const month: ' + month);\n            // months: timespan.month\n            if (diff > timespan.month){\n                bUpdate = true;\n                timespan.month=diff;\n\n                addValues.push({topic: msg.topic + '.month', payload: 0 , newTopic: msg.topic + '.month_before', start: msg.start.ts , ts: ts , months: diff, comment: diff + ' months since start' });\n            }\n            break;\n        case 'today':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / day);\n            // node.warn ('const day: ' + day);\n            // days: timespan.day\n            if (diff > timespan.day){\n                bUpdate = true;\n                timespan.day=diff;\n\n                addValues.push({topic: msg.topic + '.today', payload: 0 , newTopic: msg.topic + '.yesterday' , start: msg.start.ts , ts: ts , days: diff, comment: diff + ' days since start'});\n            }\n            break;\n        case 'total':\n            // code block - nichts machen - gibt nichts zum Zurücksetzen\n            break;\n        case 'week':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / week);\n            // node.warn ('const week: ' + week);\n            // weeks: timespan.week\n            if (diff > timespan.week){\n                bUpdate = true;\n                timespan.week=diff;\n\n                addValues.push({topic: msg.topic + '.week', payload: 0 , newTopic: msg.topic + '.week_before' , start: msg.start.ts , ts: ts , weeks: diff, comment: diff + ' weeks since start' });\n            }\n            break;\n        case 'year':\n            // code block\n            diff= Math.trunc((ts - msg.start.ts) / year);\n            // if (diff > 0 ) { node.warn(' -> ts: ' + ts + ' -> msg.start.ts: ' + msg.start.ts + ' -> (ts - msg.start.ts) / year: ' + ((ts - msg.start.ts) / year))}\n            // node.warn ('const year: ' + year);\n            // years: timespan.hour\n            if (diff > timespan.year){\n                bUpdate = true;\n                timespan.year=diff;\n\n                addValues.push({topic: msg.topic + '.year', payload: 0 , newTopic: msg.topic + '.year_before', start: msg.start.ts , ts: ts , years: diff, comment: diff + ' years since start'});\n            }\n            break;\n            \n        default:\n            // code block\n    }   \n}\n\n// bUpdate = true;\n\nif (bUpdate){\n    context.set(device,timespan);\n    msgStart.payload.timespan = timespan;\n    return [ addValues,  msgStart ];\n}\n\n\n// outputMsgs.push({topic:msg.topic + '/' + topics[w], Wh: msg.Wh});",
                                                 "outputs": 2,
                                                 "noerr": 0,
                                                 "initialize": "",
                                                 "finalize": "",
                                                 "libs": [],
                                                 "x": 2690,
                                                 "y": 860,
                                                 "wires": [
                                                     [
                                                         "4b61812.853d08",
                                                         "990a6d1c.e33ae"
                                                     ],
                                                     [
                                                         "4cdfe1c1.22b5e",
                                                         "fc7e7f82.b40bc"
                                                     ]
                                                 ],
                                                 "outputLabels": [
                                                     "add",
                                                     "start"
                                                 ]
                                             },
                                             {
                                                 "id": "4cdfe1c1.22b5e",
                                                 "type": "debug",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "start",
                                                 "active": false,
                                                 "tosidebar": true,
                                                 "console": false,
                                                 "tostatus": true,
                                                 "complete": "true",
                                                 "targetType": "full",
                                                 "statusVal": "payload.timespan",
                                                 "statusType": "msg",
                                                 "x": 2890,
                                                 "y": 980,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "4b61812.853d08",
                                                 "type": "ioBroker get",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "save value",
                                                 "topic": "",
                                                 "attrname": "set",
                                                 "payloadType": "value",
                                                 "x": 2890,
                                                 "y": 820,
                                                 "wires": [
                                                     [
                                                         "48de049c.55a6cc",
                                                         "2f65897a.e15036"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "2f65897a.e15036",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "set previous",
                                                 "rules": [
                                                     {
                                                         "t": "set",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "to": "newTopic",
                                                         "tot": "msg"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "payload",
                                                         "pt": "msg",
                                                         "to": "set",
                                                         "tot": "msg"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 3070,
                                                 "y": 860,
                                                 "wires": [
                                                     [
                                                         "d5922114.e3edb"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "d5922114.e3edb",
                                                 "type": "ioBroker out",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "set previous period",
                                                 "topic": "",
                                                 "ack": "true",
                                                 "autoCreate": "false",
                                                 "stateName": "",
                                                 "role": "",
                                                 "payloadType": "",
                                                 "readonly": "",
                                                 "stateUnit": "",
                                                 "stateMin": "",
                                                 "stateMax": "",
                                                 "x": 3280,
                                                 "y": 860,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "48de049c.55a6cc",
                                                 "type": "ioBroker out",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "reset current period",
                                                 "topic": "",
                                                 "ack": "true",
                                                 "autoCreate": "false",
                                                 "stateName": "",
                                                 "role": "",
                                                 "payloadType": "",
                                                 "readonly": "",
                                                 "stateUnit": "",
                                                 "stateMin": "",
                                                 "stateMax": "",
                                                 "x": 3090,
                                                 "y": 800,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "afcbed60.a3b52",
                                                 "type": "ioBroker out",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "update start.timespan",
                                                 "topic": "",
                                                 "ack": "true",
                                                 "autoCreate": "false",
                                                 "stateName": "",
                                                 "role": "",
                                                 "payloadType": "",
                                                 "readonly": "",
                                                 "stateUnit": "",
                                                 "stateMin": "",
                                                 "stateMax": "",
                                                 "x": 3080,
                                                 "y": 920,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "fc7e7f82.b40bc",
                                                 "type": "json",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "property": "payload",
                                                 "action": "",
                                                 "pretty": false,
                                                 "x": 2880,
                                                 "y": 920,
                                                 "wires": [
                                                     [
                                                         "afcbed60.a3b52"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "990a6d1c.e33ae",
                                                 "type": "debug",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "add",
                                                 "active": false,
                                                 "tosidebar": true,
                                                 "console": false,
                                                 "tostatus": false,
                                                 "complete": "payload",
                                                 "targetType": "msg",
                                                 "statusVal": "",
                                                 "statusType": "auto",
                                                 "x": 2870,
                                                 "y": 760,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "fc7f508d.c986d",
                                                 "type": "debug",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "active": false,
                                                 "tosidebar": true,
                                                 "console": false,
                                                 "tostatus": false,
                                                 "complete": "true",
                                                 "targetType": "full",
                                                 "statusVal": "",
                                                 "statusType": "auto",
                                                 "x": 2670,
                                                 "y": 800,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "8e9e06fd.870a08",
                                                 "type": "json",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "property": "payload",
                                                 "action": "",
                                                 "pretty": false,
                                                 "x": 1730,
                                                 "y": 780,
                                                 "wires": [
                                                     [
                                                         "97f2d9d1.1420f8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "107973e8.2fdc3c",
                                                 "type": "switch",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "JSON string?",
                                                 "property": "payload",
                                                 "propertyType": "msg",
                                                 "rules": [
                                                     {
                                                         "t": "istype",
                                                         "v": "json",
                                                         "vt": "json"
                                                     }
                                                 ],
                                                 "checkall": "true",
                                                 "repair": false,
                                                 "outputs": 1,
                                                 "x": 1570,
                                                 "y": 780,
                                                 "wires": [
                                                     [
                                                         "8e9e06fd.870a08"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "450761a2.575e",
                                                 "type": "debug",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "active": false,
                                                 "tosidebar": true,
                                                 "console": false,
                                                 "tostatus": false,
                                                 "complete": "true",
                                                 "targetType": "full",
                                                 "statusVal": "",
                                                 "statusType": "auto",
                                                 "x": 1240,
                                                 "y": 340,
                                                 "wires": []
                                             },
                                             {
                                                 "id": "13719db3.07a702",
                                                 "type": "ioBroker in",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "topic": "0_userdata.0.stromverbrauch.*.*.reset",
                                                 "payloadType": "value",
                                                 "onlyack": "",
                                                 "func": "all",
                                                 "gap": "",
                                                 "fireOnStart": "false",
                                                 "x": 210,
                                                 "y": 220,
                                                 "wires": [
                                                     [
                                                         "80f66656.38dec8"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "7f7e5f9f.41f46",
                                                 "type": "change",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "topic & device",
                                                 "rules": [
                                                     {
                                                         "t": "change",
                                                         "p": "topic",
                                                         "pt": "msg",
                                                         "from": "(.*)\\.use_time_date",
                                                         "fromt": "re",
                                                         "to": "$1",
                                                         "tot": "str"
                                                     },
                                                     {
                                                         "t": "set",
                                                         "p": "device",
                                                         "pt": "msg",
                                                         "to": "topic",
                                                         "tot": "msg"
                                                     },
                                                     {
                                                         "t": "change",
                                                         "p": "device",
                                                         "pt": "msg",
                                                         "from": ".*[\\.,\\/](.*)",
                                                         "fromt": "re",
                                                         "to": "$1",
                                                         "tot": "str"
                                                     }
                                                 ],
                                                 "action": "",
                                                 "property": "",
                                                 "from": "",
                                                 "to": "",
                                                 "reg": false,
                                                 "x": 2300,
                                                 "y": 780,
                                                 "wires": [
                                                     [
                                                         "453a7a8d.9c72f4"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "c208dc2e.5880a",
                                                 "type": "ioBroker in",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "topic": "0_userdata.0.stromverbrauch.*.*.power",
                                                 "payloadType": "value",
                                                 "onlyack": "",
                                                 "func": "all",
                                                 "gap": "",
                                                 "fireOnStart": "false",
                                                 "x": 210,
                                                 "y": 560,
                                                 "wires": [
                                                     [
                                                         "729a31f7.1f0d"
                                                     ]
                                                 ]
                                             },
                                             {
                                                 "id": "ec03eb7f.ecf038",
                                                 "type": "ioBroker in",
                                                 "z": "2c7d577a.9b4378",
                                                 "name": "",
                                                 "topic": "0_userdata.0.stromverbrauch.*.*.start",
                                                 "payloadType": "value",
                                                 "onlyack": "",
                                                 "func": "all",
                                                 "gap": "",
                                                 "fireOnStart": "false",
                                                 "x": 210,
                                                 "y": 280,
                                                 "wires": [
                                                     [
                                                         "cc6771bb.13f14"
                                                     ]
                                                 ]
                                             }
                                          ]
                                          

                                          Ich bin jetzt ja auch faul und nutze den sourceanlytics.

                                          J Offline
                                          J Offline
                                          Jonny 0
                                          schrieb am zuletzt editiert von
                                          #54

                                          @mickym

                                          Der einfachste Weg wie oben angesprochen wurde war der zielführende.
                                          Ich habe sogar festgestellt, das die Reset funktion nicht nötig ist.
                                          Die WB stellt automatisch den Wert zurück und fängt um 0.00 Uhr neu mit zählen an.

                                          Danke an alle.

                                          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

                                          335

                                          Online

                                          32.5k

                                          Benutzer

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