Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Airco Integratie, Zity Zoning systeem Integrati...

Airco Integratie, Zity Zoning systeem Integratie met Home Assistant op basis van ModBus

Airco Integratie
Zity Zoning systeem
Integratie met Home Assistant op basis van ModBus

presentatie gegeven door Ron Buist tijdens de 51e domoticaGrunn bijeenkomst

Avatar for DomoticaGrunn

DomoticaGrunn

August 25, 2026

More Decks by DomoticaGrunn

Other Decks in Technology

Transcript

  1. Kenmerken • 3-fase aansluiting • Binnenunit geschikt om tot 480

    m3 te koelen of te verwarmen • 48 m3 / minuut • Toevoerleidingen geïsoleerd om condensvorming tegen te gaan
  2. Wensen integratie in Home Assistant • Huidige temperatuur per zone

    kunnen zien • Ingestelde temperatuur per zone kunnen zien en aanpassen • Mode (koelen of verwarmen) kunnen zien en aanpassen • Status dampers kunnen zien • Ventilatiesnelheid kunnen zien en aanpassen per zone • Doeltemperatuur en retourtemperatuur kunnen zien • Algemene status / alarmen kunnen zien
  3. NetBox? • NetBox is oplossing van Madel / Zoning •

    Schema’s per zone • Kosten ongeveer €300 • Cloud-gebaseerd • Geen open API • Eigen app
  4. Zelf bouwen? • Raspberry Pi en RS485 USB adapter had

    ik nog liggen • Alles lokaal • Maximale vrijheid • Integratie met Home Assistant mogelijk!
  5. Modbus • Het is dus een Modbus interface! • Wat

    is dat? • Eerst maar eens inlezen… • Hoe moeilijk kan het zijn? • Leverancier gevraagd om specs • Die kreeg ik… In het Spaans!
  6. Wat is Modbus? • Serieel communicatieprotocol uit 1979 • Ontwikkeld

    door Modicon (nu Schneider Electric) • Oorspronkelijk voor gebruik in PLC’s • Client / Server architectuur • In een Modbus-netwerk max. 247 servers en één client • Versies voor seriële lijnen (Modbus RTU en Modbus ASCII) en voor ethernet (Modbus TCP) • Alle details op www.modbus.org
  7. Modbus Data model • Vier tabellen met verschillende karakteristieken •

    Elk register heeft een adres • Functionele betekenis blijkt uit specificaties van server
  8. Modbus Functiecodes • De client stuurt berichten naar de server

    met daarin een functiecode en een register. • Functiecode bepaalt: • Lezen of schrijven • Uit welke tabel
  9. Terug naar de Zity controller… • Op basis van automatische

    vertaling Spaans document… • Zity ondersteunt een aantal functiecodes: • 03 (holdingregisters lezen) • 04 (inputregisters lezen) • 16 (meerdere holdingregisters schrijven)
  10. Poll script • Gebruikt mbpoll • Debian Apt package mbpoll

    • 2684 = temperatuur zone 5 • 217 = 21.7 ºC
  11. Beoogde architectuur • Home Assistant met Modbus integratie • Socat

    om seriële verbinding via TCP/IP te forwarden. • Type: rtuovertcp RS485 USB adapter Pi Home Assistant Pi Modbus forwarder (gebaseerd op socat) TCP/IP
  12. De realiteit (1/2) • Home Assistant Modbus integratie kan niet

    omgaan met afzonderlijke lees- en schrijfregisters voor één entiteit • Voorbeeld: setpoint voor zone 5: • Lezen uit input register 2684 • Schrijven naar holding register 2204 • Geprobeerd om holding register 2204 te lezen, maar dit geeft een ModBus fout:
  13. De realiteit (2/2) • Arbitration: om waardes aan te kunnen

    passen, moet je eerst een 1 plaatsen in register 2086. • Daarna kun je een waarde aanpassen. • Doe je dit niet, dan lijkt alles goed te gaan, maar dit is toch niet zo (silent failure). • Dit mechanisme met een arbitration register kan niet (gemakkelijk) in Home Assistant met ModBus integratie worden ingesteld.
  14. Kan wel, maar niet “out of the box” • https://github.com/EuleMitKeule/template-climate

    • Hiermee zou het kunnen… • Maar: • Blijft ingewikkeld • Vereist custom integration
  15. Nieuwe architectuur • MQTT naar Home Assistant • ModBus naar

    Zity controller RS485 USB adapter Home Assistant Zity MQTT Bridge MQTT berichten (incl. discovery)
  16. De Zity MQTT Bridge • https://github.com/ronbuist/zity-mqtt-bridge • MQTT discovery berichten

    zodat alle entiteiten automatisch worden aangemaakt in Home Assistant • Bridge regelt wat ModBus integratie van Home Assistant niet kan • Entiteiten op systeemniveau • Entiteiten per zone, waaronder een Climate entiteit voor elke zone
  17. MQTT berichten - systeemniveau • zity/system/mode cool • zity/system/power_mode on

    • zity/system/controller_mode on • zity/system/setpoint 19 • zity/system/fan_speed high • zity/system/flexifan_speed high • zity/system/return_temp 20.0 • zity/system/alarm_2032 0 • zity/system/alarm_2036 0 • zity/system/alarm_2037 0 • zity/system/alarm_2087 0
  18. MQTT berichten - per zone • zity/zone/1/manual_override OFF • zity/zone/1/mode

    cool • zity/zone/1/setpoint 22.0 • zity/zone/1/temp 20.6 • zity/zone/1/damper_status closed • zity/zone/1/power on • zity/zone/1/fan_mode high
  19. Wensen integratie in Home Assistant • Huidige temperatuur per zone

    kunnen zien • Ingestelde temperatuur per zone kunnen zien en aanpassen • Mode (koelen of verwarmen) kunnen zien en aanpassen • Status dampers kunnen zien • Ventilatiesnelheid kunnen zien en aanpassen per zone • Doeltemperatuur en retourtemperatuur kunnen zien • Algemene status / alarmen kunnen zien
  20. Automatisering - Verwarming • Staat airco in stand “verwarmen”, volg

    dan de schema’s van de verwarming. • Schema zit in Tado. • Doe hetzelfde schema als Tado, maar dan een uur eerder • Als handmatig temperatuur is ingesteld in Tado, volg deze • Doel: alvast ”voorverwarmen”, zodat de CV minder hoeft te doen • Balans tussen verwarmen met airco (elektrisch) en CV (gas)
  21. Tado schema in Home Assistant • Schema zit niet in

    Home Assistant • Python script gemaakt dat per zone ingestelde temperatuur via MQTT naar Home Assistant stuurt • 30, 60, 180, 300 minuten vanaf nu • Airco schakelt op basis van +60 min • Voorbeeld hiernaast: • Tado: CV nu op 18,5 • Airco: nu op 20 (setpoint +60m)
  22. Automatisering - koelen • Basis 22 graden voor leefruimtes (keuken,

    woonkamer) • Slaapkamers 18 graden • Als het buiten warm is, pas temperatuur naar boven aan • Houd rekening met Heat Index; combinatie van • Temperatuur • Luchtvochtigheid (te vochtig: extra koelen; te droog: minder koelen) • Handmatige instelling gedaan: automatisering mag niets doen • Houd rekening met aan/afwezigheid uitwonende kinderen
  23. Hoe is dit gebouwd? • Per zone een template sensor

    voor het setpoint • Per zone een automatisering die elke 15 minuten draait • Handmatige instelling? Geen actie • Rond waarde setpoint sensor af op 0.5 graden • Setpoint sensor wijkt af van instelling van climate entity? Pas aan
  24. De automatisering - triggers en voorwaarden • Triggers • Elke

    15 minuten (op minuut 2, 17, 32 en 47) • 10 seconden nadat de modus van het systeem verandert (van heat naar cool of andersom) • Voorwaarden • De (nieuwe) modus is heat of cool • Handmatige bediening voor de zone staat uit
  25. Acties (1/2) • Als de modus ’heat’ is en het

    berekende setpoint is < 16.5 graden • Dan: zet setpoint op 16.5 en zet de airco uit • NB: Airco kan niet lager worden ingesteld dan 16.5 graden
  26. Acties (2/2) • Rond het gewenste setpoint af op 0.5

    graden. • Controleer of het nieuwe setpoint minstens 0.5 graden verschilt met de huidige stand • Zo ja, pas dan setpoint van de airco aan (en zet de modus op ‘heat’ of ‘cool’).
  27. Conclusies na een tijdje gebruik • Hele reis om van

    documentatie tot volledig geautomatiseerde instelling van de airco te komen • Maar het is gelukt! • Ik had dit niet zo snel gekund zonder AI • De bridge werkt heel mooi en stabiel • Automatisering werkt ook mooi • Geen klachten van de andere gezinsleden J
  28. Toekomst • Af en toe wordt een schakelaar voor handmatige

    bediening aangezet, terwijl niemand aan de thermostaat heeft gezeten • Dit moet ik nog verder onderzoeken; oorzaak nog niet gevonden • Code van zowel bridge als template sensoren opschonen • Oude ideeen die ik heb losgelaten zitten er (deels) nog in • Deels Nederlands, deels Engels • Verschillende stijlen door elkaar