<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>TycStation — Feldnotizen</title><link>https://tycstation.com/de/</link><description>Feldnotizen aus einem Ein-Personen-Rechenzentrum · Köln. KI-Agenten schlagen vor. Menschen geben frei. Die Beobachtung entscheidet über die Wahrheit.</description><language>de-DE</language><atom:link href="https://tycstation.com/de/index.xml" rel="self" type="application/rss+xml"/><item><title>Das Haus entscheidet, und keine Uhr</title><link>https://tycstation.com/de/notes/house-decides/</link><pubDate>Tue, 08 Sep 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/house-decides/</guid><description>&lt;p&gt;Das Smart Home dieser Wohnung hat keinen „Ich gehe“-Knopf und keine Schlafenszeit nach Wanduhr. Es leitet fünf Hauszustände aus einer Tür, einem Telefon und den Präsenzmeldern ab, und jedes weitere Verhalten hängt an dieser einen Variablen: das Willkommenslicht, wenn jemand nach Einbruch der Dunkelheit heimkommt, das Schloss, die Klimaanlage und die Kameras, wenn niemand mehr da ist, ein Sauger, der nur in der leeren Wohnung arbeitet, ein Badlüfter, der weiß, warum er läuft, eine Party, die weiterläuft, wenn die Zentrale ausfällt. Diese Notiz geht die Regeln durch und die Gründe — eine Uhr, die einen echten Tagschlaf abschnitt, eine Erinnerung, die das Schlafzimmer siebenmal um einen Schlafenden herum erhellte, ein Lüfter, der einen Tag auf Boost hing, weil ein Timer nie auslöste — und sie ist ehrlich darin, was noch nicht bewiesen ist: Schloss und Klimaanlage wurden nie dabei erwischt, wie sie auf einen echten Aufbruch reagieren, und eine Licht-Bridge fährt in zwei Räumen weiter ihre eigenen Abläufe neben der Zentrale. Stand 2026-09-08.&lt;/p&gt;&lt;p&gt;Das Ziel steht in einem Satz: Die Wohnung ist im richtigen Zustand, ohne
bedient zu werden. Hell, wenn jemand nach Einbruch der Dunkelheit heimkommt,
dunkel und still, während jemand schläft, alles aus und abgeschlossen, wenn
niemand mehr da ist. Das Haus leitet all das aus Sensoren und dem Telefon
ab. Taster gibt es nur für Absichten, die sich nicht messen lassen — jetzt
schlafen gehen, Kameras an oder aus. Nichts läuft nach Wanduhr außer den
beiden Dingen, bei denen es wirklich um die Tageszeit geht:
Sonnenuntergang, und wie warm ein Willkommenslicht sein soll.&lt;/p&gt;
&lt;h2 id="zwei-tatsachen-keine-uhr"&gt;Zwei Tatsachen, keine Uhr&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Das Haus rät nicht aus der Uhrzeit, ob man aus dem Haus ist. Es wartet auf
die Wohnungstür, dann darauf, dass das Telefon sich entfernt, und prüft
dann, dass sich zehn Minuten lang niemand mehr geregt hat — so, wie ein
Mitbewohner merken würde, dass man wirklich gegangen ist und nicht nur in
der Küche steht.&lt;/div&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Wie das Haus ableitet, dass jemand gegangen ist: die Wohnungstür zwei Minuten geschlossen, das Telefon außerhalb der Heimzone oder der Bluetooth-Reichweite und zehn Minuten keine Raumpräsenz, zusammengeführt zu zwei unabhängigen Tatsachen, die Abwesend, Zuhause ohne mich oder keine Änderung auswählen."&gt;&lt;img src="https://tycstation.com/notes/house-decides/diagrams/derivation.svg" alt="Wie das Haus ableitet, dass jemand gegangen ist: die Wohnungstür zwei Minuten geschlossen, das Telefon außerhalb der Heimzone oder der Bluetooth-Reichweite und zehn Minuten keine Raumpräsenz, zusammengeführt zu zwei unabhängigen Tatsachen, die Abwesend, Zuhause ohne mich oder keine Änderung auswählen." width="1100" height="330" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Die Ableitung. Vier Eingänge, zwei Tatsachen, drei Ausgänge — und nirgends eine Uhr.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Zwei Tatsachen werden unabhängig voneinander abgeleitet, und keine davon ist
ein Timer.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ich bin gegangen&lt;/strong&gt; heißt: Das Telefon verlässt die Heimzone oder fällt aus
der Bluetooth-Reichweite der Wohnung, während die Wohnungstür seit zwei
Minuten geschlossen ist. &lt;strong&gt;Es ist noch jemand da&lt;/strong&gt; ist jeder
Raum-Präsenzmelder, der in den letzten zehn Minuten ausgelöst hat. Beides
zusammen ergibt eine Tabelle:&lt;/p&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Ich bin gegangen&lt;/th&gt;
&lt;th scope="col"&gt;Noch jemand da&lt;/th&gt;
&lt;th scope="col"&gt;Das Haus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ja&lt;/td&gt;
&lt;td&gt;nein&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Abwesend&lt;/strong&gt;: Licht aus, Klimaanlage aus, Tür verschlossen, Kameras scharf&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ja&lt;/td&gt;
&lt;td&gt;ja&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Zuhause ohne mich&lt;/strong&gt;: Nichts ändert sich global&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;nein&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Tag, Abend oder Schlaf&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Keiner der beiden Eingänge würde allein genügen. Die Tür geht auch für einen
Gast oder ein Paket auf, und das Telefon verlässt die Zone auch bei einem
Spaziergang von zweihundert Metern; beides zusammen, in dieser Reihenfolge, beschreibt
einen Menschen, der geht. Und Anwesenheit wird über zehn Minuten geprüft
statt sofort, weil &lt;a href="https://tycstation.com/de/notes/four-radios/"&gt;die Raummelder&lt;/a&gt; einen
Menschen unterschiedlich schnell loslassen: die Infrarotmelder nach rund zehn
Sekunden, die Radare nach ein paar Minuten. Ein Mensch, der still im
Wohnzimmer sitzt, kann für sie alle eine Weile unsichtbar sein.&lt;/p&gt;
&lt;p&gt;Ein Radar steht bewusst nicht auf dieser Liste. Sein Bewegungskanal
flatterte in der leeren Wohnung zigtausendfach am Tag, was „letzte
Bewegung“ dauerhaft unter zehn Minuten hielt und Abwesend unerreichbar
machte. Es flog aus den Anwesenheitseingängen, statt mit einem Schwellwert
gebändigt zu werden — sein Ruhekanal lässt sich ohnehin nicht über einen Schwellwert bändigen.&lt;/p&gt;
&lt;p&gt;Der Kalender speist dieselbe Entscheidung. Ein ganztägiger Urlaubseintrag
ist ein weiteres Aufbruchssignal; ein laufender Homeoffice-Termin verweigert
Abwesend ganz, damit ein stiller Nachmittag am Schreibtisch nicht die Tür
verriegelt und die Klimaanlage hinter jemandem abschaltet, der noch da ist.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Die fünf Hauszustände und die Ereignisse, die zwischen ihnen wechseln: Sonnenuntergang macht aus Tag Abend, ein Taster am Bett startet Schlaf, ein leeres Schlafzimmer beendet ihn, ein abgeleiteter Aufbruch führt zu Abwesend, eine Ankunft wieder heraus, und ein Knopf auf dem Pad startet Party, den einzigen Zustand ohne automatischen Ausgang."&gt;&lt;img src="https://tycstation.com/notes/house-decides/diagrams/states.svg" alt="Die fünf Hauszustände und die Ereignisse, die zwischen ihnen wechseln: Sonnenuntergang macht aus Tag Abend, ein Taster am Bett startet Schlaf, ein leeres Schlafzimmer beendet ihn, ein abgeleiteter Aufbruch führt zu Abwesend, eine Ankunft wieder heraus, und ein Knopf auf dem Pad startet Party, den einzigen Zustand ohne automatischen Ausgang." width="1100" height="360" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Die fünf Zustände und jedes Ereignis, das zwischen ihnen wechselt. Party ist der eine ohne Ausgang — die offene Entscheidung am Ende dieser Notiz.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="ankommen"&gt;Ankommen&lt;/h2&gt;
&lt;p&gt;Die Tür, die sich zur leeren Wohnung öffnet, oder das Telefon, dessen Zone
auf zuhause springt, lösen das Willkommen aus — aber nur, wenn es dunkel
ist, nach Sonnenstand oder nach Helligkeitssensor. Das Willkommen ist nach
Tageszeit gestuft: warm bis einundzwanzig Uhr, gedimmt bis dreiundzwanzig,
danach Nachtlicht. Schläft das Schlafzimmer schon, läuft nur die Flur-Nachtszene.
Ein neustartfester Dreißig-Minuten-Timer verhindert, dass ein zweiter
Türzyklus alles noch einmal auslöst.&lt;/p&gt;
&lt;p&gt;Die erste Fassung hat die ganze Wohnung um ein Uhr nachts auf volle
Helligkeit gestellt. Ursache war eine Bluetooth-Meldung „nicht zuhause“, die
sich als falsch herausstellte — das Telefon war nie weg —, und die Korrektur
war kein besserer Bluetooth-Schwellwert, sondern eine andere Frage: War
irgendein Präsenzmelder die letzten zehn Minuten still? Bluetooth ist ein
Bein von Ankunft und Aufbruch; entscheiden darf es allein nichts.&lt;/p&gt;
&lt;p&gt;Die Klimaanlage kommt auf dem Rückweg dazu: Betritt das Telefon die
Heimzone, während das Haus auf Abwesend steht und das Wohnzimmer über einer
Schwelle liegt, beginnt die Kühlung, bevor die Tür aufgeht. Das ist bei
einem echten Heimweg schon beobachtet worden.&lt;/p&gt;
&lt;h2 id="schlaf-hat-einen-ausgang"&gt;Schlaf hat einen Ausgang&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Ein Schalter fürs Zubettgehen ist leicht. Schwierig ist, wer ihn wieder
zurückstellt — denn tut es niemand, bleibt das Bewegungslicht im
Schlafzimmer den ganzen Tag tot.&lt;/div&gt;
&lt;p&gt;Schlaf ist der eine Zustand, den kein Sensor ableiten kann, also hat er
Taster: Ein langer Druck auf den Taster am Bett legt das Schlafzimmer
schlafen, während das Wohnzimmer wach bleibt. Ein Knopf auf dem Wandpad legt
das ganze Haus schlafen. Das Schlafzimmer hat eine eigene Übersteuerung —
schlafend, wach oder dem Haus folgend —, damit einer schlafen kann, während
jemand anderes auf ist.&lt;/p&gt;
&lt;p&gt;Was der Modus tatsächlich tut, ist bewusst schmal. Genau eine Automation
leitet ein einziges Flag daraus ab, und dieses Flag ist die einzige
Nachtsperre des Bewegungslichts im Schlafzimmer: Tagsüber macht Bewegung
Licht, nachts nicht. Die Regel daneben lautet, dass dieses Flag immer genau
einen Schreiber haben muss — hat es keinen, ist die Funktion stillschweigend
tot.&lt;/p&gt;
&lt;p&gt;Am Ausgang zeigt sich der Entwurf. Schlaf endet, wenn das Schlafzimmer
fünfundvierzig Minuten leer steht, oder fünf Minuten, nachdem der Wecker des
Telefons geklingelt hat. Es gibt keinen Uhrzeit-Ausgang, denn ein
Mittags-Reset hat am 2026-08-25 einen echten Tagschlaf abgeschnitten. Und
der Wecker &lt;em&gt;schaltet den Ausgang nur scharf&lt;/em&gt;, er vollzieht ihn nicht. Ein
klingelnder Wecker heißt, dass ein Wecker geklingelt hat, nicht dass jemand
aufgestanden ist. Eine wiederkehrende Abenderinnerung auf dem Telefon löschte
das Flag jede Nacht. Am 2026-09-06 hat das Radar daraufhin das ganze
Schlafzimmer zwischen etwa halb sechs und Viertel vor neun siebenmal
erhellt — um einen Körper herum, der das Bett nie verlassen hatte. Seither
hält ein Körper, den das Radar kurz verliert, den Raum schlafend; entscheiden
darf nur ein leeres Schlafzimmer.&lt;/p&gt;
&lt;h2 id="was-abwesend-bedeutet"&gt;Was Abwesend bedeutet&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Abschließen ist die leichte Hälfte. Die schwere ist, sicher zu sein, dass die
Wohnung wirklich leer ist, bevor es passiert — und hinterher zu wissen, ob
das Schloss wirklich zugedreht hat oder ohnehin schon zu war.&lt;/div&gt;
&lt;p&gt;Abwesend schaltet das Licht aus, die Klimaanlage aus, verriegelt die Tür und
schaltet die Kameras scharf. Zwei dieser Beine wurden nie in Aktion
erwischt: Beim ersten echten Aufbruch war die Tür schon verriegelt und die
Klimaanlage schon aus, die Automation hatte also nichts zu tun. Die
Ableitung ist aus dem Verlauf bewiesen — ein echter Aufbruch hat Abwesend
korrekt erzeugt, und kein falsches Abwesend ist gefolgt —, aber die
Stellglieder sind, während dies geschrieben wird, an einem echten Abend
ungetestet.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Was der Zustand Abwesend antreibt: Licht aus, Klimaanlage aus, Tür verriegelt, Kameras melden einen Menschen und der Sauger reinigt einmal am Tag. Die Beine für Schloss und Klimaanlage sind gestrichelt, weil die Automation nie dabei beobachtet wurde, wie sie sie ausführt."&gt;&lt;img src="https://tycstation.com/notes/house-decides/diagrams/away.svg" alt="Was der Zustand Abwesend antreibt: Licht aus, Klimaanlage aus, Tür verriegelt, Kameras melden einen Menschen und der Sauger reinigt einmal am Tag. Die Beine für Schloss und Klimaanlage sind gestrichelt, weil die Automation nie dabei beobachtet wurde, wie sie sie ausführt." width="1100" height="300" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Was Abwesend tatsächlich antreibt. Die beiden gestrichelten Beine sind die, die nie in Aktion erwischt wurden.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Sauger&lt;/strong&gt; reinigt bei Abwesend, einmal am Tag, nur bei Tageslicht und
nur, wenn er angedockt ist und beide eigenen Fehlersensoren sauber melden —
eine Störung ist nie ein Grund, ihn erneut loszuschicken. Kommt jemand heim
oder geht das Haus schlafen, wird er zurück zur Station geschickt, egal wo er
gerade ist. Sein Ruhefenster ist auch das des Hauses: Beim Einschlafen
sichert die Automation die geräteeigenen Anfangs- und Endzeiten, zieht das
Fenster auf jetzt und stellt beim Aufwachen die gesicherten Zeiten wieder
her. Der Schalter des Herstellers schaltet nur einen Zeitplan scharf — er
bringt die Station nicht zum Schweigen, die sich nachts laut selbst
entleert. Störungen erreichen das Telefon einmal je Klasse, still
während Abwesend und einmal nachgereicht beim Heimkommen, wenn sie die ganze
Abwesenheit überdauert haben.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Kameras&lt;/strong&gt; sind die Aufteilung, die schon der Rundgang beschreibt: Der
Rekorder auf der Speicherbox nimmt weiter auf, eine Objekterkennung in einem
eigenen Gast schaut auf dieselben Bilder, und die Zentrale entscheidet, was
eine Erkennung bedeutet. Diese entscheidende Hälfte ist klein und hat drei
Regeln.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Eine Kamera, deren Steckdose gleich stromlos wird, wird vorher in der
Erkennung abgeschaltet und zwei Minuten nach dem Wiedereinschalten wieder
aktiviert, damit ein Stromzyklus nie als verlorener Stream gelesen wird.
Welche Steckdose welche Kamera speist, wurde gemessen, nicht aus den Namen
gelesen — eine Steckdose, die in der Oberfläche „Küche“ heißt, sitzt unter
einer Kamera am Esstisch. Eine Kamera hat gar keine Steckdose und lässt
sich deshalb nie in die Verriegelung einbeziehen.&lt;/li&gt;
&lt;li&gt;Ein Mensch, der erkannt wird, während das Haus auf Abwesend steht, erzeugt eine
Push-Nachricht und eine Mail mit dem Standbild des Rekorders, und wo die
Erkennung ein Gesicht zuordnen konnte, steht der Name vorn im Text. Der
Alarm hängt am rohen Ereignisstrom der Erkennung, nicht an ihren
aufbereiteten Meldungen — die entstehen nur für Kameras, die die Erkennung
selbst aufzeichnet, und sie zeichnet hier nichts auf. Genau eine Meldung je
verfolgtem Objekt fällt aus den Daten selbst heraus: Die Liste der Zonen,
die ein Objekt betreten hat, wächst nur, also hat die Bedingung genau eine
Flanke.&lt;/li&gt;
&lt;li&gt;Die Balkonkamera meldet nur einen Menschen innerhalb einer gezeichneten
Zone entlang der Brüstung; die Straße dahinter ist maskiert. Vor dieser
Neuausrichtung erzeugte sie drei Viertel aller Erkennungen der ganzen
Anlage, die meisten davon ein Fingernagel Bildfläche über acht Sekunden.
Danach: eine Handvoll am Tag, und ein Gang auf den Balkon erzeugt genau
eine Meldung.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der Home Mode des Rekorders bleibt unangetastet. Er schaltet auf dieser
Installation gar nichts scharf, und der Schreiber, mit dem die Zentrale
konkurrierte, war der Geofence der Hersteller-App auf demselben Telefon, der
jeden Wechsel um Minuten gewann. Den Hauszustand darauf zu spiegeln brachte
nichts, also wurde die Spiegelung fallengelassen statt verteidigt.&lt;/p&gt;
&lt;p&gt;Der Saugroboter wird übrigens nie als Mensch erkannt und wurde es nie. Über
eine Stunde Reinigung erzeugten die Kameras rund siebzig Ereignisse, und
jedes einzelne war höher als breit — Menschen. Eine Scheibe auf dem Boden
ist das nicht.&lt;/p&gt;
&lt;h2 id="luft"&gt;Luft&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Der Badlüfter war früher zwei Lichtschalter, die eine App zufällig steuern
konnte. Jetzt ist er ein Lüfter, der weiß, warum er läuft und wie lange
noch.&lt;/div&gt;
&lt;p&gt;Der zweistufige Abluftventilator im Bad hängt an zwei Relais. Der Funkstack
hatte sie als &lt;em&gt;Lichter&lt;/em&gt; angelegt, weil das Relais sich als eines ausgibt. Sie
sind jetzt zu Schaltern übersteuert und in eine einzige Lüfter-Entität mit
zwei Stufen gefasst — Grundlüftung, die immer laufen soll, und Boost.
Boost hat benannte Ursachen: der Trockner unter Last, das Badlicht an oder
der Feuchtesensor über einer Schwelle. Ein Dreißig-Minuten-Timer gibt ihn
wieder frei, alle fünf Minuten nachgespannt, solange eine Ursache anliegt,
und der Timer übersteht einen Neustart der Zentrale — ein Duschlauf, der
über einen Neustart reicht, nimmt seinen Countdown wieder auf, statt ihn zu
verlieren.&lt;/p&gt;
&lt;p&gt;Genau diese Eigenschaft ist der Grund für das Paket. Am 2026-09-06 fand sich
Boost seit dem Neustart der Vornacht eingeschaltet, ohne jeden Anlass. Die
in der Oberfläche gebaute Automation, die ihn freigab, benutzte einen Auslöser
der Form „Bedingung dreißig Minuten lang wahr“ — und der löst nie aus, wenn die
Bedingung beim Start schon wahr ist. Jeder Neustart mitten in der Ruhe ließ
Boost also für immer an. Die Zentrale startet etwa zweimal am Tag neu, wenn
sie ihre eigene Konfiguration holt; jeder Timer im Haus muss das überstehen,
sonst ist er keiner.&lt;/p&gt;
&lt;p&gt;Zwei weitere Relais, die „Lichter“ waren, gingen denselben Weg: das
Netzrelais einer Endstufe und ein Tastrelais, das den Einschaltknopf eines
PCs antippt — jetzt ein Taster statt eines Lichts, das sich nach einer
Sekunde selbst ausschaltet.&lt;/p&gt;
&lt;p&gt;Der Rest der Luftgeschichte ist Messen vor Handeln. Kohlendioxid, Feinstaub
und Feuchte jedes Raums stehen auf einem Grundriss-Dashboard. Zwei
Luftreiniger laufen mit hier geschriebener Firmware, nachdem die Server des
Herstellers abgeschaltet wurden; einer steht auf dem Balkon und bläst durch
die Wand, ist also die Zuluft des Schlafzimmers und der einzige mechanische
Luftwechsel, den die Wohnung hat. Der Feuchtekanal der selbstgebauten
Sensorknoten wird von keiner Regel gelesen: Im Parallelvergleich weicht er
deutlich von einer Referenz im selben Raum ab, und bis das verstanden ist,
liest Feuchtelogik die anderen Geräte. Die Zuluft nach dem Kohlendioxid des
Schlafzimmers zu regeln ist der nächste Schritt, und er ist nicht gebaut.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/air-2026-09-08.jpg" alt="Die Oberseite eines Luftreinigers in schwachem rotem Licht: ein rundes Display mit einer stilisierten Krake, einem WLAN-Symbol, einer Prozentzahl und Feinstaubwerten für PM2.5 und PM10." class="photo" width="1200" height="2132" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Der Luftreiniger, dessen Hersteller abgeschaltet wurde, mit in der Wohnung gebauter Firmware. Die Werte auf seinem Display sind die, die er an den Haus-Broker veröffentlicht.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="alarme-die-man-nicht-verpassen-darf"&gt;Alarme, die man nicht verpassen darf&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Ein Sensor, der verstummt ist, und ein Sensor, der nichts Neues zu sagen hat,
sehen von außen gleich aus. Die Wohnung merkt sich, wann jeder zuletzt
gesprochen hat, nicht nur was er zuletzt sagte — so geht eine leere Batterie
nicht als gesunde Pflanze durch.&lt;/div&gt;
&lt;p&gt;Zwei Lecksensoren sitzen dort, wo ein Leck am teuersten ist: unter der
Spüle und unter einem wassergekühlten PC. Ein Leck spricht auf dem Telefon
in Alarmlautstärke durch den Stummmodus hindurch, hinterlässt eine angeheftete
Meldung, wird auf dem Sprachsatelliten angesagt und geht als Mail ins
Protokoll. Es wiederholt sich alle zwei Minuten, bis der Sensor trocken ist,
höchstens etwa eine Stunde lang, und räumt dann seine eigene Meldung weg. Ein
Sensor, der aufhört zu melden, ist sein eigener Alarm. Der Strom des PCs wird
bewusst nicht gekappt: Eine erzwungene Abschaltung einer laufenden Maschine
ist die Entscheidung eines Menschen.&lt;/p&gt;
&lt;p&gt;Zwei Bodensonden bewachen zwei Pflanzen. Ein trockener Messwert muss eine
Stunde halten, bevor er meldet — ein niedriger Einzelwert nach dem Gießen
darf eine frische Messung nicht entwerten —, und erinnert dann einmal
täglich. Die Sonden schlafen und melden nur bei nennenswerter Änderung, ein
Wert kann also tagelang stehen bleiben. Der Veraltungsalarm hängt deshalb
daran, wann die Sonde zuletzt &lt;em&gt;gemeldet&lt;/em&gt; hat, nicht daran, wann sich der Wert
zuletzt geändert hat — dass das zweierlei ist, hat ein erzwungenes Nachsenden
gezeigt. Eine Sonde brauchte eine Korrektur an der Gerätebibliothek, die es
noch nicht ins Upstream geschafft hat; sie wird lokal mitgeführt.&lt;/p&gt;
&lt;p&gt;Die Gesundheit der Entitäten wird genauso gezählt: nur nicht verfügbare, nie
„unbekannt“, je Integration statt als eine flache Zahl, weil eine flache
Zahl taub dafür ist, dass eine mittelgroße Integration ausfällt. Und das
nächtliche Backup außer Haus meldet sein Ergebnis aus den beiden Entitäten,
die die Zentrale selbst dafür führt, nie daraus, dass „der Aufruf
zurückkam“ — die dreizehn stillen Tage, aus denen diese Regel stammt, stehen
in der &lt;a href="https://tycstation.com/de/notes/backups/"&gt;Backup-Notiz&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="eine-party-die-ohne-die-zentrale-läuft"&gt;Eine Party, die ohne die Zentrale läuft&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Disco wird hier nicht vom Laptop aus gesteuert. Jede Lampe hört selbst auf
den Raum, so wie ein Mensch mit dem Fuß mitwippt — und deshalb hört nichts
auf, wenn der Rechner im Schrank aufhört.&lt;/div&gt;
&lt;p&gt;Der fünfte Hauszustand hatte wochenlang einen Knopf und kein Verhalten. Was
er heute tut, ruht auf einer aus den Geräten gelesenen Tatsache: Jede Lampe
im Raum, die auf Klang reagieren kann, hat ihr eigenes Mikrofon. Die
Dodekaeder-Lampen und die Mondlampe fahren einen klangreaktiven Effekt aus
eigener Kraft; der Lichtervorhang hat sieben eigene Mikrofonmodi; die beiden
Skulpturlampen stehen in einem Modus, in dem Musiksync fest an ist. Eine
Party zu starten heißt, jedes Gerät auf seinen eigenen klangreaktiven Modus
zu setzen und es dann in Ruhe zu lassen. Es wird kein Ton irgendwohin
gestreamt, nichts analysiert den Raum zentral, und die Party läuft weiter,
wenn die Zentrale mitten im Lied ausfällt.&lt;/p&gt;
&lt;p&gt;Die eine Geräteklasse, die nicht hören kann, ist die Licht-Bridge, und die
steuert die Zentrale — mit Bedacht. Die Bridge hält den Raum, sie hält nicht
den Takt: ein tiefes, gedimmtes Flächenlicht über das ganze Wohnzimmer, das sich
nie ändert, und Farbe, die mit Überblendungen über sechs Akzentleuchten
wandert. Die erste Fassung schaltete jedes Deckenlicht im Raum alle
anderthalb Sekunden auf eine neue satte Farbe und sah aus wie billiges
Blink-RGB; der Takt gehört den Geräten, die ihn wirklich hören. Die
„dynamischen“ Szenen der Bridge wurden live nachgemessen und bewegen sich
nicht, also werden sie nicht benutzt.&lt;/p&gt;
&lt;p&gt;Drumherum laufen vier Dinge. Jedes angefasste Licht wird beim Starten
gesichert und beim Beenden wiederhergestellt, je Lampe statt je Gruppe. Der
Tür-Alarm und die Gerätemelder werden still, weil Gäste ein und aus gehen.
Die Sync-Box des Fernsehers geht aus: Die Bridge streamt nur eine Sitzung
gleichzeitig, und die Party gewinnt. Und die Nebelmaschine bekommt Strom mit
einer harten Zwei-Stunden-Grenze — die Zentrale kann sie einschalten, zum
Nebeln bringen kann sie sie nicht.&lt;/p&gt;
&lt;p&gt;Ein Keep-alive steigt jede halbe Stunde neu in die Farbschleife ein, weil die
Zentrale eine Schleife nach zehntausend Durchläufen
abbricht — im Party-Takt sind das keine drei Stunden, also ein ganz
gewöhnlicher Abend.&lt;/p&gt;
&lt;p&gt;Party hat keinen automatischen Ausgang, und das steht als offene
Entscheidung des Hauses da, nicht als Fehler. Jeder andere Modus hier hat
einen bestimmten Weg hinaus, und die eigene Regel dieses Hauses lautet, dass
ein Modus einen braucht. Ob der Ausgang „Wohnung eine halbe Stunde leer“
oder „Sonnenaufgang“ heißt, ist eine Entscheidung über das Haus, nicht über
den Code.&lt;/p&gt;
&lt;h2 id="taster-die-sagen-wenn-sie-falsch-stehen"&gt;Taster, die sagen, wenn sie falsch stehen&lt;/h2&gt;
&lt;p&gt;Die zweimodigen Funktaster und Drehknöpfe der Wohnung können je zwei
Firmware-Modi fahren, und ein verstecktes Dreifach-Klicken kippt sie. Im
falschen Modus schickt ein Drehknopf alle anderthalb Sekunden ein Ereignis statt
eines Befehls in einer Viertelsekunde. Befehlsmodus ist der Standard. Ein
Melder überwacht den Ereignis-Verkehr von allen sechs Geräten, Reservestücke
eingeschlossen, und sagt es laut an — ein Drehknopf, der in der Schublade
umgeschaltet wurde, meldet sich also selbst, statt sich eine Woche lang
kaputt anzufühlen.&lt;/p&gt;
&lt;p&gt;Der Drehknopf am Schreibtisch ist die Lautstärke des Audioprozessors des
Raums: eine skalierte Stufe je Rastung auf einen Zielwert, ein sofortiger
erster Schreibvorgang und ein Nachlauf im Viertelsekundentakt, damit ein
schnelles Drehen nicht auf eine Stufe zusammenfällt. Druck ist
Wiedergabe/Pause, Doppeldruck ist stumm.&lt;/p&gt;
&lt;h2 id="was-nicht-bewiesen-ist-und-was-geplant"&gt;Was nicht bewiesen ist, und was geplant&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Das Stellglied-Bein von Abwesend&lt;/strong&gt; — Schloss und Klimaanlage, die auf
einen echten Aufbruch reagieren. Beide waren bei den bisher
protokollierten Aufbrüchen schon im Zielzustand.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eine späte Ankunft, die die Wohnung erhellt, bevor die Tür zufällt&lt;/strong&gt;, an
einem echten Abend; die eine protokollierte Ankunft fand das Licht bereits
an.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Die Bluetooth-Begehung&lt;/strong&gt;, die raumgenaue Anwesenheit zu mehr als einem
bestätigenden Eingang machen würde.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Die Bridge-eigenen Lichtabläufe&lt;/strong&gt; fahren in Flur und Bad weiter nach
Wanduhr, während die Zentrale dieselben Lampen bei der Ankunft steuert —
genau die eine Anordnung, die dieses Haus ausschließt. Sie abzuschalten
ist ein Schritt in der App des Herstellers, gebunden an einen Durchgang
über jeden Taster, jeden Drehknopf und jedes Pad.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ein Stromzyklus jeder Kamerasteckdose unter Beobachtung&lt;/strong&gt;, um die
gemessene Zuordnung von Steckdose zu Kamera gegen die Verriegelung zu
bestätigen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Der Ausgang aus Party&lt;/strong&gt;, siehe oben.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Das eigene Schlafsignal der Zentrale&lt;/strong&gt; von der Armbanduhr, für das eine
Berechtigung auf dem Telefon erteilt werden muss.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Was diese Punkte gemeinsam haben, ist der Abstand zwischen einer Regel und
einer Beobachtung. Die Ableitung selbst ist an einem echten Aufbruch
bewiesen. Das meiste, was daran hängt, ist bisher nur durchdacht — und ein
Haus, das im Verlauf recht hat, ist noch kein Haus, das man hat recht haben
sehen.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Jede hier genannte Automation wurde am 2026-09-08 aus der laufenden Zentrale
gelesen und ihre Regeln am selben Tag aus dem Konfigurations-Repository des
Smart Home; die Vorfälle tragen das Datum, das neben den Regeln vermerkt
ist, die sie geändert haben. Geplante Punkte sind als geplant markiert.&lt;/p&gt;</description></item><item><title>45 von 132, und was die Note wert war</title><link>https://tycstation.com/de/notes/45-of-132/</link><pubDate>Tue, 08 Sep 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/45-of-132/</guid><description>&lt;p&gt;Im September wurde diese Umgebung gegen ein Enterprise-Raster geprüft: jedes Repository, jede Pipeline, der Live-Zustand beider Knoten, der Firewalls, der Speicherbox, der Smart-Home-Zentrale und jeder veröffentlichten Seite. Das Ergebnis waren 45 von 132 Punkten, ein Median von 1 und fünf von neun kritischen Zeilen durchgefallen. Diese Notiz handelt von der Methode, von den Kosten — zweiundsiebzigeinhalb Millionen gemessene Token über 358 Agentenläufe, plus zwei Durchgänge, deren Abrechnung schlicht fehlt — und von dem Teil, der mehr wert ist als die Zahl: worin die Prüfung über sich selbst falsch lag. Jeder achte Befund des ersten Durchgangs überlebte das erneute Lesen nicht. Von 86 kritischen Befunden, die gegen den Live-Zustand nachgeprüft wurden, war einer schlicht falsch. Und das Urteil in der Überschrift war ein Artefakt des Rasters, das einen zweiten Prüfer und eine Rufbereitschaft verlangt — woran ein Ein-Personen-Haushalt konstruktionsbedingt scheitert. Stand 2026-09-08.&lt;/p&gt;&lt;p&gt;Alles andere auf dieser Seite ist von innen geschrieben. Dieses hier hat etwas
geschrieben, dem aufgetragen war, nichts davon für wahr zu halten.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/rack-2026-08-23.jpg" alt="Der aktuelle Stand des Racks in Magenta-Licht: die weißen MikroTik-Switches senkrecht gestapelt in der Lücke zwischen Schreibtisch und Lautsprecher, lose hängende Kabel, davor ein dunkles Mini-PC-Gehäuse auf dem Boden." class="photo" srcset="https://tycstation.com/img/rack-2026-08-23.jpg 1200w, https://tycstation.com/img/rack-2026-08-23-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1200" height="1600" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Was benotet wurde. Alles in dieser Notiz handelt von den Maschinen auf
diesem Foto und den Repositories, die sie beschreiben.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="was-gelesen-wurde"&gt;Was gelesen wurde&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Keine Führung und kein Fragebogen. Jede Datei in jedem Repository, die Historie
hinter diesen Dateien, und dann die Maschinen selbst — gefragt, was sie
tatsächlich tun, nicht, was in den Dateien steht.&lt;/div&gt;
&lt;p&gt;Sieben Repositories, dazu der Plugin-Marktplatz und die Konfiguration der
Arbeitsstation selbst. Die Git-Historie von jedem. Jede CI-Datei. Alle
fünfundsechzig Alarmregeln. Jede veröffentlichte Seite.&lt;/p&gt;
&lt;p&gt;Dann die laufende Umgebung, nur lesend: beide Proxmox-Knoten, das
Firewall-Paar, die Speicherbox, die Smart-Home-Zentrale, der Metrik- und der
Log-Speicher und die Forge. Wo eine Aussage in einer Datei gegen eine
Live-Schnittstelle entschieden werden konnte, wurde sie gegen die
Live-Schnittstelle entschieden — die stehende Anweisung der Prüfung lautete,
dass ein Dokument eine Behauptung ist und kein Beleg.&lt;/p&gt;
&lt;h2 id="wie-sie-lief"&gt;Wie sie lief&lt;/h2&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Die Form der Prüfung: geholte Hersteller-Checklisten und aus Prompts gewonnene Prüfperspektiven speisen 109 Domänenberichte, jeder Bericht wird von einem zweiten Durchgang erneut gelesen, die Überlebenden werden zu einem Register aus 2.415 Befunden, 86 kritische werden gegen den Live-Zustand nachgeprüft, und der Bericht vergibt 45 von 132."&gt;&lt;img src="https://tycstation.com/notes/45-of-132/diagrams/passes.svg" alt="Die Form der Prüfung: geholte Hersteller-Checklisten und aus Prompts gewonnene Prüfperspektiven speisen 109 Domänenberichte, jeder Bericht wird von einem zweiten Durchgang erneut gelesen, die Überlebenden werden zu einem Register aus 2.415 Befunden, 86 kritische werden gegen den Live-Zustand nachgeprüft, und der Bericht vergibt 45 von 132." width="1100" height="350" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Jede Stufe ist ein eigener Lauf von Agenten, darunter steht, was sie gekostet hat. Zwei spätere Durchgänge stehen in der Kostentabelle und nicht im Bild.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Vor jeder Prüfung wurden zwei Vorarbeiten gebaut. Die Dokumentation der
Hersteller je Technologiefeld wurde in 14 Recherche-Checklisten gesammelt, damit
„Best Practice“ eine geholte Seite bedeutet und keine Erinnerung. Und 264 der
eigenen Prompts dieses Haushalts — jedes Mal, wenn der Betreiber etwas
korrigiert hatte — wurden zu 63 Prüfperspektiven verdichtet, daraus zu 14
Verhaltensregeln und 57 stehenden Entscheidungen, und daraus zu einem
Prüfagenten. Die Umgebung wurde zum Teil gegen die früheren Einwände ihres
eigenen Betreibers benotet.&lt;/p&gt;
&lt;p&gt;Das Raster selbst bewertet 33 Kriterien von 0 bis 4; die Obergrenze liegt also
bei 132.&lt;/p&gt;
&lt;p&gt;Die eigentliche Prüfung erzeugte 109 verifizierte Berichte: 38 zu Komponenten,
36 zu Dokumenten, 17 über die Perspektiven, 8 zur Git-Historie, 4 zur
Plan-Drift und 6 zu den Wächter- und Lint-Regeln. Weitere 11
Domänen-Zusammenführungen sitzen darauf. Darunter liegt ein Register aus 2.415
Datensätzen, 2.154 davon kanonisch, nachdem Dubletten zusammengelegt wurden.&lt;/p&gt;
&lt;h2 id="was-nicht-überlebt-hat"&gt;Was nicht überlebt hat&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die interessante Zahl ist nicht, wie viel die Prüfung gefunden hat. Sie ist,
wie viel davon falsch war — und ob jemand noch einmal nachgesehen hat.&lt;/div&gt;
&lt;p&gt;Jeder der 109 Berichte wurde von einem anderen Durchgang erneut gelesen, und
das Ergebnis nach einer Regel gezählt: Innerhalb eines Abschnitts ist eine
Überschrift oder eine Tabellenzeile ein Posten.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Was die Verifikation mit dem ersten Durchgang gemacht hat: von 2.269 Posten über 109 Berichte blieben 1.482 unverändert, 512 änderten Schwere oder Formulierung und 275 fielen als nicht real oder nicht belegt heraus, während weitere 273 Posten vom zweiten Durchgang hinzukamen."&gt;&lt;img src="https://tycstation.com/notes/45-of-132/diagrams/survival.svg" alt="Was die Verifikation mit dem ersten Durchgang gemacht hat: von 2.269 Posten über 109 Berichte blieben 1.482 unverändert, 512 änderten Schwere oder Formulierung und 275 fielen als nicht real oder nicht belegt heraus, während weitere 273 Posten vom zweiten Durchgang hinzukamen." width="1100" height="276" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;2.269 Posten gingen in die Verifikation. 275 kamen als nicht real wieder heraus.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Danach wurden die 86 Befunde, die das Register als kritisch führte, einzeln
gegen Code und Live-Zustand nachgeprüft. Siebenundsechzig wurden bestätigt,
zwölf bestätigt, aber schwächer als zuerst geschrieben, und sechs gehörten in
eine andere Schwere. Einer war falsch: Die Prüfung hatte die Wiederherstellung
des Tresors als nie ausgeführt vermerkt, und sie war am 2026-08-20 erfolgreich
gelaufen — ein Datum, das &lt;a href="https://tycstation.com/de/notes/backups/"&gt;hier ohnehin steht&lt;/a&gt;.
Die Jobnummer kam an die Stelle des Befunds ins Protokoll.&lt;/p&gt;
&lt;p&gt;Die Prüfung stellte auch Befunde gegen ihre eigenen Eingangsberichte aus. Eine
Mustersuche mit einem nicht maskierten Alternativzeichen, die eine Empfehlung
bis auf hohe Schwere getragen hatte. Ein Bericht, benotet gegen einen
Repository-Stand, der schon zwei Commits alt war. Prüfungen, die als „führe
das aus“ zurückgereicht statt ausgeführt wurden. Und eine Schweregrad-Schublade
„niedrig“ in mindestens 14 der 36 Dokumentations-Eingänge — entgegen der
stehenden Regel, die aus den Korrekturen des Betreibers stammt und die die
Prüfung übernommen hatte: Nichts wird als geringfügig abgelegt.&lt;/p&gt;
&lt;p&gt;Die letzte Prüfung galt der Sprache des Berichts selbst. Eine Suche nach dem
Vokabular des Aufschiebens — der Bericht ist englisch, gesucht wurde also nach
&lt;em&gt;minor&lt;/em&gt;, &lt;em&gt;nit&lt;/em&gt;, &lt;em&gt;later&lt;/em&gt;, &lt;em&gt;non-blocking&lt;/em&gt;, &lt;em&gt;out of scope&lt;/em&gt;, &lt;em&gt;consider&lt;/em&gt;, &lt;em&gt;might&lt;/em&gt; —
lief gegen den fertigen Text. Sie fand 76 Treffer auf 42 Zeilen, und jeder einzelne ist im
Bericht nach Fundort verbucht: eine zitierte Codezeile, die selbst aufschiebt,
ein Versionsschema-Begriff, ein gemessener Zeitabstand, oder das Protokoll der
Suche selbst. Eine Weichspül-Prüfung ist nur dann ein Beleg, wenn ihr Ergebnis
gelesen und nicht bloß gemeldet wird.&lt;/p&gt;
&lt;p&gt;Und was nicht verifiziert werden konnte, ist eine Liste und kein Schweigen.
Konsolen-Abfragen, die das nur lesende Werkzeug nicht erreicht. Werte, die der
Sicherheitsklassifikator nicht herausgibt. Nur dem Betreiber zugängliche
Flächen: wer welchen Schlüssel verwahrt, welches Konto Zwei-Faktor
eingeschaltet hat, wer an einem bestimmten Tag etwas Bestimmtes getan hat. Und
die Eingriffe, die eine Frage endgültig klären würden, dafür aber die Umgebung
verändern müssten. Einundzwanzig Fragen unter den kritischen Befunden bleiben von diesem
Standpunkt aus unbeantwortbar, und jede ist mit dem Befehl vermerkt, der sie
klären würde, und mit der Zuständigkeit dafür.&lt;/p&gt;
&lt;h2 id="die-note-und-warum-sie-am-wenigsten-geholfen-hat"&gt;Die Note, und warum sie am wenigsten geholfen hat&lt;/h2&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Die Note gegen den Maßstab, auf den es ankam: Das Raster gab 45 von 132 bei einem Median von 1 und fünf von neun kritischen Zeilen durchgefallen, während die anschließende Durchsicht stattdessen zwei Fragen benannte — ob ein Außenstehender ohne Zugangsdaten hereinkommt, und ob ein totes Stück aus Git, dem Tresor und einer Kopie außer Haus wieder aufgebaut werden kann."&gt;&lt;img src="https://tycstation.com/notes/45-of-132/diagrams/bar.svg" alt="Die Note gegen den Maßstab, auf den es ankam: Das Raster gab 45 von 132 bei einem Median von 1 und fünf von neun kritischen Zeilen durchgefallen, während die anschließende Durchsicht stattdessen zwei Fragen benannte — ob ein Außenstehender ohne Zugangsdaten hereinkommt, und ob ein totes Stück aus Git, dem Tresor und einer Kopie außer Haus wieder aufgebaut werden kann." width="1100" height="316" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Die Zahl links ist echt. Sie ist auch ungefähr die einzige Zahl, die dieses Raster hier hervorbringen konnte.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;45 von 132. Median 1. Fünf von neun kritischen Zeilen durchgefallen. Nicht
Enterprise-Grade, und der Bericht sagt das in seiner ersten Zeile.&lt;/p&gt;
&lt;p&gt;Die Bestehensgrenze des Rasters lautet: kein Kriterium unter 2, Median
mindestens 3, keine kritische Zeile durchgefallen. Die erste dieser drei
Bedingungen ist mit einem Betreiber unerreichbar, und der Bericht gibt das im
selben Abschnitt zu, in dem er sie anlegt. Das Urteil stand also fest, bevor
die erste Datei gelesen war. Schlimmer noch, es bläht die
Zählung auf: Ein Bus-Faktor von eins, kein zweiter Prüfer und keine
Rufbereitschaft werden alle als Mangel gewertet, und keines davon ist ein
Mangel. Sie sind die Beschreibung eines Haushalts.&lt;/p&gt;
&lt;p&gt;Eine Zahl machte das deutlich. Die Prüfung zählte Merge Requests, die von
demselben Konto zusammengeführt wurden, das sie eröffnet hatte, und las das
Verhältnis als fehlende Kontrolle. Die Zählung stimmt und ist nutzlos: Es gibt
hier nur ein Konto, und es kann den Menschen nicht von dem Agenten
unterscheiden, der in seinem Auftrag arbeitet. Gemessen wird, wie viele
Personen in der Wohnung leben.&lt;/p&gt;
&lt;p&gt;Danach folgte eine getrennte Durchsicht, über den Bericht und die laufende
Umgebung zugleich, und sie benannte den Maßstab, der richtig gewesen wäre. Zwei
Fragen: Kommt ein Außenstehender ohne Zugangsdaten herein? Und wenn ein Stück
stirbt, lässt es sich aus Git, dem Tresor und einer Kopie außer Haus wieder
aufbauen? So gemessen ist das Design tragfähig und die Löcher sind zählbar —
die Durchsicht zählt vier, was ein anderer Satz ist als 45 von 132 und auch
kein bequemer. Die Befunde unter der Rahmung hielten überwiegend ebenfalls:
Token-Rechte, Runner-Mounts, Log-Inhalte und Firewall-Regeln wurden einzeln
nachgelesen und standen in jedem Fall, den die Durchsicht noch einmal
aufmachte. Falsch lag die Prüfung bei der Benotung, der Zuordnung und der
Rahmung. Nicht die Fakten.&lt;/p&gt;
&lt;h2 id="was-sie-gekostet-hat"&gt;Was sie gekostet hat&lt;/h2&gt;
&lt;p&gt;Gemessen an der eigenen Abrechnung der Laufzeitumgebung, pro Lauf.&lt;/p&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Durchgang&lt;/th&gt;
&lt;th scope="col"&gt;Token&lt;/th&gt;
&lt;th scope="col"&gt;Werkzeugaufrufe&lt;/th&gt;
&lt;th scope="col"&gt;Agentenläufe&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Komponenten, Perspektiven, Dokumente, Historie, Regeln&lt;/td&gt;
&lt;td&gt;36.290.808&lt;/td&gt;
&lt;td&gt;11.200&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verifikation aller 109 Berichte&lt;/td&gt;
&lt;td&gt;27.460.793&lt;/td&gt;
&lt;td&gt;8.106&lt;/td&gt;
&lt;td&gt;218&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Befundregister und Inventar&lt;/td&gt;
&lt;td&gt;3.872.917&lt;/td&gt;
&lt;td&gt;388&lt;/td&gt;
&lt;td&gt;13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nachprüfung der 86 kritischen Befunde&lt;/td&gt;
&lt;td&gt;3.326.489&lt;/td&gt;
&lt;td&gt;1.164&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Unabhängige dreifache Gegenprüfung&lt;/td&gt;
&lt;td&gt;1.369.950&lt;/td&gt;
&lt;td&gt;471&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redaktioneller Durchgang&lt;/td&gt;
&lt;td&gt;230.887&lt;/td&gt;
&lt;td&gt;51&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gemessene Summe&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;72.551.844&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;21.380&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;358&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Zwei weitere Läufe melden keine Zahl und stehen außerhalb der Summe: der
Grundlagen-Durchgang, der Checklisten, Perspektiven und Raster gebaut hat, und
ein Verifikationslauf, der auf halbem Weg gestoppt wurde, um einen leichteren
Modus nachzurüsten. Die Summe ist eine Untergrenze.&lt;/p&gt;
&lt;h2 id="was-hier-bewusst-fehlt"&gt;Was hier bewusst fehlt&lt;/h2&gt;
&lt;p&gt;Zwölf Befunde sind kanonisch kritisch. Drei davon sind inzwischen geschlossen;
neun nicht. Was sie sind, auf welcher Maschine sie sitzen und was sie schließt,
steht nicht auf dieser Seite und wird dort nicht stehen, solange sie offen
sind — dasselbe gilt für die geordnete Liste der Wege hinein. Dieser Absatz steht hier, damit die Auslassung im
Protokoll steht und nicht hinter einer fröhlichen Zusammenfassung verschwindet.&lt;/p&gt;
&lt;h2 id="was-sie-verändert-hat-und-was-nicht"&gt;Was sie verändert hat, und was nicht&lt;/h2&gt;
&lt;p&gt;Stand 2026-09-08 sind siebenundzwanzig Befunde geschlossen. Bei einundsechzig
ist eine Änderung geschrieben und wartet. Bei 2.327 ist gar nichts geschrieben.&lt;/p&gt;
&lt;p&gt;Der Abstand zwischen diesen drei Zahlen ist das ehrliche Ergebnis. Ein
zusammengeführter Fix ist kein angewendeter, ein angewendeter ist kein
verifizierter, und keiner der drei ist ein geschlossener Befund. Das Aufräumen
der liegengebliebenen Merge Requests am 2026-09-08 hat 77 Datensätze in einem
Zug wieder auf offen gesetzt, weil die Änderung geschrieben war und nie
gelandet ist.&lt;/p&gt;
&lt;p&gt;Es ist dieselbe Lehre, zu der &lt;a href="https://tycstation.com/de/notes/what-runs/"&gt;der Rest dieser Seite&lt;/a&gt;
von der anderen Richtung her kommt. Eine Sache ist nicht erledigt, weil sie
entschieden, geschrieben oder zusammengeführt wurde. Sie ist erledigt, wenn man
sie hat laufen sehen.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Methode, Abdeckung, Kosten und die Ergebnisse der Nachprüfung aus den
generierten Kennzahlen und dem Bericht der Prüfung selbst, gelesen am
2026-09-08; die Zahlen zu geschlossenen und offenen Befunden aus dem
Befundregister vom selben Tag. Die Befunde selbst werden nicht veröffentlicht.&lt;/p&gt;</description></item><item><title>Vier Funknetze, und wo das Lokale endet</title><link>https://tycstation.com/de/notes/four-radios/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/four-radios/</guid><description>&lt;p&gt;Vier Funknetze tragen die Geräte dieser Wohnung, und jedes taugt für etwas, wofür die anderen nicht taugen. Diese Notiz zählt sie durch: was jedes wirklich trägt, die Geräte, deren Firmware in der Wohnung gebaut wird — neun gebaute Knoten, zwei Luftreiniger und seit September der Leser am Stromzähler —, und was das Nachmessen eines Radars darüber lehrte, was es sehen kann und was nicht. Sie behandelt auch, wie der Strom des Haushalts gemessen wird — inzwischen an der optischen Schnittstelle des Zählers selbst, mit den Phasenklemmen als bloßem Gegencheck — und die geschriebene Regel dagegen, dasselbe Watt zweimal zu zählen. Und sie ist ehrlich zur Naht. Mehrere Brücken existieren nur dafür, gekaufte Hardware ohne die Cloud des Herstellers nutzbar zu halten, zwei davon mit hier geschriebener Firmware, nachdem die Server des Herstellers abgeschaltet wurden. Aber eine Licht-Bridge fährt neben der Zentrale weiter ihre eigenen Abläufe nach Wanduhr, und die Amazon-Echos in der Wohnung sind Cloud-Geräte, die den tatsächlichen täglichen Sprachverkehr des Haushalts tragen. Die lokale Sprachkette ist wirklich lokal. Das Haus als Ganzes ist es nicht. Stand 2026-09-08.&lt;/p&gt;&lt;p&gt;Eine Zählung ist noch keine Architektur. Zigbee trägt die Schalter, Thread
fährt auf dem Border-Router des Zigbee-Koordinators selbst, Matter fällt
dünner aus, als das Wort vermuten lässt, und Bluetooth LE bestätigt immer nur
eine Entscheidung, die ein anderer Sensor schon getroffen hat. Diese Notiz
geht sie der Reihe nach durch, dann die Geräte, deren Firmware in der Wohnung
gebaut wird, und endet dort, wo es nicht gelungen ist, ein gekauftes Produkt
lokal zu halten.&lt;/p&gt;
&lt;h2 id="vier-funknetze"&gt;Vier Funknetze&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Vier verschiedene Funknetze in einer Wohnung klingen nach Durcheinander, doch ein Haushalt fährt längst mehrere, ohne es zu bemerken: die Türklingel, den Autoschlüssel, die Kopfhörer. Jedes ist für seine eigene Aufgabe gebaut, und keines würde die der anderen erledigen.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Zigbee&lt;/strong&gt; trägt die Schalter, Taster, Drehknöpfe und Messsteckdosen. Es
läuft nativ in der Zentrale statt über einen eigenen Bridge-Dienst — ein
eigenes Programm, das daneben läuft. Ein versioniertes Quirks-Verzeichnis
deckt die Geräte ab, die die Upstream-Bibliothek schlecht modelliert: Eine
Messklemme brauchte eines.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Thread&lt;/strong&gt; läuft auf dem Border-Router des Zigbee/Thread-Koordinators selbst.
Daneben läuft auf dem Host kein Border-Router-Container, und die
Konfiguration des Hosts hält das so.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Matter&lt;/strong&gt; ist hier dünner, als das Wort vermuten lässt. Die Licht-Bridge ist
als Matter-Knoten eingebunden, und die Matter-Zwillinge dreier
Bewegungsmelder tragen nur Batterie-Entitäten. Matter trägt das Haus nicht.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bluetooth LE&lt;/strong&gt; ist ein Bein der Anwesenheit. Der eigene Beacon des Telefons
wird über acht Empfänger raumgenau verortet — allesamt selbstgebaute
Sensorknoten in einer zweiten Rolle —, berechnet im LAN, ohne dass etwas nach
draußen geht.&lt;/p&gt;
&lt;h2 id="firmware-die-hier-gebaut-wird"&gt;Firmware, die hier gebaut wird&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Firmware, die hier gebaut wird, ist ein Rezept, das von jeder Zutat die genaue Version nennt — denn dass ein Lieferant eine davon still austauscht, ist der Grund, warum ein Gericht vom letzten Monat plötzlich misslingt.&lt;/div&gt;
&lt;p&gt;Neun Knoten laufen mit Firmware, die in der Wohnung gebaut wird, und acht
davon sind gekaufte Hardware, die das veröffentlichte Firmware-Paket des
Herstellers mit lokalen Überschreibungen fährt: vier Multisensor-Knoten mit
mmWave-Präsenz pro Entfernungstor, Kohlendioxid, Helligkeit und Umgebung, und vier
Luftqualitätsknoten mit Kohlendioxid, Feinstaub und Umgebung. Ein Entfernungstor ist
ein Abstandsband vom Radar aus, und jedes Band wird einzeln gemeldet.&lt;/p&gt;
&lt;p&gt;Der neunte ist von Hand geschrieben und kein Sensor. Er ist ein ESP32 am
RS485-Bus der Klimaanlage; er macht aus beiden Innengeräten gewöhnliche
Klima-Entitäten und veröffentlicht vom Außengerät Leistung, Energie, Strom,
Spannung und Fehlercode. Seine externe Komponente hängt an einem Commit-Hash
des Upstream-Hauptzweigs statt an einem Release-Tag, weil dort die
Kompatibilitätskorrekturen liegen und das Projekt selbst warnt, dass sein
getaggter Stand nicht mehr baut.&lt;/p&gt;
&lt;p&gt;Drei weitere Geräte tragen Firmware, die hier geschrieben und nicht bloß
hier konfiguriert wurde, und alle drei gibt es, weil ein Hersteller
aufgehört hat. Zwei sind Luftreiniger, deren Backend abgeschaltet wurde; sie
fahren jetzt eine Firmware, die in diesem Haushalt gebaut und unter dessen
eigenem Namen veröffentlicht wurde. Das dritte ist der Leser am
Stromzähler — ein Community-Projekt, hier mit einer Reihe lokaler
Korrekturen gebaut, das mit dem Haus-Broker spricht und mit sonst nichts.&lt;/p&gt;
&lt;p&gt;Die beiden Dodekaeder-Lampen im Wohnzimmer gehören ebenfalls auf die Liste.
Ihr Hersteller liefert eine geschlossene Abwandlung, deren Effekte ohne
Quelltext kommen; sie wurden aus dem Werksabbild zurückgelesen und auf der
offenen Standard-Firmware neu umgesetzt — die Geschichte steht im
&lt;a href="https://tycstation.com/de/notes/what-runs/"&gt;Rundgang&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nichts davon beweist, dass die Binärdatei auf einem Knoten aus der Datei
daneben gebaut wurde. Diese Lücke gehört zur &lt;a href="https://tycstation.com/de/notes/config-that-deploys-itself/"&gt;Notiz über die
Konfiguration, die sich selbst ausrollt&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="was-ein-sensor-wirklich-sieht"&gt;Was ein Sensor wirklich sieht&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Schritte, die durch eine Wand zu hören sind, beweisen, dass jemand im Haus ist, aber nicht, in welchem Raum. Deshalb darf nur das Gerät, das allein seinen eigenen Raum sieht, melden, dass jemand gekommen ist, und das Gerät, das durch Wände hört, darf nur melden, dass noch niemand gegangen ist.&lt;/div&gt;
&lt;p&gt;Ein Radar sieht durch eine Wand, und es tat es: Menschen im Flur wurden als
Bewohner des Nachbarraums gemeldet, während dessen Infrarotmelder aus blieb
und das Licht einen leeren Raum beleuchtete. Kein Schwellwert trennt die
beiden Fälle, weil ein Körper nahe am Sensor mehrere Entfernungstore
gleichzeitig sättigt. Also darf nur der Infrarotmelder Anwesenheit starten,
und das Radar darf sie nur halten — genau das, was ein regungsloser Mensch
braucht.&lt;/p&gt;
&lt;p&gt;Ein weiteres Radar flog ganz aus den Anwesenheitseingängen. Sein
Bewegungskanal flatterte zu oft, um als Eingang tragfähig zu sein.&lt;/p&gt;
&lt;p&gt;Raumgenaues Bluetooth läuft und wird bewusst nicht für sich allein als
verlässlich behandelt: Es widerspricht den Präsenzmeldern oft genug, dass ein
Bluetooth-Bereich niemals ein Licht schalten darf, ohne dass ein
Präsenzmelder zustimmt, und die Begehung, die es bestätigen würde, ist nicht
protokolliert.&lt;/p&gt;
&lt;p&gt;Was das Haus mit der Anwesenheit dann anfängt — fünf Hauszustände, abgeleitet
aus einer Tür, einem Telefon und diesen Sensoren —, steht in der &lt;a href="https://tycstation.com/de/notes/house-decides/"&gt;Notiz über
die Hauszustände&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="was-das-haus-misst"&gt;Was das Haus misst&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Wenn zwei Zähler dieselbe Waschmaschine sehen, wird die Ablesung nicht besser, wenn man beide auf die Rechnung setzt — die Wohnung sieht dann nur so aus, als verbrauchte sie doppelt so viel Strom.&lt;/div&gt;
&lt;p&gt;Der Netzbezug wird an dem Zähler gelesen, gegen den der Versorger abrechnet.
Ein kleiner Funkleser sitzt an dessen optischer Schnittstelle. Die drei
Stromklemmen, die diese Aufgabe bis September trugen, sind jetzt ein
Gegencheck, und sie verdienen ihn dadurch, dass sie abweichen: Sie lesen ein
paar Prozent über dem Zähler. Genau daran merkt man, dass eine Klemme eine
Klemme ist und ein Zähler ein Zähler. Die nennenswerten Verbraucher werden
an der Steckdose oder am Stromkreis erfasst.&lt;/p&gt;
&lt;p&gt;Die Regeln um dieses Dashboard herum drehen sich überwiegend darum, kein Watt
zweimal zu zählen: nie ein abgeleiteter Zähler neben dem nativen, den er
dupliziert, nie ein Kanal, der die Summe zweier anderer ist, und genau eine
Zeile für einen Verbraucher, den zwei Zähler sehen können.&lt;/p&gt;
&lt;p&gt;Die USV ist der Musterfall. Sie meldet überhaupt keine Wattzahl, also
multipliziert ein abgeleiteter Sensor ihre gemeldete Auslastung mit der
Nennleistung, in groben Stufen. Er ist eine Reserveanzeige, kein Messgerät,
und im Dashboard verboten, weil eine Messsteckdose dieselbe Buchse ohnehin real misst.
Er fällt auf „nicht verfügbar“ statt auf null, denn eine Null läse sich wie
ein leerlaufendes Rack. Und selbst dedupliziert ergeben die gemessenen Zeilen
nicht den ganzen Netzbezug — ein Teil der Last dieser Wohnung hängt schlicht
an keinem Zähler.&lt;/p&gt;
&lt;h2 id="wo-das-lokale-endet"&gt;Wo das Lokale endet&lt;/h2&gt;
&lt;p&gt;Manche Brücken existieren nur dafür, gekaufte Hardware ohne die Firma
dahinter nutzbar zu halten. Der Präsenzmelder im Wohnzimmer ist über ein
lokales Protokoll gekoppelt statt über ein Herstellerkonto. Die Klimaanlage
spricht ihren eigenen Bus statt der App des Herstellers. Zwei Luftreiniger
laufen mit hier geschriebener Ersatz-Firmware und veröffentlichen schlichte
Ganzzahlen an den Haus-Broker, weil das Backend des Herstellers abgeschaltet
wurde und es keinen anderen Weg gab, sie zu behalten — und die Konfiguration
nennt den Preis: Ein Schalter läuft optimistisch, weil die Firmware diesen
Zustand nie zurückmeldet. Einer der beiden steht inzwischen draußen auf dem
Balkon und bläst durch die Wand ins Schlafzimmer, womit er der einzige
mechanische Luftwechsel ist, den die Wohnung hat.&lt;/p&gt;
&lt;p&gt;Dann die Naht. Die Licht-Bridge fährt in zwei Räumen weiter ihre eigenen
Abläufe nach Wanduhr, während die Zentrale dieselben Lampen
steuert — zwei Systeme auf einem Satz Lampen, und genau das ist die eine
Anordnung, die dieses Haus ausschließt. Sie abzuschalten ist eine Handlung
des Betreibers in der App des Herstellers; keine Konfigurationsänderung kann
das leisten.&lt;/p&gt;
&lt;p&gt;Die Naht bei der Sprache ist breiter. Die Amazon-Echos, die in der Wohnung
stehen, sind Cloud-Geräte: Was man ihnen sagt, geht an die Server eines
Unternehmens, und von dort kommt die Antwort zurück. Sie tragen den
tatsächlichen täglichen Sprachverkehr des Haushalts — die gesprochenen
Lichtbefehle. Die lokale Sprachkette ist wirklich lokal: Die
Dienste für Spracherkennung und Sprachausgabe und der Satellit laufen alle in
der Wohnung. Angesprochen wird sie im Alltag nicht. Das Haus als Ganzes ist
nicht cloudfrei.&lt;/p&gt;
&lt;h2 id="was-geplant-ist"&gt;Was geplant ist&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ein Luftqualitätskanal bleibt ungenutzt.&lt;/strong&gt; Ein Parallelvergleich zeigte,
dass sein Feuchtewert deutlich von einer Referenz abweicht. Nichts liest
ihn, bis er geprüft ist.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Das Abschalten der Bridge-eigenen Lichtabläufe&lt;/strong&gt;, verknüpft mit einem
Durchgang über jeden Taster, jeden Drehknopf und jedes Pad, damit sich
beide nicht in die Quere kommen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Wo das Lokale endet, ist hier kein Grundsatz, sondern eine Stellung, Gerät für
Gerät gehalten. Sie verschiebt sich nur, wenn jemand sie verschiebt: Deshalb
wartet der zweite Punkt auf einen Menschen in der App eines Herstellers und
nicht auf einen Merge Request.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Funk- und Knotenkonfigurationen, Package-Dateien, der Energieplan und das
Komponentenverzeichnis am 2026-09-08 im Konfigurations-Repository des Smart
Home gelesen; die Sensormessungen stehen dort neben den Regeln, die sie
gesetzt haben. Geplante Punkte sind als geplant markiert.&lt;/p&gt;</description></item><item><title>Die Konfiguration, die sich selbst ausrollt</title><link>https://tycstation.com/de/notes/config-that-deploys-itself/</link><pubDate>Thu, 03 Sep 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/config-that-deploys-itself/</guid><description>&lt;p&gt;Ein Dienst im Rechenzentrum in der Wohnung wird nicht von der CI ausgerollt. Die Smart-Home-Zentrale holt sich den geprüften Branch selbst, mergt ihn, fährt Home Assistants eigene Konfigurationsprüfung gegen den gemergten Baum und setzt auf den letzten funktionierenden Commit zurück, wenn die Prüfung fehlschlägt — oder wenn sie gar nicht erst laufen kann. Im Gegenzug darf die laufende Maschine ihre Änderungen aus der Oberfläche ungeprüft direkt auf diesen geschützten Branch committen. Diese Notiz handelt von diesem Tausch und den Kontrollen, die ihn überlebbar machen: ein Branch, den niemand umschreiben kann, ein Tor, das im Zweifel schließt, und ein Commit-Pfad, der eine geheimnisförmige Datei ablehnt, bevor der Commit existiert. Den letzten gibt es, weil Ignorieren allein nicht genügte. Und sie ist ehrlich darin, was die Pipeline nicht beweisen kann: Keine Automation ist getestet, keine Firmware wird kompiliert, und vieles an der laufenden Instanz liegt in einem Speicher, den Git nie sieht. Stand 2026-09-08.&lt;/p&gt;&lt;p&gt;Alles andere in dieser Flotte ändert sich auf dieselbe Weise: Ein Merge
Request wird geprüft, eine Pipeline läuft, und ein Mensch drückt den Knopf,
der den neuen Zustand anwendet. Das Smart Home läuft andersherum.&lt;/p&gt;
&lt;h2 id="holen-statt-schicken"&gt;Holen statt schicken&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Überall sonst in diesem Haus wird eine Änderung an die Maschine geliefert, so
wie ein Paket. Hier holt die Maschine sie selbst ab, öffnet sie an der Tür und
gibt sie zurück, wenn der Inhalt nicht stimmt.&lt;/div&gt;
&lt;p&gt;Der Container der Zentrale trägt eine geforkte Deploy-Integration, die den
geprüften Branch beobachtet, ihn alle fünf Minuten holt und in sein eigenes
Konfigurationsverzeichnis mergt. Es gibt keinen Deploy-Job und keine
Login-Naht: Nichts aus der CI erreicht die laufende Instanz.&lt;/p&gt;
&lt;p&gt;Dashboards, Szenen und Skripte werden in der Oberfläche von Hand bearbeitet,
und ein einseitiger Push aus der CI würde diese Arbeit bei jedem Deploy
überschreiben. Deshalb läuft die Synchronisation in beide Richtungen, und alles
Weitere existiert, um das sicher zu machen.&lt;/p&gt;
&lt;h2 id="mergen-prüfen-zurückrollen"&gt;Mergen, prüfen, zurückrollen&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Eine Lieferung wird an der Tür geprüft, bevor sie angenommen wird, und im
Zweifel ganz zurückgewiesen. Fällt derjenige aus, der prüft, wird gar nichts
angenommen — und genau das ist die Absicht.&lt;/div&gt;
&lt;p&gt;Die Integration merkt sich den Commit, auf dem sie steht, mergt den eingehenden
Branch und fährt erst dann Home Assistants eigene Konfigurationsprüfung gegen
den gemergten Baum. Meldet die Prüfung Fehler, setzt sie hart auf den gemerkten
Commit zurück. Nichts lädt neu; die Kiste bedient weiter den Baum, der
funktioniert hat.&lt;/p&gt;
&lt;p&gt;Der andere Zweig wiegt schwerer. Wirft der Prüfer selbst einen Fehler — eine
Hilfsfunktion, deren Signatur sich verschoben hat, ein fehlgeschlagener Import
—, dann winkt er den Baum nicht durch. Er blockiert, und der Kommentar im Code
ist eine Zeile: Ein Tor, das nicht laufen kann, muss blockieren.&lt;/p&gt;
&lt;p&gt;Ein Pull, der durchgeht, wirkt in die andere Richtung: Ein Event feuert, und
eine in Git verwaltete Automation wendet es an — ein Reload, oder ein
vollständiger Neustart, wenn sich die Kernkonfiguration oder der Code einer
Integration geändert hat. Ein Merge auf den geprüften Branch kann das Haus neu
starten, auf einem Baum, den die Prüfung bereits validiert hat.&lt;/p&gt;
&lt;h2 id="die-maschine-schreibt-zurück"&gt;Die Maschine schreibt zurück&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Das Haus darf in das Logbuch schreiben, das es regiert. Deshalb lässt sich das
Logbuch nachträglich nicht ausradieren, und der Stift verweigert die Seite,
wenn das, was geschrieben werden soll, wie ein Schlüssel aussieht.&lt;/div&gt;
&lt;p&gt;Änderungen aus der Oberfläche werden auf der Kiste automatisch committet und
direkt auf den geschützten Branch gepusht. Kein Merge Request, kein Review —
und dies ist das einzige Repository der Flotte, in dem das erlaubt ist. Die CI
läuft auf diesen Commits weiterhin, aber erst, wenn sie schon auf dem Branch
sind; deshalb sind die unten beschriebenen Wächter die Tore auf diesem Weg,
nicht die Pipeline.&lt;/p&gt;
&lt;p&gt;Es ist als bewusst akzeptierte Abweichung festgehalten: Jede
Dashboard-Änderung beim nächsten Pull zu verlieren wurde als das größere
Übel bewertet. Die Kontrollen, die im selben Atemzug genannt werden, tragen das
Gewicht; drei davon zählen hier.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Branch bleibt geschützt.&lt;/strong&gt; Kein Force-Push, von niemandem. Ein Geheimnis,
das in die Historie gelangt, lässt sich rotieren, aber nie wieder
herausschreiben — deshalb muss der Wächter gegen Geheimnisse greifen, bevor ein
Commit überhaupt existiert.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Das Tor vor dem Ausrollen schließt im Zweifel&lt;/strong&gt;, siehe oben: Die Maschine,
die auf den Branch schreiben darf, ist auch die, die sich weigert, einen Baum
zu behalten, der nicht laden würde.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Commit-Pfad verweigert geheimnisförmige Pfade.&lt;/strong&gt; Die Kiste nimmt alles
in den Index auf, gleicht die aufgenommenen Pfade dann gegen eine Musterliste ab und
setzt bei jedem Treffer den Index zurück und verweigert. Der Commit entsteht
gar nicht erst.&lt;/p&gt;
&lt;p&gt;Diesen Wächter gibt es, weil Ignorieren allein nicht genügte — ein
unbeaufsichtigter Commit, der alles einsammelt, kann einen Pfad mitnehmen, den
die Ignorier-Regeln übersehen, und die Sicherungskopie einer ignorierten Datei
fällt nicht unter das Muster des Originals. Die Verweigerung ist bewusst total:
Der automatische Pull legt zuerst seinen eigenen Sicherungs-Commit an, also
blockiert ein blockierter Commit auch den Pull, und Merges erreichen das Haus
nicht mehr, bis der störende Pfad verschwunden ist.&lt;/p&gt;
&lt;h2 id="was-die-pipeline-beweist--und-was-nicht"&gt;Was die Pipeline beweist — und was nicht&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Prüfungen lesen das Rezept und bestätigen, dass es ein Rezept ist: Mengen
vorhanden, kein Schritt fehlt. Gekostet hat niemand.&lt;/div&gt;
&lt;p&gt;Zwölf Jobs sind über zwei Stufen definiert, Lint und Validate. Eine
Deploy-Stufe gibt es nicht.&lt;/p&gt;
&lt;p&gt;Die Konfigurationsprüfung fährt Home Assistants eigene Prüfung im offiziellen
Image, per Tag und Digest auf die Version gepinnt, die in Produktion läuft, und
sie blockiert den Merge Request. Die Prüfung allein ist ein falsches Grün: Home
Assistant protokolliert einen schemawidrigen Eintrag, deaktiviert genau diesen
Eintrag und macht weiter, sodass nur ein Syntaxfehler oder ein Fehler im
Kernblock einen Fehlercode liefert. Deshalb wird das mitgeschriebene Log
zusätzlich nach den Fehlerzeichenketten durchsucht. Ein eigener Job durchsucht
die gesamte Git-Historie nach Geheimnissen.&lt;/p&gt;
&lt;p&gt;Die Pipeline beweist, dass die Konfiguration unter einem gepinnten Image
geparst wird und lädt, und dass die lokalen Patches am eingebetteten Fremdcode
noch an Ort und Stelle sind. Keine einzige Automation, keine Template- und
keine Anwesenheitsregel hat einen Test.&lt;/p&gt;
&lt;p&gt;Vieles an der laufenden Instanz steht nicht in Git und kann es auch nicht. In
der Oberfläche angelegte Szenen und Skripte, Dashboards, jeder
Konfigurationseintrag einer Integration und jede Zugangsinformation liegen im
eigenen Speicher der Zentrale, bewusst ungetrackt. Für die Dateien, die Git
führt, ist das Repository die laufende Konfiguration — außer solange ein Tor
die Kiste auf einem älteren Baum hält, was genau der Sinn der Tore ist.&lt;/p&gt;
&lt;p&gt;Kompiliert wird hier ebenfalls nichts: Neun Knotenkonfigurationen werden in der
CI validiert, gebaut wird aber in einem Container auf dem Host, und ein Build,
der nie läuft, ist für Git und CI gleichermaßen unsichtbar. Nichts beweist,
dass die Firmware auf einem bestimmten Knoten aus der Konfiguration gebaut
wurde, die Git dafür führt. Was diese Knoten tragen und welche von ihnen
Firmware fahren, die hier geschrieben und nicht bloß hier konfiguriert wurde,
steht in der &lt;a href="https://tycstation.com/de/notes/four-radios/"&gt;Notiz über die Funknetze&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Noch etwas ändert den Baum ohne einen Menschen darin. Die auf der Zentrale
installierten Fremd-Integrationen aktualisieren sich in einem wöchentlichen
Fenster am Sonntagvormittag selbst, und der automatische Commit
veröffentlicht die neuen Versionen anschließend auf dem Branch — eine
ungeprüfte Änderung am laufenden Haus, mit Absicht, auf derselben
akzeptierten Abweichung wie die Bearbeitungen in der Oberfläche. Das Fenster
ist bewusst schmal. Es lässt Firmware jeder Art aus, denn ein Update über
die Luft würde die hier geschriebene Lampen-Firmware überschreiben, die
Zugangsdaten von den Sensorknoten löschen und einen Entwicklungsstand auf
den Funk-Koordinator schieben. Es lässt ein Update aus, das die Speicherbox
neu startet. Und es lässt die Handvoll Komponenten mit lokalen Patches aus,
denn eine Installation darüber zerstört den Patch, und der Commit
veröffentlicht die Zerstörung.&lt;/p&gt;
&lt;p&gt;Ein einziger Druck zeigte, wie wenig das Repository steuert. Am 2026-08-24
wurde die Update-Entität des Herstellers gedrückt; sie flashte das Werksimage,
das keinerlei Zugangsdaten trägt, mit denen irgendetwas die Hardware noch
erreichen könnte, und alle vier Apollo-Multisensor-Knoten verschwanden auf
einmal aus dem Netz. Diese Entität und der Firmware-Knopf des Herstellers sind
auf allen acht Hersteller-Knoten inzwischen ausgeblendet — wer nur die Entität
ausblendet, lässt denselben Flash nur einen Tastendruck entfernt, weil der
Knopf ihn aufruft. Inzwischen gehen die Knoten weiter als Ausblenden: Der eigene
Web-Updater der Firmware ist ganz abgeschaltet, und der Notfall-Access-Point,
den jeder Knoten aufspannt, wenn er das Netz nicht findet, trägt jetzt ein
Passwort — derselbe Flash ist über die Luft also gar nicht mehr erreichbar.&lt;/p&gt;
&lt;h2 id="was-fehlt-und-was-geplant-ist"&gt;Was fehlt und was geplant ist&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Die Sicherung außerhalb der Kiste wurde entschlüsselt und isoliert
gestartet; ein Neuaufbau von null auf eine leere Maschine noch nicht.&lt;/strong&gt; Der
Bootstrap stellt den ungetrackten Zustand wieder her — aus der Sicherung
außerhalb der Kiste, entschlüsselt mit dem dafür verwahrten Notfallschlüssel
— und zwar auf ein leeres Konfigurationsverzeichnis; von dort übernimmt die
Synchronisation. Die &lt;a href="https://tycstation.com/de/notes/backups/"&gt;Backup-Notiz&lt;/a&gt; hat
beide Hälften: die Wiederherstellung, die tatsächlich durchgeführt wurde,
und den Beweis über die ganze Flotte, der weiter aussteht.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Geplant: ein Durchgang über die physischen Bedienelemente&lt;/strong&gt; — jeden Knopf,
jeden Drehregler und jedes Pad inventarisieren, dann die Zuordnung pro Raum
entscheiden, gemeinsam mit dem Ausmustern der Lichtabläufe, die noch in
einer Hersteller-Bridge laufen, damit nie zwei Systeme dieselben Lampen
fahren.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Beide Punkte benennen dieselbe Lücke: Nichts davon ist dadurch bewiesen, dass
man es hat arbeiten sehen. Die Tore beweisen, dass ein Baum lädt — nicht, dass
das Haus, das darauf läuft, neu aufgebaut werden könnte, und nicht, dass seine
physischen Bedienelemente mit ihm übereinstimmen.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Deploy-Integration, Pipeline und Knotenkonfigurationen am 2026-09-08 im
Smart-Home-Konfigurationsrepository gelesen, die gepinnten
Validierungs-Images in den geteilten CI-Vorlagen; datierte Vorfälle tragen das
Datum, das mit ihnen festgehalten ist, und geplante Punkte sind als geplant
markiert.&lt;/p&gt;</description></item><item><title>Was läuft, und warum</title><link>https://tycstation.com/de/notes/what-runs/</link><pubDate>Sat, 22 Aug 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/what-runs/</guid><description>&lt;p&gt;Ein Rundgang durch die Dienste des Rechenzentrums in der Wohnung, sortiert nach ihrem Zweck statt nach Hersteller — mit dem Grund, warum jeder da ist, und den Dingen, die bewusst weggelassen wurden. Das ist, was Stand 2026-09-08 läuft, keine Empfehlung; jeder hier genannte Gast wurde an diesem Datum in der Proxmox-API laufend gesehen, und jeder Container stammt aus einer Compose-Datei in Git.&lt;/p&gt;&lt;p&gt;Zwei Rechner unter einem Schreibtisch in Köln betreiben das, was ein
Haushalt sonst bei Google, Apple oder Amazon mietet. Nichts davon kam als
Paket: Jeder Dienst auf der Liste steht dort, weil etwas in der Wohnung ihn
gebraucht hat, und alles, was sich auf eine Version festpinnen, neu bauen
und zurückrollen lässt, ist festgepinnt.&lt;/p&gt;
&lt;h2 id="die-form"&gt;Die Form&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Zwei Rechner tun die Arbeit, eine Speicherbox hält die Kopien und
entscheidet bei Gleichstand, und jeder Dienst läuft in seinem eigenen
kleinen Container — wie Mieter in einem Haus, jeder mit eigener Tür.&lt;/div&gt;
&lt;p&gt;Zwei physische Proxmox-Knoten tragen alles. Ein Synology-NAS — jene
Speicherbox — steht daneben für geteilten Speicher, Backups, die Stimme bei
Gleichstand im Cluster und eine Handvoll eigener Dienste. Alles, was auf den
Knoten läuft, ist ein Gast: eine virtuelle Maschine oder ein Container. Gäste kommen in zwei Arten: eine
Handvoll Docker-VMs für Stacks, die zusammen komponiert sein wollen, und
kleine LXC-Container für Einzweck-Dienste, die nichts brauchen außer einem
Betriebssystem und einem Daemon.&lt;/p&gt;
&lt;p&gt;Was wo läuft, nach Rolle — zuerst die Gästeliste mit Stand 2026-09-08,
danach die eigenen Dienste des NAS:&lt;/p&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Rolle&lt;/th&gt;
&lt;th scope="col"&gt;Was läuft&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Edge&lt;/td&gt;
&lt;td&gt;zwei OPNsense-VMs, eine pro Knoten — das Firewall-Paar, dem die WAN-Anschlüsse gehören&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Smart Home&lt;/td&gt;
&lt;td&gt;eine Docker-VM (&lt;code&gt;tychome&lt;/code&gt;) mit Home Assistant und dem Sprach-Stack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kameras&lt;/td&gt;
&lt;td&gt;ein Erkennungsgast auf dem zweiten Knoten, neben dem Rekorder auf dem NAS&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Websites und Ingress&lt;/td&gt;
&lt;td&gt;eine Docker-VM (&lt;code&gt;tycfront&lt;/code&gt;) für die Traefik-Eingangstür und die statischen Websites&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Beobachtbarkeit + CI&lt;/td&gt;
&lt;td&gt;eine Docker-VM (&lt;code&gt;tycdocker&lt;/code&gt;) mit dem Grafana-Stack, dazu &lt;code&gt;tycops&lt;/code&gt;, die VM, auf die der Stack umzieht&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Geheimnisse&lt;/td&gt;
&lt;td&gt;ein OpenBao-LXC (&lt;code&gt;tycbao&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medien&lt;/td&gt;
&lt;td&gt;ein Plex-LXC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Netzdienste&lt;/td&gt;
&lt;td&gt;der UniFi-Controller-LXC, ein mDNS-Reflektor-LXC, ein USV-Monitor-LXC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backup&lt;/td&gt;
&lt;td&gt;eine Backup-Server-VM, seit September das nächtliche Ziel für jeden Gast bis auf zwei&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entwicklung&lt;/td&gt;
&lt;td&gt;eine VM für Entwicklungsarbeit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI-Runner&lt;/td&gt;
&lt;td&gt;zwei Allzweck-Runner auf dem Docker-Host, vier Runner-Container auf den Knoten, plus einer auf dem NAS als Wiederherstellungspfad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NAS-Dienste&lt;/td&gt;
&lt;td&gt;die Fotobibliothek und die Dateisynchronisation des Haushalts, der Identitätsanbieter hinter dem Proxmox-Login, ein Netzboot-Container und die beiden Backup-Anwendungen — auf dem NAS selbst, nicht als Gäste&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Ein Gast läuft noch doppelt: Der Host, der Beobachtbarkeit und Ingress
zugleich trägt, steht neben den beiden neuen Gästen, die seine Hälften
übernehmen. Das ist die Migration, kein Versehen: Jeder Ersatz läuft neben
seinem Vorgänger, bis eine eigene, geprüfte Außerdienststellung folgt, und
die &lt;a href="https://tycstation.com/de/notes/apartment-datacenter/"&gt;Architekturnotiz&lt;/a&gt; erklärt, warum der
Cutover so gestaffelt ist.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/room-2025-01-16.jpg" alt="Das Zimmer bei Nacht: ein Holzschreibtisch mit Ultrawide-Monitor und Fernseher darüber, zwei leuchtende Drahtgitter-Dodekaeder auf den Lautsprechern links und rechts, die Wand in Magenta und Blau getaucht." class="photo" srcset="https://tycstation.com/img/room-2025-01-16.jpg 1050w, https://tycstation.com/img/room-2025-01-16-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1050" height="1400" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Das Zimmer, in dem all das läuft — echtes Licht, echte Hardware, kein Render.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/rack-2026-08-23.jpg" alt="Der aktuelle Stand des Racks in Magenta-Licht: die weißen MikroTik-Switches senkrecht gestapelt in der Lücke zwischen Schreibtisch und Lautsprecher, lose hängende Kabel, davor ein dunkles Mini-PC-Gehäuse auf dem Boden." class="photo" srcset="https://tycstation.com/img/rack-2026-08-23.jpg 1200w, https://tycstation.com/img/rack-2026-08-23-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1200" height="1600" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;August 2026: die Switches senkrecht montiert in der Lücke zwischen Schreibtisch und Lautsprecherturm; die endgültige Verkabelung steht noch aus.&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="smart-home"&gt;Smart Home&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Licht, Heizung und Sensoren gehorchen einer Zentrale in der Wohnung, nicht
den Servern einer Firma. Die Zentrale kann zuhören und antworten, ohne dass
etwas das Haus verlässt — die Echo-Boxen, die weiter in den Zimmern stehen,
können das nicht: Alles, was man ihnen sagt, geht zu Amazon und kommt
zurück.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Home Assistant&lt;/strong&gt; ist die Zentrale, und es läuft als schlichter Container
statt als Home Assistant OS. Der Grund ist das Festpinnen: HAOS-Add-ons
lassen sich nicht wie jeder andere Dienst auf eine Version pinnen, neu
bauen und zurückrollen, und alles andere hier kann das. Der Preis ist, dass
die „Add-ons“ als gewöhnliche Container daneben laufen müssen — was genau
der Sprach-Stack ist.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mosquitto&lt;/strong&gt; — der Broker für MQTT, das kleine Nachrichtenprotokoll, mit
dem Geräte ihre Messwerte veröffentlichen, damit alles Interessierte sie
abonnieren kann. Nur eine Handvoll Geräte und Brücken hier braucht es; das
Zigbee-Funkmodul und die selbstgebauten Sensoren sprechen direkt mit der
Zentrale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Matter-Server&lt;/strong&gt; — das Matter-Fabric für die Geräte, die es sprechen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zigbee und Thread&lt;/strong&gt; — das Zigbee-Funkmodul wird von der Zentrale selbst
angesteuert,
und Thread hat gar keinen eigenen Stack: Es läuft über den Border-Router,
der im selben Koordinator steckt, und die Ausrollung weigert sich, einen
zweiten daneben zu stellen. Ausführlich in der Notiz über die
&lt;a href="https://tycstation.com/de/notes/four-radios/"&gt;vier Funknetze im Haus&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ESPHome&lt;/strong&gt; — der Firmware-Builder für die selbstgebauten Sensoren; sein
Dashboard ist der Git-Checkout, Gerätekonfigurationen sind also
versioniert wie alles andere.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tycwled&lt;/strong&gt; — die eigene Firmware für die beiden Dodekaeder-Lampen auf
dem Foto oben. Der Hersteller liefert eine geschlossene WLED-Abwandlung,
deren Effekte ohne Quelltext kommen; sie wurden aus dem Werksabbild
zurückgelesen und auf normalem WLED neu umgesetzt, veröffentlicht unter
der MIT-Lizenz. Jede Änderung muss sich gegen eine zweite Lampe beweisen,
die noch die Werksfirmware trägt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Whisper und Piper&lt;/strong&gt; — Sprache-zu-Text und Text-zu-Sprache, lokal. Was
der lokale Assistent hört, verlässt die Maschine nicht. Angesprochen wird
im Alltag aber etwas anderes: Die Amazon-Echo-Boxen in der Wohnung tragen
die gesprochenen Befehle des Haushalts, und sie sind bauartbedingt
Cloud-Geräte.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Music Assistant&lt;/strong&gt; — die Multiroom-Audio-Schicht für die Lautsprecher.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;govee2mqtt&lt;/strong&gt; — die Brücke, die die Govee-Lampen am lokalen Broker hält
statt an einer Cloud-App.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Was das Haus mit alledem tut, hängt an einer einzigen Variablen. Ein
Hauszustand wird aus der Wohnungstür, dem Telefon und den Präsenzmeldern
abgeleitet — nie aus einer Uhr —, und Willkommenslicht, Schloss,
Klimaanlage, Kameras, Sauger und Badlüfter lesen ihn alle. Das hat eine
eigene Notiz: &lt;a href="https://tycstation.com/de/notes/house-decides/"&gt;Das Haus entscheidet, und keine
Uhr&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Home Assistant ist auch der eine Dienst, der sich selbst ausrollt — und die
eine Stelle im Haus, an der eine Änderung ohne Review auf den Branch kommt:
Dashboards, die in der Oberfläche der Zentrale bearbeitet werden, werden
direkt nach &lt;code&gt;main&lt;/code&gt; zurück-committet, weil es schlimmer erschien, jede
Änderung in der Oberfläche beim nächsten Abgleich zu verlieren, als auf das
Review zu verzichten. Der Fail-closed-Check, den der Container fährt, bevor
er einen Commit annimmt, steht an der Stelle des Reviewers. Der ganze Ablauf steht in der Notiz über
&lt;a href="https://tycstation.com/de/notes/config-that-deploys-itself/"&gt;Konfiguration, die sich selbst ausrollt&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="kameras-und-erkennung"&gt;Kameras und Erkennung&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Der Rekorder nimmt weiter auf. Der neue Teil schaut nur ins Bild und sagt
„das ist ein Mensch“ — was daraus folgt, entscheidet die Zentrale in der
Wohnung.&lt;/div&gt;
&lt;p&gt;Die Kameras zeichnen wie bisher in der Überwachungssoftware auf dem NAS auf.
Daneben läuft eine zweite, lokale Erkennungsebene: eine
Objekterkennung in einem eigenen Gast auf dem zweiten Knoten, die die
integrierte Grafikeinheit dieser Maschine für die Inferenz nutzt und selbst
nichts aufzeichnet. Die Trennung ist gewollt. Die Erkennung erkennt, Home
Assistant entscheidet, was eine Erkennung bedeutet, und die
Überwachungssoftware nimmt weiter auf und alarmiert.&lt;/p&gt;
&lt;p&gt;Inzwischen sind alle Kameras der Wohnung eingebunden, die Fischaugenkamera
an der Wohnungstür eingeschlossen, und die Erkennung erkennt auf demselben
Bildstrom auch Gesichter — ein Alarm aus der leeren Wohnung kann also sagen,
wer es war, statt nur, dass jemand da war. Was die Zentrale aus einer
Erkennung macht, und warum der Home Mode des Rekorders bewusst unangetastet
bleibt, steht in &lt;a href="https://tycstation.com/de/notes/house-decides/"&gt;Das Haus entscheidet&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="energie"&gt;Energie&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Wohnung misst ihren eigenen Strom dort, wo er hereinkommt, und an den
Steckdosen — so ist die Rechnung nie die erste Nachricht davon, dass etwas
angeblieben ist.&lt;/div&gt;
&lt;p&gt;Der Hausverbrauch wird vom Stromzähler selbst gelesen: Ein kleiner
Funkleser sitzt an der optischen Schnittstelle des Zählers, fährt in der
Wohnung gebaute Firmware und veröffentlicht an den Haus-Broker, ohne
Herstellerkonto irgendwo im Weg. Die drei Stromklemmen, die diese Rolle
bisher trugen, sind nur noch ein Gegencheck. Die Verbraucher, auf die es
ankommt, melden weiterhin pro Steckdose oder pro Stromkreis, alles innerhalb
der Zentrale. Ehrlich bleibt das Bild durch die
Regel, dass kein Verbraucher zweimal gezählt wird — die Messregeln, und was
noch aussteht, stehen in der Notiz über die
&lt;a href="https://tycstation.com/de/notes/four-radios/"&gt;vier Funknetze im Haus&lt;/a&gt;. Die Zahlen selbst
stehen nicht auf dieser Seite.&lt;/p&gt;
&lt;h2 id="medien"&gt;Medien&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Plex&lt;/strong&gt; liefert die Mediathek des Haushalts aus einem LXC; die
Mediendateien bleiben auf dem NAS und werden eingebunden. &lt;strong&gt;Synology Photos&lt;/strong&gt;
läuft auf dem NAS selbst und hält die Fotobibliothek des Haushalts — die
Bilder bleiben in der Wohnung statt auf den Servern eines Fotodienstes.&lt;/p&gt;
&lt;h2 id="websites-und-ingress"&gt;Websites und Ingress&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Eine Eingangstür für alles Öffentliche, auch diese Seite. Dahinter ist jede
Website ein versiegeltes Paket, das sich nur ändert, wenn das neue Paket
schriftlich freigegeben wurde.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Traefik&lt;/strong&gt; ist die öffentliche Web-Eingangstür. Es routet diese Website,
eine zweite Hugo-Website und ein paar Pro-bono-Websites. Jede davon ist ein
Container-Image, gepinnt per Tag und Digest — die zweite Website ist von
einem kopierten Ordner auf denselben Image-Pfad umgezogen, sodass jetzt alle
auf dieselbe Weise ausgeliefert werden. Was ausgeliefert wird, ändert sich
nur, wenn sich der Pin in Git ändert und das gesicherte Apply läuft.
Öffentlicher Ingress läuft ausschließlich über IPv4, und das ist inzwischen
eine Entscheidung und keine Zwischenstufe: Diese Namen auch über IPv6 zu
veröffentlichen wurde im September verworfen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Homepage&lt;/strong&gt; ist das interne Dashboard — die Seite, die „wo war das noch
mal“ für den Haushalt beantwortet.&lt;/p&gt;
&lt;p&gt;Die Eingangstür ist mitten in einem Umzug: &lt;code&gt;tycfront&lt;/code&gt; ist die neue
Ingress-VM in der veröffentlichten Zone. Während der Koexistenz werden die
Websites von beiden ausgeliefert; die Kopien gehen außer Dienst, sobald der
Umzug geprüft ist.&lt;/p&gt;
&lt;h2 id="identität-und-geheimnisse"&gt;Identität und Geheimnisse&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Kein Generalschlüssel am Haken neben der Tür: Jeder Auftrag bekommt einen
Einmalschlüssel, der Minuten später abläuft und nur seinen eigenen Raum
öffnet.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;OpenBao&lt;/strong&gt; hält jedes Zugangsgeheimnis, das die Flotte benutzt. Keine
Merge-Request-Pipeline hält je ein langlebiges Token. Jeder Job weist sich
mit einer OIDC-Identität aus — einer signierten Bestätigung von GitLab, dass
dieser Job dieser Job ist — gegen eine nur lesende Rolle pro Repository und
erhält ein kurzlebiges Zugangsgeheimnis, das genau auf diesen Job begrenzt
ist. Plan-Material und Apply-Material sind getrennte Rollen. Die wenigen
langlebigen Token, die bleiben — die, die mit der Forge und den Paket-Hosts
sprechen statt mit einer Maschine — liegen im Tresor und werden Jobs auf
geschützten Branches als maskierte Variablen übergeben, nie von Hand
getippt. Der Tresor nimmt jede Nacht
einen Snapshot auf das NAS, und sein Wiederherstellungsjob ist tatsächlich
gelaufen; nur die Smart-Home-Zentrale kann dasselbe sagen, das meiste auf
dieser Seite nicht.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Synology SSO Server&lt;/strong&gt; auf dem NAS ist der Identitätsanbieter hinter dem
Proxmox-Login: Der Cluster führt einen Realm, der die Administratorengruppe
des NAS auf eine begrenzte Admin-Rolle abbildet, und diese Abbildung ist im
Infrastruktur-Code deklariert wie der Rest des Clusters. Die Anwendung
selbst wird von Hand in der Oberfläche des NAS eingerichtet — die Abbildung
geht durch das Review, die Anwendung dahinter nicht.&lt;/p&gt;
&lt;h2 id="beobachtbarkeit"&gt;Beobachtbarkeit&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Jede Maschine schreibt an einer Stelle auf, was sie tut und wie es ihr
geht — so wie auf einer Station am Fußende jedes Bettes eine Kurve hängt,
damit niemand herumlaufen und fragen muss.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Grafana, Loki und Prometheus&lt;/strong&gt;, mit &lt;strong&gt;Alloy&lt;/strong&gt;, das Logs und Metriken von
den Hosts verschickt, die die Konfigurationsverwaltung erreicht, plus die
üblichen Exporter (Node, Proxmox). Die Firewalls, die Switches und das
Modem haben keinen Agenten zum Installieren und schicken ihre Logs auf dem
alten Weg. Die Grafana-Alarmregeln werden aus Git bereitgestellt wie alles
andere. Die Abdeckung ist unvollständig: Die Abdeckung der Flotte ist ein
verfolgtes Arbeitspaket, kein fertiger Zustand.&lt;/p&gt;
&lt;h2 id="netzdienste"&gt;Netzdienste&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Das Netz hat seinen eigenen Pförtner und sein eigenes Telefonbuch: Der eine
gibt jedem ankommenden Gerät seine Zimmernummer, das andere schlägt die
Namen nach und verweigert die, die auf der Hausliste stehen. Beide wohnen in
der Wohnung, also kann kein Gerät stillschweigend ein fremdes Telefonbuch
fragen.&lt;/div&gt;
&lt;p&gt;Der größte Teil des Netzes ist gar kein Dienst — es ist das RouterOS-Fabric
und das OPNsense-Paar, beide aus Git gesteuert und in der
&lt;a href="https://tycstation.com/de/notes/apartment-datacenter/"&gt;Architekturnotiz&lt;/a&gt; beschrieben. Die
Teile, die als eigene Dienste laufen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kea DHCP und Unbound DNS&lt;/strong&gt; auf dem Edge-Paar — Kea vergibt die
Adressen, Unbound beantwortet die Namensabfragen — je Zone ein Satz, mit
dem Host-Register, das aus demselben Netzmodell generiert wird wie die
Switch-Konfiguration. Der Resolver filtert für die Zonen, die das haben
sollen, außerdem Werbe- und Schadsoftware-Domains. Filtern wirkt nur, wenn
es sich nicht umgehen lässt: Die Firewall schickt diese Clients zum
Resolver zurück, verweigert die verschlüsselten Abfrageprotokolle
rundheraus, und der Resolver sperrt die öffentlichen Dienste, die sie
beantworten. Ein Filter, um den ein Gerät herumgehen kann, ist Theater. Es
gibt kein Pi-hole; der Resolver wohnt dort, wo die Policy wohnt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ein WireGuard-Tunnel&lt;/strong&gt; — der eigene Fernzugang des Haushalts in die
Wohnung endet auf dem Edge-Paar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UniFi-Controller&lt;/strong&gt; — ein LXC für das eine überlebende UniFi-Gerät, den
Access Point.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;mDNS-Reflektor&lt;/strong&gt; — damit Casting und Geräteerkennung die Zonengrenze
dort überqueren, wo es ausdrücklich erlaubt ist.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;USV-Monitor&lt;/strong&gt; — eine kleine Web-Oberfläche über NUT, dem Dienst, der die
unterbrechungsfreie Stromversorgung ausliest; die Knoten lesen ihn
ebenfalls, um bei Stromausfall sauber herunterzufahren.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;netboot.xyz&lt;/strong&gt; — Netzboot: Eine Maschine, die kein Installationsmedium
zur Hand hat, holt sich eines über die Leitung. Es ist ein Container auf
dem NAS statt ein Gast auf den Knoten, als Compose-Datei eingecheckt und
von Hand im Container-Manager des NAS gestartet — dieselbe Form wie der
Runner, der dort für die Wiederherstellung bereitsteht.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare&lt;/strong&gt; ist die DNS-Hoheit, als Code verwaltet; die Registrare
sind nur Registrare.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ci"&gt;CI&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Roboter, die freigegebene Änderungen ausführen, wohnen in der Wohnung;
einer wohnt in der Speicherbox, damit noch etwas funktioniert, wenn beide
Server ausgefallen sind.&lt;/div&gt;
&lt;p&gt;CI ist die Pipeline, die eine Änderung prüft und sie dann ausführt;
&lt;strong&gt;GitLab-Runner&lt;/strong&gt; sind die Maschinen, auf denen sie läuft, und sie sitzen
dort, wo die Arbeit ist. Allzweck-Runner übernehmen Merge-Request- und
Build-Arbeit. Eigene Runner laufen als Container auf den Knoten: einer für
die Infrastruktur-Applies, einer für das Smart-Home-Repository und je einer
pro Edge-Knoten, weil die eigene
Identität jeder Firewall — ihre Schnittstellen, ihre Adressen, ihre
Einwahlsitzung — von dem Knoten aus geschrieben werden muss, auf dem sie
läuft. Ein weiterer ist ein Container auf dem NAS, für einen einzigen Zweck
behalten — der Pfad zu sein, der noch funktioniert, wenn beide Knoten
ausgefallen sind. Apply-Jobs sind manuell, umgebungsgebunden und pro
OpenTofu-State serialisiert; Merge-Request-Pipelines sind nur lesend.&lt;/p&gt;
&lt;h2 id="speicher-und-backup"&gt;Speicher und Backup&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Ein Schrank in der Wohnung hält, worauf jede Maschine zugreifen muss, und
jede Maschine hält ein eigenes kleines Regal für das, was man braucht, um
diesen Schrank wieder aufzustellen. Was den Schrank rettet, darf nicht im
Schrank liegen.&lt;/div&gt;
&lt;p&gt;Das NAS teilt Speicher auf zwei Wegen über das Netz: NFS, das die Gäste für
geteilten Speicher einhängen, und SMB, über das die Home-Assistant-Backups
geschrieben werden. Die Knoten halten die Gäste des Reparaturpfads
stattdessen auf eigenen Platten, auf ZFS — einem Dateisystem, das prüfsummt,
was es speichert —, damit das NAS nicht auf dem Pfad liegt, das NAS
wiederherzustellen.&lt;/p&gt;
&lt;p&gt;Auf dem NAS liegen auch die eigenen Dateien des Haushalts. &lt;strong&gt;Synology Drive&lt;/strong&gt;
hält sie auf allen Maschinen, die sie benutzen, auf demselben Stand.
&lt;strong&gt;Active Backup for Business&lt;/strong&gt; sichert den Arbeitsplatzrechner des
Haushalts, und &lt;strong&gt;Hyper Backup&lt;/strong&gt; repliziert vom NAS auf ein Ziel in einem
anderen Gebäude — die Kopie außer Haus. Alle drei werden von Hand in der
Oberfläche des NAS eingerichtet, nicht über die geprüfte Pipeline, auf der
der Rest dieser Seite läuft. Was diese Kopien abdecken und was noch
aussteht, ist die Frage der Backup-Notiz und nicht die dieser Seite:
&lt;a href="https://tycstation.com/de/notes/backups/"&gt;Backups: drei Kopien, ein fehlender Beweis&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="was-bewusst-weggelassen-wurde"&gt;Was bewusst weggelassen wurde&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kubernetes.&lt;/strong&gt; Keine Workload hier braucht es; es kommt an dem Tag
zurück, an dem eine es tut.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Home Assistant OS.&lt;/strong&gt; Siehe oben — Festpinnen schlägt Bequemlichkeit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ein Cloud-Backup-Ziel.&lt;/strong&gt; Noch nicht, und nicht, bevor eine
Wiederherstellung gegen die vorhandenen Kopien bewiesen wurde.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sponsoring.&lt;/strong&gt; Nichts auf dieser Seite ist bezahlt oder steht zum
Verkauf.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Das sind vier Entscheidungen, keine Lücken, und die meisten nennen die
Bedingung, unter der sie fallen. Nichts auf dieser Seite läuft, weil es
erwartet wurde: Es läuft, weil etwas in der Wohnung es gebraucht hat — und
an dem Tag, an dem das nicht mehr stimmt, verschwindet es von der Liste.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Gästeinventar, Speicher und die nächtlichen Backup-Jobs am 2026-09-08 aus
der Proxmox-API gelesen, die Haushaltsautomationen am selben Tag aus der
laufenden Zentrale; die Container gegen die Compose-Dateien in Git und die
Runner-Liste gegen die Deklarationen, die sie registrieren. Der Realm des
Identitätsanbieters auf dem Cluster ist im Infrastruktur-Code deklariert und
dort nachlesbar; die übrigen Anwendungen des NAS sind so, wie der Betreiber
sie am 2026-09-09 angegeben hat, und wurden weder vom NAS noch aus dem Code
gelesen. Geplante Punkte sind als geplant markiert.&lt;/p&gt;</description></item><item><title>Backups: drei Kopien, ein fehlender Beweis</title><link>https://tycstation.com/de/notes/backups/</link><pubDate>Sat, 22 Aug 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/backups/</guid><description>&lt;p&gt;Das Rechenzentrum in der Wohnung, gemessen an 3-2-1: was gesichert wird, wo es landet, was darüber wacht, und die Lücke — eine vollständige Wiederherstellungsübung, die noch nicht stattgefunden hat. Das Backup, das dreizehn Tage lang still stehen blieb, ist der Grund, warum es das Monitoring gibt. Seit September gehen die Archive an einen eigenen Backup-Server, der sie dedupliziert, sie erneut liest, um zu beweisen, dass sie noch lesbar sind, und sie verschlüsselt entgegennimmt — die Speicherbox darunter hält also Kopien, die sie nicht öffnen kann, was die schwierigste offene Frage vom Geheimtext auf die Verwahrung des Schlüssels verschiebt. Stand 2026-09-08.&lt;/p&gt;&lt;p&gt;Die Regel, die jeder zitiert, ist 3-2-1: drei Kopien der Daten, auf zwei
Arten von Medien, eine davon woanders. Jede Zahl beantwortet einen anderen Weg,
die Daten zu verlieren — die Kopie, die verdirbt, das Regal, das als ganze Charge
ausfällt, das Gebäude, das brennt. Die Regel zählt Kopien, keine Beweise: Ob
eine der drei je wieder geöffnet wurde, ist die Frage, mit der diese Notiz
endet.&lt;/p&gt;
&lt;h2 id="was-gesichert-wird"&gt;Was gesichert wird&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Regel verlangt drei Kopien, auf zwei Arten von Regal, eine davon in einem
anderen Gebäude. In diesem anderen Gebäude liegt inzwischen etwas — und noch
immer hat niemand es zurückgeholt, um nachzusehen, ob es sich öffnen lässt.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Fast jeder Gast, jede Nacht.&lt;/strong&gt; Seit September gehen die Archive nicht mehr
direkt auf eine Netzfreigabe. Sie gehen an einen eigenen Backup-Server, der
neben dem Rest der Flotte läuft, sie dedupliziert, je Gast die letzten fünf
behält und das Gehaltene nach eigenem Zeitplan erneut liest und prüfsummt —
womit „die Kopie existiert“ und „die Kopie ist lesbar“ aufgehört haben,
dieselbe Behauptung zu sein. Die Bytes landen weiterhin auf der Speicherbox
darunter — dem NAS, denn dort ist der Platz. Geändert hat sich, dass sie auf
dem Knoten verschlüsselt werden, bevor sie ihn verlassen: Das NAS hält Archive,
die es nicht lesen kann.&lt;/p&gt;
&lt;p&gt;Der Backup-Server ist der eine Gast, der das nicht nutzen kann: Ein Archiv
des Backup-Servers, gespeichert im Backup-Server, ist kein Backup. Er
schreibt seine eigene nächtliche Kopie direkt auf die Freigabe, und dieses
eine Archiv ist die deklarierte Ausnahme, kein Versehen.&lt;/p&gt;
&lt;p&gt;Eine Maschine bleibt ganz außerhalb des nächtlichen Laufs. Sie bleibt so
lange draußen, bis ihr Umgang mit Geheimnissen dem Rest der Flotte
entspricht, denn die Regel hier lautet, dass kein Backup-Speicher ein
Geheimnis im Klartext hält.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der nächtliche Lauf besteht aus fünf Jobs, nicht aus einem.&lt;/strong&gt; Sie starten
nacheinander in den frühen Morgenstunden, damit nie zwei Dumps gleichzeitig auf
dieselbe Freigabe schreiben. Jedes Zeitfenster ist so breit wie der langsamste
Lauf, der über eine jüngere Reihe von Nächten gemessen wurde, zuzüglich
Puffer — nicht so breit wie eine gute Nacht. Jeder Job läuft im Snapshot-Modus,
auf Speicher, der Snapshots beherrscht — das ist die Abhilfe für etwas, das auf
die harte Tour gelernt wurde: Ein Gast, den die HA-Schicht
des Clusters übernommen hatte, hörte an dem Tag still auf, gesichert zu
werden, an dem er aufgenommen wurde, während sein Nachbar im selben Job
weiterlief. Zwei der fünf sind an einen Knoten geheftet und drei nicht, und
auch das ist eine Lehre: Ein ungehefteter Job feuert auf jedem Knoten
gleichzeitig, und genau diese Gleichzeitigkeit sollen die gestaffelten
Zeitfenster verhindern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Backup-Jobs leben in Git.&lt;/strong&gt; Ein Backup-Zeitplan, der nur in der
Proxmox-Oberfläche existiert, ist ein Zeitplan, ohne den ein neu gebauter
Knoten hochkommt — und nichts schlägt fehl, die Backups hören einfach auf.
Deshalb ist die Job-Liste im Hub-Repository deklariert und wird bei jedem
Deploy konvergiert, wobei die von der Oberfläche erzeugten Job-IDs wörtlich
übernommen werden, damit kein Gast je doppelt gesichert wird. Trägt der
Cluster einen Job, den Git nicht kennt, schlägt der Deploy laut fehl,
statt ihn zu löschen: Ein nicht deklarierter Job könnte das einzige Backup
von irgendetwas sein.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Home Assistant sichert sich selbst&lt;/strong&gt; auf eine eigene Freigabe auf dem
NAS, und der Container bindet diese Freigabe ein, sodass eine
Wiederherstellung ein nativer Vorgang ist und kein Upload. Bevor die
Zentrale auf eine andere Maschine umziehen durfte, wurde eines dieser
Backups außerhalb der Kiste entschlüsselt und isoliert gestartet — eine
Wiederherstellung, die tatsächlich durchgeführt wurde. Es ist zugleich die
Hälfte eines Wiederaufbaus, die Git nicht liefern kann: Der eigene
&lt;a href="https://tycstation.com/de/notes/config-that-deploys-itself/"&gt;Deploy-Weg&lt;/a&gt; der Zentrale
trägt die geprüfte Konfiguration, dieses Backup trägt alles, was dieser Weg nie
sieht.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Geheimnis-Tresor nimmt jede Nacht einen Snapshot&lt;/strong&gt; auf das NAS, auf
dem immer scharfen Zeitplan, der auch die Drift-Prüfung fährt. Auch sein
Wiederherstellungsjob ist tatsächlich gelaufen, zuletzt am 2026-08-20.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zwei weitere Sicherungswege gibt es auf dem NAS selbst.&lt;/strong&gt; Hyper Backup repliziert vom
NAS auf ein Ziel in einem anderen Gebäude; Active Backup for Business sichert
die Arbeitsstation des Haushalts auf das NAS. Keiner von beiden ist im
Repository deklariert oder wird von einem Deploy konvergiert — beide sind in
der Oberfläche des NAS von Hand eingerichtet, was sie in dieselbe Klasse stellt
wie einen Backup-Zeitplan, der nur in einer GUI lebt, mit demselben Risiko. Wie
weit der Job außer Haus reicht, ist hier nicht festgestellt: Die dritte Kopie
zählt als dritte Kopie, noch nicht als Deckung für irgendetwas Bestimmtes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Firewalls und Switches sind Code&lt;/strong&gt;, ihr Backup ist also das Repository
plus das generierte Netzmodell.&lt;/p&gt;
&lt;h2 id="was-darüber-wacht"&gt;Was darüber wacht&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Es war nichts schiefgegangen, also beschwerte sich nichts — passiert war aber
auch nichts. Geprüft wird jetzt das Datum auf der neuesten Kopie, so wie man
das Datum auf der Milch liest, statt sich darauf zu verlassen, dass der
Kühlschrank kalt ist.&lt;/div&gt;
&lt;p&gt;Der Ausfall, der diesen Abschnitt geformt hat: Zwischen 2026-07-13 und
2026-07-26 lief das nächtliche Backup nicht, und nichts sagte es. Proxmox
schickt bei Fehlschlag eine Mail, aber ein Job, der nie startet, schlägt
nicht fehl. Eine gesunde Flotte und eine Flotte ohne Backups sahen auf jedem
Dashboard identisch aus.&lt;/p&gt;
&lt;p&gt;Deshalb veröffentlicht jetzt jeder Knoten das Alter des neuesten Archivs pro
Gast als Metrik, gelesen aus der Proxmox-API gegen denselben geteilten
Speicher. Ein Gast ganz ohne Archiv wird als unendlich alt veröffentlicht —
„nie gesichert“ alarmiert genau wie „veraltet“, was bedeutet, dass ein neuer
Gast alarmiert, bis der Lauf der nächsten Nacht durch ist. Das ist Absicht;
ein ungesicherter Gast ist der Zustand. Der Collector weigert sich, eine
Teildatei zu schreiben: Wirft die API einen Fehler, veraltet die vorherige
Datei und der Frische-Alarm feuert, statt dass ein Gast still aus der Liste
verschwindet.&lt;/p&gt;
&lt;p&gt;Die Smart-Home-Zentrale wendet dieselbe Regel auf sich selbst an: Gemessen wird
&lt;a href="https://tycstation.com/de/notes/house-decides/"&gt;ihre eigene nächtliche Kopie&lt;/a&gt; an den
Entitäten, die sie über das Ergebnis führt, nie daran, dass der Aufruf
zurückkam.&lt;/p&gt;
&lt;h2 id="ehrlich-gezählt"&gt;Ehrlich gezählt&lt;/h2&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;3-2-1 verlangt&lt;/th&gt;
&lt;th scope="col"&gt;Was existiert&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Drei Kopien&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Drei, soweit der Job außer Haus reicht&lt;/strong&gt;: die eigene Platte des Gastes, das nächtliche Archiv auf dem NAS und die Kopie, die Hyper Backup in ein anderes Gebäude schreibt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Zwei Arten von Medien&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Ja&lt;/strong&gt;: SSDs der Knoten auf der einen Seite, das NAS-Array auf der anderen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eine Kopie außer Haus&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Ja&lt;/strong&gt;: Hyper Backup repliziert vom NAS auf ein Ziel in einem anderen Gebäude — auf dem NAS von Hand eingerichtet statt im Repository deklariert, und keine Wiederherstellung daraus ist verzeichnet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eine bewiesene Wiederherstellung&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Teilweise&lt;/strong&gt; — der Tresor, die Smart-Home-Zentrale und ein Gast, der aus dem verschlüsselten Speicher zurückgeholt wurde; die Übung über die ganze Flotte fehlt weiter&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Die letzte Zeile ist die, die den Plan bestimmt. Ein Backup, das nie
zurückgespielt wurde, ist eine hoffnungsvolle Kopie, deshalb bleibt der
Wiederherstellungsbeweis über die ganze Flotte ein offenes Tor. Ein Gast
wurde inzwischen aus dem verschlüsselten Speicher zurückgeholt, was die
Verschlüsselung und das Werkzeug beweist; für die Flotte beweist es nichts.&lt;/p&gt;
&lt;p&gt;Die Zeile außer Haus hat sich zuletzt geändert, die Zeile zur Wiederherstellung
nicht. Eine Kopie in einem anderen Gebäude hebt die Zahl an dem Tag, an dem sie
geschrieben wird; die Zuversicht hebt sie erst an dem Tag, an dem etwas daraus
zurückgeholt wird.&lt;/p&gt;
&lt;p&gt;Die Tabelle fragt nach Kopien, Medien und Entfernung und sagt überhaupt
nichts über Verschlüsselung — die Zeile, in der dieser Aufbau inzwischen am
besten abschnitte, und die, in der die verbleibende Arbeit nicht der
Geheimtext ist, sondern die Verwahrung. Der Schlüssel, der diese Archive
öffnet, liegt im Geheimnis-Tresor der Flotte selbst. Eine Kopie auf Papier,
außerhalb der Flotte, fehlt: Ein Schlüssel, der nur in dem liegt, was er
aufschließt, ist noch keiner, den man hat.&lt;/p&gt;
&lt;h2 id="was-geplant-ist"&gt;Was geplant ist&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Archive sind verschlossen, und der einzige Schlüssel hängt an einem Haken
im selben Gebäude. Eine Kopie davon woanders ist das, was noch fehlt.&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Verwahrung für den Archiv-Schlüssel&lt;/strong&gt;, außerhalb der Flotte und auf
Papier. NAS und Cluster gemeinsam zu verlieren, mit dem Schlüssel nur im
Tresor, ließe jedes Archiv unlesbar zurück — genau der Ausfall, den die
Verschlüsselung überlebbar machen sollte, nur von der anderen Seite.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Der verbleibende Klartext.&lt;/strong&gt; Jeden Backup-Speicher dazu zu bringen, nur
noch Geheimtext zu halten, ist weiterhin die größte offene Backup-Arbeit;
die Gast-Archive sind fertig, andere Speicher nicht.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Die Wiederherstellungsübung selbst.&lt;/strong&gt; Snapshot, Export, Löschen,
Wiederherstellen, dann Zähl- und Wertprüfungen, gefahren von einem Pfad,
der nicht vom NAS abhängt — denn die Übung muss an dem Tag funktionieren,
an dem das NAS das Opfer ist.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Eine Kopie außer Haus&lt;/strong&gt; des Tresor-Exports mit definiertem
Auffrischungspunkt. Der Export-Job läuft; ihn außer Haus zu bringen ist
eine menschliche Handlung, und eine menschliche Handlung ohne
festgehaltenes Datum zählt als unbewiesen — und ob der Job außer Haus auf dem
NAS ihn längst mitträgt, gehört zu dem, was nicht festgestellt ist.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nichts davon wartet auf Hardware: Was der Liste fehlt, sind ausgeführte
Handlungen und festgehaltene Zeitpunkte.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Job-Deklarationen, Monitoring und Plan geprüft gegen das Hub-Repository, die
Proxmox-API und die Backup-Alter-Metrik am 2026-09-08; der Archivspeicher,
seine Aufbewahrung und sein Verifikationsstand am selben Tag aus dem Cluster
gelesen. Die beiden Backup-Jobs, die auf dem NAS selbst laufen — die
Replikation außer Haus und das Backup der Arbeitsstation —, sind so, wie der
Betreiber sie am 2026-09-09 angegeben hat; sie sind in der Oberfläche des NAS
konfiguriert und wurden nicht aus dem Repository gelesen, und wie weit der Job
außer Haus reicht, ist nicht festgestellt. Geplante Punkte sind als geplant
markiert.&lt;/p&gt;</description></item><item><title>Das Rechenzentrum in der Wohnung</title><link>https://tycstation.com/de/notes/apartment-datacenter/</link><pubDate>Fri, 21 Aug 2026 00:00:00 +0200</pubDate><guid>https://tycstation.com/de/notes/apartment-datacenter/</guid><description>&lt;p&gt;Wie eine Person ein privates Rechenzentrum betreibt: Git hält die Absicht fest, CI ist das Tor für jede Änderung an der Infrastruktur, KI-Agenten übernehmen das Tippen — und ein Mensch behält die Hoheit über Merge und Apply. Was läuft, was Ziel ist, und warum das Design so geworden ist. Geprüft gegen das laufende System am 2026-09-08; was geplant ist, heißt geplant.&lt;/p&gt;&lt;p&gt;TycStation hält Smart Home, Medien, Websites, Geheimnisse und einen großen
Teil des Netzes einer Kölner Wohnung unter lokaler Kontrolle. Das
Ungewöhnliche daran ist nicht die Hardware, sondern das Betriebsmodell. Die
Live-Verifikation entscheidet, ob eine Änderung wirklich gewirkt hat, nicht
der abgeschlossene Merge, und der Haushalt funktioniert weiter, wenn das
Internet es nicht tut. Diese Notiz beantwortet drei Fragen: Was läuft wo,
wer darf es ändern, und woher weiß man, dass eine Änderung gewirkt hat.&lt;/p&gt;
&lt;h2 id="was-läuft"&gt;Was läuft&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Dienste, die ein Haushalt sonst mietet — hier laufen sie zu Hause.&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Smart Home&lt;/strong&gt; — Home Assistant und die Haushaltsautomationen laufen als
Container auf einer eigenen VM; die Geräte erreichen sie über Zigbee,
Thread, Matter und MQTT. Der eigene Sprachassistent der Zentrale läuft
lokal; die Amazon-Echo-Boxen, die weiter in Benutzung sind, sind
bauartbedingt Cloud-Geräte.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Medien&lt;/strong&gt; — Plex liefert die Mediathek des Haushalts; die Mediendateien
selbst bleiben auf dem NAS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Websites und Ingress&lt;/strong&gt; — Traefik liefert Websites (auch diese) und
ausgewählte öffentliche Dienste aus. Öffentlicher Ingress ist gewollt und
ausschließlich IPv4 — eine im September getroffene Entscheidung, keine
Zwischenstufe, die noch auf die Adressplanung wartet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identität und Geheimnisse&lt;/strong&gt; — OpenBao stellt kurzlebige, pro Repository
begrenzte CI-Zugangsdaten über GitLab-OIDC aus: Der Job weist nach, für
welches Repository er läuft, und bekommt genau dafür Zugangsdaten, statt
ein hinterlegtes Passwort mitzuführen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speicher und Wiederherstellung&lt;/strong&gt; — das Synology-NAS liefert geteilten
Speicher, und ein eigener Backup-Server nimmt inzwischen die nächtlichen
Archive auf und verschlüsselt sie, bevor sie den Knoten verlassen; eine
bewiesene Wiederherstellungsübung über die ganze Flotte ist weiter ein Tor
auf dem Weg.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Beobachtbarkeit&lt;/strong&gt; — Grafana, Loki und Prometheus laufen. Die Abdeckung
der Flotte wächst und ist noch nicht vollständig.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Der physische Fußabdruck ist ein senkrechtes Mini-Rack voll gewöhnlicher
Geräte — &lt;a href="https://tycstation.com/de/notes/apartment-datacenter/#die-hardware"&gt;der Hardware-Abschnitt&lt;/a&gt; unten listet es auf.&lt;/p&gt;
&lt;h2 id="die-hardware"&gt;Die Hardware&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Zwei Schuhkarton-Rechner, drei Switches, eine Speicherbox, ein WLAN-Puck —
und ein Geräuschbudget, das der Lautsprecher daneben vorgibt.&lt;/div&gt;
&lt;p&gt;Die Bedingung, die diese Liste geformt hat, ist die Geräuschgrenze. Dieser
Aufbau ist in der Lücke zwischen Schreibtisch und Lautsprecherturm groß
geworden, und eine Maschine, die sirrt, ist disqualifiziert, bevor ihr
Datenblatt gelesen wird. Das schließt Rack-Gehäuse mit ihren 40-mm-Lüftern
aus, was auch immer sie pro Kern kosten, und treibt den ganzen Aufbau zu
kleinen, sparsamen Maschinen — Wärme ist es, die Lüfter erzwingt.&lt;/p&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Gerät&lt;/th&gt;
&lt;th scope="col"&gt;Rolle&lt;/th&gt;
&lt;th scope="col"&gt;Das Entscheidende&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2× MS-02 Mini-PC&lt;/td&gt;
&lt;td&gt;Proxmox-Knoten&lt;/td&gt;
&lt;td&gt;Je 24 Kerne und 48 GB; ein Aktiv/Standby-Bond aus zwei NICs ins Fabric, die dritte NIC direkt am Modem für das WAN, die vierte auf einem Kabel direkt zum anderen Knoten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MikroTik CRS317&lt;/td&gt;
&lt;td&gt;Core-Switch&lt;/td&gt;
&lt;td&gt;Das 10G-Rückgrat und die Wurzel des Schleifenschutz-Baums (RSTP); jeder Trunk endet hier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MikroTik CRS320&lt;/td&gt;
&lt;td&gt;PoE-Switch&lt;/td&gt;
&lt;td&gt;Strom über das Datenkabel in der höchsten Stufe (PoE++), ein Budget, das die frühere Consumer-Hardware nicht liefern konnte; es versorgt die verkabelte AV-Reihe, den KVM, die vorbereiteten Kameraplätze sowie den Schreibtisch und die übrigen verkabelten Geräte des Haushalts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MikroTik CRS310&lt;/td&gt;
&lt;td&gt;Access-Switch&lt;/td&gt;
&lt;td&gt;2,5G-Ports für den WLAN-Access-Point — über einen eingeschleiften PoE-Injektor, weil der PoE-Switch nur 1G-Kupfer hat — und für den Quorum-Anschluss des NAS; fünf Plätze bleiben für Wachstum frei&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Synology DS1525+&lt;/td&gt;
&lt;td&gt;NAS&lt;/td&gt;
&lt;td&gt;Geteilter Speicher, Backup-Ziel und die Stimme bei Gleichstand im Cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UniFi U7 Pro Max&lt;/td&gt;
&lt;td&gt;WLAN&lt;/td&gt;
&lt;td&gt;Der einzige UniFi-Überlebende; die Funkmodule waren es wert, zu bleiben, die Switches nicht&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vigor 166&lt;/td&gt;
&lt;td&gt;G.fast-Bridge-Modem&lt;/td&gt;
&lt;td&gt;Absichtlich getrennt versorgt: Ein Firewall-Failover darf nie auf eine Modem-Neusynchronisation warten&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;USV&lt;/td&gt;
&lt;td&gt;Strom&lt;/td&gt;
&lt;td&gt;Zeit zum sauberen Herunterfahren, wenn die Steckdose ausfällt — keine Laufzeit-Heldentaten&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/room-2025-01-16.jpg" alt="Das Zimmer bei Nacht: ein Holzschreibtisch mit Ultrawide-Monitor und Fernseher darüber, zwei leuchtende Drahtgitter-Dodekaeder auf den Lautsprechern links und rechts, die Wand in Magenta und Blau getaucht." class="photo" srcset="https://tycstation.com/img/room-2025-01-16.jpg 1050w, https://tycstation.com/img/room-2025-01-16-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1050" height="1400" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Das Zimmer, in dem das Rack steht: Die Geräte stehen in der Lücke zwischen Schreibtisch und Lautsprecherturm.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/rack-2025-10-21.jpg" alt="Vor dem Umbau: ein senkrechtes Mini-Rack unter dem Schreibtisch — ein lüfterloser Mini-PC mit passivem Kühlkörper obenauf, ein Patchpanel mit farbigen Keystones, der frühere Switch, ein Modem und eine USV auf dem Boden neben einem Standlautsprecher." class="photo" srcset="https://tycstation.com/img/rack-2025-10-21.jpg 1200w, https://tycstation.com/img/rack-2025-10-21-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1200" height="1600" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Oktober 2025, vor dem Umbau: das ursprüngliche Mini-Rack in derselben Lücke.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/fabric-2026-07-16.jpg" alt="Drei weiße MikroTik-Switches gestapelt auf dem Schreibtisch, DAC- und Kupferkabel bereits gesteckt, dahinter Bildschirme." class="photo" srcset="https://tycstation.com/img/fabric-2026-07-16.jpg 1200w, https://tycstation.com/img/fabric-2026-07-16-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1200" height="1600" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Juli 2026: Die drei MikroTik-Switches kommen an und bekommen auf dem Schreibtisch ihre erste Verkabelung — der Core-Switch oben, PoE- und Access-Switch darunter.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Die Switches brachten dasselbe Problem im Kleinen mit: 40-mm-Lüfter, genau
das Bauteil, das das Geräuschbudget auf Gehäuseebene schon ausgeschlossen
hatte. Sie wurden an dem Tag, an dem sie aus den Kartons kamen, auf dem
Tisch geöffnet und mit Noctua-Lüftern NF-A4x20 PWM bestückt — ein 40 × 20 mm großes
Bauteil mit vierpoligem Anschluss —, bevor einer von ihnen verkabelt wurde.&lt;/p&gt;
&lt;p&gt;Sauber passt es nicht überall, und genau das ist der Teil, den man wissen
sollte. Die Serienlüfter haben nicht alle dieselbe Bautiefe: Die tieferen
messen 40 × 28 mm, und dagegen ist der Noctua acht Millimeter flacher. Er
sitzt auf demselben Rahmen und demselben Lochbild, füllt das Gehäuse aber
nicht aus — dort ist es also ein teilweiser Sitz und kein glatter Tausch.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/switches-open-2026-07-16.jpg" alt="Zwei MikroTik-Switches mit abgenommenem Deckel: im Vordergrund der Core-Switch mit seiner Reihe Glasfaser-Käfige, kupfernen Heatpipes und offenem Kühlkörper, am Rand der Platine die kleinen Lüfter mit ihrem Kabelbaum; dahinter steht ein zweiter geöffneter Switch auf dem Schreibtisch." class="photo" width="1200" height="1600" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Juli 2026: beide Switches offen am Tag ihrer Ankunft. Die Lüfter sitzen am Rand der Platine, direkt neben dem Kühlkörper, den sie kühlen sollen.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tycstation.com/img/rack-2026-08-23.jpg" alt="Der aktuelle Stand des Racks in Magenta-Licht: die weißen MikroTik-Switches senkrecht gestapelt in der Lücke zwischen Schreibtisch und Lautsprecher, lose hängende Kabel, davor ein dunkles Mini-PC-Gehäuse auf dem Boden." class="photo" srcset="https://tycstation.com/img/rack-2026-08-23.jpg 1200w, https://tycstation.com/img/rack-2026-08-23-1600.jpg 1600w" sizes="(max-width: 47.5em) 100vw, 44rem" width="1200" height="1600" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;23. August 2026, die Nacht, in der diese Seite überarbeitet wurde: Das Fabric ist drin, senkrecht in derselben Lücke montiert wie zuvor — und noch nicht fertig eingebaut. Verkabelung und die endgültige Halterung stehen noch aus.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Zwei Dinge, die diese Liste nicht hat. Erstens: keine Angabe zur
Lautstärke — die wurde nie gemessen; der Stromverbrauch wird durchgehend
gemessen, aber Leerlaufwerte je Gerät stehen hier nicht einzeln. Zweitens:
Es gibt keine Kauflinks.&lt;/p&gt;
&lt;h2 id="warum-es-so-geworden-ist"&gt;Warum es so geworden ist&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Jede Schicht ist die Antwort auf etwas, das wirklich kaputtgegangen ist;
nichts wurde zur Schau hinzugefügt.&lt;/div&gt;
&lt;p&gt;Jede Schicht beantwortet einen Ausfall, eine Grenze oder eine
Wiederherstellungslücke, die im früheren System beobachtet wurde.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ein ausgefallenes Gateway nahm die Wohnung vom Netz.&lt;/strong&gt; → Eine fest
zugeordnete OPNsense-VM pro physischem Knoten. CARP und pfsync schützen
den Dienst, von dem alles andere abhängt: Beide Firewalls antworten auf
dieselbe Adresse, und jede führt eine Kopie der offenen Verbindungen der
anderen. Die eine DSL-Leitung wählt sich trotzdem neu ein.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Das erste Segmentierungsmodell wurde brüchig und leckte auf Layer 2.&lt;/strong&gt;
→ Acht geroutete Zonen mit Policy am Edge: weniger Risikoklassen, ein
VLAN pro Zone, explizite Flüsse und generierte Invarianten über die
Ebenen hinweg.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Die Steuerung von Consumer-Switches stritt mit der Regel „Git besitzt
die Absicht“ und stieß an eine PoE-Grenze.&lt;/strong&gt; → Ein RouterOS-Fabric; nur
der UniFi-Access-Point bleibt. MikroTik ist vollständig codegesteuert und
liefert das nötige PoE++; das WLAN bleibt bei der stärkeren Funkplattform.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Langlebige Automations-Zugangsdaten erzeugen stilles, flottenweites
Risiko.&lt;/strong&gt; → OpenBao plus GitLab-OIDC pro Repository. Jobs erhalten
kurzlebige, eng begrenzte Tokens; Plan- und Apply-Material bleiben
getrennt.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add-ons von Home Assistant OS ließen sich nicht wie gewöhnliche Dienste
festpinnen und neu bauen.&lt;/strong&gt; → Home Assistant und seine Begleiter zogen in
Container, versioniert als Code; die Instanz validiert und zieht &lt;code&gt;main&lt;/code&gt;
selbst.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keine Wiederherstellung war je bewiesen.&lt;/strong&gt; → Backup-Verifikation und
ein vollständiger Wiederherstellungsbeweis sind Tore, nichts nachträglich
Angebautes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Komplexität wurde auch abgelehnt.&lt;/strong&gt; Kein Kubernetes ohne auslösende
Workload, keine Firewall-Konfigurationshoheit außerhalb von Git, keine
Neuinstallation physischer Knoten und kein vorgetäuscht nahtloses
WAN-Failover.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Systemkontext: Besucher und Haushalt erreichen die Dienste über ein Bridge-Modem, ein OPNsense-Edge-Paar und ein aktives Acht-Zonen-MikroTik-Fabric vor zwei Proxmox-Knoten und einem Synology-NAS."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/context.svg" alt="Systemkontext: Besucher und Haushalt erreichen die Dienste über ein Bridge-Modem, ein OPNsense-Edge-Paar und ein aktives Acht-Zonen-MikroTik-Fabric vor zwei Proxmox-Knoten und einem Synology-NAS." width="1100" height="330" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 01 — Systemkontext (Diagramme englisch beschriftet).&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="die-betriebsprinzipien"&gt;Die Betriebsprinzipien&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Privat halten, weiterlaufen lassen, wenn das Internet weg ist,
wiederherstellbar bleiben — und das so, wie ein professionelles Team es
täte, nur kleiner.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Privatsphäre&lt;/strong&gt; — lokale Verarbeitung als Standard. &lt;strong&gt;Widerstandsfähigkeit&lt;/strong&gt;
— Haushaltsdienste überstehen einen Ausfall des Providers. &lt;strong&gt;Eigentum&lt;/strong&gt; —
Daten und Konfiguration bleiben wiederherstellbar. &lt;strong&gt;Handwerk&lt;/strong&gt; —
professionelle Plattformpraxis im Maßstab einer Wohnung.&lt;/p&gt;
&lt;p&gt;Keines dieser Muster ist in einer Cloud-Plattform ungewöhnlich: Jobs, die
nachweisen, wer sie sind, statt ein Passwort mitzuführen; ein Grundriss aus
öffentlichen, privaten und eingeschränkten Zonen; ein Firewall-Paar, das
seinen Zustand teilt, sodass jede Hälfte übernehmen kann; Regeln, die in Git
liegen statt in einer Konsole; eine Wiederherstellung, die wirklich
durchgeführt wurde; und Telemetrie von allem. Vier der sechs sind da; die
Full-Stack-Beobachtbarkeit läuft, aber noch nicht flottenweit, und ein
bewiesener Wiederherstellungspfad steht noch aus. Das ganze Set hinter einem
Wohnungsschreibtisch unterzubringen, ist das Ungewöhnliche.&lt;/p&gt;
&lt;p&gt;Die Datumsangaben sagen, wann etwas zuletzt geprüft wurde.&lt;/p&gt;
&lt;h2 id="was-wovon-abhängt"&gt;Was wovon abhängt&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Fundament, Leitungen, Werkzeuge, dann die Räume, die Menschen benutzen —
dieselbe Reihenfolge wie bei einem Haus.&lt;/div&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Geschichteter Stack von der Hardware unten über Netz, Rechenleistung, Steuerungsebene und Plattformdienste bis zu den Haushalts- und öffentlichen Diensten oben."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/stack.svg" alt="Geschichteter Stack von der Hardware unten über Netz, Rechenleistung, Steuerungsebene und Plattformdienste bis zu den Haushalts- und öffentlichen Diensten oben." width="1100" height="374" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 02 — der Stack. Schichten zeigen Abhängigkeit, nicht Rollout-Status; geplante Elemente sagen es.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="ebenen"&gt;Ebenen&lt;/h3&gt;
&lt;p&gt;Die Werkzeuge sortieren sich in vier Spuren — welches Werkzeug welche
Aufgabe besitzt. Diese Karte beantwortet „welche
Technologien?“; sie sagt absichtlich nichts über die Platzierung — das tut
die Deployment-Sicht.&lt;/p&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Spur&lt;/th&gt;
&lt;th scope="col"&gt;Wofür&lt;/th&gt;
&lt;th scope="col"&gt;Werkzeuge&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Nutzung&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;was Menschen benutzen&lt;/td&gt;
&lt;td&gt;Home Assistant, Plex, die Websites, lokale Sprachsteuerung, Grafana&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plattformdienste&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;geteilte Fähigkeiten&lt;/td&gt;
&lt;td&gt;OpenBao, Traefik, Prometheus, Loki, Alloy, MQTT; ein eigener Backup-Server nimmt die nächtlichen Archive auf, der Wiederherstellungsbeweis über die Flotte steht aus&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Automatisierung&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;wie Veränderung passiert&lt;/td&gt;
&lt;td&gt;GitLab CI, Runner im LAN, OpenTofu, Ansible, OIDC, Renovate, das Netzmodell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Fundament&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;worauf alles steht&lt;/td&gt;
&lt;td&gt;Proxmox VE, Docker, OPNsense, RouterOS, Synology, Cloudflare&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id="heute-gegenüber-dem-plan"&gt;Heute gegenüber dem Plan&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;„Läuft“ heißt: heute in Betrieb gesehen; „geplant“ heißt: aufgeschrieben
und noch nicht gebaut — eine erteilte Baugenehmigung für einen Anbau, der
noch nicht gegossen ist.&lt;/div&gt;
&lt;p&gt;Deklarationen im Repository beweisen Absicht, nicht Rollout. Stand der
Evidenz-Momentaufnahme vom 2026-09-08:&lt;/p&gt;
&lt;h3 id="was-heute-läuft"&gt;Was heute läuft&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Zwei physische Proxmox-Knoten tragen die Flotte, und die dritte
Cluster-Stimme ist ein Tie-Breaker-Dienst auf dem NAS; das kleine
Hilfsmitglied, das sie früher hielt, ist außer Dienst.&lt;/li&gt;
&lt;li&gt;Die zwei OPNsense-Edge-VMs laufen je eine pro physischem Knoten und
besitzen die WAN-Anschlüsse. Sie sind ein CARP/pfsync-Paar: Beide halten
jede Adresse, an die das Netz seinen Verkehr schickt, der Firewall-Zustand
wird zwischen ihnen synchronisiert, und DHCP läuft im Hot-Standby — die
zweite Kopie ist geladen und aktuell, sie startet nicht erst beim Ausfall
der ersten. Am 2026-08-23 hat ein echter Wechsel mit Rückwechsel die
Master-Rolle und die Einwahlsitzung mitgenommen.&lt;/li&gt;
&lt;li&gt;Das Acht-Zonen-Switch-Fabric ist &lt;strong&gt;aktiv&lt;/strong&gt; — die umnummerierten VLANs,
die Zonen-Gateways und die Policy zwischen den Zonen sind das, was das
Netz heute fährt.&lt;/li&gt;
&lt;li&gt;Gäste ziehen nacheinander auf ihre Zonenadressen und Speicherstufen um;
jeder Ersatz läuft neben seinem Vorgänger, bis eine eigene, geprüfte
Außerdienststellung folgt.&lt;/li&gt;
&lt;li&gt;Hochverfügbarkeit ist scharf geschaltet, zwölf Gäste stehen unter ihr.
Beide Übungen sind am 2026-09-01 bestanden. Ein Knoten wurde planmäßig
durchgestartet — seine Gäste zogen vorher auf den Partner — und kam mit
seinen eigenen Gästen zurück; der andere wurde hart zum Absturz gebracht,
und jeder eingetragene Gast lief rund zwei Minuten später auf dem
überlebenden Knoten. Die Replikation spiegelt jeden Gast des
Reparaturpfads zwischen den Knoten, die nächtlichen Drift-Prüfungen
laufen, und gestaffelte Ziele sind erwartete Unterschiede, keine Fehler.&lt;/li&gt;
&lt;li&gt;Die nächtlichen Archive gehen an einen eigenen Backup-Server, der sie
dedupliziert, das Gehaltene durch erneutes Lesen verifiziert und sie schon
auf dem Knoten verschlüsselt, bevor sie geschrieben werden. Die
Speicherbox hält weiterhin die Bytes und kann sie nicht mehr lesen. Ein
Gast wurde aus diesem verschlüsselten Speicher zurückgeholt; die Übung
über die ganze Flotte steht aus.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="was-geplant-ist"&gt;Was geplant ist&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Die harten Ausfallübungen des Edge-Paars: WAN-Kabel des Masters gezogen,
der Knoten mit dem Master ausgeschaltet, ein Trunk-Mitglied ausgefallen —
jeweils mit gemessener Zeit bis zum Failover. Der sanfte Wechsel ist
bewiesen; die harten Messwerte stehen aus.&lt;/li&gt;
&lt;li&gt;Der vollständige Wiederherstellungsbeweis über die ganze Flotte und die
Verwahrung des Schlüssels, der die Archive öffnet: Er liegt im Tresor der
Flotte selbst, eine Kopie außerhalb der Flotte fehlt. Ein Schlüssel, der
nur in dem liegt, was er aufschließt, ist noch kein Schlüssel, den man
hat.&lt;/li&gt;
&lt;li&gt;Die dritte Stimme des Clusters zieht von der Speicherbox auf den
Access-Switch. Der Grund ist Konzentration, nicht Verfügbarkeit: Quorum,
jede Speicherstufe und jede Backup-Bahn sind heute das eine Gerät, und die
Stimme ist davon das am billigsten zu Verlegende. Am neuen Platz antwortet
noch nichts, und der alte trägt sie, bis es so weit ist.&lt;/li&gt;
&lt;li&gt;Die vorhandenen Knoten konvergieren an Ort und Stelle: keine
Neuinstallation, keine Umbenennung.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Ziel-Deployment: Das WAN erreicht die Edge-VM jedes Knotens direkt, nie über einen Switch; die Knoten-Bonds tragen die LAN-Trunks ins MikroTik-Fabric; das NAS trägt Speicher- und Quorum-Anschlüsse."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/deployment.svg" alt="Ziel-Deployment: Das WAN erreicht die Edge-VM jedes Knotens direkt, nie über einen Switch; die Knoten-Bonds tragen die LAN-Trunks ins MikroTik-Fabric; das NAS trägt Speicher- und Quorum-Anschlüsse." width="1100" height="580" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 03 — Deployment; Edge-Paar, Fabric und die Stimme bei Gleichstand laufen. Die Cluster-Namen bleiben &lt;code&gt;TYCPVE&lt;/code&gt; und &lt;code&gt;Tyc2pve&lt;/code&gt;; die kleingeschriebenen Namen sind DNS-Rollen-Aliase.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Das WAN kreuzt nie einen Switch: Die zwei LAN-Anschlüsse des Modems sind
direkt an die zwei Knoten verkabelt, in jedem eine Edge-VM. Die
Knoten-Bonds tragen die LAN-Trunks; Speicher und die Stimme bei
Gleichstand fahren über getrennte NAS-Anschlüsse.&lt;/p&gt;
&lt;h2 id="eine-landing-zone-wie-in-der-cloud-in-einer-wohnung"&gt;Eine Landing Zone wie in der Cloud, in einer Wohnung&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Acht Räume, abgeschlossene Türen und eine geschriebene Regel für jede Tür,
die aufgeht — ein Hotel-Grundriss für Geräte.&lt;/div&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Landing Zone: Das Edge-Paar routet acht Zonen — eine veröffentlichte DMZ, vier private Anwendungszonen und drei eingeschränkte Steuerungszonen."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/zones.svg" alt="Landing Zone: Das Edge-Paar routet acht Zonen — eine veröffentlichte DMZ, vier private Anwendungszonen und drei eingeschränkte Steuerungszonen." width="1100" height="520" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 04 — Netz und Landing Zone; Gäste-Umzüge laufen.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Eine Landing Zone ist ein Netz-Grundriss, der feststeht, bevor etwas
einzieht: welche Zonen es gibt, was zwischen ihnen laufen darf und wer das
ändern darf. Das ist dasselbe Muster aus öffentlich/privat/eingeschränkt,
das die Varianten in der Cloud verwenden, heruntergebrochen auf ein
physisches Fabric. Jeder Pfad zwischen Zonen kreuzt den Edge und wird
verweigert, sofern kein expliziter Fluss ihn erlaubt. Die veröffentlichte
Eingangstür wohnt in &lt;strong&gt;Z-DMZ&lt;/strong&gt; (Traefik) — der einen Zone, die aus dem
Internet erreichbar ist, abgetrennt gehalten, damit ein Einbruch dort
nirgendwo sonst ankommt. Einige dokumentierte NAS-Resilienz-Ports umgehen
diese Zone absichtlich. Plex sitzt in der Smart-Home- und AV-Zone bei den
Geräten, die es bespielt. Die privaten Zonen trennen die
vertrauenswürdigen Hosts des Haushalts, die Smart-Home-Geräte, die Gäste
und ein Segment „ferne Seite, nicht unseres“, das Internet bekommt und
nichts Laterales. Die eingeschränkten Zonen tragen den Geheimnis-Tresor und
das Quorum, das Management von Switches, AP und KVM sowie eine Kamerazone.
Stabile interne Identität fährt über ein privates ULA-/48-Präfix — einen
IPv6-Bereich, der nur für dieses Netz erzeugt und im Internet nie geroutet
wird. Das Präfix des Providers rotiert; Namen und Policy tun es nicht.&lt;/p&gt;
&lt;p&gt;Ehrliche Grenzen: Verkehr innerhalb einer Zone wird nicht gefiltert, die
vertrauenswürdige Zone bleibt breit, und Mikrosegmentierung pro Workload —
eine Regel je Workload statt je Zone — ist absichtlich eine eigene
Härtungsphase nach Abschluss der Migration.&lt;/p&gt;
&lt;h2 id="wie-eine-änderung-wirklichkeit-wird"&gt;Wie eine Änderung Wirklichkeit wird&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Das Bauantragsverfahren: Antrag, Plausibilitätsprüfung, Lesen, Stempel, Abnahme. Die
KI schreibt die Anträge; der Stempel bleibt beim Menschen — der in einem
Haushalt mit einer Person auch der ist, der die Zeichnung bestellt hat.&lt;/div&gt;
&lt;p&gt;KI verändert die Tippkapazität, nicht die Autorität. Agenten erkunden,
schlagen vor und prüfen. Ein Mensch genehmigt den Merge und die gesicherte
Veränderung an der Infrastruktur. Die Verifikation beobachtet das
entstandene System.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Auslieferungsfluss: menschliche Absicht, Erkundung, ein Agenten-Branch, ein Merge Request mit Lint, Validierung und Plan, menschliche Prüfung, manuell gesichertes Apply, dann Abnahme und Drift-Prüfungen, deren Befunde zurückfließen."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/delivery.svg" alt="Auslieferungsfluss: menschliche Absicht, Erkundung, ein Agenten-Branch, ein Merge Request mit Lint, Validierung und Plan, menschliche Prüfung, manuell gesichertes Apply, dann Abnahme und Drift-Prüfungen, deren Befunde zurückfließen." width="1100" height="330" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 05 — Auslieferung von Änderungen.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="auslieferung-von-änderungen"&gt;Auslieferung von Änderungen&lt;/h3&gt;
&lt;p&gt;Veränderungen an der Infrastruktur laufen nur über CI, abgesehen von
dokumentierter Break-Glass-Wiederherstellung: einem im Voraus
aufgeschriebenen Notweg für die Fälle, in denen die Pipeline an das Kaputte
nicht herankommt. Ein sauberer Plan beweist die Absicht; die Abnahme gegen
das laufende System beweist den Abschluss. Home Assistant ist die bewusste
Ausnahme im Transport: Sein Container zieht und validiert &lt;code&gt;main&lt;/code&gt; selbst,
fail-closed — es gibt keinen CI-Push ins Smart Home.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Automatisierungsarchitektur: Repositories und geteilte CI-Vorlagen speisen die Prüfungen; OpenBao stellt kurzlebige OIDC-Tokens aus; Runner im LAN fahren Nur-Lese-Pläne und geschützte Applies gegen fünf unabhängig gesperrte OpenTofu-States; das beobachtete System liefert Evidenz und Drift an die Repositories zurück."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/automation.svg" alt="Automatisierungsarchitektur: Repositories und geteilte CI-Vorlagen speisen die Prüfungen; OpenBao stellt kurzlebige OIDC-Tokens aus; Runner im LAN fahren Nur-Lese-Pläne und geschützte Applies gegen fünf unabhängig gesperrte OpenTofu-States; das beobachtete System liefert Evidenz und Drift an die Repositories zurück." width="1100" height="560" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 06 — Automatisierung. Fünf OpenTofu-States, je ein Lock.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="auslieferung-und-automatisierung"&gt;Auslieferung und Automatisierung&lt;/h3&gt;
&lt;p&gt;Ein OpenTofu-State ist die Aufzeichnung dessen, was das Werkzeug gebaut zu
haben glaubt. Fünf davon — der Virtualisierungs-Hub, das Netz-Fabric, das
Edge-Paar, DNS und der WLAN-Controller — sind getrennte Lock-Domänen:
Unabhängige Änderungen laufen parallel, während jeder State für sich
serialisiert bleibt. Die States pro Edge-Knoten wurden am 2026-08-23
abgeschafft; die Pipeline verweigert die Arbeit gegen sie. Merge-Request-Pipelines
sind nur lesend — nur Plan und Check. Ein Plan liest den geteilten State
und die Geheimnisse der Plan-Seite; die Zugangsdaten, die etwas verändern
können, hängen am geschützten Branch und erreichen nur den Apply-Job.
Apply ist ein Mensch, der auf einem Runner im LAN einen Knopf drückt, mit
kurzlebigen OpenBao-Zugangsdaten, die genau auf diesen Job begrenzt sind.
Geteilte CI-Vorlagen liefern die Vorgaben, aber Review und geschützte
Branches bleiben Teil der Kontrolle — eine Consumer-Pipeline kann eine
geerbte Regel immer noch aufweichen, deshalb
ist die Branch-Regel der Wächter, nicht die Vorlage.&lt;/p&gt;
&lt;p&gt;Zwei Wächter laufen fail-closed. Der eine durchsucht die gesamte
Git-Historie des Projekts nach Zugangsdaten, nicht nur die Änderung, die
vor ihm liegt, und er läuft in jeder Pipeline und in jedem Repository; der
andere liest jede Infrastruktur-Deklaration auf Fehlkonfiguration, in den
Repositories, die welche tragen. Keiner von beiden darf warnen, statt zu
scheitern.&lt;/p&gt;
&lt;p&gt;Die Verifikation ist ein eigener, benoteter Durchlauf, kein Blick ins
Protokoll. Elf Invarianten werden von den Switches selbst zurückgelesen und
einzeln bewertet; eine zwölfte wird vor jedem Lauf gegen den Quelltext
geprüft. Der Lauf druckt dann seine eigenen blinden Flecken neben die
Ergebnisse. Wer die Switches nur über die Ebene erreicht, die er prüft, kann
einen Bruch in genau dieser Ebene nicht sehen. Die Prüfer selbst laufen
gegen ein synthetisches Netz, in dem für jede Invariante ein Fehler ausgesät
ist — so fällt ein Prüfer auf, der nichts mehr merkt.&lt;/p&gt;
&lt;p&gt;Drift wird in zwei Richtungen geprüft. Der eine Vergleich hält die
laufende Welt gegen die Aufzeichnung und findet Änderungen, die an der
Pipeline vorbei gemacht wurden; der andere hält die Aufzeichnung gegen
sich selbst und findet Änderungen, die gemergt und dann nie angewendet
wurden — ein anderer Fehler, der seinen eigenen Alarm braucht. Keiner der
beiden darf weich scheitern: Eine Drift-Prüfung, die warnt, statt zu
scheitern, ist ein falsches Grün.&lt;/p&gt;
&lt;p&gt;Die Pipelines sind von Repository zu Repository unterschiedlich
geschnitten, und keine von ihnen trägt jede Stufe — ein Repository fährt
die, die sein Inhalt braucht. Die Arten von Prüfung und die Jobs, die sie
tragen:&lt;/p&gt;
&lt;div class="table-scroll" tabindex="0"&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th scope="col"&gt;Was passiert&lt;/th&gt;
&lt;th scope="col"&gt;Was das heißt&lt;/th&gt;
&lt;th scope="col"&gt;Jobs&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wächter und Lint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;geteilte Prüfungen, Schutz vor Repository-Drift und Fail-closed-Scans auf Zugangsdaten und Fehlkonfiguration&lt;/td&gt;
&lt;td&gt;&lt;code&gt;lint:all&lt;/code&gt; &lt;code&gt;lint:config-drift&lt;/code&gt; &lt;code&gt;secrets:scan&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Modell und Plan&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;abgeleitete Netzkonsistenz plus Vorschau der Änderung&lt;/td&gt;
&lt;td&gt;&lt;code&gt;model:check&lt;/code&gt; &lt;code&gt;tofu:plan&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Apply&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;manuell, umgebungsgebunden und pro State serialisiert&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tofu:apply&lt;/code&gt; &lt;code&gt;deploy:hosts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Verifikation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Invarianten über die Ebenen hinweg und Dienstprüfungen&lt;/td&gt;
&lt;td&gt;&lt;code&gt;net:verify&lt;/code&gt; &lt;code&gt;validate:ha-config&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Drift erkennen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;geplanter Vergleich in beide Richtungen: die Welt gegen die Aufzeichnung und die Aufzeichnung gegen sich selbst&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tofu:drift&lt;/code&gt; &lt;code&gt;dns:delegation&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wiederherstellen&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;expliziter Abgleich und zugangsdatensichere Wiederherstellungspfade&lt;/td&gt;
&lt;td&gt;&lt;code&gt;edge:reconcile-import&lt;/code&gt; &lt;code&gt;bao:snapshot&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 id="die-migration-das-ziel-bauen-ohne-die-knoten-neu-zu-installieren"&gt;Die Migration: das Ziel bauen, ohne die Knoten neu zu installieren&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Renovieren, während man im Haus wohnt: die neue Küche neben der alten
bauen, umziehen und erst dann die alte herausreißen.&lt;/div&gt;
&lt;p&gt;Die Abfolge ist bewusst gestaffelt und bis zur endgültigen
Außerdienststellung umkehrbar, in vier Stufen: das neue Substrat
&lt;strong&gt;aufbauen&lt;/strong&gt;, die vorhandenen Knoten an Ort und Stelle &lt;strong&gt;konvergieren&lt;/strong&gt;,
Wiederherstellung und Failover &lt;strong&gt;beweisen&lt;/strong&gt;, dann &lt;strong&gt;versiegeln&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span class="diagram" role="group" tabindex="0" aria-label="Migrationsabfolge: Die Substrat-Stufe ist fertig und die Gäste-Umzüge laufen; das Hilfsmitglied ist außer Dienst und die Stimme bei Gleichstand läuft; dann konvergieren die Knoten einer nach dem anderen; die Hochverfügbarkeit ist scharf geschaltet und beide Cluster-Übungen sind bestanden — ein geplanter Reboot-Durchlauf und ein harter Knotenausfall —, während die Wiederherstellungsübung noch aussteht, und erst der Versiegelungsschritt entfernt die Rollback-Mittel."&gt;&lt;img src="https://tycstation.com/notes/apartment-datacenter/diagrams/migration.svg" alt="Migrationsabfolge: Die Substrat-Stufe ist fertig und die Gäste-Umzüge laufen; das Hilfsmitglied ist außer Dienst und die Stimme bei Gleichstand läuft; dann konvergieren die Knoten einer nach dem anderen; die Hochverfügbarkeit ist scharf geschaltet und beide Cluster-Übungen sind bestanden — ein geplanter Reboot-Durchlauf und ein harter Knotenausfall —, während die Wiederherstellungsübung noch aussteht, und erst der Versiegelungsschritt entfernt die Rollback-Mittel." width="1100" height="330" loading="lazy" decoding="async"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sicht 07 — die Migration; die Substrat-Stufe ist fertig und die Gäste-Umzüge laufen, die Hochverfügbarkeit ist scharf geschaltet und beide Cluster-Übungen sind bestanden, die Wiederherstellungsübung steht noch aus. Keine Neuinstallation physischer Knoten und keine Umbenennung.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="migrationsplan"&gt;Migrationsplan&lt;/h3&gt;
&lt;p&gt;Stand 2026-09-08 ist die Substrat-Stufe fertig: Konsolenzugang und Backups
wurden bewiesen, bevor irgendetwas verändert wurde, die Umnummerierung des
Fabrics ist aktiv, beide Ersatz-Firewalls laufen mit direkt an die Knoten
verkabeltem WAN, und die geteilte Speicherebene existiert. Die Gäste ziehen
in der Reihenfolge ihrer Wiederherstellungsstufe um. Dann wird jeder Knoten
hinter seinem funktionierenden Firewall-Partner leergezogen und
konvergiert — das Hilfsmitglied ist bereits außer Dienst und die Stimme bei
Gleichstand läuft. Hochverfügbarkeit ist scharf geschaltet und beide
Übungen sind bestanden; die flottenweite Wiederherstellungsübung steht
noch aus. Rollback-Mittel werden erst nach einer Stabilitätsphase entfernt,
und dieser Schritt ist der einzige unumkehrbare.&lt;/p&gt;
&lt;h2 id="die-entscheidungen-die-die-plattform-definieren"&gt;Die Entscheidungen, die die Plattform definieren&lt;/h2&gt;
&lt;div class="plain" role="note"&gt;&lt;span class="plain-kicker"&gt;Im Alltag gesprochen&lt;/span&gt;Die Hausregeln, einmal aufgeschrieben, damit niemand sie um zwei Uhr
nachts noch einmal ausdiskutieren muss.&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Git hält die Absicht fest; die Beobachtung entscheidet über die
Wahrheit.&lt;/strong&gt; Pläne und Dokumentation ersetzen nie die Live-Abnahme.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Der Edge ist ein festes Paar, kein schwebender Gast.&lt;/strong&gt; Eine OPNsense-VM
pro Knoten; CARP und pfsync verschieben den Dienst, nicht die VM. Eine der
beiden Firewalls ist die Konfigurationshoheit und schiebt jeden
synchronisierten Abschnitt über den herstellereigenen Sync-Kanal zur
Partnerin; Git ist der einzige Ursprung dieser Konfiguration, und auf der
Standby-Firewall wird nichts verfasst.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speicher folgt der Wiederherstellungsstufe.&lt;/strong&gt; Gäste des Reparaturpfads
bleiben NAS-unabhängig auf repliziertem lokalem ZFS; geeignete VMs nutzen
geteiltes NFS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ULA trägt Identität und Policy.&lt;/strong&gt; Das Präfix des Providers rotiert;
stabile interne Namen und Regeln nutzen ein privates ULA-/48-Präfix.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Die Quorum-Stimme ist eine Stimme, kein Rechenknoten.&lt;/strong&gt; Zwei physische
Mitglieder plus ein eigener Tie-Breaker-Dienst — heute auf der
Speicherbox, im September zum Umzug auf den Access-Switch entschieden, der
ihn in einem eigenen Container tragen wird.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acht Zonen jetzt; Workload-Isolation später.&lt;/strong&gt; Die Grenzen der
Risikoklassen stehen fest, ohne so zu tun, als gäbe es schon
Mikrosegmentierung innerhalb der Zonen.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="akzeptierte-restrisiken"&gt;Akzeptierte Restrisiken&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Eine DSL-Leitung heißt: Ein Firewall-Failover wählt neu ein; es ist
Knoten-Redundanz, keine Leitungs-Redundanz.&lt;/li&gt;
&lt;li&gt;Gleichzeitiger Verlust von NAS und Knoten nimmt das Quorum und braucht
Break-Glass mit bestätigt totem Partner.&lt;/li&gt;
&lt;li&gt;Der Verlust des Core-Switch-Chassis isoliert den geswitchten Verkehr,
aber nicht das Paar selbst: Zwei der drei internen Cluster-Verbindungen
und der geteilte Firewall-Zustand fahren über Kabel, die direkt zwischen
den Knoten liegen.&lt;/li&gt;
&lt;li&gt;Verkehr innerhalb einer Zone wird nicht gefiltert, und die
vertrauenswürdige Zone bleibt breit.&lt;/li&gt;
&lt;li&gt;Default-Deny pro Workload ist eine eigene Härtungsphase nach Abschluss
der Migration.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="drei-vorfälle-die-das-design-verändert-haben"&gt;Drei Vorfälle, die das Design verändert haben&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ausfall des einzigen Edge&lt;/strong&gt; — beförderte das Firewall-Paar von „später“
in den verbindlichen Plan.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker auf NFS&lt;/strong&gt; — etablierte explizite Ausnahmen für lokales ZFS und
Speicherstufen.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Layer-2-Leck&lt;/strong&gt; — ersetzte die brüchige Segmentierung durch acht
geroutete Risikozonen und abgeleitete Invarianten.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="von-außen-geprüft"&gt;Von außen geprüft&lt;/h3&gt;
&lt;p&gt;Im September wurde die gesamte Umgebung von außen nach innen gegen ein
Enterprise-Raster geprüft und kam auf 45 von 132. Die Methode, die Kosten
und die Stellen, an denen die Prüfung über sich selbst falsch lag, stehen
in &lt;a href="https://tycstation.com/de/notes/45-of-132/"&gt;45 von 132&lt;/a&gt;; die Befunde selbst
werden nicht veröffentlicht.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Alles oben wurde am 2026-09-08 geprüft. Was läuft, stammt aus der API des
Clusters selbst und aus der Smart-Home-Zentrale; die Switch- und die
Firewall-Ebene wurden aus den Deklarationen gelesen, die CI auf sie
anwendet, nicht an diesem Tag von den Geräten selbst. Geplante Punkte sind
als geplant markiert.&lt;/p&gt;</description></item></channel></rss>