This version comes with a lot of changes, including automatic configuration of HA controls. This may break existing set-ups. Please let me know if you encounter any issue or bug.
Changes
- HA control
- Change of topic structure
- Various improvements
- quiet/silence levels supported (useful for power limitation)
- bridge configuration via P command
- user-defined timestamp support
- E-series Fake temperature sensor
- E-series Support for external electricity meter for realtime COP calculation
- F-series fan speeds 0/1/2 supported in write commands
- F-series model suggestions and configuration
- Merge MHI/Hitachi code into main branch
- Error mask for MHI/Hitachi
- W_SERIES firmware for HomeWizard 1-phase MID electricity meter
- Security and double-reset AP
- Use of MQTT messages and RTC memory for data caching and quick power loss recovery
- Remove json output, old G/H/Z/other commands, bindata, hex-input option
See also known issues. For Home Assistant configuration, you can follow the instructions for Home Assistant.
The old topic structure was P1P2/P/\<4th IPv4 byte\>/\<src\>/\<cat\>/\<entity\>
.
The new topic structure is highly configurable but is, by default, P1P2/P/P1P2MQTT/bridge0/\<src\>/\<cat\>/\<entity\>
.
It is recommended to switch to the new topic convention.
If you prefer to keep the old topic structure of previous firwmares, this can be done using the following steps and commands:
J0
(silence MQTT before update)- flash ATmega and ESP8266 with new firmware v0.9.46
P
(show configuration parameters)P28 0
(do not use bridge name in topic)P13 122
(set device name to (for example) 122)D70
(delete old home assistant configs)J2
(enable MQTT output)D5
(save changes)D0
(restart ESP)
Home Assistant should automatically discover various devices, which you can add to your HA dashboards:
Device | Function |
---|---|
HC_Bridge | Settings and status of P1P2MQTT bridge |
HC_Sensors | Temperature and other sensor information |
HC_Setpoints_Main | Temperature setpoints main zone |
HC_Setpoints_Add | Temperature setpoints additional zone |
HC_Setpoints_Room | Temperature setpoints room |
HC_Prices | Electricity/gas price |
HC_Power | Power consumption (requires external meter) and production |
HC_Mode | Operating modes |
HC_FieldSettings | Field settings; changing any of these requires a system restart |
HC_DHW | DHW settings and info |
HC_Quiet | Quiet/silent mode setting |
HC_COP | COP calculations |
HC_Meters | Hours/kWh counters, Counter_Control_Function required to update counters |
HC_Unknown | Some unknown entities |
In addition, HC_Setup should be auto-discovered but this is useful only for setup purposes, you may add this to a dashboard but it is not really necessary as it can be accessed from the configuration menu in HA.
In this step some entities may be missing, which only pop up when the P1P2MQTT bridge operates in control mode (L1
). This may take 5-20 minutes. It is therefore recommended to first start control mode (L1
via telnet/MQTT or with Control_Function
switch in HA), and add the HA devices to dashboards afterwards.
Various sensors used in earlier releases have been renamed, you may have to re-add devices and entities to your HA dashboard or change your scripts.
To delete all (old) topics from earlier versions, and rebuild topics according to the current firmware and settings use command D12
.
Quiet levels can now be selected.
Heat pumps with support for silence levels use lower fan and compressor settings in silent modes. Surprisingly the silent levels can be more efficient (around 5%) , because the fan consumes less power in silend mode. This effect outweights any reduced effectiveness of the heat exchanger.
The old B and I commands have been dropped. The P command enables to configure the bridge:
P
P00: wifiManager SSID is P1P2MQTT
P01: wifiManager password is P1P2P3P4
P02: MDNS name is P1P2MQTT_bridge0
P03: use static-IP (0=DHCP) is 0
P04: static-IP IPv4 address is <empty string>
P05: static-IP IPv4 gateway is <empty string>
P06: static-IP IPv4 netmask is <empty string>
P07: MQTT server IPv4 address is 192.168.4.12
P08: MQTT port is 1884
P09: MQTT username is P1P2
P10: MQTT password is P1P2
P11: MQTT clientname is P1P2MQTT_bridge0
P12: MQTT topic prefix is P1P2
P13: device name is P1P2MQTT
P14: bridge name is bridge0
P15: HAconfig prefix is homeassistant
P16: telnet magic word is _
P17: OTA hostname is P1P2MQTT_bridge0
P18: OTA password is P1P2MQTT
P19: output mode is 0x0002
P20: output filter is 1
P21: noWiFi (for eth) is 0
P22: use device for HA name is 0
P23: use device name in devId is 0
P24: use device name in topic is 1
P25: use device name in ent. is 0
P26: use bridge for HA name is 0
P27: use bridge name in devId is 0
P28: use bridge name in topic is 1
P29: use bridge name in ent. is 0
P30: HA short device name is HC
P31: ESPhwID [do not change] is 1
P32: (reserved) is <empty string>
P33: use NTP for time stamp is 2
P34: user-defined TZ is <empty string>
P35: mqtt_Electricity_Power is P1P2/P/meter/U/9/Electricity_Power
P36: mqtt_Electricity_Total is P1P2/P/meter/U/9/Electricity_Total
P37: mqtt_BUH_Power is P1P2/P/meter/U/9/Electricity_BUH_Power
P38: mqtt_BUH_Total is P1P2/P/meter/U/9/Electricity_BUH_Total
P39: R4T offset (0.01C) RWT is 0.20
P40: R1T offset (0.01C) mid is -0.18
P41: R2T offset (0.01C) LWT is 0.00
P42: RT offset (0.01C) room is 0.00
P43: use R1T instead of R2T is 0
P44: use energytotal is 1
P45: Electricity use <bridge is 35274
P46: Energy produced <bridge is 131948
P47: HA dashboard setup is 0
Factory reset scheduled (D8 to undo): no
EEPROM modifications pending (D5 to save): no
Waiting for consumption/production counters (D13): no
Parameters P00
/P01
configure the AP which is created when WiFi connection fails. For example, to set a custom password for the AP which automaically starts if WiFi is unavailable, use command P1 MYPASSWORD
. If you forget your AP password, use a double-reset to recreate an AP with the default SSID/password.
If you use more than one P1P2MQTT bridge on the same MQTT server, you should ensure that they have different bridge names and/or device names. Changing these in parameter P13 and P14 will re-initialize parameters P02
and P11
and P17
to ensure uniqueness in your network.
Parameter P16 provides for a rather simple protection mechanism for telnet access. It must start with an underscore, and if defined, the defined word must be typed as login-code.
Parameter P19 determines the bridge's output mode, and corresponds to the J
command that still works but with different values. The J
command shows the options. By default hex data is no longer output, only MQTT data for HA.
J
Outputmode 0x0002 is sum of
0x 0x0001 to output raw packet data (including pseudo-packets) over mqtt P1P2/R/xxx
1x 0x0002 to output mqtt individual parameter data over mqtt P1P2/P/xxx/#
0x 0x0004 (reserved)
0x 0x0008 to have mqtt include parameters even if functionality is unknown, warning: easily overloads ATmega/ESP (best to combine this with outputfilter >=1)
0x 0x0010 ESP to output raw data over telnet
0x 0x0020 to output mqtt individual parameter data over telnet
0x 0x0040 ESP to output timing info over telnet
0x 0x0080 (reserved)
0x 0x0100 to include non-HACONFIG parameters in P1P2/P/#
0x 0x0200 (reserved)
0x 0x0400 (reserved)
0x 0x0800 to restart HA-data communication (and throttling) after MQTT reconnect
0x 0x1000 to output timing data over P1P2/R/xxx (prefix: C/c)
0x 0x2000 to output error data over P1P2/R/xxx (prefix: \*)
0x 0x4000 (reserved)
0x 0x8000 to ignore serial input from ATmega
Parameter P35
refers to an MQTT topic used to input electricity meter readings (in Watt) for COP_Realtime
calculation. Parameters P36
-P38
are reserved for future use.
Parameters P39
-P42
enable you to correct the temperature readings. Wrong sensor readings may give a wrong offset on the calculated heat production.
In most systems, temperature sensor R1T measures the circulating water temperature after the main heat pump heat exchanger, but before the back-up heater, and R2T measures the leaving water temperature (LWT) after the back-up heater. In some systems R2T is not present, and P43
can be set to 1 in that case. The bridge will then use R1T instead of R2T for heat production calculations.
To stimulate optimal heat pump operation, the system measures the average COP over the full lifetime of your system (COP_lifetime
), over the lifetime before you connected the P1P2MQTT bridge (COP_before_bridge), and after you connected the P1P2MQTT bridge (COP_after_bridge). This is done by logging the counters for consumed compressor electricity (heating) and for producted energy (compressor heating). When the system starts, it waits until the counters are visible on the P1/P2 interface. You may need to help it by either (1) requesting energy info data via the remote control, (2) pressing the Set\_Cons\_Prod\_Counters
button in device HC_Bridge in HA, (3) manually enter parameters P45
and P46
.
In some Daikin systems, the "electricity consumed compressor heating" kWh counter stops to count (a known Daikin bug), but the "electricity consumed total" continues to count. As a work-around, parameter P44
enables to use the total counter for COP calculations. This work-around only works for hybrid heating-only systems, but may not solve the problem on systems with a back-up heater or systems that cool.
Command P33
shows the options currently supported for message timestamps. Option 0 indicated NTP should not be used. Option 1 uses a user-defined string which can be defined as parameter P34
. Options 2 and 3 are predefined for Europe and UK. More options will be added later.
P33
P33: use NTP for time stamp is 2
Options for TZ parameter P33
0: use ESP uptime
1: user-defined TZ ()
2: CET-1CEST,M3.5.0/02,M10.5.0/03
3: GMT0BST,M3.5.0/1,M10.5.0
Some Daikin systems expect the P1P2MQTT bridge to report a room temperature. To avoid an error message, a fake room temperature sensor can be configured using the F command. Command F0
will switch this function off. Command F1
will switch this function on, with default reported room temperature of 20.0C. Command F1 205
will change the fake temperature sensor to 20.5C. The permitted room temperature range is 0.0C-25.5C.
The topic in parameter P35
, default P1P2/P/meter/U/9/Electricity_Power
, can be used to provide electricity meter readings (in Watt) for calculating COP_Realtime
.
If you happen to own a HomeWizard DIN rail MID single-phase meter, it can be polled by the provided firmware, which should run on a separate ESP8266; this can be a simple ESP01S powered by the USB programmer provided with the P1P2MQTT bridge.
Fan speed argument 0/1/2 now also allowed.
Based on observed P1/P2 packet types and lengths, the P1P2MQTT bridge may provide a suggestion which model to configure with the M
command. The recommendation is visible in Home Assistant from which configuration is also possible.