Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. E3DC Hauskraftwerk steuern

NEWS

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

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

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

E3DC Hauskraftwerk steuern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3.5k Beiträge 70 Kommentatoren 1.6m Aufrufe 61 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.
  • S stevie77

    @ArnoD Das ist jetzt ein bisschen komisch...nachts um 2 Uhr wird PV-Leistung für den 4. August angezeigt, obwohl die Sonne noch gar nicht aufgegangen ist:

    be5228dd-a0b8-4e9b-aa9b-ce4b133686ef-image.png

    Der Wert kommt da her: 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh

    7569c44e-fd45-461b-9480-aa9164e0e56a-image.png

    Müsste der Wert vielleicht zum Tagesende gelöscht werden? Andererseits weiß ich gar nicht, was das für ein Wert sein soll, also wo die Zahl herkommt...am Vortag (3. August) war die Summe aus Anlage 1 und 2 viel höher (korrekt im Diagramm)...
    Hat das damit zu tun, dass das Diagramm jetzt öfters aktualisiert wird und nicht nur nachts um 22 Uhr wie früher?

    Edit: Um 6 Uhr morgens hab ich eben draufgesehen, da hatte sich das Problem wieder gelöst. Ich kann jetzt nicht sagen, ob es mit dem Neuzeichnen des Diagramms (wegen aktualisierter Wetterprognose) um/ab 6 Uhr zu tun hat, oder ob relativ zeitgleich der Start der PV-Erzeugung den State auf 0 gesetzt hat...oder beides...jedenfalls passt es (spätestens) wieder, sobald ab ca. 6 Uhr neuer Strom erzeugt wird. Wäre aber vielleicht trotzdem schön, wenn das Diagramm keinen Phantomstrom anzeigen würde. ;-)

    A Online
    A Online
    ArnoD
    schrieb am zuletzt editiert von
    #219

    @stevie77
    0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh ist die Summe von PV-Leistung Leistungsmesser 0 (sPvLeistung_kWh) und Leistungsmesser 1 (sEinspeiserLeistung_kWh).
    Dieser Wert wird immer aktualisiert wenn sich bei Leistungsmesser 0 was ändert. In meinem Fall also bei dem Wert von sourceanalytix .
    Da muss sich anscheinend bei dir der Wert um 2 Uhr geändert haben. Ob jetzt einer der beiden Zähler dann 21 kWh angezeigt hat oder beide kann ich dir so leider nicht sagen, aber getriggert wird immer auf Leistungsmesser 0 das ist die Variable sPvLeistung_kWh.
    Sourceanalytix löscht die Werte automatisch um 0:00 Uhr und Zählt wierder von 0 kWh, sodass eigentlich nichts gelöscht werden muss.

    1 Antwort Letzte Antwort
    0
    • smartboartS smartboart

      @ArnoD
      Hi Arno,
      ich habe gestern auch umgestellt.
      Der Istwert in der Prognose aus Source Analytics ( welchen ich mit meinem eigen Zähler füttere) ist schön mitgewachsen und wurde auch richtig angezeigt. Leider ist der Baken heute weg.
      Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
      Wann holst du den letzten wert ab?

      A Online
      A Online
      ArnoD
      schrieb am zuletzt editiert von
      #220

      @smartboart
      Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
      Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
      Beispiel:
      Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.

      smartboartS 1 Antwort Letzte Antwort
      0
      • smartboartS smartboart

        @ArnoD
        Hi Arno,
        ich habe gestern auch umgestellt.
        Der Istwert in der Prognose aus Source Analytics ( welchen ich mit meinem eigen Zähler füttere) ist schön mitgewachsen und wurde auch richtig angezeigt. Leider ist der Baken heute weg.
        Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
        Wann holst du den letzten wert ab?

        A Online
        A Online
        ArnoD
        schrieb am zuletzt editiert von
        #221

        @smartboart sagte in E3DC Hauskraftwerk steuern:

        Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
        Wann holst du den letzten wert ab?

        Ab Zeile 1207 im Script:
        on({id: sPvLeistung_kWh,change: "ne"}, function (obj){

        1 Antwort Letzte Antwort
        0
        • A Online
          A Online
          ArnoD
          schrieb am zuletzt editiert von
          #222

          Habe mal eine Frage an euch. :-)
          Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
          Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

          S smartboartS 2 Antworten Letzte Antwort
          0
          • A ArnoD

            Habe mal eine Frage an euch. :-)
            Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
            Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

            S Offline
            S Offline
            stevie77
            schrieb am zuletzt editiert von stevie77
            #223

            @ArnoD sagte in E3DC Hauskraftwerk steuern:

            Habe mal eine Frage an euch. :-)
            Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
            Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

            Da die Zählweise von Sourceanalytix so ungenau ist, ist das Diagramm nicht so besonders aussagekräftig. Heute 7 kWh Abweichung. Dazu wurde lange die 2. Anlage nicht gezählt. Ich hab da also kaum belastbare Daten. Tendenziell liegen beide gleich oft richtig oder daneben. Am ehesten trifft es die Prognose Auto...

            Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
            Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.

            PS: Da jetzt also bei Änderung des PV-Werts das Diagramm aktualisiert wird, wird die bisherige Aktualisierung um 22 Uhr wahrscheinlich weggefallen sein? Vermutlich wird deshalb das Diagramm nicht mehr mit meinem korrigierten Ist-Wert aktualisiert (schedule({hour: 21, minute: 58}, function(){...}). Könntest du das evtl. wieder einbauen, dass das um 22 Uhr nochmals passiert? Schadet ja nicht... ;-)
            Ich kann die Funktion leider nicht von außen mit meinem Skript aufrufen. Oder ist das viel Code um das Diagramm einmal neu aufzubauen?

            Dass nur Anlage 1 das triggert ist auch deswegen problematisch, weil meine 2. Anlage in West manchmal etwas länger läuft als Süd und dann ein (wenn auch kleiner) Teil der Erzeugung fehlen könnte. Ich habe eine Funktion geschrieben um mir die Gesamtleistung und -erzeugung beider Anlagen in ner Statuszeile anzuzeigen, da habe ich zwei Trigger definiert, so dass Änderungen an beiden Anlagen die Werte neu berechnen.

            smartboartS S 2 Antworten Letzte Antwort
            0
            • S stevie77

              @ArnoD sagte in E3DC Hauskraftwerk steuern:

              Habe mal eine Frage an euch. :-)
              Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
              Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

              Da die Zählweise von Sourceanalytix so ungenau ist, ist das Diagramm nicht so besonders aussagekräftig. Heute 7 kWh Abweichung. Dazu wurde lange die 2. Anlage nicht gezählt. Ich hab da also kaum belastbare Daten. Tendenziell liegen beide gleich oft richtig oder daneben. Am ehesten trifft es die Prognose Auto...

              Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
              Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.

              PS: Da jetzt also bei Änderung des PV-Werts das Diagramm aktualisiert wird, wird die bisherige Aktualisierung um 22 Uhr wahrscheinlich weggefallen sein? Vermutlich wird deshalb das Diagramm nicht mehr mit meinem korrigierten Ist-Wert aktualisiert (schedule({hour: 21, minute: 58}, function(){...}). Könntest du das evtl. wieder einbauen, dass das um 22 Uhr nochmals passiert? Schadet ja nicht... ;-)
              Ich kann die Funktion leider nicht von außen mit meinem Skript aufrufen. Oder ist das viel Code um das Diagramm einmal neu aufzubauen?

              Dass nur Anlage 1 das triggert ist auch deswegen problematisch, weil meine 2. Anlage in West manchmal etwas länger läuft als Süd und dann ein (wenn auch kleiner) Teil der Erzeugung fehlen könnte. Ich habe eine Funktion geschrieben um mir die Gesamtleistung und -erzeugung beider Anlagen in ner Statuszeile anzuzeigen, da habe ich zwei Trigger definiert, so dass Änderungen an beiden Anlagen die Werte neu berechnen.

              smartboartS Offline
              smartboartS Offline
              smartboart
              schrieb am zuletzt editiert von smartboart
              #224

              @stevie77 sagte in E3DC Hauskraftwerk steuern:

              Da die Zählweise von Sourceanalytix so ungenau ist,

              Vermutlich hast du ne zu hohe poll zeit im modbusadapter eingestellt?
              Aber ich halte von der messung auch nichts , da wird der ganze Ertrag gezählt auch der Ertrag von dem du garnichts hast, also auch die Wandlungs und Batterieverluste. Die will ich nicht messen und auch nicht bezahlen.
              Deshalb messe ich hinter der Wechselrichter einspeisung mit nem Separaten Modbus Messgerät. Der Wert ist immer kleiner als das was die Anlage ausspuckt, aber das Korrigiere ich mit dem Korrekturfaktor.

              Edit:
              natürlich wird dann auch nachts gemessen, wenn aus der Batterie entnommen wird, wird ja auch erzeugt. Da das was entnommen wird auch wieder geladen wird, stimmt die Prognose ja auch einigermaßen. Vorteil ist, dass ich die Verluste eben nicht mit messe. Ich entnehme ja weniger aus der Batterie als ich zum laden brauche.

              Natürlich wird dann ab 0 uhr das verbraucht was ich am tag zuvor geladen habe, aber es wird ja wieder am nächsten tag geladen, somit die Meßwerte schon verwendbar für die Prognose...Sehe ich zumindest so..
              Nicht jeder hat halt einen Einspeisezähler und deshalb hat Sourcanalytics schon seine Berechtigung. Aber der internen Ertragszähler wäre mir zu ungenau, bzw. die Ablesung wäre zu meinen Ungunsten.
              Sieht man ja auch im Hausverbrauch.. Wenn ich 300 Watt verbrauche , zeigt mir der Wechselrichter 400 an..Klar verluste eben. Aber bezahlen will ich die net. Kurz der interne Erzeugungszähler zeigt mehr als tasächlich als Nutzbare Energie eingespeist und entnommen wird. Und das ist für mich relevant, nicht das was die Anlage verbraucht.

              S 1 Antwort Letzte Antwort
              0
              • A ArnoD

                Habe mal eine Frage an euch. :-)
                Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
                Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

                smartboartS Offline
                smartboartS Offline
                smartboart
                schrieb am zuletzt editiert von
                #225

                @ArnoD sagte in E3DC Hauskraftwerk steuern:

                Habe mal eine Frage an euch. :-)
                Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
                Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

                Messe erst seit Ende Juli..deshalb hat das von mir noch keine Aussagekraft. Aber was ich bis jetzt sehe, hält es sich die Waage...mal ist Forcast genau dran mal Proplanta..
                Vlt. ist die auto Prognose genau dazwischen besser

                1 Antwort Letzte Antwort
                0
                • A ArnoD

                  @smartboart
                  Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
                  Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
                  Beispiel:
                  Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.

                  smartboartS Offline
                  smartboartS Offline
                  smartboart
                  schrieb am zuletzt editiert von
                  #226

                  @ArnoD sagte in E3DC Hauskraftwerk steuern:

                  @smartboart
                  Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
                  Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
                  Beispiel:
                  Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.

                  Danke dann weiß ich was ich ändern muss.

                  smartboartS 1 Antwort Letzte Antwort
                  0
                  • smartboartS smartboart

                    @ArnoD sagte in E3DC Hauskraftwerk steuern:

                    @smartboart
                    Vermutlich selbes Problem wie stevie77 wenn du den Tageszähler vor 0:00:01 zurücksetzt wird der Wert von gestern gelöscht.
                    Der Wert wird ständig bei Änderung für den aktuellen Tag gespeichert.
                    Beispiel:
                    Wenn du am 04.08.2020 um 23:58 auf 0 setzt wird 0 noch für den 04.08.2020 gespeichert.

                    Danke dann weiß ich was ich ändern muss.

                    smartboartS Offline
                    smartboartS Offline
                    smartboart
                    schrieb am zuletzt editiert von
                    #227

                    @ArnoD
                    Warum hattest du die Automatikanwahl Bedingung für Einstellung 2 ausgeklammert?

                    A 1 Antwort Letzte Antwort
                    0
                    • smartboartS smartboart

                      @stevie77 sagte in E3DC Hauskraftwerk steuern:

                      Da die Zählweise von Sourceanalytix so ungenau ist,

                      Vermutlich hast du ne zu hohe poll zeit im modbusadapter eingestellt?
                      Aber ich halte von der messung auch nichts , da wird der ganze Ertrag gezählt auch der Ertrag von dem du garnichts hast, also auch die Wandlungs und Batterieverluste. Die will ich nicht messen und auch nicht bezahlen.
                      Deshalb messe ich hinter der Wechselrichter einspeisung mit nem Separaten Modbus Messgerät. Der Wert ist immer kleiner als das was die Anlage ausspuckt, aber das Korrigiere ich mit dem Korrekturfaktor.

                      Edit:
                      natürlich wird dann auch nachts gemessen, wenn aus der Batterie entnommen wird, wird ja auch erzeugt. Da das was entnommen wird auch wieder geladen wird, stimmt die Prognose ja auch einigermaßen. Vorteil ist, dass ich die Verluste eben nicht mit messe. Ich entnehme ja weniger aus der Batterie als ich zum laden brauche.

                      Natürlich wird dann ab 0 uhr das verbraucht was ich am tag zuvor geladen habe, aber es wird ja wieder am nächsten tag geladen, somit die Meßwerte schon verwendbar für die Prognose...Sehe ich zumindest so..
                      Nicht jeder hat halt einen Einspeisezähler und deshalb hat Sourcanalytics schon seine Berechtigung. Aber der internen Ertragszähler wäre mir zu ungenau, bzw. die Ablesung wäre zu meinen Ungunsten.
                      Sieht man ja auch im Hausverbrauch.. Wenn ich 300 Watt verbrauche , zeigt mir der Wechselrichter 400 an..Klar verluste eben. Aber bezahlen will ich die net. Kurz der interne Erzeugungszähler zeigt mehr als tasächlich als Nutzbare Energie eingespeist und entnommen wird. Und das ist für mich relevant, nicht das was die Anlage verbraucht.

                      S Offline
                      S Offline
                      stevie77
                      schrieb am zuletzt editiert von stevie77
                      #228

                      @smartboart sagte in E3DC Hauskraftwerk steuern:

                      @stevie77 sagte in E3DC Hauskraftwerk steuern:

                      Da die Zählweise von Sourceanalytix so ungenau ist,

                      Vermutlich hast du ne zu hohe poll zeit im modbusadapter eingestellt?

                      Ich hab das so übernommen, wie hier angegeben: https://buanet.de/2018/02/integration-eines-e3-dc-hauskraftwerks-in-iobroker/

                      1 Antwort Letzte Antwort
                      0
                      • smartboartS smartboart

                        @ArnoD
                        Warum hattest du die Automatikanwahl Bedingung für Einstellung 2 ausgeklammert?

                        A Online
                        A Online
                        ArnoD
                        schrieb am zuletzt editiert von
                        #229

                        @smartboart sagte in E3DC Hauskraftwerk steuern:

                        @ArnoD
                        Warum hattest du die Automatikanwahl Bedingung für Einstellung 2 ausgeklammert?

                        Uuups, da habe ich mich in der Zeile vertan. Muss natürlich bei 2 rein und bei 1 raus, da das die Standardeinstellung von E3DC ohne Steuerung ist.

                        1 Antwort Letzte Antwort
                        0
                        • smartboartS smartboart

                          @ArnoD
                          Hallo Arno,
                          ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
                          Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.
                          Den TagesZähler resette ich jetzt täglich um 23:59Uhr.
                          Mit deinem Script würde ich die Werte gerne um 23:58 abholen...
                          Spricht da was dagegen, weil du die Werte von Source analytiys schon viel früher abrufst...

                          A Online
                          A Online
                          ArnoD
                          schrieb am zuletzt editiert von
                          #230

                          @smartboart sagte in E3DC Hauskraftwerk steuern:

                          ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
                          Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.

                          Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)

                          smartboartS 1 Antwort Letzte Antwort
                          0
                          • S stevie77

                            @ArnoD sagte in E3DC Hauskraftwerk steuern:

                            Habe mal eine Frage an euch. :-)
                            Welche Prognose trifft bei euch eher zu, die von Proplanta oder Forecast ?
                            Ich habe mir die Diagramme vom Juni/Juli mal angeschaut und Proplanta hat eine bessere Trefferquote als Forecast, jedenfalls bei mir.

                            Da die Zählweise von Sourceanalytix so ungenau ist, ist das Diagramm nicht so besonders aussagekräftig. Heute 7 kWh Abweichung. Dazu wurde lange die 2. Anlage nicht gezählt. Ich hab da also kaum belastbare Daten. Tendenziell liegen beide gleich oft richtig oder daneben. Am ehesten trifft es die Prognose Auto...

                            Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
                            Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.

                            PS: Da jetzt also bei Änderung des PV-Werts das Diagramm aktualisiert wird, wird die bisherige Aktualisierung um 22 Uhr wahrscheinlich weggefallen sein? Vermutlich wird deshalb das Diagramm nicht mehr mit meinem korrigierten Ist-Wert aktualisiert (schedule({hour: 21, minute: 58}, function(){...}). Könntest du das evtl. wieder einbauen, dass das um 22 Uhr nochmals passiert? Schadet ja nicht... ;-)
                            Ich kann die Funktion leider nicht von außen mit meinem Skript aufrufen. Oder ist das viel Code um das Diagramm einmal neu aufzubauen?

                            Dass nur Anlage 1 das triggert ist auch deswegen problematisch, weil meine 2. Anlage in West manchmal etwas länger läuft als Süd und dann ein (wenn auch kleiner) Teil der Erzeugung fehlen könnte. Ich habe eine Funktion geschrieben um mir die Gesamtleistung und -erzeugung beider Anlagen in ner Statuszeile anzuzeigen, da habe ich zwei Trigger definiert, so dass Änderungen an beiden Anlagen die Werte neu berechnen.

                            S Offline
                            S Offline
                            stevie77
                            schrieb am zuletzt editiert von
                            #231

                            @stevie77 sagte in E3DC Hauskraftwerk steuern:

                            Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
                            Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.

                            Okay, ich hab' mir jetzt ne Liste angelegt, was ich bei einem Update des Skripts alles ändern muss. Unter anderem ergänze ich das früher vorhandene

                            schedule({hour: 22, minute: 1}, function(){makeJson();});
                            

                            Damit wird bei mir zum Tagesende, wenn ich mal draufschaue, wie gut die Vorhersage eingetroffen ist, nun wieder mein nach oben korrigierter Gesamterzeugungswert auch im Diagramm angezeigt.

                            A 2 Antworten Letzte Antwort
                            0
                            • S stevie77

                              @stevie77 sagte in E3DC Hauskraftwerk steuern:

                              Ich glaube dieser Wert, der da bei mir falsch angezeigt wird, ist der Anteil meiner 2. PV-Anlage. Warum ist mir noch nicht ganz klar...
                              Hatte seither kurz vor 22 Uhr einen Korrekturfaktor auf das Ist-Ergebnis losgelassen (1.088 trifft es meist ganz gut), aber das klappt jetzt mit der neuen Version nicht mehr. Mal sehen, ob ich das gefixt bekomme.

                              Okay, ich hab' mir jetzt ne Liste angelegt, was ich bei einem Update des Skripts alles ändern muss. Unter anderem ergänze ich das früher vorhandene

                              schedule({hour: 22, minute: 1}, function(){makeJson();});
                              

                              Damit wird bei mir zum Tagesende, wenn ich mal draufschaue, wie gut die Vorhersage eingetroffen ist, nun wieder mein nach oben korrigierter Gesamterzeugungswert auch im Diagramm angezeigt.

                              A Online
                              A Online
                              ArnoD
                              schrieb am zuletzt editiert von
                              #232

                              @stevie77
                              wie korrigierst du deinen Gesamterzeugungswert ?
                              Rechnest du den einmal zu einem festen Zeitpunkt dazu ?

                              S 1 Antwort Letzte Antwort
                              0
                              • A ArnoD

                                @stevie77
                                wie korrigierst du deinen Gesamterzeugungswert ?
                                Rechnest du den einmal zu einem festen Zeitpunkt dazu ?

                                S Offline
                                S Offline
                                stevie77
                                schrieb am zuletzt editiert von
                                #233

                                @ArnoD Ja, hatte ich hier beschrieben...

                                1 Antwort Letzte Antwort
                                0
                                • A Online
                                  A Online
                                  ArnoD
                                  schrieb am zuletzt editiert von
                                  #234

                                  Warum rechnest du den nicht bei jeder Aktualisierung vom Wert dazu. ?

                                  S 1 Antwort Letzte Antwort
                                  0
                                  • A ArnoD

                                    @smartboart sagte in E3DC Hauskraftwerk steuern:

                                    ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
                                    Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.

                                    Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)

                                    smartboartS Offline
                                    smartboartS Offline
                                    smartboart
                                    schrieb am zuletzt editiert von
                                    #235

                                    @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                    @smartboart sagte in E3DC Hauskraftwerk steuern:

                                    ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
                                    Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.

                                    Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)

                                    klar...
                                    heute ist der state den ich für dein script verwende...
                                    javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute

                                    Tag ist quasi dann der komplette Tageswert nach 00:01Uhr.
                                    genauso für Woche , Monat und Jahr...Immer der laufende Wert und dann am Ende der Wert von gestern, letze Woche, letzter Monat, letztes Jahr.

                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute',    0, {name: 'lezter Zählerstand heute', type: 'number', unit: 'kW/h' });
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag',    0, {name: 'Zählerstand gestern', type: 'number', unit: 'kW/h' });
                                    
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche',    0, {name: 'lezter Zählerstand laufende Woche', type: 'number', unit: 'kW/h' });
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche',    0, {name: 'Zählerstand Woche', type: 'number', unit: 'kW/h' });
                                    
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat',    0, {name: 'lezter Zählerstand laufender Monat', type: 'number', unit: 'kW/h' });
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat',    0, {name: 'Zählerstand Monat', type: 'number', unit: 'kW/h' });
                                    
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr',    0, {name: 'lezter Zählerstand laufendes Jahr', type: 'number', unit: 'kW/h' });
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr',    0, {name: 'Zählerstand Jahr', type: 'number', unit: 'kW/h' });
                                    
                                    createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt',    0, {name: 'Zählerstand Alt', type: 'number', unit: 'kW/h' });
                                    
                                    
                                    var debug = true;
                                    var logging = true;
                                    var difference = null;
                                    
                                    const idSolarproduktionGesamt = 'modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/;
                                    
                                    const idSolarproduktionHeute = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute';
                                    const idSolarproduktionGestern = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag';
                                    
                                    const idSolarproduktionaktuellewoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche';
                                    const idSolarproduktionwoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche';
                                    
                                    const idSolarproduktionaktuellermonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat';
                                    const idSolarproduktionmonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat';
                                    
                                    const idSolarproduktionaktuellesjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr';
                                    const idSolarproduktionjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr';
                                    
                                    const idAlt = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt';
                                    
                                    //scriptstart
                                    
                                    //on(idSolarproduktionGesamt, function(data) {
                                    schedule("*/5 * * * *", function () {
                                        var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val;
                                        setState(idAlt,SolarproduktionGesamt,true);
                                        if(debug)log('Schedule Funktion Zähler merken u. Difference Berechnung einleiten. Aktueller Zählerstand ist: ' + SolarproduktionGesamt);
                                    
                                    });
                                    
                                    on(idAlt, function(data) {
                                        if(debug)log("Alter Zählerwert: " + data.oldState.val + "  aktueller Zählerwert: " + data.newState.val);
                                                difference = (data.newState.val - data.oldState.val); 
                                                setTimeout(function(){Berechnen();},200);
                                                if(debug)log("Differenz berechnet " + difference);  
                                    });
                                    
                                    //Berechne laufende Tage Wochen Monate
                                    function Berechnen () {    
                                    var heute = parseFloat(getState(idSolarproduktionHeute).val);
                                    var aktuellewoche = getState(idSolarproduktionaktuellewoche).val;
                                    var aktuellermonat = getState(idSolarproduktionaktuellermonat).val;  
                                    var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val;
                                    var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val;  
                                    setState(idSolarproduktionHeute, Math.round((heute + difference)*100)/100,true);
                                    setState(idSolarproduktionaktuellewoche,Math.round((aktuellewoche + difference)*100)/100,true);
                                    setState(idSolarproduktionaktuellermonat,Math.round((aktuellermonat + difference)*100)/100,true); 
                                    setState(idSolarproduktionaktuellesjahr,Math.round((aktuellesjahr + difference)*100)/100,true); 
                                    setState(idAlt,SolarproduktionGesamt,true);
                                    if(debug)log("Zählerstand heute aktualisiert auf: " +heute );
                                    }
                                    
                                    // täglich um 24:03 tageszähler auf null setzen
                                    schedule({hour: 0, minute: 1}, function () { 
                                    var heute = getState(idSolarproduktionHeute).val;   
                                    setState(idSolarproduktionGestern,heute,true); 
                                    setStateDelayed(idSolarproduktionHeute,0,true,1000);
                                    if(logging)log("Tageszähler genullt und Tag gestern gesetzt");
                                    });
                                    
                                    // Sonntags um 23:58 aktuelle Woche auf 0 setzen
                                    schedule ("58 23 * * 0", function () { 
                                    var aktuellewoche = getState(idSolarproduktionaktuellewoche).val;    
                                    setState(idSolarproduktionwoche,aktuellewoche,true); 
                                    setStateDelayed(idSolarproduktionaktuellewoche,0,true,1000);
                                    if(logging)log("Wochenzähler genullt und letzte Woche gesetzt");
                                    });
                                    
                                    // am monatsanfang um 01:01 aktueller monat auf 0 setzen
                                    schedule("1 0 1 * *", function() { 
                                    var aktuellermonat = getState(idSolarproduktionaktuellermonat).val;    
                                    setState(idSolarproduktionmonat,aktuellermonat,true); 
                                    setStateDelayed(idSolarproduktionaktuellermonat,0,true,1000);
                                    if(logging)log("Monatsszähler genullt und letzzten Monat gesetzt");
                                    });
                                    
                                    // am 1.Januar um 00:01 aktuelles jahr auf 0 setzen
                                    schedule("1 0 1 1 *", function() { 
                                    var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val;    
                                    setState(idSolarproduktionjahr,aktuellesjahr,true); 
                                    setStateDelayed(idSolarproduktionaktuellesjahr,0,true,1000);
                                    if(logging)log("Jahressszähler genullt und letzztes Jahr gesetzt");
                                    });
                                    
                                    
                                    smartboartS A 2 Antworten Letzte Antwort
                                    0
                                    • smartboartS smartboart

                                      @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                      @smartboart sagte in E3DC Hauskraftwerk steuern:

                                      ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
                                      Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.

                                      Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)

                                      klar...
                                      heute ist der state den ich für dein script verwende...
                                      javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute

                                      Tag ist quasi dann der komplette Tageswert nach 00:01Uhr.
                                      genauso für Woche , Monat und Jahr...Immer der laufende Wert und dann am Ende der Wert von gestern, letze Woche, letzter Monat, letztes Jahr.

                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute',    0, {name: 'lezter Zählerstand heute', type: 'number', unit: 'kW/h' });
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag',    0, {name: 'Zählerstand gestern', type: 'number', unit: 'kW/h' });
                                      
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche',    0, {name: 'lezter Zählerstand laufende Woche', type: 'number', unit: 'kW/h' });
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche',    0, {name: 'Zählerstand Woche', type: 'number', unit: 'kW/h' });
                                      
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat',    0, {name: 'lezter Zählerstand laufender Monat', type: 'number', unit: 'kW/h' });
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat',    0, {name: 'Zählerstand Monat', type: 'number', unit: 'kW/h' });
                                      
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr',    0, {name: 'lezter Zählerstand laufendes Jahr', type: 'number', unit: 'kW/h' });
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr',    0, {name: 'Zählerstand Jahr', type: 'number', unit: 'kW/h' });
                                      
                                      createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt',    0, {name: 'Zählerstand Alt', type: 'number', unit: 'kW/h' });
                                      
                                      
                                      var debug = true;
                                      var logging = true;
                                      var difference = null;
                                      
                                      const idSolarproduktionGesamt = 'modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/;
                                      
                                      const idSolarproduktionHeute = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute';
                                      const idSolarproduktionGestern = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag';
                                      
                                      const idSolarproduktionaktuellewoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche';
                                      const idSolarproduktionwoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche';
                                      
                                      const idSolarproduktionaktuellermonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat';
                                      const idSolarproduktionmonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat';
                                      
                                      const idSolarproduktionaktuellesjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr';
                                      const idSolarproduktionjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr';
                                      
                                      const idAlt = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt';
                                      
                                      //scriptstart
                                      
                                      //on(idSolarproduktionGesamt, function(data) {
                                      schedule("*/5 * * * *", function () {
                                          var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val;
                                          setState(idAlt,SolarproduktionGesamt,true);
                                          if(debug)log('Schedule Funktion Zähler merken u. Difference Berechnung einleiten. Aktueller Zählerstand ist: ' + SolarproduktionGesamt);
                                      
                                      });
                                      
                                      on(idAlt, function(data) {
                                          if(debug)log("Alter Zählerwert: " + data.oldState.val + "  aktueller Zählerwert: " + data.newState.val);
                                                  difference = (data.newState.val - data.oldState.val); 
                                                  setTimeout(function(){Berechnen();},200);
                                                  if(debug)log("Differenz berechnet " + difference);  
                                      });
                                      
                                      //Berechne laufende Tage Wochen Monate
                                      function Berechnen () {    
                                      var heute = parseFloat(getState(idSolarproduktionHeute).val);
                                      var aktuellewoche = getState(idSolarproduktionaktuellewoche).val;
                                      var aktuellermonat = getState(idSolarproduktionaktuellermonat).val;  
                                      var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val;
                                      var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val;  
                                      setState(idSolarproduktionHeute, Math.round((heute + difference)*100)/100,true);
                                      setState(idSolarproduktionaktuellewoche,Math.round((aktuellewoche + difference)*100)/100,true);
                                      setState(idSolarproduktionaktuellermonat,Math.round((aktuellermonat + difference)*100)/100,true); 
                                      setState(idSolarproduktionaktuellesjahr,Math.round((aktuellesjahr + difference)*100)/100,true); 
                                      setState(idAlt,SolarproduktionGesamt,true);
                                      if(debug)log("Zählerstand heute aktualisiert auf: " +heute );
                                      }
                                      
                                      // täglich um 24:03 tageszähler auf null setzen
                                      schedule({hour: 0, minute: 1}, function () { 
                                      var heute = getState(idSolarproduktionHeute).val;   
                                      setState(idSolarproduktionGestern,heute,true); 
                                      setStateDelayed(idSolarproduktionHeute,0,true,1000);
                                      if(logging)log("Tageszähler genullt und Tag gestern gesetzt");
                                      });
                                      
                                      // Sonntags um 23:58 aktuelle Woche auf 0 setzen
                                      schedule ("58 23 * * 0", function () { 
                                      var aktuellewoche = getState(idSolarproduktionaktuellewoche).val;    
                                      setState(idSolarproduktionwoche,aktuellewoche,true); 
                                      setStateDelayed(idSolarproduktionaktuellewoche,0,true,1000);
                                      if(logging)log("Wochenzähler genullt und letzte Woche gesetzt");
                                      });
                                      
                                      // am monatsanfang um 01:01 aktueller monat auf 0 setzen
                                      schedule("1 0 1 * *", function() { 
                                      var aktuellermonat = getState(idSolarproduktionaktuellermonat).val;    
                                      setState(idSolarproduktionmonat,aktuellermonat,true); 
                                      setStateDelayed(idSolarproduktionaktuellermonat,0,true,1000);
                                      if(logging)log("Monatsszähler genullt und letzzten Monat gesetzt");
                                      });
                                      
                                      // am 1.Januar um 00:01 aktuelles jahr auf 0 setzen
                                      schedule("1 0 1 1 *", function() { 
                                      var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val;    
                                      setState(idSolarproduktionjahr,aktuellesjahr,true); 
                                      setStateDelayed(idSolarproduktionaktuellesjahr,0,true,1000);
                                      if(logging)log("Jahressszähler genullt und letzztes Jahr gesetzt");
                                      });
                                      
                                      
                                      smartboartS Offline
                                      smartboartS Offline
                                      smartboart
                                      schrieb am zuletzt editiert von
                                      #236

                                      @ArnoD
                                      hast du dein Tabellenscript schon gesehen..
                                      Hab mit Hilfe von Paul alles in ein Json gepackt und diverse Berechnungen dazu genommen. States sind auch entfallen.. Mit MaterialDesign Json List ne schöne Sache Liste füllt sich vortlaufend weiter...

                                      1 Antwort Letzte Antwort
                                      0
                                      • smartboartS smartboart

                                        @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                        @smartboart sagte in E3DC Hauskraftwerk steuern:

                                        ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
                                        Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.

                                        Würdest du mir dass Script zur Verfügung stellen ? Würde auch gerne ohne zusätzlichen sourceanalytics Adapter die Werte hochzählen. :-)

                                        klar...
                                        heute ist der state den ich für dein script verwende...
                                        javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute

                                        Tag ist quasi dann der komplette Tageswert nach 00:01Uhr.
                                        genauso für Woche , Monat und Jahr...Immer der laufende Wert und dann am Ende der Wert von gestern, letze Woche, letzter Monat, letztes Jahr.

                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute',    0, {name: 'lezter Zählerstand heute', type: 'number', unit: 'kW/h' });
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag',    0, {name: 'Zählerstand gestern', type: 'number', unit: 'kW/h' });
                                        
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche',    0, {name: 'lezter Zählerstand laufende Woche', type: 'number', unit: 'kW/h' });
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche',    0, {name: 'Zählerstand Woche', type: 'number', unit: 'kW/h' });
                                        
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat',    0, {name: 'lezter Zählerstand laufender Monat', type: 'number', unit: 'kW/h' });
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat',    0, {name: 'Zählerstand Monat', type: 'number', unit: 'kW/h' });
                                        
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr',    0, {name: 'lezter Zählerstand laufendes Jahr', type: 'number', unit: 'kW/h' });
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr',    0, {name: 'Zählerstand Jahr', type: 'number', unit: 'kW/h' });
                                        
                                        createState('javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt',    0, {name: 'Zählerstand Alt', type: 'number', unit: 'kW/h' });
                                        
                                        
                                        var debug = true;
                                        var logging = true;
                                        var difference = null;
                                        
                                        const idSolarproduktionGesamt = 'modbus.0.holdingRegisters.12288_E3DC_Lieferung Summe'/*12288 E3dc Lieferung Summe*/;
                                        
                                        const idSolarproduktionHeute = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.heute';
                                        const idSolarproduktionGestern = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.tag';
                                        
                                        const idSolarproduktionaktuellewoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellewoche';
                                        const idSolarproduktionwoche = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.woche';
                                        
                                        const idSolarproduktionaktuellermonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellermonat';
                                        const idSolarproduktionmonat = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.monat';
                                        
                                        const idSolarproduktionaktuellesjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.aktuellesjahr';
                                        const idSolarproduktionjahr = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.jahr';
                                        
                                        const idAlt = 'javascript.1.PVAnlage.Ertrag.E3DC.Solarproduktion.Alt';
                                        
                                        //scriptstart
                                        
                                        //on(idSolarproduktionGesamt, function(data) {
                                        schedule("*/5 * * * *", function () {
                                            var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val;
                                            setState(idAlt,SolarproduktionGesamt,true);
                                            if(debug)log('Schedule Funktion Zähler merken u. Difference Berechnung einleiten. Aktueller Zählerstand ist: ' + SolarproduktionGesamt);
                                        
                                        });
                                        
                                        on(idAlt, function(data) {
                                            if(debug)log("Alter Zählerwert: " + data.oldState.val + "  aktueller Zählerwert: " + data.newState.val);
                                                    difference = (data.newState.val - data.oldState.val); 
                                                    setTimeout(function(){Berechnen();},200);
                                                    if(debug)log("Differenz berechnet " + difference);  
                                        });
                                        
                                        //Berechne laufende Tage Wochen Monate
                                        function Berechnen () {    
                                        var heute = parseFloat(getState(idSolarproduktionHeute).val);
                                        var aktuellewoche = getState(idSolarproduktionaktuellewoche).val;
                                        var aktuellermonat = getState(idSolarproduktionaktuellermonat).val;  
                                        var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val;
                                        var SolarproduktionGesamt = getState(idSolarproduktionGesamt).val;  
                                        setState(idSolarproduktionHeute, Math.round((heute + difference)*100)/100,true);
                                        setState(idSolarproduktionaktuellewoche,Math.round((aktuellewoche + difference)*100)/100,true);
                                        setState(idSolarproduktionaktuellermonat,Math.round((aktuellermonat + difference)*100)/100,true); 
                                        setState(idSolarproduktionaktuellesjahr,Math.round((aktuellesjahr + difference)*100)/100,true); 
                                        setState(idAlt,SolarproduktionGesamt,true);
                                        if(debug)log("Zählerstand heute aktualisiert auf: " +heute );
                                        }
                                        
                                        // täglich um 24:03 tageszähler auf null setzen
                                        schedule({hour: 0, minute: 1}, function () { 
                                        var heute = getState(idSolarproduktionHeute).val;   
                                        setState(idSolarproduktionGestern,heute,true); 
                                        setStateDelayed(idSolarproduktionHeute,0,true,1000);
                                        if(logging)log("Tageszähler genullt und Tag gestern gesetzt");
                                        });
                                        
                                        // Sonntags um 23:58 aktuelle Woche auf 0 setzen
                                        schedule ("58 23 * * 0", function () { 
                                        var aktuellewoche = getState(idSolarproduktionaktuellewoche).val;    
                                        setState(idSolarproduktionwoche,aktuellewoche,true); 
                                        setStateDelayed(idSolarproduktionaktuellewoche,0,true,1000);
                                        if(logging)log("Wochenzähler genullt und letzte Woche gesetzt");
                                        });
                                        
                                        // am monatsanfang um 01:01 aktueller monat auf 0 setzen
                                        schedule("1 0 1 * *", function() { 
                                        var aktuellermonat = getState(idSolarproduktionaktuellermonat).val;    
                                        setState(idSolarproduktionmonat,aktuellermonat,true); 
                                        setStateDelayed(idSolarproduktionaktuellermonat,0,true,1000);
                                        if(logging)log("Monatsszähler genullt und letzzten Monat gesetzt");
                                        });
                                        
                                        // am 1.Januar um 00:01 aktuelles jahr auf 0 setzen
                                        schedule("1 0 1 1 *", function() { 
                                        var aktuellesjahr = getState(idSolarproduktionaktuellesjahr).val;    
                                        setState(idSolarproduktionjahr,aktuellesjahr,true); 
                                        setStateDelayed(idSolarproduktionaktuellesjahr,0,true,1000);
                                        if(logging)log("Jahressszähler genullt und letzztes Jahr gesetzt");
                                        });
                                        
                                        
                                        A Online
                                        A Online
                                        ArnoD
                                        schrieb am zuletzt editiert von
                                        #237

                                        @smartboart

                                        Super, Danke.:+1:
                                        Werde mich am Wochenende mal damit beschäftigen. :-)

                                        1 Antwort Letzte Antwort
                                        0
                                        • A ArnoD

                                          Warum rechnest du den nicht bei jeder Aktualisierung vom Wert dazu. ?

                                          S Offline
                                          S Offline
                                          stevie77
                                          schrieb am zuletzt editiert von
                                          #238

                                          @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                          Warum rechnest du den nicht bei jeder Aktualisierung vom Wert dazu. ?

                                          Ich vermute mal, dass der Faktor bei einmal einfacher zu bestimmen ist (ist ja auch ein Annäherungsprozess) bzw. ich wollte nicht darüber nachdenken, ob es ungenauer wird, wenn ich jede Sekunde oder bei jeder Modbus-Wertänderung einen Korrekturfaktor anwende (vor allem darf ich ja nicht den Gesamtwert mehrfach multiplizieren, sondern müsste irgendwie an den Wert rankommen, der bei Sourceanalytix addiert wird). Verstehe eh nicht so genau, wie Sourceanalytix genau funktioniert, also wie da die Summe gebildet wird. War ja auch kein Problem seither, als nur einmal am Tag das Diagramm aus dem Wert aufgebaut wurde. Reicht mir auch weiterhin den Korrekturfaktor erst abends anzuwenden, vorher schaue ich sowieso nicht drauf...

                                          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

                                          758

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe