Skip to content

Commit 194ddf5

Browse files
committed
bugfix 0x30 packet, lox config
1 parent 605a514 commit 194ddf5

File tree

14 files changed

+223
-154
lines changed

14 files changed

+223
-154
lines changed

Payload-data-write.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,12 @@ Payload of these packets has specific structure, it contains pairs of **paramete
5555

5656
The following data types were observed in the parameter values. Little endian bytes ordering is used in multi-byte data types:
5757

58-
| Data type | Definition |
59-
| --------- | ----------------------------------- |
60-
| u8 | unsigned 8-bit integer 0 .. 255 |
61-
| s16 | signed 16-bit integer -32768..32767 |
58+
| Data type | Definition (read) | Definition (write) |
59+
| ----------- | ------------------------------------- | ------------------------------------- |
60+
| u8 | unsigned 8-bit integer 0 .. 255 | |
61+
| s16 | signed 16-bit integer -32768..32767 | |
62+
| u8div2min16 | unsigned 8-bit integer 0 .. 255, divide by 2 and deduct 16 | multiply by 2 and add 32 |
63+
6264

6365
Explanation of **s16** format: a temperature of 21.5°C is represented by the value of 215 in little endian format (0xD700). A temperature of -1°C is represented by the value of -10 in little endian format (0xF6FF).
6466

@@ -105,13 +107,20 @@ All temperature values in this table are in 0.1 °C resolution.
105107
| ---------------- | ---------------------- | --------- | ------------------------------------------------------------ |
106108
| 00 | 12h/24h time format | u8 | 0x00: 12h time format<br>0x01: 24h time format |
107109
| 31 | Enable holiday ?? | u8 | ?? |
110+
| 39 | Preset LWT deviation heating comfort | u8div2min16 | |
111+
| 3A | Preset LWT deviation heating eco | u8div2min16 | |
108112
| 3B | Decimal delimiter | u8 | 0x00: dot<br/>0x01: comma |
109113
| 3D | Flow units | u8 | 0x00: l/min<br/>0x01: GPM |
110114
| 3F | Temperature units | u8 | 0x00: °F<br/>0x01: °C |
111115
| 40 | Energy units | u8 | 0x00: kWh<br/>0x01: MBtu |
116+
| 45 | Preset room cooling comfort | u8div2min16 | |
117+
| 46 | Preset room cooling eco | u8div2min16 | |
118+
| 47 | Preset room heating comfort | u8div2min16 | |
119+
| 48 | Preset room heating eco | u8div2min16 | |
120+
| 49 | Preset mode | u8 | 0x00: schedule<br>0x01: eco<br>0x02: comfort |
112121
| 4B | Daylight saving time | u8 | 0x00: manual<br>0x01: auto |
113122
| 4C | Quiet mode | u8 | 0x00: auto<br/>0x01: always off<br>0x02: on |
114-
| 4D | Quiet mode level | u8 | 0x00: level 1<br/>0x01: level 2<br/>0x02: level 3 |
123+
| 4D | Quiet mode level | u8 | 0x00: level 1<br/>0x01: level 2<br/>0x02: level 3 (most silent) |
115124
| 4E | Operation mode | u8 | 0x00: heating<br/>0x01: cooling<br/>0x02: auto |
116125
| 5B | Holiday | u8 | 0x00: off<br>0x01: on |
117126
| 5E | Heating schedule | u8 | 0x00: Predefined 1<br>0x01: Predefined 2<br>0x02: Predefined 3<br>0x03: User defined 1<br>0x04: User defined 2<br>0x05: User defined 3<br>0x06: No schedule<br> |

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,11 +107,16 @@ This controller has a built-in webserver that allows you to configure the contro
107107
- can not control Altherma by sending commands via UDP
108108
* **Connected (address 0xF..)**. This Arduino device is connected to the P1/P2 bus for both reading and writing (sending commands). The controller can write to the P1/P2 bus only after it has been allocated an address by the heat pump (Arduino will accept any address in the 0xF0 ~ 0xFF range). If your **Enable Write to P1P2** setting is set to *Manually*, you can manually disable write mode (release the address) and downgrade the connection to read only.
109109

