PiHole – Eigener Werbeblocker und mehr

Wir betreiben schon recht lange unseren eigenen Werbeblocker im Heimnetz. Dazu dient ein Raspberry Pi3B, den wir komplett mit Gehäuse und Netzteil erworben hatten, und die Software PiHole. Die ganze Zeit lief der Pi auf Raspbian. Da dies nicht mehr das neueste und für den Zweck auch total überladen ist, wurde es Zeit, den Teil auch auf DietPi umzustellen.

Im FlightRadar-Artikel habe ich schon beschrieben, wie man zu DietPi kommt. Die Einrichtung dauert etwas. Ich hatte das Problem, dass er sich nicht im Netzwerk anmeldete. Warum auch immer funktionierte es mit einer anderen Speicherkarte.

Ich würde noch empfehlen, wenn dann irgendwann die Frage kommt, das Passwort des Hauptnutzers zu ändern und nicht auf dem Standard zu lassen.

PiHole Installieren

Während der Einrichtung von DietPi wird auch gefragt, ob zusätzliche Software installiert werden soll.

Dort lässt sich auch PiHole auswählen.

Das tun wir aber nicht, denn es führt, zumindest bei mir, zu einer Fehlermeldung.

Nach Abschluss der Installation von DietPi landen wir auf der Konsole.

Wir installieren mit

curl -sSL https://install.pi-hole.net | bash

Das dauert dann wieder etwas.

Das klingt doch schon mal gut.

Bei der Abfrage nach Upstream DNS Provider kann im normalen Fall einfach Google oder Cloudflare verwendet werden. Diese sind mit die schnellsten. Wir haben die IP unseres Routers angegeben, damit wir den DNS unseres Providers nutzen. Externe haben immer den Nachteil, dass sie Euren Datenverkehr mitloggen können.

Update: Im Nachhinein habe ich die von Google wieder genommen. Die ist deutlich schneller als die unseres Providers.

Die Blocklisten werden einfach übvernommen.

Ebenso dann auch die IPv4/IPv6-Abfrage und die IP-Bestätigung. Dann kommt ein wichtiger Punkt.

Wir möchten natürlich, dass unser PiHole immer die gleiche IP im internen Netz hat. Er soll ja immer erreichbar sein, auch wenn er mal neu startet.

Natürlich wollen wir das Web-Interface.

Weiter wird alles bestätigt.

Zum Abschluss werden die IP-Adressen angezeigt, die im Router als DNS eingetragen werden müssen. Und das Passwort für das Web-Interface.

In meiner Fritz ist das unter Internet -> Zugangsdaten -> DNS-Server zu finden.

Bitte hier nicht vom Bild abschreiben sondern die Daten aus der PiHole eintragen.

Unter Heimnetz -> Netzwerk ->Netzwerkeinstellungen befindet sich ganz unten der Punkt IP-Konfiguration. Da muss bei uns der DNS auch noch eingetragen werden. Sowohl für IPv4 und für IPv6. Nicht wundern, das Feld für die IPv6-Adresse ist länger als nötig.

Fertig ist der eigene Werbeblocker. Sehr schön an der Sache, man kann ihn auch anders verwenden. Über die White-/Blacklist-Funktion können auch gezielt einzelne Domains oder auch Teile davon gesperrt bzw. freigegeben werden. Damit eignet sich PiHole auch als Blocker für Kindgerechtes Internet oder für Firmennetze, in denen nur bestimmte Adressen erreichbar sein sollen.

Von der Konsole lassen sich auch noch ein paar Dinge steuern. Z.B. das Passwort für das Web-Interface ändern:

$ pihole -a -p
Enter New Password (Blank for no password): 
Confirm Password: 
  [✓] New password set

Neuinstallation mit DietPi

Nachdem der bisherige Pi Zero WH mit Raspbian und der PiAware-Installation lief und immer wieder Software ausprobiert wurde, wurde es Zeit, eine neue saubere Installation zu machen. Dabei machte ich mich auf die Suche nach einer sparsameren Version des Betriebssystems für den Pi Zero und stolperte über DietPi.

