Node-RED ist eine flow-basierte Entwicklungsumgebung, die hauptsächlich für die visuelle Programmierung von IoT- und Automatisierungslösungen verwendet wird. Es bietet eine einfache und intuitive Oberfläche, um Datenströme (Flows) zwischen Geräten, APIs und Diensten zu erstellen, ohne tiefgehende Programmierkenntnisse zu benötigen.
Ein einfaches pinout gibt auf dem Pi die Belegung aus. Cool! Hier die Ausgabe eines Raspberry Pi Zero W
Der Raspberry Pi ist ein vielseitiger Einplatinencomputer, der in den letzten Jahren enorm an Popularität gewonnen hat. Eines seiner bemerkenswertesten Merkmale ist die General Purpose Input Output (GPIO) Schnittstelle. GPIO ermöglicht es dem Raspberry Pi, mit der physischen Welt zu interagieren, indem es digitale Signale sendet und empfängt. „pinout – die GPIO-Schnittstelle des Raspberry Pi“ weiterlesen
Die Raspberry Pi 4 sind im Moment schlecht zu bekommen und auch zu teuer. Deshalb kann einfach ein gebrauchter Fujitsu Futro S920 verwendet werden. Der ist dann auch noch schneller mit 2,2 GHz Amd-CPU und 4 GB RAM als der Pi 4 und hat auch gleich ein schönes Gehäuse mit 8 GB SSD und Netzteil.
Nun sind die Anzahl der freien Intensiv-Bette aussagekräftiger als die Inzidenzen. Ldt. Ärzteblatt sind übrigens zumeist von schweren Verläufen und TodesfällenUngeimpfte betroffen.
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.
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
In der neuen Version von gestern von NodeRed können nun nur selektierte Nodes exportierte werden. Dazu die Nodes markierern die exportiert werden sollen und im Menü auf Export:
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.
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:
1
2
The fastest andcheapest transaction fee iscurrently102satoshis/byte,shown ingreen at the top.
Forthe median transaction size of224bytes,thisresults inafee of22,848satoshis.
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.
In diesem Beitrag hatte ich den neuen Node, der aus Text leicht einen QR-Code erzeugt beschrieben. Wie können aber nun QR-Codes direkt in einem NodeRed-Flow und nicht nur im Dashboard angezeigt werden?
Im Netz gibt es viele Anleitungen zum Anschluss eines RFID-Readers an den Raspberry Pi. Hatte auch noch einen seit Jahren liegen. Mal eben die 7 Leitungen angeklemmt und getestet. Ja es läuft, es geht aber leider nur der RFID-Tag der dabei lag, die andern 20 die ich noch liegen hatte konnten leider nicht gelesen werden 😉 Sind wohl keine Mifare Tags. Und man muss schon bis auf ein paar cm rangehen, damit er gelesen wird. … „Sciurus vulgaris Besuch in der 3. Etage oder RFID Tags einlesen mit dem RC-522“ weiterlesen
Wie können Kryptowährungsadressen überprüft werden? Also wie können z.B. Bitcoin Adresse überprüft werden? Die Bitcoin Adressen habe wie so viele Adressen eine interne Checksumme, die mit sha256 gebildet wird. Das heißt, es wird zweimal einSHA-256 Hash auf die Adresse gemacht und die ersten 4 Bytes als Checksumme verwendet und an die Adresse angehangen.
Um es ganz einfach zu machen, habe ich einen NodeRed Nodenode-red-contrib-cryptography-address-check erstellt. Und dazu einen Flow, wo die Adresse nur eingegeben werden muss, und es dann automatisch auf Gültig oder Ungültig überprüft wird.
Dieser Node, muss also nur über die „Pallette hinzufügen“ Funktion geladen werden:
So sieht meine public „Buy me a coffee“ Adresse aus, die ist gültig:
Idee: In jedem Zimmer an der Tür oder sonstwo einen QR-Code anbringen. Einfach mit dem Handy scannen und schon wird automatisch das Zimmer gesaugt. Kein lästiges suchen der Sauger App, starten und auswählen des Zimmers. Gesagt getan!
Ein QR-Code wird einmalig erstell und an den Mülleimer (oder in der Nähe) angebracht. Wenn der mit dem Handy gescannt wird (muss im WLAN eingewählt sein, könnte man aber auch für alle freigeben ;-)) läuft der Roboter los, hält für 2 Minuten an. Macht eine Sprachausgabe. Nun kannn der Staubbehälter gelehrt werden. Dann fährt er mit der Reinigung der Küche fort, und fährt wieder zur Ladestation.
Also zuerst eine QR-Code erstellen mit der URL des Pis und dem Kommando:
Für den Saugroboter habe ich noch eben eine weitere Funktion programmiert. Wenn man auf den „Staubbehälter leeren“ Button klickt, fährt er automatisch zum Mülleimer in der Küche.
Macht eine Ansage „Hier bin ich“ wenn er da ist, das ist bei mir nach 45 Sekunden der Fall, kann aber auch leicht angepasst werden. Dann habe ich 2 Minuten für das leeren des Staubbehälters vorgesehen. Dann fährt er automatisch mit der Reinigung fort. Hier kann man es sich in einem kurzen Video anschauen:
Das Neues Rathaus in Langenhagen soll mehr als 68 Millionen Euro kosten und 2026 fertig sein. Ich bin gespannt und werde es beobacchten.
Nun ist die Integration in NodeRed fertig, meine Steuerung für den Xiaomi-Saug-Roboter. Die App ist eigentlich ausreichend und macht fast alles was man braucht. Aber wenn man schon auf Hausautomatisation setzt, dann muss das natürlich auch da rein.
Auch ist die Gui etwas einfacher zu erreichen. Man kann auch weitere Szenarien implementieren. Z.B. bei Abwesenheit autom. saugen.
Was ich aber brauchte, war die Anforderung mit einen Klick, drei Räume zu reinigen. Auch die Zeitliche Steuerung wie z.B. jeden Tag die Küche saugen usw. ist nun noch einfacher. Auch kann nun von jedem Browser aus die Gui gestartet werden, ohne SW zu installieren. Z.B. vom Mac oder Laptop. Oder wenn die Haustür aufgeht, und ich nicht da bin, soll der Roboter den Flur saugen und die Ansage abspielen („Hier bin ich“) das vertreibt dann jeden Einbrecher;-) Habe es bisher noch nicht versucht, auch anderen Text wie z.B. Hundegebell abzuspielen. Dazu müsste ich ihn dann mit einer neuen Firmware flashen. Noch hat das Teil aber noch Garantie und läuft seit Monaten sehr gut und hat sich nur einmal „verlaufen“.
So ein Dashboard, hier am Beispiel der CO2 Messungen ist mit dem Cloud Anbieter Ubidots.com schnell gemacht. Kostenlos gibt es 3 Geräte. Es muss ja auch nicht immer Thinkspeak sein.
Hier mal eine Zusammenfassung eines CO2-Messsystems (CO2-Ampel) mit dem Raspberry Pi an dem der MH-Z19b, OLED Anzeige, LED-Rgb-Ampel hängen. Auch werden die Daten Online an Thinkspeak, MQTT, NodeRed, Alexa ausgabe von Warnungen und abfrage der Co2 Werte, Pushover nachrichten ans Handy, REST Java-Client, Docker Container und an einen History Browser gesendet. Wie hier auch schon einzeln veröffentlicht.
Ein Raspberry Pi dient ja als CO2-Ampel und misst jede Minute den CO2-Wert bei mir in der Luft. Die Werte werden auch als CSV-Datei gespeichert. Jeden Tag wird eine neue Datei erzeugt. Die Dateien sind dann nur ca. 30 kB groß.
Mit dem CO2-History Browser kann ich nun mit jeden Browser auch die CO2-Vergangenheit leicht anzeigen lassen. Es braucht nur die entsprechende Datei ausgewählt zu werden und auf den „GRAPH“ Button geklickt zu werden. Hier z.B. der CO2-Verlauf von gestern:
Mit klick auf den „OPEN“-Button kann die Datei auch im CSV-File geladen, und dann in Excel oder Numbers geöffnet werden:
Hier mal die CO2 Werte von Heute in der History-Ansicht:
Man sieht deutlich, das ich um 6:30 Uhr angefangen habe zu arbeiten (die Rote 1).
Bei der Grünen 2 habe ich jeweils gelüftet und das Fenster geöffnet, da die 1000 ppm an CO2 im Zimmer erreicht wurden. Deshalb fallen die Werte schnell ab, es wird aber auch schon im Zimmer kalt. Um 12 Uhr hatte ich das Fenster aufgemacht, und bin in die Mittagspause gegangen.Dann heute etwas früher Feierabend gemacht, und kurz nach 15 Uhr noch mal gelüftet.
Wie das ganze mit dem Raspberry Pi und NodeRed und Mqtt erfasst wird, siehe hier.
Heute zum 1. Mal die Warnung per Alexa von NodeRed. Und das bei nur zwei Personen und defekter Heizung.
Übrigens: Bei 1000 ppm empfinden rund 20 % der Personen die Raumluft als unbefriedigend. Diese Konzentration entspricht der Pettenkofer-Zahl, die von dem Hygieniker Max von Pettenkofer (1858) als Richtwert für die maximale CO2- Konzentration in Wohn- und Aufenthaltsräumen mit 0,1 Vol% CO2 (1000 ppm) definiert wurde.
Wo es viel CO2 gibt, werden auch besonders viele Keime gefunden. Die amerikanischen Wissenschaftler Rudnick und Milton zum Beispiel untersuchten 2003, wie hoch das Grippe Ansteckungsrisiko in einem Klassenraum ist. 30 Personen waren vier Stunden lang im Klassenraum, eine Person hatte akut Grippe. Das Ergebnis: Bei 1.000 ppm CO2 steckten sich fünf Personen an, bei 2.000 ppm waren es zwölf und bei 3.000 ppm sogar 15.
MAK-Werte Deutschland für CO2: 9100 mg/m3 Warum ist das so hoch?
Bei der Installation von NodeRed mit IOTstack im Docker Container auf einem Rasberry Pi Model B Rev 2 kann NodeRed nicht installiert werden. Es kommt der Fehler beim aufrufen des menu.sh Scriptes:
ERROR: Service ’nodered‘ failed to build: The command ‚/bin/sh -c for addonnodes in ; do npm install ${addonnodes} ;done;‘ returned a non-zero code: 139
Die Ursache ist, das das Model B eine ARMv6-compatible processor rev 7 (v6l) hat. Docker kann das nicht richtig erkennen, wie es hier steht. Was also tun?
Die CO2-Ampel ltd. Bundesumweltamt (PDF, Tabelle 4) wurde nun in den NodeRed-Flow der CO2-Messungen integriert. So zeigt das C02-Dashboard auch die Meldungen des UBA an. Die Meldung im Dashboard:
Weil heute Sonntag ist. „Freut euch immer„! Nun ein kleiner Java CO2 MQTT Client um auch auf allen Betriebssystemen mit Java die CO2 Daten zu empfangen. Nicht nur für den Raspberry Pi auch Mac und Windows (ungetestet;-)).
Das selbstausführende JAR laden (siehe unten) und starten mit:
Wir wollen nun mal ein CO2-Messsystem mit dem MH-Z19B aufbauen und die CO2-Konzentrationen mit einem Raspberry Pi einlesen und per MQTT an eine NodeRed-Installation senden. Parallel dazu werden die Daten noch in einer CSV-Datei geschrieben für Langzeitauswertungen. Wenn der Grenzwert von 1000 ppm erreicht ist, wird noch eine Pushover Nachricht an ein Handy gesendet, so das rechtzeitig gelüftet werden kann.
Manchmal wird ein Flow für eine gewisse Zeit nicht mehr benötigt. Man kann ihn leicht deaktivieren bzw. wieder aktivieren. Das geht nicht über ein Menü, sondern über einen doppelklick auf den TAB:
Wie hier beschrieben, in Kurzfassung mit ein paar weiteren Details.
Es werden aber ein paar Stunden für Download und erstellen der SD-Karte benötigt. Auch die erste init. für NodeRed usw. benötigt etwas Zeit (ca. 2-4 Stunden). Aber man kann in der meisten Zeit ja auch andere Dinge machen … :
Was ist den da aus der Bucht schönes angekommen? Oh ein CC2531 (Datenblatt (PDF))Sniffer Protocol Analyzer Wireless Module USB Interfac Stable for ZigBee
Vor ein paar Tagen hatte ich geschrieben, wie mit rules von openHAB über Alexa eine Sprachausgabe gemacht werden kann. Die rules wollte ich nun ersetzen durch einen nodeRED Flow. Das geht ganz einfach. Hier ein Beispiel Flow der jeden Abend um 10:30 Uhr den Text ausgibt, das ich in Bett gehen soll, damit ich morgen wieder fit bin.
Der Flow kann von nodered.org heruntergeladen werden.
Wie kann man eine Sprachausgabe über Alexa Echo machen wenn die Tür aufgeht? Bei mir kommt z.B. eine Ansage von Alexa „Die Haustür ist geöffnet worden“ oder „Die Haustür wurde geschlossen„. Das läuft bei mir analog auch für die Fenster, alles mit Kontakten von Homematic und einem CUL im USB des Pi.
Sicherung von Daten ist ja immer gut. Wenn dann mal die SD-Karte crasht, kann man sein openHAB 2 wieder herstellen. In openHAB 2 ist eine Backup und Restore Funktion integriert.
Das Homematic Ventil wurde einige Zeit von einem Raspberry Pi angesteuert. Zuerste per FHEM, dann per OpenHAB. War aber auf Dauer nicht zuverlässig, deshalb mal ein Reverse Engineering nach dem Motto: Adieu Homematic Teil 1.
Homeautomatisation ist bei mir schon Jahre im Einsatz. Das Thema hat mich schon immer sehr interessierte.
Die Dinge einfacher machen. Simplify your life oder besser: Simplify your Homeautomatisation.
Da die Bude wieder mal kalt war, weil die Heizung ausgefallen ist, habe ich den Homatic Raumthermostat und auch das Heizungsventil entfernt und wieder ein Manuelles Ventil eingebaut. Das Homatikventil werde ich bei Gelegenheit mal zerlegen. Alle Jahre wieder, war die Batterie leer, dann musste alles wieder neu angelernt (gepeert, gepairt …) und Programmiert werden usw. Und das immer dann, wenn man gerade keine Zeit oder Lust hat, oder Besuch da ist und der dann im kalten sitzt. Das war auch so bei Fhem. Bin aber schon lange auf openHAB umgestiegen.
Und zum Jahreswechsel von openHAB auf openHAB 2. Da ist auch wieder alles anders. Auch einige Anpassungen in den *.rules sind nötig. Bei der Gelegenheit habe ich alle gelöscht und habe für die relevanten Rules NodeRED Flows erstellt. Das geht ziemlich gut wenn man schon mit NodeRED Erfahrung hat.
Hier mal ein Beispiel, die vorhandene Regel, die beim öffnen der Tür eine Pushover auf unsere Handys sendet. Und für die musste auch für openHAB nach openHAB 2 einige Anpassungen gemacht werden (imports, pushover Methode …).
Hier der NodeRED Flow, der für zwei Türen und ein Fenster bei jeder Aktion eine Pushover Nachricht versendet.
Vor ein paar Tagen hatte ich die Auswertung zum Kaffeeverbrauch gepostet. Die Daten werden ja online von einem meiner Raspberry Pi erfasst. Gestern der Beitrag zu der Frage: Wann der 1. Kaffee des Tages gekocht wird.
Heute habe ich mal gefragt, um welche Uhrzeit wird bei uns eigentlich der letzte Kaffee am Abend gekocht? Man soll ja vor dem zu Bett gehen nicht noch viel Kaffee trinken.
Die Antwort im Durchschnitt um 15:14 Uhr. Der gemessene Zeitraum ist fast 2 Jahre mit über 500 Messwerte. Hier dazu die Grafik mit der Uhrzeit als Y Wert. X ist die Anzahl der Messungen (Tage). Die rote Linie der Mittelwert.
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 😉
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.
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
1
pico2wave--lang=de-DE--wave=in.wav"Warum nicht einfach auf dem Raspberrypi die mp3 oder wav Voice-Dateien selber erstellen? Viele Grüße sagt die Eule. Hi hi hi ..."
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:
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.
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!