Skip to content

Instantly share code, notes, and snippets.

@simont77
Forked from gomfunkel/elgato-eve.md
Last active January 27, 2024 13:31
Show Gist options
  • Star 36 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save simont77/3f4d4330fa55b83f8ca96388d9004e7d to your computer and use it in GitHub Desktop.
Save simont77/3f4d4330fa55b83f8ca96388d9004e7d 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.

Based on the work by gomfunkel and 0ff. Characteristics and data dump for Door, Motion and Thermo thanks to @NebzHB.

More infos not yet incorporated in the comment section.

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.

Characteristics for logging

These characteristics are under custom service E863F007-079E-48FF-8F27-9C2605A29F52 and are used by Elgato accessories to exchange logs with Eve.app. Note that the accessory may have to include some of the custom characteristics listed below in order for the history to be shown in Eve.app.

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

This write-only characteristic seem to control data flux from accessory to Eve.app. A typical value when reading from a fake Eve Weather accessory is 01140100 000000. Tentative decoding:

  • byte 1: ??
  • byte 2: ??
  • byte 3-6: Requested memory entry, based on the last entry that Eve.app downloaded. If set to 0000, asks the accessory the start restart from the beginning of the memory
  • byte 7-8: ??

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

In this write-only characteristics a time stamp is written by Eve.app every second if the accessory is selected in the app. Format from https://gist.github.com/gomfunkel/b1a046d729757120907c#gistcomment-1841206:

the current timestamp is in seconds since 1.1.2001 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)

It is probably used to set time/date of the accessory.

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

This read-only characteristics is used to send the actual log entry to Eve.app It is an array of logs with each entry having x bytes as determined by Byte 1. The first portion up to byte 10 included is common, the last portion contain the data specific for each accessory.

  • Byte 1: Length (i.e. 14 for 20 Bytes)
  • Bytes 2-5: entry counter
  • Bytes 6-9: Seconds since reference time set with type 0x81 entry. In order to account for multiple iOS devices, the actual reference time and offset are apparently always reported also in E863F116
  • Byte 10: Entry type
    • 0x81 Entry to set the reference timestamp, to be written on bytes 11-14. A negative offset can be written on bytes 6-9, and it's probably neeeded when the clock is updated.
    • 0x07 Entry for Eve Weather log.
    • 0x1f Entry for Eve Energy log (20 bytes in total)
    • 0x1e Entry for Eve Energy log (18 bytes in total - not working)
    • 0x0f Entry for Eve Room log.
    • 0x02 Entry for Eve Motion log.
    • 0x01 Entry for Eve Door log.
    • 0x1f Entry for Eve Thermo log.

Accessory specific portion:

Eve Energy (20 bytes in total)

  • Bytes 11 & 12: ??
  • Bytes 13 & 14: ??
  • Bytes 15 & 16: Power multiplied by 10. Eve.app will assume that the same power is drawn for all the sampling time (10 minutes), so it will show a point with an energy consumption equal to this value divided by 60. Example. Your appliance is consuming 1000W, which means a total energy of 1kWh if run for 1 hour. The value reported is 1000 x 10. The value shown is 1000 x 10 / 60 = 166Wh, which is correct because this sample covers 10min, i.e. 1/6 of an hour. At the end of the hour, Eve.app will show 6 samples at 166Wh, totalizing 1kWh.
  • Bytes 17 & 18: ??
  • Bytes 19 & 20: ??

Eve Energy (18 bytes in total) - At present not working!

  • Bytes 11 & 12: Power multiplied by 10. Eve.app will assume that the same power is drawn for all the sampling time (10 minutes), so it will show a point with an energy consumption equal to this value divided by 60. Example. Your appliance is consuming 1000W, which means a total energy of 1kWh if run for 1 hour. The value reported is 1000 x 10. The value shown is 1000 x 10 / 60 = 166Wh, which is correct because this sample covers 10min, i.e. 1/6 of an hour. At the end of the hour, Eve.app will show 6 samples at 166Wh, totalizing 1kWh.
  • Bytes 13 & 14: V * 10
  • Bytes 15 & 16: A * 10 ??
  • Bytes 17 & 18: ??

Eve Weather (16 bytes in total)

  • Temperature * 100 on bytes 11-12
  • humidity * 100 on bytes 13-14
  • pressure * 10 on bytes 15-16

Eve Room (19 bytes in total)

  • Temperature * 100 in bytes 11-12
  • Humidity * 100 on bytes 13-14
  • PPM on bytes 15-16
  • ??? on bytes 17-19.

Eve Door and Eve motion (11 bytes in total)

  • Status 0/1 on byte 11

Eve Thermo (17 bytes in total)

  • Current Temperature x 100 on bytes 11-12
  • Set Temperature x 100 on bytes 13-14
  • Valve position % on byte 15
  • ?? on bytes 16-17

E863F116-079E-48FF-8F27-9C2605A29F52 (tentative)

This read-only characteristic is used by the accessory to signal how many entries are in the log (and other infos). Comparing this characteristics over different type of accessory, it was possible to obtain the following partial decoding. Data is composed by a fixed size portion (12 bytes) with info about time, 1 byte indicating the length of the following variable length portion with accessory "signature" and finally a fixed length portion with info about memory status.

  • 4 bytes: Actual time, in seconds from last time update
  • 4 bytes: negative offset of reference time
  • 4 bytes: reference time/last Accessory time update (taken from E863F117-079E-48FF-8F27-9C2605A29F52)
  • 1 byte: number of 16 bits word of the following "signature" portion
  • 2-12 bytes: variable length "signature"
  • 2 bytes: last physical memory position occupied (used by Eve.app to understand how many transfers are needed). If set to an address lower than the last successfully uploaded entry, forces Eve.app to start from the beginning of the memory, asking address 00 in E863F11C. Accessory answers with entry 01. Once the memory is fully written and memory overwriting is necessary this field remains equal to history size.
  • 2 bytes: history size
  • 4 bytes: once memory rolling occurred it indicates the address of the oldest entry present in memory (if memory rolling did not occur yet, these bytes are at 0)
  • 4 bytes:??
  • 2 bytes:?? always 01ff or 0101

The "signature" seems to be a fixed portion for each accessory type (i.e. it does not change in time). If a wrong signature is given data are not recognized, however it seems that not all bytes are really needed to identify the accessory (in fact, it is possible to use the Room signature to upload data from Weather, Thermo and Energy by changing only one or two bytes). Signatures as follows:

  • Door: 1 16bits word, "0601", example of full data "44340000 6e270000 b102f51f 01 0601 b600 0010 00000000 01000000 0100"
  • Motion: 2 16bits word, "1301 1c01", example of full data "a6000000 00000000 00000000 02 1301 1c01 0100 ed0f 00000000 00000000 01ff"
  • Weather (to be checked): 3 16bits word, "0102 0202 0302", example of full data "01010000 FF000000 3C0F0000 03 0102 0202 0302 1D00 F50F 00000000 00000000 01FF"
  • Room: 4 16bits word, "0102 0202 0402 0f03", example of full data "5f837400 d8bd7300 de12a91f 04 0102 0202 0402 0f03 ed0f ed0f 10220000 02654f00 01ff"
  • Thermo: 5 16bits word, "0102 1102 1001 1201 1d01", example of full data "e1f50500 41dd0500 09c5ef1f 05 0102 1102 1001 1201 1d01 9202 de0f 00000000 00000000 01ff"
  • Energy (from dump but currently not working): 5 16bits word, "0502 0b02 0c02 0d02 0702", example of full data "a209d301 4b09d301 71f0381f 05 0502 0b02 0c02 0d02 0702 ed0f ed0f 0fbb0000 e53aae01 01ff"
  • Energy (working, tweeking from Room): 4 16bits word, "0102 0202 0702 0f03", example of full data "58020000 00000000 cd8f0220 04 0102 0202 0702 0f03 0300 c00f 00000000 00000000 0101"

TENTATIVE: protocol for fake accessory sending history to Eve.app

1 - Accessory should advertise the address of the last available log entry on E863F116, along with the current time. If no memory rolling yet occurred this address is reported in bytes 22-23. If memory rolling occurred, bytes 22-23 are fixed to history size, and bytes 26-29 reports the oldest entry in the history. The address of the most recent entry is thus given adding up bytes 22-23 with bytes 26-29. The address starts from zero when the accessory is reset and it is then incremented for each new entry (since it seems that 4 bytes are used, there are plenty of binary codes for the entire life of the accessory, so no address rolling is required)

2 - Accessory monitors E863F11C for data request

3 - When a data request occurs, accessory starts sending out log entries on E863F117, beginning with the address requested and stopping when the last log is reached. Multiple log entries can be sent with a single update of the characteristics (up to 11 entries seen on Eve Room). The first entry should be of type 81 (reference time). Type 81 entries are sometimes sent along with data entries (maybe when the internal clock is adjusted), but it seems that the actual reference time (given by the time stamp in bytes 9-12 of E863F116, minus the negative offset in 5-8 of E863F116) set upon accessory reset is never changed, probably to ensure data consinstency (in fact, if from time to time reference time is changed, should an iOS device miss the corresponding type 81 entry, all following data will be misplaced in time). What is seen on real Elgato accessories it that when a new type 81 entry is sent, the time stamp stamp is incremented (probably to the actual time), but the negative offset is incremented as well by more or less the same quantiy (a part small differences probably due to clock adjustment). Reason unknown.

4 - This should be useless since homebridge has its own clock: monitor E863F121 for clock updates. Eve.app will ignore any entry "in the future".

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 E863F10A-079E-48FF-8F27-9C2605A29F52 X float Volt = (value)
Ampere E863F126-079E-48FF-8F27-9C2605A29F52 X float Ampere = (value)
Watt E863F10D-079E-48FF-8F27-9C2605A29F52 X float Watt = (value). This is what is reported as "Consumption" in the Eve app.
Kilowatt-hour E863F10C-079E-48FF-8F27-9C2605A29F52 X float kWh = (value). This is what is reported as "Total Consumption" in the Eve app.
??? E863F007-079E-48FF-8F27-9C2605A29F52 - - Custom service for meta and/or historical information. Characteristics for logging: E863F11C, E863F121, E863F116, E863F117
Volt-Ampere E863F110-079E-48FF-8F27-9C2605A29F52 X UInt16 Volt-Ampere = UInt16(value)
kVAh E863F127-079E-48FF-8F27-9C2605A29F52 X UInt32 kVAh = UInt32(value)
??? E863F11E-079E-48FF-8F27-9C2605A29F52 X X ??? - Also available on Eve Room & Weather. Maybe model and version. If set to 01be00be 00f44fb8 0a000000 triggers an "Eve Weather firmware update advice" in Eve app.
Time from totalizer reset E863F112-079E-48FF-8F27-9C2605A29F52 X X UInt32 Set to seconds from 1.1.2001 upon Reset of total consumption in Eve.app. Also in Door
??? 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. Handshaking for log transfer.
??? E863F121-079E-48FF-8F27-9C2605A29F52 X ??? - Also available on Eve Room - A time stamp is written here periodically by Eve.app. Format here https://gist.github.com/gomfunkel/b1a046d729757120907c#gistcomment-1841206
??? E863F116-079E-48FF-8F27-9C2605A29F52 X ??? - Also available on Eve Room & Weather. Info from the accessory needed to trigger the log transfer. Yet to be understood.
??? E863F117-079E-48FF-8F27-9C2605A29F52 X See below - Also available on Eve Room & Weather. Entries for the log from the accessory to Eve.app

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 ? ? float 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 ? ? float 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 %
Last activation E863F11A-079E-48FF-8F27-9C2605A29F52 x UInt32? Time of last activation. ?Seconds from HW reset?
Total seconds open E863F118-079E-48FF-8F27-9C2605A29F52 ? ? ? From last HW reset?
Total seconds close E863F119-079E-48FF-8F27-9C2605A29F52 ? ? ? From last HW reset?
Time from totalizer reset E863F112-079E-48FF-8F27-9C2605A29F52 X X UInt32 Set to seconds from 1.1.2001 upon Reset of total openings in Eve.app. Also in Energy

Elgato Eve Weather

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

Elgato Eve Motion Sensor

Service - Characteristic UUID R W Type Description
Sensitivity E863F120-079E-48FF-8F27-9C2605A29F52 x x UInt8 0 = high, 4 = medium, 7 = low. Set in Eve.app
Duration E863F12D-079E-48FF-8F27-9C2605A29F52 x x UInt16 Persistence of motion indication in seconds. Set in Eve.app
Last activation E863F11A-079E-48FF-8F27-9C2605A29F52 x UInt32? Time of last activation. ?Seconds from HW reset?

Elgato Eve Degree

