SkillAgentSearch skills...

P1P2MQTT

Monitor and control Daikin/Rotex Altherma heat pumps from Home Assistant directly via the 2-wire P1/P2 thermostat interface. Also enables reading other Japanese Home Bus System based standards, a.o. Hitachi H-link, Hisense H-NET, MHI, Daikin DIII-NET (F1/F2) bus, Mitsubishi M-Net bus, Toshiba TCC-Link, Panasonic/Sanyo SIII-Net, Haier, and York.

Install / Use

/learn @Arnold-n/P1P2MQTT

README

Control your heat pump from Home Assistant with P1P2MQTT

Since the v0.9.46 release, climate controls are automatically configured in Home Assistant. v0.9.46 (or later) comes with a lot of improvements and changes, please see the v0.9.46 release notes.

This project primarily supports control of Daikin systems, but also monitoring of other brands with HBS-based interfaces (see below).

Monitor and control your Daikin system from Home Assistant

With the P1P2MQTT project (previously P1P1Serial) you can monitor and control your heat pump or A/C system - locally - from Home Assistant or via MQTT. Various Daikin systems, especially Altherma full electric and hybrid, Sky Air, and VRV systems, can be monitored and controlled via the P1/P2 2-wire room thermostat interface without any need for a cloud API. Daikin (hybrid) heat pump systems are usually controlled by a room thermostat over a 2-wire HBS interface, called P1/P2, which combines data and power. This project enables to monitor (and, for some systems, control) your Daikin system by connecting to the P1/P2 interface.

Understanding your heat pump system operation is crucial to optimizing comfort, lifetime and reducing your energy bill. We reduced our energy bill by more than 100 Euro per year by monitoring, understanding, and then improving our Daikin system settings.

Hopefully, this project will reduce your energy consumption/CO2 emissions and will increase comfort at your home. You can support this project by sharing your feedback, buying a P1P2MQTT bridge from me (please add brand/model/country), sponsoring this project or buying me a coffee. It helps to bring functionality to other brands and models.

Home Assistant 1

Home Assistant 2

What do you need?

  • P1P2MQTT bridge to connect to the P1/P2 thermostat interface on your Daikin system
  • MQTT server (you can use the built-in MQTT server in Home Assistant)
  • Home Assistant (or another MQTT-based solution)

Instructions to start using Home Assistant.

P1P2MQTT bridge open

P1P2MQTT bridge closed

The P1P2MQTT bridge (v1.2) is a stand-alone bus-powered circuit, based on an ESP8266, an ATmega328P, and the MAX22088 HBS adapter. An optional power supply can be connected for systems where the interface cannot provide power. Factory-assembled pre-programmed P1P2MQTT bridges with enclosures are available from me; if you are interested, please mail me for details and indicate which brand and model system you have, and where you live. Unfortunately, I cannot ship everywhere yet.

After connecting the P1P2MQTT bridge to your P1/P2 interface (in parallel to the room thermostat), the bridge will create an AP (default SSID: P1P2, initial password: P1P2P3P4), and you can enter WiFI and MQTT server credentials. The P1P2MQTT bridge will restart and will configure the necessary controls in Home Assistant. The P1P2MQTT bridge

  • monitors and (for various models) controls the Daikin heat pump via the P1/P2 bus via MQTT or directly from Home Assistant,
  • automatically generates entities and controls in HA via MQTT discovery,
  • is OTA upgradable (both ESP and ATmega) (and if that fails, using an ESP01-programmer via an ESP01-compatible connector),
  • is accessible via telnet,
  • has 4 LEDS for power (white), reading (green), writing (blue), or to signal an error (red),
  • is powered entirely by the P1/P2 bus, no external power supply is needed, has low power consumption (only 31mA at 15V or 0.5W from the P1/P2 bus),
  • monitors P1/P2 DC bus voltage,
  • has screw terminals for P1 and P2 wires, and
  • fits nicely in a small semi-transparant enclosure (80mm x 40mm x 20mm).

For Daikin Altherma systems you can set, via Home Assistant:

  • DHW (domestic hot water) on/off
  • DHW temperature setting
  • heating on/off
  • heating/cooling/auto mode
  • leaving water temperature setting
  • room temperature setting
  • quiet mode on/off, and quiet level 1-3 (can be used as power limiter)
  • leaving water temperature mode (weather-dependent or absolute, programmed or not)
  • request a defrost operation
  • restart Daikin system
  • change certain field settings (overshoot, max room temperature modulation, overshoot)
  • offset on temperature sensors to compensate for measurement errors
  • gas price (for hybrid systems)

