Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Mitsubishi CODE VALUE Format:
- 1 byte: fc (magic) (always)
- 20 bytes: commandString
- 1 byte: checksum (commandString added together byte for byte excluding the checksum) (always)
- TOTAL: 22 bytes
- commandString:
- 1 byte: transferMode (0x41 = write request, 0x42 = read request, 0x62 = read response)
- 3 byte: 01 30 10 (always)
- 1 byte: groupCode (see below)
- 15 bytes: data (dynamic depending on transferMode and groupCode)
- Read (42) request data:
- bytes[15]: 000000000000000000000000000000 (padding) (always)
- Read (42) response data (depends on groupCode):
- N/A
- Write (41) request data (depends on groupCode):
- 01: Power/Mode/Temp
- 1 byte: flags (01 = powerState, 02 = deviceMode, 04 = setTemp, 08 = fanSpeed) (e.g. 01 just sends a power state, 07 means sending a combined power/mode/setTemp state) (you can 00 bytes you don't need when omitting the flags)
- 1 byte: unk (maybe getAck, 0 = off, 2 = do ack) (always 2)
- 1 byte: powerState (00 = off, 01 = on, 02 = also on/not used?) (when state is off, the next 11 bytes are all padded with 00)
- 1 byte: deviceMode (see below)
- 1 byte: convertTempFrac(195) (would stand for 19.5 degrees, 190 for 19.0) (likely encodes the frac part) (see below)
- 1 byte: fanSpeed (auto: 00, manual: 1x with the x denoting the fan speed 1-5)
- byte[7]: unk2
- 1 byte: convertTempInt(195) (encodes the integer part) (see below)
- 1 byte: 42 (possibly magic or denotes a read will follow after with the ack) (always)
- convertTempFrac(int tempIn):
- int tempOut = 32 - (tempIn / 10) - 1;
- string fracPart = tempIn.substr(2, 1);
- if (fracPart == 5) //has a fractional part
- return "1" + tempOut.toHex(); //must be 0-f (0-15)
- else
- return "0" + tempOut.toHex(); //must be 0-f (0-15)
- convertTempInt(int tempIn):
- return (tempIn / 5 + 128).toHex(); //1 byte max
- Read (42) request full example:
- 1 byte: transferMode = 42
- 3 byte: 01 30 10 (always)
- 1 byte: groupCode (getState normally sends 4 VALUE tags in the CODE section, requesting respectively 02, 03, 05 and 09)
- bytes[15]: 000000000000000000000000000000 (padding) (always)
- WRITE groups:
- 01 = power state, mode (only when on), temp (only when on)
- 08 = dehum, power saving, buzzer, wind and wind break, notification for remote control navigation
- 15 = zoning data
- READ groups:
- 02 = power state, device mode and tempChanger
- 03 = room temperature
- 04 = abnormal state
- 05 = timer settings
- 09 = auto mode type (warm/cool) and TouchFlowTrigger
- c9 = thermal image support
- cd = DehumDispPercent and power saving support
- d0 = wind direction speed
- Constants:
- Power states:
- 00 = OFF
- 01 = ON
- 02 = ON
- Device Modes:
- LAUNDRY: 00
- DEHUMIDIFICATION: 02
- MANUAL_DEHUMIDIFICATION: 0a
- PREVENTION_CONDENSATION: 0c (all grouped as DEHUMIDIFICATION)
- WARM: 01
- AUTO_WARM: 09 (both grouped as WARM)
- COOL: 03
- AUTO_COOL: 0b (both grouped as COOL)
- BLAST: 07 (also known as FAN ONLY)
- AUTO: 08
- AI_MODE: 18 (undocumented)
- WindAndWindBreak:
- 0: OFF
- 1: WIND_BREAK
- 2: WIND
- 3: NO_UNEVENNESS
- wind dir and thermal support sends 08:
- dehum = false, powerSaving = true, buzzer = false, windAndWindBreak = false, notificationForRemoteControlNavigation = false
- normal sends:
- dehum = false, powerSaving = false, buzzer = true, windAndWindBreak = false, notificationForRemoteControlNavigation = true
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement