Archiv 25. Februar 2018

Sonntag, 25. Februar 2018

Wie die NRA in den USA bis heute ein effizientes, digitales Waffenregister verhindert

Erschütterndes Video: Die Verkaufsformulare von Waffenhändlern werden zwar digitalisiert, dürfen aber keine Texterkennung (OCR) durchlaufen — weshalb sie als JPEG abgelegt werden. Bei Anfragen von Strafverfolgungsbehörden (die teilweise ebenfalls unglaublich schludrig daherkommen können) müssen Mitarbeiter des National Tracing Centers dann am Bildschirm Formular für Formular durchgehen, bis sie das Richtige gefunden haben.

Guns Found Here from MEL Films on Vimeo.

In diesem Zusammenhang auch ein spannender Artikel einer US-Amerikanerin, die seit längerem in der Schweiz lebt:

„[…] the Swiss view gun possession as a patriotic duty and important component of national security. […] Two-thirds of American gun owners cite personal protection as their primary reason for obtaining a firearm even though they are actually less likely to perceive gun crime as a serious problem. Tellingly, most gun owners in the US cite gun ownership as intrinsic to their sense of personal freedom, whereas the Swiss perceive gun possession as intrinsic to their sense of national freedom. To put it another way, the Swiss have guns because they trust their government, and Americans have guns because they don’t.“

Quelle:

Tags: , , , , , , , ,
Labels: Gesellschaft

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 25. Februar 2018

Mit cacti die von fr24 entdeckten Flugzeuge und Nachrichten aufzeichnen

Der einfachste Weg, um dies zu bewerkstelligen ist die Verwendung der folgenden URL, die Statistiken im JSON-Format ausgibt:

http://%IP%/dump1090/data/aircraft.json

Mehr dazu: Mit einem Raspberry Pi, DVB-T-Stick und Flightradar 24 einen Hobby-ADS-B Empfänger aufbauen

Ich habe ein kleines Python-Script geschrieben, welches diese Informationen ausliest und so aufbereitet, dass es von cacti importiert werden kann:

fr24-cacti-stats

Nachdem man die Data Input, Data Source und Graph Templates erstellt hat, grüssen einen folgende Graphen:

Alternative

Da ich die dump1090-URL anfänglich nicht kannte, behalf ich mir als Alternative der Log-Datei unter /var/log/fr24feed/fr24feed.log.

Ich erstellte im Web-Root von lighthttpd einen Symlink auf die Log-Datei …

$ ln -s /var/log/fr24feed/fr24feed.log /var/www/fr24feed.log

… lud diese mittels wget auf den cacti-Server herunter, filterte dort mittels eines Scripts die jüngste Log-Meldung vom folgenden Format heraus und isolierte die Zahl vor „AC“:

2018-02-23 21:12:06 | [feed][i]removed 1 of 8 AC

Da die Log-Datei seit heute morgen nicht mehr geschrieben wird (Grund: unklar), bin ich nun auf die Echtzeitlösung mit dump1090 ausgewichen. Erste Erkenntnis: dump1090 meldet mehr Flugzeuge als die Log-Datei; Grund unklar.

Tags: , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 25. Februar 2018

Einen Raspberry Pi mit autonomer Stromversorgung betreiben

(Kontext: Mit einem Raspberry Pi, DVB-T-Stick und Flightradar 24 einen Hobby-ADS-B Empfänger aufbauen)

Wie im oben verlinkten Blog-Post beschrieben muss sich die Antenne im Freien befinden, um den bestmöglichen Empfang der ADS-B-Signale zu realisieren.

Bevor ich entdeckte, dass das DVB-T-Antennenkabel problemlos durch einen Fensterrahmen geführt werden kann und das Schliessen des Fensters überlebt, machte ich mir Gedanken, wie man Antenne UND den Raspberry Pi zusammen auf dem Balkon der Mietwohnung installieren könnte.

Das grösste Problem war hierbei die Stromversorgung, da sich auf unserem Balkon kein Stromanschluss befindet.

Stromverbrauch

Gemäss der Web-Seite Solar Power for Raspberry Pi verbraucht mein Raspberry Pi 1, Model B, mindestens 480mA, was einem Tagesverbrauch von 57.6Wh entspricht.

Ein anderer Artikel Power Consumption berechnet mindestens 220mA, wenn man den HDMI-Port deaktiviert und die LEDs ausschaltet (wie man das macht, ist in diesem Artikel beschrieben: Raspberry Pi Zero – Conserve power and reduce draw to 80mA).

Der DVB-T-USB-Dongle verbraucht gemäss (geleaktem?) Data Sheet des Chip-Herstellers maximal 178mA.

Der bei einem Outdoor-Betrieb zwingend nötige WLAN-USB-Dongle sollte dann auch noch dazugerechnet werden. In meinem Fall hatte ich geplant, einen ZyXEL NWD2205-Stick zu verwenden. Gemäss Datenblatt saugt das Ding 315mA beim Senden und 250mA beim Empfangen.

Zusammengerechnet hätte dies also in einem Verbrauch von 480 + 178 + 315 = 973 mA oder 0.973A entsprochen — multipliziert mit 5V also genau 4.865 Watt.

Da ich den Raspberry Pi mittlerweile mittels Power-over-Ethernet PoE mit Strom versorge (hierzu verwende ich einen Uctronics U5159 Umwandler, der aus dem Ethernet-Kabel den Strom extrahiert, transformiert und dann mit 5V und bis zu 2.4A auf einen Micro-USB-Port ausgibt — bspw. erhältlich auf Amazon.com für $10), kann ich über den Unifi Controller sehen, wie viel Leistung das Ding zieht: 5.31 Watt. Es kann aber gut sein, dass diese Messung durch den UniFi-Switch sowie auch den Uctronics stark verfälscht wird.

USB-Powerbanks?

Von dieser Lösung nahm ich rasch Abstand, da gewisse Dinger mit 10000, 15000 oder gar 20000 mAh zwar ordentlichen Stromspeicher besitzen, aber trotzdem nicht geeignet sind:

  • Wie lädt man die Dinger auf — musste man mindestens zwei Powerbanks anschaffen sie täglich rotieren? Das kam für mich nicht in Frage.
  • Sind sie für den Aussenbetrieb geeignet, d.h. verkraften sie Temperaturen wie jetzt gerade bis zu minus 5 Grad in der Nacht?

Solar!

Nach einigen Überlegungen kam ich dann auf die naheliegende Lösung: Solarstrom!

Zwar gibt es bei Amazon haufenweise Powerbanks mit integriertem Solarpanel (sogar eine mit 20000mAh, derzeit aber vergriffen) (Digitec hat auch einige, bspw. Sandberg Outdoor Solar (16000mAh, Solarbetrieb) sowie DÖRR Solar Powerbank SC-10000 black (10000mAh, Solarbetrieb)), doch nach einiger Lektüre im Netz kam ich zum Schluss, dass die Dinger nicht für einen 24/7-Betrieb eines RPi taugen (sie laden die Batterie nicht schnell genug auf, damit der RPi die Nacht überlebt).

Ein Solarpanel muss her. Da dieses aber nur am Tag bei Sonnenschein Strom liefert, muss man auch hier mit Batterien arbeiten. Nicht aber mit Powerbanks (Li-Ion) sondern besser mit Blei-Batterien, wie man sie von USVs kennt.

Nicht zu vergessen ist auch, dass Solarpanels 12V ausgeben, was für USB-Geräte nicht brauchbar ist (der USB-Standard sieht eine Spannung von 5V vor). Somit muss man noch einen Transformator dazwischenschalten, der 12V auf 5V heruntertransformiert.

Auf der Suche nach Lösungen fand ich zwei Arten von Produkten: Einerseits Sets, die primär für RPis gedacht sind, sowie Allzweck-Anlagen, mit welchen man Gartenhäuschen, Wohnwagen etc. mit Solarstromversorgung ausrüsten kann.

Die von mir entdeckten RPi-spezifischen Lösungen sind nachfolgend aufgelistet:

Für andere IoT-Geräte konzipierte respektive generische Lösungen:

Hätte ich nicht realisiert, dass das Antennenkabel durch den Fensterrahmen geführt werden kann, hätte ich mir wohl schlussendlich folgendes Produkt geleistet:

Solar-Set Poly Esotec 120005 20 Wp inkl. Akku, inkl. Anschlusskabel, inkl. Laderegler 179.95 CHF bei Conrad.ch (dasselbe Produkt für 168 CHF ohne Versand bei Westfalia.ch)

