Skip to content

Zählerstände korrigieren und Zähler tauschen ​

Wie korrigiere ich falsche, zu hohe oder negative Werte nach einem Reset? ​

Kurz: Ab v0.7.0 öffnest du in den Instanz-Einstellungen von SourceAnalytix die Quelle, wählst die Aktion „Zählerstand angleichen" und gibst den Stand ein, den dein Zähler gerade zeigt. Den Rest erledigt SourceAnalytix sofort, ohne Neustart. Bis v0.6.x geht es nur von Hand (siehe unten), und dort reicht es nicht, nur cumulativeReading zu ändern.

Der Grund: Der Gesamtstand (cumulativeReading) ist immer Gerätewert + Offset (valueAtDeviceReset). Änderst du nur den Gesamtstand, überschreibt ihn der nächste Wert wieder oder hält ihn für einen Reset. Die Aktion setzt beide Werte passend zueinander. Die Begriffe sind unter Was bedeutet „Device reset detected"? erklärt.

So gehst du vor (ab v0.7.0) ​

  1. Öffne unter „Instanzen" die Einstellungen der SourceAnalytix-Instanz und dort im Tab „Übersicht" deine Quelle.
  2. Wähle bei „Aktionen" den Eintrag „Zählerstand angleichen".
  3. Trage bei „Was zeigt dein Zähler jetzt?" den Stand ein, den du am Zähler abliest.
  4. Prüfe die Vorschau. Sie zeigt den alten und den neuen Gesamtstand. Der Verbrauch von heute und die vergangenen Perioden bleiben unverändert.
  5. Klicke auf „⚡ Angleichen". Die Werte gelten sofort.

Dialog „Zählerstand angleichen“ mit Vorschau

Meldet SourceAnalytix selbst, dass Gesamtstand und Zähler nicht zusammenpassen, steht das im Tab „Probleme" mit dem Vorschlag „Zählerstand angleichen".

Die Aktion verschiebt alle Startwerte um denselben Betrag wie den Gesamtstand. Ein falscher Sprung, der schon im Verbrauch von heute, dieser Woche oder diesem Monat steckt, bleibt deshalb dort stehen. Diesen Teil entfernst du zusätzlich über die Startwerte, wie unter So korrigierst du die Startwerte beschrieben.

Kosten reparieren ​

WARNING

Kosten werden fortlaufend aus der Änderung des Gesamtstands gebucht. Ein falscher Sprung nach oben ist deshalb schon als Kosten zum damaligen Preis gebucht, und eine Senkung des Gesamtstands verringert die Kosten nicht. Repariere die Kosten nach jeder Korrektur.

Ab v0.7.0: Wähle bei der Quelle die Aktion „Kosten ab Datum neu rechnen" und als Datum den Tag, an dem der Fehler begann. SourceAnalytix rechnet die Kosten aller betroffenen Perioden mit dem Preisverlauf neu, der Verbrauch bleibt gleich. Die Vorschau zeigt vorher, wie viele Perioden betroffen sind. Weil SourceAnalytix nur den Verbrauch je Periode kennt, verteilt es ihn gleichmäßig über die Periode: Ändert sich der Preis mitten in einer Periode, wird der Verbrauch anteilig nach Zeit auf die beiden Preise aufgeteilt. Werte in einer Historie wie InfluxDB ändert die Aktion nicht (#947).

Bis v0.6.x: Die Kosten der laufenden Perioden lassen sich neu aufsetzen. Stoppe die Instanz, leere den State sourceanalytix.0.<Gerät>.dynamicCostMemory und setze die States sourceanalytix.0.<Gerät>.currentYear.costs.01_currentDay bis 05_currentYear auf 0 (bei Einspeisung currentYear.earnings.…). Nach dem Start rechnet SourceAnalytix sie aus Gesamtstand und Startwerten mit dem aktuellen Preis neu. Ein Preiswechsel innerhalb der laufenden Periode geht dabei verloren.

Vor Mitternacht korrigieren ​

Um Mitternacht schreibt SourceAnalytix die Werte der abgelaufenen Perioden nach previousDay, previousWeek usw. und setzt die Startwerte auf den Gesamtstand. Diese abgeschlossenen Werte und das Archiv unter <Jahr> werden beim Angleichen nicht neu berechnet. Korrigierst du vor Mitternacht, bleibt der Fehler auf den laufenden Tag beschränkt. Schon geschriebene Werte von gestern oder aus dem Archiv änderst du von Hand, ebenso Werte in einer Historie wie InfluxDB.

Bis v0.6.x: von Hand korrigieren ​

  1. Notiere den echten Zählerstand und den aktuellen Wert deines Quell-Datenpunkts, beide in der Zieleinheit (Wh durch 1.000 teilen, wenn in kWh gerechnet wird). Offset = echter Zählerstand − Gerätewert. Zeigt dein Gerät schon den echten Zählerstand (z. B. Lesekopf am Stromzähler), ist der Offset 0.
  2. Stoppe die Instanz.
  3. Setze in den SourceAnalytix-Einstellungen des Quell-Datenpunkts die Startwerte „Tag" bis „Jahr" auf den Gesamtstand zu Beginn der Periode, höchstens auf den echten Zählerstand. Speichern.
  4. Setze im Objekt des Quell-Datenpunkts unter common.custom.sourceanalytix.0 den Wert valueAtDeviceReset auf den Offset (Objekte, Expertenmodus, Objekt bearbeiten).
  5. Setze sourceanalytix.0.<Gerät>.cumulativeReading auf den echten Zählerstand.
  6. Starte die Instanz und repariere die Kosten wie oben.

Ab v0.6.2: Liegt der Offset über dem Gesamtstand, etwa weil nur cumulativeReading gesenkt wurde, läuft die Quelle weiter, und SourceAnalytix richtet den Offset beim nächsten Wert selbst aus. Bis v0.6.1 stoppte die Quelle mit dem Fehler „Known valueAtDeviceReset > known cumulative value" (#1257).

Siehe auch: Negative Werte nach Startwerten · Zähler oder Gerät getauscht · Fehler „Known valueAtDeviceReset > known cumulative value" · Vorperioden (previous-States)

Warum sind meine Werte nach der Eingabe von Startwerten negativ? ​

Kurz: Mindestens ein Startwert ist größer als der aktuelle Gesamtstand. Der Verbrauch einer Periode ist Gesamtstand − Startwert, er wird also negativ, sobald der Startwert darüber liegt. Trage als Startwert den Gesamtstand zu Beginn der Periode in der Zieleinheit ein, nie mehr als den aktuellen cumulativeReading.

Die häufigsten Ursachen ​

Was eingetragen wurdeWas passiertRichtig
Der Verbrauch der Periode (z. B. 350 kWh im Jahr) statt des ZählerstandsEin kleiner Startwert lässt fast den ganzen Zählerstand als Verbrauch erscheinenGesamtstand zu Beginn der Periode, z. B. 12.300 kWh am 1. Januar
Der Zählerstand in Wh (12.300.000), obwohl die Preisdefinition in kWh rechnetStartwert tausendmal zu groß, Verbrauch stark negativWert in der Zieleinheit, also 12.300 kWh
Der Gerätewert, obwohl SourceAnalytix nach einem Reset mit einem Offset rechnetStartwert passt nicht zum Gesamtstand, Verbrauch zu hoch oder negativWert aus cumulativeReading als Maßstab nehmen, nicht den Wert des Geräts
Ein Startwert für „Jahr" oder „Monat", der über dem von „Tag" liegtDie längere Periode wird negativ„Tag" ist immer der höchste Startwert, siehe unten
0 in einem Feld, nachdem die Quelle schon liefDer ganze Gesamtstand erscheint als VerbrauchLeere oder 0-Felder füllt SourceAnalytix nur bei der ersten Aktivierung selbst