Service - Characteristic UUID R W Type Description
Accessory Information 0000003E-0000-1000-8000-0026BB765291
Name 00000023-0000-1000-8000-0026BB765291 x
Manufacturer 00000020-0000-1000-8000-0026BB765291 x
Model 00000021-0000-1000-8000-0026BB765291 x
Serial Number 00000030-0000-1000-8000-0026BB765291 x
Firmware Revision 00000052-0000-1000-8000-0026BB765291 x
??? 00000053-0000-1000-8000-0026BB765291 x
Identify 00000014-0000-1000-8000-0026BB765291 x
Battery 00000096-0000-1000-8000-0026BB765291
Name 00000023-0000-1000-8000-0026BB765291 x
Battery Level 00000068-0000-1000-8000-0026BB765291 x
Charging State 0000008F-0000-1000-8000-0026BB765291 x
Status Low Battery 00000079-0000-1000-8000-0026BB765291 x
Temperature Sensor 0000008A-0000-1000-8000-0026BB765291
Name 00000023-0000-1000-8000-0026BB765291 x
Current Temperature 00000011-0000-1000-8000-0026BB765291 x
Temperature Units 00000036-0000-1000-8000-0026BB765291 x
Humidity Sensor 00000082-0000-1000-8000-0026BB765291
Name 00000023-0000-1000-8000-0026BB765291 x
Current Relative Humidity 00000010-0000-1000-8000-0026BB76529 x
??? E863F00A-079E-48FF-8F27-9C2605A29F52
Name 00000023-0000-1000-8000-0026BB765291 x
??? E863F10F-079E-48FF-8F27-9C2605A29F52 x
??? E863F130-079E-48FF-8F27-9C2605A29F52 x
Logging 863F007-079E-48FF-8F27-9C2605A29F52
Name 00000023-0000-1000-8000-0026BB765291 x
Status Fault 00000077-0000-1000-8000-0026BB765291 x
??? E863F11E-079E-48FF-8F27-9C2605A29F52 x
??? E863F112-079E-48FF-8F27-9C2605A29F52 x
??? E863F116-079E-48FF-8F27-9C2605A29F52 x
??? E863F117-079E-48FF-8F27-9C2605A29F52 x
??? E863F131-079E-48FF-8F27-9C2605A29F52 x
??? E863F11C-079E-48FF-8F27-9C2605A29F52 x
??? E863F121-079E-48FF-8F27-9C2605A29F52 x
??? E863F11D-079E-48FF-8F27-9C2605A29F52 x

Elgato Eve Thermo

Service - Characteristic UUID R W Type Description
Valve position E863F12E-079E-48FF-8F27-9C2605A29F52 x UInt8 Valve position in %
Program command E863F12C-079E-48FF-8F27-9C2605A29F52 x Data Command from Eve to Thermo on Program (set, query, ...), format uknown
Program data E863F12F-079E-48FF-8F27-9C2605A29F52 x Data Data from Thermo to Eve, format unknown
@simont77
Copy link
Author

simont77 commented Aug 5, 2017

Had success also with Eve Energy and understood how to deal with end of memory. See gist.

@skrollme
Copy link

skrollme commented Aug 7, 2017

Concerning the Eve Energy: I own one, can I help with debugging or characteristic-logging? Just tell me what to do ;)

@simont77
Copy link
Author

simont77 commented Aug 7, 2017

I believe I'm set for now, but could you check what you see on E863F116? Just to see if I correctly guess the accessory field, or if it was a coincidence.

@skrollme
Copy link

skrollme commented Aug 8, 2017

Am I guessing it right that for example the Eve Room is an accessory with the following services:

  • Accessory Information (Standard Characteristics)
  • Battery (Standard Characteristics)
  • Temperature Sensor (Standard Characteristics)
  • Humidity Sensor (Standard Characteristics)
  • Airquality Sensor (quality in ppm + the "real custom stuff")

I'm asking because I'm still lacking the possibility to properly rename the services in the Home.app and I think I have to refactor the plugin a little bit.

@skrollme
Copy link

skrollme commented Aug 8, 2017

And to your question, @simont77

I believe I'm set for now, but could you check what you see on E863F116? Just to see if I correctly guess the accessory field, or if it was a coincidence.

E863F116 in the E863F007-service shows a value, which changes after a few seconds. Here are some samples (correct chronological order, but not sure if I did miss some in-between):

  • a209d3014b09d30171f0381f0505020b020c020d020702ed0fed0f0fbb0000e53aae0101ff
  • cd09d3014b09d30171f0381f0505020b020c020d020702ed0fed0f0fbb0000e53aae0101ff
  • e709d3014b09d30171f0381f0505020b020c020d020702ed0fed0f0fbb0000e53aae0101ff
  • 240ad3014b09d30171f0381f0505020b020c020d020702ed0fed0f0fbb0000e53aae0101ff

@simont77
Copy link
Author

simont77 commented Aug 8, 2017

Yes, those are the services for Eve Room.
Concerning Eve Energy, there are some differences in the undecoded part of E863F116, but the accessory byte is correct (07), so I'm confident. The first part changing every few seconds should be the accessory clock.

@skrollme
Copy link

skrollme commented Aug 9, 2017

Yes, those are the services for Eve Room.

Ok, so I will start getting a proper base for homebridge-eveatmo and refactoring a little bit to match the default services from Eve Room/Weather and then I will continue to work on the history data.

@simont77
Copy link
Author

simont77 commented Aug 9, 2017

Do you have the possibility to monitor also Eve Door and Eve Motion? It would be enough to write down the characteristic list and have a look at E863F116 and E863F117.

