Protocol decoder:easymatic
Name | EASYMATIC |
---|---|
Description | Asynchronous, serial bus, differential |
Status | planned |
License | GPLv2+ |
Source code | decoders/easymatic |
Input | uart |
Output | easymatic |
Probes | — |
The easymatic protocol decoder can decode the thermostat Easymatic bus protocol used by De Dietrich.
Hardware
Differential link
The easymatic is linked to the boiler with two wires. This link can feed power to the easymatic. Easymatic can have two R4 accu in order to save data if the power is cut.
Boiler power is a 24V modulated with communication power.
Communication is always working.
[To be confirmed]
The hardware is similar to OpenTherm Specifications:
- differential link
- about 24V
- tension modulation for boiler
- intensity modulation for thermostat (easymatic)?
In order to capture data with a logic analyzer an interface must be created (to reduce the voltages to levels the respective logic analyzer can handle).
Electrical coding
[To be defined]
Idle state
[To be defined]
Protocol
Uart based
Whereas OpenTherm uses Manchester code, the easymatic seems to be based on Universal Asynchronous Receiver Transmitter (UART):
- 1200 baud
- 8 data bits (LSB-first)
- even parity
- one stop bit
Details
[To be discovered and detailed]
Frames are repeated twice.
To be defined: how an order is send
All frames consist of 6 bytes.
Boiler frames begin with a byte in 01, 03, 05, 07, 09, 0B, 0D. Thermostat frames begin with a "boiler beginning frame +1": 02, 04, 06, 08, 0A, 0C, 0E.
Frame description
Frame (first byte) | Equipment | 2nd byte | 3rd byte | 4th byte | 5th byte | 6th byte | Comments |
---|---|---|---|---|---|---|---|
0A | Easymatic | ? | ? | ? | ? | ? | |
0B | Boiler | ? | ? | ? | T°C outside | Example: 70.0°C = 700 = 0x02bc | |
0C | Easymatic | 00? | T°C max boiler | Set point frost protection T°C outside | |||
0D | Boiler | 00? | 00? | 00? | T°C outside | ||
0E | Easymatic | Hour | Day | Minutes | FF? | FF? | |
01 | Boiler | 40? | T°C drink water | T°C boiler water | |||
02 | Easymatic | C1? | Set point room T°C day | Set point room T°C night | |||
03 | Boiler | 00? | ? | ? | ? | ? | |
04 | Easymatic | 05? | Set point frost protection room T°C | Set point T°C drink water | |||
05 | Boiler | Boiler bits command ** *** | ? | ? | outside T°C | ***confirmation received order ? | |
06 | Easymatic | Boiler bits command ** *** | ? | ? | ? | ? | ***order ? |
07 | Boiler | ? | ? | ? | outside T°C | ||
08 | Easymatic | 00? | ? | ? | ? | ? | |
09 | Boiler | 00? | ? | ? | outside T°C |
(**) bits signification?: Boiler pump/Hydraulic valve Close//Hydraulic valve Open/Burner 1,2/Burner 1,1