Da bei mir ein Fhem Home-Server läuft, hatte ich die Idee, dort doch gleich die Flugdaten die von den Flugzeugtranspondern ausgesendet werden schön graphisch in Echtzeit anzuzeigen.
Also wie kann eine Grafik in Fhem erstellt werden, die die aktuelle Anzahl der gerade empfangenen Flugzeuge anzeigt.
Hier das Ergebniss, wo man deutlich sehen kann, das heute bis ca. 6 Uhr nur ca. 10 Flugzeuge flogen. Dann steigt der Flugverkehr rapide an:
Wie kann nun so eine Grafik, die sich automatisch aktualisiert erstellt werden.
Zuerst einmal die Architektur als BPMN 2.0 Diagramm:
Es werden zwei Raspberry Pi benötigt. Auf dem einen läuft der DUMP1090 Server mit der TWFlug Anwendung unter Java 1.8. Die TWFlug Anwendung läuft ohne Gui, und schreibt alle 5 Minuten die Anzahl der empfangenen Flugzeuge in eine Datei. Diese Datei wird dann jede halbe Stunde per sFTP an den anderen Raspberry Pi gesendet und von Fhem eingelesen und als Grafik ausgegeben.
TWFlug kann auch mit Gui auf einen Rechner gestartet werden und gibt dann als Tacho die Anzahl der Flugzeuge aus.
Das nötige GPlot Script:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/* myFlug.gplot Version 1.0 vom 17.12.2014 Dieses GNU-Plot Script zeigt die Flugdaten von den empfangenen Transpondern an. Copyright (C) 2014 Thomas Wenzlaff http://www.wenzlaff.de This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. */ # Die Logdatei sieht wie folgt aus: # 2014-12-05_07:05:58 flugdaten anzahl:29 # 2014-12-05_07:10:58 flugdaten anzahl:23 set terminal png transparent size <SIZE> crop set output '<OUT>.png' set xdata time set timefmt "%Y-%m-%d_%H:%M:%S" set xlabel " " set title 'Empfangene Flugzeuge' set ytics set y2tics set grid ytics y2tics set ylabel "Anzahl Flugzeuge" set y2label "Anzahl Flugzeuge" #FileLog 4:flugdaten anzahl:0: plot "<IN>" using 1:2 axes x1y2 title 'Anzahl Flugzeuge' ls l0 lw 2 with lines |
TWFlug schreibt die Daten in eine Logdatei mit folgenden Format, z.B.:
1 2 3 4 5 6 7 |
2014-12-17_17:31:08 flugdaten anzahl: 39 2014-12-17_17:36:08 flugdaten anzahl: 49 2014-12-17_17:41:08 flugdaten anzahl: 36 2014-12-17_17:46:08 flugdaten anzahl: 34 2014-12-17_17:51:08 flugdaten anzahl: 36 2014-12-17_17:56:08 flugdaten anzahl: 42 2014-12-17_18:01:08 flugdaten anzahl: 41 |
TWFlug kennt bisher die folgenden Parameter:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
usage: TWFlug -c,--copy-time <arg> copy time in Minuten (default: 60 Minuten) -d,--dest-file <ziel-datei> destination file name (default: /home/pi/fhem/log/flugdaten-YYYY-MM.log) -h,--help print help and exit -height,--window-height <arg> set window hight (default: 600) -i,--ip ip adress from DUMP1090 (default: 0.0.0.0) -ip,--ziel-ip <arg> ip adress for copy destination (default: pi-home) -k,--copy copy output file to destination (default: false) -max,--max-count <arg> set max count value (default: 50) -min,--min-count <arg> set min count value (default: 0) -n,--no-gui display no GUI. Only logfile output (default: false) -o,--outputfile <file> use given file for DUMP output (default: flugdaten-YYYY-MM.log) -p,--port <arg> port from DUMP1090 (default: 30003) -psw,--ziel-passwort <arg> passwort from destination User -r,--refresh-time <arg> refresh time in ms (default: 300000 ms = 5 Minuten) -user,--ziel-user <arg> destination User (default: pi -v,--version print the version information and exit -width,--window-width <arg> set window with (default: 600) |
Welche fehlen noch?
Hinweise zu TWFlug und DUMP1090 können auf diesem Blog gefunden werden.