110-
**External Controllers**. Shows all external controller connected to the P1/P2 bus (incl. their addresses) and provides info whether additional controller is supported by your heat pump. These messages can show up:
110+
**Other Controllers**. Shows all other external controllers connected to the P1/P2 bus (incl. their addresses) and provides info whether additional controller is supported by your heat pump. These messages can show up:
111111
* **Another device is connected (address 0xF..)**. Another device is connected to the P1/P2 bus using address 0xF.. This "another device" can be second Arduino device, commercial controller by Daikin or by third party (Daikin LAN adapter, Daikin Madoka, DCOM LT/MB, Zennio KLIC-DA KNX, Coolmaster, etc.).
112112
* **Additional device can be connected (address 0xF..)**. Additional device can be connected to the P1/P2 bus. How many devices can be connected (ie. how many addresses are available for external devices) depends on the model of the heat pump. For example, Altherma LT supports only 1 device (address 0xF0), Altherma 3 support up to 3 devices (addresses 0xF0, 0xF1 and 0xFF).
113113
* **Additional device not supported by the pump**. All available addresses have been allocated to external controllers. The heat pump (the main Daikin controller) does not support additional device on the P1/P2 bus.
114114

115+
**Write Command**. You can send a P1/P2 write command directly from web interface, for testing or reverse-engineering P1/P2 write commands. For the list of commands identified in the P1/P2 protocol (through reverse engineering) see [Payload-data-write.md](Payload-data-write.md). The format of the write command send via web interface is identical to the command sent via UDP:
116+
* **Packet Type**. The first byte is the packet type. Only supported packet types are listed in the drop-down menu.
117+
* **Param**. Parameter number, two bytes **<ins>in little endian format</ins>**! For example, parameter number 03 is inserted as `03` `00`.
118+
* **Value**. Parameter value, the number of bytes differs for various packet types. See PACKET_PARAM_VAL_SIZE in advanced settings for the correct number of bytes. Value is also **<ins>in little endian format</ins>**!
119+
115120
**Daikin EEPROM Writes**. Every time you send **Write Command** through the web interface or a command via UDP, settings of the main Daikin controller (= controller on your heat pump) change and new values are written to its internal EEPROM. **<ins>Your main Daikin controller's EEPROM has a limited number of writes, so keep an eye on this counter in order to prevent EEPROM wear! It is adviced to do max 7000 writes per year (19 writes/day on average)</ins>**.
116121
* **Stats since ...**. Date and time since when **Daikin EEPROM Writes** are recorded. If you significantly change the date on the heat pump, reset the stats (so that **Average per Day** is calculated properly).
117122
* **Commands Sent**. Total number of writes made by this Arduino controller since the date and time recorded in **Stats since ...**. Click **Reset** to reset this stat.
@@ -124,11 +129,6 @@ This controller has a built-in webserver that allows you to configure the contro
124129
* **Yesterday**. Number of writes made yesterday, updated at midnight. Should not significantly exceed average writes per day.
125130
* **Today**. Number of writes made today out of daily **EEPROM Write Quota**. If you reach the quota and you still need to send a P1/P2 write command, you can **Clear Quota**
126131

127-
**Write Command**. You can send a P1/P2 write command directly from web interface, for testing or reverse-engineering P1/P2 write commands. For the list of commands identified in the P1/P2 protocol (through reverse engineering) see [Payload-data-write.md](Payload-data-write.md). The format of the write command send via web interface is identical to the command sent via UDP:
128-
* **Packet Type**. The first byte is the packet type. Only supported packet types are listed in the drop-down menu.
129-
* **Param**. Parameter number, two bytes **<ins>in little endian format</ins>**! For example, parameter number 03 is inserted as `03` `00`.
130-
* **Value**. Parameter value, the number of bytes differs for various packet types. See PACKET_PARAM_VAL_SIZE in advanced settings for the correct number of bytes. Value is also **<ins>in little endian format</ins>**!
131-
132132
**P1P2 Packets**.\*\* Counters for packets read from the P1/P2 bus or written to the P1/P2 bus. If any of the counters rolls over the unsigned long maximum (4,294,967,295), all counters will reset to 0.
133133
* **Read OK**. Number of packets read from the P1/P2 bus, without errors. Not all of them are sent via UDP (see the **Packet Filter** settings). Packets are read from the P1/P2 bus (and sent via UDP) even if the controller is not connected to the P1/P2 bus.
134134
* **Read Error**. Error while attempting to read packet from the P1/P2 bus. Possible reasons:

0 commit comments

Comments
 (0)