@skrollme
Copy link

skrollme commented Aug 9, 2017

I'm sorry, the only Eve product I own is one Eve Energy so far..

@gomfunkel
Copy link

Wow, thanks for carrying on with this! I don’t have much time on my hands lately but thought it might be time for a another small contribution… ;)

Below please find the services and characteristics of Eve Degree:

Accessory Information (0000003E-0000-1000-8000-0026BB765291)

  • Name - 00000023-0000-1000-8000-0026BB765291 - READ
  • Manufacturer - 00000020-0000-1000-8000-0026BB765291 - READ
  • Model - 00000021-0000-1000-8000-0026BB765291 - READ
  • Serial Number - 00000030-0000-1000-8000-0026BB765291 - READ
  • Firmware Revision - 00000052-0000-1000-8000-0026BB765291 - READ
  • ??? - 00000053-0000-1000-8000-0026BB765291 - READ
  • Identify - 00000014-0000-1000-8000-0026BB765291 - WRITE

Battery (00000096-0000-1000-8000-0026BB765291)

  • Name - 00000023-0000-1000-8000-0026BB765291 - READ
  • Battery Level - 00000068-0000-1000-8000-0026BB765291 - READ
  • Charging State - 0000008F-0000-1000-8000-0026BB765291 - READ
  • Status Low Battery - 00000079-0000-1000-8000-0026BB765291 - READ

Temperature Sensor (0000008A-0000-1000-8000-0026BB765291)

  • Name - 00000023-0000-1000-8000-0026BB765291 - READ
  • Current Temperature - 00000011-0000-1000-8000-0026BB765291 - READ
  • Temperature Units - 00000036-0000-1000-8000-0026BB765291 - READ

Humidity Sensor (00000082-0000-1000-8000-0026BB765291)

  • Name - 00000023-0000-1000-8000-0026BB765291 - READ
  • Current Relative Humidity - 00000010-0000-1000-8000-0026BB76529 - READ

??? (E863F00A-079E-48FF-8F27-9C2605A29F52)

  • Name - 00000023-0000-1000-8000-0026BB765291 - READ
  • ??? - E863F10F-079E-48FF-8F27-9C2605A29F52 - READ
  • ??? - E863F130-079E-48FF-8F27-9C2605A29F52 - READ

Logging (E863F007-079E-48FF-8F27-9C2605A29F52)

  • Name - 00000023-0000-1000-8000-0026BB765291 - READ
  • Status Fault - 00000077-0000-1000-8000-0026BB765291 - READ
  • ??? - E863F11E-079E-48FF-8F27-9C2605A29F52 - READ
  • ??? - E863F112-079E-48FF-8F27-9C2605A29F52 - READ
  • ??? - E863F116-079E-48FF-8F27-9C2605A29F52 - READ
  • ??? - E863F117-079E-48FF-8F27-9C2605A29F52 - READ
  • ??? - E863F131-079E-48FF-8F27-9C2605A29F52 - READ
  • ??? - E863F11C-079E-48FF-8F27-9C2605A29F52 - WRITE
  • ??? - E863F121-079E-48FF-8F27-9C2605A29F52 - WRITE
  • ??? - E863F11D-079E-48FF-8F27-9C2605A29F52 - WRITE

I think it makes more sense to add them to your gist right now as it is way more active. I hope to be able to add information about some of the values of the Eve Degree characteristics soon.

@simont77
Copy link
Author

@skrollme
Could you dump E863F112 and E863F117 on Eve Energy during a reset of the total in cost in Eve.app and also during the first transfer afterwards?
Thanks

@simont77
Copy link
Author

simont77 commented Aug 15, 2017

@gomfunkel

Done

@simont77
Copy link
Author

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.

@naofireblade
Copy link

naofireblade commented Sep 24, 2017

Do you want to list custom characteristics from homebridge-plugins that are supported (translations and icons) by the elgato eve app? These are implemented in the latest update of the eve app.

Condition: 'cd65a9ab-85ad-494a-b2bd-2f380084134d',
Rain1h: '10c88f40-7ec4-478c-8d5a-bd0c3cce14b7',
RainDay: 'ccc04890-565b-4376-b39a-3113341d9e0f',
WindSpeed: '49C8AE5A-A3A5-41AB-BF1F-12D5654F9F41',
WindDirection: '46f1284c-1912-421b-82f5-eb75008b167e',
Visibility: 'd24ecc1e-6fad-4fb5-8137-5af88bd5e857',
UVIndex: '05ba0fe0-b848-4226-906d-5b64272e05ce'

Screenshot

@simont77
Copy link
Author

simont77 commented Sep 26, 2017

