Skip to content

Instantly share code, notes, and snippets.

@gomfunkel
Last active October 29, 2024 19:01
Show Gist options
  • Save gomfunkel/b1a046d729757120907c to your computer and use it in GitHub Desktop.
Save gomfunkel/b1a046d729757120907c to your computer and use it in GitHub Desktop.
Elgato Eve HomeKit Services & Characteristics

Elgato Eve HomeKit Services & Characteristics

A work in progress collection of proprietary and as of yet undocumented HomeKit characteristics and their UUIDs used by Elgato Eve.

This list is not including all Eve accessories available and some services and characteristics still make no sense to me. If you have anything to contribute, please leave a comment. There is no guarantee that the information listed below is correct.

Elgato Eve Energy (Firmware Revision 1.3.1;466)

Service - Characteristic UUID R W Type Description
Accessory Information 0000003E-0000-1000-8000-0026BB765291 - - HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Manufacturer | 00000020-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Model | 00000021-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Serial Number | 00000030-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Identify | 00000014-0000-1000-8000-0026BB765291 | | X | Boolean | HomeKit Standard
  • Firmware Revision | 00000052-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard Outlet | 00000047-0000-1000-8000-0026BB765291 | - | - | | HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Power State | 00000025-0000-1000-8000-0026BB765291 | X | X | Boolean | HomeKit Standard
  • Outlet In Use | 00000026-0000-1000-8000-0026BB765291 | X | | Boolean | HomeKit Standard
  • Volt (V) | E863F10A-079E-48FF-8F27-9C2605A29F52 | X | | UInt16 | Volt = UInt16(value) / 10
  • Ampere (A) | E863F126-079E-48FF-8F27-9C2605A29F52 | X | | UInt16 | Ampere = UInt16(value) / 100
  • Watt (W) | E863F10D-079E-48FF-8F27-9C2605A29F52 | X | | UInt16 | Watt = UInt16(value) / 10. This is what is reported as "Consumption" in the Eve app.
  • Kilowatt-Hour (kWh) | E863F10C-079E-48FF-8F27-9C2605A29F52 | X | | UInt32 | kWh = UInt32(value) / 1000. This is what is reported as "Total Consumption" in the Eve app. ??? | E863F007-079E-48FF-8F27-9C2605A29F52 | - | - | | Probably a service for meta and/or historical information
  • Volt-Ampere (VA) | E863F110-079E-48FF-8F27-9C2605A29F52 | X | | UInt16 | Volt-Ampere = UInt16(value) / 10
  • kVAh | E863F127-079E-48FF-8F27-9C2605A29F52 | X | | UInt32 | kVAh = UInt32(value) / 1000
  • ??? | E863F11E-079E-48FF-8F27-9C2605A29F52 | X | X | | ??? - Also available on Eve Room & Weather
  • ??? | E863F112-079E-48FF-8F27-9C2605A29F52 | X | X | UInt32? | ??? - Always <00000000>? Also available on Eve Weather
  • ??? | E863F10E-079E-48FF-8F27-9C2605A29F52 | X | | UInt16? | ??? - Seems to be 0 when no consumers are attached to the outlet
  • ??? | E863F11C-079E-48FF-8F27-9C2605A29F52 | | X | | ??? - Also available on Eve Room
  • ??? | E863F121-079E-48FF-8F27-9C2605A29F52 | | X | | ??? - Also available on Eve Room
  • ??? | E863F116-079E-48FF-8F27-9C2605A29F52 | X | | | ??? - Also available on Eve Room & Weather
  • ??? | E863F117-079E-48FF-8F27-9C2605A29F52 | X | | | See below - Also available on Eve Room & Weather

Notes

The last two may be a cache of measurements that are polled by the Eve app when the accessory is in range.

E863F117-079E-48FF-8F27-9C2605A29F52

Array of logs with each entry having x bytes as determined by Byte 1. The following is what I think I learned about logs with 20 bytes. I have already seen 21 bytes but haven't taken a look at those yet:

  • Byte 1: Length (i.e. 14 for 20 Bytes)
  • Bytes 2 & 3: Counter
  • Bytes 4 & 5: ??? (always 0x00 or maybe an extension of the counter?)
  • Bytes 6 & 7: Seconds since ???
  • Bytes 8 & 9: ???
  • Byte 10: ??? (always 0x1f?)
  • Bytes 11 & 12: Watt (W)(see E863F10D-079E-48FF-8F27-9C2605A29F52)
  • Bytes 13 & 14: Volt-Ampere (VA) (see E863F110-079E-48FF-8F27-9C2605A29F52)
  • Bytes 15 & 16: Volt (V) (see E863F10A-079E-48FF-8F27-9C2605A29F52)
  • Bytes 17 & 18: Ampere (A) (see E863F126-079E-48FF-8F27-9C2605A29F52)
  • Bytes 19 & 20: ??? (might correspond to E863F10E-079E-48FF-8F27-9C2605A29F52)

Bytes 6 to 9 look like some kind of timestamp. The format is not clear but from the limited dataset available to me up to now it seems that they are offsets from an initial timestamp, most likely the original installation date. Bytes 8 and 9 could thus be something like "days since installation".

This characteristic seems to only return a maximum of 11 log entries and I have no clear idea on how to scroll back in time. Maybe that's what either E863F11C-079E-48FF-8F27-9C2605A29F52 or E863F121-079E-48FF-8F27-9C2605A29F52 is for: You write a value to one of the characteristics and get a different range from the logs. Just a wild guess.

Elgato Eve Room (Firmware Revision 1.3.1;466)

Service - Characteristic UUID R W Type Description
Accessory Information 0000003E-0000-1000-8000-0026BB765291 - - HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Manufacturer | 00000020-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Model | 00000021-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Serial Number | 00000030-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Identify | 00000014-0000-1000-8000-0026BB765291 | | X | Boolean | HomeKit Standard
  • Firmware Revision | 00000052-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard Battery | 00000096-0000-1000-8000-0026BB765291 | - | - | | HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Status Low Battery | 00000079-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard
  • Battery Level | 00000068-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard
  • Charging State | 0000008F-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard Temperature Sensor           | 0000008A-0000-1000-8000-0026BB765291 | - | - | | HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Current Temperature | 00000011-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard Humidity Sensor | 00000082-0000-1000-8000-0026BB765291 | - | - | | HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Current Relative Humidity | 00000010-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard Air Quality Sensor | 0000008D-0000-1000-8000-0026BB765291 | - | - | | HomeKit Standard
  • Name | 00000023-0000-1000-8000-0026BB765291 | X | | String(64) | HomeKit Standard
  • Air Quality | 00000095-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard (Level 0 - 5)
  • Air Quality in ppm | E863F10B-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | UInt16(value) in ppm. Rough classification: 0 - 700 Excellent, 700 - 1100 Good, 1100 - 1600 Acceptable, 1600 - 2000 Moderate, > 2000 Bad. Represented by simple levels with the characteristic above.
  • ??? | E863F132-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ??? ??? | E863F007-079E-48FF-8F27-9C2605A29F52 | - | - | | Probably a service for meta and/or historical information
  • ??? | E863F11C-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ??? - Also available on Eve Energy
  • ??? | E863F121-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ??? - Also available on Eve Energy
  • ??? | E863F11D-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ???
  • ??? | E863F11E-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ??? - Also available on Eve Energy
  • ??? | E863F116-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ??? - Also available on Eve Energy
  • ??? | E863F117-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ??? - Also available on Eve Energy
  • ??? | E863F131-079E-48FF-8F27-9C2605A29F52 | ? | ? | ? | ???
  • Status Fault | 00000077-0000-1000-8000-0026BB765291 | ? | ? | ? | HomeKit Standard

Elgato Eve Door

Service - Characteristic UUID R W Type Description
Number of times opened E863F129-079E-48FF-8F27-9C2605A29F52 ? ? UInt32 UInt32(value) / 2
Battery Level E863F11B-079E-48FF-8F27-9C2605A29F52 ? ? UInt16 UInt16(value) in %

