Vor ein paar Tagen ist eine neue Version des BPMN Modeler veröffentlicht wurden. Zeit zu testen, ob die Version auch mit meinen alten BPMN Diagrammen kompatibel ist:
Dann mal das Diagramm laden: „Quicktest: Camunda BPMN Modeler 1.15.1“ weiterlesen
Wenzlaff.de – Rund um die Programmierung
mit Java, Raspberry Pi, SDR, Linux, Arduino, Sicherheit, Blender, KI, Statistik, Krypto und Blockchain
Anleitungen zu allen Themen.
Vor ein paar Tagen ist eine neue Version des BPMN Modeler veröffentlicht wurden. Zeit zu testen, ob die Version auch mit meinen alten BPMN Diagrammen kompatibel ist:
Dann mal das Diagramm laden: „Quicktest: Camunda BPMN Modeler 1.15.1“ weiterlesen
Hier hatte ich geschrieben, wie man Signale von Autos, Temp.-Sensoren usw. empfangen kann. Diese Daten können auch leicht an einen Mqtt-Host gesendet werden.
Mosquitto muss installiert sein, das geht aber schnell:
1 2 3 4 5 6 7 8 9 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install mosquitto mosquitto-clients python-mosquitto libmodule-pluggable-perl mosquitto-clients # Check mosquitto -v # Ergebnis 1528405571: mosquitto version 1.4.10 (build date Fri, 22 Dec 2017 08:19:25 +0000) starting 1528405571: Using default config. 1528405571: Opening ipv4 listen socket on port 1883. |
Marco Verleu hat ein kurzes Bash Script geschrieben, welche auf Github zu finden ist. Man braucht nur den Host und den Topic anpassen, zu testzwecken kann man den Host auch lassen. Dann einfach das Script mit ./rtl2mqtt.sh starten. Schon werden die empfangenen Nachrichten unter den Topic versendet. „Wie können mit SDR (auf 433 Mhz) auf dem Raspberry Pi Signale von Autos, Tempsensoren ua. empfangen und an ein MQTT-Host gesendet werden?“ weiterlesen
Wie kann in Excel eine Zeile in eine Spalte umwandelt werden? Das ist schnell gemacht. Einfach die Zeile kopieren:
Und das Feld markieren wo die neue Spalte hin soll, und mit der rechten Maustaste das Kontextmenü aufrufen, und auf „Inhalte einfügen …“ klicken. „Wie kann in Excel eine Zeile in eine Spalte umwandelt werden?“ weiterlesen
Ist eine Kafka Installation auf einen Raspberry Pi Zero W möglich? Wir wollen mal sehen! Um Kafka zu installieren braucht man zu erst einmal das Archiv von der Downloadseite:
Dann „Ist eine Kafka installation auf einen Raspberry Pi Zero W möglich?“ weiterlesen
Auch in der aktuellen STS Version, der Spring IDE kann das kostenlose UML Plugin installiert werden.
Es ist super fürs Reverse Engineering, um schnell einen Überblick zu erhalten.
Das Eclipse-Plugin ObjectAid installieren über die Install URL
http://www.objectaid.com/update/current
Dann einfach ein neues Objectaid Diagramm erstellen:
Auf dem Dialog ein paar Einstellungen oder die default belassen: „Wie können UML 2.0 Klassen-Diagramme mit Spring STS (Spring Tool Suite 3.9.4) erstellt werden?“ weiterlesen
Manchmal braucht man eine „One to One“ Verbindung zweier BEs mit JPA (Java Persistence API) für Spring Boot (2.0.2) (JEE mit EJB 3.0 ist ähnlich, nur andere Annotationen).
Z.b. arbeiten ein Arzt in der Regel in einem Krankenhaus. Wenn sie nicht gerade als Belegärzte tätig sind. Also „One to One„:
Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen: „One to One mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML“ weiterlesen
Manchmal braucht man eine „Many to Many“ Verbindung zweier BEs mit JPA (Java Persistence API) für Spring Boot (2.0.2) (JEE mit EJB 3.0 ist ähnlich, nur andere Annotationen).
Z.b. können in einem Krankenhaus mehrere Ärzte arbeiten. Die Ärzte wiederum können in mehreren Krankenhäusern arbeiten, wenn sie z.B. als Belegärzte tätig sind. Also „Many to Many„:
Es wird von z.B. Hibernate eine Mapping-Tabelle angelegt um diese Verbindung abzubilden. Ein discribe arzt_krankenhaus; würde folgendes ergeben:
1 2 3 4 5 6 |
+----------------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------+------+-----+---------+-------+ | arzt_id | bigint(20) | NO | PRI | NULL | | | krankenhaus_id | bigint(20) | NO | PRI | NULL | | +----------------+------------+------+-----+---------+-------+ |
Hier nun eine Kopiervorlage um diese wiederkehrende Verbindung anzulegen: „Many to Many mit Java Persistence API (JPA 2.0) und Spring Boot ohne XML“ weiterlesen
Manchmal will man das Netzwerk analysieren und sehen wie der Weg zum Zielrechner läuft. Das geht mit Traceroute. Also z.B. traceroute wenzlaff.de
1 2 3 4 5 6 7 8 |
traceroute wenzlaff.de traceroute to wenzlaff.de (81.169.145.80), 30 hops max, 60 byte packets 1 home (x.x.x.x) 1.647 ms 1.675 ms 2.276 ms 2 x.x.x.x (x.x.x.x) 10.776 ms 10.113 ms 9.227 ms 3 f-ed3-i.F.DE.NET.DTAG.DE (62.154.14.138) 16.637 ms 16.677 ms 16.472 ms 4 xe-3-0-1.atuin.as6724.net (62.157.249.198) 16.257 ms 16.188 ms 16.091 ms 5 vl481.fiddlersriddle.as6724.net (81.169.144.121) 16.120 ms 16.333 ms 17.368 ms 6 w80.rzone.de (81.169.145.80) 17.462 ms 18.176 ms 18.442 ms |
Interesannter wird es in Verbindung mit dem ping. Dazu installieren wir das mtr programm mit sudo apt-get install mtr und schauen uns die Hilfe des Programms mit mtr -h an:
1 2 3 4 5 6 7 8 9 10 11 |
wenzlaff.info@pi-zero:/home/pi $ mtr -h usage: mtr [--help] [--version] [-4|-6] [-F FILENAME] [--report] [--report-wide] [--displaymode MODE] [--xml] [--gtk] [--curses] [--raw] [--csv] [--json] [--split] [--no-dns] [--show-ips] [-o FIELDS] [-y IPINFO] [--aslookup] [-i INTERVAL] [-c COUNT] [-s PACKETSIZE] [-B BITPATTERN] [-Q TOS] [--mpls] [-a ADDRESS] [-f FIRST-TTL] [-m MAX-TTL] [-U MAX_UNKNOWN] [--udp] [--tcp] [--sctp] [-P PORT] [-L LOCALPORT] [-Z TIMEOUT] [-G GRACEPERIOD] [-M MARK] HOSTNAME See the man page for details. |
Ok, wir starten nun mtr mit dem Zielhost z.B. mit mtr wenzlaff.de und erhalten einen interaktiven Dialog. Wir klicken nun die d Taste und erhalten den Status in Echtzeit der letzten 70 Pings in einem schönen Diagramm:
Mit der h Taste, gibt es Hilfe: „Traceroute mit mtr 0.92.56 (network diagnostic tool) auf dem Pi oder Traceroute + Ping = mtr“ weiterlesen
Will man mehrere Hosts mit ipv4 oder/und ipv6 anpingen und das in einer guten Übersicht? Das geht mit noping. Wenn es nicht schon installiert ist, gehte es mit sudo apt-get install oping.
Die noping C Library generirt ICMP echo requests um zu sehen was so im Netzwerk läuft.
Dann ein Aufruf z.B. mit drei Zielen:
noping wenzlaff.de wenzlaff.info kleinhirn.eu liefert grüne Balken mit dem Ergebnis:
Das Programm kann mit Ctrl-C beendet werden und gibt dann ein Ergebnis zurück:
1 2 3 4 5 6 7 8 9 10 11 |
--- wenzlaff.de ping statistics --- 268 packets transmitted, 268 received, 0,00% packet loss, time 5137,5ms RTT[ms]: min = 14, median = 18, p(95) = 27, max = 30 --- wenzlaff.info ping statistics --- 268 packets transmitted, 268 received, 0,00% packet loss, time 5264,1ms RTT[ms]: min = 15, median = 18, p(95) = 28, max = 31 --- kleinhirn.eu ping statistics --- 268 packets transmitted, 268 received, 0,00% packet loss, time 5279,7ms RTT[ms]: min = 15, median = 18, p(95) = 28, max = 31 |
Alle Befehle gibt es mit
„Besser als ping ist noping auf dem Raspberry Pi“ weiterlesen
Will man Excel CSV Dateien einlesen geht das mit einem Einzeiler in Java:
1 |
parser = new CSVParser(reader, CSVFormat.EXCEL.withDelimiter(';').withHeader().withIgnoreHeaderCase().withTrim()); |
Hier die Testmethode die auch etwas Kontext auf der Konsole ausgibt dazu. Man sieht auch, das man auf die Inhalte über einen Index oder den Spaltennamen zugreifen kann. Dann muss auch jedesmal das gleiche Ergebnis geliefert werden, das wird auch in der assert abgetestet.
„Wie kann eine Excel CSV Datei mit Java mit Apache commons eingelesen werden?“ weiterlesen
Wie können doppelte Nachrichten gefiltert werden? Manchmal will man das eine Nachricht nur einmal versendet wird, auch wenn sie innerhalb einer bestimmten Zeit nochmal mit dem gleichen Wert versendet wird. Das geht mit dem deduplicate Node. Wenn der mit npm i node-red-contrib-deduplicate installiert wurde, kann er wie folgt eingesetzt werden:
Rechts im Debug Fenstern kann man auch am Zeitstempel sehen, das die Test-Nachricht nur einmal ausgegeben wird, auch wenn man innerhalb von 5 Sekunden mehrmals klickt. Die Zeit kann in den Eigenschaften angepasst werden: „Filtern von doppelten Nachrichten in NodeRED auf einem Raspberry Pi“ weiterlesen
NodeRED: „A visual tool for wiring the Internet of Things.“ Eben ist eine neue NodeRED Version 0.18.5 veröffentlicht worden. Was ist neu? Siehe hier. Sei Mutig! Update auf die neue Version.
Also zum updaten ein:
1 2 |
cd .node-red update-nodejs-and-nodered |
auf der Konsole eingeben und nach ein paar Minuten (20-30 min), ist die neue Version installiert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
This can take 20-30 minutes on the slower Pi versions - please wait. Stop Node-RED ✔ Remove old version of Node-RED ✔ Remove old version of Node.js - Update Node.js LTS ✔ Node v9.5.0 Npm 5.6.0 Clean npm cache ✔ Install Node-RED core ✔ 0.18.5 Move global nodes to local - Install extra Pi nodes - Npm rebuild existing nodes ✔ Add menu shortcut ✔ Update systemd script ✔ Update update script ✔ Any errors will be logged to /var/log/nodered-install.log |
In diesem Blogbeitrag hatte ich schon mal beschrieben, wie man mit einem Softwarenradio Temperatursensoren und Luftruck von Autoreifen (TPMS) uä. auf 433,92 Mhz empfangen kann. So kann man alle Autos über die Reifensensoren oder aber auch über die Schließanlangen tracken, da immer eine eindeutige ID versendet wird.
Datenschutz läßt grüßen.
Die Empfangsanlage steht mit Sicht auf die Straße, da für 433 Mhz nur die maximal zulässige äquivalente Strahlungsleistung von 10 mW ERP für die Funkanwendungen mit geringer Reichweite (SRD) verwendet werden darf.
Hier der Aufbau, mit Leistungsmessung und Accu. „Wie können 433 Mhz Signale von PKWs (Reifen, Zentralveriegelung) per MQTT auf einen Raspberry Pi auswertet werden?“ weiterlesen
Mit vmstat (virtual memory statistics) können leicht folgende Werte fast in Echtzeit angzeigt werden:
Anzeige der Prozesse, Speicher, Paging, Block IO und CPU Aktivität …
Hier die Anleitung, die mit vmstat -h angezeigt werden kann:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
vmstat -h Usage: vmstat [options] [delay [count]] Options: -a, --active active/inactive memory -f, --forks number of forks since boot -m, --slabs slabinfo -n, --one-header do not redisplay header -s, --stats event counter statistics -d, --disk disk statistics -D, --disk-sum summarize disk statistics -p, --partition <dev> partition specific statistics -S, --unit <char> define display unit -w, --wide wide output -t, --timestamp show timestamp -h, --help display this help and exit -V, --version output version information and exit For more details see vmstat(8). |
Beim starten von rtl_433 -G kommt es zu diesem Error:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
trying device 0: Realtek, RTL2838UHIDIR, SN: 00000000 Found Rafael Micro R820T tuner Using device 0: Generic RTL2832U OEM Exact sample rate is: 250000.000414 Hz [R82XX] PLL not locked! Sample rate set to 250000. Bit detection level set to 0 (Auto). Tuner gain set to Auto. Reading samples in async mode... Tuned to 433920000 Hz. cb transfer status: 1, canceling... WARNING: async read failed (-5). Library error -5, exiting... |
Was hilft? „Raspberry Pi Zero W: rtl_433 -G Error „Library error -5““ weiterlesen
Das geht mit dem Lombok Projekt.
Für eine Java-Daten Klasse z.B. Arzt
1 2 3 4 5 6 7 8 9 10 |
@Data public class Arzt { private String titel; private String vorname; private String name; } |
wird dann automatisch folgendes generiert: „Wie kann Boilerplate Code in Java reduziert werden?“ weiterlesen
Bei mir laufen mehrere Raspberry Pi seit Jahren. Wie ist da eigentlich die Temperatur im Jahresdurchschnitt? 55,6 Grad Celsius wie auch dieses Diagramm zeigt. Es werden von mir die Temperaturen permanent in einer Round-Robin-Datenbank gespeichert.
Die Höchsttemperatur ist übrigens 61,5 Grad Celsius und das alles bei einer CPU Auslastung des Pis von 23,9%.
Sehr stabil..
„Raspberry Pi Temperatur im Jahresdurchschnitt 55,6 Grad Celsius (摄氏)“ weiterlesen
Da ist aus China mal wieder was schönes für ein paar Euro angekommen.
Mit diesem Sensor kann Strom über den Hall-Effekt gemessen werden. Hier mal eine Mindmap zum Hall-Effekt: „Strommessung mit dem ACS712 via Hall-Effekt (Edwin Hall)“ weiterlesen
Um die Systemprozesse zu überwachen gibt es auch für den Raspberry Pi eine Menge Tools. Die Features Liste von Glances ist umfangreich:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CPU Memory Load Process list Network interface Disk I/O IRQ / Raid Sensors Filesystem (and folders) Docker Monitor Alert System info Uptime Quicklook (CPU, MEM, LOAD) |
Das Glances kann schnell installiert werden mit:
1 |
sudo apt-get install glances |
Dann starten mit glances und schon erscheint das Monitoring Tool:
„Glances, es muss ja nicht immer nmon oder top sein also „An Eye on your system““ weiterlesen