Geschichte eines HomeLabs Intro Hallo Gemeinde, Was ist ein HomeLab und warum braucht man es unbedingt? Wie sollte man es aufsetzen und womit? Was hat man für Möglichkeiten und wie sollte es aussehen? Und zu guter letzt - was braucht man denn dafür? Reicht es nicht einfach einen Provider zu haben, da einen Speedport oder eine Fritzbox dran zu haben? Nun ja.. Klar, rudimentär reicht das schon - aber wo bleibt der Spaß? Historie - warum das alles? Beginn Die Motivation Der Beginn des Ganzen begründete sich schon im Jahre 2010 und mir war nicht klar, was das für Auswirkungen später haben würde. In dem Jahr haben wir unser Haus saniert. Es gab ein neues Dach, Außendämmung, eine neue Heizung, neue Haustür, Fenster und außenliegende Rollos.   Die Homematic-Ära Die Rollos sollten zu dem Zeitpunkt aber nicht mehr händisch mit einem Gurt hochgezogen werden, sondern irgendwie anders. Nur, was nehmen vor Schreck? So richtig viel gab es zu dem Zeitpunkt nicht und ich bin auf Homematic von ELV gestoßen. Ein Funksystem, das zu dem Zeitpunkt schon ein paar Aktoren  und Sensoren im Portfolio hatte. Also habe ich eine CCU1 (Central Control Unit) beschafft und gleichzeitig 10 Rolladen-Aktoren und ein paar Stromschalt-Aktoren. Ich höre meinen Vater noch immer: "Was ist das für Spielzeug - das wird sich nicht durchsetzen - damit hast du nur Ärger". Wie recht er doch hatte :) Nicht wegen Homematic - aber mit der Arbeit die dann hinten drauf kam. Der Anfang war gemacht. Steuern konnte man die Geräte nun mit Skripten die direkt auf der CCU, über eine Fernbedienung liefen oder über eine App auf dem iPhone (Pocket Control). Jahrelang habe ich das dann ruhen lassen - ich fand es funktional, konnte ein paar Lichter (hart an/aus, Dimmer) und eben die Rollos schalten und ich war eine Zeit lang zufrieden. Die CCU wurde von einer CCU 1 auf 2 und irgendwann auf Raspberrymatic erneuert (CCU3) - aber sonst hat sich nicht mehr viel geändert. Ich will mehr! Was nun? Wäre es nicht schön noch andere Dinge steuern zu können? Kann man vielleicht sogar sowas über den Amazon Echo steuern? Das wäre ja hartes Science Fiction! Nur wie geht das? Zu dem Zeitpunkt gab es ein paar aufstrebende Projekte - FHEM, openHAB, ioBroker, etc. und alles sah interessant aus. ioBroker it is Ich habe meine Entscheidung auf ioBroker fallen lassen, nachdem ich es mal kurz auf meinem PC installiert habe - nur - der sollte ja nicht die ganze Zeit laufen. Aber wie macht man das sonst? Ich war immer auf der Windows-Schiene unterwegs und habe nur rudimentäre Kenntnisse im Linux-Bereich. Egal. Es wurde ein Raspberry PI angeschafft und ein USB-Stick mit Debian betankt - dieses kleine Ding ist ja auch nur ein PC und bekommt jetzt ein Betriebssystem drauf. Es werde Licht Raspberry läuft (Betriebssystem auf einer SD-Karte), ioBroker installiert, läuft. ioBroker übernimmt als Zentrale ioBroker als Zentrale Zuerst wurde der ioBroker mit dem passenden Homematic-Adapter ausgestattet und verbunden. Es war nun möglich die Geräte (Rollos, Lichter) im ioBroker zu sehen und zu steuern. Über Zeit wurden dann die Programme/Trigger aus Homematic übertragen, so dass Homematic nur noch als "Befehlsempfänger" agierte, aber selbst nicht mehr wirklich Zentrale meiner Haussteuerung ist. Das hat der ioBroker übernommen. Zigbee hält Einzug Grundsätzlich hat Homematic schon gute Aktoren und ein Vorteil von Homematic ist auch, dass er auf Rückantwort der zu schaltenden Aktoren hört - nur ists schon recht teuer. Andere Hersteller und andere Protokolle fluten den Markt mit einer Vielzahl von günstigeren Geräten. Zigbee an sich ist auch ein Funkprotokoll - aber nicht auf 868 MHz wie Homematic, sondern funkt auf 2,4 GHz (kann sich also mit Wifi stören - also Vorsicht bei der Kanalwahl). Der Raspberry wurde hier also durch einen Zigbee-Funkstick erweitert, der Zigbee-Adapter installiert und der Stick irgendwie zum laufen gebracht (Firmware auf den Stick, im Gerät bekannt gemacht bzw. im Zigbee-Adapter konfiguriert) und die ersten Geräte angelernt. Auf einmal hatten wir einzelne Zigbee-Birnen, Bewegungsmelder und Sensoren für Temperatur im Einsatz. Exkurs openHAB Da ich die Geräte auch schön über eine Oberfläche steuern bzw. anschauen wollte u mir die Möglichkeiten beim ioBroker nicht gefallen haben, habe ich zwischenzeitlich auch mal nach openHAB geschaut und dessen Möglichkeiten eine Zeit lang benutzt. Nichtsdestotrotz war das eine Doppelt-Konfiguration von zwei Haussteuerungs-Zentralen und ich hab das irgendwann wieder eingestellt. Alexa, fahre alle Rollos hoch Ich habe verschiedene Integrationen zur Sprachintegration ausprobiert und bin am Ende beim "Original" geblieben. Der IOT-Adapter kostet um die 20 Euro im Jahr, aber tut gleichzeitig auch, was er soll.  kein Backup - kein Mitleid Verkonfiguriert Mist. Ich habe etwas gebastelt und jetzt geht der ioBroker nicht mehr. Backup? Ja schon, aber nur auf Applikationsebene. Jetzt gehen die Lichter nicht mehr. Die Rollos bekomme ich noch über Homematic geschaltet - aber sonst ist alles platt. Na toll. Wie bekomme ich das denn jetzt auf die Schnelle hin? Frau sitzt in der Küche im dunkeln... So gehts nicht weiter Wenn man von Test-Spielerei auf ein eher benutzbares/produktives Umfeld geht, dann sollte man sich möglichst vorher Gedanken machen, wie man den "Service" erbringt, wie man ihn schützt - und wie man ihn wiederherstellt, sollte er nicht mehr funktionieren. Zu dem Zeitpunkt habe ich dann angefangen die SD-Karte des Raspberrys zu clonen. Das war natürlich super ineffizient. ioBroker stoppen, Karte raus, Balena Etcher benutzen, um die 32GB-Karte zu sichern, Verify laufen lassen, auf eine andere Karte zurückspielen, ioBroker starten. Der ganze Vorgang hat gerne mal ne Stunde gedauert, wo dann nichts im Haus ging. Zumindest war es aber eine Art von Sicherung, die ab- und zu gemacht wurde und vor einem Totalausfall geschützt hatte - aber auf die Dauer auch nicht praktikabel und recht unbequem. ioBroker im Docker erste Virtualisierungsversuche Das mit den SD-Karten war schon irgendwie doof. Zum einen sind die Karten recht langsam, möchten nicht so gerne viele Lese/Schreibzugriffe und ich kann jetzt auch nicht anfangen anstelle der SD-Karte eine SSD dranzuhängen. Würde dann auch schwer/teuer werden, wenn ich dann anstelle mit SD-Karten mit SSDs zum Backup jongliere. Docker ioBroker läuft doch auch im Docker - da hat der User BUANET schon einiges bereit gestellt. Das wollte ich mir anschauen. Also habe ich mir einen kleinen Intel NUC gekauft und da Ubuntu, Docker und ioBroker installiert. Jetzt könnte man doch den Docker-Container wegsichern und wenn was schief geht wieder herstellen. DAS ist doch ne gute Sache. Zu dem Zeitpunkt war mir aber noch nicht klar, dass Docker schön zwischen "dem Programmteil"/Docker-Image und den - sagen wir mal - Nutzdaten/Konfigurationseinstellungen trennt. Man könnte schön sagen: die Installation vom ioBroker liegt auf einem Storage und das Image liegt auf dem Raspberry und er baut sich das beim Containerstart schön zusammen. Hätte man machen können, wäre auch einfacher gewesen - habe ich aber nicht. Also wurde der Docker-Container immer mal gestoppt u alles wegkopiert - auch wieder ein Ausfall u manuell - aber man musste keine SD-Karten jonglieren u es ging auch deutlich schneller. Zudem musste man sich mit dem Rest der Docker-Architektur mal auseinander setzen. Sämtliche Ports der verschiedenen Adapter mussten "aus dem Dockernetzwerk" gereicht werden, Callback-Adressen in den Adaptern konfiguriert werden und so weiter. So war ich definitiv noch nicht am Ziel. Eines Tages wurde der ioBroker aber zu ressourcenhungrig (habe nun über 50 verschiedene Instanzen laufen) und ich musste auf etwas stärkeres gehen. Dieses Mal aber nicht so halbgar - sondern richtig! Infrastruktur / Hardwaregedanken bisherige Hardware - ziemlich alles SPOF Folgende Infrastruktur war bisher im Einsatz Provider: Telekom - 200/40 MBit Router: Fritz.Box 7590 für Internet, Telefonie, VPN Core-Switch: Netgear Switch NAS: Synology 416 mit 4x 3TB Platten im RAID5 Raspi: CCU3 für Homematic NUC: ioBroker im Docker-Container  Grundsätzlich ein solides Setup für den Heimanwender. Schnelles Internet, Fotos u Dokumente liegen auf einem NAS (u repliziert zusätzlich auf One.Drive) - eigentlich ist man doch fertig, oder? Die Frage ist - was passiert, wenn eine Komponente kaputt geht? Wenn die FritzBox oder der Core-Switch nicht mehr funktioniert, dann geht eigentlich Garnichts mehr. Das geht bestimmt auch besser. Physikalisch zu Platform zu Applikationen Immer das gleiche In der Konzern-IT-Sicht wie auch zuhause gilt: Es beginnt mit dem physikalischen Platz, dann die Infrastruktur und später ist Zeit für den Service/die Applikationen. Klar hätte ich gerne eine 100%ig sternförmige Verkabelung, das in einem 42 Höheneinheiten-19" Rack seinen Ursprung hat, aber das ist bei mir nicht gegeben. Also mache ich es mir mit gegebener Verkabelung so schön (aus IT-Sicht) wie es geht. Der Platz, wo der Telekom-Knoten terminiert - quasi mein DEMARC im Treppenhaus, hat nun ein kleines Rack, Steckdosenleisten an einer kleinen USV und einen Lüfter bekommen. Jetzt gehts los - wo geht die Reise hin? Wie erwähnt wurde der NUC zu klein und ich dachte mir - viel hilft viel und hab für teures Geld gleich mal einen recht leistungsstarken MiniPC gekauft - ohne Sinn und Verstand weil: was passiert, wenn der kaputt geht? Und es passierte, was passieren musste. Proxmox Aber erst mal zurück zum Anfang. Der MiniPC kam und ich habe Proxmox darauf installiert - eine Virtualisierungsplatform/Hypervisor. Vorgreifend kann ich sagen: Warum habe ich das nicht schon früher getan? So ein super Produkt - und kostenlos. Das hätte mir einige graue Haare erspart. Es ist möglich mehrere Maschinen als Cluster laufen zu lassen, Snapshots der virtuellen Maschinen zu erstellen, automatisierte Backups laufen zu lassen und - wenn was kaputt geht - schnell wiederherstellen zu lassen. Nie mehr Container stoppen, SD-Karten jonglieren oder ähnliche Verrenkungen zu machen. Yeah! Die Synology Diskstation stellt jetzt einen NFS Share bereit, der in Proxmox als Laufwerk eingebunden ist und jede Nacht läuft von allen Maschinen ein Backup. Der kleine NUC sowie der neue MiniPC agieren als Cluster - nur - war nicht weit genug gedacht, da in einem Cluster natürlich Ausfälle von einem Gerät auf dem anderen Gerät abgefedert werden soll. Wenn Goliath stirbt, hats David dann nicht so leicht. Und eines Tages (innerhalb der Garantiezeit gingen die Lichter aus). Geekom MiniPC Er starb. Am helllichten Tag. Wiederbelebung erfolglos. Das Problem war nur, dass der kleine NUC ja alleine ioBroker schon kaum stemmen konnte - geschweige denn andere Applikationen, die noch oben drauf gekommen waren. Also wieder einen Ausfall produziert - das war also nicht der Weisheit letzter Schluss. Kudos an den Geekom-Support - auch nach 6 Wochen haben sie das Gerät anstandslos zurückgenommen und die komplette Summe erstattet. Für das Geld habe ich 2 kleinere MiniPCs von NiPoGi gekauft, die aber immer noch stark genug sind, um alleine die virtuellen Maschinen zu halten. Diese habe ich dem Cluster hinzugefügt (jetzt 2x NiPoGi, 1x NUC) - läuft bestens. Jetzt war es Zeit mit dem richtigen Spaß weiter zu machen. Infrastruktur und End-User Applikationen. Applikationen Infrastruktur-Applikationen Proxmox Wie erwähnt ist Proxmox die Virtualisierungsplattform für die Betriebssysteme und hier läuft auch der größte Teil vom Backup, da hier die ganzen Infrastrukturdienste wie PiHole, Router, Docker, etc als virtuelle Maschinen laufen und diese auf die Synology gesichert werden. PFSense PFsense hat die meisten Funktionen der Fritzbox (bis aufs Telefon) übernommen. PFsense ist eine Routersoftware, die Dinge wie Einwahl, Firewall, DHCP, VPN u andere Sachen bereit stellt. Da diese Firewall/Router-Platform jetzt virtuell ist, kann sie auf jedem der Clusterknoten laufen (eine Netzwerkkarte ist am LAN, eine an einem separaten Mini-Switch, welcher beim Provider-Uplink mit eingesteckt ist, um Redundanz zu gewährleisten. DNS Mittel der Wahl ist hier PiHole in Verbindung mit Unbound. Diese 2 Dienste blocken ungewollte Werbung und fragen direkt die Webseite u gehen nicht mehr über Google oder Cloudflare - damit kann kein DNS Profil vom Haushalt mehr erstellt werden. Docker Docker als MACVLAN eingerichtet, so dass jeder Container seine eigene IP erhalten kann (dann muss man keine Ports mehr aus dem Docker-Netzwerk rausmappen), die Applikation Portainer als Docker-Konfigurator und die Applikations-Daten mit auf die Synology. Raspberrymatic Um einen Raspberry einszusparen konnte ich bei ELV für 29 Euro einen Homematic-Funkstick erwerben und das System läuft jetzt auch auf Proxmox. ioBroker ioBroker ist aus dem Docker auf eine eigene Ubuntu-Installation verschoben worden u der Zigbee-Stick ist einem Ethernet Zigbee-Coordinator gewichen, so dass Failover im Cluster möglich ist. Influx/Grafana Eine Influx-Datenbank und Grafana-Werteschreiber, der von ioBroker genutzt wird Docker-Infrastruktur-Dienste Cloudflare DDNS Ein kleines Skript, was die aktuelle IP-Adresse der PFSense an die Domäne Streb.BIZ übermittelt, damit Zugriffe von Außen möglich sind. Homarr Dashboard für Benutzer und Administratoren Homepage schönes YAML-basiertes Dashboard mit vielen Widgets MotionEye Wandelt den Kamera-Stream in mpg um, damit das Dashboard Lovelace das Video auch anzeigen kann Netboot.XYZ Installiert praktisch jedes Betriebssystem über PXE - man braucht quasi keine USB-Sticks mehr dafür Nginx Proxy Manager Reverse-Proxy, der gesicherte Zugriffe auf das Heimnetz ermöglicht sowie das Wildcard-Zertifikat für Streb.BIZ erneuert. Shlink Link-Shortener Applikation Trillium Dokumentations-Portal Unifi Network Controller Management/Konfiguration der Switche Webserver einfach ein Webserver End-User-Applikationen BookStack BookStack ist ein schickes Blog-Portal u hosted diesen Blog Paperless ein ausgezeichnetes Programm, um Dokumente zu sortieren, Tags zu vergeben, etc. PhotoPrism lokaler Bild-Hoster mit AI Funktionen Stirling PDF es gibt nichts besseres um PDFs zu bearbeiten Tandoor ein selbst gehostetes Rezept-Portal - ähnlich wie Chefkoch