Tak for de mange venlige ord
Svar til Ole Kirkholt:
Protokollen har jeg fundet på
http://www.scotte.dk, jeg kan ikke huske hvor jeg har henvisningerne fra (mener faktisk at det var her fra forumet), men de ligger der endnu:
http://www.scotte.dk/pc.xls http://www.scotte.dk/pc1.xls http://www.scotte.dk/VP.PC.xls .
Der er lidt forskel på dem, og jeg syntes ikke der er en der passer 100%. For eksempel sendes der 18 parametre retur på Z000000 kommandoen. Der er kun vist 17 i regnearket PC1.xls, som ser ud til at passe noglenlunde, i hvert fald på dataopsamling.
VP.PC.xls forklarer checksum udregningen med XOR. Checksummen er noget som er kommet til siden de første versioner af styringen, vist nok et sted mellem 4.16 og 4.99. Det er (igen, vist nok) det der gør at Pillefyr Professionel ikke virker med de nyere versioner.
Jeg kan godt prøve at uddybe det vedr. checksum. I regnearket står der: "HVIS HECKSUM ER VALGT I STYRING: alle telegrammer afsluttes med <checksum> (XOR af alle foranstående tegn)"
For at lave udregningen skal man bruge en ascii tabel (f.eks.
http://www.asciitable.com/). For eksempel svarer 'B' til 66 i ascii tabellen. B010065 bliver så til 66,48,49,48,48,54,53. Så laver man XOR udregning på alle tallene:
66 XOR 48 XOR 49 XOR 48 XOR 48 XOR 54 XOR 53 = 64.
(XOR kan laves med windows' lommeregner i scientific mode, eller med "^" operator i C, C++, Java m.fl)
64 svarer til karakteren snabela "@" i ascii tabellen. Derfor bliver strengen der skal sendes "B010065@"
Dette kan testes via hyperteminal i windows, dog virker det ikke hvis det indtastes manuelt. Jeg har istedet gjort det, at jeg har skrevet det i en tekst fil og sendt det via "Transfer"->"Send Text File" i hyperterminal. Min teori er at styringen forventer at alle data og checksum bliver afsendt inden for et snævert tidsrum. Styringen svarer så tilbage med "OK" + et ruder tegn. 'O' og 'K' svarer henholdsvis til ascii 79 og 75, checksummen er 4 som bliver til et ruder tegn i min hyperterminal.
Der kan således forekomme nogle karakterer som er svære at finde på et keyboard, og jeg var faktisk igang med et C program der automatisk kunne udregne checksum og retransmittere ved fejl. Men jeg bruger pt kun kommandoen Z000000 (Z000000Z med checksum), og med Kermit sciptet kører det meget stabilt, så derfor har jeg lagt programmet på hylden indtil videre.
Jeg har vedhæftet nogle ekstra tekstfiler som jeg har afprøvet med success i hyperterminal (96008N1 - ingen flow control).
Det er B010065.txt, B010060.txt og Z000000.txt. OBS B0100XX ændrer set-temperaturen i styringen !
Håber at ovenstående svarer på dit spørgsmål.
mvh. Frederik
P.S jeg har nu fået vejr data i graferne, men kæmper stadig lidt med at finjustere forbrugstallene så de passer.