Eve Aqua Water valve

Hello @h4nc,
you raise a good point about tracking the Eve Aqua state in Home Assistant.
I have two strategies for that.

Strategy 1
Control the Eve Aqua from Home Assistant only. That means the state in Homekit is a “slave” of Home Assistant
Use only the state in Home Assistant.

Strategy 2
Here is how I prevent loops from happening.
You will need to write a slightly more complex automation in Homekit

  • automation: if switch eve-ha turns on call scene sc-eve-on
    will be rewritten to:
  • if switch eve-ha turns on then if “device Eve Aqua” is in use then (nothing) else call scene
    sc-eve-on

The additional if statement will break the loop. If you switch on Eve Aqua in Homekit then eve-ha will turn on in Home Assistant. This will trigger the iOS automation. The iOS automation will only switch on Eve Aqua if it is not already “on”. If Eve Aqua is already “on” the automation ends and the loop is broken.
See the attached screen shot

Note 1:
I am forced to use ‘if device “eve aqua” is in use’ because iOS Shortcuts app does not give me the option to code ‘if device xxx is not in use’

Note 2:
the comparison “in use” could also be “Active”.
I have to test this automation, but I hope you will get the idea

Note 3:
It seems the Homekit automations trigger on state changes (and not the state of a Homekit device). To be safe I will add the “additional if statement” in the iOS shortcut automation anyway.

Note 4:
As a final “fail safe” (in case Home Assistant dies, automations stop half way) I have limited the “open time” of Eve Aqua to 10 seconds. This is an option in the Eve app. I am using Eve Aqua in my “Pigeon Reponse System” to scare away pigeons in my garden so 10 seconds is more than enough (that is a topic for an entirely different thread).

1 Like

Thanks for your detailed answer. So you make those automations in the Shortcuts app? Good to know because I thought you added those directly in HomeKit.

Could you clarify what you mean? Isn’t it normal that triggers work with state changes? A workaround could be to use a time trigger (every x minutes) and a condition for the state.

Sorry, I was probably not clear in my previous post.

1
The scenes are made in the iOS app Home / tab Home (bottom left) / + sign upper right / Add Scene

2
about Note 3: check for state changes
In the Shortcuts app the if statement checks the current state of the switch.

And I just discovered I made “Rules” in the Eve app which monitor a switch set by Home Assistant. So that’s Homekit!

In Homekit / Eve app I can check on state changes
Below the screenshot with the rule which turns on Eve when the HA switch is flipped

Sorry, I don’t understand what you mean here with “check for state changes” or is it just meant as heading for the things below.

So it’s a condition and not a trigger, right?

So you made the scenes in the Home App, and the automations in the Eve app? Are the automation made in the Eve App shown in Home too, so is it just a “mirror”. So in the end you have three apps involved: Home, Shortcuts and Eve.

Yes, it’s just a header

1 Like

Correct. The if statement is a condition.

This is the what I did

  1. install Eve App
  2. with Eve App add the device Eve Aqua
  3. with Eve App /" tab Automation" / “SCENES” create the scenes on and off
    I created scenes because in the Rules in step 4 you cannot change the state of a device directly, but you can invoke a scene.
    I tried to do create the scenes in Home but I could not select the accesory Eve Aqua (weird)
  4. with Eve App / “tab Automation” / “RULES” create the rules (triggers) which turn on/off Eve Aqua when the Home Assistant switch is turned on/off

I have not implemented yet to update the Home Assistant switch when you use Homekit to turn on/off Eve Aqua. For this I am planning to use iOS Shortcuts.

1 Like

Would it be possible to control the valve from terminal using pi/nuc ble interface if someone wrote a script/integration? Or does the device have some kind of certificate that only makes it work with apple? I don´t know have homekit certified products work, to protect the apple ecosystem?

Just wanted to post an update about Eve Extend. My first Eve Extend had been really patchy with my home WiFi (Unifi). I recently resolved to reset it and try again. Unfortunately the usb socket came off the PCB. Not great.

2nd Eve Extend just arrived. I set it up exactly as before. Used the Eve app on iOS to pair each Eve device i have (the bridge itself + Eve Thermo, Eve Motion, Eve Smoke and Eve Energy) with my phone (not HA). Then used the Eve app to “move” each of those devices to the Extend. (So phone then routes all requests to the devices using the Eve Extend as a bridge). Then i used the Eve app to unpair my phone from the Eve Extend. Made sure to patch all the firmware levels (v 1.1 of Eve Extend claims to improve Wifi connectivity). Finally I paired with HA. It worked first time. Event notifications not only work but the reaction from the Eve Motion are nearly as fast as my Hue motion sensors (normally within a second).

Given my chronic lack of time for HA at the moment this remains your best shot at “good” integration of Eve accessories into HA, but I could do with more field reports from people using this sort of setup.

4 Likes

Awesome! I’ll give it a try immediately

worked nicely with my Eve Aqua, sometimes takes 5 seconds but it also shows battery state in HA. nice!

Hi @Jc2k. I just wanted to share my feedback about your method of connecting EVE devices to HA.

I followed your instructions to pair 2 Eve Degree devices (temperature+humidity sensors) via an Eve Extend. As you mentioned on another thread, setting up the Extend was a royal pain but eventually I got there. I now have the entities on HA and the values “appear” to be ok (the pressure entities are missing but that’s a minor issue).

Problem is: The updates. It can take hours/days to update a single value. And when it does it only updates some of the values. ie, it does not update everything at once (temp, humidity, battery).

