EPH Controls Integration

I have recently had a new gas boiler installed which is using a Ember wireless programmer to control 2 zones. There is an app which I can use to check and set the system. This is manufactured by EPH Controls. As you might imagine, I wanted to integrate this into Home Assistant and noticed an integration which I thought might provide this capability, EPH Controls. I did notice that it didn’t seem to be a popular integration but persevered. Following the installation instructions, I do get an instance of the integration in HA, but dont see any devices or entities. Any attempt to add any leads to HA saying:-

This integration cannot be added from the UI

You can add this integration by adding it to your ‘configuration.yaml’. See the documentation for more information.

Has anyone else seen this or have an idea if this can be used? Or is it a dead integration and should be avoided? If so is there any other integration that might operate with the system?

Any thoughts/guidance would be greatly appreciated.

My boiler engineer is suggesting the same solution to me with EPH Controls, and after some research I also found this HACS integration. Looks like it’s not being used much, so I’d also value any input if anyone is currently using it.

It seems like this is a nice straight forward system, and it is clearly almost there, I am sure someone who understands the way these systems integrate could work it out. I am surprised there someone from Ember hasn’t engaged with the HA community and used this to showcase their system.

I have written to the EPH Control developers and unfortunately they have confirmed that the integration was posted by an independent developer who reverse engineered version 1 of their API. They have since updated this to V2 and are keeping their API private which is why the integration no longer works.

Disappointing situation really.

Carlos

It’s disappointing that it doesn’t work. Carlos can you share details of who you messaged or where their details can be found. Maybe if a few more of use email with a request for them to look at a home assistant integration we might get some traction?

i had been using it and working well since pyephember2 (using Zaduvalo’s branch), but the integration has seemingly disappeared/stopped working. Not sure when this happened. was working in July.

edit: did some HAOS updates and a restart and is working as normal again.

Hi Redmanscoope
I was in touch with Patrick Moynihan at EPH Controls. He was helpful and may provide you more information. I hope you have better luck.

Hi Peskybee
Glad to hear that it is working for you. I wonder if it is that I have setup that is using the newer version of the controls?

I post this here as this seems the last discussion on EPH Controls.

I updated my installation and realised EPH Controls is now using pyephember2 and works directly without patching stuff (which is great). However, I lost in the process the boost function from the UI which I use. So I created a custom integration to add that back via the preset function. I also changed some other bits such as the ability to add the integration via the UI.

The code is here:
https://github.com/UtzR/ephember

Let me know if things need changes (I will try, I am not a python person so probably could all be done better).

1 Like

I spent a bit more time to investigate messages between my phone app and the eph cloud (It is possible with Android Studio to log messages exchanged between the app and the cloud).

I looked in particular at the mqtt part of the protocol. Here is a branch of pyephember2 in which I added mqtt support while keeping the main structure: pyephember2-mqtt.

There is a program called test.py and documentation in test.md. This program is a commandline tool to interact with the EPH cloud and it supports https and now also mqtt. (That program may help to figure out behaviour of not yet supported EPH devices as it can provide some logging in detail)

The next steps are for me to integrate this with the EPH controls integration. This way interaction between Home Assistant and the heating should be more fluent. So if you change anything in an app/assistant/physical device it should immediate reflect in Home Assistant as the updates are pushed via mqtt instead of waiting for an https poll.

I created a branch for the EPH integration here that now supports mqtt: ephember-mqtt.

It uses an http request at the start to learn zones and so on (like the original integration). It then uses an http request periodically (configuration option) to keep the connection alive and as fallback in case mqtt messages are missed (for whatever reason). When a state change is requested, these are sent via mqtt. Feedback on state change is provided via mqtt.

This way now if you perform an action (such as switch a zone on) you immediately get confirmation via mqtt and the UI updates immediately. This removes this behaviour where I turn the heating on and need to wait until the next http poll to update the UI.

the integration ephember-mqtt should go into the custom_components folder. In this folder you then also need to copy the folder pyephember2 from pyephember2-mqtt. This integration variant relies on the modified pyephember2 which cant be installed via the usual package management pip and so on.

Now mqtt requests are traveling via the EPH cloud to my EPH gateway which then talks to the EPH heating system which is a bit mad. More natural would be to directly send the mqtt messages between HA and the gateway within the local network. I have a look if that gateway exposes some interface like that (one would think).

I created an eph-schedule-card to display the schedule of heating zones.

The question is, do we need that? Once the EPH controls are accessible within HA one would use HA for any scheduling and not use that EPH feature I guess. That would be more something for completeness but not because it is necessary?

UTZ, I would love to try your HACS integration, but seem to have hit an issue. When I try to the repository, HA reports that ‘(!) <Integration UtzR/ephember> Repository structure for main is not compliant’ I am also not a hard core programmer, so may well be missing a trick. I will continue to see if I am dong something wrong, but thought i should share what I had experienced. I will certainly note here if I found out if I have done something wrong.

UTZ, I must be looking at the wrong folder as I understand now that to be valid to be imported as a HACS repository there should be a file hacs.json which seems to be missing and should also contain init.py and manifest.json

OK, I have not tried to install that via HACS myself (I copied the files into custom_components). I have a look if I can improve that to make installation of this thing easier.

1 Like

I fixed this so it can now be installed via HACS. When you do that you can choose two variations. A version 2.1 which is just using http calls. The version 3.1 adds mqtt capability to it. I suggest to choose the 3.1 variant. (Somehow HA believes 2.1 is better than 3.1 and wants to upgrade; ignore that; I have to learn how to avoid that bit).

Let me know what does not work and I gradually fix things so it works for more people than just myself.

Outstanding. I was abble to download in add the integration. You are right about this oddity of installing 3.1 for mqtt only to be offered an update to v2.1. but I declined the offer.
FYI my setup has a combi boiler/controller in the kitchen, ie,for hot water and two zone rads, no HW tank. We have 2 room thermostats for the heating, one for upstairs and one downstairs which the integration correctly picked up, but i note that they are shown as Hot Water Controllers, but seem to identify our thermostats. Next stage is to verify the mqtt connection and see if I am getting data though. will keep you posted. Again many thanks for providing this integration

Hmm. I feel like I am close, but not quite there.

sensor.eph.controls_ephember_mqtt_connection reports the state as connected, with the entity update.ephember reporting:-

auto_update: false
display_precision: 0
installed_version: mqtt-v3.1
in_progress: false
latest_version: v2.1
release_summary: null
release_url: https://github.com/UtzR/ephember/releases/v2.1
skipped_version: v2.1
title: null
update_percentage: null
entity_picture: https://brands.home-assistant.io/_/ephember/icon.png
friendly_name: Ephember update
supported_features: 23

although I dont see any eph/ember service in the MQTT integration. Should I see that or does that happen under the hood?
Also in the EPH Controls Ember integration, the two zone control entities show the controls as idle (heat/Cool) and no activity?
Shouldn’t they be reporting the current and target temperatures or the fact they have been set as hot water controllers indicate that they have been added as the wrong control objects?

The two devices should not be recognised as HotWater, they are room thermostats. The difference is that the hot water devices do not allow to change the setpoint (Which is also wrong, my hotwater has a setpoint that can be set). Another difference is regarding max and min temperature. A Hotwater you may set at 50, a room thermostat should never be that high.

So

  • I need to change the hot water controllers as also be able to have a setpoint to set (mine has, I am not aware of some that cannot have a setpoint)
  • I need to find out as what type of ID your devices report. I need to figure out how to enable some useful debugging that would help me

Could you have a look at Settings->Devices->EPH->EPH Controls Ember. There should be on top left, the name the system reports (for me it is EMBER-PS). Also, do you see there if mqtt shows as connected and if there is some sending and receiving

What you should see:
Under Settings->Devices->EPH->EPH Controls Ember you should see a number of devices. There should be one device for each of your zones (in your case upstairs and downstairs or maybe under a different name). You should also see a device called EPH Controls Ember. This device is for management (basically representing the box on the wall next to the boiler). This device will give some statistics on mqtt and http communication, so you can see if anything is going on. (Mqtt happens under the hood)