Die Installation ging recht einfach nach der Anleitung auf der Website. Image auf die SD-Karte und Konfiguration in den Files auf der SD-Karte für das WLAN anpassen.

dietpi.txt

# Keyboard Layout eg: "gb" / "us" / "de" / "fr"
AUTO_SETUP_KEYBOARD_LAYOUT=de

# Timezone eg: "Europe/London" / "America/New_York" | Full list (TZ*): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
AUTO_SETUP_TIMEZONE=Europe/Berlin

##### Networking Options #####
# Enable Ethernet or WiFi adapter: 1=enable | 0=disable
# - If both Ethernet and WiFi are enabled, WiFi will take priority and Ethernet will be disabled.
# - If using WiFi, please edit dietpi-wifi.txt to pre-enter credentials.
AUTO_SETUP_NET_ETHERNET_ENABLED=0
AUTO_SETUP_NET_WIFI_ENABLED=1

dietpi-wifi.txt

# - WiFi SSID: required, case sensitive
aWIFI_SSID[0]='WLAN-NAME'
# - WiFi key: If no key/open, leave this blank
aWIFI_KEY[0]='Passwort'

Nachdem die SD-Karte in im Pi war und der gebootet hatte, suchte ich mir in den Einstellungen der Fritz die IP des Pi heraus und loggte mich mit

ssh root@ip-adresse

ein.

Standard ist User „root“ und Passwort „dietpi“.

Automatisch startete die Erstkonfiguration von DietPi, was ich sehr gut gemacht fand. Kurz die Konfiguration durchgehen, viel ist hier nicht mehr zu machen, und fertig ist das System

Eigener Flightradar

Wer die Beiträge auf der Seite hier gelesen hat, weiss, dass ich hin und wieder Probleme mit dump1090 hatte. Mal lief es nicht, mal lieferte es keine Daten. Vor kurzem fand ich über ein Reddit-Post einen Ersatz. Die Installation geht mit:

sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/adsb-scripts/master/readsb-install.sh)"

Unter http://Pi-IP/radar ist dann schon die eigene Seite mit Karte und allem zu finden. Leider nicht mit richtigen Location. Die muss erst Konfiguriert werden.

sudo readsb-set-location long lat

Wobei long und lat durch die Koordinaten ersetzt werden. Nach einem Neustart mit

sudo systemctl restart readsb

lieferte es allerdings keine Daten. Aus den Logfiles erfuhr ich, dass der USB-Stick zwar vom System erkannt, aber nicht für readsb genutzt wurde. Aber ich fand Abhilfe:

sudo wget -O /etc/udev/rules.d/rtl-sdr.rules "https://raw.githubusercontent.com/osmocom/rtl-sdr/master/rtl-sdr.rules"

Eine Karte mit mehr Informationen und mehr Features ist tar1090. Installiert wird sie mit:

sudo bash -c "$(wget -nv -O - https://raw.githubusercontent.com/wiedehopf/tar1090/master/install.sh)"

ADSBExchange

Jetzt müssen die Daten zu ADSB-Exchange. Da es eine nicht-kommerzielle Seite ist, die nicht filtert und keine Flüge in der Anzeige blockt, ist sie für mich Pflicht. Die Installation geht mit:

curl -o /tmp/feed.sh https://raw.githubusercontent.com/adsbxchange/adsb-exchange/master/install.sh
sudo bash /tmp/feed.sh

Das dauerte sehr lange. Wenn es fertig ist wird noch adsbexchange-stats installiert. Dann habe ich meine Seite mit Karte auch online.

wget -O /tmp/axstats.sh https://raw.githubusercontent.com/adsbxchange/adsbexchange-stats/master/stats.sh
sudo bash /tmp/axstats.sh

Im Abschluss zeigt das Installationsscript eine URL zur eigenen Seite bei ADSB-Exchange.

