Über Docker hatte ich hier schon mal berichtet.
Docker ist schnell installiert, einfach nach der Aktuallisierung des Systems folgenden Befehl eingeben: „Raspberry Pi Zero W: Debian Docker mit Alpinelinux installieren in 30 Minuten“ weiterlesen

Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Alles rund um Linux
Über Docker hatte ich hier schon mal berichtet.
Docker ist schnell installiert, einfach nach der Aktuallisierung des Systems folgenden Befehl eingeben: „Raspberry Pi Zero W: Debian Docker mit Alpinelinux installieren in 30 Minuten“ weiterlesen
Wie kann ein Archive aus dem Internet gelanden und der Inhalt angezeigt und dann entpackt werden?
Auf der Kommandozeile kann mit apt-get ein Archive geladen werden. Wir laden uns mal z.B. git:
|
1 |
apt-get download git |
Nach ein paar Sekunden habe wir im lokalen Verzeichnis das Archive git_1%3a2.1.4-2.1+deb8u2_armhf.deb oder neuer. „Raspberry Pi Zero W: Wie kann ein Archive gelanden und der Inhalt angezeigt und dann entpackt werden?“ weiterlesen
Wenn man vom Mac aus auf einen entfernten Raspberry Pi (Zero W) zugreifen will, kann man das auch ohne jedesmal ein Passwort eingeben zu müssen. Dafür kann das Public RSA Key Verfahren verwendet werden.
Dazu muss auf dem Pi ein .ssh Verzeichnis mit einer authorized_keys Datei angelegt werden:
|
1 2 3 4 |
cd .ssh touch authorized_keys chmod 700 ~/.ssh/ chmod 600 ~/.ssh/authorized_keys |
Dann in der /etc/ssh/sshd_config des Pi die folgenden Einträge setzen:
|
1 2 3 4 5 6 7 |
sudo vi /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys PasswordAuthentication yes |
Dann den SSH Service restarten und in der Konsole bleiben.
|
1 |
sudo /etc/init.d/ssh restart |
Dann einmalig auf dem Mac einen RSA Key mit der Größe von 2048 anlegen.
Dazu bin ich in das .ssh Verzeichnis gewechselt und habe einen Key nur für die Pis ohne Passwort wie folgt angelegt:
|
1 |
ssh-keygen -b 2048 -t rsa |
Bei der Nachfrage nach einem Passwort, einfach nur Enter eingeben.
Da ich mehrere Keys in Verwendung habe, habe ich den Key in einer neuen Datei gespeichert, z.B. pi_id_rsa
Es werden nun zwei Dateien generiert, die pi_id_rsa mit dem privaten Key und die pi_id_rsa.pub mit dem public key.
Da mein default Key im Mac ein anderer ist, habe ich in der ~/.ssh/config Datei des Macs, wie hier schon mal beschrieben, um den folgenden Eintrag IdentityFile mit dem Namen für den privaten Key für die Verwendung des eben generierten Key und nicht des default Keys eingetragen:
|
1 2 3 4 5 |
Host zero HostName pi-zero Port 22 User pi IdentityFile ~/.ssh/pi_id_rsa |
Weitere Optionen zur ~/.ssh/config gibt es in der umfangreichen Referenz.
Jetzt noch den Key vom Mac auf den Pi kopieren damit er in der ~/ssh/authorized_keys Datei eingetragen wird, dazu in das ~/.ssh Verzeichnis wechseln und:
|
1 |
cat pi_id_rsa.pub | ssh pi@zero 'cat>>.ssh/authorized_keys' |
Jetzt von einer anderen Konsole testen ob alles läuft.
Wenn das Anmelden mit:
|
1 |
ssh zero |
ohne Passwort nachfrage klappt ist alles ok. Sonst in der anderen Konsole fixen, sonst sperrt man sich selbst aus.
Habe ich was vergessen?
Manchmal will man sehen, was alles so in einer compilierten Java Datei steckt. Nicht immer hat man den Quelltext. Auch für die Fehlersuche ist ein Disassembler mal ganz gut.
In jedem JDK ist auch ein Disassembler javap dabei. Denn wollen wir nun einmal auf eine unbekannte Java Class Datei loslassen, um zu sehen, was es so zu sehen gibt.
Zuerst loggen wir uns auf die Kommandozeile eines Raspberry Pi ein, auf dem ein Java JDK installiert ist. Ob Java installiert ist kann mit
|
1 |
java -version |
getestet werden. Wenn dort eine Versionsangabe geliefert wird, ist alles ok.
Dann legen wir erst mal ein Testverzeichnis an und wechsel in das Verzeichnis:
|
1 2 |
mkdir java-test cd java-test |
Dann holen wir uns in das Verzeichnis eine unbekannte Flugzeug.class Datei (der Quellcode ist hier zu finden):
|
1 |
wget http://blog.wenzlaff.de/wp-content/uploads/2017/01/Flugzeug.class |
Diese Datei wollen wir nun disassemblieren, mit
|
1 |
javap Flugzeug.class |
Schon bekommen wir alle gewünschten Informationen:
Nun schauen wir uns mal alle Möglichkeiten an: „Mit dem Raspberry Pi den Java Class File Disassembler (javap) aufrufen“ weiterlesen
Für meinen Raspberry Pi brauche ich nun eine Sprachausgabe da Karotz gestorben ist. Ich habe noch einen < 5 Euro Bluetooth Speaker aus der China-Bucht liegen. So ein Teil:

