Natives HomeKit Schloss im Eigenbau mit dem ESP8266

Arduino IDE Feb. 20, 2021
https://my.makesmart.net/topic/140/natives-homekit-schloss-im-eigenbau-mit-dem-esp8266/3

Vor kurzem habe ich ein TikTok-Video veröffentlicht, indem ich die Vorteile eines smarten Türschlosses aufzeige. Konkret habe ich dabei einen ESP8266 D1 Mini mithilfe von Homebridge in ein HomeKit Schloss verwandelt. Die Nachfrage nach einem Tutorial war erstaunlich groß - aus diesem Grund habe ich mich an die Arbeit gemacht und eine Lösung gefunden, die völlig ohne Bridge auskommt: Ein smartes Türschloss nativ in HomeKit eingebunden - Marke: DIY mit einem ESP8266.

esp8266_makesmart_native_homekit_lock


Falls du planst, dass das Schloss ein Relaismodul betätigt, dann empfehle ich dir meine Firmware zu verwenden. Dort musst du erstens nichts programmieren und zweiten dauert das ganze nur 5 Minuten. :heh: HomeKit Schloss mit ESP8266 in 5 Minuten

Falls du aus dem Schloss etwas eigenes machen möchtest, lies einfach weiter.

Vorbereitungen

Ganz ohne Programmierung kommt man leider auch mit dieser Möglichkeit nicht aus. Wobei sich das Programmieren lediglich erstens: auf das Ändern der Zugangsdaten des eigenen WLAN beschränkt, und zweitens: Man muss selber festlegen, was passieren soll, wenn das Schloss geöffnet oder geschlossen wird. Das Öffnen und Schließen kann zum Beispiel das einfache Betätigen eines Relaismoduls sein. Aber mehr dazu später.

Falls du noch keine Ahnung hast, wie du einen ESP8266 D1 Mini programmieren kannst, kann ich dir diesen Artikel empfehlen. Sobald du soweit bist, kannst du hier fortfahren.

HOMEKIT-ESP8266 - Arduino IDE Library hinzufügen

Um den bereitgestellten Programmcode verwenden zu können, muss eine Library innerhalb der Arduino IDE installiert werden. Das geht mithilfe des Bibliotheksverwalter. Öffnen könnt ihr ihn über das Menü der Arduino IDE. Die Library trägt den Namen HomeKit-ESP8266 und ist von Mixiaoxiao

Arduino IDE└───Werkzeuge    └───Bibliotheken verwalten...

homekit-esp8266-bibliothek-installieren-arduino-ide

Das native HomeKit Schloss - der Code

Um den ESP8266 in ein natives HomeKit Schloss zu verwandeln, ist mehr als nur eine Datei Programmcode notwendig. Genauer gesagt sind es drei Dateien. Diese drei Dateien habe ich alle schon für euch vorbereitet. Downloaden könnt ihr die Dateien direkt hier:

makesmart_homekit_lock.zip

Entpackt das .zip-Archiv an einem beliebigen Ort auf eurem Computer. In dem entpackten Order befinden sich drei Dateien:

makesmart_homekit_lock├── makesmart_homekit_lock.ino├── my_accessory.c└── wifi_info.h

makesmart_homekit_lock.ino

  • enthält den eigentlich Code - was passiert wann?

my_accessory.c

  • in dieser Datei wird das Schloss für HomeKit definiert

wifi_info.h

  • enthält Daten zur Verbindung mit dem WLAN

Ihr müsst lediglich die Datei makesmart_homekit_lock.ino öffnen, die anderen beiden Dateien öffnen sich dann ebenfalls.

Anpassungen im Code

1. WLAN-Zugangsdaten

Zuerst solltet ihr in der Datei wifi_info.h die Zugangsdaten zu eurem WLAN anpassen.
Das geht mithilfe der beiden folgenden Zeilen:

const char *ssid = "WLAN-SSID";const char *password = "WLAN-PASS";

2. Was soll das Schloss machen?

Jetzt kommt es ganz darauf an, was ihr mit dem Schloss betätigen möchtet. In meinem TikTok Video habe ich die Gegensprechanlage parallel geschalten und konnte so die Türe unten im Treppenhaus über das Schloss in HomeKit öffnen. :schmartie: Aber genau hier kommt der großartige Vorteil der Library ins Spiel. Ihr könnt alles umsetzen, was ich in der Arduino IDE eben umsetzen könnt. 🔥

Ich habe zwei Funktionen für euch vorbereitet, ihr findet sie ganz am Ende von makesmart_homekit_lock.ino.

/* Diese beiden Funktionen werden aufgerufen, wenn das Schloss in HomeKit betätigt wird */void open_lock(){  Serial.println("Schloss öffnen");   // hier beliebige Aktion einfügen }void close_lock(){  Serial.println("Schloss schließen");    // hier beliebige Aktion einfügen}

Wie die Kommentare schon sagen, werden die Funktionen aufgerufen, wenn das Schloss geöffnet oder geschlossen wird.

Um ein Relais anzusteuern, müsste der Code folgendermaßen bearbeitet werden:

/* Diese beiden Funktionen werden aufgerufen, wenn das Schloss in HomeKit betätigt wird */void open_lock(){  Serial.println("Schloss öffnen");   // hier beliebige Aktion einfügen   digitalWrite(relay, HIGH);}void close_lock(){  Serial.println("Schloss schließen");    // hier beliebige Aktion einfügen  digitalWrite(relay, LOW);}

Zusätzlich dazu muss man dann noch oben in der Datei die Variable relay definieren und den Pin im setup() als Output setzen.

int relay = 15; // Pin D8 void setup() {  pinMode(relay, OUTPUT);  Serial.begin(115200);  wifi_connect();  homekit_storage_reset();  my_homekit_setup();}

Fehlt nur noch die Verdrahtung des Relais mit dem ESP8266 D1 Mini. Das ist in diesem Beispiel die selbe wie beim ESP8266 D1 Mini Relais als HomeKit Schalter ohne Bridge. Ein weiteres Tutorial über natives HomeKit Zubehör mit dem ESP8266.

esp8266_homekit_lock_schaltplan

KY-19 RelaismodulESP8266 D1 Mini
SD8
+5V
-G

Und fertig ist das native HomeKit Schloss mit einem ESP8266 D1 Mini und einem Relais. :programmingparrot:

Falls du planst, das mit dem Relais wirklich 1:1 so umzusetzen wie auf dem Video, kannst du statt dieser Anleitung hier auch meine Firmware verwenden und Zeit sparen. :heh:

HomeKit Schloss mit dem ESP8266 in unter 5 Minuten


Weitere Informationen

Wie bereits erwähnt könnt ihr in die Funktionen close_lock() open_lock() alles einfügen, was man innerhalb der Arduino IDE umsetzen kann. Vielleicht habt ihr ja ein paar Ideen oder Anwendungen? Vielleicht wirklich mit einem elektronischen Schloss? Oder vielleicht sogar ein Servo-Motor? Ich würde mich freuen davon zu hören.

¹Produktempfehlungen

Produkte zum Warenkorb hinzufügen



Der Upload

Bevor ihr den Sketch auf den ESP8266 D1 Mini hochladet, solltet ihr die Taktrate der CPU des D1 Minis anpassen. Für die Library sind 160 MHz von Vorteil, da sie dann stabiler läuft.

Arduino IDE└─── Werkzeuge    └─── CPU Frequency: 160 MHz

Zudem solltet ihr folgende Einstellung bzgl. des Uploads ändern, um komisches- oder Fehlverhalten während der Entwicklung & Programmierung zu verhindern.

Arduino IDE└─── Werkzeuge    └─── Erase Flash: All Flash Contents

Zum Schluss

Wenn ihr mit eurem Setup zufrieden seid und das Schloss fertig eingerichtet wurde, solltet ihr die Zeile homekit_storage_reset(); im setup() auskommentieren, da ihr den D1 Mini nach einem Stromverlust sonst immer wieder neu koppeln müsst. Wenn die Zeile auskommentiert ist, wird der Storage nicht resettet und der D1 Mini kann nach dem Programmen an seinen Platz verlegt, und ab sofort als natives HomeKit Schloss verwendet werden. 🔥

void setup() {  Serial.begin(115200);  wifi_connect();  //homekit_storage_reset();  my_homekit_setup();}

Habt ihr noch Bock auf etwas zum Thema Smarthome? Dann schaut gerne in die HomeKit-Community. Wenn ihr eher am Programmieren interessiert seid und mehr zum Thema ESP8266 & Co. erfahren möchtet? Dann schaut doch lieber in die ESP8266-Community.


Link: zur makesmart HomeKit Lock-Firmware


Möchtest du mich und die makesmart Plattform direkt unterstützen? Dann überleg’ dir doch, ob du die Produkte für dein nächstes Projekt nicht im makesmart.shop kaufen möchtest. Danke! 🙂

Bis dann!

¹Affiliate Link. Affiliate Links sind Referenzen des Autors. Bei Kauf wird eine Provision ausgeschüttet. Mehr Informationen.

Community

Die makesmart Community ist der Ort, an dem du deine Ideen mitteilen und deine Erfahrungen austauschen kannst.

Großartig! Das Abonnement wurde erfolgreich abgeschlossen.
Großartig! Schließe als Nächstes die Kaufabwicklung ab, um vollen Zugriff zu erhalten.
Willkommen zurück! Du hast dich erfolgreich angemeldet.
Erfolg! Dein Konto ist vollständig aktiviert, du hast jetzt Zugang zu allen Inhalten.