Smarthome PI Installation mit Raspbian, Node-Red und Mosquitto

Warum das Ganze? (Und was überhaupt?)

Ich habe bereits einige Geräte angesammelt, die man in einem Smarthome auch steuern könnte. Dazu gehören die Wlan-Steckdosen von TP-Link⭐, einen ESP8266⭐ mit Tasmota-Firmware, ein IKEA Floalt LED-Panel und auch meinen Desktop-PC. Die generelle Erweiterbarkeit (m)eines Smarthomes kann ich mir dabei auch leicht vorstellen. (=Ich werde weitere Geräte und Einsatzwecke finden, die ich steuern möchte.)

Ich habe einige andere Smarthome-Hubs angesehen und mich für Node-Red + MQTT (Mosquitto) entschieden. Mir war wichtig, dass möglichst viel des Smarthomes lokal ohne Clouddienste läuft. Das schließt Lösungen mit Alexa und Google Home direkt weitestgehend aus. Ich will, dass auch bei einem Ausfall des Dienstleisters oder des Internets so viel des Smarthomes noch funktioniert, wie nur möglich. Was kann ein Amazon Echo noch ohne Internetzugang?

Weiterhin bastel ich gerne, so dass eine Lösung, die mehr Richtung DIY und Basteln/Programmieren geht, gut zu mir passt.

Video zum Blogeintrag

Schau dir gerne das Video an!

Und was nun genau?

Ich möchte Node-Red und einen MQTT-Broker auf einem Raspberry-PI betreiben. Dafür verwende ich folgende Hardware:

  • Raspberry Pi 3 Model B⭐: Der PI verbraucht viel weniger Strom als ein normaler Computer und damit kann man ihn ohne schlechtes Gewissen 24/7 betreiben, was ja für ein Smarthome-Hub erforderlich ist. Falls du noch gar keinen Raspberry PI hast, empfehle ich dir den aktuelleren PI 4⭐.
  • Anker PowerPort+1 18W USB Ladegerät⭐: Ein erstklassiges Handyladegerät, was extrem viel Strom bietet und alle verbreiteten Schnellladetechniken der verschiedenen Hersteller unterstützt. Es liefert auch für den PI genug Strom. Du kannst auch ein Micro-USB Netzteil verwenden, das du schon hast.
  • Anker Micro USB Kabel⭐: Das von mir vorgeschlagene Ladegerät kommt ohne Kabel daher, das hier ist super, wir haben jetzt schon einige davon zuhause.
  • MicroSD Speicherkarte: Du brauchst eine Speicherkarte, wo das Betriebssystem für den PI drauf kommt. Sie muss mindestens 8GB groß sein. Je schneller sie ist, desto besser. Eine schnelle und gute ist z.B. SanDisk Ultra 16GB microSDHC⭐. Ich habe eine 128GB Karte verwendet, die ich noch da hatte.
  • Dein PC benötigt ein Kartenlesegerät für microSD für die initiale Erstinstallation, hier ist ein super schnelles von Kingston⭐!

Installation

Raspbian auf microSD Karte kopieren

Raspbian Logo
Raspbian Logo

Auf der Homepage vom RaspberryPI habe ich Raspbian heruntergeladen. Es gibt da aktuell mehrere Versionen, ich habe Raspbian Buster with desktop gewählt, später aber festgestellt, dass ich den Desktop niemals brauche, es sollte also auch problemlos mit Raspbian Buster Lite funktionieren.

Um das jetzt auf die microSD Karte drauf zu bekommen, benutze ich Etcher. Ich habe balenaEtcher-Setup-1.5.60.exe gewählt, aber der Link zeigt immer zur neuesten Version. Es gibt auch Varianten für Mac.

Nach der Installation startet man Etcher und wird mit dem sehr übersichtlichen UI begrüßt:

Etcher UI
Etcher UI

Hier muss man entsprechend des UIs 3 Schritte durchführen:

  1. Man wählt das Raspbian Image aus, was man gerade runter geladen hat. Wenn es nochmal gezippt ist, kann das so bleiben, denn Etcher versteht zip Dateien!
  2. Wenn die microSD Karte eingesteckt ist, muss man diese dann bei Select target auswählen. Bitte wähle hier nicht deine Festplatte aus. Etcher hilft hier aber auch etwas.
  3. Jetzt musst du nur noch auf Flash klicken und ein paar Minuten warten und deine microSD Karte hat Raspbian drauf.

Etcher wirft die microSD Karte aus, wenn es fertig ist, eigentlich will ich aber noch mehr machen. Daher muss man jetzt die Karte einmal aus dem Leser ziehen und wieder rein stecken. Jetzt sollte im Arbeitsplatz ein Laufwerk auftauchen, was boot heißt. Dort geht man rein und legt eine ganz leere Datei mit dem Namen SSH (alles groß!) an. Das geht z.B. in dem man eine neue txt-Datei anlegt und die Dateiendung entfernt. Das signalisiert Raspbian, dass der remote SSH Zugang von Anfang an aktiviert werden soll. Das ist mir wichtig, denn ich will weder später noch zur Ersteinrichtung Monitor und Maus und Keyboard usw. anschließen müssen.

Wenn man den PI über ein Netzwerkkabel betreiben will (oder muss), ist man jetzt fertig. Ich will ihn über WLAN nutzen, daher muss man auf der microSD Karte auch noch die eigenen WLAN Anmeldedaten hinterlegen. Dazu macht man eine neue Datei mit dem Namen wpa_supplicant.conf. Diese öffnet man dann mit einem Texteditor - ich verwende Visual Studio Code - und fügt folgenden Text ein:

country=US # Your 2-digit country code
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
    ssid="Hier muss der Name deines WLANs rein"
    psk="und hier das Passwort"
    key_mgmt=WPA-PSK
}

…dass du an den richtigen Stellen deine Datein eintragen musst, hast du dir bestimmt gedacht?

Jetzt ist die microSD Karte fertig und kann in den PI gesteckt werden. Dann kann der PI an den Strom angeschlossen werden.

Über SSH mit dem PI verbinden

Wenn der PI hochgefahren ist und alles geklappt hat, sollte er im WLAN erreichbar sein. Du benötigst nun seine IP-Adresse. Du solltest dich auf deinem Router (z.B. Fritzbox) einloggen können und dort die IP des Gerätes bekommen. Falls du dort einstellen kannst, dass dieses Gerät immer die gleiche IP bekommen soll, empfehle ich dir auch diese Einstellung. Falls du die IP nicht raus bekommst, kannst du es stattdessen auch mit dem Gerätenamen raspberrypi statt einer IP versuchen.

Putty UI
Putty UI

Zum Verbinden über SSH verwende ich Putty. Nach dem Download musst du es nur starten und IP/Namen des PIs angeben und auf Open klicken. Beim ersten Mal muss man eine Sicherheitsfrage bestätigen, dann kommt der Login des PI.

Benutzername = pi
Standardpassword = raspberry

Mit dem Standardlogin kann man sich dann einloggen.

Raspbian einrichten

Ist man eingeloggt auf dem PI, macht man immer erst mal ein generelles Update des Systems mit den folgenden zwei Befehlen:

sudo apt-get update
sudo apt-get upgrade -y

Danach macht man sudo raspi-config und kann erstmal grundlegende Einstellungen für den PI vornehmen. Wenn man will, kann man hier VNC aktivieren, um sich auch remote mit einer grafischen Oberfläche verbinden zu können. Ich hab das nicht getan.

Dann habe ich eingestellt, dass bei Bootvorgang nur ins Terminal bzw. in die Konsole gebootet werden soll. Warum soll der PI die graphische Oberfläche laden, wenn die doch nie jemand sehen wird? Falls du das machst und sie dann doch mal brauchst, tippe einfach startx auf der Konsole.

Als Locale habe ich dann noch de_DE.UTF8 ausgewählt, das sorgt dafür, dass einige Texte und Fehlermeldungen auf Deutsch sind.

Außerdem kann man hier auch den Hostname des PIs ändern. Ich habe ihn auf smarthome gesetzt, so dass ich den anstatt der IP-Adresse ab sofort verwenden kann.

Das wars mit raspi-config und wenn man es verlässt, fragt er, ob man neustarten möchte, das habe ich getan.

Node-Red und Mosquitto installieren

Ich bleibe noch einen Moment in Putty. Auf der Homepage von Node-Red gibt es ein handliches Kommando, was man nur in die Kommandozeile kopieren muss und das Skript sorgt dann dafür, dass alles richtig für Node-Red eingerichtet wird.

Hier ist eine Kopie der Zeile:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Wenn Node-Red installiert ist, will ich noch, dass es mit dem System zusammen automatisch startet, dafür füre ich folgende Zeilen aus. Die erste aktiviert den Start bei Systemstart, die zweite startet Node-Red jetzt sofort.

sudo systemctl enable nodered.service
sudo systemctl start nodered.service

Jetzt brauchen wir nur noch Mosquitto, das wird mit folgendem Kommando installiert:

sudo apt-get install mosquitto mosquitto-clients -y

Mosquitto startet ohne weitere Eingriffe mit dem System und auch sofort. Das Setup ist damit fertig, jetzt kann man Testen!

