In den letzten Jahren habe ich mein Zuhause mit einer ordentlichen Portion intelligenter Technologie ausgestattet. Dazu gehört die Steuerung von Lichtern und Steckdosen, die Überwachung des Status verschiedener Geräte, die Messung meines Strom- und Wasserverbrauchs und sogar die Abschaltung der Wasserversorgung im Falle eines Lecks. Die gesamte Technologie wird über einen Hub koordiniert, auf den ich ursprünglich über eine klassische browserbasierte Oberfläche zugegriffen habe. Aber das Scrollen und Klicken durch die Bildschirme, um die gewünschte Anzeige oder Einstellung zu finden, ist a) langsam und b) langweilig. Ich wollte eine schnelle und unterhaltsame Benutzeroberfläche: ein physisches Bedienfeld mit Bildschirmen und Tasten.

So etwas wie der Kontrollraum eines Kernkraftwerks im Jahr 1979 Das chinesische Syndrom. Ich war ungefähr 10 Jahre alt, als ich diesen Film sah, und mein Hauptgedanke, als ich Jack Lemmon dabei zusah, wie er versuchte, einen Zusammenbruch zu vermeiden, war: „Mein Gott, diese Panels sehen cool aus!“ » So wurden sie zu meinem Polarstern für dieses Design.

Bevor ich an den ästhetischen Elementen arbeiten konnte, musste ich darüber nachdenken, wie mein Panel Ein- und Ausgänge verarbeiten und mit den Systemen meines Zuhauses kommunizieren würde. Die Geräte in meinem Zuhause sind über die Open-Source-Plattform Home Assistant miteinander verbunden. Mit einer Open-Source-Plattform muss ich mir beispielsweise keine Sorgen machen, dass ich aufgrund einer erzwungenen Aktualisierung eines proprietären Systems mein Licht nicht einschalten kann oder mich frage, ob jemand in der Cloud die Aktivitäten in meinem Zuhause überwacht.

Das Herzstück meines Home Assistant-Setups ist ein Hub, der von einem alten Linux-PC betrieben wird. Es verwaltet drahtlose Verbindungen mit meinen Sensoren, Geräten und anderen Geräten. Bei handelsüblichen Geräten wie meinem Energiezähler erfolgt diese Kommunikation normalerweise über Z-Wave. Meine Heimgeräte sind mit den GPIO-Pins eines Raspberry Pi verbunden, der ihren Status über WLAN unter Verwendung des MQTT-Standardprotokolls des Internets der Dinge weiterleitet. Ich habe mich jedoch für eine kabelgebundene Ethernet-Verbindung zwischen der Zentrale und meinem Hub-PC entschieden, da ich so Power over Ethernet (PoE) für die Stromversorgung der Zentrale nutzen konnte.

Eine Vielzahl elektronischer Komponenten wie einzelne LEDs und Siebensegmentanzeigen, Tasten und Schalter.Zu den verschiedenen Arten von Komponenten, die im Bedienfeld verwendet werden, gehört ein Touchscreen [A]LED-Bildschirme [B]Raspberry Pi [C]Power-over-Ethernet-Karten [D]und einen Not-Aus-Knopf [E]. James Provost

Eigentlich benutze ich zwei Ethernet-Verbindungen, da ich beschlossen habe, die Funktionalität des Bedienfelds auf zwei Raspberry Pis Modell 3B+ aufzuteilen, die jeweils etwa 35 US-Dollar kosten (eine vollständige Liste der Materialien ist in meinem GitHub-Repository verfügbar). Ein Pi steuert einen Touchscreen, während der andere die Tasten und LEDs verwaltet. Jedes ist mit einem zusätzlichen PoE-„Hut“ für 20 US-Dollar ausgestattet, um Strom über seinen Ethernet-Anschluss zu beziehen.

Für die Ansteuerung aller Tasten und LEDs sind mehr als 50 I/O-Signale erforderlich, mehr als der GPIO-Header eines Pi unterstützen kann. Obwohl dieser Header 40 Pins hat, sind in der Praxis nur etwa 26 verwendbar. Deshalb habe ich drei I2C-Extender für jeweils 6 US-Dollar verwendet, die jeweils 16 I/O-Signale verarbeiten und über einen zweiadrigen Datenbus weiterleiten können.

Ich muss mir keine Sorgen machen, dass ich aufgrund eines erzwungenen Upgrades meine Lichter nicht einschalten kann.

