Dynamische Fuzzy-Suche mit Fuse.js in Json Daten mit React App TWArztSuche

Eine Suche in Datenbeständen ist keine einfache Sache! Mit Fuse.js ist ein Suche mit Fuzzylogik möglich. Fuse.js ist eine mächtige Lib ohne viele Abhängigkeiten.

Eine suche mit Fuzzylogik ist eine unscharfe Suche und wird z. B. in der Automatisierungstechnik, Medizintechnik, Unterhaltungselektronik, KI, Fahrzeugtechnik und anderen Bereichen der Regelungstechnik verwendet. Zum Beispiel suchen wir nach dem Ort: Hameln und es werden uns auch Ergebnisse aus Hannover angezeigt. Beide beginnen mit Ha.

Wir programmieren mal Beispielsweise eine Arztsuche mit einfache Gui, wie bei Google, mit nur einem Eingabefeld. So soll die Seite aussehen, und ein Eintrag ist auch gleich die Online-Hilfe:

Das Ergebnis, wenn wir z.B. nach Anästhesie suchen sieht dann so aus bei den 5 Beispiel Datensätzen: „Dynamische Fuzzy-Suche mit Fuse.js in Json Daten mit React App TWArztSuche“ weiterlesen

Onion Webseite mit Elliptische Kurve Curve25519 absichern

Hier nun noch ein Level von Sicherheit mit dem Raspberry Pi. Wie hier beschrieben kann eine Website leicht für jedermann mit eigener onion Domain im Darknet bereitgestellt werden. Die Seiten können nun aber auch noch mit einen Curve25519-Key gesichert werden, so das nur Nutzer die den Key haben auf die Seiten zugreifen können. Wenn man dann z.B. die Adresse

http://tokc2fifswouszmp4jy3ejizmchy4damvhmdug5crvkvfgmymbejkqqd.onion

aufruft, erscheint im Browser, oben links ein Schloß. Wenn man darauf klickt erscheint der Dialog:

Hier wird dann der private Schlüssel, den man vom Bereitsteller erhalten hat eingegeben. Für diese Seite ist es der Schlüssel:

JDSQ2RRI2SLYCN4SG6ZBP4DHE4TEHZG26EJS5R6FYBPH6AU3FVEA

Jeder der diesen privaten Schlüssel hat, kann nun auf die Seiten zugreifen. Wer das falsche Passwort eingibt, kann nicht auf die Seite zugreifen: „Onion Webseite mit Elliptische Kurve Curve25519 absichern“ weiterlesen

Watchdog für einen CO2-Ampel Server oder andere per NodeRed

Hier mal kurz noch ein Beispiel-Flow mit NodeRed um einen Server oder so zu überwachen und wenn er sich nicht in einen bestimmten Zeitraum meldet wird eine Pushover Nachricht an ein Handy versand. Bei mir wird ein CO2-Ampel-Server der auf einem anderen Raspberry Pi läuft damit überprüft. Der sendet jede Minute den CO2 Wert in ppm. Wenn nach 10 Minuten Timeout nichts kommt, wird die Meldung an mein Handy gesendet. Aber nur maximal nur einmal die Stunde, will ja wenn er ausfällt nicht alle 10 Minugen eine Meldung bekommen, das währe dann zuviel des guten.

Hier der Java-Script Flow zum kostenlosen Download:… „Watchdog für einen CO2-Ampel Server oder andere per NodeRed“ weiterlesen

Tip: Copyright-Anzeige nach SSH Login anpassen/löschen

Beim Anmelden mit SSH auf den Raspberry Pi wird jedes mal diese Meldung ausgegeben.

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

Das Nervt! Die habe ich gelöscht und durch eine für mich sinnvolle Bezeichnung welches Gerät es ist angepasst. So kann ich beim anmelden leichter sehen, mit welchem Gerät ich mich verbunden haben. Dazu einfach mit

die Datei wie gewünscht bearbeiten.

Ich habe da z.B. nur eingetragen: Raspberry Pi Zero Nr. 18 😉