Elgato Eve Weather

Service - Characteristic UUID R W Type Description
Battery Level E863F11B-079E-48FF-8F27-9C2605A29F52 ? ? UInt16 UInt16(value) in %
@SphtKr
Copy link

SphtKr commented Mar 13, 2016

@gomfunkel & @justme-1968: I am implementing this in homebridge-zway and also seem to get have to send the raw Watts value instead of 10*W . Question: there is a "unit" property in a HomeKit characteristic...can you see what Eve Energy is sending in that property? It could be that it [the app] reads the unit property to see what units to interpret as, and we just need the magic string value so that the Eve app interprets the value as "deciwatts" or something (I've already tried "deciwatts" though, and it still treated the value as Watts). Same question for both Watts and Kilowatt-hours characteristics. Thanks!

@SphtKr
Copy link

SphtKr commented Mar 13, 2016

Additionally, I tried sending a float value instead of UInt64 for kWh, and the Eve app handled it fine. That is, it interpreted this correctly:

        {
          "iid": 17,
          "type": "E863F10C-079E-48FF-8F27-9C2605A29F52",
          "perms": [
            "pr",
            "ev"
          ],
          "format": "float",
          "value": 7.514,
          "description": "Total Consumption",
          "unit": "kilowatthours",
          "maxValue": 1000000000,
          "minValue": 0,
          "minStep": 0.001
        }

And didn't crash or anything.

@justme-1968
Copy link

float would be great. did you also try float with the volt or watt characteristics ?

@SphtKr
Copy link

SphtKr commented Mar 18, 2016

Not yet. I'm guessing it'll work. The devices I'm bridging seem to only have integer Watt values. Does Volt show up in the Eve app anywhere?

@luc-ass
Copy link

luc-ass commented Mar 21, 2016

Thank you for your hard work! I just implemented your UUIDs to monitor my energy consumption via efergy (in my meter box). Efergy also provides access to historic data. Have you had any progress on that?

@Samfox2
Copy link

Samfox2 commented Mar 21, 2016

I added the same into my homebridge-domotiga plugin, history would be great.
Found an example (early stage, but shows a fake history in eve app: https://gist.github.com/0ff/668f4b7753c80ad7b60b )

@planetk
Copy link

planetk commented Aug 3, 2016

It seems that the Eve App sends the current timestamp (seconds since 1.1.2001) to E863F12 on a regular base.

e.g.: written value: cf1b521d
-> reverse 1d521bcf
-> hex2dec 491920335
Epoch Timestamp 1.1.2001 = 978307200;
978307200 + 491920335 = 1470227535
= Wed, 03 Aug 2016 12:32:15 GMT
= 3.8.2016, 14:32:15 GMT+2:00 DST (MEST)

@mrose17
Copy link

mrose17 commented Sep 27, 2016

could you take a look at https://github.com/homespun/hap-nodejs-community-types/blob/master/types.js#L251 and tell me if "it looks right" ? thanks!

@janoelker
Copy link

@JotWee you wrote that Eve Door Characteristic E863F129... has got a value for the number of opened times. But when I try to read this characteristic it doesn't return anything. I just can indicate for different characteristics and they get called, when the state is changed. For example: E863F118 if state goes to closed/in contact, E863F119 state goes to open/not in contact and E863F11A for every state change. What do I have to do to get some values from this devices?

Furthermore, at the Eve Energy what do I have to do to set it on and off?

@llemtt
Copy link

llemtt commented Dec 13, 2016

Great! Has someone already discovered Eve Thermo S & C ?

@gomfunkel
Copy link
Author

Just updated the gist with details for Eve Room.

@planetk Great find, thanks. Have you had time to play with that some more by now?

@gbagerry
Copy link

gbagerry commented Jan 30, 2017

Have you discovered any of the settings/attributes for the Elgato Eve Motion Sensor?
I have at least discovered the following two:
E863F120-079E-48FF-8F27-9C2605A29F52 - Sensitivity
readable/writeable
0 <= UInt8 <= 7

E863F12D-079E-48FF-8F27-9C2605A29F52 - Duration
readable/writeable
2 <= UInt16 <= 65000 // I assume seconds

E863F11A-079E-48FF-8F27-9C2605A29F52 - ??????
readable
uint32

@ebaauw
Copy link

ebaauw commented Mar 24, 2017

Maybe some-one here can help me: both my Eve Energy plugs report Outlet In Use as Yes all the time, even when nothing is plugged into them. I'd expect the In Use only to show Yes when something is actually drawing power. Am I missing something?

@ebaauw
Copy link

ebaauw commented Mar 24, 2017

I'm trying to use Sensitivity and Duration in my homebridge plugin, but Eve doesn't show them (other HomeKit apps do). I think it's because Eve exposes these in a different service type than Motion Sensor. At least that's what they do with the Eve Energy and the Eve Door. Can some-one please confirm this and post the UUID of this service type? Thanks!

@dkossman
Copy link

dkossman commented May 2, 2017

Apologies if this is either a dumb question thats been asked before or the wrong place to ask: I have homebridge running on a Raspberry Pi, and use it to monitor and control my swimming pool and aquarium via the Apple Home app on my iPhone. I've been using some http plugins to pull temperature and manage on/off devices like pumps and lights. However, i have some probes in the aquarium that measure pH (+/- floating point) and ORP levels (+/- millivolts) and am looking for a way to expose these measurements in the Home (or some other homekit) app. I don't seem to be able to do this with the Home app - can i do this with the Eve app? can anyone point me in the right direction? thanks!

@ebaauw
Copy link

ebaauw commented May 15, 2017

Home only supports standard HomeKit characteristics. As far as I know, there aren't any for pH nor for (milli)volt. You would have to define custom characteristics, which Eve tends to handle well. You might be able to use the Volt characteristic mentioned above if it does accept a float value.

@skrollme
Copy link

skrollme commented Jun 4, 2017

How did you captured the Eve's custom characteristics, @gomfunkel? Do you have more from the "Eve Weather" Modules? I'm especially interested in the history data for temperature, pressure, ...

@simont77
Copy link

E863F11E-079E-48FF-8F27-9C2605A29F52 may be something related with product type and firmware version. I set it in Homekit Accessory Simulator to the value shown in https://gist.github.com/0ff/668f4b7753c80ad7b60b and Eve app proposed me a firmware update for Eve Weather. Maybe the update is delivered on E863F112-079E-48FF-8F27-9C2605A29F52, unfortunately a full dump of the log is required before update, so I could not see anything on this characteristic.

@simont77
Copy link

I'm trying to get some progress on this topic, also aggregating infos from all the comments. You can find latest findings in my fork of the gist https://gist.github.com/simont77/3f4d4330fa55b83f8ca96388d9004e7d

@simont77
Copy link

simont77 commented Aug 11, 2017

All of you interested: see my gists https://gist.github.com/simont77/3f4d4330fa55b83f8ca96388d9004e7d and https://gist.github.com/simont77/919399dda338e37213b1ca231082c219 for a working history service emulating Eve Weather and Eve Energy (still to be refined, but working). In order to emulate other accessory, I would need the full list of services and characteristics exposed and a dump of characteristics E863F116 and E863F117 during a data transfer. For Motion and Door, it would be helpful also a dump of E863F11A which is related to time from last activation.

@simont77
Copy link

Now a proper repository with a module emulating the history service is available here https://github.com/simont77/fakegato-history. Every comment and contribution is well accepted.

@jDavidnet
Copy link

Has anyone been able to render out and energy history from a real eve power device, or get a humidity / temp graph from the devices?

@benoitc
Copy link

benoitc commented Jul 15, 2022

Has anyone been able to render out and energy history from a real eve power device, or get a humidity / temp graph from the devices?

i'm interrested to know too :)

@jDavidnet
Copy link

Can Home Assistant automate and query these commands?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment