Node-Red organisieren mit link-in bzw. link-out am Beispiel: Covid-19 Dashboard

Wie können die Flows in NodeRED organisiert werden? Damit ein Flow nicht überladen wird und auch um die GUI von der Logik zu trennen (MVC, Model View Controller Konzept) können die link-in bzw. link-out Nodes verwendet werden. Das sind diese:

Die link-out Nodes werden in den Quell Flow integriert, z.B.

Und in den neuen Ziel Flow die link-in:

Schon haben wir ein Dashboard:


„Node-Red organisieren mit link-in bzw. link-out am Beispiel: Covid-19 Dashboard“ weiterlesen

Raspberry Pi „Code Life Ventilator Challenge“ – Wir bauen ein Beatmungsgerät!

Würde gern ein Beatmungsgerät mit einem Raspberry Pi bauen und an der Challenge teilnehmen. Habe schon mal ein erstes BPMN Modell entworfen. Das kann frei für jedermann verwendet werden.

Der Raspberry Pi ist sicherlich dafür geeignet. Die Steuersoftware würde ich gern schreiben, was fehlt ist die Zeit. Und der Einsendeschluss ist schon am Ende des Monats.

Man könnte leicht ein NodeRed Dashboard für Ein.- und Ausgabe verwenden. Die eigentliche Herausforderung ist da wohl eher die Technik. Woher kommt einfach der Flow um das Volumen mit dem entsprechenden Druck aufzubauen? Habe bisher keine Idee. Vorschläge willkommen!

Aber auch ein Arduino kann dafür wohl verwendet werden. Hier hatte ich schon mal eine Steuerung für 230 V mit Video dafür erstellt. Das Programm dort kann auch frei für die Challange verwendet werden. „Raspberry Pi „Code Life Ventilator Challenge“ – Wir bauen ein Beatmungsgerät!“ weiterlesen

Aktuell weltweit nur 2336 Flugzeuge erfasst. Liegt das an covid-19?

Hier die aktuelle Auswertung mit Eclipse 2020-03:

Code: „Aktuell weltweit nur 2336 Flugzeuge erfasst. Liegt das an covid-19?“ weiterlesen

Wie können live Covid-19 Daten per Node-RED an Twitter und Pushover gesendet werden?


Wie können die Covid-19 Daten der Johns Hopkins CSSE über die JSON-Api https://covid19.mathdro.id/api in einem Node-RED Flow integriert werden, so das automatisch eine Pushover Nachricht an das Handy versendet wird. Auch ein autom. Tweet an Twitter ist schnell gemacht. Auf einem Raspberry Pi läuft dafür Node-RED.

Hier der Node-RED Flow, der dafür nötig ist:

Und hier die Debug-Nachrich die ausgegeben wird:
„Wie können live Covid-19 Daten per Node-RED an Twitter und Pushover gesendet werden?“ weiterlesen

Wie können mit Java automatisch Webseiten mit Jsoup am Beispiel Corona abgefragt werden?

Das Robert Koch Institut (RKI) liefert für Deutschland aktuelle Corona-Fall-Zahlen auf dieser Webseite:

https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Fallzahlen.html

in einer schönen Tabelle die wir mit Jsoup abfragen wollen.

Robert Koch Institut - Corona in Deutschland

Wir schauen uns erst einmal die Stuktur der Seite an. D.h. wir markieren z.B. Niedersachsen und öffnen das rechte Kontexmenü und klicken auf „Element untersuchen“. Nun wird unten der HTML-Quelltext angezeigt. Wir sehen das die Tabelle, an der ersten stelle steht, und mit den tr und td Tags erstellt ist. Das müssen wir für die Analyse wissen.

Hier nun der kommentierte Beispiel-Code: „Wie können mit Java automatisch Webseiten mit Jsoup am Beispiel Corona abgefragt werden?“ weiterlesen

Java Einzeiler: JSONvon URL einlesen mit org.apache.commons.io am Beispiel: Corona – COVID-19


Hatte hier schon mal über die JSON Lib

berichtet. Wie kann damit nun in einer Zeile eine URL abgefragt werden?

Mit Hilfe der org.apache.commons.io geht das ganz einfach. Also erst einmal die Lib in die pom.xml einbinden.

Was wollen wir nun beispielsweise abfragen? Alle reden von Corona. Also lesen wir die drei aktuellen Werte der Johns Hopkins University ein. Die werden über diese Webseite aktuell dargestellt. Hier mal ein Foto:

tinyurl.com/virus-corona
Corona Status

Die Daten werden auch über eine JSON-Rest API unter https://covid19.mathdro.id/api bereitgestellt. Hier mal das Ergebniss einer Abfrage: „Java Einzeiler: JSONvon URL einlesen mit org.apache.commons.io am Beispiel: Corona – COVID-19“ weiterlesen

Java Einzeiler des Tages: Lesen einer Webseite mit jsoup den Open source HTML Parser

Mit JSoup kann ganz einfach eine Webseite gelesen werden.

Dazu einfach in der pom.xml:

ergänzen und folgenden Einzeiler:

