Vier Funknetze, und wo das Lokale endet

Zigbee, Thread, Matter und Bluetooth LE verbinden die Geräte in der Wohnung. Auf einigen läuft hier gebaute Firmware, darunter zwei Luftreiniger, deren Hersteller seine Server abgeschaltet hat. Die Echo-Lautsprecher hängen weiterhin an Amazon.

Vier Funknetze

Zigbee verbindet die Schalter, Taster, Drehknöpfe und die Zwischenstecker mit Strommessung. Es läuft direkt in der Zentrale, nicht über einen separaten Bridge-Dienst. Ein versioniertes Quirks-Verzeichnis deckt die Geräte ab, die die Upstream-Bibliothek schlecht abbildet; eine Stromklemme brauchte einen solchen Quirk.

Thread läuft über den Border-Router, den der Zigbee/Thread-Koordinator selbst mitbringt. Auf dem Host läuft daneben kein Border-Router-Container, und die Konfiguration des Hosts ist so geschrieben, dass das so bleibt.

Matter spielt hier eine kleinere Rolle, als der Name vermuten lässt. Die Licht-Bridge ist als Matter-Knoten eingebunden, und die Matter-Zwillinge dreier Bewegungsmelder liefern nur Batterie-Entitäten. Das Haus hängt nicht an Matter.

Bluetooth LE ist ein Standbein der Anwesenheitserkennung. Der Beacon des Telefons wird über acht Empfänger raumgenau verortet; die Empfänger sind hier gebaute Sensorknoten, die das nebenbei erledigen. Gerechnet wird im LAN, nach draußen geht nichts.

Hier gebaute Firmware

Auf neun Knoten läuft Firmware, die in der Wohnung gebaut wird. Acht davon sind gekaufte Hardware mit dem veröffentlichten Firmware-Paket des Herstellers und lokalen Anpassungen: vier Multisensor-Knoten, die mmWave-Präsenz pro Entfernungsbereich (Range Gate), Kohlendioxid, Helligkeit und Umgebungswerte erfassen, und vier Luftqualitätsknoten für Kohlendioxid, Feinstaub und Umgebungswerte. Ein Entfernungsbereich ist ein Abstandsband vor dem Radar, und jedes Band wird einzeln gemeldet.

Der neunte ist von Hand geschrieben und kein Sensor: ein ESP32 am RS485-Bus der Klimaanlage. Er macht aus den beiden Innengeräten gewöhnliche Klima-Entitäten und liefert vom Außengerät Leistung, Energie, Strom, Spannung und Fehlercode. Seine externe Komponente ist auf einen Commit-Hash im Hauptzweig des Upstream-Projekts festgelegt, nicht auf ein Release-Tag: Dort liegen die Kompatibilitätskorrekturen, und das Projekt warnt selbst, dass sein getaggter Stand nicht mehr baut.

Auf drei weiteren Geräten läuft Firmware, die hier geschrieben und nicht bloß konfiguriert wurde, jeweils weil ein Hersteller ausgestiegen ist. Zwei davon sind Luftreiniger, deren Hersteller sein Backend abgeschaltet hat; auf ihnen läuft eine Firmware, die in diesem Haushalt für sie gebaut und unter eigenem Namen veröffentlicht wurde. Das dritte ist der Lesekopf am Stromzähler: ein Community-Projekt, hier mit einigen lokalen Korrekturen gebaut, das mit dem Haus-Broker spricht und mit sonst nichts.

Auch die beiden Dodekaeder-Lampen im Wohnzimmer gehören auf diese Liste. Ihr Hersteller liefert einen geschlossenen Fork, zu dessen Effekten es keinen Quelltext gibt. Die Effekte wurden deshalb aus der Original-Firmware ausgelesen und auf der offenen Standard-Firmware nachgebaut; die Geschichte steht im Rundgang.

Was ein Sensor wirklich sehen kann

Radar sieht durch Wände, und genau das ist passiert: Menschen im Flur wurden als Anwesende im Nachbarraum gemeldet, während der Infrarotmelder dort still blieb, und das Licht ging in einem leeren Raum an. Kein Schwellwert trennt die beiden Fälle, weil ein Körper nahe am Sensor mehrere Entfernungsbereiche gleichzeitig sättigt. Also darf nur der Infrarotmelder Anwesenheit auslösen, und das Radar darf sie nur aufrechterhalten. Genau das braucht jemand, der sich nicht bewegt.

Ein weiteres Radar wurde ganz aus der Anwesenheitserkennung genommen. Sein Bewegungskanal flatterte zu oft, als dass man ihm trauen könnte.

Die raumgenaue Bluetooth-Ortung läuft, allein verlässt sich aber bewusst nichts auf sie: Sie widerspricht den Präsenzmeldern so oft, dass ein Bluetooth-Bereich nie ein Licht schalten darf, ohne dass ein Präsenzmelder zustimmt, und die Begehung, mit der sie sich bewähren könnte, ist nicht protokolliert.

Was das Haus dann mit der Anwesenheit anfängt, steht in der Notiz über die Hauszustände: fünf Hauszustände, abgeleitet aus einer Tür, einem Telefon und diesen Sensoren.

Was das Haus misst

Der Netzbezug wird an dem Zähler abgelesen, nach dem der Versorger abrechnet. Ein kleiner Lesekopf mit Funk sitzt an der optischen Schnittstelle des Zählers. Die drei Stromklemmen, die das bis September übernommen haben, dienen jetzt als Gegenprobe, und dafür taugen sie gerade, weil sie abweichen: Sie liegen ein paar Prozent über dem Zähler. Daran merkt man, dass eine Klemme eine Klemme ist und ein Zähler ein Zähler. Die Verbraucher, auf die es ankommt, werden an der Steckdose oder am Stromkreis gemessen.

Die Regeln für dieses Dashboard sollen vor allem verhindern, dass ein Watt doppelt gezählt wird: nie ein abgeleiteter Zähler neben dem nativen, den er dupliziert, nie ein Kanal, der die Summe zweier anderer Kanäle ist, und genau eine Zeile für einen Verbraucher, den zwei Zähler erfassen können.

Die USV ist das Musterbeispiel. Sie meldet keine Wattzahl, also multipliziert ein abgeleiteter Sensor ihre gemeldete Auslastung in groben Stufen mit der Nennleistung. Er zeigt die verbleibende Reserve an und ist kein Messgerät; im Dashboard ist er nicht zugelassen, weil ein Zwischenstecker an derselben Steckdose ohnehin echte Werte misst. Fällt er aus, zeigt er „nicht verfügbar“ statt null, denn eine Null sähe aus wie ein Rack im Leerlauf. Und selbst ohne Doppelzählung ergeben die gemessenen Zeilen nicht den ganzen Netzbezug: Ein Teil der Last in dieser Wohnung hängt schlicht an keinem Zähler.

Wo das Lokale endet

Manche Brücken gibt es, damit gekaufte Hardware auch ohne die Firma dahinter nutzbar bleibt. Der Präsenzmelder im Wohnzimmer ist über ein lokales Protokoll gekoppelt, nicht über ein Herstellerkonto. Die Klimaanlage wird über ihren eigenen Bus angesprochen statt über die App des Herstellers. Zwei Luftreiniger laufen mit hier geschriebener Ersatz-Firmware und senden schlichte Ganzzahlen an den Haus-Broker, weil der Hersteller sein Backend abgeschaltet hat und es keinen anderen Weg gab, sie weiter zu nutzen. Die Konfiguration nennt den Preis: Ein Schalter läuft im optimistischen Modus, weil die Firmware seinen Zustand nie zurückmeldet. Die Luftreiniger haben eine eigene Notiz.

Dann die Nahtstelle. Die Licht-Bridge fährt in zwei Räumen weiter ihre eigenen zeitgesteuerten Abläufe, während die Zentrale dieselben Lampen steuert: zwei Systeme für dieselben Lampen, und das ist genau die eine Anordnung, die dieses Haus ausschließt. Abschalten lassen sich diese Abläufe nur in der App des Herstellers; keine Konfigurationsänderung kann das erledigen.

Bei der Sprache ist die Nahtstelle noch breiter. Die Amazon-Echos in der Wohnung sind Cloud-Geräte: Was man ihnen sagt, geht an die Server eines Unternehmens, und von dort kommt die Antwort zurück. Über sie laufen die Sprachbefehle, die im Haushalt tatsächlich jeden Tag fallen: die Lichtbefehle. Die lokale Sprachkette ist wirklich lokal: Die Dienste für Spracherkennung und Sprachausgabe und der Satellit laufen alle in der Wohnung. Nur spricht der Haushalt nicht mit ihr. Das Haus als Ganzes ist nicht cloudfrei.

Was geplant ist

  • Ein Luftqualitätskanal bleibt ungenutzt. Ein Parallelvergleich ergab, dass sein Feuchtewert deutlich von einer Referenz abweicht. Bis er geprüft ist, liest ihn nichts.
  • Die Bridge-eigenen Lichtabläufe abschalten, zusammen mit einem Durchgang durch alle Taster, Drehknöpfe und Pads, damit sich beides nicht in die Quere kommt.

Funk- und Knotenkonfigurationen, Package-Dateien, der Energieplan und das Komponentenverzeichnis wurden am 2026-09-08 im Smart-Home-Konfigurationsrepository gelesen; die Sensormessungen stehen dort neben den Regeln, die aus ihnen folgten. Geplante Punkte sind als geplant markiert.

Hintergrund: die Notiz zur Architektur →