So korrigierst du die Startwerte ​

  1. Lies den aktuellen Gesamtstand ab: ab v0.7.0 in der Detailansicht der Quelle unter „Gesamtstand", sonst im State sourceanalytix.0.<Gerät>.cumulativeReading.
  2. Scrolle in der Detailansicht im Bereich „Einstellungen" zum Abschnitt „Startwerte". Bis v0.6.x stehen die Felder im Objekt-Dialog des Datenpunkts (Reiter „Objekte", Schraubenschlüssel) unter „Startwerte für den jeweiligen Zeitraum".
  3. Trage bei „Tag", „Woche", „Monat", „Quartal" und „Jahr" den Gesamtstand zu Beginn der jeweiligen Periode ein, in der Zieleinheit.
    • Kennst du den Stand zu Beginn einer Periode nicht, trage den aktuellen Gesamtstand ein. Die Periode beginnt dann jetzt bei 0.
    • Jeder Startwert ist höchstens so groß wie der aktuelle Gesamtstand.
    • „Tag" ist mindestens so groß wie alle anderen, denn der Tag hat zuletzt begonnen. „Monat" ist mindestens so groß wie „Quartal", „Quartal" mindestens so groß wie „Jahr".
    • „Woche" ordnest du nach ihrem ersten Tag ein: Begann die Woche im Vormonat oder im Vorjahr, darf ihr Startwert unter dem von „Monat" oder „Jahr" liegen.
    • Schreib Zahlen ohne Tausenderpunkt, mit Komma oder Punkt als Dezimalzeichen: 12475,5 oder 12475.5.
  4. Klicke auf „⚡ Übernehmen". Die Instanz musst du dafür nicht stoppen.
  5. Mit dem nächsten Wert der Quelle rechnet SourceAnalytix die laufenden Perioden neu. Die Werte unter currentYear sind jetzt nicht mehr negativ.

Bereich „Einstellungen“ der Quelle mit „Startwerte“ und aufgeklapptem „Für Experten“

IMPORTANT

Startwerte gelten nur für die laufende Periode. Beim nächsten Wechsel (z. B. um Mitternacht für „Tag") überschreibt SourceAnalytix sie mit dem dann aktuellen Gesamtstand. Abgeschlossene Perioden wie gestern oder der Vormonat werden durch neue Startwerte nicht neu berechnet.

Stimmt nicht der Startwert, sondern der Gesamtstand selbst nicht, hilft das Ändern der Startwerte nicht. Dann gehst du vor wie unter Falsche Werte korrigieren.

Ab v0.7.0: Die Detailansicht prüft die Startwerte wie der Assistent: Jeder geänderte Startwert muss zum aktuellen Gesamtstand und zur Reihenfolge der Perioden passen, sonst zeigt das Feld einen Fehler, und „⚡ Übernehmen" bleibt gesperrt. Passt ein Wert erst geteilt durch 1000, steht dort zum Beispiel „Sieht nach Wh aus – gemeint 1,29 kWh?". Unpassende Startwerte meldet außerdem der Tab „Probleme" als „Startwert passt nicht" mit dem Vorschlag „Startwerte prüfen: höchstens der aktuelle Stand, in der Rechen-Einheit." (#1267, #1269).

Siehe auch: Was trage ich bei den Startwerten ein? · Werte viel zu hoch oder negativ – stimmt die Einheit? · Die Begriffe

Ich habe Zähler oder Gerät getauscht – wie vermeide ich negative Werte? ​

Kurz: Lass die Reset-Erkennung eingeschaltet. Beginnt der neue Zähler deutlich unter dem alten Gesamtstand, zum Beispiel bei 0, zählt SourceAnalytix nach zwei Werten selbst weiter. In allen anderen Fällen nutzt du ab v0.7.0 die Aktion „Zähler getauscht" in den Instanz-Einstellungen, am besten bevor der neue Zähler den ersten Wert liefert.

Was SourceAnalytix beim Tausch tut ​

Der neue Zähler beginnt …SourceAnalytix …Du …
deutlich unter dem alten Gesamtstand (mehr als die Schwelle)erkennt einen Reset, bestätigt ihn mit dem nächsten Wert und zählt auf den alten Gesamtstand weitermusst nichts tun. Im Log steht „Device reset detected …".
knapp unter dem alten Gesamtstand (höchstens die Schwelle)hält das für eine Messschwankung und ignoriert die Werte, bis sie den alten Stand übersteigennutzt „Zähler getauscht".
auf oder über dem alten Gesamtstandsieht keinen Reset und zählt den Sprung als Verbrauchnutzt „Zähler getauscht".

Die Begriffe Gesamtstand, Offset und Schwelle sind unter Was bedeutet „Device reset detected"? erklärt.

So gehst du vor (ab v0.7.0) ​

  1. Öffne unter „Instanzen" die Einstellungen der SourceAnalytix-Instanz und im Tab „Übersicht" deine Quelle.
  2. Wähle bei „Aktionen" den Eintrag „Zähler getauscht".
  3. Trage den Endstand des alten Zählers, den Startstand des neuen Zählers und das Datum des Tauschs ein.
  4. Prüfe die Vorschau und klicke auf „⚡ Tausch übernehmen". Der Gesamtstand läuft vom alten Endstand weiter, ohne Neustart.

Dialog „Zähler getauscht“ mit Endstand alt, Startstand neu und Datum

Hat der neue Zähler schon Werte geliefert und ist der Gesamtstand gesprungen, nimm stattdessen „Zählerstand angleichen" und repariere die Kosten, wie unter Falsche Werte korrigieren beschrieben.

Bis v0.6.x: Offset von Hand setzen ​

  1. Stoppe die Instanz vor dem Tausch und notiere den Gesamtstand aus sourceanalytix.0.<Gerät>.cumulativeReading.
  2. Tausche den Zähler und notiere seinen Startstand in der Zieleinheit.
  3. Offset = alter Gesamtstand − Startstand des neuen Zählers. Steht der neue Zähler höher, ist der Offset negativ, das ist richtig so.
  4. Setze im Objekt des Quell-Datenpunkts unter common.custom.sourceanalytix.0 den Wert valueAtDeviceReset auf diesen Offset (Objekte, Expertenmodus, Objekt bearbeiten) und starte die Instanz.

Beispiel: Alter Gesamtstand 5.000 kWh, neuer Zähler beginnt bei 6.000 kWh, Offset −1.000. Meldet der neue Zähler später 6.010 kWh, zeigt cumulativeReading 5.010 kWh.

Ab v0.6.2: Ist der Offset nach einem Tausch größer als der Gesamtstand, stoppt die Quelle nicht mehr, sondern SourceAnalytix richtet den Offset beim nächsten Wert selbst aus (#1257).

Gerät getauscht: Alias statt Gerät verwenden ​

Bekommt das neue Gerät einen neuen Datenpunkt (z. B. ein neuer Shelly mit neuer ID), ist das für SourceAnalytix eine neue Quelle mit eigenem Ordner und eigenen Startwerten. Das vermeidest du mit einem ioBroker-Alias:

  1. Lege für den Zähler einen Alias an (z. B. unter alias.0), der auf den Datenpunkt des Geräts zeigt, und gib ihm die Einheit des Zählers.
  2. Aktiviere SourceAnalytix auf dem Alias, nicht auf dem Gerät.
  3. Beim Gerätetausch stellst du nur das Ziel des Alias auf den neuen Datenpunkt um. SourceAnalytix behält seinen Ordner und seinen Gesamtstand.
  4. Für den Zählerstand des neuen Geräts gilt dann die Tabelle oben.

Das Feld „Name" in den SourceAnalytix-Einstellungen ist nur eine Anzeigebezeichnung und kein ioBroker-Alias. Einen Datenpunkt direkt zu wechseln und dabei die Daten mitzunehmen, ist für später geplant (#1271).

NOTE

Ältere Anleitungen im Forum nennen die Schlüssel cumulativeValue, previousDeviceReset oder valueAtDeviceInit. SourceAnalytix liest keinen davon. Ab v0.6.2 wird auch valueAtDeviceInit nicht mehr geschrieben (#1263).

Siehe auch: Falsche Werte korrigieren · Name, Alias und Output-ID · Datenpunkt abschalten oder neu anfangen

Mein Zähler startet nach Stromausfall oder täglich bei 0 – was stelle ich ein? ​

Kurz: Meist nichts. Lass die Reset-Erkennung eingeschaltet und stelle die Schwelle kleiner ein als der Betrag, um den dein Zähler beim Neustart fällt. Dann erkennt SourceAnalytix den Neustart als Reset und zählt auf den alten Gesamtstand weiter. Ab v0.7.0 findest du beides in der Detailansicht der Quelle unter „Einstellungen".

Das gilt für Shelly, Tasmota, Steckdosen mit Energiezähler und alle anderen Geräte, deren Zählerstand nach einem Stromausfall, einem Neustart oder um Mitternacht wieder bei 0 beginnt. Wie die Erkennung im Einzelnen arbeitet, steht unter Was bedeutet „Device reset detected"?.

So gehst du vor (ab v0.7.0) ​

  1. Öffne unter „Instanzen" die Einstellungen der SourceAnalytix-Instanz und im Tab „Übersicht" deine Quelle.
  2. Setze unter „Einstellungen" das Häkchen „Reset-Erkennung".
  3. Klappe „Für Experten" auf und prüfe „Schwelle Reset-Erkennung". Die Schwelle steht in der Zieleinheit, also z. B. in kWh, auch wenn dein Gerät Wh liefert. Rückgänge bis zu dieser Größe ignoriert SourceAnalytix als Messschwankung.
    • Zähler, der beim Stromausfall auf 0 fällt: Der Standard 1 passt, sobald der Zählerstand über 1 kWh liegt.
    • Tageszähler (fällt jede Nacht auf 0): Wähle einen Wert unter deinem kleinsten Tagesverbrauch, z. B. 0,1 kWh.
    • Zähler mit kleinen Einheiten wie m³: Wähle die Schwelle ebenfalls klein, z. B. 0,1 m³.
  4. Klicke auf „⚡ Übernehmen". Die Einstellung wirkt sofort, ohne Neustart.
  5. Beim nächsten Neustart des Geräts steht im Log zuerst „Waiting for another reading before confirming a possible device reset" und mit dem nächsten Wert „Device reset detected … preserving cumulative value …". Der Gesamtstand zählt danach vom alten Stand weiter.

Beim Anlegen einer Quelle fragt der Assistent „Springt der Wert manchmal auf 0, z. B. nach einem Stromausfall?". Nur bei „Ja" ist die Reset-Erkennung an. Bei Datenpunkten von Shelly und Tasmota ist „Ja" vorgewählt, bei allen anderen „Nein". Ist sie bei einer Quelle aus, die auf 0 springt, zeigt der Tab „Probleme" „Zähler springt auf 0, Reset-Erkennung ist aus" mit „⚡ Einschalten" (#1269).

Bis v0.6.x stehen beide Einstellungen im Objekt-Dialog des Datenpunkts (Reiter „Objekte", Schraubenschlüssel) unter „Berechnungseinstellungen": „Erkennung der Zurücksetzung des Gerätewerts Aktiviert" und „Schwelle". Ab v0.7.0 gibt es sie dort nicht mehr (#1286).

Bereich „Einstellungen“ mit „Reset-Erkennung“ und „Schwelle Reset-Erkennung“ unter „Für Experten“

WARNING

Fällt der Zähler um weniger als die Schwelle, hält SourceAnalytix das für eine Messschwankung und ignoriert alle neuen Werte, bis sie den alten Stand wieder übersteigen. Bei einem Tageszähler mit Schwelle 1 kWh und 0,6 kWh am Vortag fehlen so die ersten 0,6 kWh des neuen Tages, an einem gleich starken Tag also der ganze Tag. Stelle die Schwelle deshalb kleiner als den kleinsten Rückgang ein.

Tageszähler, die jede Nacht bei 0 beginnen ​

Tageszähler wie „Ertrag heute" oder „Verbrauch heute" funktionieren. Bei jedem Zurücksetzen fehlt aber der kleine Teil, den das Gerät zwischen seinem letzten Wert vor dem Zurücksetzen und seinem ersten Wert danach gezählt hat. Bietet dein Gerät auch einen Gesamtzähler, der nie zurückgesetzt wird (z. B. „Total"), nimm lieber diesen.

Wenn SourceAnalytix während des Stromausfalls nicht lief ​

Der Gesamtstand ist im State cumulativeReading gespeichert. Hat das Gerät neu gestartet, während SourceAnalytix gestoppt war, erkennt SourceAnalytix den Reset beim ersten Wert nach dem Start. Das klappt, solange der neue Gerätewert plus Offset noch um mehr als die Schwelle unter dem gespeicherten Gesamtstand liegt. Hat das Gerät den alten Stand bis dahin schon wieder überholt, ist der Reset nicht mehr zu erkennen. Dann korrigierst du den Gesamtstand wie unter Falsche Werte korrigieren.

Leistung statt Zählerstand ​

Eine Leistungsquelle in W kennt keinen Reset, denn SourceAnalytix summiert die Leistung selbst zu einem Zählerstand auf. Ist dir der Tageszähler zu ungenau, kannst du stattdessen die Leistung deines Geräts als Quelle nehmen. Was dabei zu beachten ist, steht unter Kann SourceAnalytix aus Leistung Verbrauch berechnen?.

Ab v0.6.2: Manche Geräte melden nach einem Neustart kurz zweimal 0 und danach wieder ihren alten Stand. Bis v0.6.1 bestätigten die zwei Nullen einen Reset, und der Gesamtstand verdoppelte sich, als der alte Stand zurückkam. Ab v0.6.2 nimmt SourceAnalytix den Reset in diesem Fall zurück (#1258).

Siehe auch: Was bedeutet „Device reset detected"? · Schwelle und Abschalten der Reset-Erkennung · Zähler, der täglich auf 0 zurückgesetzt wird

Wie übernehme ich meinen echten Zählerstand (cumulativeReading, RAW-Objekt)? ​

Kurz: Ab v0.7.0 musst du dafür kein Objekt mehr bearbeiten. Öffne in den Instanz-Einstellungen die Quelle, wähle „Zählerstand angleichen" und trage den Stand ein, den dein Zähler zeigt. SourceAnalytix setzt cumulativeReading und den Offset valueAtDeviceReset passend zueinander, sofort und ohne Neustart. Zeigt dein Gerät schon den echten Zählerstand, zum Beispiel über einen Lesekopf, ist nichts zu tun.

Die Schritte stehen unter Wie korrigiere ich falsche Werte?. Den Offset siehst du in der Detailansicht der Quelle unter „Für Experten" als valueAtDeviceReset.

Warum es nicht reicht, nur cumulativeReading zu ändern ​

Der Gesamtstand ist immer Gerätewert + Offset. Schreibst du nur einen neuen Wert in den State sourceanalytix.0.<Gerät>.cumulativeReading, rechnet SourceAnalytix beim nächsten Wert der Quelle wieder Gerätewert + alter Offset. Dein Wert hält deshalb nicht. Die Begriffe sind unter Die Begriffe erklärt.

Warum das Roh-Objekt gesperrt wirkt ​

  • Es liegt woanders, als man denkt. Die Einstellungen einer Quelle stehen im Objekt des Quell-Datenpunkts unter common.custom.sourceanalytix.0, nicht im Ordner sourceanalytix.0. Dort liegt nur der State cumulativeReading.
  • Es braucht den Expertenmodus. Das Objekt bearbeitest du im Reiter „Objekte" nur mit eingeschaltetem Expertenmodus, und das JSON muss gültig bleiben: kein überzähliges Komma, Zahlen ohne Anführungszeichen (12345.6, nicht "12345.6").
  • SourceAnalytix schreibt selbst hinein. Bei jedem Periodenwechsel schreibt es die Startwerte, bei jedem Reset den Offset. Eine Änderung, die du bei laufender Instanz machst, kann deshalb sofort wieder überschrieben werden.

Ab v0.7.0 schreibt auch die Einstellungsseite den Offset nie mit. Ihn ändern nur SourceAnalytix selbst und die Aktionen „Zählerstand angleichen" und „Zähler getauscht".

Bis v0.6.x geht es nur über das Roh-Objekt: Instanz stoppen, valueAtDeviceReset und cumulativeReading setzen, Startwerte prüfen, Instanz starten. Die Schritte stehen unter Bis v0.6.x: von Hand korrigieren.

Siehe auch: Was ist cumulativeReading? · Zähler oder Gerät getauscht

Knowledge has no value unless you use and share it