graphs1090

Ich habe es noch ein mal probiert. Graphs1090 brachte die alte Installation dauernd zu reboots. Mit der neuen scheint es zu funktionieren.

sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/graphs1090/master/install.sh)"

Andere Websites

Ich habe mich an die Anleitung auf dieser Website gehalten. Dort ist auch erklärt, wie der Feed auf andere Websites wie Flightradar24 und FlightAware kommt.

Flightradar – wieder mehr Reichweite

Es ist schon erstaunlich, wie sich kleine Änderungen auswirken, von denen man denkt, sie würden nicht bringen. Der Pi ist jetzt nicht mehr aufgehängt sondern einen Meter weiter unten. Der USB-Stick damit auch. Die Position der Antenne hat sich nicht geändert. Trotzdem ging die Reichweite wieder auf 86 NM hoch. Ich verstehe nicht, wie die Positionsänderung der Hardware, aber nicht der Antenne, so einen Unterschied machen kann.

Hier die aktuelle Abdeckung:

Flightradar – Wieder drinnen

Viel ist nicht passiert seit dem letzten Post im August. Als das Wetter nach Regen aussah, habe ich den Pi in einem Schnappbügelglas verpackt. Dicht war das allerdings nicht. Jetzt weiss ich, dass er 5 Millimeter Wasser aushält.

Jetzt ist er wieder drinnen. Nach dem Umzug in die Wohnung sank die Reichweite wieder auf etwa 85 NM. Dann habe ich die Position des Pi’s verändert, die Antenne aber an der gleichen Stelle gelassen. Ich habe keine Ahnung an was es lag, aber die Reichweite sank auf 62 NM. Mysteriös.

Inzwischen habe ich auch schon eine Idee, wie er Wasserdicht nach Draussen kann. Eine Abzweigdose aus dem Baumarkt hat es mir angetan. Zuerst kommt er an den richtigen Strom, da ich mir noch nicht sicher bin, wie die Solar-Versorgung aussehen wird. Vermutlich wird es etwas größer und ein LifePo-Akku wird als Zwischenspeicher dazukommen. Der kann dann auch gleich Strom in die Wohnung liefern um z.B. USB-Geräte zu laden oder kleinere Elektrogeräte zu betreiben.

Flightradar – Draussen mehr Reichweite

Über die Stromversorgung muss ich mir ein anderes mal Gedanken machen. Wegen dem guten Wetter habe ich den Pi mal auf die Dachterrasse an die Aussensteckdose verfrachtet und die Antenne auf die Brüstung gestellt. Sofort hatte ich mehr Flugzeuge im Empfang und die Reichweite ist noch ein mal 15 NM auf 115 NM gestiegen.

Der nächste Schritt ist jetzt erst ein mal eine Wasserfeste Box. Damit kann er dauerhaft draussen bleiben. Die Antenne kommt dann auf das Dach.

Flightradar – Antennentests

Wie mache ich mehr Reichweite? Mit einer besseren Antenne. Ich habe zusätzlich zur mit dem DVB-T-Stick gelieferten Antenne zwei weitere Varianten ausprobiert. Dafür musste ich natürlich erst ein mal Traffic haben. In den letzten Wochen nach dem großen Corona-Einbruch ging das dann aber ganz gut.

Mit der normalen Antenne hatte ich eine Reichweite von etwas mehr als 60 NM. Ich glaube, es waren 62,9 NM.

Die Ausrichtung war da recht Einseitig nach Norden.

Dann habe ich mit eine neue Antenne gegönnt. Diese sollte speziell auf den Bereich mit 1090 MHz abgestimmt sein. Wenn auch über Amazon kam sie doch aus China. Etwa vier Wochen dauerte es. Sie ist länger als die Alte und hat im unteren Bereich einen gewendelte Form.

