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. Skripten / Logik
  4. Blockly
  5. Blockly täglichen Verbrauch hochzählen

NEWS

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

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    166

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

Blockly täglichen Verbrauch hochzählen

Geplant Angeheftet Gesperrt Verschoben Blockly
16 Beiträge 5 Kommentatoren 1.4k Aufrufe 4 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.
  • F Fritzk

    @asgothian Das ganze schaut so aus

    Zwischenablage01.jpg

    kommt trotzdem noch eine Fehlermeldung

    N Offline
    N Offline
    Nordischerjung
    schrieb am zuletzt editiert von
    #5

    @fritzk nicht erhöhe täglichen Verbrauch, nimm mal setze

    Gruß Nordischerjung

    sonnige Grüße von der Ostsee

    1 Antwort Letzte Antwort
    0
    • F Fritzk

      @asgothian Das ganze schaut so aus

      Zwischenablage01.jpg

      kommt trotzdem noch eine Fehlermeldung

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von
      #6

      @fritzk

      Nun ja,

      ich gehe mal davon aus das dein Zähler den "Verbrauch" Zählt. Ist das soweit korrekt ?

      Dann sollte also der Verbrauch am Ende des Tages = Zählerstand - MemZählerstand sein.

      So wie du es jetzt machen willst hängt es davon ab wie oft der Datenpunkt AktuellerZählerstand erhöht wird.

      Das was @Codierknecht geschrieben hat stimmt so nicht. Der Wert ist schon korrekt geschrieben (In diesem Fall)- die Variante die Du genutzt hast nutzt nur unnötig Ressourcen, weswegen seine besser ist.

      Die Typische Asynchron-Falle ist

      • Steuere(TestDP, 10)
      • Steuere(TestDP2, Wert(TestDP)

      In diesem Fall bekommt TestDP2 nicht immer den Wert 10.

      A.

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      F 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @fritzk
        Du läufst in die "Asynchron-Falle".
        Wenn der Trigger feuert, ist der Wert noch nicht wirklich geschrieben.
        Ersetze den markierten Block durch den Wert des feuernden Trigger. Den Block finderst Du in "Trigger" - dort heißt er zunächst noch "Objekt ID".

        93938d37-12fb-4f54-ac20-54f49274b7f1-image.png

        [EDIT]
        Und eine Variable wird nicht mit "Wert von" gelesen. Den Block kannst Du löschen und stattdessen die Variable allein verwenden.

        F Offline
        F Offline
        Fritzk
        schrieb am zuletzt editiert von
        #7

        @codierknecht Das war mein Fehler.
        Danke dir. jetzt hauts hin

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @fritzk

          Nun ja,

          ich gehe mal davon aus das dein Zähler den "Verbrauch" Zählt. Ist das soweit korrekt ?

          Dann sollte also der Verbrauch am Ende des Tages = Zählerstand - MemZählerstand sein.

          So wie du es jetzt machen willst hängt es davon ab wie oft der Datenpunkt AktuellerZählerstand erhöht wird.

          Das was @Codierknecht geschrieben hat stimmt so nicht. Der Wert ist schon korrekt geschrieben (In diesem Fall)- die Variante die Du genutzt hast nutzt nur unnötig Ressourcen, weswegen seine besser ist.

          Die Typische Asynchron-Falle ist

          • Steuere(TestDP, 10)
          • Steuere(TestDP2, Wert(TestDP)

          In diesem Fall bekommt TestDP2 nicht immer den Wert 10.

          A.

          F Offline
          F Offline
          Fritzk
          schrieb am zuletzt editiert von
          #8

          @asgothian Der Zähler zählt den Verbrauch. Aktueller Zählerstand ist mein Gaszählerstand. Der MemZählerstand wird um 23:58 gestetzt und nach dem berechne ich täglich fortlaufend den aktuellen verbrauch.
          Am ende des tages 23:58 Uhr wird die differenz von MemZählerstand und Aktuellem Zählerstand in den Datenpunkt Verbrauch gestern geschrieben.

          1 Antwort Letzte Antwort
          0
          • F Fritzk

            @codierknecht Das war mein Fehler.
            Danke dir. jetzt hauts hin

            CodierknechtC Online
            CodierknechtC Online
            Codierknecht
            Developer Most Active
            schrieb am zuletzt editiert von
            #9

            @fritzk
            Ich mache das mit 3 DP - sowohl für Gas als auch (angepasst) für Strom:

            • "Laufender Tagesverbrauch" - wird über Tag bei jedem Impuls hochgezählt
            • "Aktueller Zählerstand" - wird kontinuierlich hochgezählt
            • "Berechneter Tagesverbrauch" wird in der Nacht geschrieben und per SQL historisiert

            712859bd-ee60-4cfb-a49f-13f9e10f211c-image.png

            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

            Proxmox 9.1.1 LXC|8 GB|Core i7-6700
            HmIP|ZigBee|Tasmota|Unifi
            Zabbix Certified Specialist
            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

            AsgothianA 1 Antwort Letzte Antwort
            0
            • CodierknechtC Codierknecht

              @fritzk
              Ich mache das mit 3 DP - sowohl für Gas als auch (angepasst) für Strom:

              • "Laufender Tagesverbrauch" - wird über Tag bei jedem Impuls hochgezählt
              • "Aktueller Zählerstand" - wird kontinuierlich hochgezählt
              • "Berechneter Tagesverbrauch" wird in der Nacht geschrieben und per SQL historisiert

              712859bd-ee60-4cfb-a49f-13f9e10f211c-image.png

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von Asgothian
              #10

              @codierknecht sagte in Blockly täglichen Verbrauch hochzählen:

              @fritzk
              Ich mache das mit 3 DP - sowohl für Gas als auch (angepasst) für Strom:

              • "Laufender Tagesverbrauch" - wird über Tag bei jedem Impuls hochgezählt
              • "Aktueller Zählerstand" - wird kontinuierlich hochgezählt
              • "Berechneter Tagesverbrauch" wird in der Nacht geschrieben und per SQL historisiert

              712859bd-ee60-4cfb-a49f-13f9e10f211c-image.png

              Frage: Wozu ist das Pause 1 Sek in deinem Blockly ?

              Das hat keinen Effekt, da dahinter keine weiteren Anweisungen folgen. Selbst wenn du da ein Pause 20 Stunden rein schreiben würdest würden die Zählerstände munter aktualisieret werden. Das Skript würde Halt noch Ressourcen benötigen.

              A.

              Nachtrag1: Du hast einen Impulstrigger, @Fritzk hat einen Zählenden Trigger, deswegen ist das nicht zu 100% vergleichbar.
              Nachtrag2: Den Zeitplan kann man sich sparen indem du (mit dem gleichen Baustein wie Dein "Wert") das Rücksetzen und Umsetzen im Trigger hinter einem Wenn (Wochentag(Vorheriger Zeitstempel)) != (Wochentag(Aktueller Zeitstempel)) Konstrukt versenkst. Das wird automatisch beim 1. Trigger des neuen Tages angestossen.
              Nachtrag3: Die Abfrage auf "Falls Wert" kann weg wenn du auf "Ist grösser als vorher" Triggerst, denn: Wahr > Falsch :)

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • F Fritzk

                @asgothian Das ganze schaut so aus

                Zwischenablage01.jpg

                kommt trotzdem noch eine Fehlermeldung

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

                @fritzk sagte: Das ganze schaut so aus

                Du hast alle Variablen - nur an der falschen Stelle gesetzt. Falsch ist auch "erhöhe Verbrauch". Vorschlag:

                Bild_2022-12-20_135040061.png

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                F 1 Antwort Letzte Antwort
                0
                • AsgothianA Asgothian

                  @codierknecht sagte in Blockly täglichen Verbrauch hochzählen:

                  @fritzk
                  Ich mache das mit 3 DP - sowohl für Gas als auch (angepasst) für Strom:

                  • "Laufender Tagesverbrauch" - wird über Tag bei jedem Impuls hochgezählt
                  • "Aktueller Zählerstand" - wird kontinuierlich hochgezählt
                  • "Berechneter Tagesverbrauch" wird in der Nacht geschrieben und per SQL historisiert

                  712859bd-ee60-4cfb-a49f-13f9e10f211c-image.png

                  Frage: Wozu ist das Pause 1 Sek in deinem Blockly ?

                  Das hat keinen Effekt, da dahinter keine weiteren Anweisungen folgen. Selbst wenn du da ein Pause 20 Stunden rein schreiben würdest würden die Zählerstände munter aktualisieret werden. Das Skript würde Halt noch Ressourcen benötigen.

                  A.

                  Nachtrag1: Du hast einen Impulstrigger, @Fritzk hat einen Zählenden Trigger, deswegen ist das nicht zu 100% vergleichbar.
                  Nachtrag2: Den Zeitplan kann man sich sparen indem du (mit dem gleichen Baustein wie Dein "Wert") das Rücksetzen und Umsetzen im Trigger hinter einem Wenn (Wochentag(Vorheriger Zeitstempel)) != (Wochentag(Aktueller Zeitstempel)) Konstrukt versenkst. Das wird automatisch beim 1. Trigger des neuen Tages angestossen.
                  Nachtrag3: Die Abfrage auf "Falls Wert" kann weg wenn du auf "Ist grösser als vorher" Triggerst, denn: Wahr > Falsch :)

                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #12

                  @asgothian sagte in Blockly täglichen Verbrauch hochzählen:

                  Frage: Wozu ist das Pause 1 Sek in deinem Blockly ?
                  Das hat keinen Effekt, da dahinter keine weiteren Anweisungen folgen. Selbst wenn du da ein Pause 20 Stunden rein schreiben würdest würden die Zählerstände munter aktualisiert werden. Das Skript würde Halt noch Ressourcen benötigen.

                  Sollte zum Entprellen dienen.
                  In meiner Originalversion folgt darauf noch ein Debug - das habe ich hier der Einfachheit halber weggelassen.
                  Gibt's 'ne bessere Variante zum Entprellen?

                  Nachtrag2: Den Zeitplan kann man sich sparen indem du (mit dem gleichen Baustein wie Dein "Wert") das Rücksetzen und Umsetzen im Trigger hinter einem Wenn (Wochentag(Vorheriger Zeitstempel)) != (Wochentag(Aktueller Zeitstempel)) Konstrukt versenkst. Das wird automatisch beim 1. Trigger des neuen Tages angestossen.

                  Dann wäre der Verbrauch aber am falschen Tag protokolliert

                  Nachtrag3: Die Abfrage auf "Falls Wert" kann weg wenn du auf "Ist grösser als vorher" Triggerst, denn: Wahr > Falsch

                  OK - guter Punkt. Werde ich ändern.

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  AsgothianA 1 Antwort Letzte Antwort
                  0
                  • CodierknechtC Codierknecht

                    @asgothian sagte in Blockly täglichen Verbrauch hochzählen:

                    Frage: Wozu ist das Pause 1 Sek in deinem Blockly ?
                    Das hat keinen Effekt, da dahinter keine weiteren Anweisungen folgen. Selbst wenn du da ein Pause 20 Stunden rein schreiben würdest würden die Zählerstände munter aktualisiert werden. Das Skript würde Halt noch Ressourcen benötigen.

                    Sollte zum Entprellen dienen.
                    In meiner Originalversion folgt darauf noch ein Debug - das habe ich hier der Einfachheit halber weggelassen.
                    Gibt's 'ne bessere Variante zum Entprellen?

                    Nachtrag2: Den Zeitplan kann man sich sparen indem du (mit dem gleichen Baustein wie Dein "Wert") das Rücksetzen und Umsetzen im Trigger hinter einem Wenn (Wochentag(Vorheriger Zeitstempel)) != (Wochentag(Aktueller Zeitstempel)) Konstrukt versenkst. Das wird automatisch beim 1. Trigger des neuen Tages angestossen.

                    Dann wäre der Verbrauch aber am falschen Tag protokolliert

                    Nachtrag3: Die Abfrage auf "Falls Wert" kann weg wenn du auf "Ist grösser als vorher" Triggerst, denn: Wahr > Falsch

                    OK - guter Punkt. Werde ich ändern.

                    AsgothianA Offline
                    AsgothianA Offline
                    Asgothian
                    Developer
                    schrieb am zuletzt editiert von Asgothian
                    #13

                    @codierknecht sagte in Blockly täglichen Verbrauch hochzählen:

                    Frage: Wozu ist das Pause 1 Sek in deinem Blockly ?
                    Das hat keinen Effekt, da dahinter keine weiteren Anweisungen folgen. Selbst wenn du da ein Pause 20 Stunden rein schreiben würdest würden die Zählerstände munter aktualisiert werden. Das Skript würde Halt noch Ressourcen benötigen.

                    Sollte zum Entprellen dienen.
                    In meiner Originalversion folgt darauf noch ein Debug - das habe ich hier der Einfachheit halber weggelassen.
                    Gibt's 'ne bessere Variante zum Entprellen?

                    Wenn du entprellen willst dann brauchst du entweder einen Timeout und eine Variable oder eine geeignete Zeitabfrage (die ich inzwischen bevorzuge): Ich setze eine interne Variable "timestamp" am Anfang auf 0.
                    Dann folgt: falls Timestamp < aktueller Zeitstempel - x mache (Aktion nach trigger, setze Timestamp auf aktueller Zeitstempel)
                    x ist die Entprellzeit in ms.

                    Nachtrag2: Den Zeitplan kann man sich sparen indem du (mit dem gleichen Baustein wie Dein "Wert") das Rücksetzen und Umsetzen im Trigger hinter einem Wenn (Wochentag(Vorheriger Zeitstempel)) != (Wochentag(Aktueller Zeitstempel)) Konstrukt versenkst. Das wird automatisch beim 1. Trigger des neuen Tages angestossen.

                    Dann wäre der Verbrauch aber am falschen Tag protokolliert

                    Das Protokollieren am falschen Tag ist in der Theorie richtig - in der Praxis stellt sich die Frage wie du mit den DP weiter arbeitest. Solange du nur "Verbrauch heute" und "Verbrauch Gestern" in einer Visualisierung darstellst wird es eher nicht auffallen wenn innerhalb der ersten x Sekunden des Tages der Wert noch nicht stimmt.

                    A.

                    ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                    "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                    CodierknechtC 1 Antwort Letzte Antwort
                    1
                    • AsgothianA Asgothian

                      @codierknecht sagte in Blockly täglichen Verbrauch hochzählen:

                      Frage: Wozu ist das Pause 1 Sek in deinem Blockly ?
                      Das hat keinen Effekt, da dahinter keine weiteren Anweisungen folgen. Selbst wenn du da ein Pause 20 Stunden rein schreiben würdest würden die Zählerstände munter aktualisiert werden. Das Skript würde Halt noch Ressourcen benötigen.

                      Sollte zum Entprellen dienen.
                      In meiner Originalversion folgt darauf noch ein Debug - das habe ich hier der Einfachheit halber weggelassen.
                      Gibt's 'ne bessere Variante zum Entprellen?

                      Wenn du entprellen willst dann brauchst du entweder einen Timeout und eine Variable oder eine geeignete Zeitabfrage (die ich inzwischen bevorzuge): Ich setze eine interne Variable "timestamp" am Anfang auf 0.
                      Dann folgt: falls Timestamp < aktueller Zeitstempel - x mache (Aktion nach trigger, setze Timestamp auf aktueller Zeitstempel)
                      x ist die Entprellzeit in ms.

                      Nachtrag2: Den Zeitplan kann man sich sparen indem du (mit dem gleichen Baustein wie Dein "Wert") das Rücksetzen und Umsetzen im Trigger hinter einem Wenn (Wochentag(Vorheriger Zeitstempel)) != (Wochentag(Aktueller Zeitstempel)) Konstrukt versenkst. Das wird automatisch beim 1. Trigger des neuen Tages angestossen.

                      Dann wäre der Verbrauch aber am falschen Tag protokolliert

                      Das Protokollieren am falschen Tag ist in der Theorie richtig - in der Praxis stellt sich die Frage wie du mit den DP weiter arbeitest. Solange du nur "Verbrauch heute" und "Verbrauch Gestern" in einer Visualisierung darstellst wird es eher nicht auffallen wenn innerhalb der ersten x Sekunden des Tages der Wert noch nicht stimmt.

                      A.

                      CodierknechtC Online
                      CodierknechtC Online
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #14

                      @asgothian sagte in Blockly täglichen Verbrauch hochzählen:

                      Wenn du entprellen willst dann brauchst du entweder einen Timeout und eine Variable

                      Das habe ich mir beim Betrachten des Codes schon so gedacht.
                      Hier laufe ich sonst wohl in ein Asynchron-Problem, falls es wirklich zum Prellen kommt.
                      Werde ich mal umbauen.

                      @asgothian sagte in Blockly täglichen Verbrauch hochzählen:

                      Das Protokollieren am falschen Tag ist in der Theorie richtig - in der Praxis stellt sich die Frage wie du mit den DP weiter arbeitest. Solange du nur "Verbrauch heute" und "Verbrauch Gestern" in einer Visualisierung darstellst wird es eher nicht auffallen wenn innerhalb der ersten x Sekunden des Tages der Wert noch nicht stimmt.

                      Ich protokolliere den Verbrauch für die einzelnen Tage.
                      Wenn ich den Wert erst beim ersten Impuls eines Tages wegschreibe, landet er durch seinen Timestamp auf dem falschen Tag. Ist nicht kriegsentscheidend, aber verfälscht das Bild. Könnte man natürlich im SQL wieder zurechtbiegen.

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @fritzk sagte: Das ganze schaut so aus

                        Du hast alle Variablen - nur an der falschen Stelle gesetzt. Falsch ist auch "erhöhe Verbrauch". Vorschlag:

                        Bild_2022-12-20_135040061.png

                        F Offline
                        F Offline
                        Fritzk
                        schrieb am zuletzt editiert von
                        #15

                        @paul53 nur nochmal ne frage zum Verständniss. Der Verbrauch aktuell sollte ja dann auch um 23:58 Uhr auf null zurückgestellt werden ? Das ist ja dann mein Tagesverbrauch vom aktuellen Tag

                        paul53P 1 Antwort Letzte Antwort
                        0
                        • F Fritzk

                          @paul53 nur nochmal ne frage zum Verständniss. Der Verbrauch aktuell sollte ja dann auch um 23:58 Uhr auf null zurückgestellt werden ? Das ist ja dann mein Tagesverbrauch vom aktuellen Tag

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

                          @fritzk sagte: Der Verbrauch aktuell sollte ja dann auch um 23:58 Uhr auf null zurückgestellt werden ?

                          Das kann man machen. Beim nächsten Zählimpuls fängt er ohnehin mit dem Wert einer Impulseinheit an.

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0

                          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

                          285

                          Online

                          32.8k

                          Benutzer

                          82.7k

                          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