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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Datenpunkt für einen Zähler

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Datenpunkt für einen Zähler

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
17 Beiträge 7 Kommentatoren 968 Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D DGR

    Ich habe einen Datenpunkt erstellt und möchte ihn für einen einfachen Zähler nutzen (z.B. 1 bis 50).
    Egal, ob ich den Wert mit "steuere" oder "aktualisiere" in Blockly ändere, immer wird ein neuer Datensatz mit dem veränderten Wert geschrieben. Ich möchte aber in dem Datenpunkt nur EINEN Datensatz mit dem jeweils aktuellen Wert stehen haben, weil sonst unnötig viele Datensätze mit der Zeit entstehen würden.
    Ich habe es auch mit einer Variablen versucht, aber das hat den Nachteil, dass bei jeder Änderung des Scripts wieder von vorn gezählt wird und nicht weiter mit dem letzten Wert.
    Leider habe ich bisher keine Lösung gefunden.

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

    @dgr
    Wenn Du von „Datensätzen“ sprichst, meinst Du damit vermutlich die Historisierung in einer DB?
    Da ist es dann Sinn und Zweck der Geschichte, bei jeder Änderung einen neuen Datensatz zu schreiben.

    "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

    D 1 Antwort Letzte Antwort
    0
    • CodierknechtC Codierknecht

      @dgr
      Wenn Du von „Datensätzen“ sprichst, meinst Du damit vermutlich die Historisierung in einer DB?
      Da ist es dann Sinn und Zweck der Geschichte, bei jeder Änderung einen neuen Datensatz zu schreiben.

      D Offline
      D Offline
      DGR
      schrieb am zuletzt editiert von
      #7

      @codierknecht
      ja, das meine ich mit "Datensatz". Aber das Problem hat sich jetzt ganz einfach geklärt. Ich nutze zwar den Datenpunkt, aber nur als Datenpunkt und aktiviere nicht die Verknüpfung mit Influx. Somit hat der Datenpunkt immer den aktuellen Wert und die Datenbank wird nicht zugemüllt.

      N D 2 Antworten Letzte Antwort
      0
      • D DGR

        @codierknecht
        ja, das meine ich mit "Datensatz". Aber das Problem hat sich jetzt ganz einfach geklärt. Ich nutze zwar den Datenpunkt, aber nur als Datenpunkt und aktiviere nicht die Verknüpfung mit Influx. Somit hat der Datenpunkt immer den aktuellen Wert und die Datenbank wird nicht zugemüllt.

        N Offline
        N Offline
        Naturfreund
        schrieb am zuletzt editiert von
        #8

        @dgr
        Du kannst auch mit Variablen arbeiten. Dann brauchst du gar keinen Datenpunkt anlegen.

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #9

          @DGR
          bitte lesen und befolgen
          https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1

          kein Support per PN! - Fragen im Forum stellen -

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

          ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

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

          1 Antwort Letzte Antwort
          0
          • D DGR

            @codierknecht
            ja, das meine ich mit "Datensatz". Aber das Problem hat sich jetzt ganz einfach geklärt. Ich nutze zwar den Datenpunkt, aber nur als Datenpunkt und aktiviere nicht die Verknüpfung mit Influx. Somit hat der Datenpunkt immer den aktuellen Wert und die Datenbank wird nicht zugemüllt.

            D Offline
            D Offline
            DGR
            schrieb am zuletzt editiert von
            #10

            @dgr
            Das war leider ein Denkfehler von mir. Es geht so zumindest nicht an den Stellen, wo ich die Daten brauche. Ich will die aktuellen Daten ja über Influx lesen aus ioBroker und dann in Grafana darstellen. Also brauche ich die Verbindung ioBroker - InfluxDB2.
            Was mir in dem Zusammenhang nicht klar ist, ist der Unterschied in ioBroker-Scripte-Blockly zwischen "steuere" und "aktualisiere". In beiden Fällen werden neue Daten geschrieben. Ob das für mein Problem relevant ist, weiß ich nicht. Ich suche noch immer nach einer Möglichkeit, eine Verbindung von einem Datenpunkt zu Influx herzustellen, ohne den Datenpunkt laufend mit neuen Daten zu füllen. Mich interessiert nur der jeweils letzte/aktuelle Wert.
            Wie bereits oben beschrieben hatte ich es auch Variablen getestet. Das läuft solange gut, bis das Script mal gestoppt/neu gestartet wird. Dann wird die Variable nicht vom alten Stand weiter gezählt, sondern beginnt wieder bei 1 (oder 0).
            Beispiel für den Hintergrund der ganzen Aktion:
            Ich lese über einen Fototransistor an einem ESP8266-Controller die blinkende LED am Stromzähler aus. Dort entsprechen 500 Lichtimpulse 1 kWh, also zähle ich 50 Impulse und erhöhe dann den Zählerstand im ioBroker um 0,1 kWh. Dann wird der Zähler wieder auf 0 gestellt. Mit der Zeit entstehen hier viele Daten mit Werten immer 1 bis 50, von denen ich ja nur den aktuellen Wert brauche.

            CodierknechtC K 2 Antworten Letzte Antwort
            0
            • D DGR

              @dgr
              Das war leider ein Denkfehler von mir. Es geht so zumindest nicht an den Stellen, wo ich die Daten brauche. Ich will die aktuellen Daten ja über Influx lesen aus ioBroker und dann in Grafana darstellen. Also brauche ich die Verbindung ioBroker - InfluxDB2.
              Was mir in dem Zusammenhang nicht klar ist, ist der Unterschied in ioBroker-Scripte-Blockly zwischen "steuere" und "aktualisiere". In beiden Fällen werden neue Daten geschrieben. Ob das für mein Problem relevant ist, weiß ich nicht. Ich suche noch immer nach einer Möglichkeit, eine Verbindung von einem Datenpunkt zu Influx herzustellen, ohne den Datenpunkt laufend mit neuen Daten zu füllen. Mich interessiert nur der jeweils letzte/aktuelle Wert.
              Wie bereits oben beschrieben hatte ich es auch Variablen getestet. Das läuft solange gut, bis das Script mal gestoppt/neu gestartet wird. Dann wird die Variable nicht vom alten Stand weiter gezählt, sondern beginnt wieder bei 1 (oder 0).
              Beispiel für den Hintergrund der ganzen Aktion:
              Ich lese über einen Fototransistor an einem ESP8266-Controller die blinkende LED am Stromzähler aus. Dort entsprechen 500 Lichtimpulse 1 kWh, also zähle ich 50 Impulse und erhöhe dann den Zählerstand im ioBroker um 0,1 kWh. Dann wird der Zähler wieder auf 0 gestellt. Mit der Zeit entstehen hier viele Daten mit Werten immer 1 bis 50, von denen ich ja nur den aktuellen Wert brauche.

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

              @dgr
              Der Unterschied zwischen "Aktualisiere" und "Steuere" ist hier gut erklärt:
              https://forum.iobroker.net/topic/61876/bestätigt-acknowledged-flag-bedeutung-ein-mysterium

              Influx und andere DB-Adapter sind darauf ausgelegt, Daten für die Historie anzulegen.
              Mit Deinem Ansinnen bist Du da falsch aufgehoben bzw. Du loggst den falschen Datenpunkt.
              Deinen Zähler mit den Impulsen zu loggen macht da keinen Sinn.
              Ich mache das mit meinem alten Drehstromzähler ähnlich (siehe unten) - dort entsprechen 96 Umdrehungen 1 kWh.
              Geloggt wird in der DB nicht der Impuls-DP, sondern mein Tagesverbrauch.
              Mit der Variablen funktioniert das aber auch - auch nach einem Neustart. Du muss beim Start des Scriptes halt den aktuellen Stand aus dem DP lesen und dann damit weiterarbeiten.

              0e3f5e14-22d2-4316-a625-81b64ed51283-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

              D 2 Antworten Letzte Antwort
              1
              • CodierknechtC Codierknecht

                @dgr
                Der Unterschied zwischen "Aktualisiere" und "Steuere" ist hier gut erklärt:
                https://forum.iobroker.net/topic/61876/bestätigt-acknowledged-flag-bedeutung-ein-mysterium

                Influx und andere DB-Adapter sind darauf ausgelegt, Daten für die Historie anzulegen.
                Mit Deinem Ansinnen bist Du da falsch aufgehoben bzw. Du loggst den falschen Datenpunkt.
                Deinen Zähler mit den Impulsen zu loggen macht da keinen Sinn.
                Ich mache das mit meinem alten Drehstromzähler ähnlich (siehe unten) - dort entsprechen 96 Umdrehungen 1 kWh.
                Geloggt wird in der DB nicht der Impuls-DP, sondern mein Tagesverbrauch.
                Mit der Variablen funktioniert das aber auch - auch nach einem Neustart. Du muss beim Start des Scriptes halt den aktuellen Stand aus dem DP lesen und dann damit weiterarbeiten.

                0e3f5e14-22d2-4316-a625-81b64ed51283-image.png

                D Offline
                D Offline
                DGR
                schrieb am zuletzt editiert von
                #12

                @codierknecht
                OK., vielen Dank für den Hinweis. Das werde ich mal so umbauen und testen.

                1 Antwort Letzte Antwort
                0
                • D DGR

                  @dgr
                  Das war leider ein Denkfehler von mir. Es geht so zumindest nicht an den Stellen, wo ich die Daten brauche. Ich will die aktuellen Daten ja über Influx lesen aus ioBroker und dann in Grafana darstellen. Also brauche ich die Verbindung ioBroker - InfluxDB2.
                  Was mir in dem Zusammenhang nicht klar ist, ist der Unterschied in ioBroker-Scripte-Blockly zwischen "steuere" und "aktualisiere". In beiden Fällen werden neue Daten geschrieben. Ob das für mein Problem relevant ist, weiß ich nicht. Ich suche noch immer nach einer Möglichkeit, eine Verbindung von einem Datenpunkt zu Influx herzustellen, ohne den Datenpunkt laufend mit neuen Daten zu füllen. Mich interessiert nur der jeweils letzte/aktuelle Wert.
                  Wie bereits oben beschrieben hatte ich es auch Variablen getestet. Das läuft solange gut, bis das Script mal gestoppt/neu gestartet wird. Dann wird die Variable nicht vom alten Stand weiter gezählt, sondern beginnt wieder bei 1 (oder 0).
                  Beispiel für den Hintergrund der ganzen Aktion:
                  Ich lese über einen Fototransistor an einem ESP8266-Controller die blinkende LED am Stromzähler aus. Dort entsprechen 500 Lichtimpulse 1 kWh, also zähle ich 50 Impulse und erhöhe dann den Zählerstand im ioBroker um 0,1 kWh. Dann wird der Zähler wieder auf 0 gestellt. Mit der Zeit entstehen hier viele Daten mit Werten immer 1 bis 50, von denen ich ja nur den aktuellen Wert brauche.

                  K Offline
                  K Offline
                  klassisch
                  Most Active
                  schrieb am zuletzt editiert von klassisch
                  #13

                  @dgr sagte in Datenpunkt für einen Zähler:

                  Ich lese über einen Fototransistor an einem ESP8266-Controller die blinkende LED am Stromzähler aus. Dort entsprechen 500 Lichtimpulse 1 kWh, also zähle ich 50 Impulse und erhöhe dann den Zählerstand im ioBroker um 0,1 kWh. Dann wird der Zähler wieder auf 0 gestellt. Mit der Zeit entstehen hier viele Daten mit Werten immer 1 bis 50, von denen ich ja nur den aktuellen Wert brauche.

                  Kann man so machen, halte ich aber für suboptimal.
                  Ich würde den ESP kumulieren lassen und z.B. alle Minute die Daten an ioBroker senden.

                  Du willst ja eine Konstistenz zwischen abgelesenem Zählerwert und iobroker Wert ohne ständig manuell eingreifen zu müssen.
                  ioBroker braucht ab und an updates und auch das OS des ioBroker tragenden Rechners braucht das.
                  Da können schon einige Minuten Auszeit entstehen. Bei Deiner Methode verliert dann der ioBroker Impulse wodurch die Zähler auseinanderlaufen.

                  D 2 Antworten Letzte Antwort
                  0
                  • K klassisch

                    @dgr sagte in Datenpunkt für einen Zähler:

                    Ich lese über einen Fototransistor an einem ESP8266-Controller die blinkende LED am Stromzähler aus. Dort entsprechen 500 Lichtimpulse 1 kWh, also zähle ich 50 Impulse und erhöhe dann den Zählerstand im ioBroker um 0,1 kWh. Dann wird der Zähler wieder auf 0 gestellt. Mit der Zeit entstehen hier viele Daten mit Werten immer 1 bis 50, von denen ich ja nur den aktuellen Wert brauche.

                    Kann man so machen, halte ich aber für suboptimal.
                    Ich würde den ESP kumulieren lassen und z.B. alle Minute die Daten an ioBroker senden.

                    Du willst ja eine Konstistenz zwischen abgelesenem Zählerwert und iobroker Wert ohne ständig manuell eingreifen zu müssen.
                    ioBroker braucht ab und an updates und auch das OS des ioBroker tragenden Rechners braucht das.
                    Da können schon einige Minuten Auszeit entstehen. Bei Deiner Methode verliert dann der ioBroker Impulse wodurch die Zähler auseinanderlaufen.

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

                    @klassisch
                    Da hast du wohl recht. Schaue ich mir am Wochenende mal an.

                    1 Antwort Letzte Antwort
                    0
                    • CodierknechtC Codierknecht

                      @dgr
                      Der Unterschied zwischen "Aktualisiere" und "Steuere" ist hier gut erklärt:
                      https://forum.iobroker.net/topic/61876/bestätigt-acknowledged-flag-bedeutung-ein-mysterium

                      Influx und andere DB-Adapter sind darauf ausgelegt, Daten für die Historie anzulegen.
                      Mit Deinem Ansinnen bist Du da falsch aufgehoben bzw. Du loggst den falschen Datenpunkt.
                      Deinen Zähler mit den Impulsen zu loggen macht da keinen Sinn.
                      Ich mache das mit meinem alten Drehstromzähler ähnlich (siehe unten) - dort entsprechen 96 Umdrehungen 1 kWh.
                      Geloggt wird in der DB nicht der Impuls-DP, sondern mein Tagesverbrauch.
                      Mit der Variablen funktioniert das aber auch - auch nach einem Neustart. Du muss beim Start des Scriptes halt den aktuellen Stand aus dem DP lesen und dann damit weiterarbeiten.

                      0e3f5e14-22d2-4316-a625-81b64ed51283-image.png

                      D Offline
                      D Offline
                      DGR
                      schrieb am zuletzt editiert von
                      #15

                      @codierknecht
                      Die Nutzung der Variablen habe ich da wo es geht so umgestellt. Das klappt so jetzt auch nach Unterbrechung/Neustart des Scripts.
                      Danke.

                      1 Antwort Letzte Antwort
                      0
                      • K klassisch

                        @dgr sagte in Datenpunkt für einen Zähler:

                        Ich lese über einen Fototransistor an einem ESP8266-Controller die blinkende LED am Stromzähler aus. Dort entsprechen 500 Lichtimpulse 1 kWh, also zähle ich 50 Impulse und erhöhe dann den Zählerstand im ioBroker um 0,1 kWh. Dann wird der Zähler wieder auf 0 gestellt. Mit der Zeit entstehen hier viele Daten mit Werten immer 1 bis 50, von denen ich ja nur den aktuellen Wert brauche.

                        Kann man so machen, halte ich aber für suboptimal.
                        Ich würde den ESP kumulieren lassen und z.B. alle Minute die Daten an ioBroker senden.

                        Du willst ja eine Konstistenz zwischen abgelesenem Zählerwert und iobroker Wert ohne ständig manuell eingreifen zu müssen.
                        ioBroker braucht ab und an updates und auch das OS des ioBroker tragenden Rechners braucht das.
                        Da können schon einige Minuten Auszeit entstehen. Bei Deiner Methode verliert dann der ioBroker Impulse wodurch die Zähler auseinanderlaufen.

                        D Offline
                        D Offline
                        DGR
                        schrieb am zuletzt editiert von
                        #16

                        @klassisch
                        Das mit dem Kumulieren auf dem ESP stellt sich bei mir als schwierig heraus. Ich habe den ESP mit ESP Easy geflasht. Da kann man auch über "Internal Pullup" aufsummieren und nach einer vorzugebenden Zeit den Wert senden lassen. Hier habe ich aber keine Möglichkeit nach einem erreichten Wert zu senden (habe ich zumindest nicht gefunden).
                        Vielleicht müßte ich Python flashen statt ESP Easy und dann ein entsprechendes Script erstellen.
                        Das könnte für den Stromzähler was bringen. Ich erhalte allerdings auch den aktuellen Stand des Gaszählers. Das läuft nicht über einen ESP, sondern es wird lediglich ein Reed-Kontakt eingesetzt, der Änderungen über Zigbee sendet. Somit habe ich da keine entsprechende Möglichkeit. Das alles ist nicht so problematisch, da beide Zähler nur wenige Meter entfernt sind. Da würde sich der Aufwand für den Stromzähler nicht lohnen - bis auf die Freude beim Basteln.

                        K 1 Antwort Letzte Antwort
                        0
                        • D DGR

                          @klassisch
                          Das mit dem Kumulieren auf dem ESP stellt sich bei mir als schwierig heraus. Ich habe den ESP mit ESP Easy geflasht. Da kann man auch über "Internal Pullup" aufsummieren und nach einer vorzugebenden Zeit den Wert senden lassen. Hier habe ich aber keine Möglichkeit nach einem erreichten Wert zu senden (habe ich zumindest nicht gefunden).
                          Vielleicht müßte ich Python flashen statt ESP Easy und dann ein entsprechendes Script erstellen.
                          Das könnte für den Stromzähler was bringen. Ich erhalte allerdings auch den aktuellen Stand des Gaszählers. Das läuft nicht über einen ESP, sondern es wird lediglich ein Reed-Kontakt eingesetzt, der Änderungen über Zigbee sendet. Somit habe ich da keine entsprechende Möglichkeit. Das alles ist nicht so problematisch, da beide Zähler nur wenige Meter entfernt sind. Da würde sich der Aufwand für den Stromzähler nicht lohnen - bis auf die Freude beim Basteln.

                          K Offline
                          K Offline
                          klassisch
                          Most Active
                          schrieb am zuletzt editiert von
                          #17

                          @dgr Bin nicht sicher, ob wir aneinander vorbei reden.
                          a6d05e26-4586-4b82-a607-f08018c947ec-grafik.png
                          ESPEasy hat den "Generic Pulse counter". Davon ist "Total" wichtig.

                          Wenn man dort auf "Edit" drückt, kann man das Sendeintervall einstellen.
                          dc8ec922-2137-43a9-8e5a-a0c6ec3adc6d-grafik.png

                          Dann sendet der ESP z.B. jede Minute die Gesamtzahl der Impulse, die er in diesem Power Zyklus summiert hat. Unabhängig davon, ob sich was geändert hat oder nicht.

                          Auf ioBroker Seite habe ich noch eine Logik, die erkennt, wenn die ESP-Summe plötzlich kleiner wurde. Dann hat der nämlich rebootet. ioBroker berechnet dann einen neuen Offset Wert, womit auch der Reset des ESP neutralisiert oder mindestens mitigiert wird.

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          391

                          Online

                          32.7k

                          Benutzer

                          82.4k

                          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