System.out.println(„Webseite: “ + Jsoup.connect(„http://wenzlaff.info“).get().html());

Das Ergebnis ist dann die HTML Seite. Mit JSoup können auch einfach Filter und Selektoren erstellt werden. Es unterstüzt leider kein JavaScript.
Dafür kann dann HtmlUnit oder Selenium verwendet werden.

Wie kann die Anzahl verfügbarer CPU-Prozessoren (Kerne) der Java virtuelle Maschine (VM) per Java abgefragt werden?

Wie kann die Anzahl verfügbarer CPU-Prozessoren (Kerne) der Java virtuelle Maschine (VM) per Java abgefragt werden? Das geht mit einem Java-Einzeiler:

int availableProcessors = Runtime.getRuntime().availableProcessors();

Die unterschiedlichen Raspberry Pi Modelle haben einen Kern: „Wie kann die Anzahl verfügbarer CPU-Prozessoren (Kerne) der Java virtuelle Maschine (VM) per Java abgefragt werden?“ weiterlesen

Beispiel Verwendung des Maven Plugin: de.wenzlaff.command.maven.plugin

Vor einiger Zeit hatte ich hier mal beschrieben, wie ein einfaches Maven-Plugin erstellt werden kann, dass alle Kommandozeilen Parameter im Log ausgibt z.B. ls, ps, ls -la. So können im Build-Prozess Verzeichnisse oder Prozesse überwacht werden.

Wer aber nur das Kommandozeilen Plugin nutzen will, kann dieses mit ein paar Zeilen in der pom.xml tun, da das Plugin auf Maven-Central frei verfügbar ist.

Squirrel (Sciurus vulgaris) in der 3.Etage am 15.01.2020

Einfach die pom.xml um folgende Zeilen ergänzen: „Beispiel Verwendung des Maven Plugin: de.wenzlaff.command.maven.plugin“ weiterlesen

Refactoring eines Maven-Plugins mit Dependency Injection

Das hier erstellt Maven-Plugin, kann noch etwas refactored werden mit Nutzung von Dependency Injection.

Always rejoice, mit freundlicher Genehmigung meines Lieblingskünstlers

Die Methode im Mojo kann in eine eigene Klasse CommandProviderApi verschoben werden. Ein neues Interface CommandProvider kann erstellt werden. Die erstellen wir hier:

1. Das Interface: „Refactoring eines Maven-Plugins mit Dependency Injection“ weiterlesen

Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen

Ein eigenes Maven-Plugin zu erstellen ist nicht schwer und ist schnell gemacht. Wir wollen ein Plugin welches einen Verzeichnis Inhalt mit ls -la in das Log schreibt erstellen. Es können aber auch andere Linux Befehle übergeben werden. Hier nun die 6 Schritte mit den Vorlagen die mind. nötig sind.

Freut euch immer
Always rejoice, mit freundlicher Genehmigung meines Lieblingskünstlers

1. Wir legen in Eclipse ein neue Maven Projekt mit Java 1.8 an. mit Artifact Id und Group Id de.wenzlaff.command.maven.plugin

2. In der pom.xml fügen wir die folgenden Abhängikeiten hinzu: „Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen“ weiterlesen

Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!

Für die Entwicklung von REST APIs ist die Swagger-UI sehr hilfreich.

Ok, dann wollen wir mal in einem Quarkus Projekt eine Swagger-UI hinzufügen. Das geht mit einem Befehl, da Quarkus einen guten Plugin Mechanismus hat:

./mvnw quarkus:add-extension -Dextensions=“openapi“

Nach 27 Sekunden kommt das Build Success:

So, das wars schon. Nun noch die Anwendung starten mit „Swagger-UI in 5 Minuten auf einen Raspberry Pi einem Quarkus Projekt hinzufügen!“ weiterlesen

httpie ist auch auf dem Raspberry Pi in 5 Minuten installiert, es muss ja nicht immer curl sein

Um httpie auf dem Raspberry Pi zu installieren, ist nur ein

nötig. Und schon hat man einen curl Ersatz mit intuitiver UI, JSON support, Syntax Hervorhebung und mehr.

Quicktest, abfragen einer Domain, mit http get www.kleinhirn.eu „httpie ist auch auf dem Raspberry Pi in 5 Minuten installiert, es muss ja nicht immer curl sein“ weiterlesen

Bibelleseplan-Generator 0.0.4 nun mit frei wählbaren Start-Termin bzw. Bibelbuch für (Mac, Windows, Raspberry Pi) veröffentlicht

Der Bibelleseplan Generator ist nun mit frei wählbaren start Termin bzw. Bibelbuch für (Mac, Win, Raspberry Pi) veröffentlicht. Es können jetzt Termine für alle Kalender autom. erzeugt werden im isc Format für Google, Apple oder Outlock. Und zwar für ein oder alle Bibelbücher mit frei wählbaren Starttermin. Beschrieben hatte ich ihn ja schon hier.

Die Installation ist schnell in zwei Schriten gemacht.

1. Auf dieser Projekt-Seite die letzte Version landen unter CI/CD – Pipelines – dann Artefakte – Download Install Java 8 Artifacts oder als alternative hier die 0.0.4 Version (4,3 MB) als ZIP laden (artifacts.zip). „Bibelleseplan-Generator 0.0.4 nun mit frei wählbaren Start-Termin bzw. Bibelbuch für (Mac, Windows, Raspberry Pi) veröffentlicht“ weiterlesen

Wie kann mit Java 8 und dem DOM-Parser einfach eine XML Datei erzeugt werden?

Wie kann mit Java 8 mit dem DOM-Parser einfach eine XML Datei erzeugt werden?

Es sind keine weiteren Abhängigkeiten nötig. Allso keine imports von Fremdjars. Alles ist in Java 8 vorhanden:


Es muss ein DOM Object mit der Baumstruktur erzeugt werden. Dann kann mit dem Transformer und dem StreamResult in eine Datei geschrieben werden.

Hier nun die drei Schritte:

1. Mit der DocumentBuilderFactory ein neues Document erzeugen:

2. Benötigte Elemente und Attribute erzeugen und dem Dokument hinzufügen „Wie kann mit Java 8 und dem DOM-Parser einfach eine XML Datei erzeugt werden?“ weiterlesen

Java 8 Quickie: Kein PermSize und MaxPermSize – by by java.lang.OutOfMemoryError: PermGen error

Ab Java 8 werden die PermSize und MaxPermSize Kommandozeilen Parameter nicht mehr verwendet. Es wird eine Warnung in der Art:

ausgegeben. Also tschüss java.lang.OutOfMemoryError: PermGen error.

Quelle: Oracle.com

Wie kann mit Java die Anzahl der Flugzeuge in der jeweiligen Höhe weltweit in real time ermittelt und mit OpenStreetMap via uMap visualisiert werden?

Wie vor zwei Jahren hier schon mal beschrieben hat sich nicht viel geändert.

Aber es gibt eine neue Version (1.3.0) der Rest API, die wir verwenden wollen. Dazu die Maven pom.xml updaten:

Hier der aktuelle Lauf:

Es sind also 6559 Flugzeuge weltweit in der Luft! Hier die paar Zeilen Java Code die dafür nötig sind: „Wie kann mit Java die Anzahl der Flugzeuge in der jeweiligen Höhe weltweit in real time ermittelt und mit OpenStreetMap via uMap visualisiert werden?“ weiterlesen

Java: Rätsel des Tages

Was ist das Ergebnis? „Java: Rätsel des Tages“ weiterlesen

Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen

Seit März 2017 gibt es noch kein neues Release von den Commons CLI. Aber warum die Commandline nicht auch damit auswerten? Macht alles viel übersichtlicher.

Das geht mit ein paar Zeilen Java Code und einen Eintrag in der pom.xml:

Hier ein Beispiel snippets: „Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen“ weiterlesen

Java 8 Quickie: Wie können alle bestimmten Dateien eines Verzeichnis in einer Zeile ermittelt werden?

Mit der static Methode Files.newDirectoryStream. Diese Methode gibt es schon seit Java 1.7. Hier mal ein Beispiel für alle PDF Datein im aktuellen Verzeichnis:

Java: Rätsel des Tages

Was ist das Ergebnis?

Ergebnis: „Java: Rätsel des Tages“ weiterlesen

Für den Urlaub: Free WLAN Wifi-Scanner mit LED anzeige mit Wemo (ESP8266)

Wer noch für den Urlaub einen freien Wifi-Finder braucht, kann einen Wemo (ESP8266) verwenden, es muss ja nicht immer ein Raspberry Pi sein. Einfach dieses kleinen c Programm mit der Arduino IDO in den Wemo flashen, und mit 5 Volt an einem USB Port mit Strom versorgen.

Der Sketch verwendet nur 266424 Bytes (25%) des Programmspeicherplatzes. Das Maximum sind 1044464 Bytes. Globale Variablen verwenden 27124 Bytes (33%) des dynamischen Speichers, 54796 Bytes für lokale Variablen verbleiben. Das Maximum sind 81920 Bytes.

Hier noch ein kleines 26 Sekunden Video um zu sehen wie der Scanner mit dem obigen Programm läuft:

Auf der Seriellen Konsolen werden übrigens die Daten auch ausgegeben, z.B.

In diesem Sinne …

Update PDF-Formulare automatisch auswerten – PDF-Formulare to CSV (Excel) – Version 0.0.2 veröffentlicht – nun auch für Windows!

Wie hier ausführlich beschrieben, hier nun die Version 0.0.2 für den Raspberry Pi als DEB Archive aber auch als RPM für RedHat und für Windows nur die JAR Datei zum kostenlosen Download twpdfformulartocsv-0.0.2.zip

Einige Funktionen sind nun NEU z.b. die Hilfe, die mit -h aufgerufen werden kann, hier aber erst einmal das BPMN zum Programmablauf:

Die Versions Ausgabe mit -v „Update PDF-Formulare automatisch auswerten – PDF-Formulare to CSV (Excel) – Version 0.0.2 veröffentlicht – nun auch für Windows!“ weiterlesen