Zuerst lieferte sie fast keine Daten. Der Empfang ging massiv runter. Zuerst dachte ich an einen Defekt. Doch nach mehrmaligem entfernen und neu aufschrauben auf die Halterung hatte ich plötzlich Empfang. Und zwar deutlich.

Von rund 150 erfassten Flugzeugen pro Tag waren es nun täglich über 300. die Reichweite stieg auf 89,5 NM. Also etwa 165 km. Auch die Abdeckung in den Himmelsrichtungen wurde größer.

Die 384,5 NM, die hier angezeigt werden, müssen ein Anzeigefehler sein. Reproduzierbar waren sie nicht.

Muss man nun die 10 Euro für die Antenne ausgeben? Nein. Denn ich fand Tipps, die mit dem DVB-T-Stick gelieferte Antenne zu kürzen. Sie sollte auf 67 mm gekürzt werden. Da ich nun eine bessere Antenne hatte, legte ich es auf einen Versuch an. Ich nahm eine Zange und kürzte. Was soll ich sagen. Die Reichweite stieg von 62 NM auf 88,5 NM. Nur eine nautische Meile weniger, als mit der gekauften Antenne. Der Kauf ist hier also unnötig.

Wie zu sehen ist, nehmen sich Reichweite und Abdeckung nicht viel. In allen Varianten fehlt ein Stück nach Osten. Das liegt an der Antennenposition.

Dann habe ich noch kurz mit die Versorgung mit einer Powerbank ausprobiert. Es lag noch eine alte von Anker hier herum. Ich habe den Ausgang gemessen und bekam 0,63 mAh. Das sollte eigentlich für die 0,43 des Raspberry ausreichen. Tat es aber nicht.

Im rot markierten Bereich war der Raspberry an der Powerbank. Der Empfang ging deutlich runter. Nach dem Wechsel zurück auf den Netzadapter am 23.06. ging es sofort wieder hoch. Da muss ich noch mit anderen probieren.

Bevor das Ganze jetzt autonom wird, werde ich noch weiter an ein paar Bastelantennen rumprobieren und auch weiter mit Powerbanks testen, wie sich der Empfang entwickelt.

Flightradar – ADS-B Exchange und mehr Statistik

Bisher habe ich die bekannten Seiten wie Flightradar24 und Flightaware gefüttert. Mir ist bewusst, dass sie meine Daten kommerziell nutzen und auch filtern. So werden bestimmte Flugzeuge auf Wunsch des Betreibers auf deren Seiten nicht angezeigt.

Anders geht da ADS-B Exchange heran. Hier werden die Daten ungefiltert angezeigt. Und jeder, der Daten beisteuert hat auch Zugriff auf die Daten der anderen. Der Feed zu ADS-B Exchange ist schnell eingerichtet.

sudo bash -c "$(wget -nv -O - https://raw.githubusercontent.com/adsbxchange/adsb-exchange/master/install.sh)"

lädt von Github die benötigten Daten auf den Raspberry und startet auch gleich die Einrichtung.

Mit

cd /home/pi
git clone https://github.com/adsbxchange/adsbexchange-stats.git
cd adsbexchange-stats
chmod +x install.sh
sudo ./install.sh

wird noch ein Statistik-Package installiert. Damit werden nicht nur meine Daten geliefert, damit kann ich auch die Statistiken dazu sehen. Und mehr Daten zu den Flügen, die ich gerade tracke.

Andere Karte

Wie mache ich meine Karte mit der Reichweite und der Abdeckung? Für die normale Karte, die ich mit dump1090 erhalte gibt es eine OpenLayers3-Version, welche die alte Kartendarstellung ersetzt.

Dafür wechsele ich auf dem Pi in das Verzeichnis, in dem die HTML-Dateien liegen und lade mir die neue Version herunter.

cd /usr/share/dump1090-fa/
sudo mv html html_old
sudo git clone https://github.com/alkissack/Dump1090-OpenLayers3-html.git
sudo mv Dump1090-OpenLayers3-html html

graphs1090

