Hallo zusammen
ich habe bei der Dekodierung des Protokolls von Eberle Instat-868-r1
Funkthermostaten ein Problem mit der Prüfsumme. In einer Reihe von
Telegrammen konnte ich die Prüfsumme mittels XOr verifizieren.
Allerdings gibt es auch eine Reihe von Telegrammen bei denen dies nicht
gelingt, bzw. die Magic Number unterschiedlich ist.
Neben dem Block "0x0 0x0 0xF" sind dies eigentlich alle Telegramme mit
mehr als einem Block ungleich "0", aber bei denen passt es. Aber
vielleicht habe ich ja was übersehen und jemand sieht eine Lösung. Mir
fehlen nun irgendwie Ideen wie ich weiter vorgehen könnte.
Die relevanten Teile des Telegramms sind 5 Bytes, davon 3 Bytes
Nutzdaten, 1 Byte Paritätszeichen "5" für ungerade ID3 und "A" für
gerade und 1 Byte Prüfsumme. Als MagicNumber habe ich "1" ermittelt.
Gruß,
Dieter
Dieter R. schrieb:> Allerdings gibt es auch eine Reihe von Telegrammen bei denen dies nicht> gelingt, bzw. die Magic Number unterschiedlich ist.
Nur mal zur Sicherheit, um auszuschließen, daß Du einfach einige
Telegramme fehlerhaft empfangen hast: Du hast die Telegramme, bei denen
Deine Rechnung nicht aufgeht auch alle mehrmals in identischer Form
empfangen?
Übrigens kann ich Deine Interpretation der 4.Spalte als Parität nicht so
recht nachvollziehen, denn über die ersten 5 Spalten hast Du fast immer
(bis auf die letzte, dritt- und viertletzte Zeile) ungerade Parität und
über alle 6 Spalten - interessanterweise - immer gerade Parität.
Lothar M. schrieb:> Haben diese "Bytes" immer nur 1 Nibble und nicht wie üblich 2?> https://inst.eecs.berkeley.edu/~cs150/sp98/lectures/week6_2/tsld002.htm
Übertragung ist Manchestercodiert und die Gruppierung der einzelnen Bits
ergab das als einzig plausible Lösung. Und danke, das Nibble hatte ich
nicht im aktiven Wortschatz.
mIstA schrieb:> Nur mal zur Sicherheit, um auszuschließen, daß Du einfach einige> Telegramme fehlerhaft empfangen hast: Du hast die Telegramme, bei denen> Deine Rechnung nicht aufgeht auch alle mehrmals in identischer Form> empfangen?
Kann ich, ja. Die ganzen Telegramme inkl. IDs sind selber generiert und
an den Empfänger verschickt der sie akzeptiert hat. Ich musste in
manchen Fällen alle 16 Möglichkeiten ausprobieren, damit die Prüfsumme
akzeptiert wurde.
> Übrigens kann ich Deine Interpretation der 4.Spalte als Parität nicht so> recht nachvollziehen, denn über die ersten 5 Spalten hast Du fast immer> (bis auf die letzte, dritt- und viertletzte Zeile) ungerade Parität und> über alle 6 Spalten - interessanterweise - immer gerade Parität.
Unklare Ausdrucksweise meinerseits: die Parität bezieht sich immer nur
auf ID3. Korrekterweise gibt es noch ein weiteres Byte mit reiner
Information zur Parität von ID3 ("C"/"3"), bringt aber zur Auswertung
keinen Mehrwert.
Dass die Parität über alle 6 Spalten immer "gerade" ist, ist logisch
weil ja auch die "richtige" MagicNumber dabeisteht, die kenne ich anhand
Spalte 1-5 ja aber noch gar nicht.
Lothar M. schrieb:> Haben diese "Bytes" immer nur 1 Nibble und nicht wie üblich 2?
Ich habe mir die Daten noch mal angesehen, also man könnte die ID und
Parität auch als Byte schreiben, die "5" ist immer konstant. Bei der
Prüfsumme bleibt es aber beim Nibble, höchstens man füllt auf.
Deshalb habe ich auch die MagicNumber dabei belassen.
Ist das so einfacher in der Darstellung?
Zusätzlich habe ich noch ein paar weitere Pakete erstellt und überprüft.
Bei keinem passt, wie beinahe zu erwarten war, die ursprüngliche
MagicNumber. Aber es wiederholt sich auffällig oft die "2", aber keine
Ahnung was das besagt.
Anscheinend bisher keiner da, der weiterhelfen kann. Ich habe hier noch
einen Satz an Telegrammen, vielleicht hilft das weiter. Für ID3 0-7
stimmt die Prüfsumme bei "00" und "FF" überein und lässt sich über Xor
berechnen, für 8-F bei "FF" dagegen nicht mehr.
Die gleichen Prüfziffern habe ich auch bei "7A" und "8A" bzw. "85", aber
unterschiedliche Werte für Xor.
Langsam bin ich am zweifeln ob Xor denn tatsächlich die Methode der Wahl
ist.
Ich weiß nicht, ob das auch ein Hinweis ist, aber es werden vom Sender
auch nicht alle "FFF" möglichen IDs generiert. ID1/2 wird nur 00, 05,
0A, 0D, 12, 15, 18, 1A, 1F,..., F2, F5, FA, FF
000 C5 4 7A0 C5 4 850 C5 4 8A0 C5 4 FF0 C5 4
001 3A A 7A1 3A A 851 3A A 8A1 3A A FF1 3A A
002 C5 6 7A2 C5 6 852 C5 6 8A2 C5 6 FF2 C5 6
003 3A 8 7A3 3A 8 853 3A 8 8A3 3A 8 FF3 3A 8
004 C5 0 7A4 C5 0 854 C5 0 8A4 C5 0 FF4 C5 0
005 3A E 7A5 3A E 855 3A E 8A5 3A E FF5 3A E
006 C5 2 7A6 C5 2 856 C5 2 8A6 C5 2 FF6 C5 2
007 3A C 7A7 3A C 857 3A C 8A7 3A C FF7 3A C
008 C5 C 7A8 C5 C 858 C5 B 8A8 C5 C FF8 C5 B
009 3A 2 7A9 3A 2 859 3A 5 8A9 3A 2 FF9 3A 5
00A C5 E 7AA C5 E 85A C5 9 8AA C5 E FFA C5 9
00B 3A 0 7AB 3A 0 85B 3A 7 8AB 3A 0 FFB 3A 7
00C C5 8 7AC C5 8 85C C5 C 8AC C5 8 FFC C5 C
00D 3A 6 7AD 3A 6 85D 3A 2 8AD 3A 6 FFD 3A 2
00E C5 A 7AE C5 A 85E C5 F 8AE C5 A FFE C5 F
00F 3A 4 7AF 3A 4 85F 3A 1 8AF 3A 4 FFF 3A 1
Hallo Dieter,
unsere Heizung hat zwei Zonen die jeweils von einem Eberle Instat-868-r1
gesteuert werden. Ich würde gerne die Kontrolle per Raspi übernehmen.
Ist es dir gelungen, zuverlässig mit den Eberle Empfängern zu
kommunizieren?
Mit freundlichen Grüßen,
Anton