Difference between revisions of "Protocol decoder:Easymatic"
(27 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
| status = planned | | status = planned | ||
| license = GPLv2+ | | license = GPLv2+ | ||
| source_code_dir = | | source_code_dir = easymatic | ||
| image = | | image = | ||
| input = | | input = uart | ||
| output = | | output = easymatic | ||
| probes = — | | probes = — | ||
| optional_probes = | | optional_probes = | ||
| options = | | options = | ||
}} | }} | ||
Line 20: | Line 20: | ||
=== Differential link === | === 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 cut. | 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. | Boiler power is a 24V modulated with communication power. | ||
Line 27: | Line 28: | ||
[To be confirmed] | [To be confirmed] | ||
The hardware is similar to [https://en.wikipedia.org/wiki/OpenTherm OpenTherm Specifications] : | The hardware is similar to [https://en.wikipedia.org/wiki/OpenTherm OpenTherm Specifications]: | ||
* differential link | |||
* about 24V | |||
* tension modulation for boiler | |||
* intensity modulation for thermostat (easymatic)? | |||
In order to | 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 === | === Electrical coding === | ||
[To be | [To be defined] | ||
=== Idle state === | === Idle state === | ||
[To be | [To be defined] | ||
== Protocol == | == Protocol == | ||
Line 47: | Line 48: | ||
=== Uart based === | === Uart based === | ||
Whereas [https://en.wikipedia.org/wiki/OpenTherm OpenTherm] | Whereas [https://en.wikipedia.org/wiki/OpenTherm OpenTherm] uses [https://en.wikipedia.org/wiki/Manchester_code Manchester code], the easymatic seems to be based on [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter Universal Asynchronous Receiver Transmitter] (UART): | ||
* 1200 baud | |||
* 8 data bits (LSB-first) | |||
* even parity | |||
* one stop bit | |||
=== | === Details === | ||
[To be discovered and detailed] | [To be discovered and detailed] | ||
Frames are repeated twice | 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. | |||
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. | ||
Thermostat frames begin with a "boiler beginning frame +1" : 02, 04, 06, 08, 0A, 0C, 0E | |||
''Frame | ''Frame description'' | ||
{| | {| border="0" style="font-size: smaller" class="alternategrey sortable sigroktable" | ||
!Frame (first byte) | !Frame (first byte) | ||
! | !Equipment | ||
! | !2nd byte | ||
!3rd byte | |||
!4th byte | !4th byte | ||
!5th byte | !5th byte | ||
Line 79: | Line 80: | ||
!Comments | !Comments | ||
|- | |||
| 0A | |||
| Easymatic | |||
| ? | |||
| colspan="2" | ? | |||
| ? | |||
| ? | |||
| ? | |||
|- | |||
| 0B | |||
| Boiler | |||
| ? | |||
| ? | |||
| ? | |||
| colspan="2" | T°C outside | |||
| Example: 70.0°C = 700 = 0x02bc | |||
|- | |||
| 0C | |||
| Easymatic | |||
| 00? | |||
| colspan="2" | T°C max boiler | |||
| colspan="2" | Set point frost protection T°C outside | |||
| | |||
|- | |||
| 0D | |||
| Boiler | |||
| 00? | |||
| 00? | |||
| 00? | |||
| colspan="2" | T°C outside | |||
| | |||
|- | |- | ||
| | | 0E | ||
| Easymatic | |||
| Hour | |||
| Day | |||
| Minutes | |||
| FF? | |||
| FF? | |||
| | |||
|- | |||
| 01 | |||
| Boiler | |||
| 40? | |||
| colspan="2" | T°C drink water | |||
| colspan="2" | T°C boiler water | |||
| | |||
|- | |||
| 02 | |||
| Easymatic | |||
| C1? | |||
| colspan="2" | Set point room T°C day | |||
| colspan="2" | Set point room T°C night | |||
| | |||
|- | |||
| 03 | |||
| Boiler | |||
| 00? | |||
| ? | | ? | ||
| ? | | ? | ||
| ? | | ? | ||
| ? | | ? | ||
| | |||
|- | |||
| 04 | |||
| Easymatic | |||
| 05? | |||
| colspan="2" | Set point frost protection room T°C | |||
| colspan="2" | Set point T°C drink water | |||
| | |||
|- | |||
| 05 | |||
| Boiler | |||
| Boiler bits command ** *** | |||
| ? | |||
| ? | |||
| colspan="2" | outside T°C | |||
| ***confirmation received order ? | |||
|- | |||
| 06 | |||
| Easymatic | |||
| Boiler bits command ** *** | |||
| ? | |||
| ? | |||
| ? | |||
| ? | |||
| ***order ? | |||
|- | |||
| 07 | |||
| Boiler | |||
| Alarm ? | |||
| ? | |||
| ? | |||
| colspan="2" | outside T°C | |||
| | |||
|- | |||
| 08 | |||
| Easymatic | |||
| 00? | |||
| ? | |||
| ? | |||
| ? | |||
| ? | |||
| | |||
|- | |||
| 09 | |||
| Boiler | |||
| 00? | |||
| ? | |||
| ? | |||
| colspan="2" | outside T°C | |||
| | |||
|} | |} | ||
(**) bits signification?: Boiler pump/Hydraulic valve Close//Hydraulic valve Open/Burner 1,2/Burner 1,1 | |||
== Resources == | == Resources == | ||
* [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter Wikipedia: Universal asynchronous receiver/transmitter] | * [https://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter Wikipedia: Universal asynchronous receiver/transmitter] | ||
* [http://www.dedietrich-heating.com/index.php/products/product_ranges/floor_standing_boilers/oil_condensing_wingo | * [http://www.dedietrich-heating.com/index.php/products/product_ranges/floor_standing_boilers/oil_condensing_wingo De Dietrich information] | ||
[[Category:Protocol decoder]] | [[Category:Protocol decoder]] | ||
[[Category:UART]] | [[Category:UART]] |
Latest revision as of 07:12, 11 April 2018
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 | Alarm ? | ? | ? | 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