Switchbot ESP32 MQTT – die Beste Home Assistant Integration!

  • Beitrags-Kommentare:0 Kommentare

Switchbot ESP32 ist ein weiterer Weg, wie du die Geräte des Smarthome Anbieters in deinem zu Hause steuern kannst. Der große Vorteil liegt aber darin, dass die Integration und Steuerung komplett lokal ohne Switchbot Cloud erfolgt! Mit ESP32 sind die beliebten Entwickler Platinen gemeint, die für diverse Projekte im Smarthome genutzt werden. Sie sind günstig in der Anschaffung und benötigen wenig Strom. Die benötigte Software ist als Open Source verfügbar. Die Hauptaufgabe liegt im kompilieren der Software. Das möchte ich dir im heutigen Artikel ein wenig näher bringen.

Über diesen Link findest du eine Übersicht aller Switchbot Artikel auf diesem Blog!

AZDelivery ESP32 Dev Kit C V4 NodeMCU WLAN WiFi Development Board kompatibel mit Arduino inklusive...
  • ✅ Leistungsfähiger ESP32 -Microcontroller...
  • ✅ Komfortables Prototyping durch einfache...
  • ✅ Dieses Board verfügt über 2,4 GHz Dual-Mode...
  • ✅ Das Dev-Kit enthält das ESP32-WROOM-32-Modul...
  • ✅ Dieses Produkt enthält ein E-Book, das...

Switchbot Rabattcode

In diesem Zuge möchte ich dich darauf aufmerksam machen, dass du mit meinem Rabattcode 10smartlivenet dauerhaft 10% im Switchbot Store bekommst!

https://www.switch-bot.com/smartlivenet

Switchbot ESP32 MQTT BLE Integration

Es geht also darum statt des Switchbot Hub mini, der mit der Switchbot Cloud kommuniziert, die Geräte lokal mit einem ESP32 im Netzwerk zu steuern.

Mikrocontroller ESP32 Dev Kit C V4
AZDelivery ESP32 Dev Kit C V4

Asl ersatz für den Hub Mini habe ich mich für einen ESP32 Devkit C V4 entschieden, weil dieser derzeit die stärksten Antennen verbaut hat! Das vor dem Hintergrund, dass meine Switchbot Geräte über alle Etagen im Haus verteilt sind und damit einen großen Abstand zum Hub haben. Ich konnte den Hub aber fast mittig im Haus platzieren, sodass ich eine bestmögliche Erreichbarkeit aller Geräte erzielen konnte.

An der gleichen Stelle wo zuvor der Hub seinen Dienst verrichtet hat parkt nun der ESP32. Die RSSI Werte sind zwar eher in den oberen Bereichen zwischen 65 und 85 RSSI, aber es reicht um alle Geräte steuern zu können!

Bevor der ESP32 aber seine Daten, in meinem Fall Home Assistant, senden kann muss die Software kompiliert und geflasht werden. Das geht mit der Arduino Entwicklungsumgebung. Die Software gibt es als Download sowohl für Windows als auch MAC. Falls du diese noch nicht hast besteht der erste Schritt in der Installation von Arduino.

Arduino Voreinstellung

Damit du später Code auf das Board flashen kannst musst du es zuvor in Arduino verfügbar machen. Das geht im Bereich Voreinstellungen.

Hier fügst du folgende URL hinzu: https://dl.espressif.com/dl/package_esp32_index.json

Arduino Board hinzufügen

Als nächstes müssen zusätzliche Bibliotheken installiert werden. Hier die Übersicht, welche das sind:

  1. NimBLEDevice
  2. EspMQTTClient
  3. ArduinoJson
  4. CRC32 library (by Christopher Baker)
  5. ArduinoQueue

Das hinzufügen geht über Werkzeuge > Bibliotheksverwalter

Du kopierst dir also die obigen Namen nacheinander und installierst die Bibliotheken.

Arduino Bibliotheken hinzufügen
Arduino Bibliotheken

Zum Zeitpunkt des Artikels gibt es einen offenen Issue auf Github für das Projekt, weshalb ich Version 1.3.7 der NimBLEDevice Library installiert habe. Mit dieser Version konnte ich den Code erfolgreich kompilieren!

Switchbot ESP32 MQTT BLE Projekt download

Sind Arduino Vorbereitungen erledigt kannst du den Projektcode vom Github herunter laden.

Download des Projektes Switchbot ESP32 MQTT BLE auf Github
Projekt Switchbot ESP32 MQTT BLE

Die Zip Datei wird entpackt und die Datei SwitchBot-BLE2MQTT-ESP32.ino in Arduino geöffnet. Im Bereich „Configurations to change“ müssen nun noch ein paar Einstellungen vorgenommen werden.

  1. Zunächst werden im ersten Abschnitt deine WLAN Daten eingetragen
  2. Danach folgen die Angaben zu deinem MQTT Broker
  3. Als nächsten werden die BLE Adressen der Switchbot Geräte hinterlegt und die Bereiche entsprechend einkommentiert.
Arduino Projektcode anpassen
Arduino Projektcode

Zum Schluss noch definieren ob dein Board eine LED hat oder nicht. Im Falle des von mir verwendeten ESP32 ist das folgende Einstellung

ESP32 LED on Board oder nicht.
ESP32 LED

Nun kann der Sketch kompiliert und auf den ESP32 geflasht werden.

ESP32 Switchbot Sketch kompilieren
ESP32 Sketch kompilieren

Switchbot Geräte per MQTT in Home Assistant

Nach einem Neustart des ESP32 sollten alle erreichbaren Switchbot Geräte per Auto-Discovery in der MQTT Karte in Home Assistant zu sehen sein.

Switchbot ESP32 MQTT BLE Geräte
Switchbot ESP32 MQTT BLE Geräte
AZDelivery ESP32 Dev Kit C V4 NodeMCU WLAN WiFi Development Board kompatibel mit Arduino inklusive...
  • ✅ Leistungsfähiger ESP32 -Microcontroller...
  • ✅ Komfortables Prototyping durch einfache...
  • ✅ Dieses Board verfügt über 2,4 GHz Dual-Mode...
  • ✅ Das Dev-Kit enthält das ESP32-WROOM-32-Modul...
  • ✅ Dieses Produkt enthält ein E-Book, das...

Fazit Switchbot per ESP32 und MQTT

Es ist zwar etwas Arbeit bis Arduino fertig eingerichtet ist, wenn du wie ich eine Arduino Umgebung neu aufsetzt, aber am Ende zahlt sich das Ergebnis wirklich aus!

Warum?

Weil alle erreichbaren Geräte direkt mit allen Entitäten in Home Assistant angelegt werden und du nichts mehr in der configuration.yaml eintragen musst! In einem meiner vorherigen Switchbot Artikel habe ich dir gezeigt, welchen Aufwand es bedeutet, wenn du zum Beispiel den Meter Plus per Hand selbst definieren musst. Klar, am Ende ist es Copy / Paste und die eigenen Anpassungen. Aber es bläst die YAML Files je nach Menge der Geräte gewaltig auf! Darüber hinaus hast du OpenAPI Limitierung mit 10.000 Anfragen pro Tag!

Im Weiteren bist du damit komplett Cloud frei und ganz im Sinne von Home Assistant lokal unterwegs!

Den Inhalt des Beitrags findest du ebenfalls auf Youtube im zugehörigen Video:

Schreibe einen Kommentar