Falsche Archivdaten bringen die Variablenwerte durcheinander

Hallo,
mir ist eben aufgefallen das immer wieder falsche Werte ins Archiv geschrieben werden und somit die richtigen Werte verfälschen. Es geht dabei um einen Shelly Plus Plug S.

image

Ich lasse mir die Werte für den heutigen und gestrigen Tag berechnen aus dem Archiv und da kommt es dann für den heutigen Tag zu absolut komischen Werten.

Das sind die Archivdaten für die Variable „Verbrauch Heute“.

image

Was kann ich tun um den Fehler zu finden wo die 0 Werte und flaschen Werte herkommen? Habe schon gefühlte 100x die Skripte etc. kontolliert. Andere Geräte funktionieren wunderbar. Muss aber dabei sagen das ich einen zusätzlichen Plug S im Gartenhaus montiert habe und die Kategorie etc. vom „Gartenhaus: Technikschrank“ kopiert habe und angepasst hatte wie Namen etc. Das neue KAtegorie habe ich aber wieder gelöscht um den Fehler einzugrenzen.

VG
Stefan

Veränderst du die Variable irgendwie vom Shelly? Es ist auffällig, dass es zu 00 Sekunden 4 Änderungen in einer Sekunden gab.

paresy

Das ist das Skript „Verbrauch Gestern“

<?php

$werte = AC_GetAggregatedValues(13449, 13562, 1 /* täglich */, strtotime("yesterday 23:59"), time(), -1);
foreach($werte as $wert) {
	echo date("d.m.Y H:i:s", $wert['TimeStamp']) . " -> " . $wert['Avg'] . PHP_EOL;
}
SetValue(57551, $wert['Avg']); // Schreibt den Wert in die Variable

Skript für „Verbrauch Heute“:

<?php

$werteday = AC_GetAggregatedValues(13449, 13562, 1 /* täglich */, strtotime("today 00:00"), strtotime("now"), 0);
//print_r($werteday);  // Ganzes Array ausgeben
//echo $werteday[0]['Avg']; // Den Wert möchte ich ausgeben

// Wenn das Skript durch den ScriptTimer aufgerufen wurde, den ScriptTimer deaktivieren
if (@$_IPS['EVENT'] === @IPS_GetObjectIDByName('ScriptTimer', $_IPS['SELF'])) {
    IPS_SetScriptTimer($_IPS['SELF'], 0);
}

// Wenn das Skript nicht durch den ScriptTimer aufgerufen wurde, ScriptTimer aktivieren
else {
    IPS_SetScriptTimer($_IPS['SELF'], 70);
}


// Veranlasst, dass das Skript alle 10 Sekunden ausgeführt wird        
//IPS_SetScriptTimer(24782, 10); // ID des Skriptes


// Hier die Daten aus dem Archiv abrufen und in Variable schreiben
SetValue(49524, $werteday[0]['Avg']); // Schreibt den Wert in die Variable

ID13449 ist das Archiv
ID13562 ist die Variable „Gesamt Energie“ der Shelly Instanz.

Ne, ich meinte die Daten aus dem 1. Screenshot. Dort sind ja schon die falschen Zählerdaten drin.

paresy

Ich weiß ja nicht wo die herkommen. Beim Shelly habe ich die Ganz normale Instanz vom Modul:

Habe jetzt mal die anderen Geräte gecheckt und da ist alles normal. Gleiche Variablen, gleiche Skripte etc. Es sieht so aus als wäre was passiert heute mittag beim kopieren der Kategorie für das neue Gerät. Was mir noch gerade einfällt, ich habe heute Mittag die Firmware geändert. Ich gehe mal zurück auf die vorherige.

Da die fehlerhaften Daten ja recht oft kommen, kannst du ja auch im Debug vom MQTT Server reinschauen, was genau dort ankommt. Meistens kann man dort ja gut mitlesen. Kurios aber denkbar wären auch zwei Geräte, die auf das selbe Topic senden, falls du das evtl. angepasst hast.

paresy

Ich schaue mal da nach. Topics waren jedenfalls unterschiedlich, habe auch das andere Gerät wieder gelöscht wofür ich die Kategorie kopiert hatte.

Selbst wenn ich alle Events deaktiviere, bekomme ich immer wieder diese 0,01 Werte reingeschrieben. Denke mal das es dann mit den Events und Skripte nichts zu tun hat.

Im Debug vom MQTT Server kommen folgende Daten an für das Shelly Gerät:

27.06.2025, 16:27:00 | RECEIVED [192.168.20.48:51398] | 2�<STX><NUL>*ShellyPlusPlugS-Gartenhaus/status/switch:0<NUL>.{"id":0, "source":"init", "output":true, "apower":15.2, "voltage":235.6, "current":0.126, "aenergy":{"total":278987.085,"by_minute":[250.454,251.394,249.984],"minute_ts":1751034420},"temperature":{"tC":45.1, "tF":113.1}}

27.06.2025, 16:27:00 | TRANSMIT [192.168.20.48:51398] | @<STX><NUL>.

Hier das Debug von der Shelly Instanz:
shelly.txt (34,6 KB)

Ich habe mal das Gerät neu angelegt und die alte Instanz deaktiviert. Gleiches Problem:

image

Jetzt werden 0,02 kWh eingepflegt.

Das debug von oben war zu kurz.
Lass es so lange mitlaufen bis ein 0,02 Wert empfangen wird, dann kann man eventuell mehr sehen.
Michael

Ich glaube er hatte Probleme mit dem Topic „ShellyPlusPlugS-Gartenhaus“. Habe jetzt umbenannt in der alten Instanz in „ShellyPlusPlugS-Gartenhaus-Technik“ und wie es aussieht funktioniert es wieder. Ist doch seltsam oder?

image

Könntes sein, dass du 2 mal das gleiche Topic verwendet hast ?
Passiert schnell mal bei kopieren, hatte ich auch schon mal geschafft. :rofl:

Ne, da bin ich mir eigentlich 100%tig sicher. Und wenn ich wirklich das gleiche Topic verwendet hätte, dann hätte es ja zumindest wieder richtig laufen müssen als ich das neue Gerät komplett gelöscht hatte, denke ich mir mal. Hatte auch alle falschen Werte aus dem Archiv gelöscht und neu reaggregiert oder wie das heißt :sweat_smile:

Fehler liegt übrigens am Modul. Da muss @KaiS noch mal den Filter anpassen.
Ein issue dazu ist in GitHub eröffnet.
Sobald man ein Topic konfiguriert, welches in Teilen auch in anderen Topics vorhanden ist, werden die Daten durchgemischt.
Michael

Danke Michael für die Info.

Danke für die Info, schaue ich mir an.

Grüße,
Kai

1 „Gefällt mir“