Da sich in der letzten Zeit die Anfragen bzgl. des Schlüsselbretts häufen und ich auch im Loxone Universum immer wieder über eine ähnliche Frage / Anforderung stolpere, habe ich mich entschlossen zumindest einen Teil zur Hardware des Prototypen zu schreiben. Immerhin ist seit dem ersten Beitrag zum smarten Schlüsselbrett nun mehr als ein Jahr vergangen 😳 . Am Ende wird es auch ein kleines Testprogramm mit Grundfunktionalitäten geben. Die tatsächliche Einbindung in Loxone wird dann vermutlich erst bei der Inbetriebnahme meines eigenen Smart-Homes entstehen.. also irgendwann an Weihnachten 202X 😛
Die Hardware bzw. Schaltplan, Layout und Stückliste werden selbstverständlich wieder kostenlos zur Verfügung gestellt 🙂 Wer möchte kann auf der rechten Seite der Homepage natürlich gerne eine kleines Trinkgeld für die Baustellen-Kaffeekasse hinterlassen 😉
1. Die Idee
Die Bauherrin hat ja bereits in Teil 1 der Beitragsserie unsere Gedankengänge zum Thema Schlüsselbrett geschildert. Da uns die Lösung mit den steckbaren Klinke-Steckern als Schlüsselanhänger mit eingelötetem 1Wire-ID Chip zu wackelig war, habe ich mich nochmal ausführlicher mit den von Loxone ebenfalls verwendeten iButtons beschäftigt. Die iButtons gibt es in verschiedenen Farben und lassen sich prima als Schlüsselanhänger verwenden. Die Buttons sind meist magnetisch bzw. magnetisierbar. Der Schlüssel hält also selbstständig in der Kontaktierungseinrichtung.
Perfekt für ein Schlüsselbrett ! 🙂
Nun stand also zumindest schonmal die verwendete Technik fest 🙂 Sicher gab es bereits ähnliche Lösungen und auch mit den Loxone Hausmittelchen ( 1Wire-Extension usw.) wäre eine entsprechende Lösung umsetzbar….. wir wären nicht unser-smartes-zuhause wenn es dabei nicht auch ein großes ABER gäbe 🙂
Ich hatte ein paar Extrawünsche an die Funktionalität, welche mit Loxone Bordmitteln nur schwer bzw. kostspielig umzusetzen wäre.
Anforderungen an das Schlüsselbrett / die Technik:
- Es sollen 4 Leser / Kontaktierungseinrichtungen anschließbar sein
- Die Kontaktierungseinrichtung soll mittels RGB LED einen Status zurückmelden (Alternativ eine externe LED)
- Das Schlüsselbrett soll erkennen, welcher iButton an welcher Kontaktierungseinrichtung angeschlossen ist, um mit der entsprechend zugewiesenen Farbe zu kontaktieren. (Allein hierfür wären mit Loxone Bordmitteln 4 x 1-Wire Extension und 4x RGB Dimmer notwendig.. vom benötigten Platz mal ganz abgesehen)
- Es sollen verschiedene Aktionen ausgeführt werden je nachdem welcher Nutzer / Gast sein Schlüssel am Schlüsselbrett angebracht hat. (Alarmanlage deaktivieren / Individuelle Lichtstimmung / Wunschradiosender usw.. ) Ebenso ein entsprechendes Verhalten sofern sich kein Schlüssel mehr am Schlüsselbrett befindet.
- Das Schlüsselbrett soll via Netzwerk (LAN) anbindbar sein und via POE mit Spannung versorgt werden.
- Eine Integration in Loxone soll möglich sein ( später 🙂 ).
2. Hardware
Wie bereits bei meinem LOXpixel! Prototyp entsteht auch diese Platine nicht mit dem Plan, in die Serienfertigung einzusteigen 🙂 Viel mehr löst dieser Prototyp einfach eine Problemstellung meiner eigenen Smart-Home Planung. Falls ich damit jemanden helfen kann, freut mich das natürlich umso mehr. Die Platine ist also ebenso ein Prototyp in einem ganz ganz frühen Stadium und hält sich auch an keinerlei Richtlinien für Platinen-Layouts… wie gesagt 🙂 eigentlich ein Einzelstück.
Das aus einer Schnappsidee, wie der Einbindung von adressierbaren LEDs wie bei unserem LOXpixel! Prototyp durchaus auch mal ein erfolgreiches Produkt entstehen kann, haben die Jungs von cod.m mit dem WLAN PixelController bewiesen. Die ersten Versionen basierten noch auf der Testsoftware unseres Prototypen. Mittlerweile wurde die Loxone Integration des LOXpixel! Projekts verfeinert und in das mächtige WLED Projekt integriert und funktioniert somit besser den je ! so schnell kann es gehen 🙂
Nun aber zurück zur Hardware. Da ich auch hier von einem Einzelstück ausgehe, habe ich zunächst geschaut, welche Grundlage ich verwenden könnte, um einen Großteil meiner Anforderungen bereits abzudecken. Um mir den Programmiereinstieg zu erleichtern, sollte es eine Platine auf Basis eines ESP8266 oder ESP32 werden. Glücklicherweise bin ich hier über eine Entwicklerplatine gestolpert, welche Bereits den LAN Anschluss mitbringt und die POE Stromversorgung bereitstellt. Es handelt sich dabei um die ESP32-POE IoT WiFi/BLE/Ethernet Dev Platine des Herstellers Olimex.
Diese Platine sollte also die Grundlage darstellen. Als nächstes musste also nur eine Aufsatz-Platine entwickelt werden, um die Funktionen des Schlüsselbretts zu ermöglichen. Die Platine sollte auch nicht viel Hexerei und Zauberei beinhalten 🙂 Da ich mich bei der iButton (OneWire) Implementierung für eine Software basierte Lösung entschieden habe, bedarf es für den Anschluss der iButtons lediglich einer Steckverbindung sowie ein Pullup-Widerstand für die saubere Anbindung an die GPIO Pins des ESP32.
Um eine Rückmeldung an den Kontaktierungseinrichtungen zu ermöglichen, sollte eine RGB LED zum Einsatz kommen. Bei elabnet.de wurde ich fündig. Dort gibt es eine iButton Kontaktierungsvorrichtung mit eingebauter RGB LED.
Also schonmal zwei Fliegen mit einer Klappe geschlagen 🙂 zur Anbindung der RGB LEDs habe ich mich für die „Neopixel“ Variante entschieden. Ich habe also 4 WS2811 Treiber auf der Platine vorgesehen und die LEDs des iButton Halters damit verbunden. Somit kann ich jeden Halter unabhängig adressieren und ansprechen. Die WS2811 Treiber habe ich für einen schmalen Taler auf Ebay geschossen.
Die Platine sollte Stiftleisten erhalten, um entsprechend mit der Trägerplatine verbunden werden zu können.
Der Schaltplan
Der Schaltplan wurde mit der kostenlosen Software KiCad erstellt und ist erwartungsgemäß nicht sonderlich aufregend 🙂
Das Layout
Das Layout ist ebenfalls recht einfach gehalten. Es sind in diesem Falle ja auch kaum Bauteile unterzubringen. So ist alles schön platzsparend an seinem Platz 🙂
3D Ansicht
3. Software
Die Software beläuft sich aktuell auf ein Testprogramm, um die Funktionen der Platine zu überprüfen. Dies klappt bei meinem Prototypen sehr gut !
Mit dem Testprogramm ist es möglich, eine Verbindung zu einem MQTT Broker aufzunehmen und die Prüfsumme der erkannten iButtons via MQTT zu versenden. Ebenfalls kann umgekehrt via MQTT die LED Helligkeit und Farbe der einzelnen iButton Halter gesteuert werden. Auch hier eindeutig der Hinweis, dass es sich hier nicht um ein Produktivprogramm handelt, sondern lediglich um zusammenkopierte Codeschnipsel zur Prüfung der Hardware. Das Dient maximal einem Denkanstoß zur Weiterentwicklung 🙂
Github Repository: https://github.com/somebuddy87/LOXKey
In Teil 3 der Serie werde ich den Code um die UDP Funktionalität erweitern um die Platine direkt in Loxone integrieren zu können.
4. Downloads / Links
Lecker 🙂