Mitsubishi heatpump [5.2.0.0;6.0.0.0)

logo

MitsubishiHeatpump Binding

This binding allows local control of supported Wi-Fi connected Mitsubishi air-to-air heat pumps. It is based on reverse engineering of the communication protocol by https://github.com/muart-group and https://github.com/pymitsubishi.

NOTE: This is a beta release, with the intention of getting it included as an official binding. There is additional functionality supported by the local API, and new channels are planned to be added.

Supported Things

The binding has only one supported Thing, which represents the heapump

Thing Configuration

The only thing required to configure is the IP address of the device on the local network. You can optionally configure the polling interval.

sample Thing Configuration

Name Type Description Default Required Advanced
hostname text Hostname or IP address of the device N/A yes no
refreshInterval integer Interval the device is polled in sec. 300 no yes

Channels

The binding supports channels for controlling different aspects of the heatpump, as well as reading some measurements.

Channel Type Read/Write Description
power Switch RW Turn the heatpump on or off
mode Number RW The heapump operating mode
setpoint Number:Temperature RW The temperature setpoint
fan Number RW Fan speed control
verticalVane Number RW Direction of the vertical vane
horizontalVane Number RW Direction of the horizontal vane
indoorTemp Number:Temperature R Temperature measured by the indoor unit
outdoorTemp Number:Temperature R Temperature measured by the outdoor unit
runtime Number:Time R Time the unit has been active
remoteTemp Number:Temperature W Use an external temp sensor instead of the built-in

If you have a temperature sensor connected to openHAB that you would like to use with the heatpump, connect it to the remoteTemp channel using the follow profile.

Full Example

Thing Configuration

Thing mitsubishiheatpump:heatpump:exampleHeatPump "Air conditioner" @ "Livingroom" [ hostname="192.168.0.128", refreshInterval=60 ]

Item Configuration

Group Heatpump "Heatpump" [AirConditioner]
Switch Heatpump_Power "Heatpump Power" (Heatpump) [Control, Power] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:power" }
Number Heatpump_Mode "Mode" (Heatpump) [Control, Mode] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:mode", widget="oh-label-card" [action="options", actionItem="Heatpump_Mode"] }
Number:Temperature Heatpump_Setpoint_Temperature "Heatpump Setpoint Temperature [%.1f %unit%]" (Heatpump) [Setpoint, Temperature] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:setpoint", unit="°C" }
Number Heatpump_Fan_Mode "Heatpump Fan Mode" (Heatpump) [Airflow, Control] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:fan", widget="oh-label-card" [action="options", actionItem="Heatpump_Fan_Mode"] }
Number Heatpump_Vertical_Vane "Vertical Vane" (Heatpump) [Airflow, Control] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:verticalVane", widget="oh-label-card" [action="options", actionItem="Heatpump_Vertical_Vane"] }
Number Heatpump_Horizontal_Vane "Horizontal Vane" (Heatpump) [Airflow, Control] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:horizontalVane", widget="oh-label-card" [action="options", actionItem="Heatpump_Horizontal_Vane"] }
Number:Temperature Heatpump_Indoor_Temperature "Indoor Temperature [%.1f %unit%]" (Heatpump) [Measurement, Temperature] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:indoorTemp", unit="°C" }
Number:Temperature Heatpump_Outdoor_Temperature "Outdoor Temperature [%.1f %unit%]" (Heatpump) [Measurement, Temperature] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:outdoorTemp", unit="°C" }
Number:Time Heatpump_Runtime "Runtime [%.1f %unit%]" (Heatpump) [Duration, Measurement] { channel="mitsubishiheatpump:heatpump:exampleHeatPump:runtime", unit="h" }
Number:Temperature Livingroom_Temp "Livingroom temperature" [Measurement, Temperature] {channel="somebinding:tempsensor:somesensor:temperature", channel="mitsubishiheatpump:heatpump:exampleHeatPump:outdoorTemp" [profile="follow"] }

Changelog

Version 1.0.1

  • Add parsing of capabilities packet
  • Improve logging
  • Minor bug fixes

Version 1.0

  • initial release

Resources

https://github.com/pacive/openhab-addons/releases/download/1.0.1-beta/org.openhab.binding.mitsubishiheatpump-5.3.0-SNAPSHOT.jar

You should include a version range in the title, instead of [beta]. Without it, it will be shown as installable for any OH version back to OH 3 - and I doubt that will work.

If you have no idea which versions it will work with, I’d use the version you’re building against as a guide. If you’re building against latest openhab-addons main, it should at least work with 5.2.0 and up, which would be [5.2.0.0;6.0.0.0). The “beta” tag is forwarded/shown by OH, so it should suffice to use that, it doesn’t also have to be in the title.

edit: There’s a quirk in the version range logic which means that you must use 4 numbers for it to work properly, which is why that’s what I suggested.

Thanks for this contribution. I did a quick test and for data reading looks good at the first glance. But setting values doesn’t work.

For Info:
AC is from Mitsubishi Electronics installed 2020 MUZ LN50 VG outside and MSZ LN50 VG inside with an M577 Wifi Interface.
Enabling trace logs I see periodically updates, but not when I change the e.g. the power item.

2026-07-24 21:07:48.492 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GenericPacket(GenericCommand): fc00013010c9030020001407f58c25a0be94bea0be04
2026-07-24 21:07:48.493 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GenericPacket(GenericCommand): fc00013010cda0bea0bea0be041100b41000000000ff
2026-07-24 21:07:48.495 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GenericPacket(GenericCommand): fc00013010ce000000000000000000000000000000f1
2026-07-24 21:07:48.496 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GenericPacket(GenericCommand): fc00013010cf000000000000290000000000000000c7
2026-07-24 21:07:48.497 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GenericPacket(GenericCommand): fc00013010d1000000000000000000000000000000ee
2026-07-24 21:07:48.497 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GetResponsePacket(GetSettingsCommand): fc6201301002000000031a0000000000000003ab0090
2026-07-24 21:07:48.505 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GetResponsePacket(GetTemperaturesCommand): fc620130100300000e0001b0000000000454b500008e
2026-07-24 21:07:48.515 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GetResponsePacket(GenericCommand): fc6201301004000000800000000000000000000000d9
2026-07-24 21:07:48.516 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GetResponsePacket(GenericCommand): fc620130100500000000000000000000000000000058
2026-07-24 21:07:48.517 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GetResponsePacket(GenericCommand): fc6201301006000000000001130200004200000000ff
2026-07-24 21:07:48.523 [TRACE] [p.internal.MitsubishiHeatpumpHandler] - Received GetResponsePacket(GenericCommand): fc620130100900000000000000000000000000000054

Thank you for testing and reporting. I am away from home for a few days, but will upload a new version with some more logging of outgoing requests when I get time, so we can try to figure out where it goes wrong.

Uploaded a new version with some improved logging and parsing of some additional info from the heatpump.