Nun kommt wie versprochen der Teil 3 mit den Python Scripts für das einlesen der Daten in die Datenbank. Dies wird benötigt da MQTT die Daten nur einmal sendet und diese nirgends gespeichert werden. Hierzu benötigen wir ein Python Script, dass die MQTT-Tracking Daten aufnimmt und diese dauerhaft in eine MySQL Datenbank speichert. Diese Daten können wir dann zur Auswertung und grafischen Darstellung weiter nutzen wie zB. für den GPX-Viewer.
Der GPX-Viewer kann die Tracking Daten visualisieren wie man sie von Google Maps kennt. Das Kartenmaterial kann dann von Google Maps oder Openstreet-Map genutzt werden. Zu diesen sehr interessanten Teil kommen wir auch noch.
# apt-get install mysql-server mysql-client php5-mysql # apt-get install nginx # apt-get install python-pip python-mysqldb # pip install paho-mqtt # pip install peewee # cd /opt # git clone https://github.com/owntracks/backend.git owntracks # cd owntracks/m2s/ # cp settings.py.sample settings.py
In der settings.py die Parameter eintragen für die MySQL-Datenbank sonst kann keine Verbindung hergestellt werden.
# mysql -u root -p Enter password: mysql> create database owntracks; Query OK, 1 row affected (0.00 sec) mysql> create user 'owntracks'@'localhost' identified by '$YOUR_PASSWORD'; Query OK, 0 rows affected (0.03 sec) mysql> grant all privileges on owntracks.* to 'owntracks'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.87 sec)
Nun kommt die Installation der Datenbank Tabellen , auch Schema genannt:
# cd /opt/owntracks/m2s/ # python dbschema.py
Kommt es hier zu Fehlern mit dem Verbindungsaufbau der Datenbank, einfach die „settings.py“ nochmal prüfen. In der Basisinstallation von MySQL-Server hat „root“ kein Passwort. Jetzt können wir das Python Script starten, welches die MQTT-Daten direkt in die Datenbank MySQL speichert.
# cd /opt/owntracks/m2s/ # ./m2s.py &
Nun ist es umständlich, dieses Kommando jedes Mal bei starten des Raspberry Pi manuell zu starten. Wir automatisieren das nun. Zuerst schreiben wir hier uns ein kleines Shellscript, weil wir sonst das Programm nicht fehlerfrei aufrufen können.
# sudo su - # mkdir /root/bin # vi /root/bin/exporter.sh #!/bin/bash cd /opt/caserio/owntrack/m2s; nohup /opt/caserio/owntrack/m2s/m2s.py & # chmod +x /root/bin/exporter.sh
Dann tragen wir dieses Script in die Datei „/etc/rc.local“ ein
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. sudo /root/bin/exporter.sh exit 0
Ab jetzt ist der Raspberry PI bereit alle MQTT-Tracking Daten, auch nach einem Restart, automatisiert aufzunehmen und dauerhaft zu speichern.
Weiter geht es im Teil 4 mit dem GPX-Viewer, wo wir die gespeicherten Daten über den lokal installieren Webserver visualisieren.
Bei Fragen einfach hier die Kommentar Funktion nutzen.
Hier geht es zum letzten und 4-ten Teil der Anleitung
Viel Spaß und Erfolg wünscht , Joachim
Vielen Dank für Teil 3 & 4!
Leider hat bei mir das Python Script, welches die Daten in die DB schreiben soll einen Fehler beim Ausführen. Eine Lösung habe ich bisher leider nicht finden können. Es scheint mir aber, dass das Script die „settings.py“ nicht findet. Ist aber genau dort wo sie sein soll. Extra einmal alles nach Anleitung gemacht, bevor ich es selbst anpasse. Hier die Error Meldung:
root@thethingbox /home/pi # /opt/owntracks/owntracks/m2s/m2s.py
Traceback (most recent call last):
File „/opt/owntracks/owntracks/m2s/m2s.py“, line 33, in
cf = Config()
File „/opt/owntracks/owntracks/m2s/config.py“, line 9, in __init__
execfile(filename, self.config)
IOError: [Errno 2] No such file or directory: ’settings.py‘
Zufällig spontan eine Idee?
Hallo Pascal
Du musst zum Aufruf „IMMER“ erst in das Verzeichnis wechseln.
Wie im Beispielscript auch gezeigt :
cd /opt/caserio/owntrack/m2s; nohup /opt/caserio/owntrack/m2s/m2s.py&
Dann sollte es funktionieren, wenn nicht melde Dich hier einfach nochmal.
Beste Grüße , Joachim
Hallo,
sehr interessante Artikel, top Arbeit!
Leider kann das github Repository nicht mehr gefunden werden.
Gibt es einen neuen Pfad?
Besten Dank!
Hallo André
da gibt es in der Tat ein neues Repository.
Schau mal unter https://github.com/owntracks/frontend
Es bedarf aber einen neuen Aufbau der ganzen Scripts und Datenbanken.
Eigentlich ist das Projekt inkl. Artikel obsolet.
Viel Erfolg