Test

Mosquitto testen

Dieser Unterpunkt ist kein Lerntutorial für Mosquitto. Auf der Kommandozeile kann man ein Topic abonnieren mit

mosquitto_sub -d -t /home/data

Wenn man das gemacht hat, bleibt das Programm an, bis man es mit STRG+c unterbricht. Es wird jede Nachricht des Topics (hier /home/data) ausgeben. Man kann sich übrigens auch auf alle Topics abonnieren, in dem man mosquitto_sub -d -t "#" macht.

Jetzt öffne ich eine zweite Putty-Instanz, verbinde mich wieder mit dem PI und mache dann das folgende Kommando, um auf das gleiche Topic eine Nachricht zu senden mit dem Inhalt Hello World:

mosquitto_pub -d -t /home/data -m "Hello World"

Man kann auch noch eine Session öffnen und ein weiteres mosquitto_sub ausführen. Dann wird deutlich, dass Mosquitto Nachrichten auch vervielfachen kann.

Node-Red testen

Das Hauptinterface von Node-Red läuft im Browser, dementsprechend kannst du an deinem PC oder Mac jetzt den Browser nehmen und die URL http://smarthome:1880 öffnen. Falls du einen anderen Hostnamen vergeben hast, musst du den natürlich ersetzen. Der Standardport von Node-Red ist jedenfalls 1880.

Zum ersten Testen habe ich hier eine Inject-Node in den Flow gezogen mit Drag’n’Drop und eine Debug-Node. Wenn man jetzt eine Linie zwischen dein beiden zieht, kann man Deploy (oben rechts) klicken. Dann kann man auf das kleine Viereck bei der Timestamp-Node klicken und sieht auf der rechten Debugausgabe dann einen neuen Eintrag. Das sieht insgesamt ungefähr so aus:

Node-Red Beispielflow
Node-Red Beispielflow

Im Video zeige ich auch noch, wie man mit Node-Red MQTT-Nachrichten senden und empfangen kann und so schließt sich dann der Kreis mit Mosquitto.

Frenchcleat Halter für die Kantenfräse

Was soll ein Halter für die Kantenfräse leisten?

Ich möchte meine Bosch Kantenfräse⭐ an der Frenchcleat-Wand unterbringen. Wichtig ist mir dabei, dass man sie einfach abstellen kann. Das heißt für mich, dass man sie so hält, wie man sie gewöhnlich hält beim hinstellen und dass man sie auch mit Fräskopf abstellen kann. Dabei soll es möglich sein, dass der Fräskopf auf seiner eingestellten Höhe in der Maschine verbleiben kann. Außerdem soll auch der Schraubenschlüssel Platz finden.

Es ist ja ein Gerät mit Akku, daher muss ich kurz auch drauf eingehen, was mit dem Akku und Ladegerät passieren soll. Viele bauen sehr große Frenchcleathalter, die alles beherbergen und alles können. Das hat natürlich den Vorteil, dass man immer alles zu einem Gerät an einem Ort hat, aber es hat auch einen Nachteil: Je größer der Halter ist, desto mehr verliert man an Flexibilität. Flexibilität ist jedoch der Grund, warum man eine Frenchcleatwand baut. Ich muss viel häufiger an die Fräse als an Ersatzakku und Ladegerät, daher will ich die Fräse zentral an die Wand bringen, wo ich gut rankomme. Dieser Bereich ist aber sozusagen für die Werkzeuge begehrt, weshalb ich da keinen zu großen Halter hin bauen will. Der Rest bleibt erstmal im Schrank und ggf. baue ich nochmal irgendwann einen weiteren Halter, der Akkus und Ladegerät beherbergt und dann abseits hängt.

Video

Es gibt natürlich auch hier wieder ein Video:

Designphase

Es soll ein schlichtes Design werden aus einer Rückwand und einer Bodenplatte. Die Bodenplatte soll dabei einen Winkel haben, der etwas mehr als 90° zur Rückwand hat, so dass die Fräse leicht in den Raum zeigt und so einfacher zu greifen ist. An der Rückwand soll der Schraubenschlüssel für den Fräserwechsel hängen und die Bodenplatte bekommt eine gefräste Aussparung, in der die Fräse genau Platz hat.

Umsetzung

Ich habe mit der Bodenplatte angefangen. Es ist ein etwas größeres Stück Siebdruckplatte. Zuerst habe ich die Fräse draufgestellt und abgemalt. Die Platte hat eine Dicke von 12mm und ich will eine Vertiefung von 6mm ausfräsen, wo die Fräse später steht. Ich habe das erst versuchsweise mit der Kantenfräse selbst gemacht, aber sie hat Ihre Stärken - wie der Name schon sagt - beim Fräsen von Kanten. Bei dieser Fräsung fehlt die Absaugung, man kann also Freihand nichts erkennen und vorallem fehlt auch die Power. Die Fräse springt immer wieder verzweifelt hoch oder die Drehzahl bricht hörbar ein. Ich bin dann fix auf meine normale Bosch Oberfräse⭐ gewechselt. Damit habe ich freihand die Fläche wie gewünscht gefräst. In den zwei engeren Ecken musste ich mit dem Stechbeitel von Hand nacharbeiten.

Gefräste Bodenplatte
Gefräste Bodenplatte

Jetzt habe ich an der Kreissäge die Platte auf die richtige Größe geschnitten. Vorher war es ja sehr angenehm, da die größere Platte leichter einzuzwingen war für das Fräsen. Die Bodenplatte und Rückwand sind nach dem Sägen ungefähr gleich groß (ca. 12x30cm). Die Verbindung der beiden Platten wollte ich anschrägen und hab hier die Tischkreissäge leicht auf Gehrung gestellt. Das musste ich mehrfach nachkorrigieren, bis mir der Winkel der hängenden Bodenplatte zugesagt hat.

Ich habe bei beiden Platten leichte 45° Ecken geschnitten und beide Platten haben rundherum ganz leicht mit der Kantefräse eine 45° Kante erhalten. Anschließend habe ich beide Platten erst miteinander verleimt und dann noch verschraubt.

Um nun den Schraubenschlüssel für den Fräskopfwechsel an der Rückwand aufnehmen zu können, habe ich eine Schraube vorgesehen. Leider hatte ich nicht bedacht, dass der Schraubenschlüssen über den Schraubenkopf passen muss. Er passt natürlich nicht! Nächstes Mal würde ich einfach einen Nagel nehmen. Nun hatte ich das Schraubloch aber schon. Ich habe also eine etwas längere Schraube rein geschraubt und dann den Kopf mit der Flex entfernt.

Rückwand des Halters mit angehängtem Schraubenschlüssel
Rückwand des Halters mit angehängtem Schraubenschlüssel

Irgendwann hatte ich noch die eigentliche Frenchcleatleiste durch Schrauben festgemacht und dann ist der Halter schon fertig.

Fertiger Frenchcleathalter für die Bosch Kantenfräse
Fertiger Frenchcleathalter für die Bosch Kantenfräse

Fazit

Ich bin sehr zufrieden mit dem Halter an sich. Verbessern muss ich vorallem meinen Umgang mit der Tischkreissäge, denn wie man sieht leidet der Halter unter starken Ausrissen. Auch bin ich nicht zufrieden mit mir selbst, wie ich mich mit dem berechnen der Winkel angestellt habe, aber ist ja dann doch noch was geworden!

weiterlesen…

Wickeltisch für die Badewanne selbst bauen!

Nachwuchs ist auf dem Weg!

Wir haben schon im Ikea und bei Amazon alles leer gekauft. Was so ein kleines Etwas alles braucht ist echt beeindruckend. Jedenfalls habe ich mir sagen lassen, müssen die auch regelmäßíg gewickelt werden und dafür haben wir zuhause eine Wickelunterlage. Wir haben uns hier für eine schöne Wickelauflage von Julius Zöllner⭐ entschieden. Aber wo legt man die Unterlage nun drauf? Häufig sieht man, dass Aufsätze für Kommoden verwendet werden, aber das Kinderzimmer wird wohl die ersten Monate sonst nicht verwendet werden und deshalb wollen wir es noch nicht beheizen und im Schlafzimmer haben wir keinen Platz, daher kam mir die Idee, dass wir einen Wickelaufsatz für die Badewanne benutzen könnten.

weiterlesen…

Fake Alarmanlage selber bauen! Naviklau und Autodiebstahl günstig verhindern!

Fake Alarmanlage selber bauen!

Einem guten Freund wurde das Auto aufgebrochen und es wurde das komplette Navigations- und Entertainmentsystem geklaut. Das Auto hat auch keine Alarmanlage. Ich habe das beobachtet und mir meine Gedanken gemacht. Eine Alarmanlage nachzurüsten ist möglich, aber auch teuer und dann bleibt die Frage, ob sie wirklich was bringt?! Meine Idee war nun, die Existenz einer Alarmanlage zu faken in dem man die charakteristisch blinkende LED einfach nachbaut. Der Dieb kann vor dem Aufbruch des Autos ja nicht wissen, ob das nun Fake oder echt ist, sofern er es nicht an Details erkennt.

weiterlesen…