-
Notifications
You must be signed in to change notification settings - Fork 2
(0x62) Get Response
This packet is issued by the heat pump in response to a (0x42) Get Request packet. Unlike the ack-only form of Packet 0x61, this packet will include response information.
The first byte of this packet represents the command type that is being responded to. That is, if a device requested 0x02, the first byte of this packet will in turn be 0x02.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | Multiple | Partial | |
1-15 | Packet Specific | N/A | N/A | The exact contents of these bytes depend on the command type. |
Packet information is very similar to SetSettings, and a lot of information is shared with that. See that section for more information.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | Command | 0x02 | Yes | |
3 | Power | No | ||
4 | Operating Mode | No | ||
5 | Legacy Target Temperature | |||
6 | Fan | |||
7 | Vertical Vane | |||
8 | Prohibit Flags | |||
9 | ||||
10 | Horizontal Vane | Some units have bit 0x80 set. This bit's purpose is currently unknown. Preliminary tests show that setting this bit is not required to update vane state. |
||
11 | Target Temperature | |||
12 | ||||
13 | ||||
14 | ||||
15 |
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | Command | 0x03 | Yes | |
3 | Current Legacy Temperature | See Legacy Current Temperatures | ||
5 | Outdoor Unit Temperature | See Enhanced Temperatures | Rounded to nearest whole °C If 0x00, unsupported. |
|
6 | Current Temperature | See Enhanced Temperatures | ||
7 | ??? | See Enhanced Temperatures | Claimed to be the most recent value, but observations do not match that. | |
8 | ??? | 0x00, 0xFE | ||
9 | ??? | 0x42, 0x00 | ||
11-13 | Timestamp? | Scalar | Appears to be minutes since an unknown event. Not sent for all unit types. |
Bytes 6 and 7 are particularly confusing. First off, byte 7 is not sent by all units. SwiCago's thread has identified Byte 7 to be the "most recent" reading, while Byte 6 is the last reading. While this works for external temperature sensors, it does not work for the internal sensor - see below sample packet where it goes from 0xA9 to 0xAC and completely ignores the 0xB0). Kumo's code claims that byte 6 is room_temp_a
, and does not use byte 7 at all.
Sample Packets:
[FC.62.01.30.10]03.00.00.0C.00.92.AC.00.00.00.00.00.00.00.00.00 10 // SVZ-KP30NA
[FC.62.01.30.10]03.00.00.0F.00.92.B2.B6.FE.42.00.01.59.7A.00.00 3D // MSZ-GS12NA
[FC.62.01.30.10]03.00.00.09.00.92.A7.A7.FE.42.00.01.59.7B.00.00 5C
[FC.62.01.30.10]03.00.00.0A.00.8A.A9.A9.FE.42.00.01.5A.ED.00.00 EC
[FC.62.01.30.10]03.00.00.0C.00.88.AC.B0.FE.42.00.01.5A.FA.00.00 D5 // ... internal temp
[FC.62.01.30.10]03.00.00.0C.00.88.AC.A9.FE.42.00.01.5A.FB.00.00 DB // back to external
[FC.62.01.30.10]03.00.00.0A.00.88.A9.A9.FE.42.00.01.5A.FB.00.00 E0
[FC.62.01.30.10]03.00.00.0A.00.88.A9.B0.FE.42.00.01.5A.FC.00.00 D8 // back to internal
[FC.62.01.30.10]03.00.00.0C.00.88.AC.B0.FE.42.00.01.5A.FC.00.00 D3
This packet has not been observed over the wire yet. It seems likely there's a flag somewhere in a standard packet to inform the MHK2/Kumo to request error information?
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0x04 | Yes | |
4-5 | Error Code | 0x8000 | Partial | 0x8000 is "all clear", other values TBD |
6 | Two Character Code | 0x00 | Partial | User-friendly (?) error code 0x00 ( A0 ) is "all clear" |
Certain error codes have a textual representation at https://app.kumocloud.com/json/fault-codes.json. The two-character code needs to be mapped from hex to a specific display format.
The two-character-code will need to be converted from hex into a human-readable format, which may be done using the following sample code (n.b. requires validation):
def convert_two_char(code):
upper_alpha = "AbEFJLPU"
lower_alpha = "0123456789ABCDEFOHJLPU"
return upper_alpha[(code & 0xE0) >> 5] + lower_alpha[code & 0x1f]
Note: This packet's information was pulled from SwiCago's HeatPump library. It has yet to be verified.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0x05 | No | |
3 | Timer Mode | 0x00: None 0x01: Off Only 0x02: On Only 0x03: Both |
No | |
4 | On Minutes Set | No | Indicates how many minutes the ON timer was set for. | |
5 | Off Minutes Set | No | Indicates remaining time until the unit turns on. | |
6 | On Minutes Remaining | No | Indicates how many minutes the OFF timer was set for. | |
7 | Off Minutes Remaining | No | Indicates remaining time until the unit turns off. |
Note: This packet's information was pulled from SwiCago's HeatPump library. It has not been observed over the wire without specifically requesting command
0x06
.
Editor's Note: This may be
GetCompressorState
instead?
This command returns diagnostic (?) information about the heat pump's operating state. This command does not appear to be used as part of normal heat pump operation.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0x06 | ||
3 | CompressorFrequency | Variable | Yes | The current compressor frequency in Hertz. Not supported/reported by all units. |
4 | Operating | 0x00, 0x01 | Yes | A boolean indicating whether the heat pump is operating. |
8 | ??? | 0x00, 0x78, 0x79 | No | |
11 | ??? | 0x00, 0x42 | No |
Sample Packets:
[FC.62.01.30.10]06.00.00.00.01.00.00.00.00.00.00.00.00.00.00.00 56 // SVZ-KP30NA
[FC.62.01.30.10]06.00.00.00.00.00.00.00.78.00.00.42.00.00.00.00 9D // MSZ-GS12NA
[FC.62.01.30.10]06.00.00.00.00.00.00.00.79.00.00.42.00.00.00.00 9C // MSZ-GS12NA
Note: This packet's information was pulled from echavet's CN105 library.
This command returns information about the heat pump's current run status. It is unclear if this is called as part of normal operaiton
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0x09 | ||
3 | Status Flags | See Below | A bitmask of flags indicating the heat pump's current status. | |
4 | Actual Fan Speed | See Below | The speed the fan is currently operating at (may be different from fan setting in 0x02 ) |
|
5 | Auto Mode? | 0x00 - N/A 0x01 - Cool 0x02 - Heat 0x40 - ??? 0x41 - ??? |
No | Per swicago lib, idle mode but has other values. |
Example Packets:
[FC.62.01.30.10]09.00.00.00.02.40.00.00.00.00.00.00.00.00.00.00 12 // wall unit heat request
[FC.62.01.30.10]09.00.00.00.01.40.00.00.00.00.00.00.00.00.00.00 13 // wall unit in idle
[FC.62.01.30.10]09.00.00.00.01.41.00.00.00.00.00.00.00.00.00.00 12 // wall unit in auto, idling
[FC.62.01.30.10]09.00.00.00.01.42.00.00.00.00.00.00.00.00.00.00 12 // wall unit in auto, heating
Bit | Purpose | Supported by mUART | Notes |
---|---|---|---|
0x01 | Filter | The filter needs to be serviced. | |
0x02 | Defrost | The outdoor unit is in a defrost cycle. | |
0x04 | HotAdjust | The system is preheating for a HEAT call. | |
0x08 | Standby | The unit is in standby mode (another unit with priority is requesting a conflicting mode). |
These were extracted from Kumo UI, and don't particularly make much sense. It's unclear if "Super Quiet" is below or above "Very Low", for example. It's also unclear how these map to setting fan speeds (though a preliminary mapping is below). Active research about these values is currently being tracked as part of Issue #27).
Value | Name | Observed Set Speeds |
---|---|---|
0 | Off | Off |
1 | Very Low | Not observed |
2 | Quiet | Low |
3 | Low | Medium |
4 | Powerful | High |
5 | Super Powerful | Powerful |
6 | Super Quiet | Quiet |
Sent as a response to requesting current installer functions from the heat pump. Command 0x20
denotes the first page of 14 functions, while command 0x21
denotes the second page.
Settings may be edited via Set Request 0x1F and 0x21, but care must be taken when using this function.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | Command Type | 0x20, 0x22 | No | |
1-14 | Function Settings | See Function Settings | ||
15 | End Byte | 0x00 |
Unknown, mentioned in Kumo Cloud firmware.
Unknown, mentioned in Kumo Cloud firmware.
Unknown, mentioned in Kumo Cloud firmware.
Unknown, mentioned in Kumo Cloud firmware.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0xA1 | ||
3 | ??? | |||
4 | ??? | |||
5 | ??? | |||
6 | ??? |
Unknown, mentioned in Kumo Cloud firmware.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0xA2 | ||
3-4 | ??? | Read as single byte |
Requested by thermostat in a 0x42 packet, response from Kumo in 0x62.
⚠️ Warning: The below table is speculative and not confirmed.Implementations should not use these definitions until they've been verified more closely.
Byte | Purpose | Possible Values | Supported by mUART | Notes |
---|---|---|---|---|
0 | CommandType | 0xA9 | ||
1-4 | Adapter Timestamp | See Timestamps | ||
5 | ??? | 0x00 | ||
6 | ??? | 0x00, 0x01 | ||
7 | Auto Heat Setpoint | Enhanced Temperature | No | |
8 | Auto Cool Setpoint | Enhanced Temperature | No | |
10 | ??? | 0x00, 0x07 | ||
12 | ??? | 0x00 |
Sample Packets from Kumo:
[FC 62 01 30 10] A9 1C E0 AB 71 00 00 AD B3 00 00 00 00 00 00 00 [3C]
[FC 62 01 30 10] A9 1C E0 AB 80 00 00 AD B3 00 07 00 00 00 00 00 [26]
[FC 62 01 30 10] A9 1C E0 AB 8A 00 00 AD B3 00 07 00 00 00 00 00 [1C]
[FC 62 01 30 10] A9 1C E0 AB 94 00 00 AD B3 00 07 00 00 00 00 00 [12]
[FC 62 01 30 10] A9 1C E0 AB 9E 00 00 AD B3 00 07 00 00 00 00 00 [08]
[FC 62 01 30 10] A9 1C E0 AB A7 00 00 AD B3 00 07 00 00 00 00 00 [FF]
[FC 62 01 30 10] A9 1C E0 AB B1 00 00 AD B3 00 07 00 00 00 00 00 [F5]
[FC 62 01 30 10] A9 1C E0 AB BA 00 00 AD B3 00 07 00 00 00 00 00 [EC]
[FC 62 01 30 10] A9 1C E0 AB CA 00 00 AD B3 00 07 00 00 00 00 00 [DC]
[FC 62 01 30 10] A9 1C E0 AB D3 00 00 AD B3 00 07 00 00 00 00 00 [D3]
[FC 62 01 30 10] A9 1C E0 AB DC 00 00 AD B3 00 07 00 00 00 00 00 [CA]
[FC 62 01 30 10] A9 1C E0 AB E5 00 00 AD B3 00 07 00 00 00 00 00 [C1]
[FC 62 01 30 10] A9 1C E0 AB EF 00 00 AD B3 00 07 00 00 00 00 00 [B7]
[FC 62 01 30 10] A9 1C E0 AB F8 00 00 AD B3 00 07 00 00 00 00 00 [AE]
[FC 62 01 30 10] A9 1C E0 AC 06 00 00 AD B3 00 07 00 00 00 00 00 [9F]
[FC 62 01 30 10] A9 1C E0 AC 0F 00 00 AD B3 00 07 00 00 00 00 00 [96]
[FC 62 01 30 10] A9 1C E0 AC 19 00 00 AD B3 00 07 00 00 00 00 00 [8C]
[FC 62 01 30 10] a9 1c e1 1b ad 00 01 a4 ad 00 07 00 00 00 00 00 [96]
Requested by thermostat in a 0x42 packet, response from Kumo in 0x62. Follows a 0xA9 request/response cycle.
No variance of this packet has been seen yet.
Sample Packets:
[FC 62 01 30 10] AB 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [B1] // Repeated many times as-is.