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‘;

SQL Abfrage max_allowed_packet

SQL Abfrage max_allowed_packet

Der Weg, den Wert zu verändern, ist in unserem virtualisierten Fall etwas komplexer als z.B. auf einem lokalen RaspberryPI:

  1. Wir benötigen den Admin-User der Synology Diskstation, dieser muss in den Benutzereinstellungen aktiviert sein
    Benutzer admin aktivieren

    Benutzer admin aktivieren

  2. Wir benötigen außerdem SSH-Zugriff auf die Diskstation
    SSH Synology Disktation aktivieren

    SSH Synology Disktation aktivieren

  3. Mit putty oder einem ähnlichen Tool verbinden wir uns mit der Diskstation und wechseln mit sudo -i in den root-Zugriff
  4. Wir wechseln nun mit cd /var/packages/MariaDB10/etc in das Programm-Verzeichnis der Anwendung MariaDB10
  5. Mit vi my.cnf wird eine bestehende Konfiguration geöffnet oder neu angelegt
    MariaDB Konfiguration anlegen

    MariaDB Konfiguration anlegen

  6. 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

    MariaDB Konfiguration max_allowed_packet

    MariaDB Konfiguration max_allowed_packet

  7. 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

    MariaDB neu starten

    MariaDB neu starten

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.