Soeben wurde die finale Version des JDK 9 veröffentlicht. Endlich!

Ab jetzt gibt es das Java 9 JDK zum Downloaden mit Jigsaw, Erweiterung der Stream-API, Kommandozeilenanwendung JShell, Neue Collection Factory-Methoden, usw. … und Oracle plant auch kürzere Releasezyklen (6 Monate).

Also, Archive laden und installieren:

Quicktest:

Feier! Freude! Und das sogar im Urlaub

ESP-32S NodeMCU Development Board 2.4GHz WiFi+Bluetooth

Aus der Bucht eingetroffen, ESP32 ESP-32S NodeMCU Development Board 2.4GHz WiFi+Bluetooth Dual Mode.

Der ESP32 hat 2,4-GHz-WLAN und Bluetooth in Low Power 40-nm-Technologie.

Der Stromverbrauch ist mit 56 mA sehr gering. Die Leistungsaufnahme mit dem Blink Testprogramm liegt bei 283 mW. Die Vorderansicht mit der Antenne oben und dem USB Anschluss unten: „ESP-32S NodeMCU Development Board 2.4GHz WiFi+Bluetooth“ weiterlesen

JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen

Manchmal möchte man die lokalen JUnit 5 Testergebnisse für später aufheben oder als Doku verwenden oder sichern. Man kann die Ergebnisse als XML exportieren und auch später wieder importieren. So kann man sich dann Fehler oder Laufzeiten mal wieder anschauen.

Die Import und Export Menüs, erscheinen aber nur, wenn schon mal ein JUnit Test gelaufen ist, dann an dieser Position:


„JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen“ weiterlesen

Wie wird JUnit 5 (RC3 – Beta) Eclipse Oxygen 4.7.0 Support (Plug-In) installiert?

Heute wurde das JUnit 5 (RC3 – Beta) Plugin für Eclipse Oxygen 4.7.0 veröffentlicht (upgedated). JUnit 5 RC3 wurde schon am 23.8.2017 veröffentlicht. Der JUnit 5 Release Kandidat soll ja noch im 3. Quatal 2017 erscheinen, also im nächsten Monat 🙂

Wie wird das nun installiert?

Das JUnit 5 Plugin gibt es hier.

Einfach diesen Install Button per Drag and Drop in den Eclipse Workspace ziehen:

oder wie in der installations Anleitung beschrieben.

Es öffnet sich dieser Dialog: „Wie wird JUnit 5 (RC3 – Beta) Eclipse Oxygen 4.7.0 Support (Plug-In) installiert?“ weiterlesen

Groovy Programm zum abfragen pytanie der Maven Central Repository API vom Raspberry Pi (Mac, Linux, Windows) aus

Habe mal ein kleines Groovy Programm zum abfragen der Maven Central Repository API vom Raspberry Pi aus erstellt. Dann braucht man nicht extra die Web-GUI von Maven Central.

Einfach das MavenApi.groovy Programm in ein Verzeichnis des Raspberry Pi kopieren. Was Groovy mit ein paar Zeilen macht, ist schon cool. Java braucht wohl ein paar Zeilen mehr, oder? Auch an die fehlenden Semikolons kann man sich gewöhnen.

Und in der Konsole ausführen. Zum Beispiel: „Groovy Programm zum abfragen pytanie der Maven Central Repository API vom Raspberry Pi (Mac, Linux, Windows) aus“ weiterlesen

Wie kann ein Raspberry Pi Debian Image via Docker auf dem Mac OS X und unter Eclipse Oxygen laufen?

Mit Docker ist es ganz einfach möglich, auf Mac OS X (oder auch Windows und Linux) ein Raspberry Pi oder andere Betriebssysteme laufen zu lassen. Dann braucht man keinen echten Raspberry Pi mehr 😉

Hier mal das Beispiel unter Mac OS X wie Docker installiert und Ubuntu, Alpine Linux und zu guter letzt ein Raspbian Debian Linux für Raspberry Pi installiert wird unter Eclipse Oxygen. Die 4.7 Version von Eclipse hat eine coole Docker Unterstüzung. Also allen Grund, auf die aktuelle Eclipse Version zu wechseln.

