Vor über einem Jahr bin ich im Rahmen meiner smart-home und IoT Projekte über den Volkszähler gestolpert.
Auf der Homepage von Volkszähler heißt es: „volkszaehler.org ist ein freies Smart Meter im Selbstbau. Der Nutzer behält dabei die vollständige Kontrolle über die anfallenden Strom, Wasser & Gaskosten.“ Prima, genau mein Ding – Meine Daten bleiben im Haus und landen nicht in irgendeiner Hersteller-Cloud.
Also habe ich mir einen USB-IR-Schreib-Lesekopf mit zwei IR-LEDs gebastelt und den Volkszähler in Betrieb genommen. Und ich muss sagen: Hut ab – Tolles Projekt! Lief sofort ohne das übliche Open Source gebastle.
ABER: Volkszähler verwendet zur Speicherung der Daten eine MySQL Datenbank. Eigentlich keine schlechte Idee, aber auf einer SD-Karte sorgen die andauernden Schreibvorgänge, wofür SD-Karten nicht gemacht sind. Die Folge davon ist, dass SD-Karten nach relativ kurzer Zeit kaputt gehen und die Daten damit futsch sind. Angefangen hat es bei mir mit Speicherzugriffsfehlern.
Sobald Fehler wie diese auftreten sollte man schnell reagieren
- MySQL-Daten sichern
Die default MySQL-Benutzername/Passwort Kombinationen sind:
vz/demo für Lese- und Schreibzugriffe,
vz-admin/secure für Löschzugriffe
root/raspberry für den lokalen Administratorzugangmysqldump -uroot -praspberry volkszaehler | bzip2 >volkszaehler_mysql_backup.bz2
Je nach Größe der MySQL Tabelle dauert der Export und der bzip dauern recht lange (>5-10 Min), währenddessen keine Ausgabe erfolgt. Positiv sehen und warten –> keine Ausgabe = kein Fehler –> gutes Zeichen
- Neue SD-Karte besorgen (diesmal vielleicht keinen Billigramsch)
- Volkszaehler neu installieren
- Datenbank wiederherstellen /einspielen
bunzip2 volkszaehler_mysql_backup.bz2 mysql -uroot -praspberry volkszaehler < volkszaehler_mysql_backup
Ich wiederhole mich kurz für die Schnelleser: Je nach Größe der MySQL Tabelle dauert der Import und der bzip dauern recht lange (>5-10 Min), währenddessen keine Ausgabe erfolgt. Positiv sehen und warten --> keine Ausgabe = kein Fehler --> gutes Zeichen
- Falls ein USB-Lesekopf verwendet wird muss noch das Setup gemacht werden.
- Und falls noch etwas wie der Hostname o.ä. geändert werden ... einfach so zur Sicherheit
reboot
- Fertig
Wenn nach der Aktion alles wieder so aussieht ist wieder Regelbetrieb bis zum nächsten SD-Karten-Crash angesagt.
Eine langfristige Lösung wäre die MySQL-Daten auf einer SSD oder ähnlichem abzulegen anstatt auf der SD-Karte.
Wenn ich mal etes mehr Zeit habe udn SD-Karten teurer werden schreibe ich vielleicht eine Anleitung dafür 😉