At first I thought it was a range issue so I reset everything and confirmed that the Extend can update all the devices on a matter of seconds using the official app.

I tried attaching a debugger and increasing the log level. I can confirm that the Homekit controller update process is running every minute and values are being returned (unfortunately I haven’t been able to debug inside aiohomekit so I don’t know what’s happening after homekit_controller.connection.get_characteristics).

I don’t know what might be wrong. Maybe the Eve Extend isn’t requesting updated values from the sensors and keeps reporting back the last values known. Are there any debug categories I should enable besides theses ones?

logger:
  default: info
  logs:
    homeassistant.components.homekit_controller: debug
    homeassistant.components.homekit: debug

Btw, you also mentioned on another thread that to unpair the Eve Extend from HA we should use homekit_python. But in order to call most of the commands a PAIRINGDATAFILE is required. How can I extract this file from my HA system? It would be interesting to call the Eve Extend directly. At least I would like to experiment with it and call get_accessories and get_characteristic :slight_smile:

Thanks for the good work !

Interesting. I don’t have an Eve Degree device, though I have vague feelings a friend has an Eve Degree that is slow to update (even in iOS).

Not sure what we can do here - your debugging is flawless and there is nothing else I can think to suggest. The big difference between iOS and HA is that a real iOS device wouldn’t poll once a minute to conserve power, it would rely on events a lot lot more. So it doesn’t surprise me that the Extend is returning cached values. And at least with my Eve devices (like the Eve Energy) events are delivered and processed within a second.

The format of PAIRINGDATAFILE is broadly compatible with whats in .storage/core.config_entires… you should have something like this:

{
    "version": 1,
    "key": "core.config_entries",
    "data": {
        "entries": [
            {
                "entry_id": "sdfsdfsd",
                "version": 1,
                "domain": "homekit_controller",
                "title": "Philips hue",
                "data": {
                    "AccessoryIP": "192.168.1.1",
                    "AccessoryLTPK": "asdasdasdasd",
                    "AccessoryPairingID": "AA:BB:CC:DD:EE:FF",
                    "AccessoryPort": 8080,
                    "Connection": "IP",
                    "iOSDeviceLTPK": "asdasdasd",
                    "iOSDeviceLTSK": "asdasdasd",
                    "iOSPairingId": "1-2-3-4-5"
                },
                "options": {},
                "system_options": {
                    "disable_new_entities": false
                },
                "source": "user",
                "connection_class": "local_poll",
                "unique_id": "aa:bb:cc:dd:ee:ff"
            },

Ths stuff inside data is as it should appear in a PAIRINGDATAFILE. If memory serves its something like:

{
  "myeve": {
                    "AccessoryIP": "192.168.1.1",
                    "AccessoryLTPK": "asdasdasdasd",
                    "AccessoryPairingID": "AA:BB:CC:DD:EE:FF",
                    "AccessoryPort": 8080,
                    "Connection": "IP",
                    "iOSDeviceLTPK": "asdasdasd",
                    "iOSDeviceLTSK": "asdasdasd",
                    "iOSPairingId": "1-2-3-4-5"
  }
}

Hope that helps.

Hey @Jc2k !

I have recently noticed that both my Eve Degree sensors (temp+humidity+pressure) are now reporting every minute. When I first added the sensors (via eve Extend) they only updated when the temperature changed a couple degrees or when I pressed the button on the sensor.

What changed? the Eve extend has the same firmware. Does home assistant now works better with HomeKit devices?

This is a good thing but perhaps it would be nice to control the update frequency to save the devices battery. Is there a way to do so?

Thanks!

Hi - we have always polled once a minute. There haven’t been any changes on our end that could cause this. Only changes recently have been to add mappings (like for air pressure in the Eve Degree, and these didn’t touch the protocol/polling in away) and very specific compatibility patches around pairing.

In terms of customising polling rate, in theory you can do this:

Preview doesn’t show it, but the link is to a section called " Disable polling updates on any integration". However this will disable polling on the Extend, so ALL your devices on that hub will get slower polling. The caveat here is that I wasn’t involved in this work and I haven’t specifically tested it for homekit_controller.

The Eve Degree does support events for its Temperature and Humidity characteristics you might still get lots of data in your graph.

1 Like

Thanks for the tip!

I just checked it (weirdly the integration was in a zombie state but I managed to fix it by redoing all the Eve setup) but unfortunately this particular integration (homekit_controller) doesn’t support the “enable polling” option:

image

Is there some way to configure it manually?

Sorry to reactivate an old topic but I am quite interested to know where you all stand now ?

I paired the Eve Aqua to Home Assistant HomeKit integration. I use esphome Bluetooth proxy which I have near the Eve Aqua.

I see the battery, switch, some stuff about threads but I cannot find the default time the valve should stay on.

If I unpair and pair with Apple I can see it:

3 Likes

Is there any new info? I also paired Eve Aqua with HomeAssistant over the Thread and lost the ability to configure the default time for the sprinkler. Is there anyone from HomeKit Controller to check this? Maybe @bdraco

2 Likes

Hi there! Sorry to bump and old thread, but I just wanted to confirm if it’s stil possible to integrate an Eve Aqua into Home Assistant? And what entities are exposed?

I don’t use Homekit or any iOS devices… but assume I would need to pair it to HA via the HACs Homekit integration? Thanks!

I don’t have the device anymore and connected it to an Apple TV. it should work though with HomeKit Controller - Home Assistant