Homepoint ist eine bildschirmbasierte Schnittstelle für MQTT- und HomeKit-verbundene Smarthome-Geräte, die auf dem ESP32-Chipsatz läuft.
Merkmale
Demo
Installation
Bauen
Konfiguration
Szenen und Geräte
WLAN und MQTT
NTP-Zeit (optional)
Beispiele
Roadmap
Bekannte Fehler und Probleme
Mitwirken
Kauf mir einen Kaffee
Lizenz
Sehen und lösen Sie Szenen (Gerätegruppen) auf dem Frontbildschirm aus.
Lösen Sie einzelne Geräte aus, indem Sie in Szenen eintauchen (durch Antippen der Anzeige oder langes Drücken einer Taste).
Sehen Sie teilweise eingeschaltete Szenen mit mehreren Geräten auf einen Blick.
Unterstützung für Temperatur-, Feuchtigkeits-, Luftqualitätssensoren und Tasmota-Energiemesswerte .
Remote-Konfiguration : HomePoint über eine Webschnittstelle konfigurieren und neu starten. Es ist kein erneutes Flashen erforderlich.
Over-The-Air-Updates (Beta) : Flashen Sie neue Versionen von HomePoint drahtlos über die Luft.
HomeKit-Switch-Unterstützung (Einrichtung von Automatisierungen in der Home-App zum Umschalten von Homepoint)*
Unterstützt sowohl Touchscreen- als auch tastenbasierte Navigation .
Reaktiv : Bildschirmaktualisierungen, wenn Geräte von anderswo ausgelöst werden.
Einfache Konfiguration über eine JSON-Datei, kein zusätzlicher Code erforderlich.
Der Bildschirmschoner spart Strom, indem er den Bildschirm nach 10 Minuten ausschaltet.
Die Statusleiste zeigt die Konnektivität für WLAN und MQTT sowie die Uhrzeit an.
Failsafe-Modus : Im Falle einer beschädigten Konfiguration wird ein Failsafe-Modus für den Fernzugriff bereitgestellt.
Vorkompilierte Binärdateien : Flashen Sie HomePoint einfach auf Ihrem ESP32-Gerät, ohne es zu kompilieren.
*Derzeit im experimentellen Zweig.
HomePoint wird in 2 vorkompilierten .bin-Dateien geliefert, die entweder auf einem generischen ESP32-Modul oder M5Stack geflasht werden können. Weitere Details zum Hardware-Setup finden Sie im Wiki.
Schritte zur Installation:
Laden Sie ESPTools von https://github.com/espressif/esptool/releases herunter
Installieren Sie ESPTools mit python setup.py install
Führen Sie esptool.py -b 921600 write_flash -fs 4MB -fm dout 0x0 homepoint_espgeneric.bin
(oder homepoint_m5stack.bin für M5Stack) aus.
Alternativ können Sie sich auch das folgende Installationsvideo ansehen:
Homepoint wurde mit dem ESP-IDF SDK erstellt.
Detaillierte Bauanweisungen finden Sie im Wiki.
Die Konfiguration befindet sich in data/config.json
.
HomePoint unterstützt zwei Arten von Szenen mit jeweils einer Auswahl an Geräten:
SZENEN-Typen | GERÄTEARTEN |
---|---|
Licht, Schalter | (keine, alle Geräte werden voraussichtlich Switches sein) |
Sensor | Zeigen Sie einen oder zwei Werte gleichzeitig mit anpassbaren Symbolen an (SingleValue / CombinedValues). |
Gruppierte Sensoren unterstützen bis zu zwei Geräte (aufgrund des Platzbedarfs auf dem Bildschirm).
Lights & Switches unterstützen eine unbegrenzte Anzahl von Geräten in einer Gruppe.
Einige Sensoren verwenden JSON als Datenformat. In diesem Fall kann ein Schlüssel definiert werden. Diese können auf jeder Ebene der Sensor-JSON-Payload liegen, bei Tasmota Smart Plugs kann der Schlüsselwert „Power“ zur Anzeige des aktuellen Stromverbrauchs verwendet werden.
Auf der obersten Ebene sind WLAN- und MQTT-Zugangsdaten zu definieren.
Um die richtige Zeitzone einzustellen, kopieren Sie Ihre NTP TZ-Einstellung und fügen Sie sie in den timezone
ein.
Einige der IL9341-Anzeigeeinheiten scheinen sich beispielsweise darin zu unterscheiden, wie die Touchscreen-Koordinaten dem Display entsprechen oder wie die LED-Hintergrundbeleuchtung gesteuert wird. Daher bieten wir einige Optionen zum Überschreiben der Standardeinstellungen in der Konfigurationsdatei an.
Schlüssel | Typ | Wert |
---|---|---|
„ledPinPullup“ | Boolescher Wert | true oder false – steuern Sie die Leistung der Hintergrundbeleuchtung, die je nach Gerät nach oben/unten eingestellt werden kann |
„screenRotationAngle“ | Int | Der Rotationsparameter kann 0, 1, 2 oder 3 sein und in 90-Grad-Winkeln erhöht werden |
„screenSaverMinutes“ | Int | Minuten bis zum Ausschalten der Anzeige (Standard 10) |
„touchXAxisInverted“ | Bool | Standard: false , invertiert die X-Achse des Touchscreens, falls dieser falsch ausgerichtet ist |
„touchYAxisInverted“ | Bool | Standard: true , invertiert die Y-Achse des Touchscreens, falls dieser falsch ausgerichtet ist |
„displayColorInverted“ | Bool | Standard: false , Farbraum invertieren (z. B. für ILI9342C-Displays) |
Bei MQTT-Themen wird gemäß der MQTT-Spezifikation die Groß-/Kleinschreibung beachtet.
{ „wifi“: „MyWifiSSID“, „password“: „Mein WLAN-Passwort“, „hostname“: „optionalhostname“, „login“: „admin“, „webpass“: „admin“, „mqttbroker“: „mqtt: //192.168.1.2", "mqttusername": "mqttusername", "mqttpasswd": "mymqttpassword", "timezone": „CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00“, „scenes“: [{ „name“: „Wohnzimmer“, „type“: „Licht“ , „icon“: „livingroom“, „devices“: [{ „name“: „Some Light“, „setTopic“: „lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on“, „getTopic“: „hue/status/lights/Hue color lamp 1“, „onValue“: „ true", "offValue": "false" }, { „name“: „Türlicht“, „setTopic“: „lights/hue/00:17:88:01:02:3c:2a:6d-0b/set/on“, „getTopic“: „hue/status /lights/Hue Farblampe 1“, „onValue“: „true“, „offValue“: „false“, „icon“: „door“ }, ] }, { „Name“: „Schlafzimmer“, „Typ“: „Sensor“, „Symbol“: „Tür“, „Geräte“: [{ „Name“: „Temperatur-DHT-Sensor“, „Typ“: „singleValue“, „ jsondata“: true, „firstIcon“: „temperature_small“, „firstKey“: „temperature“, „getTopic“: „schlafzimmer/esptemp“ }, { „name“: „Tasmota Smart Plug“, „type“: „singleValue“, „jsondata“: true, „firstKey“: „Power“, „firstIcon“: „wattage_small“, „getTopic“: „tele/DVES_2F73BE/ SENSOR" }] }] }
Ein vollständiger konfiguriertes Beispiel finden Sie hier.
Dokumentation zur Integration mit Homebridge-Hue und HomeAssistant / ZigBee2MQTT
HomeKit-Unterstützung
Testen
Wenn Sie Fehler finden oder Hilfe benötigen, zögern Sie nicht und eröffnen Sie ein Problem :)
Beiträge sind willkommen! Hacken Sie einfach los und öffnen Sie eine Pull-Anfrage. Bitte folgen Sie jedoch dem Stil des Codes, der bereits vorhanden ist (z. B. keine Tabulatoren, Leerzeichen).
Ich habe HomePoint in meiner Freizeit entwickelt, weil ich mehr über C++ auf ESP32 lernen und ein konkretes Problem in meinem Smarthome lösen wollte.
Während die Entwicklung weiter voranschritt, dachte ich darüber nach, wie ich dieses Projekt Open Source und für die Maker-Community zugänglicher und benutzerfreundlicher machen könnte.
Wenn Sie HomePoint oder dieses Werk gerne nutzen, denken Sie über eine kleine Spende nach. Aber keine Sorge, ich werde trotzdem weiter daran arbeiten ;-).
MIT © Matthias Frick