SSH Anmeldung an dem Raspberry Pi ohne Passwort mit Elliptische Kurve – ed25519 Key


Wenn man vom Mac (Windows geht natürlich auch) aus auf einen entfernten Raspberry Pi 4 B zugreifen will, kann man das auch ohne jedesmal ein Passwort eingeben zu müssen. Dafür kann das moderne ed25519 Key Verfahren verwendet werden.

Dazu muss auf dem Pi ein .ssh Verzeichnis mit einer authorized_keys Datei angelegt werden:

Dann in der /etc/ssh/sshd_config des Pi die folgenden Einträge setzen: … „SSH Anmeldung an dem Raspberry Pi ohne Passwort mit Elliptische Kurve – ed25519 Key“ weiterlesen

Webserver Sicherheit überprüfen mit nikto

Wer einen eigenen Webserver laufen hat, kann mit nikto einen Sicherheitscann ausführen.

Nikto ist ein in Perl geschriebener Open Source Web Server Scanner. Nikto testet Web Server auf über 7800 potentiell schädliche Dateien und Programme und prüft über 1250 Server-Versionen auf ihre Aktualität und weist bei über 270 Server-Versionen auf bekannte Sicherheitslücken hin. Der Scanner prüft Header und versucht ausserdem, ausnutzbare Fehler und Defaults in der Webserver-Konfiguration aufzudecken. Nikto schickt ca. 7800 GET-Requests an den Webserver, um auf das Vorhandensein unsicherer Inhalte zu prüfen, richtet also keinen Schaden an.

Der ist schnell auf dem Raspberry Pi installiert mit:

sudo apt-get install nikto

Es wir die v2.1.5 installiert. Das kann mit
nikto -Version überprüft werden. Es wird die ausgegeben: „Webserver Sicherheit überprüfen mit nikto“ weiterlesen

CO2-Ampel Auswertung

Hier mal die Auswertung zur CO2-Ampel die auf einem Raspberry Pi läuf. Von fast einem halben Jahr Dauerlauf (23.1.-5.6.2021) im Arbeitszimmer mit max. 2 Personen mit 374374 Messwerten (jede Minute). Der Mittelwert beträg 693 ppm. Da hätte ich jetzt weniger erwartet, da ich immer rechtzeitig gelüftet habe, wenn ich einen zu hohen Wert gesehen haben.

Max. 2515 ppm und min wie nicht anders zu erwarten 400 ppm.

Kostenlos eine Webseite im Darknet mit Raspberry Pi bereitstellen über Onion Service


Wie kann kostenlos eine Webseite mit .onion Domain auf einen Raspberry Pi Zero bereitgestellt werden?

Man braucht keine kostenpflichtige Domain wie z.B. www.wenzlaff.info beantragen und bezahlen.

Die .onion Domain gibt es kostenlos. Wir brauchen nur tor und einen Webserver wie z.B. nginx.

Folgende Schritte sind auf dem Raspberry Pi nötig:

„Kostenlos eine Webseite im Darknet mit Raspberry Pi bereitstellen über Onion Service“ weiterlesen

Zum heutigen National Donut Day mit Curve25519 free private/public Key generieren für Hidden Onion-Services

Dank an Dr.Kleinhirn.eu für die Mindmap

Wenn man Wikipedia glauben will dann ist „Curve25519 … eine elliptische Kurve, die für asymmetrische Kryptosysteme genutzt wird. Sie wird üblicherweise für digitale Signaturen und Schlüsselaustauschprotokolle genutzt und gilt als besonders schnell. Sie ist von der IETF als RFC 7748 standardisiert.“
Aber sie wird auch für Onion-Services verwendet. Deshalb mal heute zur Entspannung für 10 Minuten einen public und privaten Key auf einem Raspberry Pi (Zero) generieren. Inkl. Hostnamen. Das geht so:

Hier mal der lauf auf meinem Pi: „Zum heutigen National Donut Day mit Curve25519 free private/public Key generieren für Hidden Onion-Services“ weiterlesen

