Ausgangslage
Ich nutze ein Nuki Smart Lock Gen5, das über die offizielle MQTT-Integration mit Home Assistant verbunden ist.
Meine <ENTITY_ID>türe besitzt eine Mehrfachverriegelung. Damit sie abgeschlossen werden kann, muss zuerst der Türgriff nach oben gedrückt werden. Geschieht das nicht, kann der Schlüssel im Schloss nicht gedreht werden.
Wird trotzdem versucht abzuschliessen, erscheint in der Nuki-App die Meldung:
Motor blockiert
Das Problem
Über MQTT bzw. in Home Assistant wird das Schloss nach einem fehlgeschlagenen Schliessversuch trotzdem kurze Zeit später als
|
|
angezeigt.
Dadurch gehen Automationen davon aus, dass die Türe erfolgreich abgeschlossen wurde – obwohl der Motor blockiert war und der Riegel nie ausgefahren werden konnte.
MQTT genauer untersucht
Mit MQTT Explorer habe ich die vom Smart Lock veröffentlichten MQTT-Nachrichten beobachtet:

Dabei fiel auf, dass der Topic
|
|
folgende Statuswerte liefert:
| Status | Bedeutung |
|---|---|
| 1 | Locked |
| 2 | Unlocked |
| 3 | Unlatched |
| 4 | Locking (Übergang) |
| 254 | Motor blockiert |
Interessant dabei:
Während eines fehlgeschlagenen Schliessvorgangs wird kurzzeitig der Status 254 veröffentlicht, bevor das Schloss trotzdem wieder auf locked wechselt.
Dadurch erkennt die normale Home-Assistant-Lock-Entity den Fehler nicht mehr.
Lösung
Anstatt den Zustand der Lock-Entity auszuwerten, lauscht meine Automation nach dem Schliessbefehl für einige Sekunden direkt auf das MQTT-Topic.
Wird innerhalb dieser Zeit der Status 254 empfangen, wird eine Warnung verschickt.
Andernfalls gilt der Schliessvorgang als erfolgreich.
Home Assistant Automation
Die folgende Automation zeigt, wie sich diese Erkenntnisse in Home Assistant umsetzen lassen:
|
|
Fazit
Obwohl die Home-Assistant-Lock-Entity nach einem Motorfehler wieder den Zustand locked anzeigt, liefert die offizielle MQTT-Schnittstelle den Fehler zuverlässig als Status 254.
Durch das direkte Lauschen auf MQTT kann der Fehler zuverlässig erkannt werden und Fehlbenachrichtigungen werden vermieden.
Gerade bei Türen mit Mehrfachverriegelung oder hochzudrückendem Türgriff ist diese Lösung deutlich zuverlässiger als die Auswertung der normalen Lock-Entity.