For some Daikin VRV/Sky Air systems you can set, via Home Assistant:

  • heating on/off
  • heating/cooling/auto/dry/fan-only mode
  • room temperature setting
  • fan mode

For other brands and for models that are not (yet) supported, the interface only observes bus traffic and interprets/converts it to Home Assistant entities. Contributions are welcome to make more systems supported!

Which brands and models are supported?

Daikin systems

Daikin systems can be identified by their series identifier, which is the first letter of the indoor unit or monoblock unit (E or F, or R for Rotex). It is often E for Daikin heat pump systems, R for similar Rotex heat pump systems, and F for VRV/Sky Air systems. Some systems starting with a C are also supported.

The system can be further identified by generation, which is a single letter or two letters after the capacity code, this represents the major version number (A, B, C, CA, CB, D, E, ..).

Daikin(/Rotex) E-series

Recent Altherma 3 (full-electric and hybrid) systems are generally supported. Version CA, CB, D, and newer are supported. Older versions AA, AB, AC, and BB can only be monitored and can likely not be controlled. Version AD can perhaps be controlled. Some systems (EWYQ, EKH*) are very limited and can only be monitored.

Not all Rotex R-series systems have the same capability as their Daikin counterpart.

Daikin F-series

Various F-series systems can be monitored and usually also controlled. There are various systems with major version A, B, C, L, LA, M, and P, and PA which are currently supported.

It is logical to assume that devices supported by commercial auxiliary controllers (Daikin LAN adapter, Zennio KLIC-DA KNX interface, Coolmaster, Airzone) could be supported by this project.

Daikin F1/F2 (DIII-Net)

Although electrically supported, no information on the protocol is available yet.

Daikin Ech2O

The Altherma 3 R ECH2O models with a E*P30E* or E*P50*E code use P1/P2 and are supported by the P1P2MQTT bridge.

Other older Altherma 3R ECH2O models with a E*P50D* code originate from Rotex and use CANbus to connect to the RoCon+HP controller and are not supported by the P1P2MQTT bridge. These models are perhaps supported by the pyHPSU project.

Daikin Fit, Goodman, Amana

Daikin models starting with a D are not supported. These include Daikin Fit models in the USA, originating from Amana and Goodman which were acquired by Daikin. These models do not use P1/P2 as the thermostat interface. Perhaps they use RS485, for which Net485 could be useful.

Rotex

Various Rotex models are very similar to Daikin models, often with the initial 'E' replaced by 'R'.

Other Rotex models like the Rotex HPSU Compact series use a CANbus connected controller like the RoConB1, instead of P1/P2. Perhaps these models are supported by the pyHPSU project.

Hitachi H-link2

Data decoding for a few Hitachi models is available. On one Hitachi system it is possible to monitor of air inlet/outlet, outdoor temperature, gas pipe temperature, compressor temperature and frequency, valve settings, and more.

Please note that the Hitachi H-link2 is also known as H-link, but confusingly, H-link is also used for a different serial protocol.

Early experiments are currently done on Hitachi systems with the code in this branch to reverse-engineer the protocol. Code to read data from a Hitachi Yutaki S80 Combi heat pump is available here.

Mitsubishi Heavy Industries (MHI) X-Y line protocol

Some limited data decoding is available (temperature, power, swing, fan speed, RC mode).

Mitsubishi M-net

Some limited data decoding can be done based on Len Shustek's protocol observations),

Toshiba TCC-link

Toshiba TCC-Link (used for indoor-outdoor) is also HBS-based, so monitoring raw hex data should be possible. However, the Toshiba AB-protocol is different (schematics and code at issalig/toshiba_air_cond, burrocargado/toshiba-aircon-mqtt-bridge and on this Hatena Blog) post.

Panasonic/Sanyo SIII-Net; perhaps Haier, York...

Monitoring raw hex data may be possible if the interface is indeed HBS-based. The Panasonic R1/R2 bus is likely HBS-based.

Warnings

Any use is entirely at your own risk (CC BY-NC-ND 4.0 Section 5 applies). Take care when using control modes. There is always a risk when you write to the bus based on reverse engineering assumptions. Reading without writing should be safe though. My system has been running continuously in controller mode (monitoring/reading and controlling/writing) for more than 3 years now. Still, use is entirely at your own risk.

  • Use the correct firmware images.
  • Be aware that the P1/P2 bus provides limited power: do not connect more than 2 devices, or use a separate power supply for the P1P2MQTT bridge.
  • It is advised to connect/disconnect devices to the P1/P2 bus only if the power o
View on GitHub
GitHub Stars445
CategoryDevelopment
Updated2h ago
Forks69

Languages

C++

Security Score

85/100

Audited on Mar 27, 2026

No findings