TWHackSSH 1.0.5 nun auch auf Maven Central

TWHackSSH ist nun auch auf Maven Central erhältlich. Lange dort nichts mehr hochgeladen. Die habe jetzt auch eine schöne Übersichtsseite aller Abhängigkeiten mit Scann und mit E-Mail Benachrichtigung:

Jetzt geht der Download also auch darüber, wer das TWHackSSH haben will, kann über

https://search.maven.org/remotecontent?filepath=de/wenzlaff/twhackssh/de.wenzlaff.twhackssh/1.0.5/

gehen oder von diese Seite das Programm laden … „TWHackSSH 1.0.5 nun auch auf Maven Central“ weiterlesen

SSH Passwort Zugriff mit Brute-Force Script in 19 Sekunden oder „Versuch macht klug!“

Der Versuch macht klug und der Erfolg kommt schon mit dem Versuch und nicht erst wenn es klappt. Wer sein eigenes Passwort für den Raspberry Pi (oder auch jeden anderen Rechner) vergessen hat, kann es ja mal mit dem SSH Brute-Force Script von nmap versuchen. Und es ist auch erschreckend, wie schnell und einfach man ein passwortgeschützen Zugang hacken kann. Aber nur an eigenen Rechnern 😉

Wir habe hier mal, wie oben dargestellt zwei Raspberry Pi. Von dem pi oben links, machen wir mit der Brute-Force-Methode einen Scann des pi auf dem ein SSH Port Nr. 22 offen ist.

Dazu benutzen wir nmap. Das können wir installieren mit

sudo apt-get install nmap oder wie hier beschrieben selbst compilieren.

Nun checken wir, ob der SSH-Port Nr. 22 offen ist mit nmap: … „SSH Passwort Zugriff mit Brute-Force Script in 19 Sekunden oder „Versuch macht klug!““ weiterlesen

Architektur mit archunit validieren

Mit automatischer Architektur validierung mit JUnit 5 Annotation @ArchTest von archunit kann leicht die Architektur vorgaben überprüft werden. Aber es kann auch leicht verhindert werden, das man z.B. System.out oder System.err verwendet. Oder das verhindert wird, das das interne Java Logging verwendet wird.

Was für mich auch wichtig ist, das der Logger immer LOG heißt, und nicht log oder logger.


Einfach diese JUnit-Test Klasse in alle Projekte einbinden. „Architektur mit archunit validieren“ weiterlesen

Release 21.05 von rtl_433 für den Raspberry Pi veröffentlicht um Temperatursensoren und Luftruck von Autoreifen (TPMS) uä. zu empfangen

Vor 3 Jahren hatte ich hier schon mal berichtet, wie man rtl_433 installieren und updaten kann. Und hier wie man die Daten per MQTT verteilt. Da vor ein 8 Tagen das neue Release 21.05 veröffentlicht wurde, ist es mal Zeit das zu installieren.


„Release 21.05 von rtl_433 für den Raspberry Pi veröffentlicht um Temperatursensoren und Luftruck von Autoreifen (TPMS) uä. zu empfangen“ weiterlesen

Betriebssystem abhängige Tests :-( – EnabledOnOs oder DisabledOnOs für JUnit 5

Seit JUnit 5.1 gibt es das OS Enum. Mit der können leicht Tests in Abhängigkeit des OS durchgeführt werden. Es werden die folgenden Betriebssysteme unterstüzt:

Also nur die Methode z.B. mit der @EnabledOnOs(OS.MAC) Annotation versehen, und der Test läuft nur auf dem Mac 🙂 oder nicht dann mit @DisabledOnOs(OS.MAC): … „Betriebssystem abhängige Tests 🙁 – EnabledOnOs oder DisabledOnOs für JUnit 5“ weiterlesen

Covid Inzidenz abfragen beim „Robert Koch Institute (RKI)“ und per Pushover auf das Handy versenden

Coronavirus: Zahl der täglichen Neuinfektionen geht weiter zurück (153). Wie lautet die Inzidenz für meine Stadt? Hier ein kleiner Flow, der täglich auf das Handy per Pushover (siehe Bild oben) die aktuelle Inzidenz Zahl vom RKI versendet. Dann braucht man nicht immer auf das Dashboard des RKI zu schauen…. „Covid Inzidenz abfragen beim „Robert Koch Institute (RKI)“ und per Pushover auf das Handy versenden“ weiterlesen

QR-Code von der Kommandozeile erzeugen

Wer mal eben in ein paar Sekunden einen QR-Code von der Kommandozeile erzeugen will, braucht nur diese URL mit curl aufrufen:

curl http://qrenco.de/[HIER DER TEXT FÜR DEN QR-CODE INHALT]

Z.B.: curl http://qrenco.de/kleinhirn.eu

BTC -15,94% wenn das kein Grund für einen BTC to Euro Dashboard mit NodeRed ist


Wer Kurse auch im NodeRed-Dashboard anzeigen bzw. umrechnen will, kann diesen Beispiel Flow als Template verwenden.

Die Funktion ist schnell erklärt. Es wird nach der Eingabe des Bitcoin Wert (Achtung, kein Komma, nur den Dezimalpunkt verwenden) der Kurs bei Kraken abgefragt und der aktuelle BTC in Euro umgerechnet. Der Beispiel Button, im Flow, erzeugt z.B. den Wert für 1000 Euro. Kann ja leicht angepasst werden oder auch direkt vom Konto eingspielt werden, wie hier schon mal gezeigt. … „BTC -15,94% wenn das kein Grund für einen BTC to Euro Dashboard mit NodeRed ist“ weiterlesen

Firewall in 10 Minuten einrichen mit UFW (Uncomplicated firewall) nicht nur auf dem Raspberry Pi

Eine Firewall ist auf dem Raspberry Pi schnell mit dem UFW eingerichtet und kann die Sicherheit verbessern.

Die Firewall UFW muss nur installiert werden mit:

Nun schalten wir zuerst den ipv6 auf no in der Datei /etc/default/ufw, da er bei mir nicht verwendet wird. „Firewall in 10 Minuten einrichen mit UFW (Uncomplicated firewall) nicht nur auf dem Raspberry Pi“ weiterlesen

ArchUnit gestern in Version 0.18.0 veröffentlicht oder wie validiere ich die Architektur am Beispiel einer Blockchain

Gestern wurde ArchUnit in Version 0.18.0 veröffentlicht.

ArchUnit

Wenn das keine Grund ist mal zu zeigen, wie man eine Package-Abhängigkeit überprüfen kann.
Also wir wollen einen Test schreiben, der durchläuft wenn nur aus dem Package blockchain auf das Package be zugegriffen wird. Wie hier im UML Diagramm gezeigt:… „ArchUnit gestern in Version 0.18.0 veröffentlicht oder wie validiere ich die Architektur am Beispiel einer Blockchain“ weiterlesen

Blockchain in Java – Bitcoin heute Neues Allzeithoch – Nasdaq: Börsengang von Coinbase

Wollte heute mal noch vor dem Börsengang von Coinbase ein Blockchain in Java coden. Mit nur zwei Klassen sind die Grundlagen implementiert. D.h. ein Block verweist jeweils auf den nächsten Block. Jeder Block hat einen Hash über die Daten und kann so von jedem validiert werden. Ein Block kann alles enthalten, hier mal ein String Objekt, es muss ja nicht immer Bitcoin sein. Hier die Architektur:

Ein JUnit 5 Testklasse erzeugt eine gültige Blockchain mit 5 Blöcken und wird anschließend validiert. Bei Bitcoin werden alle 10 Minuten neue Blöcke erzeugt. Die haben dann jeweils (ursprünglich) eine Größe von ca. max 1 MB an Daten.

Dann im zweiten Testfall wird ein Block verändert und in die Blockhain eingefügt. Das Ergebnis der validierung muss dann einen Error ausgeben.

Ein Block sieht so aus: „Blockchain in Java – Bitcoin heute Neues Allzeithoch – Nasdaq: Börsengang von Coinbase“ weiterlesen

Neue NodeRed Version 1.3.1 veröffentlicht auch für Docker auf dem Raspberry Pi (v6, v7)

Es gibt nun auch seit ein paar Stunden einen neuen Docker Kontainer für den Raspberry Pi.

Was es neu gibt, kann hier nachgeschlagen werden.

Hier die Haupt Features
-npm packaged subflows (da bin ich ja gespannt, wie mein erster Flow in gepackt wird, später mehr)
-Function node use of npm modules
-Referencing msg properties in Change/Switch nodes
-Node-RED Plugins framework
Editor Features
-Export preview (siehe hier … „Neue NodeRed Version 1.3.1 veröffentlicht auch für Docker auf dem Raspberry Pi (v6, v7)“ weiterlesen

Wie kann Text in PDF von der Kommandozeile erzeugt werden?

Manchmal will man mal eben etwas Text in ein PDF umwandeln. Das geht auch ganz schnell und einfach von der Kommandozeile. Es muss zuvor nur ghostscript und enscript auf dem Raspberry Pi installiert werden mit:

sudo apt-get install ghostscript enscript

Dann kann es schon losgehen. Wir haben z.B. eine Test-Datei mit Name test-txt-to-pdf.txt und diesem Inhalt:

Wir geben dann auf der Kommandozeil ein:

enscript test-txt-to-pdf.txt -o – | ps2pdf – ergebnis.pdf

Und schon erhalten wir eine ergebnis.pdf mit diesem Inhalt: … „Wie kann Text in PDF von der Kommandozeile erzeugt werden?“ weiterlesen

Überwachung und Erkennung mit Raspberry Pi Kamera oder wie zähle ich die Besucher oder PKWs

In der Pandemie könnte mit diesem Counter am Eingang eines Ladens die Besucher gezählt werden. Auch ein Foto wird jeweils gemacht (Achtung, Datenschutz beachten 😉 ) und die Besucher schön in einem Diagram nach Uhrzeit ausgegeben. Alles wird über einen eigenen Server ausgegeben.

Auf die Straße gerichtet, wird der PKW mit Foto und Geschwindigkeit erfasst. Cool. Und man kann sehen, wieviel Autos so auf der Straße fahren. Alles ohne KI und mit einem Raspberry Pi.

Hier mal das Ergebnis, welches nur die Daten von einem Raum anzeigt. So kann man gut sehen wer wann und wie oft den Raum besucht. Aus Datenschutzgründen ist das Foto nicht „unscharf“ gemacht worden, (sondern die Kamera ist defekt wie weitere Tests zeigten und geht zurück…) und auf den Kopf gestellt, damit man mich da nicht erkennt 😉

Man kann auch in der unteren Zeile sehen, wie schnell ich gegangen bin:

Hier als Diagramm, wie oft der Raum jeweils in einer Stunde/Tag betreten wurde:… „Überwachung und Erkennung mit Raspberry Pi Kamera oder wie zähle ich die Besucher oder PKWs“ weiterlesen

Aktionen in NodeRed mit Bitcoin (BTC) Zahlungen auslösen oder Kontostandsanzeige

Wer kennt nicht das Problem. Man wartet auf den eingang einer Zahlung und schaut mehrfach ob sie schon da ist.

Oder wie lautet mein Kontostand?

Oder auch in diesem Fall, gib mir eine Nachricht, oder schalte den Button grün, wenn eine „Buy me a Coffee“ Spende eingegangen ist.

Oder mache das Licht an, wenn eine BTC Zahlung eingegangen ist.

Oder für Hochzeit, den QR-Code neben der Kamera aufhängen und bei einzahlung ein Foto auslösen 😉

Oder, oder oder …

All das macht dieser kleine Flow. Mal was anderes als „Ausgangssperre“ und 7-Tage-Inzidenz von 134 oder XBT von 59368.

Und warum soll das Dashboard nicht den Kontostand anzeigen?

Die Funktion ist einfach, in dem Funktions-Node die BTC Adresse eingeben. Die wird dann über die Web-API von https://mempool.space/ abgefragt. Ohne Anmeldung und Paswort möglich. Und schon kann man alles schalte was man will in Abhängigkeit des Kontostand! Cool. Bin ja gespannt, wann der obere Button für den Kaffee eine Aktion auslöst.

Das kanns Du leicht über die Buy my a coffee: bitcoin:bc1qj4grttyhk2h5wqask3nku70e3qtycssz5kvw5l tun. … „Aktionen in NodeRed mit Bitcoin (BTC) Zahlungen auslösen oder Kontostandsanzeige“ weiterlesen

Empfohlene Transaktionsgebühr für Bitcoin Transaktionen im NodeRed Dashboard anzeigen, es muss ja nicht immer Replace-by-Fee (RBF) oder CO2-Ampel sein

Bitcoin Transaktionen kosten im Moment im Durchschnitt ca. 18 Dollar. Man kann ja die Gebühr selbst festlegen und damit die Geschwindigkeit der Überweisung steuern. Wählt man zuwenig, wird sie evl. auch nach Tagen nicht ausgeführt. Evl. reicht aber auch eine kleinere Gebühr, wenn die Transaktion nicht in den nächsten Block der Blockchain kommen muss und man evl. Zeit für ein paar Tage hat. Dann reichen evl. schon wie unten zu sehen 4 Satoshi per Byte.

Bei BTC hängen ja die Gebühren nicht an dem Betrag, sondern an der Länge der Transaktion, die je nach Adressentyp unterschiedlich ist.

Man kann hier schauen, was so im Moment berechnet wird. Dort steht:

Das ist aber umständlich. Um die aktuelle Kosten anzuzeigen, habe ich einen kleinen NodeRed-Flow im Dashboard entwickelt, das einen Web-Service von mempool.space abfragt und anzeigt. So sieht man auf einen Blick, welcher Betrag ca. für welche Zeit nötig ist.

So braucht man nur einmal auf den „Update“ Button klicken und erhält die Möglichen werte um nicht zuviel zu bezahlen. Manche Wallets ermöglichen ja auch nachträglich die Kosten zu erhöhen wenn die Transaktion nicht durchkommt. Das nervt zwar, spart aber und nennt sich Replace-by-Fee (RBF). Hier das Dashboard:… „Empfohlene Transaktionsgebühr für Bitcoin Transaktionen im NodeRed Dashboard anzeigen, es muss ja nicht immer Replace-by-Fee (RBF) oder CO2-Ampel sein“ weiterlesen

Ergebnisse der Umfrage oder finde Dubletten auf dem Raspberry Pi mit fdupes

Vielen Dank für das Feedback zu meiner kleinen Umfrage. Für mich ist es sehr interessant, das über 85 % der Teilnehmer mehr zum Thema Raspberry Pi haben wollten. Auf Platz 2 folgt NodeRed / Hausautomatisation mit 60 %. Platz 3 Planespotting mit 24 %. Was mich aber erstaunt, ist die Altersstruktur der Leser, das ich mal mit „für Ältere“ zusammenfassen möchte:

Dann mal gleich was zum Pi, läuft aber auch auf dem Mac. Wie finde ich doppelte Dateien auf dem Rechner? Wenn es große Videos oder Bilder sind, wird auch viel Speicher verbraucht. Einfach das Tool fdupes installieren mit:

sudo apt install fdupes

Nun kann es auf Verzeichnisse angewendet werden. Z.B. im Verzeichnis wir mal das test-dubletten-suchen durchsucht was wie folgt aussieht:

Aufruf:

fdupes test-dubletten-suchen/ -r -1 -S

Ergebnis: … „Ergebnisse der Umfrage oder finde Dubletten auf dem Raspberry Pi mit fdupes“ weiterlesen