Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Wie erzeugten Strom pro Tag berechnen?

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    274

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

Wie erzeugten Strom pro Tag berechnen?

Geplant Angeheftet Gesperrt Verschoben Visualisierung
32 Beiträge 7 Kommentatoren 2.8k Aufrufe 7 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mickymM mickym

    Wenn Du InfluxDB hast - kannst Du doch über aggregateWindow bestimmte Summen und Mittelwerte abfragen. Wenn man diese Aggregatefunktion aber selber definieren will, da bin ich im MOment noch nicht dahinter gestiegen

    D Offline
    D Offline
    diwoma
    schrieb am zuletzt editiert von
    #14

    @mickym

    @mickym said in Wie erzeugten Strom pro Tag berechnen?:

    Wenn Du InfluxDB hast - kannst Du doch über aggregateWindow bestimmte Summen und Mittelwerte abfragen. Wenn man diese Aggregatefunktion aber selber definieren will, da bin ich im MOment noch nicht dahinter gestiegen

    Genau, das habe ich auch gehofft, aber bin dann an den Funktionen gescheitert. Ich kann das, was ich haben will nur aus den "Zählerständen" ermitteln. und die fehlen mir eben.

    -- diwoma

    ioBroker in LX-Container in Proxmox
    Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

    W Ralla66R 2 Antworten Letzte Antwort
    0
    • D diwoma

      @mickym

      @mickym said in Wie erzeugten Strom pro Tag berechnen?:

      Wenn Du InfluxDB hast - kannst Du doch über aggregateWindow bestimmte Summen und Mittelwerte abfragen. Wenn man diese Aggregatefunktion aber selber definieren will, da bin ich im MOment noch nicht dahinter gestiegen

      Genau, das habe ich auch gehofft, aber bin dann an den Funktionen gescheitert. Ich kann das, was ich haben will nur aus den "Zählerständen" ermitteln. und die fehlen mir eben.

      W Offline
      W Offline
      warhammer73
      schrieb am zuletzt editiert von
      #15

      @diwoma

      Ich sehe Du bist am selben Problem am verzweifeln.
      Sowas wie den durchschnittlichen Autarkiegrad pro Tag gibts halt nicht fertig.

      1 Antwort Letzte Antwort
      0
      • D diwoma

        @diwoma
        Oder mache ich mir das Leben schwer, wenn ich versuche, die kWh aus der Leistung der vorherigen Messung und der Zeit-Differenz zur aktuellen Messung ermittle und dann auf einen Datenpunkt addiere?

        Prinzipiell brauche ich sowas wie einen aktuellen Zählerstand. Ich bekomme ca. alle Sekunden ein Update. Würde es reichen, nur den aktuellen Wert jeweils zu kumulieren um mir einen "virtuellen" Zählerstand zu erstellen?

        Ich nehme an, bei Messungen im Sekundentakt wäre die Abweichung nicht so groß.
        Oder habe ich da auch einen Gedankenfehler?

        BananaJoeB Online
        BananaJoeB Online
        BananaJoe
        Most Active
        schrieb am zuletzt editiert von
        #16

        Erst schreibst du das:

        @diwoma sagte in Wie erzeugten Strom pro Tag berechnen?:

        @diwoma
        Oder mache ich mir das Leben schwer, wenn ich versuche, die kWh aus der Leistung der vorherigen Messung und der Zeit-Differenz zur aktuellen Messung ermittle und dann auf einen Datenpunkt addiere?

        Prinzipiell brauche ich sowas wie einen aktuellen Zählerstand. Ich bekomme ca. alle Sekunden ein Update. Würde es reichen, nur den aktuellen Wert jeweils zu kumulieren um mir einen "virtuellen" Zählerstand zu erstellen?

        Ich nehme an, bei Messungen im Sekundentakt wäre die Abweichung nicht so groß.
        Oder habe ich da auch einen Gedankenfehler?

        und nun das:

        @bananajoe said in Wie erzeugten Strom pro Tag berechnen?:
        in einer ..h Einheit? Für den Tag? Als Gesamtzähler? Wenn ja hast du doch alles was du brauchst um es mit dem >> SourceAnalytix zu verheiraten, ggf. mit einem Skript dazwischen

        Und genau das interessiert mich nicht, sondern die Werte die kein ..h am Ende haben.
        Und Source-Analytics ist zu oversized für mich, da ich keine Kosten ausrechnen will und das ist der Hauptsinn des > Adapters, wenn man keine Kostenstruktur hinterlegt funktionert er überhaupt nicht (nach schneller Prüfung)

        Also, hast du nun einen Zählerstand oder nicht? Und ein Zählerstand wäre immer kWh oder Wh denn es ist ja ein Zählerstand, keine Momentwert. Die Zähler zählen Verbrauchswerte und bei Strom dient dazu der Faktor Zeit(spanne) als Bezugspunkt wie bei Wasser es das Volumen wäre.

        ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

        mickymM D 2 Antworten Letzte Antwort
        0
        • BananaJoeB BananaJoe

          Erst schreibst du das:

          @diwoma sagte in Wie erzeugten Strom pro Tag berechnen?:

          @diwoma
          Oder mache ich mir das Leben schwer, wenn ich versuche, die kWh aus der Leistung der vorherigen Messung und der Zeit-Differenz zur aktuellen Messung ermittle und dann auf einen Datenpunkt addiere?

          Prinzipiell brauche ich sowas wie einen aktuellen Zählerstand. Ich bekomme ca. alle Sekunden ein Update. Würde es reichen, nur den aktuellen Wert jeweils zu kumulieren um mir einen "virtuellen" Zählerstand zu erstellen?

          Ich nehme an, bei Messungen im Sekundentakt wäre die Abweichung nicht so groß.
          Oder habe ich da auch einen Gedankenfehler?

          und nun das:

          @bananajoe said in Wie erzeugten Strom pro Tag berechnen?:
          in einer ..h Einheit? Für den Tag? Als Gesamtzähler? Wenn ja hast du doch alles was du brauchst um es mit dem >> SourceAnalytix zu verheiraten, ggf. mit einem Skript dazwischen

          Und genau das interessiert mich nicht, sondern die Werte die kein ..h am Ende haben.
          Und Source-Analytics ist zu oversized für mich, da ich keine Kosten ausrechnen will und das ist der Hauptsinn des > Adapters, wenn man keine Kostenstruktur hinterlegt funktionert er überhaupt nicht (nach schneller Prüfung)

          Also, hast du nun einen Zählerstand oder nicht? Und ein Zählerstand wäre immer kWh oder Wh denn es ist ja ein Zählerstand, keine Momentwert. Die Zähler zählen Verbrauchswerte und bei Strom dient dazu der Faktor Zeit(spanne) als Bezugspunkt wie bei Wasser es das Volumen wäre.

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

          @bananajoe @diwoma Ja und dann könnte man sich bei Influx-DB über das aggregate window einfach den letzten Zählerstand pro Tag ausgeben lassen und die Differenz selbst berechnen.

          Den letzten Zählerstand out of the box geht mit den InfluxDB tools.

          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
          • D diwoma

            @mickym

            @mickym said in Wie erzeugten Strom pro Tag berechnen?:

            Wenn Du InfluxDB hast - kannst Du doch über aggregateWindow bestimmte Summen und Mittelwerte abfragen. Wenn man diese Aggregatefunktion aber selber definieren will, da bin ich im MOment noch nicht dahinter gestiegen

            Genau, das habe ich auch gehofft, aber bin dann an den Funktionen gescheitert. Ich kann das, was ich haben will nur aus den "Zählerständen" ermitteln. und die fehlen mir eben.

            Ralla66R Offline
            Ralla66R Offline
            Ralla66
            Most Active
            schrieb am zuletzt editiert von
            #18

            Kann h nicht annähernd berechnet werden wenn jede Minute der Momentwert addiert wird innerhalb einer Stunde ?
            Richtung Mittelwert errechnen.

            BananaJoeB 1 Antwort Letzte Antwort
            0
            • Ralla66R Ralla66

              Kann h nicht annähernd berechnet werden wenn jede Minute der Momentwert addiert wird innerhalb einer Stunde ?
              Richtung Mittelwert errechnen.

              BananaJoeB Online
              BananaJoeB Online
              BananaJoe
              Most Active
              schrieb am zuletzt editiert von
              #19

              @ralla66 klar, mit einer Fehlerquote +/- 100% ... also nein, nicht wirklich seriös weil der es ständig extrem schwankt. Sekündlich.
              hier ein Beispiel (Werte alle 15 Sekunden):
              8623fa44-88ab-444c-9359-cad5db7a8b19-image.png da kann ich noch viel weiter reinzoomen und es wird immer krakeliger

              ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

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

                Wie gesagt - wenn es ein Zählerstand ist, dann braucht man sich über eine Influx DB Abfrage den letzten im 24h Window ausgeben lassen und muss dann halt selbst rechnen:

                768edffe-c9ca-4395-b990-c5f17a389d64-image.png

                Ich bin nur nicht dahintergekommen, wie man die fn Funktion in dem aggregateWindow selbst definieren kann.

                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
                • BananaJoeB BananaJoe

                  @ralla66 klar, mit einer Fehlerquote +/- 100% ... also nein, nicht wirklich seriös weil der es ständig extrem schwankt. Sekündlich.
                  hier ein Beispiel (Werte alle 15 Sekunden):
                  8623fa44-88ab-444c-9359-cad5db7a8b19-image.png da kann ich noch viel weiter reinzoomen und es wird immer krakeliger

                  Ralla66R Offline
                  Ralla66R Offline
                  Ralla66
                  Most Active
                  schrieb am zuletzt editiert von Ralla66
                  #21

                  @bananajoe

                  und unseriös, getriggert jede Sekunde mit Filter für Max / Min Wert entfernen ?
                  Wie triggert das denn der Zähler vom Versorger. Alle 200 us ?
                  Oder wie wird das gemessen.

                  mickymM BananaJoeB 2 Antworten Letzte Antwort
                  0
                  • W warhammer73

                    Hallo,

                    ich bin gerade komplett lost.

                    Ich bekomme vom Fronius leider keine automatisch ermittelten Tageswerte für den erzeugten Strom etc. pro Tag.
                    Das einzige was ich in der InfluxDB habe ist eine Liste mit Timestamps und der zu diesem Zeitpunkt erzeugte Strom.

                    Nur wie bekomme ich aus dieser Liste jetzt den insgesamt erzeugten Strom (Wenigstens näherungsweise)?

                    Danke!

                    P Offline
                    P Offline
                    picky
                    schrieb am zuletzt editiert von picky
                    #22

                    @warhammer73
                    Wäre es nicht am einfachsten, du hängst eine einfache Tasmota Steckdose oder einen Shelly zum einspeisen dazwischen ?
                    Ich habe Tasmota Steckdose wo ich einspeiße und einen Shelly3em (3 phasen) für meinen Stromverbrauch.
                    Zum auswerten benutze ich diese 2 Scripte, es legt dann auch die Datenpunkte für Tag, Monat usw. an.

                    Tasmota:

                    /*
                    * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                    *
                    * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                    *
                    * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Tasmota Geräte.
                    * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung
                    * und Performance entwickelt.
                    * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind.
                    *
                    * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf
                    * https://www.kreyenborg.koeln
                    * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der,
                    * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht!
                    *
                    * Ansprüche gegenüber Dritten bestehen nicht.
                    *
                    * Skript Name: Tasmota-Verbrauch
                    * Skript Version: 1.1
                    * Erstell-Datum: 19. März 2021
                    *
                    */
                    
                    // Datenpunkte neu erstellen
                    var ueberschreiben = false;
                    
                    // Hauptdatenpunkt unterhalb javascript
                    var datenpunkt = "TasmotaVerbrauch.";
                    
                    // Verbrauchs Objekte der einzelnen Tasmota
                    const objekt = ["gesamt", "dieses_jahr", "letztes_jahr", "letzter_monat", "dieser_monat", "letzte_woche",
                    "diese_woche", "gestern", "heute", "alter_wert", "aktueller_wert"];
                    
                    // Beschreibung der Objekte
                    const beschreibung = ["Gesamter Vebrauch des Tasmota", "Verbrauch aktuelles Jahr", "Verbrauch letztes Jahr",
                    "Verbrauch letzten Monat", "Verbrauch aktueller Monat", "Verbrauch letzte Woche", "Verbrauch diese Woche",
                    "Verbrauch gestern", "Verbrauch heute", "Messwert alt", "Messwert neu"];
                    
                    // Datenpunkt der Tasmota Geräte (Standard: sonoff.0)
                    var tasmota_dp = "sonoff.0";
                    
                    // Datenpunkte der Tasmota (!!! Bitte nicht ändern !!!)
                    //const tasmotaDps = $('state[id=' + tasmota_dp + '.*.ENERGY_Total]');
                    const tasmotaDps = $('state[id=' + tasmota_dp + '.*.ENERGY.Total]');
                    
                    
                    // Datenpunkte der Tasmota Namen (!!! Bitte nicht ändern !!!)
                    const tasmotaDpsName = $('state[id=' + tasmota_dp + '.*.DeviceName]');
                    
                    // Tasmota Verbrauch aktualisieren - nachts um 00:00 Uhr
                    function tasmota_vebrauch_tag() {
                    // Nochmals das Tagesupdate durchlaufen, damit die restlichen Werte gelesen werden
                    tasmota_verbrauch_update();
                    
                    // Datumsvariable
                    var heute = new Date();
                    
                    // Heute zu Gestern verschieben. Täglich um 00:00 Uhr
                    verschiebe_verbrauch_objekt("heute", "gestern");
                    log ("Tasmota Verbrauch: Werte für gestern und heute aktualisiert!");
                    
                    // aktuelle Woche in letzte Woche verschieben. Am Montag um 00:00 Uhr
                    if (heute.getDay() === 1) {
                    verschiebe_verbrauch_objekt("diese_woche", "letzte_woche");
                    log ("Tasmota Verbrauch: Werte für diese und letzte Woche aktualisiert!");
                    }
                    
                    // aktueller Monat in letzten Monat verschieben. Am 1. des Monats um 00:00 Uhr
                    if (heute.getDate() === 1) {
                    verschiebe_verbrauch_objekt("dieser_monat", "letzter_monat");
                    log ("Tasmota Verbrauch: Werte für diesen und letzten Monat aktualisiert!");
                    }
                    
                    // aktuelles Jahr in letztes Jahr verschieben. Am 1. des Monats am 1. Monat um 00:00 Uhr
                    if (heute.getDate() === 1 && heute.getMonth() === 0) {
                    verschiebe_verbrauch_objekt("dieses_jahr", "letztes_jahr");
                    log ("Tasmota Verbrauch: Werte für dieses und letztes Jahr aktualisiert!");
                    }
                    }
                    
                    // Tagesverbrauch alle 15 Min von der Original Variable des Tasmota in eigene Variable kopieren
                    function tasmota_verbrauch_update() {
                    var anzahl_updates = 0;
                    var anzahl_reboots = 0;
                    var anzahl_gleich = 0;
                    tasmotaDps.each(function (id, i) {
                    var tasmota_verbrauch = getState(id).val;
                    // Einige Tasmota haben keine Verbrauchswerte (noch nicht)
                    if (tasmota_verbrauch != null) {
                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                    var aktueller_wert = getState(tasmota_DP(id) + "aktueller_wert").val;
                    var alter_wert = 0;
                    // Prüfe alten und neuen Wert
                    if (tasmota_verbrauch > aktueller_wert) {
                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                    setState(tasmota_DP(id) + "alter_wert", aktueller_wert,true);
                    alter_wert = aktueller_wert;
                    anzahl_updates++;
                    }
                    if (aktueller_wert > tasmota_verbrauch) {
                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                    setState(tasmota_DP(id) + "alter_wert", 0,true);
                    alter_wert = tasmota_verbrauch;
                    anzahl_reboots++;
                    }
                    if (tasmota_verbrauch == aktueller_wert) {
                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                    alter_wert = aktueller_wert;
                    anzahl_gleich++;
                    }
                    
                    setState(tasmota_DP(id) + "aktueller_wert", tasmota_verbrauch);
                    // Alter und neuer Wert -> aktuelle Differenz
                    
                    var verbrauch = parseFloat(tasmota_verbrauch) - alter_wert;
                    // Tagesverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(id, "heute", verbrauch);
                    
                    // Wochenverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(id, "diese_woche", verbrauch);
                    
                    // Monatsverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(id, "dieser_monat", verbrauch);
                    
                    // Jahresverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(id, "dieses_jahr", verbrauch);
                    
                    // Gesamten Vebrauch aktualisieren
                    aktualisiere_vebrauch_objekt(id, "gesamt", verbrauch);
                    }
                    });
                    aktualisiere_namen();
                    log("Tasmota Verbrauch: Verbrauchswerte aktualisiert: " + anzahl_updates + " | Reboots korrigiert: " + anzahl_reboots + " | Unveränderte Werte: " + anzahl_gleich);
                    }
                    
                    // aktualisiert das jeweilige Verbrauchs-Objekt und addiert den Verbrauch dazu
                    function aktualisiere_vebrauch_objekt(dp, objekt, wert) {
                    var verbrauch = parseFloat(getState(tasmota_DP(dp) + objekt).val) + parseFloat(wert);
                    verbrauch = parseFloat(verbrauch.toFixed(3));
                    setState(tasmota_DP(dp) + objekt, verbrauch,true);
                    }
                    
                    // Verschiebt das jeweilige Verbrauchs-Objekt und nullt den Ursprung (Tag, Woche, Monat, Jahr)
                    function verschiebe_verbrauch_objekt(von, nach) {
                    $('state[id=*.' + datenpunkt + '*.' + von + ']').each(function (id, i) {
                    // Temporärer Gruppen-Datenpunkt
                    var tmp_dp = id.slice(0, -(von.length));
                    var verbrauch = getState(id).val;
                    if (verbrauch != null) {
                    setState(tmp_dp + nach, verbrauch,true);
                    }
                    // Setze heute zurück
                    setState(id, 0,true);
                    });
                    }
                    
                    // Funktion um die aktuellen Namen der Tasmota abzuholen
                    function aktualisiere_namen() {
                    tasmotaDpsName.each(function (id, i) {
                    setState(tasmota_DP_Name(id),String(getState(id).val),true);
                    });
                    }
                    
                    // Erstelle die benötigten Datenpunkte
                    function datenpunkte_erstellen() {
                    // Anzahl der gefundenen Tasmota
                    var anzahl = tasmotaDps.length;
                    
                    tasmotaDps.each(function (id, j) {
                    var initial_wert = 0;
                    for (var i = 0; i < objekt.length; i++) {
                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                    if (i > 8) {
                    initial_wert = getState(id).val;
                    }
                    createState(tasmota_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                    name: beschreibung[i],
                    desc: beschreibung[i],
                    type: "number",
                    role: "value.power",
                    unit: "kWh"
                    });
                    }
                    });
                    
                    // Alle Datenpunkte erstellt. Frage ersten Verbrauch ab!
                    log("Tasmota Verbrauch: Datenpunkte erstellt! Erster Verbrauch steht nach 1 Minute zur Verfügung! Anzahl gefundener Tasmota Datenpunkte: " + anzahl);
                    setTimeout(tasmota_verbrauch_update, 20000);
                    
                    // Datenpunkte für die Namen der Tasmota erstellen
                    tasmotaDpsName.each(function(id, j) {
                    createState(tasmota_DP_Name(id), "", ueberschreiben, {
                    name: "Name des Tasmota",
                    desc: "Name des Tasmota",
                    type: "string",
                    role: "value",
                    unit: ""
                    });
                    });
                    }
                    
                    function tasmota_DP(dp) {
                    dp = dp.split(".");
                    dp = datenpunkt + dp[2] + ".";
                    return dp;
                    }
                    
                    function tasmota_DP_Name(dp) {
                    dp = dp.split(".");
                    dp = datenpunkt + dp[2] + "." + dp[3];
                    return dp;
                    }
                    
                    function tasmota_verbrauch_erster_start() {
                    log("Tasmota Verbrauch: Erster Start des Skriptes! Datenpunkte werden erstellt!");
                    // Datenpunkte werden erstellt
                    datenpunkte_erstellen();
                    }
                    
                    // Erster Start und Initialisierung
                    tasmota_verbrauch_erster_start();
                    
                    // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen
                    schedule('*/1 * * * *', tasmota_verbrauch_update);
                    
                    // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen
                    schedule('0 0 * * *', tasmota_vebrauch_tag);
                    

                    shelly3em:

                    /*
                    * @copyright 2021 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                    *
                    * @author 2021 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                    *
                    * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Shelly Geräte.
                    * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung
                    * und Performance entwickelt.
                    * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind.
                    *
                    * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf
                    * https://www.kreyenborg.koeln
                    * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der,
                    * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht!
                    *
                    * Ansprüche gegenüber Dritten bestehen nicht.
                    *
                    * Skript Name: Shelly-Verbrauch
                    * Skript Version: 1.60
                    * Erstell-Datum: 08. Oktober 2021 | Update: 20. Juli 2022
                    *
                    */
                    
                    // Datenpunkte neu erstellen
                    var ueberschreiben = false;
                    
                    // Hauptdatenpunkt unterhalb javascript
                    var datenpunkt = "ShellyVerbrauch."; // Abschließender Punkt !!! WICHTIG !!!
                    
                    // Verbrauchs Objekte der einzelnen Shelly
                    var objekt = ["gesamt", "dieses_jahr", "letztes_jahr", "letzter_monat", "dieser_monat", "letzte_woche",
                    "diese_woche", "gestern", "heute", "alter_wert", "aktueller_wert"
                    ];
                    
                    // Beschreibung der Objekte
                    var beschreibung = ["Gesamter Vebrauch des Shelly", "Verbrauch aktuelles Jahr", "Verbrauch letztes Jahr",
                    "Verbrauch letzten Monat", "Verbrauch aktueller Monat", "Verbrauch letzte Woche", "Verbrauch diese Woche",
                    "Verbrauch gestern", "Verbrauch heute", "Messwert alt", "Messwert neu"
                    ];
                    
                    // Datenpunkt der Shelly (Standard: shelly.0)
                    var shelly_dp = "shelly.0";
                    
                    // Datenpunkte der Shelly (!!! Bitte nicht ändern !!!)
                    var shellyDps = $('state[id=' + shelly_dp + '.*.*.Energy]');
                    
                    // Datenpunkte der Shelly 3EM DP
                    var shelly3EMDps = $('state[id=' + shelly_dp + '.*.*.Total]');
                    
                    // Datenpunkte der Shelly 3EM DP - Total
                    var shelly3EMTotalDps = $('state[id=' + shelly_dp + '.*.*.ConsumedPower]');
                    
                    // Datenpunkte der Shelly 3EM DP - Total
                    var shelly3EMTotalReturned = $('state[id=' + shelly_dp + '.*.*.Total_Returned]');
                    
                    // Datenpunkte der Shelly Namen (!!! Bitte nicht ändern !!!)
                    var shellyDpsName = $('state[id=' + shelly_dp + '.*.name]');
                    
                    // Shelly Verbrauch aktualisieren - nachts um 00:00 Uhr
                    function shelly_vebrauch_tag() {
                    // Nochmals das Tagesupdate durchlaufen, damit die restlichen Werte gelesen werden
                    shelly_verbrauch_update();
                    
                    // Datumsvariable
                    var heute = new Date();
                    
                    // Heute zu Gestern verschieben. Täglich um 00:00 Uhr
                    verschiebe_verbrauch_objekt("heute", "gestern");
                    log("Shelly Verbrauch: Werte für gestern und heute aktualisiert!");
                    
                    // aktuelle Woche in letzte Woche verschieben. Am Montag um 00:00 Uhr
                    if (heute.getDay() === 1) {
                    verschiebe_verbrauch_objekt("diese_woche", "letzte_woche");
                    log("Shelly Verbrauch: Werte für diese und letzte Woche aktualisiert!");
                    }
                    
                    // aktueller Monat in letzten Monat verschieben. Am 1. des Monats um 00:00 Uhr
                    if (heute.getDate() === 1) {
                    verschiebe_verbrauch_objekt("dieser_monat", "letzter_monat");
                    log("Shelly Verbrauch: Werte für diesen und letzten Monat aktualisiert!");
                    }
                    
                    // aktuelles Jahr in letztes Jahr verschieben. Am 1. des Monats am 1. Monat um 00:00 Uhr
                    if (heute.getDate() === 1 && heute.getMonth() === 0) {
                    verschiebe_verbrauch_objekt("dieses_jahr", "letztes_jahr");
                    log("Shelly Verbrauch: Werte für dieses und letztes Jahr aktualisiert!");
                    }
                    }
                    
                    // Tagesverbrauch alle 15 Min von der Original Variable des Shelly in eigene Variable kopieren
                    function shelly_verbrauch_update() {
                    var anzahl_updates = 0;
                    var anzahl_reboots = 0;
                    var anzahl_gleich = 0;
                    shellyDps.each(function (id, i) {
                    var shelly_verbrauch = getState(id).val;
                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                    if (shelly_verbrauch != null) {
                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                    var aktueller_wert = getState(shelly_DP(id) + "aktueller_wert").val;
                    var alter_wert = 0;
                    // Prüfe alten und neuen Wert
                    if (shelly_verbrauch > aktueller_wert) {
                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                    setState(shelly_DP(id) + "alter_wert", aktueller_wert, true);
                    alter_wert = aktueller_wert;
                    anzahl_updates++;
                    }
                    if (aktueller_wert > shelly_verbrauch) {
                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                    setState(shelly_DP(id) + "alter_wert", 0, true);
                    alter_wert = 0;
                    anzahl_reboots++;
                    }
                    if (shelly_verbrauch == aktueller_wert) {
                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                    alter_wert = aktueller_wert;
                    anzahl_gleich++;
                    }
                    
                    setState(shelly_DP(id) + "aktueller_wert", shelly_verbrauch, true);
                    // Alter und neuer Wert -> aktuelle Differenz
                    
                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                    // Tagesverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "heute", verbrauch);
                    
                    // Wochenverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "diese_woche", verbrauch);
                    
                    // Monatsverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieser_monat", verbrauch);
                    
                    // Jahresverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieses_jahr", verbrauch);
                    
                    // Gesamten Vebrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "gesamt", verbrauch);
                    }
                    });
                    shelly3EMDps.each(function (id, i) {
                    var shelly_verbrauch = getState(id).val;
                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                    if (shelly_verbrauch != null) {
                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                    var aktueller_wert = getState(shelly_DP(id) + "aktueller_wert").val;
                    var alter_wert = 0;
                    // Prüfe alten und neuen Wert
                    if (shelly_verbrauch > aktueller_wert) {
                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                    setState(shelly_DP(id) + "alter_wert", aktueller_wert, true);
                    alter_wert = aktueller_wert;
                    anzahl_updates++;
                    }
                    if (aktueller_wert > shelly_verbrauch) {
                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                    setState(shelly_DP(id) + "alter_wert", 0, true);
                    alter_wert = 0;
                    anzahl_reboots++;
                    }
                    if (shelly_verbrauch == aktueller_wert) {
                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                    alter_wert = aktueller_wert;
                    anzahl_gleich++;
                    }
                    
                    setState(shelly_DP(id) + "aktueller_wert", shelly_verbrauch, true);
                    // Alter und neuer Wert -> aktuelle Differenz
                    
                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                    // Tagesverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "heute", verbrauch);
                    
                    // Wochenverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "diese_woche", verbrauch);
                    
                    // Monatsverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieser_monat", verbrauch);
                    
                    // Jahresverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieses_jahr", verbrauch);
                    
                    // Gesamten Vebrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "gesamt", verbrauch);
                    }
                    });
                    shelly3EMTotalDps.each(function (id, i) {
                    var shelly_verbrauch = getState(id).val;
                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                    if (shelly_verbrauch != null) {
                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                    var aktueller_wert = getState(shelly_DP(id) + "aktueller_wert").val;
                    var alter_wert = 0;
                    // Prüfe alten und neuen Wert
                    if (shelly_verbrauch > aktueller_wert) {
                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                    setState(shelly_DP(id) + "alter_wert", aktueller_wert, true);
                    alter_wert = aktueller_wert;
                    anzahl_updates++;
                    }
                    if (aktueller_wert > shelly_verbrauch) {
                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                    setState(shelly_DP(id) + "alter_wert", 0, true);
                    alter_wert = 0;
                    anzahl_reboots++;
                    }
                    if (shelly_verbrauch == aktueller_wert) {
                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                    alter_wert = aktueller_wert;
                    anzahl_gleich++;
                    }
                    
                    setState(shelly_DP(id) + "aktueller_wert", shelly_verbrauch, true);
                    // Alter und neuer Wert -> aktuelle Differenz
                    
                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                    // Tagesverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "heute", verbrauch);
                    
                    // Wochenverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "diese_woche", verbrauch);
                    
                    // Monatsverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieser_monat", verbrauch);
                    
                    // Jahresverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieses_jahr", verbrauch);
                    
                    // Gesamten Vebrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id), "gesamt", verbrauch);
                    }
                    });
                    shelly3EMTotalReturned.each(function (id, i) {
                    var shelly_verbrauch = getState(id).val;
                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                    if (shelly_verbrauch != null) {
                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                    var aktueller_wert = getState(shelly_DP(id, true) + "aktueller_wert").val;
                    var alter_wert = 0;
                    // Prüfe alten und neuen Wert
                    if (shelly_verbrauch > aktueller_wert) {
                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                    setState(shelly_DP(id, true) + "alter_wert", aktueller_wert, true);
                    alter_wert = aktueller_wert;
                    anzahl_updates++;
                    }
                    if (aktueller_wert > shelly_verbrauch) {
                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                    setState(shelly_DP(id, true) + "alter_wert", 0, true);
                    alter_wert = 0;
                    anzahl_reboots++;
                    }
                    if (shelly_verbrauch == aktueller_wert) {
                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                    alter_wert = aktueller_wert;
                    anzahl_gleich++;
                    }
                    
                    setState(shelly_DP(id, true) + "aktueller_wert", shelly_verbrauch, true);
                    // Alter und neuer Wert -> aktuelle Differenz
                    
                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                    // Tagesverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "heute", verbrauch);
                    
                    // Wochenverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "diese_woche", verbrauch);
                    
                    // Monatsverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "dieser_monat", verbrauch);
                    
                    // Jahresverbrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "dieses_jahr", verbrauch);
                    
                    // Gesamten Vebrauch aktualisieren
                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "gesamt", verbrauch);
                    }
                    });
                    aktualisiere_namen();
                    log("Shelly Verbrauch: Verbrauchswerte aktualisiert: " + anzahl_updates + " | Reboots korrigiert: " + anzahl_reboots + " | Unveränderte Werte: " + anzahl_gleich);
                    }
                    
                    // aktualisiert das jeweilige Verbrauchs-Objekt und addiert den Verbrauch dazu
                    function aktualisiere_vebrauch_objekt(dp, objekt, wert) {
                    // Hole alten Verbrauch
                    let alter_verbrauch = getState(dp + objekt).val;
                    let verbrauch = 0;
                    // Kein Wert vorhanden - nutze den übermittelten Wert
                    if (alter_verbrauch < 1 || alter_verbrauch == null) {
                    verbrauch = parseFloat(wert)
                    } else {
                    verbrauch = parseFloat(alter_verbrauch) + parseFloat(wert);
                    }
                    setState(dp + objekt, parseFloat(verbrauch.toFixed(2)), true);
                    }
                    
                    // Verschiebt das jeweilige Verbrauchs-Objekt und nullt den Ursprung (Tag, Woche, Monat, Jahr)
                    function verschiebe_verbrauch_objekt(von, nach) {
                    $('state[id=*.' + datenpunkt + '*.*.' + von + ']').each(function (id, i) {
                    // Temporärer Gruppen-Datenpunkt
                    var tmp_dp = id.slice(0, -(von.length));
                    var verbrauch = getState(id).val;
                    if (verbrauch != null) {
                    setState(tmp_dp + nach, verbrauch, true);
                    }
                    // Setze "von" zurück
                    setState(id, 0, true);
                    });
                    }
                    
                    // Funktion um die aktuellen Namen des Shelly abzuholen
                    function aktualisiere_namen() {
                    if (typeof extendObject === "function") {
                    shellyDpsName.each(function (id, i) {
                    if (existsState(id)) {
                    setState(shelly_DP_Name(id), String(getState(id).val), true);
                    extendObject("javascript.0." + shelly_DP_Name_Main(id), {
                    common: {
                    name: String(getState(id).val),
                    desc: String(getState(id).val)
                    },
                    type: "channel"
                    });
                    }
                    });
                    }
                    }
                    
                    // Erstelle die benötigten Datenpunkte
                    function datenpunkte_erstellen() {
                    // Anzahl der gefundenen Shelly
                    var anzahl = shellyDps.length;
                    
                    shellyDps.each(function (id, j) {
                    var initial_wert = 0.0;
                    for (var i = 0; i < objekt.length; i++) {
                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                    if (i > 8) {
                    initial_wert = getState(id).val;
                    }
                    createState(shelly_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                    name: beschreibung[i],
                    desc: beschreibung[i],
                    type: "number",
                    role: "value.power",
                    unit: "Wh"
                    });
                    }
                    });
                    
                    // Anzahl der gefundenen Shelly 3EM
                    var anzahl_3em = shelly3EMDps.length;
                    
                    shelly3EMDps.each(function (id, j) {
                    var initial_wert = 0.0;
                    for (var i = 0; i < objekt.length; i++) {
                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                    if (i > 8) {
                    initial_wert = getState(id).val;
                    }
                    createState(shelly_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                    name: beschreibung[i],
                    desc: beschreibung[i],
                    type: "number",
                    role: "value.power",
                    unit: "Wh"
                    });
                    }
                    });
                    
                    // Anzahl der gefundenen Shelly 3EM - Total
                    var anzahl_3em_total = shelly3EMTotalDps.length;
                    
                    shelly3EMTotalDps.each(function (id, j) {
                    var initial_wert = 0.0;
                    for (var i = 0; i < objekt.length; i++) {
                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                    if (i > 8) {
                    initial_wert = getState(id).val;
                    }
                    createState(shelly_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                    name: beschreibung[i],
                    desc: beschreibung[i],
                    type: "number",
                    role: "value.power",
                    unit: "Wh"
                    });
                    }
                    });
                    
                    // Anzahl der gefundenen Shelly 3EM - Total
                    var anzahl_3em_total_returned = shelly3EMTotalReturned.length;
                    
                    shelly3EMTotalReturned.each(function (id, j) {
                    var initial_wert = 0.0;
                    for (var i = 0; i < objekt.length; i++) {
                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                    if (i > 8) {
                    initial_wert = getState(id).val;
                    }
                    createState(shelly_DP(id, true) + objekt[i], initial_wert, ueberschreiben, {
                    name: beschreibung[i],
                    desc: beschreibung[i],
                    type: "number",
                    role: "value.power",
                    unit: "Wh"
                    });
                    }
                    });
                    
                    // Alle Datenpunkte erstellt. Frage ersten Verbrauch ab!
                    log("Shelly Verbrauch: Datenpunkte erstellt! Erster Verbrauch steht nach 30 Sekunden zur Verfügung! Anzahl gefundener Shelly Datenpunkte: " + (anzahl_3em + anzahl + anzahl_3em_total + anzahl_3em_total_returned));
                    setTimeout(shelly_verbrauch_update, 30000);
                    
                    // Datenpunkte für die Namen der Shelly erstellen
                    shellyDpsName.each(function (id, j) {
                    createState(shelly_DP_Name(id), "", ueberschreiben, {
                    name: "Name des Shelly",
                    desc: "Name des Shelly",
                    type: "string",
                    role: "value",
                    unit: ""
                    });
                    });
                    }
                    
                    /**
                    * Wenn 3EM DP, dann anderen Wert zurückgeben
                    * @param {any} dp
                    * @param {boolean} extended
                    */
                    function shelly_DP(dp, extended = false) {
                    dp = dp.split(".");
                    dp = datenpunkt + dp[2] + "." + dp[3];
                    if (extended) {
                    dp = dp + "_Returned.";
                    } else {
                    dp = dp + ".";
                    }
                    return dp;
                    }
                    
                    function shelly_DP_Name(dp) {
                    dp = dp.split(".");
                    dp = datenpunkt + dp[2] + "." + dp[3];
                    return dp;
                    }
                    
                    function shelly_DP_Name_Main(dp) {
                    dp = dp.split(".");
                    dp = datenpunkt + dp[2];
                    return dp;
                    }
                    
                    function shelly_verbrauch_erster_start() {
                    log("Shelly Verbrauch: Erster Start des Skriptes! Datenpunkte werden erstellt!");
                    // Datenpunkte werden erstellt
                    datenpunkte_erstellen();
                    }
                    
                    // Erster Start und Initialisierung
                    shelly_verbrauch_erster_start();
                    
                    // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen
                    schedule('*/15 * * * *', shelly_verbrauch_update);
                    
                    // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen
                    schedule('0 0 * * *', shelly_vebrauch_tag);
                    
                    W 1 Antwort Letzte Antwort
                    0
                    • Ralla66R Ralla66

                      @bananajoe

                      und unseriös, getriggert jede Sekunde mit Filter für Max / Min Wert entfernen ?
                      Wie triggert das denn der Zähler vom Versorger. Alle 200 us ?
                      Oder wie wird das gemessen.

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

                      @ralla66 Na man kann in meinen Augen schon den Momentanverbrauch nehmen - die Shellies addieren das auch nur drauf. Man muss halt die Zeitspanne berechnen, die zwischen den Meldungen kommen und geht davon aus, dass solange der Momentanverbrauch gültig ist - das ist mE schon sehr genau. Gut 200ms kommt wahrscheinlich die Systeme nicht mit. Ich finde das ist schon relativ genau. Ich teste es ja einfach damit - wenn ich einen Stromverbraucher mit einem definierten Verbrauch anhänge und mal eine Stunde laufen lasse und wenn ich dann 1 Stunde lang meine Momentanverbräuche addiere kommt das sehr genau hin. ;)

                      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.

                      Ralla66R 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @ralla66 Na man kann in meinen Augen schon den Momentanverbrauch nehmen - die Shellies addieren das auch nur drauf. Man muss halt die Zeitspanne berechnen, die zwischen den Meldungen kommen und geht davon aus, dass solange der Momentanverbrauch gültig ist - das ist mE schon sehr genau. Gut 200ms kommt wahrscheinlich die Systeme nicht mit. Ich finde das ist schon relativ genau. Ich teste es ja einfach damit - wenn ich einen Stromverbraucher mit einem definierten Verbrauch anhänge und mal eine Stunde laufen lasse und wenn ich dann 1 Stunde lang meine Momentanverbräuche addiere kommt das sehr genau hin. ;)

                        Ralla66R Offline
                        Ralla66R Offline
                        Ralla66
                        Most Active
                        schrieb am zuletzt editiert von
                        #24

                        @mickym

                        das denke ich auch, die Genauigkeit hängt ja vom Triggertiming ab.
                        Dann würde ja ein kleines Blockly mit Cron jede Sekunde reichen.

                        1 Antwort Letzte Antwort
                        0
                        • Ralla66R Ralla66

                          @bananajoe

                          und unseriös, getriggert jede Sekunde mit Filter für Max / Min Wert entfernen ?
                          Wie triggert das denn der Zähler vom Versorger. Alle 200 us ?
                          Oder wie wird das gemessen.

                          BananaJoeB Online
                          BananaJoeB Online
                          BananaJoe
                          Most Active
                          schrieb am zuletzt editiert von BananaJoe
                          #25

                          @ralla66
                          Die alten Ferraris-Zähler mechanisch per Induktionsmotor
                          Die neuen elektronischen per Hall-Sensoren, Shunt/Nebenschlusswiderstände und sogenannte Rogowski-Spulen.

                          Wie man bei den Shelly 1pm z.B. sehen kann muss man für eine Leistungsmessung nicht unbedingt Spannung und Strom messen, man kann diese direkt messen.
                          Ich habe aber keine Ahnung wie diese Sensoren das in Zeit umsetzen, da habe ich auf die schnelle keinen Artikel gefunden.
                          vielleicht machen die es ja doch sekündlich ... oder bei jeder Änderung ... oder 1.000 mal die Sekunde.

                          Zum testen müsste man halt beides an einem Anschluss machen und schauen ob die eigenen errechneten Werte passen.
                          Ist dein iobroker dann aber mal ein paar Sekunden/Minuten gestoppt passt schon alles wieder nicht mehr

                          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                          Ralla66R 1 Antwort Letzte Antwort
                          0
                          • BananaJoeB BananaJoe

                            @ralla66
                            Die alten Ferraris-Zähler mechanisch per Induktionsmotor
                            Die neuen elektronischen per Hall-Sensoren, Shunt/Nebenschlusswiderstände und sogenannte Rogowski-Spulen.

                            Wie man bei den Shelly 1pm z.B. sehen kann muss man für eine Leistungsmessung nicht unbedingt Spannung und Strom messen, man kann diese direkt messen.
                            Ich habe aber keine Ahnung wie diese Sensoren das in Zeit umsetzen, da habe ich auf die schnelle keinen Artikel gefunden.
                            vielleicht machen die es ja doch sekündlich ... oder bei jeder Änderung ... oder 1.000 mal die Sekunde.

                            Zum testen müsste man halt beides an einem Anschluss machen und schauen ob die eigenen errechneten Werte passen.
                            Ist dein iobroker dann aber mal ein paar Sekunden/Minuten gestoppt passt schon alles wieder nicht mehr

                            Ralla66R Offline
                            Ralla66R Offline
                            Ralla66
                            Most Active
                            schrieb am zuletzt editiert von
                            #26

                            @bananajoe

                            einfachste Mittel halt, klar Soft selbst geproggt im ESP wäre besser.
                            Als Hilfsmaßnahme für den Fragesteller aber ausreichend.
                            Jetzt noch von paul ein Blockly dazu, dann läuft das.

                            Ralla66R 1 Antwort Letzte Antwort
                            0
                            • BananaJoeB BananaJoe

                              Erst schreibst du das:

                              @diwoma sagte in Wie erzeugten Strom pro Tag berechnen?:

                              @diwoma
                              Oder mache ich mir das Leben schwer, wenn ich versuche, die kWh aus der Leistung der vorherigen Messung und der Zeit-Differenz zur aktuellen Messung ermittle und dann auf einen Datenpunkt addiere?

                              Prinzipiell brauche ich sowas wie einen aktuellen Zählerstand. Ich bekomme ca. alle Sekunden ein Update. Würde es reichen, nur den aktuellen Wert jeweils zu kumulieren um mir einen "virtuellen" Zählerstand zu erstellen?

                              Ich nehme an, bei Messungen im Sekundentakt wäre die Abweichung nicht so groß.
                              Oder habe ich da auch einen Gedankenfehler?

                              und nun das:

                              @bananajoe said in Wie erzeugten Strom pro Tag berechnen?:
                              in einer ..h Einheit? Für den Tag? Als Gesamtzähler? Wenn ja hast du doch alles was du brauchst um es mit dem >> SourceAnalytix zu verheiraten, ggf. mit einem Skript dazwischen

                              Und genau das interessiert mich nicht, sondern die Werte die kein ..h am Ende haben.
                              Und Source-Analytics ist zu oversized für mich, da ich keine Kosten ausrechnen will und das ist der Hauptsinn des > Adapters, wenn man keine Kostenstruktur hinterlegt funktionert er überhaupt nicht (nach schneller Prüfung)

                              Also, hast du nun einen Zählerstand oder nicht? Und ein Zählerstand wäre immer kWh oder Wh denn es ist ja ein Zählerstand, keine Momentwert. Die Zähler zählen Verbrauchswerte und bei Strom dient dazu der Faktor Zeit(spanne) als Bezugspunkt wie bei Wasser es das Volumen wäre.

                              D Offline
                              D Offline
                              diwoma
                              schrieb am zuletzt editiert von diwoma
                              #27

                              @bananajoe Anscheinend habe ich mich schlecht ausgedrückt (obwohl es mir nicht so vorkommt)

                              Nein, ich habe keinen Zählerstand für die Werte, die mich interessieren, sonst hätte ich es schon gelöst.

                              -- diwoma

                              ioBroker in LX-Container in Proxmox
                              Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                              BananaJoeB 1 Antwort Letzte Antwort
                              0
                              • D diwoma

                                @bananajoe Anscheinend habe ich mich schlecht ausgedrückt (obwohl es mir nicht so vorkommt)

                                Nein, ich habe keinen Zählerstand für die Werte, die mich interessieren, sonst hätte ich es schon gelöst.

                                BananaJoeB Online
                                BananaJoeB Online
                                BananaJoe
                                Most Active
                                schrieb am zuletzt editiert von
                                #28

                                @diwoma sagte in Wie erzeugten Strom pro Tag berechnen?:

                                @bananajoe Anscheinend habe ich mich schlecht ausgedrückt (obwohl es mir nicht so vorkommt)

                                Nein, ich habe keinen Zählerstand für die Werte, die mich interessieren, sonst hätte ich es schon gelöst.

                                Ok.

                                Wäre ich an deiner Stelle würde ich nicht versuchen das selbst zu berechnen sondern eine Messeinrichtung dazwischen schalten. Je nach dem um was für eine Leistung es geht würde ich bis so 2.000W einen Shelly 1pm oder ähnliches nehmen (also in den Stromkreis eingefügt) oder einen Shelly em / 3em der dann Berührungslos messen kann.
                                Die Shellys gehen immer, sind aber halt 4x so teuer

                                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                D Ralla66R 2 Antworten Letzte Antwort
                                0
                                • Ralla66R Ralla66

                                  @bananajoe

                                  einfachste Mittel halt, klar Soft selbst geproggt im ESP wäre besser.
                                  Als Hilfsmaßnahme für den Fragesteller aber ausreichend.
                                  Jetzt noch von paul ein Blockly dazu, dann läuft das.

                                  Ralla66R Offline
                                  Ralla66R Offline
                                  Ralla66
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #29

                                  Hab mal getestet, Mittelwert pro Minute.
                                  Taktung pro Sekunde.
                                  :-)

                                  Rattern.jpg


                                  23:22:57.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler57
                                  23:22:57.054 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 9006
                                  23:22:57.054 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:22:58.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler58
                                  23:22:58.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 9164
                                  23:22:58.054 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:22:59.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler59
                                  23:22:59.054 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 9322
                                  23:22:59.054 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:22:59.055 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: in DP schreiben Watt pro Minute 158
                                  23:23:01.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler1
                                  23:23:01.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 158
                                  23:23:01.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:02.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler2
                                  23:23:02.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 316
                                  23:23:02.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:03.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler3
                                  23:23:03.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 474
                                  23:23:03.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:04.026 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler4
                                  23:23:04.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 632
                                  23:23:04.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:05.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler5
                                  23:23:05.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 790
                                  23:23:05.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:06.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler6
                                  23:23:06.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 948
                                  23:23:06.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:07.026 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler7
                                  23:23:07.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 1106
                                  23:23:07.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:08.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler8
                                  23:23:08.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 1264
                                  23:23:08.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:09.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler9
                                  23:23:09.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 1422
                                  23:23:09.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:10.026 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler10
                                  23:23:10.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 1580
                                  23:23:10.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 158
                                  23:23:11.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler11
                                  23:23:11.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 1739
                                  23:23:11.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:12.027 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler12
                                  23:23:12.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 1898
                                  23:23:12.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:13.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler13
                                  23:23:13.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 2057
                                  23:23:13.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:14.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler14
                                  23:23:14.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 2216
                                  23:23:14.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:15.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler15
                                  23:23:15.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 2375
                                  23:23:15.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:16.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler16
                                  23:23:16.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 2534
                                  23:23:16.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:17.028 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler17
                                  23:23:17.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 2693
                                  23:23:17.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:18.029 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler18
                                  23:23:18.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 2852
                                  23:23:18.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:19.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler19
                                  23:23:19.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3011
                                  23:23:19.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:20.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler20
                                  23:23:20.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3170
                                  23:23:20.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:21.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler21
                                  23:23:21.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3329
                                  23:23:21.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:22.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler22
                                  23:23:22.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3488
                                  23:23:22.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:23.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler23
                                  23:23:23.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3647
                                  23:23:23.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:24.030 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler24
                                  23:23:24.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3806
                                  23:23:24.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:25.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler25
                                  23:23:25.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 3965
                                  23:23:25.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:26.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler26
                                  23:23:26.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 4124
                                  23:23:26.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:27.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler27
                                  23:23:27.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 4283
                                  23:23:27.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:28.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler28
                                  23:23:28.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 4442
                                  23:23:28.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:29.031 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler29
                                  23:23:29.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 4601
                                  23:23:29.032 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:30.033 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler30
                                  23:23:30.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 4760
                                  23:23:30.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:31.033 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler31
                                  23:23:31.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 4919
                                  23:23:31.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:32.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler32
                                  23:23:32.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 5078
                                  23:23:32.035 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:33.033 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler33
                                  23:23:33.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 5237
                                  23:23:33.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:34.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler34
                                  23:23:34.035 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 5396
                                  23:23:34.035 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:35.034 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler35
                                  23:23:35.035 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 5555
                                  23:23:35.036 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:36.035 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler36
                                  23:23:36.036 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 5714
                                  23:23:36.036 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:37.036 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler37
                                  23:23:37.037 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 5873
                                  23:23:37.038 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:38.037 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler38
                                  23:23:38.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6032
                                  23:23:38.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:39.038 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler39
                                  23:23:39.038 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6191
                                  23:23:39.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:40.037 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler40
                                  23:23:40.038 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6350
                                  23:23:40.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:41.038 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler41
                                  23:23:41.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6509
                                  23:23:41.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:42.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler42
                                  23:23:42.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6668
                                  23:23:42.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:43.039 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler43
                                  23:23:43.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6827
                                  23:23:43.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:44.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler44
                                  23:23:44.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 6986
                                  23:23:44.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:45.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler45
                                  23:23:45.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 7145
                                  23:23:45.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:46.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler46
                                  23:23:46.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 7304
                                  23:23:46.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:47.040 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler47
                                  23:23:47.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 7463
                                  23:23:47.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:48.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler48
                                  23:23:48.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 7622
                                  23:23:48.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:49.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler49
                                  23:23:49.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 7781
                                  23:23:49.047 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:50.041 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler50
                                  23:23:50.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 7940
                                  23:23:50.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:51.042 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler51
                                  23:23:51.043 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 8099
                                  23:23:51.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:52.043 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler52
                                  23:23:52.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 8258
                                  23:23:52.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:53.043 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler53
                                  23:23:53.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 8417
                                  23:23:53.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:54.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler54
                                  23:23:54.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 8576
                                  23:23:54.046 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:55.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler55
                                  23:23:55.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 8735
                                  23:23:55.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:56.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler56
                                  23:23:56.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 8894
                                  23:23:56.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:57.044 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler57
                                  23:23:57.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 9053
                                  23:23:57.046 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:58.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler58
                                  23:23:58.046 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 9212
                                  23:23:58.047 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:59.045 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler59
                                  23:23:59.046 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 9371
                                  23:23:59.047 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:23:59.047 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: in DP schreiben Watt pro Minute 158
                                  23:24:01.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler1
                                  23:24:01.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 159
                                  23:24:01.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:24:02.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler2
                                  23:24:02.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 318
                                  23:24:02.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:24:03.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler3
                                  23:24:03.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 477
                                  23:24:03.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:24:04.051 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler4
                                  23:24:04.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 636
                                  23:24:04.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:24:05.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler5
                                  23:24:05.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 795
                                  23:24:05.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:24:06.052 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Zähler6
                                  23:24:06.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert gesamt 954
                                  23:24:06.053 info javascript.0 (1860) script.js.Zählerstand.Test_Watt_errechnet: aktueller Watt Wert WR 159
                                  23:24:06.684 info javascript.0 (1860) Stop script script.js.Zählerstand.Test_Watt_errechnet

                                  1 Antwort Letzte Antwort
                                  0
                                  • P picky

                                    @warhammer73
                                    Wäre es nicht am einfachsten, du hängst eine einfache Tasmota Steckdose oder einen Shelly zum einspeisen dazwischen ?
                                    Ich habe Tasmota Steckdose wo ich einspeiße und einen Shelly3em (3 phasen) für meinen Stromverbrauch.
                                    Zum auswerten benutze ich diese 2 Scripte, es legt dann auch die Datenpunkte für Tag, Monat usw. an.

                                    Tasmota:

                                    /*
                                    * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                                    *
                                    * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                                    *
                                    * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Tasmota Geräte.
                                    * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung
                                    * und Performance entwickelt.
                                    * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind.
                                    *
                                    * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf
                                    * https://www.kreyenborg.koeln
                                    * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der,
                                    * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht!
                                    *
                                    * Ansprüche gegenüber Dritten bestehen nicht.
                                    *
                                    * Skript Name: Tasmota-Verbrauch
                                    * Skript Version: 1.1
                                    * Erstell-Datum: 19. März 2021
                                    *
                                    */
                                    
                                    // Datenpunkte neu erstellen
                                    var ueberschreiben = false;
                                    
                                    // Hauptdatenpunkt unterhalb javascript
                                    var datenpunkt = "TasmotaVerbrauch.";
                                    
                                    // Verbrauchs Objekte der einzelnen Tasmota
                                    const objekt = ["gesamt", "dieses_jahr", "letztes_jahr", "letzter_monat", "dieser_monat", "letzte_woche",
                                    "diese_woche", "gestern", "heute", "alter_wert", "aktueller_wert"];
                                    
                                    // Beschreibung der Objekte
                                    const beschreibung = ["Gesamter Vebrauch des Tasmota", "Verbrauch aktuelles Jahr", "Verbrauch letztes Jahr",
                                    "Verbrauch letzten Monat", "Verbrauch aktueller Monat", "Verbrauch letzte Woche", "Verbrauch diese Woche",
                                    "Verbrauch gestern", "Verbrauch heute", "Messwert alt", "Messwert neu"];
                                    
                                    // Datenpunkt der Tasmota Geräte (Standard: sonoff.0)
                                    var tasmota_dp = "sonoff.0";
                                    
                                    // Datenpunkte der Tasmota (!!! Bitte nicht ändern !!!)
                                    //const tasmotaDps = $('state[id=' + tasmota_dp + '.*.ENERGY_Total]');
                                    const tasmotaDps = $('state[id=' + tasmota_dp + '.*.ENERGY.Total]');
                                    
                                    
                                    // Datenpunkte der Tasmota Namen (!!! Bitte nicht ändern !!!)
                                    const tasmotaDpsName = $('state[id=' + tasmota_dp + '.*.DeviceName]');
                                    
                                    // Tasmota Verbrauch aktualisieren - nachts um 00:00 Uhr
                                    function tasmota_vebrauch_tag() {
                                    // Nochmals das Tagesupdate durchlaufen, damit die restlichen Werte gelesen werden
                                    tasmota_verbrauch_update();
                                    
                                    // Datumsvariable
                                    var heute = new Date();
                                    
                                    // Heute zu Gestern verschieben. Täglich um 00:00 Uhr
                                    verschiebe_verbrauch_objekt("heute", "gestern");
                                    log ("Tasmota Verbrauch: Werte für gestern und heute aktualisiert!");
                                    
                                    // aktuelle Woche in letzte Woche verschieben. Am Montag um 00:00 Uhr
                                    if (heute.getDay() === 1) {
                                    verschiebe_verbrauch_objekt("diese_woche", "letzte_woche");
                                    log ("Tasmota Verbrauch: Werte für diese und letzte Woche aktualisiert!");
                                    }
                                    
                                    // aktueller Monat in letzten Monat verschieben. Am 1. des Monats um 00:00 Uhr
                                    if (heute.getDate() === 1) {
                                    verschiebe_verbrauch_objekt("dieser_monat", "letzter_monat");
                                    log ("Tasmota Verbrauch: Werte für diesen und letzten Monat aktualisiert!");
                                    }
                                    
                                    // aktuelles Jahr in letztes Jahr verschieben. Am 1. des Monats am 1. Monat um 00:00 Uhr
                                    if (heute.getDate() === 1 && heute.getMonth() === 0) {
                                    verschiebe_verbrauch_objekt("dieses_jahr", "letztes_jahr");
                                    log ("Tasmota Verbrauch: Werte für dieses und letztes Jahr aktualisiert!");
                                    }
                                    }
                                    
                                    // Tagesverbrauch alle 15 Min von der Original Variable des Tasmota in eigene Variable kopieren
                                    function tasmota_verbrauch_update() {
                                    var anzahl_updates = 0;
                                    var anzahl_reboots = 0;
                                    var anzahl_gleich = 0;
                                    tasmotaDps.each(function (id, i) {
                                    var tasmota_verbrauch = getState(id).val;
                                    // Einige Tasmota haben keine Verbrauchswerte (noch nicht)
                                    if (tasmota_verbrauch != null) {
                                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                                    var aktueller_wert = getState(tasmota_DP(id) + "aktueller_wert").val;
                                    var alter_wert = 0;
                                    // Prüfe alten und neuen Wert
                                    if (tasmota_verbrauch > aktueller_wert) {
                                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                                    setState(tasmota_DP(id) + "alter_wert", aktueller_wert,true);
                                    alter_wert = aktueller_wert;
                                    anzahl_updates++;
                                    }
                                    if (aktueller_wert > tasmota_verbrauch) {
                                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                                    setState(tasmota_DP(id) + "alter_wert", 0,true);
                                    alter_wert = tasmota_verbrauch;
                                    anzahl_reboots++;
                                    }
                                    if (tasmota_verbrauch == aktueller_wert) {
                                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                                    alter_wert = aktueller_wert;
                                    anzahl_gleich++;
                                    }
                                    
                                    setState(tasmota_DP(id) + "aktueller_wert", tasmota_verbrauch);
                                    // Alter und neuer Wert -> aktuelle Differenz
                                    
                                    var verbrauch = parseFloat(tasmota_verbrauch) - alter_wert;
                                    // Tagesverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(id, "heute", verbrauch);
                                    
                                    // Wochenverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(id, "diese_woche", verbrauch);
                                    
                                    // Monatsverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(id, "dieser_monat", verbrauch);
                                    
                                    // Jahresverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(id, "dieses_jahr", verbrauch);
                                    
                                    // Gesamten Vebrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(id, "gesamt", verbrauch);
                                    }
                                    });
                                    aktualisiere_namen();
                                    log("Tasmota Verbrauch: Verbrauchswerte aktualisiert: " + anzahl_updates + " | Reboots korrigiert: " + anzahl_reboots + " | Unveränderte Werte: " + anzahl_gleich);
                                    }
                                    
                                    // aktualisiert das jeweilige Verbrauchs-Objekt und addiert den Verbrauch dazu
                                    function aktualisiere_vebrauch_objekt(dp, objekt, wert) {
                                    var verbrauch = parseFloat(getState(tasmota_DP(dp) + objekt).val) + parseFloat(wert);
                                    verbrauch = parseFloat(verbrauch.toFixed(3));
                                    setState(tasmota_DP(dp) + objekt, verbrauch,true);
                                    }
                                    
                                    // Verschiebt das jeweilige Verbrauchs-Objekt und nullt den Ursprung (Tag, Woche, Monat, Jahr)
                                    function verschiebe_verbrauch_objekt(von, nach) {
                                    $('state[id=*.' + datenpunkt + '*.' + von + ']').each(function (id, i) {
                                    // Temporärer Gruppen-Datenpunkt
                                    var tmp_dp = id.slice(0, -(von.length));
                                    var verbrauch = getState(id).val;
                                    if (verbrauch != null) {
                                    setState(tmp_dp + nach, verbrauch,true);
                                    }
                                    // Setze heute zurück
                                    setState(id, 0,true);
                                    });
                                    }
                                    
                                    // Funktion um die aktuellen Namen der Tasmota abzuholen
                                    function aktualisiere_namen() {
                                    tasmotaDpsName.each(function (id, i) {
                                    setState(tasmota_DP_Name(id),String(getState(id).val),true);
                                    });
                                    }
                                    
                                    // Erstelle die benötigten Datenpunkte
                                    function datenpunkte_erstellen() {
                                    // Anzahl der gefundenen Tasmota
                                    var anzahl = tasmotaDps.length;
                                    
                                    tasmotaDps.each(function (id, j) {
                                    var initial_wert = 0;
                                    for (var i = 0; i < objekt.length; i++) {
                                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                                    if (i > 8) {
                                    initial_wert = getState(id).val;
                                    }
                                    createState(tasmota_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                                    name: beschreibung[i],
                                    desc: beschreibung[i],
                                    type: "number",
                                    role: "value.power",
                                    unit: "kWh"
                                    });
                                    }
                                    });
                                    
                                    // Alle Datenpunkte erstellt. Frage ersten Verbrauch ab!
                                    log("Tasmota Verbrauch: Datenpunkte erstellt! Erster Verbrauch steht nach 1 Minute zur Verfügung! Anzahl gefundener Tasmota Datenpunkte: " + anzahl);
                                    setTimeout(tasmota_verbrauch_update, 20000);
                                    
                                    // Datenpunkte für die Namen der Tasmota erstellen
                                    tasmotaDpsName.each(function(id, j) {
                                    createState(tasmota_DP_Name(id), "", ueberschreiben, {
                                    name: "Name des Tasmota",
                                    desc: "Name des Tasmota",
                                    type: "string",
                                    role: "value",
                                    unit: ""
                                    });
                                    });
                                    }
                                    
                                    function tasmota_DP(dp) {
                                    dp = dp.split(".");
                                    dp = datenpunkt + dp[2] + ".";
                                    return dp;
                                    }
                                    
                                    function tasmota_DP_Name(dp) {
                                    dp = dp.split(".");
                                    dp = datenpunkt + dp[2] + "." + dp[3];
                                    return dp;
                                    }
                                    
                                    function tasmota_verbrauch_erster_start() {
                                    log("Tasmota Verbrauch: Erster Start des Skriptes! Datenpunkte werden erstellt!");
                                    // Datenpunkte werden erstellt
                                    datenpunkte_erstellen();
                                    }
                                    
                                    // Erster Start und Initialisierung
                                    tasmota_verbrauch_erster_start();
                                    
                                    // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen
                                    schedule('*/1 * * * *', tasmota_verbrauch_update);
                                    
                                    // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen
                                    schedule('0 0 * * *', tasmota_vebrauch_tag);
                                    

                                    shelly3em:

                                    /*
                                    * @copyright 2021 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                                    *
                                    * @author 2021 Stephan Kreyenborg <stephan@kreyenborg.koeln>
                                    *
                                    * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Shelly Geräte.
                                    * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung
                                    * und Performance entwickelt.
                                    * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind.
                                    *
                                    * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf
                                    * https://www.kreyenborg.koeln
                                    * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der,
                                    * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht!
                                    *
                                    * Ansprüche gegenüber Dritten bestehen nicht.
                                    *
                                    * Skript Name: Shelly-Verbrauch
                                    * Skript Version: 1.60
                                    * Erstell-Datum: 08. Oktober 2021 | Update: 20. Juli 2022
                                    *
                                    */
                                    
                                    // Datenpunkte neu erstellen
                                    var ueberschreiben = false;
                                    
                                    // Hauptdatenpunkt unterhalb javascript
                                    var datenpunkt = "ShellyVerbrauch."; // Abschließender Punkt !!! WICHTIG !!!
                                    
                                    // Verbrauchs Objekte der einzelnen Shelly
                                    var objekt = ["gesamt", "dieses_jahr", "letztes_jahr", "letzter_monat", "dieser_monat", "letzte_woche",
                                    "diese_woche", "gestern", "heute", "alter_wert", "aktueller_wert"
                                    ];
                                    
                                    // Beschreibung der Objekte
                                    var beschreibung = ["Gesamter Vebrauch des Shelly", "Verbrauch aktuelles Jahr", "Verbrauch letztes Jahr",
                                    "Verbrauch letzten Monat", "Verbrauch aktueller Monat", "Verbrauch letzte Woche", "Verbrauch diese Woche",
                                    "Verbrauch gestern", "Verbrauch heute", "Messwert alt", "Messwert neu"
                                    ];
                                    
                                    // Datenpunkt der Shelly (Standard: shelly.0)
                                    var shelly_dp = "shelly.0";
                                    
                                    // Datenpunkte der Shelly (!!! Bitte nicht ändern !!!)
                                    var shellyDps = $('state[id=' + shelly_dp + '.*.*.Energy]');
                                    
                                    // Datenpunkte der Shelly 3EM DP
                                    var shelly3EMDps = $('state[id=' + shelly_dp + '.*.*.Total]');
                                    
                                    // Datenpunkte der Shelly 3EM DP - Total
                                    var shelly3EMTotalDps = $('state[id=' + shelly_dp + '.*.*.ConsumedPower]');
                                    
                                    // Datenpunkte der Shelly 3EM DP - Total
                                    var shelly3EMTotalReturned = $('state[id=' + shelly_dp + '.*.*.Total_Returned]');
                                    
                                    // Datenpunkte der Shelly Namen (!!! Bitte nicht ändern !!!)
                                    var shellyDpsName = $('state[id=' + shelly_dp + '.*.name]');
                                    
                                    // Shelly Verbrauch aktualisieren - nachts um 00:00 Uhr
                                    function shelly_vebrauch_tag() {
                                    // Nochmals das Tagesupdate durchlaufen, damit die restlichen Werte gelesen werden
                                    shelly_verbrauch_update();
                                    
                                    // Datumsvariable
                                    var heute = new Date();
                                    
                                    // Heute zu Gestern verschieben. Täglich um 00:00 Uhr
                                    verschiebe_verbrauch_objekt("heute", "gestern");
                                    log("Shelly Verbrauch: Werte für gestern und heute aktualisiert!");
                                    
                                    // aktuelle Woche in letzte Woche verschieben. Am Montag um 00:00 Uhr
                                    if (heute.getDay() === 1) {
                                    verschiebe_verbrauch_objekt("diese_woche", "letzte_woche");
                                    log("Shelly Verbrauch: Werte für diese und letzte Woche aktualisiert!");
                                    }
                                    
                                    // aktueller Monat in letzten Monat verschieben. Am 1. des Monats um 00:00 Uhr
                                    if (heute.getDate() === 1) {
                                    verschiebe_verbrauch_objekt("dieser_monat", "letzter_monat");
                                    log("Shelly Verbrauch: Werte für diesen und letzten Monat aktualisiert!");
                                    }
                                    
                                    // aktuelles Jahr in letztes Jahr verschieben. Am 1. des Monats am 1. Monat um 00:00 Uhr
                                    if (heute.getDate() === 1 && heute.getMonth() === 0) {
                                    verschiebe_verbrauch_objekt("dieses_jahr", "letztes_jahr");
                                    log("Shelly Verbrauch: Werte für dieses und letztes Jahr aktualisiert!");
                                    }
                                    }
                                    
                                    // Tagesverbrauch alle 15 Min von der Original Variable des Shelly in eigene Variable kopieren
                                    function shelly_verbrauch_update() {
                                    var anzahl_updates = 0;
                                    var anzahl_reboots = 0;
                                    var anzahl_gleich = 0;
                                    shellyDps.each(function (id, i) {
                                    var shelly_verbrauch = getState(id).val;
                                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                                    if (shelly_verbrauch != null) {
                                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                                    var aktueller_wert = getState(shelly_DP(id) + "aktueller_wert").val;
                                    var alter_wert = 0;
                                    // Prüfe alten und neuen Wert
                                    if (shelly_verbrauch > aktueller_wert) {
                                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                                    setState(shelly_DP(id) + "alter_wert", aktueller_wert, true);
                                    alter_wert = aktueller_wert;
                                    anzahl_updates++;
                                    }
                                    if (aktueller_wert > shelly_verbrauch) {
                                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                                    setState(shelly_DP(id) + "alter_wert", 0, true);
                                    alter_wert = 0;
                                    anzahl_reboots++;
                                    }
                                    if (shelly_verbrauch == aktueller_wert) {
                                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                                    alter_wert = aktueller_wert;
                                    anzahl_gleich++;
                                    }
                                    
                                    setState(shelly_DP(id) + "aktueller_wert", shelly_verbrauch, true);
                                    // Alter und neuer Wert -> aktuelle Differenz
                                    
                                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                                    // Tagesverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "heute", verbrauch);
                                    
                                    // Wochenverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "diese_woche", verbrauch);
                                    
                                    // Monatsverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieser_monat", verbrauch);
                                    
                                    // Jahresverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieses_jahr", verbrauch);
                                    
                                    // Gesamten Vebrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "gesamt", verbrauch);
                                    }
                                    });
                                    shelly3EMDps.each(function (id, i) {
                                    var shelly_verbrauch = getState(id).val;
                                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                                    if (shelly_verbrauch != null) {
                                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                                    var aktueller_wert = getState(shelly_DP(id) + "aktueller_wert").val;
                                    var alter_wert = 0;
                                    // Prüfe alten und neuen Wert
                                    if (shelly_verbrauch > aktueller_wert) {
                                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                                    setState(shelly_DP(id) + "alter_wert", aktueller_wert, true);
                                    alter_wert = aktueller_wert;
                                    anzahl_updates++;
                                    }
                                    if (aktueller_wert > shelly_verbrauch) {
                                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                                    setState(shelly_DP(id) + "alter_wert", 0, true);
                                    alter_wert = 0;
                                    anzahl_reboots++;
                                    }
                                    if (shelly_verbrauch == aktueller_wert) {
                                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                                    alter_wert = aktueller_wert;
                                    anzahl_gleich++;
                                    }
                                    
                                    setState(shelly_DP(id) + "aktueller_wert", shelly_verbrauch, true);
                                    // Alter und neuer Wert -> aktuelle Differenz
                                    
                                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                                    // Tagesverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "heute", verbrauch);
                                    
                                    // Wochenverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "diese_woche", verbrauch);
                                    
                                    // Monatsverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieser_monat", verbrauch);
                                    
                                    // Jahresverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieses_jahr", verbrauch);
                                    
                                    // Gesamten Vebrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "gesamt", verbrauch);
                                    }
                                    });
                                    shelly3EMTotalDps.each(function (id, i) {
                                    var shelly_verbrauch = getState(id).val;
                                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                                    if (shelly_verbrauch != null) {
                                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                                    var aktueller_wert = getState(shelly_DP(id) + "aktueller_wert").val;
                                    var alter_wert = 0;
                                    // Prüfe alten und neuen Wert
                                    if (shelly_verbrauch > aktueller_wert) {
                                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                                    setState(shelly_DP(id) + "alter_wert", aktueller_wert, true);
                                    alter_wert = aktueller_wert;
                                    anzahl_updates++;
                                    }
                                    if (aktueller_wert > shelly_verbrauch) {
                                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                                    setState(shelly_DP(id) + "alter_wert", 0, true);
                                    alter_wert = 0;
                                    anzahl_reboots++;
                                    }
                                    if (shelly_verbrauch == aktueller_wert) {
                                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                                    alter_wert = aktueller_wert;
                                    anzahl_gleich++;
                                    }
                                    
                                    setState(shelly_DP(id) + "aktueller_wert", shelly_verbrauch, true);
                                    // Alter und neuer Wert -> aktuelle Differenz
                                    
                                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                                    // Tagesverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "heute", verbrauch);
                                    
                                    // Wochenverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "diese_woche", verbrauch);
                                    
                                    // Monatsverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieser_monat", verbrauch);
                                    
                                    // Jahresverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "dieses_jahr", verbrauch);
                                    
                                    // Gesamten Vebrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id), "gesamt", verbrauch);
                                    }
                                    });
                                    shelly3EMTotalReturned.each(function (id, i) {
                                    var shelly_verbrauch = getState(id).val;
                                    // Einige Shelly haben keine Verbrauchswerte (noch nicht)
                                    if (shelly_verbrauch != null) {
                                    // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat
                                    var aktueller_wert = getState(shelly_DP(id, true) + "aktueller_wert").val;
                                    var alter_wert = 0;
                                    // Prüfe alten und neuen Wert
                                    if (shelly_verbrauch > aktueller_wert) {
                                    // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt
                                    setState(shelly_DP(id, true) + "alter_wert", aktueller_wert, true);
                                    alter_wert = aktueller_wert;
                                    anzahl_updates++;
                                    }
                                    if (aktueller_wert > shelly_verbrauch) {
                                    // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt
                                    setState(shelly_DP(id, true) + "alter_wert", 0, true);
                                    alter_wert = 0;
                                    anzahl_reboots++;
                                    }
                                    if (shelly_verbrauch == aktueller_wert) {
                                    // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig
                                    alter_wert = aktueller_wert;
                                    anzahl_gleich++;
                                    }
                                    
                                    setState(shelly_DP(id, true) + "aktueller_wert", shelly_verbrauch, true);
                                    // Alter und neuer Wert -> aktuelle Differenz
                                    
                                    var verbrauch = parseFloat(shelly_verbrauch) - alter_wert;
                                    // Tagesverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "heute", verbrauch);
                                    
                                    // Wochenverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "diese_woche", verbrauch);
                                    
                                    // Monatsverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "dieser_monat", verbrauch);
                                    
                                    // Jahresverbrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "dieses_jahr", verbrauch);
                                    
                                    // Gesamten Vebrauch aktualisieren
                                    aktualisiere_vebrauch_objekt(shelly_DP(id, true), "gesamt", verbrauch);
                                    }
                                    });
                                    aktualisiere_namen();
                                    log("Shelly Verbrauch: Verbrauchswerte aktualisiert: " + anzahl_updates + " | Reboots korrigiert: " + anzahl_reboots + " | Unveränderte Werte: " + anzahl_gleich);
                                    }
                                    
                                    // aktualisiert das jeweilige Verbrauchs-Objekt und addiert den Verbrauch dazu
                                    function aktualisiere_vebrauch_objekt(dp, objekt, wert) {
                                    // Hole alten Verbrauch
                                    let alter_verbrauch = getState(dp + objekt).val;
                                    let verbrauch = 0;
                                    // Kein Wert vorhanden - nutze den übermittelten Wert
                                    if (alter_verbrauch < 1 || alter_verbrauch == null) {
                                    verbrauch = parseFloat(wert)
                                    } else {
                                    verbrauch = parseFloat(alter_verbrauch) + parseFloat(wert);
                                    }
                                    setState(dp + objekt, parseFloat(verbrauch.toFixed(2)), true);
                                    }
                                    
                                    // Verschiebt das jeweilige Verbrauchs-Objekt und nullt den Ursprung (Tag, Woche, Monat, Jahr)
                                    function verschiebe_verbrauch_objekt(von, nach) {
                                    $('state[id=*.' + datenpunkt + '*.*.' + von + ']').each(function (id, i) {
                                    // Temporärer Gruppen-Datenpunkt
                                    var tmp_dp = id.slice(0, -(von.length));
                                    var verbrauch = getState(id).val;
                                    if (verbrauch != null) {
                                    setState(tmp_dp + nach, verbrauch, true);
                                    }
                                    // Setze "von" zurück
                                    setState(id, 0, true);
                                    });
                                    }
                                    
                                    // Funktion um die aktuellen Namen des Shelly abzuholen
                                    function aktualisiere_namen() {
                                    if (typeof extendObject === "function") {
                                    shellyDpsName.each(function (id, i) {
                                    if (existsState(id)) {
                                    setState(shelly_DP_Name(id), String(getState(id).val), true);
                                    extendObject("javascript.0." + shelly_DP_Name_Main(id), {
                                    common: {
                                    name: String(getState(id).val),
                                    desc: String(getState(id).val)
                                    },
                                    type: "channel"
                                    });
                                    }
                                    });
                                    }
                                    }
                                    
                                    // Erstelle die benötigten Datenpunkte
                                    function datenpunkte_erstellen() {
                                    // Anzahl der gefundenen Shelly
                                    var anzahl = shellyDps.length;
                                    
                                    shellyDps.each(function (id, j) {
                                    var initial_wert = 0.0;
                                    for (var i = 0; i < objekt.length; i++) {
                                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                                    if (i > 8) {
                                    initial_wert = getState(id).val;
                                    }
                                    createState(shelly_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                                    name: beschreibung[i],
                                    desc: beschreibung[i],
                                    type: "number",
                                    role: "value.power",
                                    unit: "Wh"
                                    });
                                    }
                                    });
                                    
                                    // Anzahl der gefundenen Shelly 3EM
                                    var anzahl_3em = shelly3EMDps.length;
                                    
                                    shelly3EMDps.each(function (id, j) {
                                    var initial_wert = 0.0;
                                    for (var i = 0; i < objekt.length; i++) {
                                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                                    if (i > 8) {
                                    initial_wert = getState(id).val;
                                    }
                                    createState(shelly_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                                    name: beschreibung[i],
                                    desc: beschreibung[i],
                                    type: "number",
                                    role: "value.power",
                                    unit: "Wh"
                                    });
                                    }
                                    });
                                    
                                    // Anzahl der gefundenen Shelly 3EM - Total
                                    var anzahl_3em_total = shelly3EMTotalDps.length;
                                    
                                    shelly3EMTotalDps.each(function (id, j) {
                                    var initial_wert = 0.0;
                                    for (var i = 0; i < objekt.length; i++) {
                                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                                    if (i > 8) {
                                    initial_wert = getState(id).val;
                                    }
                                    createState(shelly_DP(id) + objekt[i], initial_wert, ueberschreiben, {
                                    name: beschreibung[i],
                                    desc: beschreibung[i],
                                    type: "number",
                                    role: "value.power",
                                    unit: "Wh"
                                    });
                                    }
                                    });
                                    
                                    // Anzahl der gefundenen Shelly 3EM - Total
                                    var anzahl_3em_total_returned = shelly3EMTotalReturned.length;
                                    
                                    shelly3EMTotalReturned.each(function (id, j) {
                                    var initial_wert = 0.0;
                                    for (var i = 0; i < objekt.length; i++) {
                                    // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen
                                    if (i > 8) {
                                    initial_wert = getState(id).val;
                                    }
                                    createState(shelly_DP(id, true) + objekt[i], initial_wert, ueberschreiben, {
                                    name: beschreibung[i],
                                    desc: beschreibung[i],
                                    type: "number",
                                    role: "value.power",
                                    unit: "Wh"
                                    });
                                    }
                                    });
                                    
                                    // Alle Datenpunkte erstellt. Frage ersten Verbrauch ab!
                                    log("Shelly Verbrauch: Datenpunkte erstellt! Erster Verbrauch steht nach 30 Sekunden zur Verfügung! Anzahl gefundener Shelly Datenpunkte: " + (anzahl_3em + anzahl + anzahl_3em_total + anzahl_3em_total_returned));
                                    setTimeout(shelly_verbrauch_update, 30000);
                                    
                                    // Datenpunkte für die Namen der Shelly erstellen
                                    shellyDpsName.each(function (id, j) {
                                    createState(shelly_DP_Name(id), "", ueberschreiben, {
                                    name: "Name des Shelly",
                                    desc: "Name des Shelly",
                                    type: "string",
                                    role: "value",
                                    unit: ""
                                    });
                                    });
                                    }
                                    
                                    /**
                                    * Wenn 3EM DP, dann anderen Wert zurückgeben
                                    * @param {any} dp
                                    * @param {boolean} extended
                                    */
                                    function shelly_DP(dp, extended = false) {
                                    dp = dp.split(".");
                                    dp = datenpunkt + dp[2] + "." + dp[3];
                                    if (extended) {
                                    dp = dp + "_Returned.";
                                    } else {
                                    dp = dp + ".";
                                    }
                                    return dp;
                                    }
                                    
                                    function shelly_DP_Name(dp) {
                                    dp = dp.split(".");
                                    dp = datenpunkt + dp[2] + "." + dp[3];
                                    return dp;
                                    }
                                    
                                    function shelly_DP_Name_Main(dp) {
                                    dp = dp.split(".");
                                    dp = datenpunkt + dp[2];
                                    return dp;
                                    }
                                    
                                    function shelly_verbrauch_erster_start() {
                                    log("Shelly Verbrauch: Erster Start des Skriptes! Datenpunkte werden erstellt!");
                                    // Datenpunkte werden erstellt
                                    datenpunkte_erstellen();
                                    }
                                    
                                    // Erster Start und Initialisierung
                                    shelly_verbrauch_erster_start();
                                    
                                    // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen
                                    schedule('*/15 * * * *', shelly_verbrauch_update);
                                    
                                    // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen
                                    schedule('0 0 * * *', shelly_vebrauch_tag);
                                    
                                    W Offline
                                    W Offline
                                    warhammer73
                                    schrieb am zuletzt editiert von
                                    #30

                                    @picky
                                    Nicht wirklich. Weil die Frage am Anfang nur ein Teilumfang dessen war was ich vorhabe.
                                    Den Strom pro Tag kann ich mir auch berechnen indem ich den Gesamterzeugten Strom um 0 Uhr nehme und dann einfach aktuell - Stand 0 rechne.

                                    Im Hinterkopf als ich die Frage gestellt habe, waren aber auch so Sachen wie Berechnung des Durchschnittlichen Akkustandes, Durchschnittliche Autarkie etc.
                                    Also Sachen von denen ich nur Zeitreihen habe, diese aufaddieren müsste (Wäre ja auch ein Ansatz für die grobe - und mir ausreichende - Berechnung des erzeugten Stromes gewesen) und dann durch die Anzahl der Zeitpunkte rechnen.
                                    Da hab ich aber gerade ein Brett vor dem Kopf, ich würde denken das müsste relativ problemlos allein in Grafana mit InfluxDB gehen.

                                    1 Antwort Letzte Antwort
                                    0
                                    • BananaJoeB BananaJoe

                                      @diwoma sagte in Wie erzeugten Strom pro Tag berechnen?:

                                      @bananajoe Anscheinend habe ich mich schlecht ausgedrückt (obwohl es mir nicht so vorkommt)

                                      Nein, ich habe keinen Zählerstand für die Werte, die mich interessieren, sonst hätte ich es schon gelöst.

                                      Ok.

                                      Wäre ich an deiner Stelle würde ich nicht versuchen das selbst zu berechnen sondern eine Messeinrichtung dazwischen schalten. Je nach dem um was für eine Leistung es geht würde ich bis so 2.000W einen Shelly 1pm oder ähnliches nehmen (also in den Stromkreis eingefügt) oder einen Shelly em / 3em der dann Berührungslos messen kann.
                                      Die Shellys gehen immer, sind aber halt 4x so teuer

                                      D Offline
                                      D Offline
                                      diwoma
                                      schrieb am zuletzt editiert von
                                      #31

                                      @bananajoe Zur Zeit wahrscheinlich die einzige Lösung, aber ich will nichts einbauen, weil ich hoffe, doch mal die Freischaltung der Kundenschnittstelle des vorhandenen Smartmeter zu bekommen. Ich werde es doch mal mit einer SW-Lösung probieren.

                                      -- diwoma

                                      ioBroker in LX-Container in Proxmox
                                      Zigbee-Coordinator: CC2652P2-TCP FW: 20230507

                                      1 Antwort Letzte Antwort
                                      0
                                      • BananaJoeB BananaJoe

                                        @diwoma sagte in Wie erzeugten Strom pro Tag berechnen?:

                                        @bananajoe Anscheinend habe ich mich schlecht ausgedrückt (obwohl es mir nicht so vorkommt)

                                        Nein, ich habe keinen Zählerstand für die Werte, die mich interessieren, sonst hätte ich es schon gelöst.

                                        Ok.

                                        Wäre ich an deiner Stelle würde ich nicht versuchen das selbst zu berechnen sondern eine Messeinrichtung dazwischen schalten. Je nach dem um was für eine Leistung es geht würde ich bis so 2.000W einen Shelly 1pm oder ähnliches nehmen (also in den Stromkreis eingefügt) oder einen Shelly em / 3em der dann Berührungslos messen kann.
                                        Die Shellys gehen immer, sind aber halt 4x so teuer

                                        Ralla66R Offline
                                        Ralla66R Offline
                                        Ralla66
                                        Most Active
                                        schrieb am zuletzt editiert von Ralla66
                                        #32

                                        @bananajoe

                                        Test mit Mittelwert pro Minute.
                                        Getaktet alle 5 Sekunden.
                                        Mit Bandfilter Min / Max Watt Wert ( Piek ) der ausgeblendet wird, einstellbar.
                                        Fehlerschutz, Intervallabbruch bei zu wenig Data.
                                        Läuft so weit gut.

                                        Bandfilter.jpg

                                        1 Antwort Letzte Antwort
                                        0

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

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

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

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


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        363

                                        Online

                                        32.8k

                                        Benutzer

                                        82.8k

                                        Themen

                                        1.3m

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

                                        • Du hast noch kein Konto? Registrieren

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