Atag Solar-Q interfacing

Beste CO'ers,

Sinds kort hebben we een Atag Solar-Q zonneboiler geïnstalleerd staan. Heel mooi elegant ding die naar zeggen ook een groot rendement heeft en veel energie uit zn zonnecollectortje haalt. Het enige probleem is dat niemand weet hoeveel dat ding nou eigenlijk bespaard.

Uiteindelijk wil ik dus graag weten hoeveel kW (of kJ) het zonnepaneel heeft bijgedragen aan de warmtevoorziening.

Situatieschets:
Atag Solar-Q (ketel-boiller) ---> 2 draden (RS485 bus + power) ----> Atag BrainQ thermostaat

Nu wil ik graag weten of iemand ervaring heeft met het interfacen aan de Solar-Q. Ik heb al wel op het forum gevonden dat iemand een andere ketel van Atag had geinterfaced. Maar ik wil graag weten of dat met deze ook kan.

Als ik data van temp-sensors en pompen uit de ketel kan halen, zal ik hier zelf een databaseje mee vullen en hier eventueel een webservertje aan hangen.

Alle informatie/ideeën zijn van harte welkom!!

Groeten,
Sytse

Euh......

is dat niet gewoon een OpenTherm verbinding ipv rs485?
rs485 heeft geen voeding volgens mij

Is iemand hier al verder mee gekomen ?

Ook ik heb een Q-Solar met een brainq thermostaat.
Als ik het RS485 signaal aftap tussen de thermostaat en de ketel dan krijg ik een repeterende string hex data over mijn scherm waar ik niet veel informatie uit kan halen.

Alle hulp of pointers welkom.

Kun je de data die je gezien hebt eens posten?

Euh......

Dit patroon zie ik terugkomen :
0001003A A3034242 42C3C3C3 444444C5 C5C5C6C6 C6474747 48484841 06418210 200121F1 22BD0306 41064182 10201021 01020100 3F000000 00000000 00000000 5F440306 41064182 10200121 F2B98F03 06410641 82102010 21020000 00000000 00000000 00000000 00DC8603 06410641 82102001 21F3309E 03064106 41821010 01210917 8A030682 41200921 0334273F DB7F0000 27AC5203 41064182 10200121 F48FEA03 06410641 82101001 2109178A 03068241 20092104 00F2B920 00000000 7A3C0341 06418210 200121F5 06FB0306 41064182 10100121 09178A03 06824120 09210500 00D31388 130404CC 35034106 41821020 0121F69D C9030641 06418210 10012109 178A0306 82412009 2106E2FF 400206FF 000D065F 03410641 82102001 21F714D8 03064106 41821010 01210917 8A030682 41200921 07C8C83C 0F441400 040C8903 41064182 10200121 F8E32003 06410641 82101001 2109178A 03068241 20092108 00000000 00000000 2F5B03FC 8260200E D03F3427 7FDB00FF 0D270601 003FF20C 1D03FC82 60200ED1 76027602 76020001 00000000 0000EA27 03FC8260 200ED2D2 00D40008 02C80000 0000

En dan begint het weer met :
0001003A A3034242 42C3C3C3 444444C5

Het is dus een afgetapte data stream tussen een Q-Solar en een BrainQ, Ik kan niet zeggen waar het begin en eind van de stream is en wie op welk moment de originator van de data is.

Ik kan er geen chocola van maken...

Chocola ervan maken is mij ook nog niet gelukt, maar een structuur erin herkennen lukte wel

000100 3AA303 424242 C3C3C3 444444 C5C5C5 C6C6C6 474747 484848

4106418210 2001 21 F1 22BD 0306

4106418210 2010 21 01 0201 003F00 000000 000000 000000 005F44 0306

4106418210 2001 21 F2 B98F 0306

4106418210 2010 21 02 0000 00000000 00000000 00000000 00DC86 0306

4106418210 2001 21 F3 309E 0306 //master wil info 'F3'

4106418210 1001 2109 178A 0306 //master geeft het woord aan slave

8241200921 03 34 273F DB7F 0000 27AC 5203 //slave geeft antwoord '03'

4106418210 2001 21 F4 8FEA 0306 //master wil info 'F4'

4106418210 1001 2109 178A 0306 //master geeft het woord aan slave

8241200921 04 00 F2B9 2000 0000 007A 3C03 //slave geeft antwoord '04'

4106418210 2001 21 F5 06FB 0306 //master wil info 'F5'

4106418210 1001 2109 178A 0306 //master geeft het woord aan slave

8241200921 05 0000 D313 8813 0404CC 3503 //slave geeft antwoord '05'

4106418210 2001 21 F6 9DC9 0306 //master wil info 'F6'

4106418210 1001 2109 178A 0306 //master geeft het woord aan slave

8241200921 06 E2 FF40 0206 FF00 0D06 5F03 //slave geeft antwoord '06'

4106418210 2001 21 F7 14D8 0306 //master wil info 'F7'

4106418210 1001 2109 178A 0306 //master geeft het woord aan slave

8241200921 07 C8 C83C 0F44 1400 040C 8903 //slave geeft antwoord '07'

4106418210 2001 21 F8 E320 0306 //master wil info 'F8'

4106418210 1001 2109 178A 0306 //master geeft het woord aan slave

8241200921 08 00 0000 0000 0000 002F 5B03 //slave geeft antwoord '08'

FC8260200ED 03 F342 77FD B00F F0D2 7060 1003 FF20C 1D03
FC8260200ED 176 0276 0276 0200 0100 0000 0000 00EA 2703
FC8260200ED 2D2 00D4 0008 02C8 0000 0000

Zo te zien bestaat het uit een soort pre sleutel;

Dan begint de communicatie en ik denk dat er 2 apparaten (onderstreept is het apparaat, beginnen te praten. Bericht van 4106418210 wordt altijd gesloten door 0306.

Dan een afsluiting

Het is wel nuttig om te weten wie wat zegt. Je kan hier achter komen door een apparaat van de bus te halen en vervolgens met je pc dat apparaat na te doen, aan de hand van deze data.

Ben benieuwd!!

Euh......

Heb em nog ff een beetje uitgediept (ja, ik verveelde me)

Euh......

Om het protocol te kunnen ontrafelen heb ik scripts geschreven die momenteel elke minuut de data te loggen (en omzetten van Hex naar Decimaal).
Daarna wil ik proberen door bruut reken geweld zien te achterhalen welke bytes veranderen om op die manier te achterhalen welke bytes relevant zijn.

Elke minuut krijg ik nu onderstaande conversatie in een file :

code:


Master(65 6 65 130 16): 32 1 33 241 34 189 3 6 
Master(65 6 65 130 16): 32 16 33 1 2 1 0 63 0 0 0 0 0 0 0 0 0 0 0 95 68 3 6 
Master(65 6 65 130 16): 32 1 33 242 185 143 3 6 
Master(65 6 65 130 16): 32 16 33 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 134 3 6 
Master(65 6 65 130 16): 32 1 33 243 48 158 3 6 
Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
Slave(130 65 32 9 33): 3 43 32 62 219 127 0 0 32 234 15 3 
Master(65 6 65 130 16): 32 1 33 244 143 234 3 6 
Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
Slave(130 65 32 9 33): 4 0 242 185 32 0 0 0 0 122 60 3 
Master(65 6 65 130 16): 32 1 33 245 6 251 3 6 
Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
Slave(130 65 32 9 33): 5 0 0 211 19 136 19 4 4 204 53 3 
Master(65 6 65 130 16): 32 1 33 246 157 201 3 6 
Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
Slave(130 65 32 9 33): 6 226 255 64 2 6 255 0 15 20 124 3 
Master(65 6 65 130 16): 32 1 33 247 20 216 3 6 
Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
Slave(130 65 32 9 33): 7 200 200 60 15 68 20 0 134 22 46 3 
Master(65 6 65 130 16): 32 1 33 248 227 32 3 6 
Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
Slave(130 65 32 9 33): 8 0 0 0 0 0 0 0 0 47 91 3 
Second slave?(252 130 96 32 14): 208 62 43 32 127 219 0 255 15 32 6 1 0 63 242 239 165 3 
Second slave?(252 130 96 32 14): 209 118 2 118 2 108 2 0 1 0 0 0 0 0 0 223 196 3 
Second slave?(252 130 96 32 14): 210 210 0 211 0 174 1 200 0 0 0 0 0 1 0 52 17 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
Master(65 6 65 130 16): 32 1 33 241 34 189 3 6 
Master(65 6 65 130 16): 32 16 33 1 2 1 0 63 0 0 0 0 0 0 0 0 0 0 0 95 68 3 6 
Master(65 6 65 130 16): 32 1 33 242 185 143 3 6 
Master(65 6 65 130 16): 32 16 33 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 134 3 6 

Volgens mij begint een bericht van de ketel altijd met 65 6 65 130 16, die regels beginnen in een bericht dan ook altijd met 'Master'
Antwoord van de Slave begint altijd met 130 65 32 9 33
En dan is er nog een ander adres(252 130 96 32 14), of dat van de zonneboiler in de Q-Solar is weet ik nog niet maar het lijkt er verdacht veel op.

Als ik dan na een dag loggen het volgende unix commando op de data files los laat:
cat *.3|grep '[a-zA-Z]' |sort|uniq -c (neem alleen de volledige regels, sorteer ze en tel hoevaak ze uniek voorkomen) dan kan je de verschillen eruit halen.

Dan kan je na verloop van tijd zien welke bytes veranderen en hopelijk kan ik dan ook de bepalen welke bytes voor welke parameters staan.
De output is dit :

(De eerste kolom staat voor het aantal keren dat hetzelfde bericht op de lijn langsgekomen is, we zoeken dus naar kenmerken en veranderingen)

code:


cuby:data sirtm$ cat *.3|grep '[a-zA-Z]' |sort|uniq -c |more
   1 Master(65 6 65 130 16): 0 64 45 34 127 219 0 255 12 34 6 1 0 63 242 139 203 3 
   1 Master(65 6 65 130 16): 130 64 45 34 127 219 0 255 12 34 6 1 0 63 242 139 203 3 
5408 Master(65 6 65 130 16): 16 1 33 9 23 138 3 6 
   1 Master(65 6 65 130 16): 20 64 45 34 127 219 0 255 12 34 6 1 0 63 242 139 203 3 
   1 Master(65 6 65 130 16): 3 3 6 211 0 174 1 200 0 0 0 0 0 1 0 52 17 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
   1 Master(65 6 65 130 16): 3 64 45 34 127 219 0 255 12 34 6 1 0 63 242 139 203 3 
1088 Master(65 6 65 130 16): 32 1 33 241 34 189 3 6 
1068 Master(65 6 65 130 16): 32 1 33 242 185 143 3 6 
 891 Master(65 6 65 130 16): 32 1 33 243 48 158 3 6 
 862 Master(65 6 65 130 16): 32 1 33 244 143 234 3 6 
 862 Master(65 6 65 130 16): 32 1 33 245 6 251 3 6 
 862 Master(65 6 65 130 16): 32 1 33 246 157 201 3 6 
 862 Master(65 6 65 130 16): 32 1 33 247 20 216 3 6 
1068 Master(65 6 65 130 16): 32 1 33 248 227 32 3 6 
   1 Master(65 6 65 130 16): 32 16 33 1 2 1 0 63 0 0 0 0 0
1068 Master(65 6 65 130 16): 32 16 33 1 2 1 0 63 0 0 0 0 0 0 0 0 0 0 0 95 68 3 6 
  19 Master(65 6 65 130 16): 32 16 33 1 2 1 0 63 0 0 0 0 0 0 0 0 0 0 0 95 68 3 6 65 6 65 130
 177 Master(65 6 65 130 16): 32 16 33 2 0 0 0 0 0 0 0 0 0 0 0
 891 Master(65 6 65 130 16): 32 16 33 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 134 3 6 
  58 Second slave?(252 130 96 32 14): 208 62 43 32 127 219 0 255 15 32 6 1 0 63 242 239 165 3 
 613 Second slave?(252 130 96 32 14): 208 63 43 32 127 219 0 255 12 32 6 1 0 63 242 107 115 3 
   2 Second slave?(252 130 96 32 14): 208 63 44 32 127 219 0 255 12 32 6 1 0 63 242 40 107 3 
 177 Second slave?(252 130 96 32 14): 208 64 45 33 127 219 0 255 12 33 6 1 0 63 242 24 64 3 
 177 Second slave?(252 130 96 32 14): 208 64 45 34 127 219 0 255 12 34 6 1 0 63 242 139 203 3 
  57 Second slave?(252 130 96 32 14): 208 64 52 42 127 219 0 255 12 42 6 1 0 63 242 42 146 3 
   2 Second slave?(252 130 96 32 14): 208 64 63 58 127 219 0 255 15 58 6 1 0 63 242 179 78 3 
   1 Second slave?(252 130 96 32 14): 208 64 63 58 127 219 0 255 15 59 6 1 0 63 242 152 74 3 
  58 Second slave?(252 130 96 32 14): 209 118 2 118 2 108 2 0 1 0 0 0 0 0 0 223 196 3 
 615 Second slave?(252 130 96 32 14): 209 118 2 118 2 118 2 0 1 0 0 0 0 0 0 234 39 3 
 591 Second slave?(252 130 96 32 14): 209 118 2 118 2 128 2 0 1 0 0 0 0 0 0 82 66 3 
   3 Second slave?(252 130 96 32 14): 210 210 0 211 0 118 2 200 0 0 0 0 0 1 0 197 143 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
 466 Second slave?(252 130 96 32 14): 210 210 0 211 0 174 1 200 0 0 0 0 0 1 0 52 17 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
 205 Second slave?(252 130 96 32 14): 210 210 0 211 0 174 1 200 0 0 0 0 0 1 0 52 17 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 65
   2 Second slave?(252 130 96 32 14): 210 210 0 211 0 184 1 200 0 0 0 0 0 1 0 180 43 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
 531 Second slave?(252 130 96 32 14): 210 210 0 212 0 194 1 200 0 0 0 0 0 1 0 215 183 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
  57 Second slave?(252 130 96 32 14): 210 210 0 212 0 8 2 200 0 0 0 0 0 1 0 58 163 3 66 66 66 195 195 195 68 68 68 197 197 197 198 198 198 71 71 71 72 72 72 
  29 Slave(130 65 32 9 33): 3 43 32 62 219 127 0
  58 Slave(130 65 32 9 33): 3 43 32 62 219 127 0 0 32 234 15 3 
 409 Slave(130 65 32 9 33): 3 43 32 63 219 127 0 0 32 193 11 3 
   1 Slave(130 65 32 9 33): 3 44 32 63 219 127 0 0 32 207 151 3 
 177 Slave(130 65 32 9 33): 3 45 33 64 219 127 0 0 33 164 96 3 
 177 Slave(130 65 32 9 33): 3 45 34 64 219 127 0 0 34 81 250 3 
  38 Slave(130 65 32 9 33): 3 52 42 64 219 127 0 0 42 142 95 3 
   2 Slave(130 65 32 9 33): 3 63 58 64 219 127 0 0 58 170 93 3 
 862 Slave(130 65 32 9 33): 4 0 242 185 32 0 0 0 0 122 60 3 
 862 Slave(130 65 32 9 33): 5 0 0 211 19 136 19 4 4 204 53 3 
 802 Slave(130 65 32 9 33): 6 226 255 64 2 6 255 0 12 143 78 3 
  60 Slave(130 65 32 9 33): 6 226 255 64 2 6 255 0 15 20 124 3 
1067 Slave(130 65 32 9 33): 7 200 200 60 15 68 20 0 134 22 46 3 
1087 Slave(130 65 32 9 33): 8 0 0 0 0 0 0 0 0 47 91 3 
   1 Slave(130 65 32 9 33): 91 64 45 34 127 219 0 255 12 34 6 1 0 63 242 139 203 3 

Iemand nog tips en ideen ?????

Met veel zoek en vergelijk werk ben ik tot de volgende ontdekkingen gekomen die ik niemand wil onthouden.
Er gaat veel data over de lijn, een aantal velden veranderen nooit, en sommigen schieten van 00 naar FF

Wat ik tot nu toe ontdekt heb :
Na de string 252 130 96 32 14 208 komen een aantal velden die voor mij interessant zijn:
(252 130 96 32 14): 208 62 43 32 127 219 0 255 15 32 6 1 0 63 242 239 165 3

Na de 208 komt als eerste Boilerwatertemperatuur T3, in dit voorbeeld 62 graden Celcius
Dan volgt de Aanvoerwatertemperatuur T1 welke 43 graden is,
dan de RetourwaterTemperatuur T2 welke 32 graden is.
De volgende 4 velden heb ik nog niet kunnen ontcijferen.
Het volgende veld is 15, dat staat voor de Waterdruk x10, dus 1,5 bar.

Ik volg dit lijntje een beetje omdat ik als cv-monteur veel met Atag toestellen te maken heb.
Zeer interessant om te lezen hoe mensen de elektronica aan het uitpluizen zijn.

Ik zie dat je al wat waardes heb kunnen ontdekken, alleen snap ik de volgorde niet. Ik zou juist verwachten dat de waardes in volgorde komen zoals je ze kunt uitlezen in de ketel. Dus als eerste aanvoerwatertemperatuur T1, 2e retourwatertemperatuur T2 3e boilerwatertemperatuur T3 4e buitentemperatuur T4 5e rookgastemperatuur T5 enz enz.

Alleen een buitentempratuur (positie 5) van 127 graden komt niet overeen met het geen wat jij uitleest. Het getal 127 komt wel overeen met de rookgastempratuur, want dit is de waarde die hij geeft als deze sensor NIET is aangesloten.

Betreft de verbinding zou dit een rs485 kunnen zijn, misschien navragen bij Honeywell want die maken die dingen. Weet wel dat nieuwer modellen ook open therm aan gesloten kunnen worden op klem A en B. Dit kun je controleren door de ketel te resetten en te kijken hoe lang het duurt voordat je het software-versienummer krijgt te zien in het display van de brain Q bij nieuwere modellen duurt dit beduidend langer dan bij de oude omdat er op dat moment wordt gekeken wat voor thermostaat er aangesloten is op de ketel.

Op 27 augustus 2010 11:23:09 schreef Sirtm:
Als ik het RS485 signaal aftap tussen de thermostaat en de ketel dan krijg ik een repeterende string hex data over mijn scherm waar ik niet veel informatie uit kan halen.

Mijn plan was om ook eens te gaan kijken wat mijn ATAG allemaal vertelt op de RS485 bus. Ik heb echter geen electrotechnische achtergrond, dus ik zit al vast bij het eerste punt: het aansluiten van mijn PC op de RS485 bus. Ik wou een FTDI USB-RS485 kabel gebruiken(http://docs-europe.electrocomponents.com/webdocs/0da7/0900766b80da71f7…) en deze op de ketel aansluiting van de thermostaat erbij zetten. Nu zegt mijn Brain thermostaat dat er 12 Volt staat over de A en B pinnen. Kan ik zonder problemen de A en B draden van de FTDI USB-RS485 kabel aansluiten op de ketel ?

Op 22 september 2010 16:44:34 schreef Sirtm:
Met veel zoek en vergelijk werk ben ik tot de volgende ontdekkingen gekomen die ik niemand wil onthouden.
Er gaat veel data over de lijn, een aantal velden veranderen nooit, en sommigen schieten van 00 naar FF

Wat ik tot nu toe ontdekt heb :
Na de string 252 130 96 32 14 208 komen een aantal velden die voor mij interessant zijn:
(252 130 96 32 14): 208 62 43 32 127 219 0 255 15 32 6 1 0 63 242 239 165 3

Na de 208 komt als eerste Boilerwatertemperatuur T3, in dit voorbeeld 62 graden Celcius
Dan volgt de Aanvoerwatertemperatuur T1 welke 43 graden is,
dan de RetourwaterTemperatuur T2 welke 32 graden is.
De volgende 4 velden heb ik nog niet kunnen ontcijferen.
Het volgende veld is 15, dat staat voor de Waterdruk x10, dus 1,5 bar.

Beste Sirtm,
Nog iets extra ontdekt sindsdien?
Ik heb intussen ook een 'Zonnegascombi' en ben erg geinteresseerd om die aan m'n domotica (Beckhoff PLC) te koppelen...
Titan, ook bedankt voor je bijdrage. Is er nog meer informatie 'ter beschikking'?
Alvast bedankt!

Na een verkeerde rs485 -- rs232 gebruikt te hebben die de bus iedere keer plat gooit heb ik nu met een andere (goedkopere) rs485 -- rs232 -- usb converter weer een poging gedaan om het protocol van mijn atag cv te ontrafelen.

Omdat het niet lukte met start en end karakters ben ik maar eens gaan spelen met de timing van de bus. Het lijkt er op dat Atag een variant van het modbus rtu protocol gebruikt.

Bij een baudrate van 9600 baud is een pauze van 3,5 karakters of meer een nieuw frame.
Een pauze van 1,5 karakter is een nieuwe deel van hetzelfde bericht.

Met een klein programma kon ik de data filteren en krijg ik het volgende:
Alle data van binary omgezet naar hex.

code:

c6 47 48 41
06418210200121f122bd030641
0641821020102101620000000000000000000000000000c25a030641
06418210200121f2b98f030641
0641821020102102000000000000000000000000000000dc86030641
06418210200121f3309e030641
0641821010012109178a03068234200921034b3e45fe7f10284ae07a0341
06418210200121f48fea030641
0641821010012109178a03068235200921041070f8df05870300477b0341
06418210200121f506fb030641
0641821010012109178a03068236200921051e005b125c124e043b8e0341
06418210200121f69dc9030641
0641821010012109178a03068237200921064cff400206ffe618b3790341
06418210200121f714d8030641
0641821010012109178a0306823820092107c8c8551444141f06cd490341
06418210200121f8e320030641
0641821010012109178a0306823920092108000000000000000066fa03fc82
60200ed0454b3e7ffe1fff184a0600000070aa3c03fc82
60200ed100000000b2020000000000000000f90b03fc82
60200ed200000080ee020000000000000000001b0341
06418210200121f122bd030642 c3 44 c5

Dit herhaalt zich constant. Ik heb hier nog geen verandering in gezien.

De spaties geven de 1,5 karakter pauze aan.
Ik weet niet zeker of mij start en end goed zijn maar dit leek mij te werken.

Vervolgens ben ik de data gaan analyseren.

Uit de eerste regel heb ik geen zinnige info kunnen halen.

c6 47 48 41

dan de 2e regel

code:

064182 10200121f1 22bd 030641
start  data       crc  end

de crc wordt berekend over de data. Het algoritme dat gebruikt wordt is CRC-CCITT (Kermit)

dan de 3e regel

code:

064182 1020102101 620000000000000000000000000000 c25a 030641
start  data       data                           crc  end

Uit de data van regel 2 en 3 haal ik het volgende

10200121 F1 = Geef Data F1
10201021 01 = Dit is data 01
en vervolgens de data.

Regels 4 en 5 zijn nagenoeg hetzelfde maar nu met F2 en 02
Dus:
10200121 F2 = Geef Data F1
10201021 02 = Dit is data 02
en vervolgens de data.

Regel 6 lijkt op regel 4 en 2 maar nu met F3
De respons is echter anders

Regel 7 gaat als volgt:

code:

064182 1010012109 178a 030682    35200921041870f8df06eb0300 d8d3 0341
start  data       crc  end+start data                       crc  end

Het begin is hetzelfde alleen eindigt dit niet met 030641 maar met 030682 en vervolgens begint er een tweede data gedeelte met een crc en een einde.

Het lijkt er op dat 41 een eind aangeeft en 82 een start of vervolg.

Ook dit herhaalt zich een aantal keer.
Het eerste data gedeelte 1010012109 lijkt op de vorige gedeeltes maar nu met 09 als laatste code.
bij het tweede data gedeelte kunnen we ook weer een patroon herkennen.
3420092103 is het eerst gedeelte. 04 geeft hier de respons op de F4 van de vorige regel. Daarna komt de werkelijk parameter data.

Dit patroon herhaalt zich een aantal keer.
F3 met respons 03
F4 met respons 04
F5 met respons 05
F5 met respons 06
F7 met respons 07
F8 met respons 08

Dus 8 datablokken met 8 bytes data.

Dan komt er een totaal ander patroon

code:

60200ed0454b3e7ffe23ff184a0600000070 2874 03fc82
data                                 crc  end

Dit is dus een heel blok data met een crc en een ander soort einde.
Het eerste gedeelte is altijd hetzelfde 60200e
Dan volgt d0 en daarna volgt de eigenlijke data.
De volgende regel is hetzelfde maar met d1.
De daaropvolgende regel is ook hetzelfde maar nu met d2 en als einde 0341

De laatste regels zijn dan d0, d1 en d2.

De allerlaatste regel is:

code:

064182 10200121f1 22bd 030642 c3 44 c5
start  data       crc  eind   code ???

Nogmaals de code maar nu met spaties om het patroon duidelijk te zien.

code:

c6 47 48 41
064182 10200121f1 22bd 030641
064182 1020102101620000000000000000000000000000 c25a 030641
064182 10200121f2 b98f 030641
064182 1020102102000000000000000000000000000000 dc86 030641
064182 10200121f3 309e 030641
064182 1010012109 178a 030682 3420092103 4b3e45fe7f10284a e07a 0341
064182 10200121f4 8fea 030641
064182 1010012109 178a 030682 3520092104 1070f8df05870300 477b 0341
064182 10200121f5 06fb 030641
064182 1010012109 178a 030682 3620092105 1e005b125c124e04 3b8e 0341
064182 10200121f6 9dc9 030641
064182 1010012109 178a 030682 3720092106 4cff400206ffe618 b379 0341
064182 10200121f7 14d8 030641
064182 1010012109 178a 030682 3820092107 c8c8551444141f06 cd49 0341
064182 10200121f8 e320 030641
064182 1010012109 178a 030682 3920092108 0000000000000000 66fa 03fc82
60200ed0454b3e7ffe1fff184a0600000070 aa3c 03fc82
60200ed100000000b2020000000000000000 f90b 03fc82
60200ed200000080ee020000000000000000 001b 0341
064182 10200121f1 22bd 030642 c3 44 c5

Eind codes:

41 eind
42 einde met extra codes
82 er komt meer data

Uit het vorige kun je de volgende data halen:

code:

01   62 00 00 00 00 00 00 00 00 00 00 00 00 00 00
02   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
03   4b 3e 45 fe 7f 10 28 4a 
04   10 70 f8 df 05 87 03 00
05   1e 00 5b 12 5c 12 4e 04
06   4c ff 40 02 06 ff e6 18
07   c8 c8 55 14 44 14 1f 06
08   00 00 00 00 00 00 00 00
d0   45 4b 3e 7f fe 23 ff 18 4a 06 00 00 00 70
d1   00 00 00 00 b2 02 00 00 00 00 00 00 00 00
d2   00 00 00 80 ee 02 00 00 00 00 00 00 00 00

De volgende info heb ik nu gevonden:
Als je de hex waarden omzet naar decimaal kun je een en ander vinden.

code 03-0 = Aanvoer Tmp
code 03-3 = Buiten Tmp
code 03-7 = Toestel Tmp
code 06-7 = Water Druk (Delen door 10)
code 07-6 = Modulatie

Verder nog het volgende:

d0-1 = 03-2
d0-1 = 03-0
d0-2 = 03-1
d0-5 = 07-6
d0-7 = 06-7

Dus de D codes komen ook in de andere table voor. Volgens mij is dat een soort feedback systeem.

Tot zover mijn protocol. Zal binnenkort de php sourcecode plaatsen als deze wat leesbaarder is.

Hoop dat iemand hier iets aan heeft.

Michael

Michael,

Heb je je code al kunnen cleanen?

Tx

Jurgen

Goed, hier is mijn code om het atag brain-q protocol te debuggen.

Hier zijn de twee files die ik gebruik:

http://domod.nl/atag.php.txt

http://domod.nl/php_serial.class.php.txt

Plaats de files in een directory en start ze op met php. Wel even de .txt extensie verwijderen.

opstarten met: php atag.php vanaf een command prompt. Dit is dus niet een webbased programma.

Het programma laat alle data op de prompt zien die heen en weer gaat. Verder wordt er ook een file genaamd atag_parameter.log aangemaakt waarin alle parameters komen te staan als ze veranderen met een timestamp.

Het programma laat een overzicht zien in een matrix van alle parameters die ik langs heb zien komen. Mochten er meer zijn dan graag doorgeven. Ook laat het een lijstje zien van de waarden welke ik denk gedecodeerd te hebben.

Het programma gaat er van uit dat de seriele data per karakter binnen komt maar dat is helaas niet altijd het geval. Er zitten wel wat trukjes in om hier mee om te gaan maar soms mis ik data. dat komt omdat de seriele driver gebruikt maakt van een soort buffer. Ik laat alle data als decimaal zien. Als een waarde veranderd dan komt deze waarde tussen blokhaken te staan zodat goed is te zien wat er aan de hand is.

Hoop dat we met zijn allen dit protocol kunnen ontrafelen.

Michael

graag had ik geweten dat er iemand verder gekomen is met het ontrafelen

kris,

Ik ben er net weer mee begonnen. ik heb een Raspberry aan de ketel gehangen die naast het opvangen van de seriele data ook een aantal temperatuur sensoren aan zich heeft hangen.
Ik probeer nu Michael z'n code te doorgronden, hij heeft al heel veel goed werk verricht.
Ik zit in een steile learningcurve vwb php zullen we maar zeggen.

Mvg, Sirt

Hou sirtm
Jij bent aan het maken wat ik voor ogen hadden.
Voorlopig heb ik een excel gemaakt en de waardes die ik via usb/rs485 heb ontvangen er in geplakt zodat ik de juiste waarde kan zoeken

In de toekomst wil ik via raspberry pi een automatische grafiek maken die zo via een beveiliggen website aangesproken kan worden.

Groetjes kris

kan je mss wat meer info geven over welke software jij gebruikt op je raspberry? hier heb ik totaal geen ervaring mee.

Ik heb het project voorlopig op een holt gezet maar als ik kan helpen dan doe ik dat graag. Waar ik wel last van heb is dat als ik de RS485 converter ertussen plaats de keteldruk parameter wordt beinvloed. Dat is ook een van de redenen dat ik ben gestopt met verdere ontwikkeling. Een ander probleem is dat de seriele chip die gebruikt wordt in de meest elektronica niet goed kan omgaan met de timing van het modbus protocol.

Groet,
Michael

Ik heb een Atag Q25s ketel met een BrainQ kamerthermostaat.

Uit de data kon ik nog het volgende halen:

• Code 05-0 = Pomp modulatie (0 tot 100%)

• Code d1-5 en d1-6 = Boilerwater temperatuur in tienden van C°
Formule: ((code d1-6) x 256) + (code d1-5)

• Code d1-9 en d1-10 = Buiten temperatuur in tienden van C°
Formule: ((code d1-10) x 256) + (code d1-9)

• Code d2-0 en d2-1 = Gewenste kamertemperatuur in tienden van C°
Formule: ((code d1-1) x 256) + (code d1-0)

• Code d2-2 en d2-3 = Actuele kamertemperatuur in tienden van C°
Formule: ((code d1-3) x 256) + (code d1-2)

• Code d2-4 en d2-5 = Brander temperatuur in tienden van C°
Formule: ((code d1-5) x 256) + (code d1-4)

Hartelijk dank , ik ga het verder onderzoeken, maar eerst een arduino in elkaar knutselen om de data beter te kunnen opvolgen.

Dit ga ik ook even volgen, zou graag mijn ketel kopelen aan Domoticz.
Plan is om een weios d1 mini te gebruiken.
Nog een vraagje over het aansluiten van de RS485, kan je dit gewoon parallel met de brain?
Welke adpater is het best te gebruiken voor arduino?

Thx

Ben

Graag zou ik ook de data op deze bus sniffen. Maar heb nu al 3 RS485 convertors (verschillende merken en aansluitingen), maar geen enkele heeft mij enige data.
Ik beschik wel over een BrainQ RSC/2 Thermostaat. Misschien is dit niet gelijk aan een "BrainQ"?

Kan er dus iemand, waarbij dit gelukt is, even meegeven welke exacte RS485 converter gebruikt is.
Heb al verschillende trucjes proberen uit te halen, om die common mode spanning (12V) eraf te halen, maar niets lijkt te werken. Heb momenteel nergens een grond verbinding, want zit met mijn laptop aangesloten.

Eerst en vooral wil ik iedereen hier bedanken om het bus protocol uit te spitten want zonder de basis hier was onderstaande me nooit gelukt :)

M'n setup een Atag E32C ketel met BrainQ thermostaat.
De RS485 hangt gewoon parallel over m'n thermostaat.
Momenteel draait m'n code op een raspberry pi (die stond toevallig dicht tegen m'n thermostaat) maar ik zou toch echt wel omschakelen naar een ESP.
Ter info, deze RS485 -> USB:
https://www.hobbyelectronica.nl/product/max485-module-voor-rs485-serie…