Die Software, die jeden Pi antreibt, verfügt auch über eigene Funktionen. Dies geschieht mithilfe von Docker-Containern: Softwareumgebungen, die als eigenständige Sandboxen fungieren. Der für den Touchscreen verantwortliche Pi verfügt über drei Container: Einer führt einen Browser im Kiosk-Modus aus, der eine grafische Darstellung vom Home Assistant-Hub abruft. Ein zweiter Container führt ein Python-Skript aus, das Eingaben vom Touchscreen (z. B. das Tippen auf ein Symbol für einen anderen Informationsbildschirm) in Anfragen an den Hub übersetzt. Ein dritter Container betreibt einen lokalen Webserver: Wenn der Kiosk-Browser auf diesen lokalen Server statt auf den Hub verweist, werden auf dem Bildschirm interne Diagnoseinformationen angezeigt, die für die Fehlerbehebung nützlich sind.

Der andere Pi verfügt über zwei Container, in denen Python-Skripte ausgeführt werden. Einer verarbeitet alle Tasteneingaben und sendet Befehle an den Hub. Der andere fordert Statusinformationen vom Hub an und aktualisiert alle LEDs entsprechend.

Der erste Raspberry Pi verfügt über Container mit der Bezeichnung „Touchscreen Controls“, „Diagnostic Web Server“ und „Kiosk Web Browser“. Der zweite Raspberry Pi verfügt über Container mit der Bezeichnung „Button Script“ und „LED Script“.Eingabe- und Ausgabefunktionen werden auf Softwarecontainer verteilt, die auf dem Raspberry Pis des Panels ausgeführt werden. Diese kommunizieren mit einem Hub, um Befehle zu senden und Statusaktualisierungen zu erhalten. James Provost

Diese Container laufen auf BalenaOS, einem Betriebssystem, das für die Ausführung dieser Sandboxen auf Edge-Geräten sowie auf eingebetteten Geräten wie dem Pi entwickelt wurde. Vollständige Offenlegung: Ich bin der Leiter für die Aktivierung von Edge AI für Balena, dem Unternehmen, das für BalenaOS verantwortlich ist, aber ich habe damit begonnen Aufgrund seines Container-basierten Ansatzes hat er das Betriebssystem bereits vor seinem Eintritt in das Unternehmen installiert. Sie können Docker-Container mit dem Raspberry Pi-Betriebssystem ausführen, aber BalenaOS erleichtert die Verwaltung von Containern, einschließlich des Startens, Stoppens und Aktualisierens aus der Ferne.

Sie denken vielleicht, dass diese Software-Infrastruktur zu viel des Guten ist, wenn es darum geht, nur den Zustand einiger Tasten zu lesen und einige Lichter einzuschalten, aber ich mag Container, weil sie es mir ermöglichen, an einem Subsystem zu arbeiten, ohne mir Gedanken darüber machen zu müssen, wie es den Rest des Systems beeinflusst: Ich kann daran herumbasteln, wie Tastendrücke an den Hub gesendet werden, ohne den Touchscreen zu stören.

Die Tasten und verschiedenen Bildschirme sind in einem Satz 3D-gedruckter Panels montiert. Ich habe diese zunächst in voller Größe auf Papier gezeichnet und dann die 3D-Druckdateien in TinkerCAD erstellt. Die Etiketten für jede Bestellung wurden zusammen mit einem Diagramm der Wasserleitungen meines Hauses als Vertiefungen in jedes Segment gedruckt, dann habe ich sie als Kontrast mit weißer Spachtelmasse ausgefüllt. Anschließend habe ich alle Paneele in einem „schwebenden“ Rahmen montiert, der im Handel für 45 US-Dollar erhältlich ist.

Durch ein kleines Wunder des kreativen Geistes passten die Paneelsegmente und der Rahmen beim ersten Versuch perfekt zusammen. Das fertige Schild habe ich zum großen Erstaunen meiner Familie im Flur meines Hauses angebracht. Aber das stört mich nicht: Sollte ich jemals ein Wasserleck haben, kann ich den großen Notfallknopf drücken, um das Hauptventil zu schließen, mit der ganzen Souveränität von Jack Lemmon, der versucht, eine Kernschmelze zu verhindern!

By rb8jg

Leave a Reply

Your email address will not be published. Required fields are marked *