@naofireblade Thank you. Actually I already forked your plugin some time ago, and yesterday I noticed that the icons appeared with new Eve version. I will update this gist with the list. How did you get this to happen? Did you contacted Elegato or they scan github repository by themself?

@naofireblade
Copy link

naofireblade commented Sep 26, 2017

I actually did nothing. They must have found the plugin on npm and looked for the UUIDs on my github repo. I think this is a cool feature, they also did this before with an audio plugin.

Edit: Nice, it looks like you started the history service for my plugin :) . I will implement your great history lib in the coming days. Btw, you are missing the forecast feature if you are still on the forked version.

@simont77
Copy link
Author

simont77 commented Sep 26, 2017

Yes, I know, but actually I’m not interested in the forecast, I prefer an Eve Weather like accessory (so that that Eve will show all together temperature, humidity and pressure). Thanks for the hint.

@grover
Copy link

grover commented Jan 2, 2018

Shameless plug: Using my prototype of a HomeKit BLE range extender could help with figuring this out live in between iOS and an Elgato accessory. The prototype already works with an Eve Energy including all the history stuff and notifications.

@ebaauw
Copy link

ebaauw commented Feb 3, 2018

Characteristic 130 on the Air Pressure Sensor (00A) service is Elevation, which Eve uses to calibrate the Air Pressure sensor. It must be provided on the Air Pressure Sensor service if you want weather logging with different services for Temperature Sensor, Humidity sensor, and Air Pressure Sensor.

I think Elevation is an INT16, it's read/write and contains the elevation in meters. Eve shows a list of values under the accessory details.
img_0011
img_0012

@eretna
Copy link

eretna commented Feb 9, 2018

From Elgato Eve Weather:

E863F00A-079E-48FF-8F27-9C2605A29F52 -> Service type for atmospheric pressure sensor.

E863F10F-079E-48FF-8F27-9C2605A29F52 -> Characteristic type for current atmospheric pressure. The value of the characteristic is a float value in hPa.

@ebaauw
Copy link

ebaauw commented Feb 11, 2018

Does any-one know what characteristic the Eve Thermo uses for temperature offset?

@skrollme
Copy link

skrollme commented May 21, 2018

Did you manage to properly set the "LastActivation" characteristic in the EveMotion so far? I currently try to implement this in a "Ping Successful >> Motion detected"-plugin (PeteLawrence/homebridge-people#97) but I have still problems pushing correct values to the EVE.app.

I tried to use the following values:

  • Unix timestamp of last activation
  • Unix timestamp - EVE-epoch(1.1.2001)
  • Unix timestamp with microtime (unix*1000, but this is to big for UINT32)
  • seconds until now (e.g. 300 for "before 5 minutes")

It also seems that the eve.app does not always updates the characteristic even if its value significantly changes

Edit:
With an "almost now" unix timestamp I get an "Right now" for "Last Activation". When setting negative values (for an UINT !) I get some random values (3-4 hours ago)

Edit 2:
Got it! "Last contact".unix_timestamp - history.getInitialTime()

@ctschach
Copy link

Just in case someone is interested - Some Characteristics I found in the latest eve app:

E863F113-079E-48FF-8F27-9C2605A29F52 - Flow Rate
E863F123-079E-48FF-8F27-9C2605A29F52 - Water
E863F128-079E-48FF-8F27-9C2605A29F52 - Water Total
E863F125-079E-48FF-8F27-9C2605A29F52 - Average Temperature
E863F12C-079E-48FF-8F27-9C2605A29F52 - Schedule (is shown under the characteristics but not additional data or edit posibilities)

@bgewehr
Copy link

bgewehr commented Feb 5, 2019

Are there yet any characteristics for cars? Trip counter, fuel range, electric range, things like that? Want to use it with VW Car-Net Data.

@bgewehr
Copy link

bgewehr commented Feb 5, 2019

What about geo-location for IoT devices and gps trackers (or even cars...)

@oremic
Copy link

oremic commented Jun 9, 2019

Hi for schedule and graphic ??? Characteristics
B3B5FE4F-BDF4-4345-8C2C-59C5746B7246
139B8562-0125-4E79-9E1A-644FAE60BF19
6142DD77-66EF-43CB-8024-49624D16D718

@simont77
Copy link
Author

simont77 commented Jun 9, 2019

No one decoded or even dumped the communication for schedule so far...

Also, please add comment on fakegato-history repository, this gist is no more maintained.

@magneroald
Copy link

Hi,
Here is a dump of all homekit characterisitics available for Eve Weather. (I have a function in my "At Home" app for this)
Hope it can be helpful. Does anybody know what the values 0 to 15 for weather trend (E863F136-079E-48FF-8F27-9C2605A29F52) represents?

Accessory navn: Terasse Sensor Uuid: 3C86BFBC-0330-5D88-B60C-6548148CB301 Category: Bridged: false Online: true

Service navn: Eve Weather 2C1D Type: 0000003E-0000-1000-8000-0026BB765291 Primary: false UserInteractive: false Charateristic type: 00000014-0000-1000-8000-0026BB765291 Localised description: Identifiser isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: bool, Manufacturer Description: Identify ]) Charateristic type: 00000020-0000-1000-8000-0026BB765291 Localised description: Produsent isNotificationEnabled: false Value: Optional(Eve Systems) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Manufacturer ]) Charateristic type: 00000021-0000-1000-8000-0026BB765291 Localised description: Modell isNotificationEnabled: false Value: Optional(Eve Weather 20EBS9901) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Model ]) Charateristic type: 00000023-0000-1000-8000-0026BB765291 Localised description: Navn isNotificationEnabled: false Value: Optional(Eve Weather 2C1D) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Name ]) Charateristic type: 00000030-0000-1000-8000-0026BB765291 Localised description: Serienummer isNotificationEnabled: false Value: Optional(SV08K1A03806) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Serial Number ]) Charateristic type: 00000052-0000-1000-8000-0026BB765291 Localised description: Firmwareversjon isNotificationEnabled: false Value: Optional(2.1.0) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Firmware Revision ]) Charateristic type: 00000053-0000-1000-8000-0026BB765291 Localised description: Maskinvareversjon isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Hardware Revision ]) Charateristic type: 34AB8811-AC7F-4340-BAC3-FD6A85F9943B Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: string, Max length: 64 ])

