Das Smarthome, insbesondere wenn viele Komponenten unterschiedlichster Standards genutzt werden, bietet ja immer wieder die ein oder andere Überraschung, vor allem im Fehlerfall, wenn einzelne Dinge nicht funktionieren.
Einer der kniffligsten Fehler bei ioBroker war bei uns folgender Eintrag im ioBroker Log:
error packets out of order. got 1 expected 0
Schnell war klar, dass es mit dem SQL-Adapter für die history-Speicherung der Datenpunkte, z.B. Temperaturen, Stromverbrauch, zu tun hat. In unserem Fall läuft ioBroker in einem Docker-Container virtuell auf einer Synology Diskstation, der mysql/MariaDB-Server ist als Synology-Komponente auf der Synology Diskstation installiert. Bis zu diesem Zeitpunkt ohne Probleme und Fehlermeldung mit über 2mio Datensätzen in der Datenbank.
Neustart des Datenbankservers half wie häufiger im Internet beschrieben leider in unserem Fall nicht.
Wir sind dann auf die mysql-Einstellung „max_allowed_packet“ gestoßen, die wir in einer Konfiguration des Datenbankservers auf einen größeren Wert einstellen möchten. In unserem Fall also eine Konfiguration für das Synology-Paket MariaDB10 auf der Synology Diskstation.
Die aktive Einstellung des Werts können wir per SQL-Statement abfragen, z.B. im phpmyAdmin mit SHOW VARIABLES LIKE ‚max_allowed_packet‘;
Der Weg, den Wert zu verändern, ist in unserem virtualisierten Fall etwas komplexer als z.B. auf einem lokalen RaspberryPI:
- Wir benötigen den Admin-User der Synology Diskstation, dieser muss in den Benutzereinstellungen aktiviert sein
- Wir benötigen außerdem SSH-Zugriff auf die Diskstation
- Mit putty oder einem ähnlichen Tool verbinden wir uns mit der Diskstation und wechseln mit sudo -i in den root-Zugriff
- Wir wechseln nun mit cd /var/packages/MariaDB10/etc in das Programm-Verzeichnis der Anwendung MariaDB10
- Mit vi my.cnf wird eine bestehende Konfiguration geöffnet oder neu angelegt
- Der Editor VI ist leider nicht ganz intuitiv zu bedienen, zunächst muss mit der Taste i der Eingabemodus aktiviert werden, falls noch nicht in der Config enthalten, fügen wir folgende Zeilen ein
[mysqld]
max_allowed_packet=1073741824
Wir verlassen mit ESC den Eingabemodus, speichern mit :w und verlassen mit :q den Editor - Im Anschluss ist es wichtig, den Datenbankserver neu zu starten, entweder das Paket in der Synology Diskstation oder über SSH mit dem Befehl /usr/syno/bin/synopkg restart MariaDB
Die neu gesetzte Einstellung lässt sich wie oben über einen phpmyAdmin überprüfen, die Fehlermeldungen im ioBroker log sollten danach der Vergangenheit angehören.
Funktioniert bei mir leider nicht. Bekomme die Zahl nicht geändert, obwohl ich alles genau nach Anleitung gemacht habe.