OpenTherm Monitor



Záměr

3.1.2011
Mám doma kondenzační kotel THERM 28KD propojený s termostatem PT55. Chování kotle jde pomocí termostatu PT55 nastavit mnoha způsoby. Vysledovat skutečné chování kotle je však časově náročné a těžko uskutečnitelné. Proto sleduji komunikaci mezi kotlem a termostatem. Stažená data z komunikace lze pak zpětně analyzovat.


Odposlech komunikace

Kondenzační kotel THERM 28KD komunikuje s termostatem PT55 pomocí protokolu zvaného OpenTherm. Abychom získali informaci o vzájemné komunikaci,je nutno vyrobit jakýsi "odposlech" komunikace. Zapojení "odposlechu" je například zde : http://www.domoticaforum.eu/uploaded/bwired/OpenThermostat.pdf

Zapojení jsem upravil následovně:

upravené schéma připojení na ATMEGA8
Dvoulinku od zařízení typu "odposlech" vedu k ATMEGA8 + PC asi 30-ti metrovým kabelem,kde využívám i kus starého koaxiálního kabelu.

Na odporu R3 naměříme osciloskopem tyto průběhy:

průběh na odporu R3 průběhy v jiném časovém rastru jednotlivý průběh signálu jednotlivý průběh signálu

Zde je vidět,že komunikace mezi kotlem a termostatem probíhá s periodou 1 sec. Termostat pošle do kotle nějakou informaci nebo žádost o informaci z kotle. Tato informace má trvání asi 35ms. Nyní se čeká odezva z kotle. Ta přijde asi za 50ms od konce zprávy z termostatu. Délka zprávy z kotle je stejné délky jako zpráva z termostatu. Signál v komunikaci je zakódován "Manchester kódováním". OpenTherm komunikace probíhá rychlostí 1000bitů/sec.


ATMEGA8

Z uvedeného vyplývá, že bude zapotřebí komunikaci odchytit nějakým jednočipem, a poslat standardní komunikační rychlostí na PC. Rozhodl jsem se pro jednočip ATMEGA8. ATMEGA8 běží na vnitřním oscilátoru 8MHz, dekóduje signál, a posílá ho komunikační rychlostí 38400 b/s na PC. Program pro ATMEGA jsem vytvořil v BASCOM-AVR ver.1.11.9.0. Do programu je začleněn digitální filtr vstupního signálu. Nějaká filtrace byla nutná, bez ní to chytalo falešné pulzy způsobené dlouhým vedením. ATMEGA8 "měří" délku pulzů z komunikace,výsledkem jsou čísla vyjadřující:
(10-13) - krátká log1
(14-17) - dlouhá log1
(1-3) - krátká log0
(4-7) - dlouhá log0
Výsledný řetězec znaků před dekódováním vypadá následujícím způsobem:
0,11,3,11,5,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,14,2,12,5,11,2,14,5,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,11,2,14,0,0,0,0 Tato data jsou jednočipem dekódovaná do konečné podoby a zaslána na com port PC.

Zapojení ATMEGA8:

zapojení ATMEGA8 PonyProg2000

Zobrazení průběhu signálu mezi termostatem a kotlem (žlutý-1000b/s) a zpracovaná dávka dat do PC (modrý-38400b/s):

průběhy z OpenTherm a do PC průběhy v jiném časovém rastru txt

Hex soubor pro ATMEGA8 je zde: './atmega8/OT1.hex'



Vizualizace PROMOTIC

Ke zpracování dat je vhodný např. softwarový nástroj Promotic. Systém PROMOTIC od verze 8 umožňuje bez licenčního klíče vyvíjet a provozovat PROMOTIC aplikaci zdarma, tzn. jako freeware. Jako freeware (do 30-ti proměnných) je možno využívat všechny komunikační ovladače a rozhraní, která jsou k dispozici v plném režimu. Aplikaci PROMOTIC o velikosti do 30 proměnných je možno bez HW/SW licenčního klíče provozovat bez časového omezení. V dané aplikaci tuto podmínku splníme, můžeme ho tedy plně využívat.
Tento softwarový nástroj si můžete stáhnout zde: http://www.promotic.eu/cz/promotic/download/download.htm (Promotic 8.0.9)
Aplikace vytvořená v Promoticu, která umí zpracovávat data připravená jednočipem ATMEGA8 je zde: './promotic/A89.zip'

Náhledy na vizualizaci a trendy jsou zde:

vizualizace trendy

[CNW:Counter]

k.balvar@seznam.cz