HOW-TO: Control your Ouman EH-800 heating controller using Home Assistant

I understood this cut operation error. Register is right according to the Ouman webUI, it is showing 135_85 as an url request in dev tool network tab. I’m turning to think that my trial and error development approach has made something deeper thing to my Home Assistant database or entity structure. I will try to delete all 135_85 related sensors and switches out of my installation and then try to put the switch back again with your code.

1 Like

Ok, good luck with that, hope you figure it out! I will be quite AFK this weekend but will check in now and then to see if you have any questions.

Made a short video just to show how the switch works for me, “wrong” language :wink: but “Hemma” means home and “Borta” means away, “Inte H/B -styrn.” is no home / away control.

You can’t see the cursor… but at first I click the button i HA, then I change in Ouman GUI and after some time the switch reflects the change.

Screencast 2024-02-16 21:15:25

Thanks for clear instructions, testing this now.

But as a side note, missing /. time_pattern: minutes: “2” will trigger once per hour, “/2” would trigger every 2 minutes.

I just went with @mhumaloja git repo and all seems good, great, thanks!

Then I started to debug a little that switch and got similar experience as Markus. First I noticed, that for some reason curl “{{ states(‘input_text.ouman_eh800_ip’)}}update?S_134_85=5;” notation doesn’t work, get error in the logs. Looks like it never expands that input_text.ouman part. But it does work with the sensors. Weird.

But anyway, I noticed the same odd behaviour and it seemed that double clicking the switch always worked. With single click every other command went through, and the switch in HA sometimes reverted back even the command went through.

Then I played little with the value_template, and ended up with this, and now it seems to work: (True / false → On / Off)

    name: Ouman home-away switch
    unique_id: Ouman home-away switch
    command_on: curl "http://192.168.1.6/update?S_135_85=1;"                      
    command_off: curl "http://192.168.1.6/update?S_135_85=0;"                      
    scan_interval: 30                                                              
    command_state: curl "http://192.168.1.6/request?S_135_85" | cut -d "=" -f2 | cut -d ";" -f1                      
    value_template: >                                                                                                
      {% if value == "0" %}                                                                                          
        on                                                                                                    
      {% else %}                         
        off                
      {% endif %}
type or paste code here

And thanks for the git repo, cleared things a lot!

1 Like

Nice that it works! For me at least my example works just fine.

I have started to look some at Github, I have made my own repo just to learn how things work, I have not made it public yet but once I feel ready I will do that, if we decide to go for mine or @mhumaloja does not matter to me, I just wanted to learn a bit about Github at the same time before I maybe edit other peoples repo’s.

Good work @Belaial and @mhumaloja! This project definitely deserves some kind managed environment for maintenance and developmet, HA gets frequently changes that make pure forum impractical.

If someone has find out more complete register list, it might be worth publishing. Earlier lists are from maalampopumput.info etc, and it seems to be, that there might be partially incorrect information. Some members have been obviously able to find more registers, since they have extension units (EXU/EXP) and two circuits.

Here is my take on creating a Github repository for Ouman EH-800

Please have a look, let me know if you find anything horribly wrong… Translations under registers.txt might need some re-working… I added the registers I have personally found and reformatted the list to be in a more logical order than the original list, now sorted numerically instead of whatever the original list was :smile:

1 Like

Thanks @Jusii for trying to solve my problem. I copied your code to my command_line.yaml and switch is still behaving like before. Can you help me debug this thing? Is there some tool or HA developer feature that I can debug switches behaviour? I’m starting to think that my database is having some garbage in this switch data or something deeper than just the yaml code…

I checked logs. I seems that switch command is timed out. If I set command_timeout 30 or more logs show error with return code 56. I will try to figure out what it is…

@mhumaloja

Have you tried to change the Home / Away in web-GUI and then just request the value to see that it actually changes?

curl http://ip.ip.ip.ip:port/request?S_135_85 --output - | cut -d ';' -f 1 | cut -b 18-

The reply should be 0 / 1 / 2 depending on what mode you have selected in the web-GUI

As I understand it now your switch does not work at all, I mean it does not change the value and the state of the switch does not work?

Thanks for the help with my problem @Jusii and @Belaial , I have made some research to get some deeper understanding. So,

  1. I have Home assistant on top of HAOS install
  2. Using terminal all curl update? commands are failing with curl (56) recv failure connection reset by peer error message. BUT all request? commands are going through with success. Behaviour is same as in the UI.
  3. Terminal command ipconfig tells that my eth0 ip is 127.30.33.1 but my Home Assistant static ip is 192.168.86.99 Browser in local network can connect HA (192.168.86.99) and Ouman (192.168.86.10).
  4. I’m confused why updates are not working but requests are… trying to explore this (56) recv failure connection reset by peer thing now…

NP, happy to help.

Regarding “127.30.33.1” and so on, that sounds weird, are you running this in some virtual environment that adds a layer of NAT on your machine running HA?

Edit

Sorry for slow reply, my email apparently decided to classify HA-community notifications as spam…

I have pretty much out of the box HAOS install in normal NUC pc. No containers, or any other tricks as far as I know. Installed it from bootable usb-drive back then.

If you have access to terminal can you check if your installation is having different network config?

docker0: 172.30.232.1
end0: 192.168.0.65
hassio: 172.30.32.1
wlan0: not used

Then there is a bunch of vet*****: interfaces that ipv6 link-local addresses.

Solved! I feel stupid as I tell you guys that the bug was in my secrets.yaml where I had typo in my ouman username. Apparently requests can be made without login but updates won’t work. So I fixed login credentials and now everything is working.

Now as I have updates working, I will add finetune slider to my Github repo as soon as I have time to take it there. I plan to use it for temporary heat up for example after laundry.

Ah, ok! Glad you solved it!

Interesting that requests work without login :smile: but I guess security was NOT their biggest priority when they made the EH-800 :slight_smile:

1 Like

Yeah! Better keep this in local network behind nat. :slight_smile:
I made fine tune slider to change room temperature request. It is explained in my repo GitHub - mhumaloja/ouman_eh-800_HA: Ouman EH-800 integration to Home Assistant It includes input_number & shell command in configuration.yaml and automation to feed the input number value to the shell command in automations.yaml.

1 Like

Next time I sit down in front of Github at home I will make sure to link to your repo from mine, did not think of that first time around.

You might wanna take a look at my registers file, I cleaned it up quite a lot and also added the newly discovered registers from this thread.

Thanks for the tip, I copied your registers file, it is nice and clean.

BTW, here’s how I use this in my HA right now:
Kuivausjakso button runs automation which raises temp 4c and starts fan and air out take for four hours. Stats line on the bottom is water out temp last 12 hours.

1 Like

Your graph looks nice a clean!

I installed the OUMAN SÄÄTÖLAITE VARUSTE OUMAN TMR/SP HUONEANTURI | Lämmityssäätölaitteet | Onninen so that Ouman EH-800 knows the temperature inside, not sure if that automatically somehow then adjusts the curve if it’s to cold / hot inside.

Also it provides the possibility for the girlfriend to just move the physical “slider” on the wall for more heat since she is not that into Home Assistant, at least not as much as me :slight_smile:

I might have a use for your solution as well tho, since I still have a wood boiler as backup in the basement, whenever I fire that up the curve is usually not correct since I run on ground heating 99% of the time which is not as hot as when I burn wood, I could then have HA adjust the curve automatically if the wood boiler is getting hot or something :+1: , need to sit down with a beer or two in the boiler room and thing about that :smile: