Skip to content

Latest commit

 

History

History
102 lines (80 loc) · 7.17 KB

README.md

File metadata and controls

102 lines (80 loc) · 7.17 KB

ETEKCITY ESN00 Packets

Parses & serializes packets to and from the format that ESN00 sends and understands.

Implemented Packet Types:

  • SET_UNIT (0xc0) - c5736b4, - #2
  • SET_TARE (0xc1) - #2
  • SET_AUTO_OFF (0xc4) - 805a076, #2
  • MEASUREMENT (0xd0) - bfcf5df
  • UNIT_STATE (0xd1) - #5
  • TARE_STATE (0xd3) - bfcf5df, #3
  • AUTO_OFF_STATE (0xd5) - #2
  • ERROR_STATE (0xe0) - bfcf5df, #3
  • ITEM_STATE (0xe4) - bfcf5df, #3

Unresearched packets

  • SET_NUTRITION (0xc2)
  • ?PING (0xc3)
  • ??? (0xd2)
  • ?PONG (0xd4)
  • ??? (0xe1)
  • ??? (0xe2)
  • ??? (0xe3)

Protocol

All packets have this structure

Data Packet: Weight Measurement (0xE0)

Device will be constantly spamming packet with this data

Field Description Note
Sign 0x00 (positive) / 0x01 (negative)
Weight 16 bit int (big-endian) In grams value is multiplied by 10 (not sure about other units)
Unit 0x00(g),0x02(ml),0x04(ml milk),0x03(floz),0x05(floz milk),0x06(oz),0x01(lboz) Does not seem like bitmask just enum
Stable 0x00 (measuring) / 0x01 (settled) 0x00 means weight is not yet settled
Data Packet: Set Nutrition

bytes (incl.) field unit (decimal size) values
[0, 2] calories Kcal (5, 1) 0x0 - 0xf423f
0.0 - 99999.9
[3, 5] caloriesFromFat Kcal (5, 1) 0x0 - 0xf423f
0.0 - 99999.9
[6, 8] totalFat g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[9, 11] stauratedFat g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[12, 14] transFat g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[15, 17] cholesterol mg (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[18, 20] sodium mg (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[21, 23] potassium mg (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[24, 26] totalCarbs g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[27, 29] dietaryFiber g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[30, 32] sugars g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9
[33, 35] protein g (4, 1) 0x0 - 0x1869e
0.0 - 9999.9

Packet Details

Status Type Source(s) Payload Generic? Notes
SET_UNIT COMMAND unit uint8Parselizer
SET_TARE COMMAND shouldReset booleanParselizer
SET_AUTO_OFF COMMAND timeout uint8Parselizer
MEASUREMENT NOTIFY sign, value, unit uint8Parselizer
TARE_STATE NOTIFY isOn booleanParselizer (inverted)
AUTO_OFF_STATE NOTIFY timeout uint16Parselizer the value is the same as for command with the exception of extra 0 byte
ERROR_STATE NOTIFY isOn booleanParselizer (inverted)
ITEM_STATE NOTIFY isOn booleanParselizer (inverted)
UNIT_STATE NOTIFY unit uint8Parselizer
SET_NUTRITION COMMAND 12 x 3 byte integer the value is displayed by simple n/10 division with single fractional point. [more info](# ETEKCITY ESN00 Packets

Parses & serializes packets to and from the format that ESN00 sends and understands.

Implemented Packet Types:

  • SET_UNIT (0xc0) - c5736b4, - #2
  • SET_TARE (0xc1) - #2
  • SET_NUTRITION (0xc2) - pending
  • SET_AUTO_OFF (0xc4) - 805a076, #2
  • MEASUREMENT (0xd0) - bfcf5df
  • UNIT_STATE (0xd1) - #5
  • TARE_STATE (0xd3) - bfcf5df, #3
  • AUTO_OFF_STATE (0xd5) - #2
  • ERROR_STATE (0xe0) - bfcf5df, #3
  • ITEM_STATE (0xe4) - bfcf5df, #3

Unresearched packets

  • ?PING (0xc3)
  • ??? (0xd2)
  • ?PONG (0xd4)
  • ??? (0xe1)
  • ??? (0xe2)
  • ??? (0xe3)