Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Stromverbrauch protokollieren

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Stromverbrauch protokollieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • XBiT
      XBiT @special_b last edited by

      @special_b

      schau dir Sourceanalytix an damit kannst du deine Zählerstände aufzeichnen... der Rest ist nur Visualisierung und je nach Visu-Adapter anders...

      S 1 Reply Last reply Reply Quote 0
      • S
        special_b @XBiT last edited by

        @xbit

        Sourceanalytics läuft, damit bekomme ich aber maximal eine Tägliche Auswertung. Ich will aber wissen wann wir wieviel Strom verbrauchen.

        mfg

        Special_B

        XBiT 1 Reply Last reply Reply Quote 0
        • XBiT
          XBiT @special_b last edited by

          @special_b

          na der Rest ist doch SQL, History etc. Adapter Sache.

          Bei mir SQL und schaut so aus:

          Verbrauch.png

          1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @special_b last edited by

            @special_b
            Du brauchst doch lediglich zwei DP für den Wert und den letzten Zählerstand und ein Blockly, das Dir per Zeitplan alle x Minuten die Differenz der Zählerstände wegschreibt.
            Den DP mit der errechneten Differenz historisierst Du.

            S 1 Reply Last reply Reply Quote 0
            • S
              special_b @Codierknecht last edited by

              @codierknecht
              DP sind Datenpunkte? Was ist Blockly? Einen Adapter namens Blockly finde ich nicht, da wird mir eine Javascript Skriptausführung angeboten. Ist es das?

              mfg

              Special_B

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @special_b last edited by

                @special_b
                Blockly generiert Dir JavaScript. Die meisten kommen damit besser zurecht, aber wenn Dir JS lieber ist, kannst Du natürlich auch gleich mit JS da rangehen.
                Blockly ist kein Adapter, sondern wird mit JavaScript "mitgeliefert".
                Und ja - ein "DP" ist ein Datenpunkt.
                Ich habe davon 3, um damit alles zu protokollieren was ich so brauche.

                • Aktueller Zählerstand
                • Laufender Tagesverbrauch
                • Berechneter Tagesverbrauch. Der wird nachts geschrieben und historisiert.

                0a518770-c48e-4604-a4d4-5da37642ccb7-grafik.png

                S 1 Reply Last reply Reply Quote 0
                • S
                  special_b @Codierknecht last edited by special_b

                  @codierknecht

                  Danke. Aber ich komme da nicht weiter.

                  Bei mir sieht es aktuell so aus:

                  Blockly.jpg

                  Soweit ich bisher duchgestiegen bin, müssen die Elemente verbunden werden, oder? Bisher müsste das so funktionieren:

                  Wenn sich das Objekt 1_8_0__255 geändert hat, müsste die Variable NeuerZählerstand den neuesten Zählerstand bekommen.

                  Aber wie kann ich die Berechnung dann damit verbinden? Wie bekomme ich das Ergebnis in die Variable LetzterVerbrauch? Wie kann ich dann die Rücksetzung des alten Zählerstandes noch mit dran hängen?

                  mfg

                  Special_B

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @special_b last edited by

                    @special_b
                    1.) Du solltest die Variable nicht mit „Wert von“ besetzen, sondern mit dem Baustein „Wert“. Der verbirgt sich bei den Triggern und heißt zunächst „Objekt ID“.
                    2.) Dann folgt ein „Setze Letzter_Verbrauch auf Neuer_Zaehlerstand - Alter_Zaehlerstand“
                    3.) Wenn Duden Verbrauch historisieren willst, kannst Du ihn dann in einen eigenen DP schreiben.

                    Leider alles ohne Bild. Bin bis Montag meilenweit weg von meinem ioB 😁
                    Vielleicht kann ja jemand aushelfen 😉

                    S 1 Reply Last reply Reply Quote 0
                    • S
                      special_b @Codierknecht last edited by

                      @codierknecht

                      Danke. So sieht es jetzt aus:
                      Blockly1.jpg

                      Wie bekomme ich dann noch den Zählerstand in den Wert?
                      Und was muss ich beim Datenpunkt noch mit reinschreiben dass ich den Verbrauch historieren kann?

                      mfg

                      Special_B

                      Homoran 1 Reply Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @special_b last edited by

                        @special_b sagte in Stromverbrauch protokollieren:

                        Wie bekomme ich dann noch den Zählerstand in den Wert?

                        aktualisiere Datenpunkt mit letzter Verbrauch

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          special_b last edited by

                          Irgendwie kann ich auch nicht testen, die Javascript Instanz lässt sich nicht aktivieren. Hm.

                          Ich habe kaum was laufen aber der RAM ist trotzdem ziemlich voll.

                          Da bin ich schwer am überlegen ob ich wirklich den Raspi wegtuen soll und lieber auf dem alten Mac Mini eine VM mit irgendeinem Linux aufsetzen sollte. Da hätte ich ein bisschen mehr RAM.

                          mfg

                          Special_B

                          Homoran 1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @special_b last edited by

                            @special_b wahrscheinlich hat sich die Instanz beendet, da ein Skript Amok läuft.
                            Das sollte dann auch im log stehen.

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              special_b @Homoran last edited by

                              @homoran
                              Danke. Etwa so:
                              Blockly2.jpg

                              mfg

                              Special_B

                              1 Reply Last reply Reply Quote 0
                              • S
                                special_b @Homoran last edited by

                                @homoran

                                Das sind die Fehler im Log:

                                Log.jpg

                                mfg

                                Special_B

                                Codierknecht 1 Reply Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @special_b last edited by

                                  @special_b
                                  So, bin wieder am Start 😁

                                  Fangen wir mal bei Adam und Eva an:
                                  Dein Zählerstand kommt schon als absoluter Wert? Du musst also keine Impulse zählen?

                                  Was willst Du denn alles historisieren?
                                  Den Tagesverbrauch? Den Verbrauch in einer bestimmten Zeiteinheit? Die bezogene Leistung zwischen zwei Zählerständen?

                                  S 1 Reply Last reply Reply Quote 0
                                  • S
                                    special_b @Codierknecht last edited by

                                    @codierknecht
                                    Ja, der Zählerstand wird vom Smartmeter Adapter bereits als absoluter Wert mit 4 Kommastellen ausgelesen. Seit ich den funktionierenden Pin bekommen habe läuft das.

                                    Tagesauswertungen liefen bereits von Sourceanalytics, hab ich aber aktuell wieder rausgenommen.

                                    Am liebsten wäre mir, wenn ich eine Tagesverlaufskurve erstellen könnte. Also alle 10 oder 15 Minuten eine Säule im Diagramm oder eben ein Punkt auf der Linie wieviel Strom bezogen wurde.

                                    Dann kann man ja immer noch leicht aus den Werten den Tagesverbrauch protokollieren.

                                    mfg

                                    Special_B

                                    Homoran Codierknecht 2 Replies Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @special_b last edited by

                                      @special_b sagte in Stromverbrauch protokollieren:

                                      Also alle 10 oder 15 Minuten eine Säule im Diagramm oder eben ein Punkt auf der Linie wieviel Strom bezogen wurde.

                                      so?

                                      Screenshot_20220930-192109_Firefox.jpg

                                      das ist einfach live der Wert vom Smartmeter alle 6 Sekunden (und vom Wechselrichter)

                                      1 Reply Last reply Reply Quote 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @special_b last edited by

                                        Also ich mache es so, dass ich zwischen zwei Impulsen die Zeit ermittle und mir damit die während der Impulse (durchschnittlich) bezogene Leistung errechne.
                                        Den Tagesverbrauch logge ich auch noch, auch wenn das in SA schon drin ist. Was man hat, hat man 😉

                                        Dazu habe ich verschiedene Datenpunkte:

                                        • Aktuelle Leistung
                                          Wird mit der durchschnittlich zwischen 2 Impulsen bezogenen Leistung gefüttert
                                        • Aktueller Zählerstand
                                          Benötige ich, da ich Impulse zähle. Fällt bei Dir weg
                                        • Laufender Verbrauch
                                          Zählt am Tag den auflaufenden Verbrauch
                                        • Berechneter Tagesverbrauch
                                          Wird nachts geschrieben und historisiert

                                        1d872e98-5cb4-43d1-bbb7-0d213ae6cba9-grafik.png

                                        Wenn Du bei Dir auf die Änderung des Zählerstandes triggerst, kannst Du über den Baustein Wert den aktuellen Stand und über Vorheriger Wert den vorherigen Wert ermitteln.
                                        Über Zeitstempel und Vorheriger Zeitstempel kommt man (mit einfacher Substraktion) an die verstrichenen Sekunden. Daraus die Leistung zu errechnen ist dann simpel.
                                        Die kann man dann historisieren und 'ne schöne Grafik bauen, um die bezogene Leistung im Tagesverlauf darzustellen.

                                        4ae6a0d4-a6b8-4df2-afc3-6711016b7986-grafik.png

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          special_b last edited by

                                          Alle 6 Sekunden brauche ich eigentlich nicht, mir würde alle 10 Minuten oder so reichen. Also am besten nach Zeitplan, um 0:00 Uhr das erste mal, um 23:50 das letzte mal. Dann könnte man um 0:00 Uhr auch den Tagesverbrauch speichern.

                                          Was ich momentan nicht ganz so verstehe ist bei meiner Zeile: Setze NeuerZählerstand auf Wert: Wie kann ich da angeben dass hier der Wert der Objekt ID vom Verbrauchszähler genommen wird?
                                          Und wie komme ich dann mit dem Datenpunkt weiter sodass dann der Wert historisiert werden kann?

                                          mfg

                                          Special_B

                                          Codierknecht Homoran 2 Replies Last reply Reply Quote 0
                                          • Codierknecht
                                            Codierknecht Developer Most Active @special_b last edited by

                                            @special_b sagte in Stromverbrauch protokollieren:

                                            Was ich momentan nicht ganz so verstehe ist bei meiner Zeile: Setze NeuerZählerstand auf Wert: Wie kann ich da angeben dass hier der Wert der Objekt ID vom Verbrauchszähler genommen wird?

                                            So wie das in Deinem Script aussieht, ist es relativ sinnbefreit.
                                            Du hast doch schon den jeweils absoluten Zählerstand vorliegen. Also brauchst Du da ja nix an den DP ändern.
                                            Was Du brauchst ist ein DP um den Verbrauch zu loggen.
                                            Du musst Dir also unterhalb von 0_userdata.0 einen numerischen DP anlegen, in den Du jeweils den ermittelten Verbrauch im Zeitraum schreibst.

                                            7444cd19-8656-4ff5-bb56-61034c1f2288-image.png

                                            Schritt für Schritt - programming for runaways 😉

                                            • Die Variable verbrauch wird beim Start des Scriptes auf 0 gesetzt und in die Variable zaehlerstand der aktuelle Stand Deines Zählers eingelesen.
                                            • Alle 10 Minuten wird vom jetzigen Zählerstand der zuletzt gemerkte Wert abgezogen.
                                              Das ist der Verbrauch in den letzten 10 Minuten.
                                            • In der Variablen zaehlerstand wird jetzt der aktuelle Wert "gemerkt".
                                              Der wird ja für den nächsten Durchlauf in 10 Minuten wieder benötigt.
                                            • In den DP für den Verbrauch wird jetzt der ermittelte Wert eingetragen.
                                              Diesen DP musst Du historisieren!

                                            Den Tagesverbrauch sollte Dir SourceAnalytics ja bereits sauber protokollieren.

                                            Ich hoffe das war jetzt einigermaßen verständlich 😉

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            633
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            42
                                            4473
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo