INTRODUCTION
This how-to is all about using Ouman EH-800 heating controller with Home Assistant. Ouman EH-800 is versatile and very popular heating controller in Finland for heating systems using water as transfer medium, both for the radiators and floor heating.
Prerequisites:
- Ouman EH-800 controller, connected to ethernet (EH-800B won’t do, it has no Ethernet)
- IP address, user and password configured in EH-800
- basic knowledge on Home Assistant configuration files and tools
- your EH-800 is properly configured and working
My heating system uses low temp water, so it doesn’t even need thermostats, so thermostats are not included in config example, yet they work exactly same way by reading and writing registers usin curl and cut. Part of the information, mostly register functions, are based on the information on Finnish maalampofoorumi.fi (geothermal energy). I’m using split configuration files. Output for curl-commands are saved in three text files in HA \config directory and state is read using cut-command, which read proper bit location(s). You can save results in other directory than \config, but then, be prepared to mess with user rights (is it really worth it?).
First, make sure you can access your EH-800 management web-page. If you can’t, controlling it using HA doesn’t work! EH-800 uses simple login, which needs to be refreshed regularly, I use 5 min refresh interval using automation. This example has three functions, yet many more can be implemented using same principle:
- temperature dropping using switch on HA (home/away-function, can be useful in summer)
- show temp request for circulation water
- show actual temp for circulation water
My EH-800 has IP address 192.168.1.211 and web-server is configured to port 8090.
CODE
In config.yaml required shell commands are specified. Update-commands change setting (away/home), while request-commands read. Login results are piped to null, since there is no reason to save them, after you see them working. You can test all commands in terminal.
config.yaml
shell_command:
ouman_logon: 'curl "http://192.168.1.211:8090/login?uid=username;pwd=password;" > /dev/null'
ouman_ltp_kotona: 'curl "http://192.168.1.211:8090/update?S_135_85=0;" --output /config/oumanltp.txt'
ouman_ltp_poissa: 'curl "http://192.168.1.211:8090/update?S_135_85=1;" --output /config/oumanltp.txt'
ouman_ltp_kysely: 'curl "http://192.168.1.211:8090/request?S_230_85;" --output /config/oumanltp.txt'
ouman_menovesi_kierto: 'curl "http://192.168.1.211:8090/request?S_259_85" --output /config/oumankierto.txt'
ouman_menovesi_pyynto: 'curl "http://192.168.1.211:8090/request?S_275_85" --output /config/oumanpyynto.txt'
switch:
- platform: command_line
switches:
eh800ltp:
friendly_name: EH_lampotila_pudotus
command_on: >
curl "http://192.168.1.211:8090/update?S_135_85=1;" --output /config/oumanltp.txt
command_off: >
curl "http://192.168.1.211:8090/update?S_135_85=0;" --output /config/oumanltp.txt
command_state: >
cut -b 17 /config/oumanltp.txt
value_template: '{{ value == "1" }}'
sensor.yaml
- platform: command_line
name: Oumankierto
command: cut -b 18-21 /config/oumankierto.txt
unit_of_measurement: "°C"
- platform: command_line
name: Oumanpyynto
command: cut -b 18-21 /config/oumanpyynto.txt
unit_of_measurement: "°C"
binary_sensors.yaml
- platform: command_line
name: Oumanltptila
command: cut -b 17 /config/oumanltp.txt
payload_on: 1
payload_off: 0
automations.yaml
- id: '1657895187329'
alias: Ouman-toiminnot
description: Automaattinen kirjautuminen Ouman EH800, kiertoveden lämpötila ja lämpötilapyyntö,
5min välein
trigger:
- platform: time_pattern
minutes: /5
condition: []
action:
- service: shell_command.ouman_logon
data: {}
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- service: shell_command.ouman_menovesi_pyynto
data: {}
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- service: shell_command.ouman_menovesi_kierto
data: {}
mode: single
Automation is probably easiest to generate using HA Automation tool. Automation runs every 5 min, it calls first login, waits 5 seconds and calls other states to update, 5s wait between every call.
If you are having problem with files, create empty files in config editor and execute sudo -R 777 filename in terminal for every file beginning with ouman and ending to .txt
Other known registers (from maalampofoorumi.fi and this community) and settings:
- S_259_85: L1 Menoveden lämpötila / Water temp to heater
- S_227_85: Ulkolämpötila / Outdoor temp
- S_261_85: L1 Huonelämpötila / Room temp
- S_272_85: L1 Venttiilin asento / Valve position
- S_102_85: Huonelämpötilan hienosäätö / Room temp offset (thanks Vivillik!)
L1 is heating circuit number 1 and always present, you may have circuit L2 too. In other language versions than Finnish these circuits are V1 and V2 (thanks Belaial!)
Edit: added some register / setting information discovered afterwards.