Denn wollte ich nun drahtlos anbinden.
Dazu verwende ich für den Raspberry Pi den folgenden Bluethooth USB-Adapter, denn ich schon mal mit Fhem angebunden hatte.
Das ist schnell gemacht! „MP3 und WAV Dateien mit einem Raspberry Pi über Bluetooth (Drahtlos) abspielen“ weiterlesen
Wer schöne Grafiken zum Thema Flug-Transponder-Empfang erstellen will, kann das sehr einfach machen. Es werden dann im Browser, z.B. solche Diagramme angezeigt:

Es gibt ein gutes Install-Script (Thanks Ted Sluis) mit dem geht die Installation auf einem Raspberry Pi Debian Jessie sehr einfach. Auch ein Install-Video ist auf der Seite zu finden.
Einfach diese Befehle absetzen: „Raspberry Pi Flugstatistik mit collectd, rrd und dump1090-tool“ weiterlesen
Bin nun wieder von meiner Weltreise zurück. In der zwischenzeit gab es einige Updates.
Es gibt eine neue Version von PiAware mit der Nummer 3.5.3 Deshalb diese Version laden und gleich das ganze System updaten:
|
1 2 3 4 5 6 7 |
wget http://flightaware.com/adsb/piaware/files/packages/pool/piaware/p/piaware-support/piaware-repository_3.5.3_all.deb sudo dpkg -i piaware-repository_3.5.3_all.deb sudo apt-get update sudo apt-get upgrade sudo apt-get install piaware piaware -v # Ergebnis 3.5.3 |
Dann auch gleich dump1090-mutability_1.15~dev neu erstellen und installieren: „Update des Raspberry Pi mit PiAware von 2.1 auf 3.5.3 und Bing Map einstellen“ weiterlesen
Habe nun mal ein anders Netzteil verwendet, aber auch nach 3 Tagen ist der Cubi wieder abgestürzt. An der Stromversogung kann es also wohl nicht liegen!
Dann habe ich mir mal den Speicherverbrauch angeschaut, da ich die Vermutung hab, das der Apache2 oder die Mysql den Speicher vollaufen lassen und es zu einem Speicherüberlauf mit Absturz kommt.
Ich habe nun mal Testweise einen CRON Job angelegt, der einmal am Tag ein Reboot durchführt, in der Hoffnung das er dann länger als 3 Tage läuft. Das behebt zwar nicht die Ursache, aber wenn es läuft ist das mal ein Workaround (siehe Bild mit der Telefonzelle) … 😉
Der Cron-Job kann wie folgt angelegt werden und zwar mit root Zugang:
|
1 |
crontab -e |
und in der letzten Zeile folgenden Eintrag ergänzen. „Auf der Suche, warum der Cubieboard mit Debian Jessie nach ein paar Tagen abstürzt. Teil 3: Workaround tägliches rebooten“ weiterlesen
Damit man die OpenHAB Konfigurationsdateien einfach bearbeiten kann, gibt es den openHAB Designer (aktuelle Version 1.8.3). Der kann von dieser Seite für den Mac, Linux oder Windows kostenlos geladen werden. Diese Datei dann installieren.
Tip: Erscheint bei der Installation bei Mac OS X eine Fehlermeldung: „… das Archive bzw. das Programm ist defekt und soll in den Papierkorb verschoben werden…“
liegt es daran, das das Archive nicht signiert ist. Dann wählen Sie „Apple“ > „Systemeinstellungen“
und klicken Sie auf „Sicherheit“ und danach auf „Allgemein“ für die App zulassen.
Dann noch einmal versuchen, und es müsste laufen. Die Einstellung kann dann wieder zurück gesetzt werden, wenn der Designer einmal erfolgreich gestartet wurde.
Den openHAB Designer nun starten, es erscheint eine schöne auf Eclipse basierende GUI.
Da der openHAB Server auf einem Raspberry Pi läuft, muss das OpenHAB Konfigurationsverzeichnis /etc/openhab/configurations noch Freigegeben werden um vom Mac aus darauch zuzugreifen. Zu dem openHAB Designer erst mal eine Mindmap
„Wie wird der openHAB Designer 1.8.3 für einen Mac optimal installiert mit Freigaben für einen Raspberry Pi?“ weiterlesen
Nach dem ssh Login, kommt bei mir diese oder ähnliche Fehlermeldungen auf der Konsole:
|
1 2 3 |
-bash: /usr/share/bash-completion/bash_completion: line 1942: unexpected EOF while looking for matching `"' -bash: /usr/share/bash-completion/bash_completion: line 1957: unexpected token `�' in conditional command -bash: /usr/share/bash-completion/bash_completion: line 1957: syntax error: unexpected end of file |
Wie können die Fehler gefixt werden?

Einfach das bash_completion Package neu installieren mit:
|
1 |
sudo apt-get install bash-completion |
Schnell und einfach!
Normalerweise habe ich die Antenne drinnen. Da es heute aber so schön ist, wird sie mal draußen angebracht
und schon ist der Empfang fast doppelt so groß und fast 300 Km weit:
oder hier
Hier auf Twitter kann jeder in Echtzeit mit 5 Minuten Verzögerung die Anzahl ablesen, da ein Raspberry Pi über node-red die Ergebnisse postet:
Anzahl #Flugzeuge in #Hannover (#HAJ #EDDV) 51 angefragt per #ADSB am Sat Jun 04 2016 17:26:28 GMT+0200 (CEST) per #Raspberry #Pi
— Thomas Wenzlaff (@twusb) 4. Juni 2016
Die node-red Admin Konsole kann im Terminal wie folgt installiert werden:

|
1 |
sudo npm install -g node-red-admin |
Ergebnis nach ein paar Minuten: „Wie kann die node-red-admin Konsole auf den Raspberry Pi installiert werden?“ weiterlesen
Einen solchen Flow mit node-RED erstellen:

Die Ausgabe der Flugzeuge in Hannover wird rechts im Debug Reiter und auf der Console des Raspberry Pi ausgegeben.

Oder über import - clipboard diesen Flow aus der Datei flow.json importieren: „Raspberry Pi mit node-red: Wie können Flugdaten automatisch alle 5 Minuten abgefragt werden?“ weiterlesen
Mal einen Docker Container von Ted Sluis mit DUMP1090 aus den Niederlande testen. Man braucht dazu keine Antenne.
Cool 164 Flugzeuge, das ist ja viel mehr, als hier in EDDV. Aber hier wird auch gestreikt. Wer wie in einem Blog-Eintrag beschrieben, docker am laufen hat, braucht nur mit einer Zeile den Container auf dem Raspberry Pi starten:
|
1 |
sudo docker run -d -h dump80 -p 8080:80 tedsluis/dump1090-mutability:v1.15_heatmaprangeview_arm |
„Docker Image für Dump1090-Mutability auf dem Raspberry Pi am Beispiel aus Utrecht – Niederlande in 10 min testen“ weiterlesen
Zuerst installieren wir Docker aus einem vorhandenen Archive. Optional auf http://blog.hypriot.com/downloads/ schauen, was die aktuellste Version ist. Ok, wir verwenden 1.10.3 vom 10.03.2016:

„Wie kann in 5 min Docker auf einem aktuellen Debian Jessie Raspberry Pi installiert werden?“ weiterlesen
Wie kann die Anzahl der gerade empfangenen Flugzeuge mit DUMP1090 auf einem Raspberry Pi an ThingSpeak.com mit jq gesendet werden?
Wir verwenden ein kleines bash Script, welches über jq die aircraft.json Datei auswertet. Diese Daten werden dann automatisch alle 5 Minuten per crontab an ThingSpeak gesendet.
Der jq ist ein Kommandline JSON Tool, das den Input der JSon aircraft.json Datei verwendet und das gefilterte Ergebnis wieder ausgibt. In diesem Fall die Anzahl der Flugzeuge. „Wie kann die Anzahl der gerade empfangenen Flugzeuge mit DUMP1090 auf einem Raspberry Pi an ThingSpeak.com mit jq gesendet werden?“ weiterlesen
Manchmal möchte man auch in openHAB die Wetterdaten des Heimatortes (oder auch jeden exbeliebigen Ort) anzeigen und dann bei Frost oder so über Regel reagieren wie z.B eine Nachricht versenden.
Das abfragen von Wetterdaten geht mit der API von OpenWeatherMap. Dort können kostenlos bis zu 60 Abfragen pro Minute gemacht werden. In einer Sekunde ändert sich das Wetter in der Regel nicht wesentlich. Ich frage eh nur alle halbe Stunde die aktuellen Daten ab.
Also zuerst anmelden bei OpenWeatherMap und den API Key in die openhab.cfg Datei kopieren: „Raspberry Pi: Wie können Wetterdaten in openHAB von OpenWeatherMap angezeigt werden?“ weiterlesen
Node-RED, ein Tool von IBM mit einem grafischer Editor als Herzstück. Damit geht Programmiern sehr flink.
Node-RED läuft auf dem Raspberry Pi (BPlus) ziemlich gut. Die Installation ist gut auf der node-RED Homepage beschrieben oder auch hier auf deutsch. Man muss nur darauf achten, das die richtige Version für den Raspberry Pi gewählt wird. Ich hatte nicht die Version für die B Version installiert, das führte dann beim starten zu einer Fehlermeldung.
Also für den Raspberry Pi (B) wie hier beschrieben vorgehen: „Node-RED von IBM für den Raspberry Pi auf Jessie“ weiterlesen
Wie sieht denn morgens so der Stromverbrauch aus?

Eine Tasse Kaffee zwei Toast und etwas Staubsaugen muss auch sein.
Hier das Diagramm, das mit openHab auf einen Raspberry Pi und einer Homematic Steckdose vermessen wurden. „Leistungsmessung (Kaffee, Toast, Staubsaugen) am morgen mit OpenHab und Raspberry Pi“ weiterlesen
Vor einiger Zeit hatte ich schon mal beschrieben wie man die Flugzeugsignale (Transponder) mit dem Raspberry Pi empfängt und nach Flightradar24.com, de.FlightAware.com und Planefinder.net gleichzeitig senden kann. In der Zwischenzeit gibt es Debian mit der Version Jessie und einige neue Versionen der Feed-Software. Hier nun eine Anleitung wie in ca. 1 Stunde alles auf einem Raspberry Pi installiert werden kann. Zuerst einmal ein Architektur Überblick:
Wie kann an einem Raspberry Pi auf dem openHab unter Debian Jessie läuft, die Homematic Geräte mit einem CUL angebunden werden. Da meine Homatic Geräte alle unter Fhem liefen, musste jedes Gerät resetet und neu gepeert und angelernt (gepairt) werden. Und es soll die Heizung, Brandmelder, Leistungsmesser und die Tür und Fensterkontakte ja laufen, sonnst kommt noch jemand ungebeten ins Haus 😉
Dabei muss man darauf achten, zuerst die Schalter mit den Heizungsventilen zu pairen und dann zum Schluss an die CUL Zentrale pairen. Anders läuf es nicht. Auch ist es wichtig, die für das Betriebssystem richtige Homegeare Version zu installieren.
„OpenHab: CUL an Homematic über Homegear auf dem Raspberry Pi unter Debian – Jessie“ weiterlesen
Wer schnell auf der Konsole seines Raspberry Pi oder Mac (da heißt es cal), einen Kalender anzeigen will, kann das schnell mit
|
1 |
ccal |
machen. CCAL ist ein direkter Ersatz für das Standard-Kalenderprogramm von Unix. Es unterstützt Farben und die tägliche, wöchentliche und jährliche Erinnerung an Termine.
Einfach auf der Konsole
|
1 |
ccal |
eingeben und schon erscheint dieser schöne Kalender:
Es geht noch besser, ein ganzes Jahr mit „Wie kann ein Kalender auf der Konsole eines Raspberry Pi mit ccal unter Jessie angezeigt werden?“ weiterlesen
Wie hier schon öfter mal beschrieben, nun eine aktuelle Version unter Jessie.
Debian Raspbian Jessie Lite laden und auspacken
„Wie läuft die Installation von OpenHAB auf einem Raspberry Pi unter Jessie?“ weiterlesen
Wie kann man schnell von der Komandozeile das Wetter grafisch abfragen? Das geht mit finger. Wenn finger noch nicht installiert ist ein „Mit dem Internetprotokoll finger das Wetter (Temp. in Celsius, Wind usw.) auf dem Raspberry Pi, Windows, Linux oder Mac anzeigen“ weiterlesen
Es gibt einen neuen PlaneFinder (3.3.147) Client.
Hier einige der Änderungen:
Wie kann der pfclient auf dem Raspberry Pi aktuallisiert werden? „Wie kann auf dem Raspberry Pi der PlaneFinder Client (pfclient, von 3.0.1657 auf 3.3.147) aktuallisiert werden?“ weiterlesen
Bei mir läuft nun seit einigen Wochen die Dump1090 dev1.15 Version auf dem Raspberry Pi. Wie kann diese nun aktualisiert werden?
Wie hier schon kurz beschrieben, „Dump1090 auf dem Raspberry Pi aktualisieren (da Lufthansa und UFO sich ja näher kommen)“ weiterlesen
Was ist zu tun, wenn auf einem Raspberry Pi bei einem
|
1 |
sudo apt-get update |
der folgende Fehler erscheint:
„GPG error: http://repo.mutability.co.uk wheezy Release: The following signatures were invalid: KEYEXPIRED“
Da ist ein GPG Key abgelaufen. Der Key kann wie folgt aktualisiert werden: „Was ist zu tun, wenn auf einem Raspberry Pi bei apt-get update der folgende Fehler erscheint: „GPG error: http://repo.mutability.co.uk wheezy Release: The following signatures were invalid: KEYEXPIRED““ weiterlesen
Manchmal will man die manpages offline lesen.
Da bietet sich das PDF Format an. Eine manpages als PDF kann leicht erzeugt werden mit:
|
1 2 3 |
man -t [Name des Programm bzw. Befehlt] | ps2pdf - > [Name der PDF Datei die erzeugt wird] # z.B. für rrdtool man -t rrdtool | ps2pdf - > rrdtool.pdf |
Installieren eines mosquitto Servers auf dem Raspberry Pi geht in 10 Minuten aber die weitere Konfiguration dauert dann schon ein wenig. Ziel dieses Blog Eintrags soll es sein, das Fhem über den MQTT-Server liest.
Später kommt dann ein ESP8266 der das Klingelsignal an der Haustür aufnimmt und drahtlos an Fhem via MQTT sendet. Hier mal die Architektur:

