Stappenplan: Home Assistant via Modbus TCP laten praten met één IoT-apparaat (UniFi zone-based firewall)
1. Begrijp waarom Modbus extra voorzichtigheid vraagt
Modbus TCP heeft geen authenticatie en geen versleuteling. Wie poort 502 kan bereiken, kan registers uitlezen én beschrijven, en daarmee bijvoorbeeld een omvormer of warmtepomp aansturen. Het doel is dus niet "IoT mag bij HA", maar: alleen Home Assistant mag bij poort 502 van dit ene apparaat.
2. Geef beide kanten een vast adres
Maak in UniFi een vaste IP-reservering voor het Modbus-apparaat en zorg dat Home Assistant een vast IP heeft. Veel apparaten accepteren maar één (of enkele) gelijktijdige Modbus TCP-verbindingen. Dat is nog een reden om precies één client toe te staan.
3. Controleer je zones
Zet het IoT-netwerk in een eigen zone (bijv. een custom zone IoT), los van Internal. Kijk in het zone-overzicht hoe het verkeer tussen Internal en IoT standaard behandeld wordt. Dat moet blokkeren zijn, zodat jouw policy de enige uitzondering is.
4. Maak de policy aan
Ga naar Settings → Policy Engine → Zones (of Firewall, afhankelijk van je versie) en maak een nieuwe policy:
- Source zone:
Internal, met als bron alleen het IP van Home Assistant - Destination zone:
IoT, met als bestemming alleen het IP van het Modbus-apparaat - Protocol / poort: TCP 502 (of de afwijkende poort die je apparaat gebruikt)
- Action: Allow
- Return traffic: automatisch toestaan, zodat de antwoorden van het apparaat terugkomen
Er is geen regel van IoT naar Internal nodig. Het apparaat beantwoordt alleen verzoeken.
5. Let op de volgorde
Zorg dat je policy vóór een eventuele bredere blokkeer-regel tussen deze zones staat. UniFi laat in het zone-overzicht zien welke policies tussen twee zones actief zijn en in welke volgorde.
6. Configureer Home Assistant
Voeg de Modbus-integratie toe met het vaste IP van het apparaat, poort 502 en het juiste slave/unit-ID. Lees bij voorkeur alleen registers uit. Schrijf alleen naar registers waarvan je precies weet wat ze doen.
7. Test positief én negatief
- Komen de sensorwaarden binnen in Home Assistant?
- Probeer vanaf een ander apparaat in je normale netwerk poort 502 te bereiken, bijvoorbeeld met
nc -vz <ip> 502. Dat moet mislukken. - Zet tijdelijk logging aan op de policy om te zien dat alleen Home Assistant matcht.
8. Beperk wat je firewall niet kan beperken
De firewall ziet poort 502, niet de Modbus-functiecodes. Lezen en schrijven gaan dus allebei door. Kijk of je apparaat Modbus kan beperken tot alleen-lezen of tot specifieke client-IP's. Dat is een tweede verdedigingslaag naast je netwerkpolicy.
9. Documenteer en herzie
Geef de policy een duidelijke naam, bijvoorbeeld HA → omvormer Modbus TCP, en zet het doel in de omschrijving. Verdwijnt het apparaat of verhuist Home Assistant, ruim dan de policy en de reserveringen op.