Die Batterie besitzt einen Speicher von 8 Ah (d.h. 8000 mAh), das Solarpanel generiert 20 Watt Spitzenleistung. Die kleinere Version der Anlage mit „nur“ 4000 mAh kostet 99.95 CHF.

Anschliessend hätte ich wohl auch noch den Laderegler mit einem Produkt ersetzt, das zwei USB-Anschlüsse direkt eingebaut hat (damit verzichtet man auf zusätzlichen Kabelsalat):

ALLPOWERS 20A Solarladeregler 12V / 24V Intelligenz USB Teil Solar Panel Regler mit USB Port Display

Was ich bis jetzt nicht klären konnte: Liefert der USB-Anschluss wirklich nur 500mA (gemäss Handbuch), oder geben die Laderegler trotzdem auch gegen die 1A Strom aus (wie die kleinere Lösung, gemäss dessen Handbuch)?

Links

Bei der Recherche zur Lösung notierte ich mir unzählige Links notiert. Hier die wichtigsten:

Tags: , , , , ,
Labels: IT

2 Kommentare | neuen Kommentar verfassen

Sonntag, 25. Februar 2018

Mit einem Raspberry Pi, DVB-T-Stick und Flightradar 24 einen Hobby-ADS-B Empfänger aufbauen

Vor einigen Tagen wurde mein DVB-T-Empfänger und die ADS-B Antenne von jetvision.de geliefert.

Damit konnte ich einen alten, nicht mehr genutzten Raspberry Pi 1, Model B, zu einem Hobby-Empfänger für Flugzeugsignale (sog. ADS-B) umbauen.

Flightradar24 bietet dafür ein Raspberry Pi-Image an, mit welchem man den Radar in ein paar Minuten online hat — im Gegenzug erhält man als Dank kostenlos ein Business-Abonnement der Web-Site im Wert von mehreren hundert Dollar im Jahr.

Der Name meiner Antenne lautet T-LSZB123 (die Statistiken kann man sich nur ansehen, wenn man auf Flightradar24 registriert ist).

Aufstellen der Antenne

Flightradar24 hat eine Anleitung ins Internet gestellt, die den Hobby-Empfängern bildlich aufzeigt, wie man die Antenne installiert, um einen maximalen Empfang hinzukriegen.

Am Besten wäre die Installation auf dem Hausdach — als Mieter bleibt einem das selbstverständlich verwehrt. Auch muss man sich dann bezüglich Blitzeinschlag Gedanken machen und das Antennensignal mit einem Kabel irgendwo in die Wohnung verlegen.

In meinem Fall muss für die Platzierung der Antenne (leider) die äussere Fensterbank hinhalten — aber allemal besser, als den Empfänger mitsamt Antenne in der Wohnung zu platzieren. Die Alternative wäre gewesen, das gesamte Setup auf dem Balkon zu betreiben, was aber eine solar- und batteriebasierte Stromversorgung verlangt hätte. Das hätte aber grosse Kosten und noch einiges an Bastelaufwand verursacht.

Zum Glück realisierte ich bald einmal, dass man das Antennenkabel durch den Fensterrahmen legen und das Fenster schliessen kann, ohne das Kabel zu beschädigen (hoffe ich jedenfalls):

Reichweite der Antenne

Beim Betrieb des o.g. Sets aus DVB-T-Dongle mitsamt mickriger Antenne in der Wohnung (am grossen Fenster zum Balkon) konnte die Software Signale von Flugzeugen in der Distanz von 20 Nautischen Meilen empfangen.

Nachdem ich den Empfänger probehalber auf dem Balkontisch platziert hatte, stieg die Reichweite auf 40 Nautische Meilen an.

Nach der Festinstallation auf dem äusseren Fensterbank und 48 Stunden Dauerbetrieb konnte ich die Reichweite in einigen wenigen Fällen auf 56 Nautische Meilen erhöhen (103.71 Kilometer).

Bessere Antennen

Bei jetvision.de könnte man sich leistungsfähigere Antennen kaufen. Mein Favorit wäre die „A3 ADS-B“ Antenna (1090 MHz) für 77.95 EUR. Doch momentan zögere ich mich mit der Aufrüstung noch, da ich diese Antenne weiterhin auf dem äusseren Fensterbank montieren müsste.

Auf Amazon und AliExpress finden sich auch 1090 MHz-Antennen, teils deutlich günstiger, aber über deren Qualität kann ich nichts aussagen.

Web-Interfaces

Sobald der Raspberry Pi aufgesetzt und der Radar bei Flightradar24 registriert ist, kann man auf das lokale Web-Interface der Lösung zugreifen. Es ist unter folgender URL erreichbar:

http://%IP%:8754

Folgende zwei Unterseiten sind nützlich:

  • http://%IP%:8754/settings.html Hier kann man Einstellungen vornehmen. Bei mir scheinen diese aber nicht übernommen worden zu sein (ist evtl. ein Neustart des Servers nötig? Ein Neustart der Software über das Web-Interface hat keinen Effekt gezeigt)
  • http://%IP%:8754/tracked.html Die Liste der aktuell empfangenen Signale von Flugzeugen

Weiter gibt es noch ein, zwei technische Interfaces, die Messdaten in strukturierter Form ausgeben:

  • http://%IP%/dump1090/data/aircraft.json
  • http://%IP%/dump1090/data/stats.json
  • http://%IP%/dump1090/data/receiver.json

Via: Raspberry Pi: Dump1090 erzeugt auch JSON-Dateien die extern verwendet werden können

Diese JSON-Daten eignen sich vorzüglich, um mit Cacti schöne Graphen zu erstellen.

Die Aufschlüsselung der JSON-Werte finden sich in folgendem Artikel: JSON output formats

Sonstige Interfaces

Mit netstat findet man schnell heraus, auf welchen Port fr24 Netzwerkdienste anbietet (ssh, snmpd, dhclient und avahi-daemon sind Systemdienste, die mit fr24 nichts zu tun haben):

# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      417/lighttpd        
tcp        0      0 0.0.0.0:30002           0.0.0.0:*               LISTEN      326/fr24feed        
tcp        0      0 0.0.0.0:8754            0.0.0.0:*               LISTEN      326/fr24feed        
tcp        0      0 0.0.0.0:30003           0.0.0.0:*               LISTEN      326/fr24feed        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      366/sshd            
udp        0      0 0.0.0.0:161             0.0.0.0:*                           352/snmpd           
udp        0      0 0.0.0.0:51123           0.0.0.0:*                           326/fr24feed        
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           262/avahi-daemon: r 
udp        0      0 0.0.0.0:36590           0.0.0.0:*                           262/avahi-daemon: r 
udp        0      0 0.0.0.0:68              0.0.0.0:*                           561/dhclient        
udp        0      0 0.0.0.0:59213           0.0.0.0:*                           326/fr24feed

Prozesse

Auf den Raspberry Pi kann man nach der Installation des Flightradar24-Images mit den gewohnten Zugangsdaten per SSH zugreifen.

Auf dem Gerät laufen folgende zwei Prozessbäume, die zum Empfang und für die Verarbeitung der Signale zuständig sind:

  • /usr/bin/fr24feed
  • /usr/bin/dump1090-mutability --raw --mlat --write-json /run/dump1090-mutability/

Als Services werden installiert:

  • dump1090-mutability.service
  • fr24feed.service
  • fr24gui.service

fr24feed startet und stoppt man folgendermassen:

# systemctl start fr24feed
# systemctl stop fr24feed

Log-Dateien

Nach der Installation fand sich bei mir unter /var/log/fr24feed/fr24feed.log eine Log-Datei, die in Echtzeit aktualisiert wurde.

Nach ca. zwei Tagen Betrieb stoppten die Log-Meldungen plötzlich und ich konnte noch nicht herausfinden, wieso die Anwendung nichts mehr in die Datei schreibt.

Die Einstellungen habe ich zwar angepasst (Logfile mode: Keep up to 72h, rotate every 24h und Log file location: /var/log/fr24feed/custom.log), bisher wurden diese aber nicht geschluckt.

Offizielle Statistiken

Loggt man sich auf Flightradar24 ein, kann man sich ausführliche Statistiken zu seinem Empfänger anzeigen lassen (die Zahlen sind aus der Sicht von Flightradar24, d.h. die Informationen, die vom Raspberry Pi an den Dienst gesendet und effektiv dort ankommen):