Aan de hand van de php code van Michael heb ik getest dat de seriële verbinding ok was, en had ik een "verwachte output" om de code om te zetten naar Node.js (heel m'n domotica draait hier op zelf geschreven Node.js apps -> 433,MQTT,Z-Wave,frontend,...).

Na wat "parsen" van de ruwe data heb ik dit overzicht gemaakt om deze te analyseren:
(RS485 Node.JS backend -> HTTP Frontend)
http://i.imgur.com/vUyUwlD.png

Wat mij opvalt is da sommige waarden alleen op de dx topics zitten (wss is dit de thermostaat) en andere alleen in de 0x topics (wss is dit de ketel). Ook updaten sommige waardes iets trager in de d0 topcis (ketel temperaturen).

Nu over welke waardes ik zie (of denk te zien) tov. wat er in dit topic reeds staat:
Wat ik zeker weet (vergeleken met wat de BrainQ weergeeft):

  • 03-0 Toestel Temperatuur
  • 06-7 Waterdruk (/10)
  • 07-6 Modulatie
  • 03-3 Buiten Temperatuur
  • d2-0 Gewenste Temperatuur
  • d2-2 Temperatuur thermostaat (deze geeft zo goed als hetzelfde als de BrainQ - zou die afronden op 0.5?)

Wat ik denk te weten, op basis van wat ik hier lees en wat ik zie in de grafieken:

  • 03-1 Retour (ligt altijd net iets lager dan toestel temperatuur)
  • 03-2 Aanvoer (bij een ww-vraag zakt dit spectaculair)

Wat ik totaal niet weet:

  • 05-0 Pomp modulatie (zoals jd@home aangaf) -> wat is dit? schiet omhoog als de ketel aanslaat maar kan toch de pomp niet zijn als er enkel ww-vraag is?

Uit bovenstaande data ben ik momenteel wat grafiekjes aan het trekken:

's nachts, geen verwarming en ww-vraag:
http://i.imgur.com/mO1FFYg.png
Hier zie je mooi da als de temperatuur van de ketel zakt hij automatisch zal bij warmen.

Douche:
http://i.imgur.com/DUpwABI.png
Die piek in de aanvoer is een foutje denk ik (doe geen CRC check op de data, miss toch doen)

Meer dan ww-vragen kan ik nu niet bekijken want het is niet bepaald weer om de verwarming aan te zetten.

Ik ga m'n code ook nog op opschonen en dan hier posten.
Kan me inbeelden dat sommige misschien liever in een browser naar de data zitten te staren dan op de command line ;)