Docker auf dem Mac OS X ist schnell eingerichtet. Wir nehmen den Stable channel von docker.com, hier der direkt link. Das docker.dmg nach dem Download doppel klicken und in den Application Ordner ziehen.

Dann im Applicatons Ordner die Docker.app starten. Oben in der Menüleiste erscheint dann das Docker Icon für die Einstellungen. „Wie kann ein Raspberry Pi Debian Image via Docker auf dem Mac OS X und unter Eclipse Oxygen laufen?“ weiterlesen

Jenkins Pipeline optimieren mit parallele Ausführung auf dem Raspberry Pi

In diesem Blog Beitrag hatte ich gezeigt, wie man auf einem Raspberry Pi einen aktuellen Jenkins installieren kann.

Nun möchte ich mal zeigen, wie Aufgabe parallelisiert werden können.

Parallelisieren von Jenkins Stages

Ein Jenkins Jobs der folgendes macht, soll mal als Beispiel dienen, um parallele Pipeline zu demonstrieren.

Ein einfacher Job der

  • Flugdaten aus Hannover abfragt
  • mein Kaffee verbrauch ermittelt
  • Temperatur und Luftfeuchte in HAJ abfragt
  • Umweltdaten des Lufthygienisches Überwachungssystem Niedersachsen abfragt
  • meine drei Server per Ping 10 mal checkt
  • und das Ergebnis aller Abfragen per E-Mail versendet

Dazu das kleine Groovy Script, das die öffentlichen Daten abfragt, in den Job eintragen: „Jenkins Pipeline optimieren mit parallele Ausführung auf dem Raspberry Pi“ weiterlesen

Cooler CSV Reader in JUnit 5

Will man Testfälle aus einer CSV-Datei verwenden, geht das mit JUnit 5 Super einfach. Es gibt da eine neue Annotation @CsvFileSource der nur der Dateiname der CSV-Datei übergeben werden muss, und schon wird für jede Zeile der Test ausgeführt. Die Datei muss im Classpath liegen und mit Komma (,) getrennt sein. Sie darf keine Überschrift haben.

JUnit 5

Als Beispiel soll mal die flug-data.csv dienen, die ua. die Summe aller erfassten Flugzeuge enthält.

Hier ein Auszug:

Wir wollen jetzt jede Zeile überprüfen, ob die Summe über 3000 Flugzeuge liegt und ob die UID vorhanden ist. Auch wollen wir die Testergebnisse um eine laufende Nr. ergänzen. „Cooler CSV Reader in JUnit 5“ weiterlesen

Quicktest: JDeps (Java Dependency Analysis Tool)

Mit Java 8 wird im bin Verzeichnis auch das JDeps Tool ausgeliefert. Dieses Tool ermöglicht eine statische Kodeanalyse von der Kommandozeile. Es kann die statischen Abhängigkeiten von Klassen und Jars aufzeigen und auch eine Abhängigkeitsgraphen generieren. So ist man dann für Java 9 vorbereitet.

Das wollen wir einmal ausprobieren. Dazu hole ich mir für mein Testprojekt erst einmal alle Jars und untersuche dann das JUnit 4.12.

Also in der pom.xml folgendes Plugin ergänze und ein „mvn package“ ausführen: „Quicktest: JDeps (Java Dependency Analysis Tool)“ weiterlesen

JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!

In JUnit 5 gibt es nun die Möglichkeit, Testmethoden mit Parametern ausszuführen. Anstatt der @Test Annnotation verwendet man die @ParameterizedTest. Nun braucht man noch eine Datenquelle mit @ValueSource.

Diese Klassen liegen in: „JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!“ weiterlesen

Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)

Wollte mal mein REST Testprogramm auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 veröffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend geändert. Und evl. will man schon mal die Neuen Features testen. Es gilt nicht: „Wer testet ist Feige ;-)“

Was ist da so nötig?

JUnit 5 braucht zur Laufzeit Java 8.

Versionen setzen

Die neuen Abhängigkeiten hinzu: „Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)“ weiterlesen

חזרות Wiederholungen mit JUnit 5: @RepeatedTest

Manchmal will man eine Testmethode öfter ausführen. Das ist ja leicht mit einer Schleife möglich.

JUnit 5 bietet nun aber eine schöne Annotation an @RepeatedTest. Mit der kann leicht die Anzahl der Wiederholungen angegeben werden. Über die Methodenparameter TestInfo und RepetitionInfo kann zur Laufzeit auf die Klassennamen, Methodennamen und aktuellen runden Wert zugegriffen werden. Hier mal ein Beispiel:


„חזרות Wiederholungen mit JUnit 5: @RepeatedTest“ weiterlesen

Standalone RESTful Server und Client mit dem Restlet Framework

Manchmal braucht man in Java einen REST Server oder Client oder beides. Das ist mit dem Restlet Framework schnell implementiert.

Es kann entweder das ganze Beispielprojekt von Github geladen werden oder diese Schritte ausgeführt werden:

Zuerst richten wir in Eclipse ein neues Maven Projekt ein und fügen der pom.xml diese Einträge hinzu: „Standalone RESTful Server und Client mit dem Restlet Framework“ weiterlesen

FreeMarker Templates: ftlh Editor der JBoss Tools 4.5.0.AM 1 läuft auch in Eclipse Oxygen 4.7.0!

Wer FreeMarker Templates bearbeiten will, kann dafür den ftlh Editor der JBoss Tools 4.5.0.AM 1 verwenden. Der läuft auch in Eclipse Oxygen 4.7.0!

Installieren über den Marketplace:

Eine ftlh Datei im Editor mit Syntax highlight, syntax error marker, code completion for macro names and bean property names ua.: „FreeMarker Templates: ftlh Editor der JBoss Tools 4.5.0.AM 1 läuft auch in Eclipse Oxygen 4.7.0!“ weiterlesen

Java 9 (jdk-9+176) auf Mac OS X in 10 Minuten installieren

Es gibt zwar noch keinen endgültigen Releasekandidaten, das wurde um ein paar Monate verschoben. Aber die aktuelle Version (jdk-9+176) geht ja auch schon mal für Testzwecke. Die Installation ist wie hier beschrieben schnell erledigt.

1. Laden der Java 9 Version von http://jdk.java.net/9/. Dazu muss die Lizenz akzeptiert werden und das dmg Archive geladen werden, wie hier gezeigt: „Java 9 (jdk-9+176) auf Mac OS X in 10 Minuten installieren“ weiterlesen

Arduino Nano Programm und Video: Anzeige der 100 am meisten verwendeten Wörter in Englisch

Dies Programm zeigt die 100 am meisten verwendeten englischen Wörte an. Diese 100 Wörter machen die Hälfte alles geschriebenen in Englisch aus. Allein die ersten 25 Wörter aus der Liste, sind schon ein Drittel alles gedruckten in englisch.

Hier C++ Programm mit der Wortliste und einen Fortschrittsbalken, unter Verwendung der U8gLib. „Arduino Nano Programm und Video: Anzeige der 100 am meisten verwendeten Wörter in Englisch“ weiterlesen

Eclipse IDE für die Arduino C++ Entwicklung

Vor ein paar Tagen hatte ich hier beschrieben, wie ein Arduino mit der Arduino IDE geflasht wird. Als Java-Entwickler will man am Besten alles in Eclipse machen. Also auch die Arduino-Programmierung. Das geht auch mit dem Eclipse C++ IDE for Arduino 2.0. Für den Anfang ist wohl die Arduino IDE etwas einfacher zu bedienen. Aber mit dieser Anleitung geht es auch in ca. 1 Stunden. Also los …

Über den Eclipse Marketplace installieren:

Das dauert etwas …

Dann ein Arduino Projekt anlegen: „Eclipse IDE für die Arduino C++ Entwicklung“ weiterlesen

Arduino Nano mit OLED Display „Don’t give up!“ Ansteuerung

Hatte noch ein OLED Display liegen. Das wollte ich mal an einen Arduino anschließen. An einem Raspberry Pi geht auch. Da es nur 4 Drähte sind, ist es mit der u8glib schnell gemacht.

Einfach Plus (VDD) an Plus (VDD, Pin4) und Minus (GND) an Minus (GND, Pin2) und SDA an A4, Pin 8 und SCK an A5, Pin 7.

Achtung nicht Plus mit Minus vertauschen. Das hatte ich für ein paar Minuten gemacht, und hatte mich gewundert, warum das Display kochend heiß wird und keinen Text anzeigt. Es hat es aber überstanden, ist also sehr robust!

Hier die Ausgabe eines einfachen „Dont give up!“ Text der nach 2 Sekunden angezeigt wird, nachdem OK, Start… beendet wurde:

Dont give up!

Es geht aber auch einen Menge mehr, wie diese Gallerie zeigt.
„Arduino Nano mit OLED Display „Don’t give up!“ Ansteuerung“ weiterlesen

Feinstaub Tacho mit History 歷史 aus Hannover

In einem Block-Beitrag hatte ich schon mal von der Feinstaubmessung berichtet. Es läuft auch gerade eine Studie an der MHH von Professor Axel Have­rich die zusammenhänge mit Herzinfarkte untersucht. Ich bin auf das Ergebnis gespannt!

Hier nun ein Feinstaub-Tacho mit den Echtzeitwerten aus Hannover in µG/m3 der jede Stunde automatisch aktualisiert wird (PM10).

„Feinstaub Tacho mit History 歷史 aus Hannover“ weiterlesen

Benzin Preise per NodeRED ermitteln und in Echtzeit grafisch darstellen mit dem Raspberry Pi

Tankstellen melden ihre Spritpreise ins Internet. Von dort können sie leicht abgerufen werden. Zum Beispiel die Benzinpreise von Langenhagen. Die Seite hat auch eine öffentliche kostenlose API. Dort kann man nach Anmeldung bis zu 3 Tankstellen kostenlos abfragen.

Ok, dann mal los, hier die Architektur:

So kann man sich dann vor dem tanken informieren und den billigen Sprit tanken: „Benzin Preise per NodeRED ermitteln und in Echtzeit grafisch darstellen mit dem Raspberry Pi“ weiterlesen

In welcher Höhe fliegen Flugzeuge?

Mich hat mal die Frage interessiert, in welcher Höhe die meisten Flugzeuge aktuell so fliegen.

Also habe ich mal ein kleines Java Programm geschrieben, welches in Echtzeit die Daten von The OpenSky Network abfragen kann. Es werden also mal alle Flugzeuge die Transponser haben und von The OpenSky Network erfasst sind berücksichtigt.

Hier das Ergebnis von 3048 Flugzeugen:

Das ist die vom Programm ermittelte Datenbasis: „In welcher Höhe fliegen Flugzeuge?“ weiterlesen

OpenSky Java API to KML für Google Earth – Teil 1

OpenSky bietet eine Java API an um auf Flugdaten zugreifen zu können. Da die live API nun wieder online ist, schreiben wir einen kleine JUnit Test und formen mal alle Transponderdaten aller 4754 Flugzeuge in eine KML Datei, um die Daten auf Google Earth anzuzeigen. Hier erst einmal das Ergebnis in Google Earth aus 5569 Km Höhe gesehen:

Wer die die Daten testweise laden will, „OpenSky Java API to KML für Google Earth – Teil 1“ weiterlesen

Feinstaub (Particulate Matter, Pył ) Messung mit dem Raspberry Pi aus einer JSON Datei und NodeRED – Teil 1

Man kann mit dem Raspberry Pi auch Feinstaub messen, wenn man einen entsprechenden Sensor hat.

In diesem 1. Teil, beschreibe ich, wie man Messwerte aus öffentlicher Quelle, auch um später Vergleichswerte zu haben auswertet. Die Niedersächsische Gewerbeaufsicht misst Umweltdaten und stellt sie zur freien Verfügung bereit. Unter LÜN gibt es z.B. das Ergebniss für Hannover. Da gibt es auch eine kostenlose App für diese Daten für alle Handys.

Hier nun die Architektur:

Die Daten für zur Zeit 27 Messstationen werden im JSON-Format (und auch XML) im Internet frei veröffentlicht unter der URL: http://www.luen-ni.de/JSON.txt und enthalten ua. folgende Daten:

„Feinstaub (Particulate Matter, Pył ) Messung mit dem Raspberry Pi aus einer JSON Datei und NodeRED – Teil 1“ weiterlesen

Überwachung: Automatischer Ping an Server mit NodeRED auf Raspberry Pi

Mal etwas zur Entspannung. Manchmal will man wissen ob ein Server erreichbar ist. Dafür gibt es das Kommandozeilen Programm ping. Wenn man diesen ping z.B. alle 5 Minuten ausführt hat man eine leicht Überwachung ob der Server noch erreichbar ist. Gesagt getan. Einen kleinen flow der alle 5 Minuten einen Ping ausführt und bei Veränderung eine Pushover Nachricht auf das Handy sendet.

So kann der Flow zusammen geklickt werden:

Im hellgelben „adv ping Node“, kann die IP-Adresse angegeben werden. Im „function Node“ wird der Ping ausgewertet. „Überwachung: Automatischer Ping an Server mit NodeRED auf Raspberry Pi“ weiterlesen

Datei mit Sonderzeichen in Dateinamen läßt sich nicht per FTP löschen

Manchmal lädt man mehrere Dateien hoch, und es ist einem nicht immer bewußt, das auch im 21. Jahrhundert Umlaute zu Problemen führen können.

Wer z.B. eine Datei mit Namen „Testdatei für Umlauttest.txt“ mit einem FTP Client wie z.B. File Zilla auf einen Server hochlädt, der keine Serverunterstüzung für Nicht-ASCII-Zeichen hat, erhält nach dem upload den folgenden Dateiname:

Da der upload klappt und man keine Fehlermeldung erhält, merkt man es nicht immer.

Dann passen später die Links auf diese Datei uä. nicht, oder man verwendet den „richtigen“ Dateinamen.

Ein weiteres Problem. Man kann diese Datei mit dem FTP Client nicht mehr löschen. Wenn man es versucht, kommt die Fehlermeldung: „Datei mit Sonderzeichen in Dateinamen läßt sich nicht per FTP löschen“ weiterlesen

Suche alle Dateien rekursive mit Umlaute im Dateiname auf Win, Mac, Linux und Raspberry Pi und liefere die Anzahl

Manchmal will man oder muss man alle Dateien, die einen Umlaut im Dateinamen haben ermitteln. Mir ging es so, als in der Dropbox Dateien mit Umlauten bei einem Programm bei der Synchronisation Probleme machte.

Dann sollte das auch noch auf Mac OS X, Windows, Linux und auf einen Raspberry Pi mit Debian laufen. Also mal ein kleines Java Programm geschrieben, das alle Dateien mit Umlaute (äöüÖÄÜ) im Dateinamen und auch die Anzahl ausgibt.

Das Programm läuft unter Java, da es ab Version 1.7 eine neue Klasse SimpleFileVisitor gibt, von der man leicht erben kann habe ich die mal verwendet. Man kann aber auch selbst das Interface FileVisitor implementieren.

Einfach die Datei laden und das Zip-Archive entpacken. „Suche alle Dateien rekursive mit Umlaute im Dateiname auf Win, Mac, Linux und Raspberry Pi und liefere die Anzahl“ weiterlesen

Gurken-Test mit Cucumber

Mit Cucumber können Testfälle schön in Worte beschrieben werden. Hier mal ein schneller quick Einstieg.

Eine Testfall Beschreibung kann in Worten mit der Gherkin Syntax geschehen, z.B diese kalender.feature:

In Eclipse sind die JUnit-Test auch schön lesbar, z.B.:

Für Eclipse gibt es ein Natural 0.7.6 Plug-In für die *.feature Dateien. Das kann leicht über den Eclipse Marketplace installiert werden:

Einfach alles installieren:

Die Testfall implementierung kann z.B. so aussehen. Dieser Testfall gibt nur einen Kalender auf der Konsole aus, deshalb gibt es nur das Generieren:

Eine Testklasse zum starten des Testfalls:

Folgende Abhängigkeiten werden in der pom.xml benötigt:

Das ganze Testprojekt kann auf Github geladen werden.

Eine weitergehende Anleitung auf deutsch gibt es hier.

Raspberry Pi Zero W: Wie kann ein Archive gelanden und der Inhalt angezeigt und dann entpackt werden?

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:

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

Programmierbarer USB Lüfter nicht nur für den Raspberry Pi

Habe vor ein paar Tagen aus China einen programmierbaren USB-Lüfter mit einem Programm für Windows auf einer mini CD und USB-Kabel erhalten. Musste ihn aber mal wieder beim Zoll direkt abholen, da das Teil für 0 Euro deklariert wurde. Da wollte der Zoll dann doch einmal reinschauen und die Rechnung sehen.

Denn Lüfter wollte ich mal an einem Raspberry Pi anklemmen, es geht aber auch jeder andere USB-Port wie Laptops, Netzteile oder Accus.

Hier meine erstes Demo-Video (2 Min) um zu zeigen was für Effekte man so programmieren kann. Im halbdunkeln, damit man es besser erkennen kann:

Hier ein paar „Programmierbarer USB Lüfter nicht nur für den Raspberry Pi“ weiterlesen

Video DIY USB Passwort Generator mit Attiny 85

Vor ein paar Tagen hatte ich schon mal den ATTINY 85 vorgestellt.


Das ist ein cooles Teil mit USB und das für 1 Euro. Er emuliert eine Tastatur (HID).

Also mal ein weiteres Programm, für folgendes Problem. Wer lange und komplizierte Passwörter verwendet, hat mit unter keine Lust, sie immer wieder einzugeben. Das ist auch fehleranfällig. Oder man möchte jemand anderes an seinen Rechner lassen, und ihn nicht das Passwort geben. Also gibt man den Generator weiter.

Wir erstellen also ein Programm, das das Passwort automatisch an den Rechner sendet. Man muss dann natürlich auf das Teil aufpassen, das es nicht in falsche Hände kommt. Wir senden nur einmal, das gespeicherte Passwort. Hier mal ein 45 Sekunden Demo Video:

Hier das C-Programm, es ist ein sehr einfaches Programm mit ein paar Zeilen: „Video DIY USB Passwort Generator mit Attiny 85“ weiterlesen

Mit dem Raspberry Pi den Java Class File Disassembler (javap) aufrufen

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

getestet werden. Wenn dort eine Versionsangabe geliefert wird, ist alles ok.

Dann legen wir erst mal ein Testverzeichnis an und wechsel in das Verzeichnis:

Dann holen wir uns in das Verzeichnis eine unbekannte Flugzeug.class Datei (der Quellcode ist hier zu finden):

Diese Datei wollen wir nun disassemblieren, mit

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

Pushover Nachricht mit dem Raspberry Pi versenden wenn ein Kaffee (قهوة) gekocht wurde via OpenHab

Mein heutiges Raspberry Pi Projekt soll einfach eine Pushover Nachricht auf alle Handys und iPads versenden, wenn ein Kaffee gekocht wurde. So kann ich immer sehen, wieviele Kaffee ich so am Tag getrunken habe und wann.

Hier der Aufbau in der Küche.

Es wird ein Homematik „Pushover Nachricht mit dem Raspberry Pi versenden wenn ein Kaffee (قهوة) gekocht wurde via OpenHab“ weiterlesen

Für 1,99 Euro inkl. Versand aus China eingetroffen: DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar mit LED Voltmeter

Cooler Step-Down Regle aus China eingetroffen. Was man so für 1,99 Euro inkl. Versand aus der Bucht bekommt! Hier mal das erste Foto:

fullsizerender

Hier die angegebenen Daten:
1. Input Voltage range:4~40 VDC
2. Output voltage range:1.25-37 VDC adjustable
3. Output current:2A
4. Voltmeter range: 0 to 40V, error ±0.1V
5. Input reverse polarity protection
6. Built in output short protection function
7. Built in thermal shutdown function
8. L x W x H = 6.1*3.4*12 cm
9. Weight: 22g
10. LEDdigital voltmeter tube, the accuracy is adjustable function, can be aimed at your multimeteradjustable accurate.
11. Press the rightkey to let the display show the input or output voltage. when the right “OUT” led light, it shows output, the left “IN” led show input.

Ok, dann mal der erste Test. Mal als Eingangsspannung eine 9 Volt Batterie angeklempt, die Eingangsspannung kann auch angezeigt werden:

fullsizerender-2

Wahlweise wird auch die Ausgangsspannung angezeigt. Die kann über das Poti verändert werden. Cool!

fullsizerender-1

Dann werde ich mal einen Raspberry Pi anschließen oder was anderes …

Auf der Platine ist ein LM2596 verbaut, das Datenblatt von TI gibt es hier.

Hier noch die Anleitung und ein Hinweis wenn es nicht „geht“: „Für 1,99 Euro inkl. Versand aus China eingetroffen: DC-DC Spannungsregler LM2596 Step-Down Regler einstellbar mit LED Voltmeter“ weiterlesen

Java Wrapper für die Dump1090 Schnittstelle

Java Wrapper für die Dump1090 Schnittstelle.

Dieses Projekt ist eine Javaschnittstelle für den Zugriff auf die Daten von Dump1090 per Java Objekte.

Mit dieser Javaschnittstelle können einfach Pushover Nachrichten an jedes Handy bzw. Tablet versendet werden wenn ein Flugzeug startet oder landet. Da wir in der nähe vom Flughafen Hannover (EDDV, HAJ) leben, sehen wir gerne Flugzeuge starten und landen. Die beiden Start.- und Landebahnen liegen in Ost-West Richtung. Wenn wir aus dem Küchenfenster schauen oder wenn wir auf der Terrasse sitzen, sehen wir alle Flugzeuge die von Osten aus ankommen bzw. in die Richtung wegfliegen. Nun möchte ich gerne eine Nachricht mit Tonsignal mit Höhe, Geschwindigkeit, Flugnummer usw. auf mein Handy erhalten, wenn ein Flugzeug aus dem Osten zum landen ankommt bzw. in Richtung Osten starte. Alle anderen Flugzeuge die in die andere Richtung starten bzw. landen sollen nicht berücksichtigt werden. Auch nicht Flugzeuge die nur Hannover überfliegen.

klassendiagramm
Auch soll eine Pushover versendet werden wenn ein Luftnotfall (med. Notfall, Entführung usw. ) per Transponder gemeldet wird.
„Java Wrapper für die Dump1090 Schnittstelle“ weiterlesen

Wie können Artifacte nach Maven Central (Nexus) mit einem Mac hochgeladen werden?

Wie können Artifacte wie Jars usw. in das Nexus Maven Central Repository mit einem Mac (Windows analog) hochgeladen werden?

Das geht in 4 Schritten, die hier am Beispiel von de.wenzlaff.dump1090 beschrieben werden.

Einen Atlassian Account und Jira Ticket anlegen

Zuerste benötigen wir einen Accout bei Atlassian den wir hier beantragen können. Evl. haben wir ja auch schon einen.

Dann müssen wir ein Jira Ticket mit „Create Issue“ erstellen, um eine eindeutige GroupId (z.B. de.wenzlaff) die es noch nicht gibt, zu erhalten, hier ein Beispiel für den Jira Ticket Antrag:

Ticket erstellen

Wenn der Mitarbeiter das freigeschaltet hat (das kann etwas dauern), haben wir eine GroupId reserviert. „Wie können Artifacte nach Maven Central (Nexus) mit einem Mac hochgeladen werden?“ weiterlesen

Auf der Suche, warum der Cubieboard mit Debian Jessie nach ein paar Tagen abstürzt. Teil 3: Workaround tägliches rebooten

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:

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

Java: Parsen von HTML-Dateien mit JSoup 1.9.2 in zwei Java Zeilen

Will man schnell und einfach HTML-Dateien parsen bzw. auswerten, geht das mit der schönen JSoup-Api. Hier gibt es eine Mindmap für den schnellen Überblick.

Es sind dann nur zwei Zeilen nötig um z.B. den Titel einer Webseite einzulesen:

Hier mal ein Zitat aus der Orginal Api-Beschreibung:

Das sind doch Gründe!

Es braucht in der pom.xml des Maven Projekte nur diese eine Abhängigkeit angegeben zu werden: „Java: Parsen von HTML-Dateien mit JSoup 1.9.2 in zwei Java Zeilen“ weiterlesen