Die URL lautet www.flightradar24.com/account/data-sharing, wo man dann alle registrierten Empfänger angezeigt bekommt. Klickt man dort auf Show Statistics, erscheinen die ausführlichen Statistiken:

Tags: , , , ,
Labels: IT

4 Kommentare | neuen Kommentar verfassen

Sonntag, 25. Februar 2018

Eine RRD-Datei mit einer weiteren Data Source DS ergänzen

Heute musste ich in Cacti eine zusätzliche Data Source zu einer bestehenden Round Robin Database hinzufügen, welche bereits Daten enthielt, welche ich nicht verlieren wollte.

Cacti scheint ein solches Update des RRDs nicht selbständig machen zu können, weshalb etwas Handarbeit angesagt ist.

Glücklicherweise unterstützt rrdtool (mittlerweile) eine solche Aktualisierung von RRDs:

in the 1.5 series there is a much better solution for the whole ‚modify rrd‘ problem … create has the ability to pre-populate a new rrd file based on an existing one …

Quelle: since when rrdtool tune can add another DS?

Tatsächlich, schaut man sich die man-Page von rrdcreate an, findet man den Parameter --source, mit welchem man auf eine bestehende Datei zeigen kann, deren Messdaten dann nach allen Regeln der Kunst in die neue Datei importiert werden.

Da Cacti im Data Source Debug Mode einem auch den rrdcreate-Befehl anzeigt, konnte ich diesen kopieren und mit diesem Parameter ergänzen. Um keine Daten zu verlieren, kopierte ich vorher die ursprüngliche RRD-Datei nach /tmp/legacy.rrd und arbeitete nur mit dieser Datai als Quelle. Schlussendlich sah der Befehl dann so aus:

/usr/bin/rrdtool create \
/var/www/cacti/rra/fr24.rrd \
--step 60  \
--source /tmp/legacy.rrd \
DS:AIRCRAFTS:GAUGE:120:0:U \
DS:MESSAGES:COUNTER:120:0:U \
RRA:AVERAGE:0.5:1:500 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MIN:0.5:1:500 \
RRA:MIN:0.5:1:600 \
RRA:MIN:0.5:6:700 \
RRA:MIN:0.5:24:775 \
RRA:MIN:0.5:288:797 \
RRA:MAX:0.5:1:500 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
RRA:LAST:0.5:1:500 \
RRA:LAST:0.5:1:600 \
RRA:LAST:0.5:6:700 \
RRA:LAST:0.5:24:775 \
RRA:LAST:0.5:288:797 \

In der Legacy-Datei existierte bereits eine Zeitreihe für AIRCRAFTS, MESSAGES kamen heute dazu.

Fertig!

Tags: , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 25. Februar 2018

Übrig bleiben: Schlaue Frauen und dumme Männer

So lustig es anfänglich klingen mag, so ganz realitätsfern ist Eckhart von Hirschhausens Theorie definitiv nicht:

Original: Kölner Treff: „Schlaue Frauen brauchen keinen Mann!“ (mit 1min52sec die längere Version, als diejenige auf YouTube piratisiert hochgeladene 54 Sekunden-Version)

Tags: , , , , ,
Labels: Funny

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 25. Februar 2018

Bayrisches Biervokabular für Anfänger: Noagerl

Diese Woche von einem Arbeitskollegen aus dem Freistaat (konkret: aus dem unrühmlich bekannten Ort mit dem KZ) gelernt:

Noagerl

Soll heissen: Ungefähr der letzte Zentimeter Bier, der in einem Masskrug bewusst zurückbleibt und nicht getrunken wird, da er schal, das heisst lauwarm und ohne Kohlensäure ist.

Dafür gibt es im inoffiziellen Bayrisch-Wörterbuch sogar einen Eintrag:

Wiesn-Lexikon: „N“ wie „Noagerl“

Der Kollege erwähnte diesen Begriff im Zusammenhang mit dem Oktoberfest und den Besuchern, die ihr ganzes Bargeldvermögen versoffen haben und sich deshalb vor Zeltschluss einen Masskrug mit flüssigen Resten aus Masskrügen anderer Besucher zusammenfüllen:

Noagerl-Mass

Tags: , , , , , , , ,
Labels: Funny

Keine Kommentare | neuen Kommentar verfassen