Skip to main content

IT Protocol Reference

Packets sent on Mitsubishi's CN105 port seem to follow a general structure, but the specific content is still not entirely well mapped out. Eventually I'm hoping to have this wiki compile all the known information, but quite a bit of data is available nonetheless. Because this reference manual is not based on any formal documentation, developers should expect significant changes to both layout and information as new findings are discovered.

This protocol reference covers solely the air-to-air variant of the IT protocol (identifier 0x0130). The air-to-water protocol variant (identifier 0x027A) uses significantly different data layouts, even if the general structure is the same. Even so, there appear to be regional differences between version of the IT protocol. For example, Japanese units currently expose fields that are not present on NA/EU/AUS units, though it is not known if this is purelymissing features or if the Japanese market actually has a different protocol. This reference assumes the former for now; that is, the protocol is globally consistent but features are not available in non-JP markets.

For reference purposes, Mitsubishi-internal names are included in this documentation. However, community-defined names will be used more frequently and tend to be preferred as they're overall less confusing.

Packet Layout

All packets have a 5 byte header at the beginning, and a 1 byte checksum at the end. Most packets seem to have a paired request/response structure.

Header Structure

BytePurposeMETUS NamePossible ValuesSupported by mUART
0SyncControl Code0xFCYes
1Packet TypeService CodeSee belowMost types to some extent
2-3Protocol IdentifierModel Code0x0130, 0x027AN/A
4Payload SizeData Length0x00-0x10Yes

The protocol specification appears to require packet lengths of 0x01, 0x02, or 0x10, depending on the packet type. Most packets will use a length of 0x10 even when the extra bytes are not relevant. Similarly, most units seem to accept packets of any length (though caution is advised).

Checksum

The final byte of any packet is the checksum, which can be calculated with (0xFC - sum(packetBytes)) & 0xFF.

Known Packet Types

The following table represents all known packet types, our names for them, and (known) METUS/IT Protocol information for them.

Packet TypeNameMETUS Name
0x41Set RequestOperation setting
0x61Set ResponseResponse of operation
0x42Get RequestDemand of condition information
0x62Get ResponseResponse of condition information
0x5AConnect RequestCommunication setting
0x7AConnect ResponseResponse of communication setting
0x5BIdentify RequestDemand of communication setting data
0x7BIdentify ResponseResponse of communication setting data

Known Command IDs

The below table is a quick reference of all known command IDs (otherwise known as attribution groups in Kumo's code) that are currently known. These only apply to packets 0x41 - Set Request and 0x62 - Get Response (and their companions 0x42 and 0x61, respectively).

Command IDNameCommunication Flow
0x01Set SettingsKumo/MHK -> HP
0x02Get SettingsHP -> Kumo/MHK
0x03Get TemperaturesHP -> Kumo/MHK
0x04Get Error StateHP -> Kumo/MHK
0x05Get Timer InfoHP -> Kumo/MHK
0x06Get Operation StateHP -> Kumo/MHK
0x07Set Remote TemperatureKumo/MHK -> HP
0x08Set Run StateKumo/MHK -> HP
0x09Get Run StateHP -> Kumo/MHK
0x1FSet Function Page 1Kumo/MHK -> HP
0x20Get Function Page 1HP -> Kumo/MHK
0x21Set Function Page 2Kumo/MHK -> HP
0x22Get Function Page 2HP -> Kumo/MHK
0xA6Kumo Sensor StatusMHK -> Kumo
0xA7Thermostat HelloMHK -> Kumo
0xA8Thermostat State UploadMHK -> Kumo
0xA9Thermostat State DownloadKumo -> MHK
0xAAUnknown Kumo PacketMHK -> Kumo
0xABUnknown Kumo PacketKumo -> MHK
0xCAUnknownUnknown

The following command IDs are used as part of the identify cycle:

Command IDNameCommunication FlowNotes
0xC9Identify Base CapabilitiesHP -> Kumo/MHK
0xCDUnknown Identify PacketUnknown
0xCEUnknown Identify PacketUnknownExtracted from KirigamineRemote
0xD0Unknown Identify PacketUnknownExtracted from KirigamineRemote
0xD1Unknown Identify PacketUnknownExtracted from KirigamineRemote