Algorithmus für Prüfsummenberechnung gesucht

Hallo zusammen,
ich hoffe das passt hierher, auch wenn es nicht 100% Arduino spezifisch ist.

Ich möchte die Daten von Eberle Funkthermostaten auswerten und auch zurückschicken können, per Arduino und CC1101. Und klar, wie immer gibt es dazu (noch) nichts dokumentiertes. Die Funkthermostaten erzeugen beim Einlernen eine zufällige ID, die dann vom Empfänger geprüft und akzeptiert wird, wenn korrekt. Ich habe nun eine Vielzahl an Einlern-telegrammen mitgeschnitten und ausgewertet. Es sind immer 26Bit nach Manchester-decodierung. Eine Vielzahl an Telegrammen habe ich mehrfach und sie sind dann identisch.
Für einen Großteil der Daten bin ich mir über Nutzung und Eigenschaften sehr sicher, aber der Algorithmus zur Berechnung der Prüfsumme ist etwas borstig.

Jedes Telegramm besteht aus Header (nicht dargestellt) und 6 Nibbles, die Reihenfolge ist Original, die Gruppierung in ID1-3, Par1/2 und Prüfsumme von mir. Einen ersten Test hatte ich mit reveng auf CRC gemacht, leider ohne Erfolg (no models found).
Ich habe mich dann auf einfache Werte fokussiert, also "000" bis "00F". Bei diesen ergibt sich die Prüfsumme durch einfaches Xor von ID1-3, einem der beiden Par-Nibble und magicNumber "8".

Sobald aber einer der ID1/2 nicht mehr "0" ist, passt die Berechnung nicht mehr. Dass die MagicNumber insgesamt variiert wäre ja noch OK, aber besonders seltsam finde ich zB "FFx" bei der von "FF7" nach "FF8" bis "FFA" eine andere MagicNumber nötig wäre, und dann noch zwei weitere für den Rest.
Berechne ich die MN komplett aus ID1-3, Par und PS ergeben sich eine Art von Muster aber ohne dass ich eine Systematik erkennen würde. Lediglich für Gerade und Ungerade aufeinander folgende IDs ist die MN aber immer dieselbe.

Jetzt hoffe ich mal, dass hier jemand eventuell eine Idee oder Hinweis hat, was da dahintersteckt. Weitere Daten zum Testen habe ich genügend.

Gruß,
Dieter

000 C5 4	001 3A A	002 C5 6	003 3A 8	004 C5 0	005 3A E	006 C5 2	007 3A C	008 C5 C	009 3A 2	00A C5 E	00B 3A 0	00C C5 8	00D 3A 6	00E C5 A	00F 3A 4
8A0 C5 4	8A1 3A A	8A2 C5 6	8A3 3A 8	8A4 C5 0	8A5 3A E	8A6 C5 2	8A7 3A C	8A8 C5 C	8A9 3A 2	8AA C5 E	8AB 3A 0	8AC C5 8	8AD 3A 6	8AE C5 A	8AF 3A 4
FF0 C5 4	FF1 3A A	FF2 C5 6	FF3 3A 8	FF4 C5 0	FF5 3A E	FF6 C5 2	FF7 3A C	FF8 C5 B	FF9 3A 5	FFA C5 9	FFB 3A 7	FFC C5 C	FFD 3A 2	FFE C5 F	FFF 3A 1
850 C5 4	851 3A A	852 C5 6	853 3A 8	854 C5 0	855 3A E	856 C5 2	857 3A C	858 C5 B	859 3A 5	85A C5 9	85B 3A 7	85C C5 C	85D 3A 2	85E C5 F	85F 3A 1

Hier hat anscheinend jemand ein ähnliches Problem. Vlt kommt ihr zusammen weiter
Dort ebenso.

Nein, leider hilft das auch nicht weiter.