252 Skripte später: was Claude konnte und was nicht
Drei Wohnungen, drei Instanzen, 252 Werkzeugskripte — gebaut mit Claude als Arbeitspartner. Wie die Kette aussieht, und die eine Regel, ohne die es nicht trägt.
Inhalt
Was in drei Monaten entstanden ist, lässt sich zählen:
| Wohnungen | 3 |
| Home-Assistant-Instanzen | 3 |
| Werkzeugskripte, durchnummeriert | 252 |
| Dokumentationsdateien | eine je Thema, teils über 1000 Zeilen |
Gebaut habe ich das mit Claude als Arbeitspartner. Das ist die ehrliche Antwort auf die Frage, wie man so etwas ans Laufen bringt — samt der Stellen, an denen es schiefgegangen ist.
Erster Schritt: Claude muss die Anlage sehen
Es gibt zwei Wege, und sie tun verschiedene Dinge.
Skripte über die Schnittstelle. Der normale Weg. Jedes Skript macht genau eine Sache und ist wiederholbar. Die Nummer vorn ist kein Ordnungssystem, sondern die Entstehungsreihenfolge:
10_verbindung.py zuerst: antwortet die Instanz überhaupt
13_ssh.py dann: Zugang zum Dateisystem
43_reservierungen.py viel später: feste Adressen prüfen
Wer die Nummern liest, liest die Geschichte des Hauses. Das klingt nach Buchhaltung und ist der nützlichste Nebeneffekt der ganzen Übung.
MCP — der direkte Draht. Eingerichtet am 28.08.2026. Damit spricht Claude unmittelbar mit der Instanz, statt jedes Mal ein Skript zu bemühen:
Claude ──stdio──▶ Vermittler ──SSE──▶ Home Assistant ──▶ Assist
Nachgewiesen mit einem Testskript: 21 Werkzeuge, darunter Einschalten, Licht setzen, Zieltemperatur setzen und eine Abfrage des aktuellen Zustands.
Drei Dinge, an denen es hängt
Nichts davon steht in einer Anleitung, und alle drei haben Zeit gekostet.
Der Name muss eindeutig sein. Unter home-assistant war bereits Meran
eingetragen. Wien bekam deshalb einen eigenen Namen, damit beide nebeneinander
bestehen. Bei einer Wohnung ist das belanglos, bei dreien nicht.
Ein Versionskonflikt, der nach einem Programmfehler aussieht. Der Vermittler verträgt sich nicht mit der neuen Hauptversion der zugrunde liegenden Bibliothek:
ImportError: cannot import name 'request_ctx'
Die Lösung ist kein Herunterstufen der globalen Installation, sondern eine eigene, abgeschottete Umgebung mit der passenden Fassung. Dieselbe Kombination läuft jetzt in zwei Wohnungen.
Das Token gehört in die Umgebung, nicht auf die Kommandozeile. Der Vermittler liest es von dort und baut daraus den Authentifizierungskopf. So taucht es in keiner Prozessliste auf — ein Unterschied, den man erst bemerkt, wenn jemand anderes am Rechner sitzt.
Was Claude sehen darf, entscheidest du
Das ist der Teil, den ich am wichtigsten finde. Die Reichweite bestimmt ausschließlich die Freigabe in Home Assistant, nicht Claude.
Zum Zeitpunkt der Einrichtung waren in Wien 117 Entitäten freigegeben:
| Anzahl | Art |
|---|---|
| 45 | Szenen |
| 26 | Licht |
| 25 | Sensoren |
| 12 | Klima |
| 4 | Schalter |
| 5 | Sonstiges |
Sirenen und Kameras sind nicht dabei — die gibt Home Assistant von sich aus nicht frei.
Und ein Punkt, den ich bewusst offen stehen gelassen und aufgeschrieben habe: Der Schalter „neue Entitäten automatisch freigeben“ stand in Wien auf an. Käme später ein Türschloss dazu, wäre es damit sofort über Sprache und über Claude schaltbar — Schlösser gehören zu den Domänen, die Home Assistant von selbst freigibt.
In Meran ist dieser Schalter ausdrücklich abgeschaltet, genau deswegen. In Wien blieb er an, weil kein Schloss im Haus hängt. Entschieden gehört das vor dem ersten Schloss, nicht danach.
Die Reichweite eines Assistenten ist keine Eigenschaft des Assistenten. Sie ist eine Einstellung in deinem Haus.
Und jetzt der ehrliche Teil
Drei Sorten Fehler sind in diesem Projekt vorgekommen, alle dokumentiert, alle teuer.
Die Zusammenfassung statt der Quelle
Der schlimmste. Im Projekt lag ein zusammenfassendes Strategiedokument, und daraus wurde gearbeitet — bequem, weil es alles an einer Stelle hatte.
Nachgemessen: 18 Dateien mit zusammen 20.199 Zeilen waren inhaltlich neuer als diese Zusammenfassung. Drei der ersten drei Artikel dieses Blogs enthielten daraufhin Sachfehler. Einer beschrieb ein Projekt als laufend, das seit Wochen abgeschlossen war.
Die Gegenmaßnahme steht jetzt im Frontmatter jedes Artikels: ein Feld mit Quelldatei und Prüfdatum. Dazu ein erzeugter Index, der ausweist, welche Dokumente überhaupt nie zitiert werden.
Der Rückgabewert statt des Zustands
Ein Installationsskript meldete einen Abbruch mit leerer Fehlermeldung. Das Add-on war trotzdem installiert — die Schnittstelle meldet einen Fehler, sobald die Antwort kein JSON ist.
Seitdem gilt in allen drei Wohnungen: nach einem schreibenden Aufruf den Zustand nachmessen. Mehr dazu in Der erste Messwert kam vor der ersten Integration.
Das Muster aus zwei Messpunkten
Zwei Netzdurchläufe, 14 von 24 Geräten mit neuer Adresse, die meisten um genau
+2. Ein Muster, sauber aufgeschrieben — und beim dritten Messpunkt
zusammengefallen, weil ein Gerät wieder dort stand, wo es angefangen hatte. Die
ganze Geschichte in
Dreizehn Stunden hing die Absperrung an der Cloud.
Alle drei Fehler haben dieselbe Form: etwas Plausibles wurde für etwas Gemessenes gehalten. Eine KI tut das gern, weil Plausibilität ihr Geschäft ist. Ich tue es auch — sie ist nur schneller dabei.
Die eine Regel
In allen drei Projektdateien steht derselbe Satz:
Nachgemessen statt angenommen. Wo eine Annahme durch eine spätere Messung widerlegt wurde, steht beides in der Dokumentation — in der Reihenfolge, in der es sich ergeben hat.
Der zweite Halbsatz ist der wichtigere, und er ist kein Stilmittel.
Ungefähr die Hälfte der Befunde in diesem Blog entsteht aus dem Widerspruch zwischen einer früheren Annahme und einer späteren Messung. Wer die Annahme beim Korrigieren überschreibt, behält ein richtiges Ergebnis und verliert den Befund.
Und man verliert die Spur, auf der man den nächsten findet: Dreimal habe ich in diesem Projekt denselben Denkfehler gemacht, bevor mir auffiel, dass es derselbe war. Das fiel nur auf, weil alle drei noch nebeneinander standen.
Was tatsächlich hilft
- Lass dir Werkzeuge bauen, keine Antworten geben. Ein Skript, das misst, ist wiederholbar und prüfbar. Eine Antwort im Gespräch ist beides nicht.
- Nummerier die Skripte in der Reihenfolge ihres Entstehens. Die Nummer ist die Geschichte, und die brauchst du in drei Monaten.
- Gib Lesezugriff, bevor du Schreibzugriff gibst. Und miss nach, was tatsächlich erreichbar ist, statt es aus der Konfiguration zu erschließen.
- Entscheide die Freigabe selbst, Domäne für Domäne. Besonders, bevor ein Schloss, eine Sirene oder ein Ventil dazukommt.
- Verlang die Quelle, nicht die Zusammenfassung — und frag nach dem Datum der Quelle. Beides kostet eine Zeile und erspart einen falschen Artikel.
- Lass dir widersprechen. Der nützlichste Satz dieses Projekts kam nicht von Claude, sondern von mir: „da wurde eine Integration übersehen.“ Daraufhin kam eine Datei mit 2270 Zeilen zum Vorschein, die nie zitiert worden war.
Und was heißt das?
Schnell war Claude bei: tausend Zeilen Dokumentation lesen, ein Messskript schreiben, drei Installationen miteinander vergleichen, einen Text in drei Sprachen bringen.
Unzuverlässig war er bei: wissen, was aktuell ist. Und unterscheiden, was er gemessen und was er geschlossen hat.
Daraus hat sich eine Arbeitsteilung ergeben, die ich inzwischen für richtig halte: Claude schlägt vor und baut. Das Haus entscheidet. Jede Behauptung in diesem Blog, auf die es ankommt, hat eine Messung unter sich — und wo keine darunter ist, steht das dabei.
Die Frage ist nicht, ob eine KI eine Hausautomatisierung bauen kann. Sie kann. Die Frage ist, ob du merkst, wenn sie danebenliegt.
Dafür gibt es genau ein Mittel, und es ist dasselbe wie ohne KI: nachmessen.
Wenn du das verfolgen willst: nimm RSS
Kein Newsletter. Du gibst mir keine Adresse, ich führe keine Liste, und niemand muss einer Einwilligung zustimmen, um zu erfahren, dass ein Artikel fertig ist. RSS ist die ältere und für beide Seiten ehrlichere Lösung.
Wie das geht, und warum kein Newsletter
- 1Hol dir einen Feed-Leser. Ohne Konto geht das mit einer App am Telefon oder einer Erweiterung im Browser; wer mag, nimmt einen Dienst mit Konto.
- 2Trag die Adresse von oben dort ein.
- 3Fertig. Neue Artikel erscheinen von selbst in deinem Leser — ungelesen bleibt ungelesen, und nichts landet zwischen Rechnungen und Werbung im Postfach.
Warum das besser ist: Dein Leser holt die Datei ab. Ich bekomme keine Adresse und kann nicht sehen, wer liest oder ob jemand geöffnet hat. Abbestellen heißt, den Eintrag zu löschen — ohne Link, ohne Bestätigungsmail, ohne mich.