Service navn: Terasse Sensor
Type: 00000701-0000-1000-8000-0026BB765291 Primary: false UserInteractive: false Charateristic type: 00000702-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(2) Metadata: Optional([%@ Format: uint16, Min: 0.00, Max: 31.00, Step: 1.00, Manufacturer Description: Thread Node Capabilities ]) Charateristic type: 00000703-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(1) Metadata: Optional([%@ Format: uint16, Min: 0.00, Max: 127.00, Step: 1.00, Manufacturer Description: Thread Status ]) Charateristic type: 00000706-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Thread OpenThread Version ]) Charateristic type: 0000022B-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(0) Metadata: Optional([%@ Format: bool, Manufacturer Description: Current Transport ])

Service navn: Terasse Sensor
Type: E863F007-079E-48FF-8F27-9C2605A29F52 Primary: false UserInteractive: false
Charateristic type: E863F131-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional() Metadata: Optional([%@ Format: data ])
Charateristic type: E863F11D-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: data ])
Charateristic type: E863F158-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: data ])
Charateristic type: E863F116-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(<00010000 00000000 00000000 05010202 02030227 012f0104 00000c08 0c000000 00000001 00>) Metadata: Optional([%@ Format: data ])
Charateristic type: E863F117-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(<15080c00 00000000 00800000 00000000 00000000 0015090c 00000100 00008602 0e000e00 00000000 0000150a 0c0000ca 00000086 021f0011 00feff10 00000015 0b0c0000 ce000000 86021f00 1f0001b0 1f000000 150c0c00 00020100 00818668 94260000 00000000 00>) Metadata: Optional([%@ Format: data ])
Charateristic type: E863F11C-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(<0114080c 000000>) Metadata: Optional([%@ Format: data ]) Charateristic type: E863F121-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(<86689426>) Metadata: Optional([%@ Format: data ])
Charateristic type: E863F112-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: uint32 ]) Charateristic type: E863F11E-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(<1f00010e 5700ec0a 0b00386d 9fe0926f ad74>) Metadata: Optional([%@ Format: data ])

Service navn: Terasse Sensor
Type: 00000239-0000-1000-8000-0026BB765291 Primary: false UserInteractive: false
Charateristic type: 0000023A-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(5000) Metadata: Optional([%@ Format: uint32, Min: 10.00, Max: 67108863.00, Step: 1.00, Manufacturer Description: Sleep Interval ])
Charateristic type: 0000023C-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: data, Manufacturer Description: Ping ])
Charateristic type: 0000024A-0000-1000-8000-0026BB765291 Localised description: Tilpasset isNotificationEnabled: true Value: Optional(2) Metadata: Optional([%@ Format: uint32, Manufacturer Description: Heart Beat ])

Service navn: Battery Type: 00000096-0000-1000-8000-0026BB765291 Primary: false UserInteractive: true
Charateristic type: 00000068-0000-1000-8000-0026BB765291 Localised description: Batterinivå isNotificationEnabled: true Value: Optional(100) Metadata: Optional([%@ Format: uint8, Units: percentage, Min: 0.00, Max: 100.00, Step: 1.00, Manufacturer Description: Battery Level ])
Charateristic type: 00000079-0000-1000-8000-0026BB765291 Localised description: Status: Lavt batteri isNotificationEnabled: true Value: Optional(0) Metadata: Optional([%@ Format: uint8, Min: 0.00, Max: 1.00, Step: 1.00, Manufacturer Description: Status Low Battery ])
Charateristic type: 00000023-0000-1000-8000-0026BB765291 Localised description: Navn isNotificationEnabled: false Value: Optional(Battery) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Name ])
Charateristic type: 0000008F-0000-1000-8000-0026BB765291 Localised description: Ladestatus isNotificationEnabled: false Value: Optional(2) Metadata: Optional([%@ Format: uint8, Min: 0.00, Max: 2.00, Step: 1.00, Manufacturer Description: Charging State ])

Service navn: Eve Weather Type: E863F00A-079E-48FF-8F27-9C2605A29F52 Primary: false UserInteractive: true
Charateristic type: 00000023-0000-1000-8000-0026BB765291 Localised description: Navn isNotificationEnabled: false Value: Optional(Eve Weather) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Name ])
Charateristic type: E863F10F-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(977) Metadata: Optional([%@ Format: float, Min: 870.00, Max: 1100.00, Step: 0.10, Manufacturer Description: air-pressure ])
Charateristic type: E863F130-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: nil Metadata: Optional([%@ Format: float, Min: -450.00, Max: 9000.00, Step: 1.00, Manufacturer Description: altitude ])
Charateristic type: E863F136-079E-48FF-8F27-9C2605A29F52 Localised description: Tilpasset isNotificationEnabled: false Value: Optional(3) Metadata: Optional([%@ Format: uint8, Min: 0.00, Max: 15.00, Manufacturer Description: weather-trend ])

Service navn: Terasse Temperatur Type: 0000008A-0000-1000-8000-0026BB765291 Primary: true UserInteractive: true
Charateristic type: 00000011-0000-1000-8000-0026BB765291 Localised description: Gjeldende temperatur isNotificationEnabled: true Value: Optional(22.4) Metadata: Optional([%@ Format: float, Units: celsius, Min: -30.00, Max: 100.00, Step: 0.10, Manufacturer Description: Current Temperature ])
Charateristic type: 00000023-0000-1000-8000-0026BB765291 Localised description: Navn isNotificationEnabled: false Value: Optional(Eve Weather) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Name ]) Charateristic type: 00000036-0000-1000-8000-0026BB765291 Localised description: Enheter for temperaturvisning isNotificationEnabled: false Value: Optional(0) Metadata: Optional([%@ Format: uint8, Min: 0.00, Max: 1.00, Step: 1.00, Manufacturer Description: Temperature Display Units ])

Service navn: Terasse Luftfuktighet Type: 00000082-0000-1000-8000-0026BB765291 Primary: false UserInteractive: true
Charateristic type: 00000010-0000-1000-8000-0026BB765291 Localised description: Relativt fuktighetsnivå nå isNotificationEnabled: true Value: Optional(46) Metadata: Optional([%@ Format: float, Units: percentage, Min: 0.00, Max: 100.00, Step: 1.00, Manufacturer Description: Current Relative Humidity ])
Charateristic type: 00000023-0000-1000-8000-0026BB765291 Localised description: Navn isNotificationEnabled: false Value: Optional(Eve Weather) Metadata: Optional([%@ Format: string, Max length: 64, Manufacturer Description: Name ])

@simont77
Copy link
Author

simont77 commented Jul 7, 2021

Hi, at the moment I'm too busy to follow this project, but you can post to https://github.com/simont77/fakegato-history where are contributor can help.

@HomeKidd
Copy link

HomeKidd commented Feb 2, 2023

Does anybody know what the values 0 to 15 for weather trend (E863F136-079E-48FF-8F27-9C2605A29F52) represents?

Values represents the Weather conditions displayed (Sunny, Rainy etc).
Valid values are 1,3,4,5,6,7,9,11,12,13,14,15 (tested with Accessory Simulator).

1,9 - Sunny
3,11 - Sunny/Cloudy
4,5,6,7 - Rainy
12,13,14,15 - Windy/Rainy

Hi, Here is a dump of all homekit characterisitics available for Eve Weather. (I have a function in my "At Home" app for this)

Do you have access for this app? HMCatalog app isnt up to date... and i'm looking for an app for reverse engineering 😄

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