Raspberry Pi: Der Kaffee (кофе) ist fertig

Habe ja schon einige Artikel über die Erfassung des Kaffee قهوة  verbrauches mit dem Raspberry Pi geschrieben. Jetzt aber mal eine kleine Auswertung  nach 612 Tage oder fast 2 Jahren. Erfasst wurden 2467 Tassen an 555 Tagen. Das macht einen Durchschnitt von etwas mehr als 4 Tassen Kaffee pro Tag die gekocht wurden, Tendenz steigend, aber nicht nur von mir getrunken wurde. Hier die ganzen Messwerte.

Details zum Aufbau mit Pushover benachrichtigung siehe in diesen Artikel.


Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone

Zeitzonen

Manchmal hat man Zeitangaben z.B. aus IOT Geräten in der Form eines Strings „2018-12-10 12:14:15 UTC“. Nun müssen die Zeitangaben die in UTC verwendet werden in die lokale Zeitzone für Europa/Berlin umgewandelt werden. Das ist in der Regel eine Stunde plus. Wie geht das aber mit der Java 8 API?

„Java 8 Quickie: Zeitzonen Umwandlung mit ZonedDateTime: UTC nach Europas Zeitzone“ weiterlesen

Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln

Zeitzonen?

Wie können alle Zeitzonen mit Java ermittelt werden? Das geht mit der Methode getAvailableZoneIds der Klasse ZoneId. Die Methode ist thread save und der Set kann zukünftig noch erweitert werden. Bei mir ist er heute 600 Einträge (IDs) groß, wie dieser JUnit Test zeigt:

@Test
public void testGetAlleZeitzonen(){
List zeitZonen = new ArrayList<>(ZoneId.getAvailableZoneIds()); zeitZonen.stream().sorted().forEach(zone -> System.out.println(zone)); assertEquals(600, zeitZonen.size());
}

Das sind die Zeitzonen IDs:

„Java 8 Quickie: Alle Zeitzonen mit getAvailableZoneIds mit Java ermitteln“ weiterlesen

Jubiläum: 20 Jahre Homepage wenzlaff.de!

Heute vor 20 Jahren, am 1.12.1998 ging die Domain wenzlaff.de zum ersten mal ans Netz. Wie die Zeit vergeht.

Es war eine statische Webseite mit Freeware und Sprüche Datenbank mit Newsletter und einigen C++ und Java Programmen zum kostenlosen Download aus meiner Hand. Hier ein etwas unvollständiges Bildschirmfoto, mehr habe ich leider nicht mehr gefunden:

Aber auch schon lange vor dieser Zeit, hatte ich eine Homepage, die aber dann auf den Servern der UNI-Bremen kostenlos gehostet wurde. Da hatte ich als Informatiker einen Zugang mit Akustikkoppler mit 300 Baud und Lochkarten hatten wir da auch noch. Das war wenigstens etwas zum anfassen, batches mit Lochkarten schreiben, cool!

Und es gab keine Werbung im Internet.

Die schöne alte Zeit. Und in der Zwischenzeit gab es immer mal neue Technologie. Vom statischen html zum xhtml und JavaScript über einen eigenen Java html Generator mit Templates bis heute zu den Content-Management-System mit eigener Datenbank.

Bis heute konnte ich auch auf dieser Webseite immer auf Werbung verzichten. Juhu …

Wie soll es weiter gehen? Gibt es noch Themen nach über 1000 Beiträgen? Ideen habe ich noch genug, was fehlt ist die Zeit!

In diesem Sinne, vielen Dank an alle Leser und für das viele Feedback (die über 1000 Kommentare mit Kommentarfunktion habe ich ja abgeschaltet…DSGVO läßt grüßen) das auch nach wie vor erwünscht ist, aber eben über E-Mail 😉

Thanks Mindmap
Danke Mindmap

Keine Flugzeuge in Hannover (EDDV, HAJ)? Liegt das an der eingestellten CEBIT?

Mein Raspberry Pi empfängt seit ein paar Stunden keine Flugzeudaten mehr:

So ein Bild habe ich noch nie gesehen:

Was war da los? Ist der Pi abgeraucht in Haj (EDDV)?

Dann mal bei der Gelegenheit ein update und reboot.

Ah, welche Version habe ich noch am laufen?

cat /etc/os-release
PRETTY_NAME=“Raspbian GNU/Linux 8 (jessie)“
NAME=“Raspbian GNU/Linux“
VERSION_ID=“8″
VERSION=“8 (jessie)“
ID=raspbian
ID_LIKE=debian
HOME_URL=“http://www.raspbian.org/“
SUPPORT_URL=“http://www.raspbian.org/RaspbianForums“
BUG_REPORT_URL=“http://www.raspbian.org/RaspbianBugs“

Ah, das alte Jessie. Das date ich aber mal nicht ab. Nur ein „Keine Flugzeuge in Hannover (EDDV, HAJ)? Liegt das an der eingestellten CEBIT?“ weiterlesen

Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter

Wenn man mit Lambda über eine Collection iteriert, kann man auch gleich einen Filter verwenden. Was das mit der 20 zu tun hat, kommt am 1.12.2018 hier auf dem Blog 😉

Jetzt aber hier erst mal ein Beispiel zum Filter:

Und die nötige Mindmap BE Klasse: „Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions und Filter“ weiterlesen

Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions

Ab Java 8 kann mit der forEach Methode über einen Stream iteriert werden und das mit Lambdas.

Hier mal eine Gegenüberstellung als JUnit Test:

Und das Mindmap BE: „Java Quickie: Iterieren mit forEach über eine Collection (von Mindmaps) mit Lambda expressions“ weiterlesen

Java Quickie: Ist eine Domain erreichbar?

Mit der Methode isReachable aus der Klasse InetAddress kann seit Java 1.5 leicht überprüft werden (via Echo) ob ein Rechner bzw. Domain erreichbar ist oder „lebt“. Als Parameter wird die Timeout Zeit in Millisekunden übergeben, hier also 1000 für eine Sekunde:

Eine IOException gibt es bei Netzwerkfehler. Und eine IllegalArgumentException wenn ein negativer Wert für den Timeout angegeben wird, das macht man ja auch nicht 😉

Java Quickie: Liefere die IP vom Domain Namen

Wie kann die IP von einem Domain Namen ermittelt werden? Das geht mit einer Zeile InetAddress.getByName aus dem java.net.InetAddress Package schon seit JDK 1. Wenn die Domain unbekannt ist gibt es eine UnknownHostException wie diese JUnit Tests zeigen:

Wie kann auf einem Raspberry Pi angeschaut 觀看 werden, was in einem tar.gz Archive ist?

Wie kann angeschaut werden, was in einem Archive ist? Mit tar.


Z.b.

tar -tvf das-tar-archive.tar.gz

-t = listet den Inhalt eines Archivs auf
-v = verbose (ausführlich), listet verarbeitete Dateien ausführlich auf
-f = file, verwendet Archivdatei oder Geräte-ARCHIV
„Wie kann auf einem Raspberry Pi angeschaut 觀看 werden, was in einem tar.gz Archive ist?“ weiterlesen

Raspberry Pi FreeMarker Java and Maven Project goes to 去 يذهب إلى GibLab and not to GitHub

Bisher hatte ich alle öffentlichen Repositorys in GibHub liegen. GitHub ist nun aber an Microsoft verkauft worden. Wenn das kein Grund ist, das nächste Repo mal in GitLab anzulegen. GitLab hat auch den Vorteil, das private Repos kostenlos sind und …

Also das FreeMarker-Maven-Java-Projekt nach GitLab hochladen.

Was etwas suche und Anpassung benötigte, war der CI-Prozess. Aber wenn man die Syntax der .gitlab-ci.yml kennt, geht es mit zwei Zeilen.
Also einen Docker-Container mal mit Java 11 und Maven, wie folgt erstellt: „Raspberry Pi FreeMarker Java and Maven Project goes to 去 يذهب إلى GibLab and not to GitHub“ weiterlesen

Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Oder wie können alias angelegt werden?

Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Z.B. aus dem aktuellem Verzeichnis mit

Das kann man sich aber schwer merken. Deshalb legen wir uns ein bash Alias an mit:

Das wird aber nach einem restart vergessen. Deshalb tragen wir diese Zeile in der ~/.bash_aliases Datei ein. Wenn es sie noch nicht gibt, legen wir sie an mit diesem Inhalt:

Schon können wir auch nach einem Restart dudrei eingeben und erhalten die 3 größten Dateien im Verzeichnis, z.B. „Wie können auf einem Raspberry Pi die 3 größten Dateien in einem Verzeichnis rekursiv ausgeben werden? Oder wie können alias angelegt werden?“ weiterlesen

Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!

Es gibt unterschiedliche Template Engine, wie zum Beispiel Apache Velocity aber auch Apache Freemarker.

Bei der Verwendung von Templates, kann man sich einfach auf die Präsentation der Daten konzentrieren. Das läuft nach dem MVC (Model View Controller) Pattern. Die Templats können auch über diesen Online FreeMarker Template Tester ohne Aufwand getestet werden.

Heute mal ein kleines Beispiel, mit Freemarker. Wir wollen Verzeichnisse nach Mindmaps durchsuchen, und alle gefundenen Mindmaps in eine HTML-Seite ausgeben.

Fangen wir mit einem JUnit Test an: „Es muss ja nicht immer Apache Velocity sein, Apache FreeMarker geht auch!“ weiterlesen

Verzeichnise mit Java Monitor WatchService überwachen رصد, izlemek, 顯示器

Seit Java 7 gibt es den WatchService zum überwachen von Verzeichnissen auf System-Ebene. Der WatchService übernimmt direkt die Eventaufrufe des Betriebssystems und ist damit vergleichbar mit einem Low-Level-Event.

Damit kann man in ein paar Zeilen Code, zum Beispiel benachrichtigt werden, wenn eine neue Datei im Verzeichnis hinzugefügt wird.
Das wir mit der Konstanten StandardWatchEventKinds.ENTRY_CREATE angegeben. Es gib aber auch noch welche fürs löschen oder verändern. Die Konstanten können dann auch verknüpft werden.

Für die Verwendung muss das Package java.nio.file.* importiert werden. Hier der Beispiel Code, der das „input“ Verzeichnis des Users überwacht, der auch auf einem Raspberry Pi läuft 😉

Shell Script für den Raspberry Pi (Linux) zum Anlegen einer Datenbank und User für MySQL und Maria DB

Manchmal möchte man per Script (sh, bash) eine Datenbank mit User anlegen.

Das geht mit diesem Script:

Zu ersetzen ist der DATENBANK-NAME, USER-NAME, DOMAIN-NAME und das PASSWORT. Das Passwort ohne blank nach dem -p angeben. Dann klappt alles automatisch.

Rekursives löschen von Verzeichnissen auf Linux und dem Raspberry Pi mit find

Manchmal werden versteckte Systemdateien angelegt wie z.B. .AppleDouble oder auch .svn oder .git. Wenn die nun alle gelöscht werden sollen, geht das mit:

„Rekursives löschen von Verzeichnissen auf Linux und dem Raspberry Pi mit find“ weiterlesen

Raspberry Pi bricht beim signieren eines Git tags mit „gpg: signing failed: Unpassender IOCTL (I/O-Control) für das Gerät“ ab

Wollte einen Git Tag signieren auf einem Raspberry Pi W Zero. Nach der Key Erzeugung (gpg –gen-key) schlug das signieren des git tags mit -s:

mit folgender Fehlermeldung fehl:

gpg: signing failed: Unpassender IOCTL (I/O-Control) für das Gerät
gpg: signing failed ioctl

Ein erster Test mit:

schlug auch fehlt. Eine Kontrolle der Config (.gitconfig) mit: „Raspberry Pi bricht beim signieren eines Git tags mit „gpg: signing failed: Unpassender IOCTL (I/O-Control) für das Gerät“ ab“ weiterlesen

Kostenlose mp3 Dateien mit Inhalt 0,0 bis 100,0 für die Ansage in deutsch mit voicerss.com und id3v2.

In diesem Beitrag hatte ich beschrieben wie mp3 Dateien von 1-1000 erzeugt und kostenlos geladen werden können. Und hier hatte ich gezeigt, wie man offline mp3 und wav Dateien auf dem Raspberry Pi selbst erzeugen kann.

Hier nun alle mp3 Dateien mit dezimaler Ausgabe von 0,0 bis 100,0.

Hier wieder eine Testdatei zum anhören:

Download 15 MB als mp3-0-100-komma.zip.

„Kostenlose mp3 Dateien mit Inhalt 0,0 bis 100,0 für die Ansage in deutsch mit voicerss.com und id3v2.“ weiterlesen

Warum nicht einfach auf dem Raspberry Pi mp3 und wav Voice-Dateien mit pico2wave und lame selber erstellen? Oder 1000 wav und mp3 kostenlos downloaden?

In dem Beitrag vor ein paar Tagen, hatte ich gezeigt wie mit einem Online-Service mp3 Dateien erzeugt werden können. Dazu schrieb Fred (Vielen Danke für die Idee): „Warum nicht einfach auf dem Raspberrypi die mp3 oder wav Voice-Dateien selber erstellen?

Beispiel

Das geht sehr einfach und ohne Online-Service der limitiert oder kostenpflichtig ist. Und die Qualität ist auch ganz gut. Hier eine Beispielausgabe im wav Format:

Das kann dann mit lame in mp3 umgewandelt werden, hier die Beispiel Datei: „Warum nicht einfach auf dem Raspberry Pi mp3 und wav Voice-Dateien mit pico2wave und lame selber erstellen? Oder 1000 wav und mp3 kostenlos downloaden?“ weiterlesen

Kostenlose mp3 Dateien mit Inhalt 0 bis 1000 für die Ansage in deutsch mit voicerss.com und id3v2.

Für ein Homeautomatisations Projekt mit Raspberry Pi, brauchte ich mp3 Dateien für die Ansage. Damit alles lokal läuft, und ich nicht die mp3 Dateien per Web jedesmal erzeugen bzw. laden muss, habe ich mal eben 1000 mp3 Dateien erzeugt. Jede mit dem jeweiligen Inhalt bzw. Ansage in deutsch in Mono mit 44khz in 16bit mit der Zahl aus dem Dateinamen. Jede Datei ist nur so um die 25 Kb groß.

Also alle Zahlen von 0 – 1000. Das Ergebnis ist hier nun kostenlos zum Downloaden in einer gezippten Datei mp3-1-1000.zip (14,8 MB).

Hier eine Hörprobe der 777.mp3 Datei:

Mit diesen Dateien, kann nun leicht eine Ansage von Systemdaten bzw. Temperaturen oder Flugdaten erfolgen.

Wie habe ich die nun alle erzeugt?

Mit der folgenden JUnit Methode:

Hier die Konvert.java Klasse: „Kostenlose mp3 Dateien mit Inhalt 0 bis 1000 für die Ansage in deutsch mit voicerss.com und id3v2.“ weiterlesen

Text to MP3 per Java in 10 Minuten

Mit Java kann man leicht aus einem Text eine MP3 Datei erstellen. Dazu braucht man sich nur einmal auf voicerss.org anmelden und eine API-Key generieren.

Dann einfach das Java SKD von hier runter laden. Das Zip dann auspacken und die voicerss_tts_3.jar dem Classpath hinzufügen. Dann dieses Beispiel Programm ausführen und den API-Key eintragen:

Hier dann das Ergebnis direkt zum abspielen

in deutscher Sprache und Mono.
„Text to MP3 per Java in 10 Minuten“ weiterlesen

Node-RED für Raspberry Pi in neuer Version 0.19.2 veröffentlicht – δημοσιεύθηκε – опубликованный – 公表 – نشرت !

Vor vier Tagen ist die neue 0.19.2 Version von Node-Red für den Raspberry Pi veröffentlicht worden. Was es so neues gibt, kann man hier sehen. Die Liste ist lang!

Also mal eben ein „Node-RED für Raspberry Pi in neuer Version 0.19.2 veröffentlicht – δημοσιεύθηκε – опубликованный – 公表 – نشرت !“ weiterlesen

Jenkins Pipeline mit coolen BuildMonitor in Docker in unter 15 Minuten erstellen

In 15 Minuten kann die erste Jenkins Pipeline mit BuildMonitor Plugin erstellt werden, inklusive erster Installation von Jenkins mit default Plugins. Vorraussetzung ist ein laufender Docker. Der zweite Start geht dann aber noch viel schneller. Hier mal die BuildMonitor Ansicht für zwei Projekte:

Weitere coole Bilder und Beschreibung des BuildMonitors gibt es hier.

Oder etwas anders eingestellt, über das Zahnrad oben rechts: „Jenkins Pipeline mit coolen BuildMonitor in Docker in unter 15 Minuten erstellen“ weiterlesen

Debian Raspberry Pi Desktop in VirtualBox VM installieren

Wer keinen Raspberry Pi hat, kann sich das Image auch in der VM von VirtualBox installieren. So kann man auch alles ohne Pi austesten. Es gibt von der Raspberry Pi Foundation ein eigenes Image für PC und Mac dafür. Das Image basiert auf Debian Stretch Kernel Version: 4.9 Release Datum: 27.06.2018. Wie wird das nun installiert?

Zuerst das Image von der Download Seite laden. Das Laden der 2,4 GB dauer etwas.

Dann „Debian Raspberry Pi Desktop in VirtualBox VM installieren“ weiterlesen

Wie können VMs in VirtualBox verschoben werden?

Wenn VirtualBox normal installiert wird, kann es sein, das das Programm auf der SSD angelegt wird. Später will man aber, weil man kein Platz mehr auf der SSD hat die VMs auf die Festplatte verschieben. Wie können also VirtualBox VMs verschoben werden.

Das geht ganz einfach. Zuerst ändern wir den default Pfad, wo VMs abgelegt werden. So das neue VMs auch unter dem neuen Pfad angelegte werden. Im Menü: VirtualBox – Einstellungen im Tab. Allgemein unter „Voreingestellten Pfad für VMs

Dann VirtualBox beenden. „Wie können VMs in VirtualBox verschoben werden?“ weiterlesen

Wie kann Kali Linux in VirtualBox VM in 10 Minuten mit ova Image installiert und gestartet werden?

Wenn man Kali Linux in einer VirtualBox VM installieren will, geht das mit dem OVA Image sehr einfach und ist in 10 Minuten erledigt, wenn das Image schon auf der Festplatte geladen ist und VirtualBox installiert ist (siehe dazu einen vorhergehenden Blogeintrag auf dieser Seite).

Das OVA Format enthält alle benötigten Einstellungen. Eine OVA Datei ist der gezipte OVF Verzeichnis Inhalt mit Beschreibungs Dateien (.ovf), Manifest (.mf) Dateien und Virtual Maschinen State Dateien (*.vhd, *.vmdk).

Wenn die VirtualBox installiert ist, kann das Kali Image hier im OVF Format geladen werden. Dazu auf den zweiten Reiter „Kali Linux VirtualBox Images“ gehen und die Datei laden:

„Wie kann Kali Linux in VirtualBox VM in 10 Minuten mit ova Image installiert und gestartet werden?“ weiterlesen

In VM NodeRed, phpAdmin, Webmin, Apache … mit Script installieren

In dem Artikel „Wie kann Debian Linux in einer VirtualBox VM installiert werden?“ hatte ich beschrieben, wie Debian in einer VM installiert wird.

Hier nun eine Anleitung, die mit dem Script.sh von Pete Scargill NodeRed, phpAdmin usw. installiert. Also die Kurzfassung von Petes-Blog-Eintrag …
„In VM NodeRed, phpAdmin, Webmin, Apache … mit Script installieren“ weiterlesen

Wie kann Debian Linux in einer VirtualBox VM installiert werden?

Wer Debian in einer VM braucht, kann es wie folgt installieren. Eine Stunde sollt man aber schon an Zeit mitbringen.

Laden des ISO Image von Debian, für mich das AMD Mac Netinstal Image von debian.org und zwar dieses Image debian-mac-9.5.0-amd64-netinst.iso mit 294 MB. Oder welches Image auch immer für das Betriebssystem nötig ist.

Nach dem Starten der VirtualBox auf Neu klicken:

„Wie kann Debian Linux in einer VirtualBox VM installiert werden?“ weiterlesen

Wie kann der Oracle VM VirtualBox Manager auf Mac OS X (oder Windows) installiert werden?

Wie kann Oracle VM VirtualBox Manager installiert werden? Damit wir dann ein Ubuntu Linux VM oder Debian erstellen können.

Von der http://www.oracle.com Seite die passende Version laden, in diesem Fall für Mac OS X (Windows geht auch).

Dann auch gleich noch das Oracle VM VirtualBox Extension Pack weiter unten auf der Seite für alle Plattformen laden. „Wie kann der Oracle VM VirtualBox Manager auf Mac OS X (oder Windows) installiert werden?“ weiterlesen

In 5 Minungen: man to pdf auf dem Raspberry Pi mit ps2pdf aus dem Package ghostscript

Manchmal will man die manpages offline lesen. Da bietet sich das PDF Format an. Eine manpages als PDF kann leicht erzeugt werden mit:

„In 5 Minungen: man to pdf auf dem Raspberry Pi mit ps2pdf aus dem Package ghostscript“ weiterlesen

Nmap Portscanner für Netzwerkdiagnose ;-)

Nmap läuft auch auf dem Raspberry Pi.

Die Aktuelle nmap Version 7.7 braucht nicht aus den Sourcen compiliert werden, da es für den rPi fertige Packages in Version 7.4 gibt.

Also erst das System auf den aktuellen Stand bringen und nmap installieren:

Oder hier die man als PDF zum download und offline lesen.

Oder wer lieber eine GUI haben will, kann mal Zenmap installieren:

in dem Programm gibt es auch einen guten Profile-Editor, mit deutscher Beschreibung der Parameter:

Usability-Verbesserunge: Code Mining (Code CodeLens) mit Eclipse Photon

Wer Zusatzinformationen im Quelltext sehen will, kann das mit dem Code Minig (CodeLens) machen. Folgende Infos werden geboten:

Allgemein
Zeige references
Zeige implementations
Zeige method parameter Namen
Zeige method parameter types
Zeige end statement
JUnit
Zeige JUnit status
Zeige JUnit run
Zeige JUnit debug
Debugging
Zeige variable values inline im debugging
EGit
Zeige revision recent change
Zeige avatar
Zeige date ago
Zeige authors

Man kann sich also z.B. die Git-Information anzeigen lassen, wer wann eine Methode editiert hat. Für JUnit-Tests wird angezeigt, ob sie erfolgreich ausgeführt wurden. Zusätzlich lassen die JUnit-Methoden sich direkt starten bzw. debuggen

Das Code Mining mit Eclipse Photon muss noch über die Update-Site (Update Site http://oss.opensagres.fr/jdt-codemining/snapshot/) installiert werden:

Dann noch in den Einstellungen aktivieren:

Das sieht dann
„Usability-Verbesserunge: Code Mining (Code CodeLens) mit Eclipse Photon“ weiterlesen