Homelab.
De hardware waar al het andere op deze site op draait.
Twee delen die als één werken. Een gesegmenteerd netwerk (een open-source firewall, meerdere VLAN's) en een zelflerend klimaat- + energiesysteem (een eigen controller, met BigQuery erachter). De andere technische projecten op deze site draaien hierbovenop. De configuratie zelf staat in privé-repo's — deze pagina is de bewust op hoofdlijnen gehouden publieke versie, met opzet licht op de details.
Meerdere VLAN's, met opzet gesegmenteerd.
Het netwerk bestaat zodat de rest van het systeem kan bestaan. Elke dienst die lokaal draait — klimaat, audio, beveiliging, automatiseringen — zit op een VLAN dat past bij zijn vertrouwensniveau. Een apparaat dat zich misdraagt wordt ingedamd door zijn eigen segment, niet door het geduld van de firewall.
| VLAN | Doel |
|---|---|
| Management | De netwerkinfrastructuur zelf — firewall, switches, controllers. |
| Secure | Apparaten met hoog vertrouwen, waaronder de camera-opnames. Strakke egress. |
| Trusted | Persoonlijke laptops, telefoons, werkstations. |
| IoT | Smarthome-apparaten die nooit met iets mogen praten zonder dat ze daar een reden voor hebben. |
| Guest | Iedereen die op bezoek is. Geen lateraal verkeer. |
| Bootstrap (legacy) | Een pad dat er alleen is om te bootstrappen, zodat een verkeerde configuratie op een VLAN het netwerk nooit van zichzelf buitensluit. |
De vorm van de hardware
| Laag | Details |
|---|---|
| Firewall | Een open-source firewall/router-OS verzorgt routering, DHCP en de WAN-overdracht. De provider levert WAN op een getagd VLAN, en die ene overdracht verbindt het huis met het internet. |
| Switching | Een managed switching-stack: een 10Gb-aggregatielaag naar 1Gb-distributie over glasvezel. |
| Wireless | Meerdere accesspoints van één leverancier. Twee SSID's worden uitgezonden — één gekoppeld aan het Trusted VLAN, één aan het IoT VLAN — zodat een slimme lamp nooit op hetzelfde broadcast-domein belandt als een laptop. |
| Cameras | Een gesegmenteerd camerasysteem op een aparte recorder. De opnames blijven op het Secure VLAN; egress wordt aan de netwerkgrens door de firewall tegengehouden. |
| Inter-VLAN services | mDNS-reflectie, UDP-broadcast-relay en IGMP Proxy per VLAN geconfigureerd. Nodig om AirPlay en multi-merk multiroom-detectie over de segmenten heen te laten werken. |
Klimaat en verlichting delen één hub.
De klimaatkant is een zelflerende thermostaat met echte terugkoppellussen. Verlichting en aanwezigheid draaien op dezelfde hub via dezelfde scriptinglaag.
| Laag | Details |
|---|---|
| Controller | Een eigen controller — seizoensbereiken, voorkoming van koude voeten, comfort-signaalmodel. Eerdere controller-versies worden als referentie bewaard, zodat afwijkend gedrag te debuggen is. |
| Heating | Meerdere vloerverwarmingszones via Z-Wave-relais, met meer in de planning. De warmtepomp wordt aangestuurd door een wandrelais in plaats van door de eigen ingebouwde thermostaat. |
| Air conditioning | Meerdere airco-units achter een cloud-API van de fabrikant. Die API is gelimiteerd, dus de controller behandelt de pollfrequentie als een vast budget. |
| Sensors | Temperatuursensoren die een thermisch model voeden. De thermische vertraging per kamer wordt gemeten en gebruikt in de vooruitblik van de controller. |
| Heating-rate ceiling | Verwarmingssnelheidsplafonds per kamer worden gemeten. De controller respecteert ze — alles wat sneller gaat, is een sensor die verkeerd rapporteert, geen comfortwinst. |
| Lighting | Tientallen flows en scripts. Per kamer bewust van aanwezigheid, scène en beweging. 'Adaptief' betekent hier dat de regels het tijdstip en de modus van het huis volgen. Er komt geen LLM aan te pas. |
Het huis loopt vooruit op het net.
Dynamische Nederlandse energieprijzen veranderen elk uur en de curve van morgen komt na 13:00 binnen. De controller plant verwarming, EV-laden en accu-inzet op de prijzen van de komende 24 uur.
| Systeem | Rol |
|---|---|
| Dynamische prijsfeed | Een Nederlandse dynamische-prijzenfeed. De controller plant verwarming + EV-laden op de prijscurve daarvan. |
| Zon + accu | Zonneproductie en een thuisaccu. De accu wordt ingezet tegen dezelfde prijscurve die de verwarming leest. |
| EV-laden | EV-laden via de wandlader, aangestuurd door de prijsfeed. Standaard laden tijdens goedkope vensters; met de hand te overrulen wanneer nodig. |
| Load shedding | Zodra de netbelasting de contractlimiet nadert, schakelt de controller de laagst geprioriteerde verbruikers af (eerst die je mag uitstellen) in plaats van de hoofdzekering te laten springen. |
| EVs | De laadstatus van de voertuigen rapporteert naar hetzelfde dataplatform; het laden synchroniseert tegen dezelfde prijs- + belastingscurve. |
Multi-merk audio — op één structuur.
Multi-merk audio op een gesegmenteerd netwerk is vooral een multicast-probleem. mDNS-reflectie, IGMP Querier en STP-prioriteit zijn de weinig glamoureuze primitieven die multiroom-audio over VLAN's heen laten werken.
| Merk | Details |
|---|---|
| Primary multiroom stack | Een gekoppelde set die strakke kloksync nodig heeft — opgevangen op de switch — plus een vendor-API. Doet multiroom en Apple AirPlay door alle kamers heen. |
| Second multiroom brand | Geconfigureerd met STP-prioriteit + IGMP Querier zodat multicast-detectie het gesegmenteerde VLAN-netwerk overleeft. |
| WiFi-only pair | Bewust op hetzelfde VLAN als de controller gehouden, op 5GHz, zodat de automatische koppeling van de fabrikant überhaupt werkt. |
Hub → Cloud Run → BigQuery.
Hetzelfde dataplatform achter elke interessante beslissing in huis. Elk apparaat, elke vijf minuten — een echte tijdreeks, gevalideerd bij binnenkomst en langdurig bewaard voor analyse.
| Laag | Details |
|---|---|
| Capture | De hub pollt elke 5 minuten elk apparaat — sensoren, schakelaars, klimaatunits, EV-laders, alles. |
| Validate + ingest | Een Cloud Run-worker valideert de payload, gooit misvormde rijen weg en voegt ze toe aan BigQuery. |
| Analyse | BigQuery is de langetermijnopslag. Het fitten van het thermisch model, backtests van de energie-arbitrage, analyse van verlichtingspatronen — allemaal SQL op dezelfde data. |
| Loop back | Lessen uit de offline-analyse worden controller-versiestappen. De productielus blijft simpel; de analyselus blijft nieuwsgierig. |
De regels waar het netwerk op draait.
- Segmenteer voordat je optimaliseert
- Het IoT-segment bestaat zodat een slim apparaat met twijfelachtige firmware fysiek niet naar een werkstation kan overspringen. Elk ander 'smarthome'-probleem is makkelijker zodra dat klopt.
- Houd een bootstrap-pad open
- Een bootstrap-pad naar de firewall blijft bestaan voor de dag dat een VLAN-wijziging fout is en de firewall bereikt moet worden zonder de configuratie die kapot is.
- Eén bron van waarheid per dienst
- Er is één DHCP-dienst. Configuraties die 'grotendeels' werken omdat meerdere diensten elkaar grotendeels afstemmen, zijn hoe netwerken in stilte verrotten.
- Elke inter-VLAN-dienst staat op papier
- Elke relay en reflector is per VLAN vastgelegd, want elk audiomerk heeft net een andere variant nodig en er één vergeten breekt de multiroom op een subtiele manier.
- Geen LLM kiest het setpoint
- De thermostaat is een deterministisch model met seizoensbereiken en voorkoming van koude voeten. AI woont in de offline-analyselaag die uitlegt waarom een zone zich vreemd gedroeg, en blijft uit de productielus.
- Een rate limit is een hard budget
- Sommige cloud-API's van fabrikanten zijn gelimiteerd. De controller past zijn pollfrequentie aan zodat de limiet nooit wordt geraakt en de API responsief blijft.
- Logs zijn de waarheid op de grond
- Elke meting, elke beslissing van de controller, elke apparaatstatus landt in BigQuery. Elk vreemd gedrag is terug te herleiden. Het dataplatform is de debugger.
Modellen thuis draaien, om ze te begrijpen.
Twee DGX Sparks met een directe interlink, samen 256 GB unified memory, zitten op hetzelfde VLAN als de rest van deze infrastructuur. Ze draaien vLLM via llama-swap — één model tegelijk, ~8–14 minuten om een groot model te wisselen. Zware batch-inference, redeneertaken, alles wat meer context nodig heeft dan de altijd-aan inference-box aankan. Dat is wat ze doen. Waarom ze er überhaupt staan, komt neer op drie dingen.
| Laag | Waarom |
|---|---|
| Voelen hoe een model zich gedraagt | Een gehoste GUI of een gemeterde API verbergt hoe een model zich gedraagt. Draai je het lokaal, dan voel je de cold-start, het geheugenplafond, de quantisatie-afweging. Dat laat geen dashboard je zien. |
| Privégegevens | Sommige gegevens horen niet thuis op andermans infrastructuur: financiële modellen, gezinsbudgetten. Het soort dingen dat nooit een trainingsset of een logregel buiten dit huis mag raken. |
| Het zelf bouwen | AI gebruiken en AI van binnenuit begrijpen zijn twee verschillende dingen. Deze cluster is de hardwareroute naar het tweede. De softwareroute is dingen zelf bouwen, de drang achter de Agent Game. |
De helft is vakwerk om het vakwerk — een echt netwerk thuis draaien is een voorrecht en een hobby. De andere helft is operationeel: als Luminary een verse checkout nodig heeft om vanaf te deployen, of Shop Life een privé-WhatsApp-webhook nodig heeft om te laten landen, of Bedtime Stories een plek nodig heeft om te renderen die niet per verbruik wordt afgerekend, dan is de homelab waar al het andere op draait. Alleen daarom al de moeite van het opschrijven waard.