Aber jetzt erst einmal die Vorarbeiten:
|
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 |
sudo apt-get update sudo apt-get upgrade # die schnelle Version, installiert den mosquitto Broker in Version 0.15 und den Client sudo apt-get install mosquitto mosquitto-clients python-mosquitto libmodule-pluggable-perl mosquitto-clients # Optional, wer den aktuellsten 1.4.5 MQTT Broker haben will, muss ihn wie folgt aus dem mosquitto Repo installieren: wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key sudo apt-key add mosquitto-repo.gpg.key cd /etc/apt/sources.list.d/ sudo wget http://repo.mosquitto.org/debian/mosquitto-wheezy.list # oder für jessie sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list sudo apt-get update sudo apt-get install mosquitto # Test ob der Server läuft sudo service mosquitto status # Starten und Stopen geht so sudo service mosquitto stop sudo service mosquitto start # Perl Version ausgeben perl -v # Ausgabe: This is perl 5, version 14, subversion 2 (v5.14.2) built for arm-linux-gnueabihf-thread-multi-64int # Perl MQTT Module installieren, das dauert ein wenig sudo cpan install Net::MQTT:Simple sudo cpan install Net::MQTT:Constants # In der Fhem.cfg das Gerät wie folgt angeben define klingel dummy define mqtt MQTT 127.0.0.1:1883 define mqtt_klingel MQTT_BRIDGE klingel attr mqtt_klingel subscribeSet fhem/flur/klingel/set attr mqtt_klingel publishState fhem/flur/klingel attr mqtt_klingel room Flur # Fhem restart sudo /etc/init.d/fhem stop sudo /etc/init.d/fhem start |
So, nun ist das MQTT Gerät vorhanden:
„Raspberry Pi: MQTT Server mosquitto installieren und Daten in Fhem über MQTT empfangen oder „Wie werte ich Haustür klingeln aus?““ weiterlesen
Wer per SSH auf einen Raspberry Pi zugreifen will, kann das auch mit dem aktuellen El Capitan. Also X-Anwendungen mit SSH forwarden.
Das heißt, es laufen alle Programme auf dem Pi, und man hat eine „normale“ Gui für die Mausschubser. Man braucht also nicht mehr einen eigenen Monitor an den Raspberry Pi anschliessen und kann den Mac dafür benutzen. Das alles geht natürlich auch analog mit Windows.
Es muss nur XQuartz installiert werden, wenn es nicht eh schon vorhanden ist.
Dann einen Neustart und mit dem Raspberry Pi per SSH und den X Parameter verbinden:
|
1 |
ssh -X pi@[PI-Adresse] |
dann wenn man per ssh verbunden ist im Terminal
|
1 |
lxpanel& |
das Panel starten und ein paar Minuten warten. Jetzt können alle Programme normal über GUI gestartet werden. Hier mal top und das Programmfenster:
Zu Beenden im Menü von XQuartz auf X11 beenden klicken.
Manches geht doch besser mit GUI. „Raspberry Pi SSH X Forwarding auf den Mac OS X El Capitan 10.11.1oder wie zeige ich den Raspberry Pi Desktop unter Mac an.“ weiterlesen