Skip to main content

OTGW - OpenTherm Gateway

OpenTherm is het protocol wat veel CV-ketels gebruiken om met de thermostaat te communiceren.
Een OpenTherm gateway zit tussen de CV-ketel en de thermostaat en kan o.a. het OpenTherm protocol monitoren.
Ook kan je je temperatuur instellen met behulp van deze gateway.

Er zijn diverse elektronica projecten te vinden op het internet hoe zo'n OpenTherm Gateway te bouwen.
Ook kan je een complete gateway aanschaffen die je deels nog zelf moet solderen.
Deze is bijvoorbeeld verkrijgbaar bij de Nodo Shop en is gebaseerd op een opensource project gemaakt door Schelte Bron.
Op de site van Schelte Bron vindt u alle informatie over deze gateway http://otgw.tclcode.com , daarnaast is er ook veel informatie te vinden op: Domotica OTGW forum.

otgw.png

Opentherm Monitor

Op de website van Schelte Bron vind je ook een stukje software die kan communiceren met de gateway, genaamd
de Opentherm Monitor (otmonitor). Deze tool kan je ook zonder GUI (headless) laten draaien in Linux.
Hiervoor kan je een configuratiebestand maken, bijvoorbeeld otmonitor.conf, die je dan als parameter meegeeft
op de commandline. Hier onder volgt een voorbeeld van het configuratiebestand:

web {
  enable true
  port 8080
  nopass true
}
connection {
  enable true
  type tcp
  host <IP-adres OpenTherm Gateway>
  port <poortnummer>
}
mqtt {
  enable true
  broker <IP-adres mqtt broker>
  port <poort mqtt>
  username <mqtt username>
  password <mqtt password>
  devicetype central_heating
  deviceid otmonitor
  format unformatted
}
server {
  enable true
  port 7686
  relay true
}
clock {
  year true
  date true
  auto true
}

In bovenstaand voorbeeld wordt er gebruik gemaakt van een TCP verbinding via W-Fi (Wemos D1 mini) of de vaste LAN aansluiting (USR-TCP232-T2 module). De connection optie "host" is dan het IP-adres van de OpenTherm Gateway met de bijbehorende poort (optie "port").

Maak je gebruik van de seriële aansluiting, dan dien je de "connection" optie als volgt in te stellen:

connection {
  device /dev/ttyUSB0
  type serial
  enable true
}

Er van uitgaande dat hier dus een USB naar serieel adapter gebruikt wordt (/dev/ttyUSB0).

Maak je geen gebruikt van MQTT, dan kan de sectie "mqtt" weggelaten worden.
Hetzelfde geldt voor de sectie "server". Dit heb je alleen nodig wannneer je otmonitor als relay server gebruikt.

Vervolgens kan je otmonitor als volgt starten op de commandline:

./otmonitor --daemon -f /opt/otmonitor/otmonitor.conf

In bovenstaand voorbeeld staat het configuratiebestand dus in de directory /opt/otmonitor.
De optie --daemon geeft aan dat otmonitor zonder gui moet starten op de achtergrond.
Meer commandline opties vind je met:

./otmonitor --help

Je kunt nu met je webbrowser gaan naar http://<IP-adres>:8080 om de web GUI te benaderen van otmonitor.
Je hebt hier dezelfde mogelijkheden als via de normale GUI.

Home Assistant - OpenTherm Gateway integratie

In Home Assistant bestaat er een integratie OpenTherm Gateway die je kunt gebruiken in combinatie met bovenstaande hardware van de Nodo Shop. Je hebt dan de beschikking over een een Climate Control waar je de temperatuur mee in kan stellen. Verder heb je heel veel entiteiten beschikbaar met de diverse waarden en instellingen van de CV-ketel.
Met behulp van automatiseringen kan je bijvoorbeeld ervoor zorgen dat de temperatuur lager gezet wordt wanneer er niemand thuis is. Wanneer er dan iemand thuis komt mag de thermostaat het weer overnemen en verder gaan met het klokprogramma.
Hier onder een voorbeeld van de automatiseringen die ik zelf gebruik:

CV naar 15 graden wanneer niemand thuis is:

alias: CV naar 15 graden wanneer niemand thuis is
description: ""
trigger:
  - platform: state
    entity_id:
      - device_tracker.samsungalex
    to: not_home
  - platform: state
    entity_id:
      - device_tracker.samsungali
    to: not_home
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: device_tracker.samsungalex
        state: not_home
      - condition: state
        entity_id: device_tracker.samsungali
        state: not_home
action:
  - service: climate.set_temperature
    data:
      temperature: 15
    target:
      device_id: 40a23f7ed1c456c6dbcba8ea8037b074
mode: parallel
max: 10

 CV verder met klok programma thermostaat:

alias: CV verder met klok programma thermostaat
description: ""
trigger:
  - platform: state
    entity_id:
      - device_tracker.samsungalex
    from: not_home
    to: home
  - platform: state
    entity_id:
      - device_tracker.samsungali
    from: not_home
    to: home
condition:
  - condition: or
    conditions:
      - condition: state
        entity_id: device_tracker.samsungalex
        state: not_home
      - condition: state
        entity_id: device_tracker.samsungali
        state: not_home
action:
  - service: climate.set_temperature
    target:
      device_id: 40a23f7ed1c456c6dbcba8ea8037b074
    data:
      temperature: 0
mode: parallel
max: 10