2.0.0 • Published 4 years ago
@metekcity/esn00-packet v2.0.0
ETEKCITY ESN00 Packets
Parses & serializes packets to and from the format that ESN00 sends and understands.
Implemented Packet Types:
SET_UNIT(0xc0) - c5736b4, - #2SET_TARE(0xc1) - #2SET_AUTO_OFF(0xc4) - 805a076, #2MEASUREMENT(0xd0) - bfcf5dfUNIT_STATE(0xd1) - #5TARE_STATE(0xd3) - bfcf5df, #3AUTO_OFF_STATE(0xd5) - #2ERROR_STATE(0xe0) - bfcf5df, #3ITEM_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 |
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 | (complex object) | need more samples to understad how data is encoded |
Legend
| Marker | Category | Description |
|---|---|---|
| ⌛ | Status | Waiting (todo) |
| 🛑 | Status | Blocked |
| ✅ | Status | Done |
COMMAND | Source(s) | Command send to the Device |
NOTIFY | Source(s) | Notification received from the Device |