7.0 loggt neue Variablen nicht

Habe neue Variablen, deren Werte über MQTT rein kommen in das Variablen-Logging aufgenommen. Leider wird kein einziger Wert der neuen Variablen (DTU… kommt alle 10 Sekunden neu) gespeichert.
Testweise Variable gelöscht und nochmal neu angelegt, hilft nicht.
Symcon 7.0 vom 10.11.2023.

Seit der 7er kommt auch beim reaggregieren aller Variablen eine Fehlermeldung.
(Im Log (tail -f /var/log/symcon/*.log) finde ich allerdings keine Meldung dazu, bzw. in welchem Log sollte das stehen?

Die nicht existierenden Variablen stammen noch aus der 6.xer Zeit, sollten also nicht die Ursache der Fehlermeldung beim reaggregieren sein, in der 6.x ging das noch.
Warum die Logs beim löschen der Variablen nicht gelöscht wurden: ?

Das Archiv der Variablen darf nicht gelöscht werden, weil du sonst keine Chance hast die alten Daten auf eine neue Variable zu übertragen.
Michael

OK, dann ist das wohl nicht die Ursache für die Fehlermeldung.

Würde das so interpretieren, dass das Archiv keine Daten speichern kann (commit).
Platte voll?
Oder einmal Symcon neustarten und schauen ob beim starten Fehler im Logfiles auftauchen.
Michael

Gibt es im Logfile irgendwelche Fehler?

paresy

Platte hat noch 18 Gig frei, die alten Variablen loggen ja auch.
Neustart hat auch nicht geholfen, den hatte ich in der Hoffnung gemacht, den Aggregationsfehler los zu werden…

Auszüge der Errors:
Fatal error: Can’t get any device information from the BidCos-Services (Error: 7
Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /var/lib/symcon/modules/.store/schnittcher.info.ips.energierechner/Energierechner/module.php:446

27.11.2023 17:14:09 | 14413 | ERROR | TimerPool | Archive Handler (CommitData)
27.11.2023 17:14:13 | 21612 | ERROR | TeslaSplitter | sendRequest - 408:
27.11.2023 17:15:01 | 40468 | ERROR | TimerPool | Z3 Stromzähler ModBus Device (UpdateTimer): Zeitüberschreitung beim Warten auf Antwort
27.11.2023 17:15:09 | 14413 | ERROR | TimerPool | Archive Handler (CommitData)
27.11.2023 17:15:46 | 42997 | ERROR | TimerPool | Energierechner W1 Bezug Gesamt (ER_UpdateCalculation):
27.11.2023 17:15:47 | 22619 | ERROR | TimerPool | Energierechner W3 Trafo (ER_UpdateCalculation):
27.11.2023 17:15:47 | 42478 | ERROR | TimerPool | Energierechner Helios Bezug (ER_UpdateCalculation):
27.11.2023 17:15:47 | 45272 | ERROR | TimerPool | Energierechner (ER_UpdateCalculation):
27.11.2023 17:16:09 | 14413 | ERROR | TimerPool | Archive Handler (CommitData)
27.11.2023 16:55:07 | 41694 | ERROR | FlowHandler | Kann Daten nicht zur Instanz #41694 weiterleiten: Variablenwert muss seit IP-Symcon 6.3 als UTF-8 kodiert sein! (Das ist „job_thumbnail“ per MQTT vom Repetier 3D-Server, gerade mal von String auf Binär umgestellt)…

Warnings:
27.11.2023 17:17:16 | 58022 | WARNING | KNX DPT 1 | Konnte Daten nicht konvertieren, Daten: 8000D6 (Wahrscheinlich stimmt der empfangene DPT nicht mit dem konfigurierten überein. Bitte mit dem ETS Busmonitor überprüfen)
27.11.2023 17:17:20 | 13803 | WARNING | ScriptEngine | Result for Event 50941
(Wobei ich die ScriptEngine Warnings nicht verstehe, die aufgerufenen Scripte laufen fehlerfrei)


Der „Archive Handler“ Error kommt im Rhythmus der MQTT-Daten des Senderhytmus der DTU.
→ Nur mit diesen (neuen) Variablen hat der Logger ein Problem.
Alle Variablen sind derzeit „Strings“.
Habe jetzt mal ein paar auf Float geändert, da die Sonne aber gerade nicht mehr scheint, kann ich das erst morgen beobachten.

Update: Fehler gefunden.

Wenn String-Werte geloggt werden und die VERDICHTUNG aktiviert ist, steigt das Archiv aus.

1 „Gefällt mir“

Wäre eine „Erkennung“ der sinnvollen Definition (String/Integer/Float/…) beim anlegen der Variablen aus dem MQTT Konfigurator nicht Sinnvoll?

@Dr.Niels Können wir das besser blockieren?

paresy

+1
Wenn für String keine Verdichtung möglich/sinnvoll ist, dann wäre es gut wenn man bei String gar keine Verdichtung einstellen kann.
Cheers Seppm

Zusammenfassung:

  • Im MQTT-Konfigurator entweder die Möglichkeit einer Klassifizierung anbieten, oder besser gleich den Inhalt parsen = Zahlen oder Text erkennen und richtig einordnen.
  • Bei Stringselementen keine Verdichtung anbieten

Das kommt zur 7.1 :slight_smile:

paresy

Danke…hab das Problem seit einigen Tagen.

im Archiv gesucht, die 2 Stringvariablen gefunden und die Verdichtung ausgeschaltet.
nun läuft auch die komplette Reaggregation vom Archiv durch. (vorher Fehler CommitData)

morgen werde ich sehen, ob wieder alles sauber funktioniert, denke aber schon…

Da bei mir die Aktualisierung auf die 7.1 ansteht, wollte ich vorab prüfen, ob ich auch Probleme mit dem Verdichten von String-Variablen habe. Hiermit geht das Filtern recht schnell:

$vars = AC_GetAggregationVariables(ARCHIVE-ID, true);
foreach ($vars as $value) {
    if ((IPS_GetVariable($value['VariableID'])['VariableType'] == 3) and (count($value['Compaction']) != 0)) {
        echo "Archive-String-Var with Compaction: ".$value['VariableID'].PHP_EOL;
        // print_r($value);
    }
}

Bei mir war hier zum Glück immer „Löschen“ statt verdichten eingestellt. Bevor ich jetzt update, frage ich mich, ob es das Löschen in der 7.1 noch gibt (nach der obigen Problembeschreibung sollte löschen ja technisch unproblematisch sein).

Weiß jemand, ob es den Punkt „Löschen“ in der 7.1 noch so gibt ? Sonst muss ich hier vorher umbauen…

Wahrscheinlich hast es schon heraus gefunden:
Ja, Löschen nach x Monaten gibt es bei String noch. Die anderen Optionen sind weg.

Cheers Seppm

Danke… habt heute das Update gemacht.