Auch bisher habe ich auf die Statistiken von Flightaware zurückgegriffen. Auch dafür gibt es lokale Alternativen.

Erfasste Flugzeuge, Reichweite, Signalstärke und so weiter zeigt graphs1090 an. Installiert wird es mit

sudo bash -c "$(wget -q -O - https://raw.githubusercontent.com/wiedehopf/graphs1090/master/install.sh)"

Und mit http://raspberryip/graphs1090 kann ich sie sehen. Statt raspberryip müsst Ihr Eure IP einsetzen. Mein Pi hat danach mehrfach neu gebootet. Ich weiss nicht warum, aber nach einiger Zeit funktionierte es und er lief weiter.

Hier ein Screenshot kurz nach der Installation

Doch das hielt nich lange und der Pi startete regelmässig neu. Der Tipp, die SD-Karte könnte defekt sein, half nicht. Mit einer neuen SD-Karte lief es auch nicht besser.

Auch der Tipp, die Stromversorgung wäre nicht genug (hier 2.1A 10W) half nicht, denn mit 3A aus einem Netzteil, welches mit einem Pi3B kam, lief es auch nicht. Also benutze ich graphs1090 nicht.

Flightradar – Strom sparen + Reichweitenupdate

Ich habe mir ein USB-Multimeter* gegönnt, um den Stromverbrauch zu messen. Eine Google-Anfrage zeigt mir, dass der Zero 0,1 bis 0,14 Ampere verbraucht. Das Multimeter zeit mit angeschlossenem DVB-T-Stick 0,43 bis 0,46 Ampere an.

Ziehe ich den Stick ab, bin ich bei 0,12 Ampere. Stecke ich in wider dran, erst mal bei 0,24 Ampere, was nach kurzer Zeit wieder auf die 0,4x Ampere steigt. Wie bringen wird den Raspberry also dazu, weniger Strom zu verbrauchen?

Zuerst stellen wir mal alles ab, was wir nicht brauchen. Mit

sudo tvservice -o

schalten wir den HDMI-Ausgang aus. Der wird nun wirklich nicht gebraucht. Damit sind wir bei 0,4 bis 0,44 Ampere. Ein Tick weniger. Wie das dauerhaft geht, steht hier.

Weiterhin schalte ich die LEDs aus. Dazu wird die Datei /boot/config.txt berbeitet bzw. ergänzt:

# Disable the ACT LED.
dtparam=act_led_trigger=none
dtparam=act_led_activelow=off

# Disable the PWR LED.
dtparam=pwr_led_trigger=none
dtparam=pwr_led_activelow=off

Bluetooth brauchen wir ebenfalls nicht:

# Disable Bluetooth
dtoverlay=pi3-disable-bt

Viel hat es allerdings nicht gebracht. Wir bleiben weiterhin bei 0,4 bis 0,43 Ampere. Der Stromfresser ist also der DVB-T-Stick. Da lässt sich dann nicht so viel machen.

Zur Sicherheit sollte ich mit einem Wert von 0,5 Ampere kalkulieren.

Also, so das Messgerät, muss ich in einer Stunde mit einer Entnahme von 500 mAh aus einem Akku rechnen. Ein 10.000 mAh Akku dürfte demnach etwa 20 Stunden halten. Über Nacht reicht das, vorausgesetzt, dass tagsüber per Solar genug Strom nachkommt.

Mit einer Solar-Ladematte, gibt es z.B. von Anker*, dürfte der Akku unter Idealbedingungen nach etwas unter 5 Stunden wieder voll sein. Jetzt haben wir keine Idealbedingungen. Im Prinzip sollte es aber reichen.

Und jetzt noch die Reichweite. Mit – immer noch – der Zimmerantenne komme ich auf knapp über 60 NM. Also etwa 112 Kilometer. Irgend etwas muss da in Richtung Süden von West nach Ost blocken, denn nach Norden, obwohl in Richtung Nord-Ost ein Wand im Weg ist, komme ich deutlich weiter.