Skip to content

Commit

Permalink
more consistency
Browse files Browse the repository at this point in the history
  • Loading branch information
KazWolfe authored Jun 7, 2024
1 parent f077480 commit f767192
Show file tree
Hide file tree
Showing 11 changed files with 80 additions and 78 deletions.
26 changes: 13 additions & 13 deletions docs/developer/it-protocol/0x41-set-request/0x01-set-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@
This command is used to issue a new operation state to the heat pump. It controls core behaviors like power, mode,
target temperature, and similar.

| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|---------------------------|-------------------------------------------------|--------------------|----------------------------------------------------------------|
| 0 | Command Type | 0x01 | Yes |
| 1-2 | Update Flags | Traditional hex flags | Partially | Indicates which parameters to update. |
| 3 | Power | 0x00: Off<br/>0x01: On<br/>0x02: Test Mode | No | Update flag 0x0001 |
| 4 | Operating Mode | See [Operating Modes](#operating-modes) | No | Update flag 0x0002 |
| 5 | Legacy Target Temperature | See [Legacy Setpoint Temperatures][legacy-temp] | | Update flag 0x0004 |
| 6 | Fan | See [Fan Modes](#fan-modes) | | Update flag 0x0008<br/>Not all values supported for all units. |
| 7 | Vertical Vane | See [Vertical Vane](#vertical-vane) | | Update flag 0x0010<br/>Defaults to 0x5 on air handlers (?) |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|---------------------------|--------------------------------------------|--------------------|----------------------------------------------------------------|
| 0 | Command Type | 0x01 | Yes |
| 1-2 | Update Flags | Traditional hex flags | Partially | Indicates which parameters to update. |
| 3 | Power | 0x00: Off<br/>0x01: On<br/>0x02: Test Mode | No | Update flag 0x0001 |
| 4 | Operating Mode | [Operating Modes](#operating-modes) | No | Update flag 0x0002 |
| 5 | Legacy Target Temperature | [Legacy Setpoint Temperature][legacy-temp] | | Update flag 0x0004 |
| 6 | Fan | [Fan Modes](#fan-modes) | | Update flag 0x0008<br/>Not all values supported for all units. |
| 7 | Vertical Vane | [Vertical Vane](#vertical-vane) | | Update flag 0x0010<br/>Defaults to 0x5 on air handlers (?) |
| 8 |
| 9 |
| 10 |
| 11 | Prohibit Flags | See [Prohibit Flags](#prohibit-flags) | | Update Flag 0x0040 |
| 11 | Prohibit Flags | [Prohibit Flags](#prohibit-flags) | | Update Flag 0x0040 |
| 12 |
| 13 | Horizontal Vane | See [Horizontal Vane](#horizontal-vane) | | Update Flag 0x0100 |
| 14 | Target Temperature | See [Enhanced Temperatures][enhanced-temp] | | Update Flag 0x0004.<br/>Takes priority over legacy temperature |
| 13 | Horizontal Vane | [Horizontal Vane](#horizontal-vane) | | Update Flag 0x0100 |
| 14 | Target Temperature | [Enhanced Temperature][temp-a] | | Update Flag 0x0004.<br/>Takes priority over legacy temperature |
| 15 |

[legacy-temp]: ../data-types/temperature-units.md#legacy-setpoint-temperatures
[enhanced-temp]: ../data-types/temperature-units.md#enhanced-temperatures
[temp-a]: ../data-types/temperature-units.md#enhanced-temperatures

### Sample Packets

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@

This command is normally issued by a MHK thermostat and sent to the heat pump to control the room temperature.

| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|-----------------------------|------------------------------------------------|--------------------|-------|
| 0 | Command Type | 0x07 | Yes | |
| 1 | Flags | 0x00 Use Internal<br/>0x01 Remote Temp | Yes |
| 2 | Remote Temperature | See [Legacy Current Temperatures][legacy-temp] | Yes |
| 3 | Extended Remote Temperature | See [Enhanced Temperatures][enhanced-temp] | Yes |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|-----------------------------|-------------------------------------------|--------------------|-------|
| 0 | Command Type | 0x07 | Yes | |
| 1 | Flags | 0x00 Use Internal<br/>0x01 Remote Temp | Yes |
| 2 | Remote Temperature | [Legacy Current Temperature][legacy-temp] | Yes |
| 3 | Extended Remote Temperature | [Enhanced Temperature][temp-a] | Yes |

When decoding this value, byte 3 takes precedence over byte 2. When sending this packet, it appears to be safe to just
send byte 3 though be aware that this may cause an issue with older units.

[legacy-temp]: ../data-types/temperature-units.md#legacy-current-temperatures
[enhanced-temp]: ../data-types/temperature-units.md#enhanced-temperatures
[temp-a]: ../data-types/temperature-units.md#enhanced-temperatures
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ their units (e.g. do not send a set for a function normally in Page 2 as Page 1)

Settings may be retrieved via [`0x62 0x20` - Get Functions][get-functions].

| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|-------------------|----------------------------------------|--------------------|------------------------------------------|
| 0 | Command Type | 0x1F, 0x21 | No |
| 1-14 | Function Settings | See [Function Settings][function-type] | | New settings to apply |
| 15 | End Byte | 0x00 | | Unsure if 0x00 has a specific value here |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|-------------------|------------------------------------|--------------------|------------------------------------------|
| 0 | Command Type | 0x1F, 0x21 | No |
| 1-14 | Function Settings | [Function Settings][function-type] | | New settings to apply |
| 15 | End Byte | 0x00 | | Unsure if 0x00 has a specific value here |

[get-functions]: ../0x62-get-response/0x20-0x22-get-functions.md
[function-type]: ../data-types/function-settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
This command appears to be used to "upload" the MHK2's state to the Kumo Cloud. It is sent on a regular cadence by the
MHK2 if an upstream Kumo device has been detected.

| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|------------------------|-----------------------------------|--------------------|-------------------------------------|
| 0 | Command Type | 0xA8 | Partial | |
| 1 | Flags | Traditional hex flags | | Determines which fields to process |
| 2-5 | Thermostat Time (?) | See [Timestamps][timestamp] | | Flag 0x01 |
| 6 | ??? | 0x00, 0x01 | | Flag 0x02 |
| 7 | ??? | 0x00, 0x01, 0x02 | | Flag 0x04 |
| 8 | Heating Setpoint | See [Enhanced Temperatures][temp] | | Flag 0x08<br/>Resets if invalid (?) |
| 9 | Cooling Setpoint | See [Enhanced Temperatures][temp] | | Flag 0x10<br/>Resets if invalid (?) |
| 10 | ??? | 0x00, 0x01 | | Flag 0x20 |
| 11 | ??? | 0x00, 0x01 | | Flag 0x40 |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|------------------------|---------------------------------|--------------------|-------------------------------------|
| 0 | Command Type | 0xA8 | Partial | |
| 1 | Flags | Traditional hex flags | | Determines which fields to process |
| 2-5 | Thermostat Time (?) | [Timestamp][timestamp] | | Flag 0x01 |
| 6 | ??? | 0x00, 0x01 | | Flag 0x02 |
| 7 | ??? | 0x00, 0x01, 0x02 | | Flag 0x04 |
| 8 | Heating Setpoint | [Enhanced Temperatures][temp-a] | | Flag 0x08<br/>Resets if invalid (?) |
| 9 | Cooling Setpoint | [Enhanced Temperatures][temp-a] | | Flag 0x10<br/>Resets if invalid (?) |
| 10 | ??? | 0x00, 0x01 | | Flag 0x20 |
| 11 | ??? | 0x00, 0x01 | | Flag 0x40 |

[timestamp]: ../data-types/timestamps.md
[temp]: ../data-types/temperature-units.md#enhanced-temperatures
[temp-a]: ../data-types/temperature-units.md#enhanced-temperatures

## Temperature Setpoints

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@

This command is used to retrieve temperature information from the heat pump.

| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|-------|----------------------------|------------------------------------------------|--------------------|--------------------------------------------------------------------------------|
| 0 | Command | 0x03 | Yes |
| 3 | Current Legacy Temperature | See [Legacy Current Temperatures][legacy-temp] | | |
| 5 | Outdoor Unit Temperature | See [Enhanced Temperatures][enhanced-temp] | | Rounded to nearest whole °C<br/>If 0x00, unsupported. |
| 6 | Current Temperature | See [Enhanced Temperatures][enhanced-temp] | | |
| 7 | ??? | See [Enhanced Temperatures][enhanced-temp] | | 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.<br/>Not sent for all unit types. |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|-------|----------------------------|-------------------------------------------|--------------------|--------------------------------------------------------------------------------|
| 0 | Command | 0x03 | Yes |
| 3 | Current Legacy Temperature | [Legacy Current Temperature][legacy-temp] | | |
| 5 | Outdoor Unit Temperature | [Enhanced Temperature][enhanced-temp-a] | | Rounded to nearest whole °C<br/>If 0x00, unsupported. |
| 6 | Current Temperature | [Enhanced Temperature][enhanced-temp-a] | | |
| 7 | ??? | [Enhanced Temperature][enhanced-temp-a] | | 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.<br/>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.

[legacy-temp]: ../data-types/temperature-units.md#legacy-current-temperatures
[enhanced-temp]: ../data-types/temperature-units.md#enhanced-temperatures
[temp-a]: ../data-types/temperature-units.md#enhanced-temperatures

### Sample Packets

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ Certain older heat pump units do not return Run Status as part of their operatio
the MSZ-GE##VA and MSZ-FD##VA units, but otherse may be affected.
:::

| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|------------------|---------------------------------------------|--------------------|-------------------------------------------------------------------------------------------|
| 0 | CommandType | 0x09 | |
| 3 | Status Flags | See [Status Flags](#status-flags) | | A bitmask of flags indicating the heat pump's current status. |
| 4 | Actual Fan Speed | See [Actual Fan Speeds](#actual-fan-speeds) | | The speed the fan is currently operating at (may be different from fan setting in `0x02`) |
| 5 | Auto Mode? | See [Auto Mode](#auto-modes) | No | Per swicago lib, idle mode but has other values. |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|------------------|-----------------------------------------|--------------------|-------------------------------------------------------------------------------------------|
| 0 | CommandType | 0x09 | |
| 3 | Status Flags | [Status Flags](#status-flags) | | A bitmask of flags indicating the heat pump's current status. |
| 4 | Actual Fan Speed | [Actual Fan Speeds](#actual-fan-speeds) | | The speed the fan is currently operating at (may be different from fan setting in `0x02`) |
| 5 | Auto Mode? | [Auto Mode](#auto-modes) | No | Per swicago lib, idle mode but has other values. |

### Example Packets

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ of 14 functions, while command `0x21` denotes the second page.
Settings may be edited via [`0x41 0x1F` - Set Functions][set-functions], 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][function-datatype] | | |
| 15 | End Byte | 0x00 | | Unsure if 0x00 has a specific value here |
| Byte | Purpose | Possible Values | Supported by mUART | Notes |
|------|-------------------|----------------------------------------|--------------------|------------------------------------------|
| 0 | Command Type | 0x20, 0x22 | No |
| 1-14 | Function Settings | [Function Settings][function-datatype] | | |
| 15 | End Byte | 0x00 | | Unsure if 0x00 has a specific value here |

[set-functions]: ../0x41-set-request/0x1F-0x21-set-functions.md
[function-datatype]: ../data-types/function-settings.md
Loading

0 comments on commit f767192

Please sign in to comment.