Hallo Zusammen,
ich habe mir mal die Mühe gemacht und einen TCM Temperatursender einer alten Wetterstation in den CUL und FHEM zu implementieren.
Nachdem es klappt hatte ich auch gleich noch einen Sensor eines Nachbars empfangenen :-)
Es handelt sich um diesen Sensor mit der Artikel Nr. 97001 (siehe im Anhang Bild)
Als erstes hatte ich das Protokoll dekodiert.
Die Bits sind wie folgt codiert:
1 = 0,5ms height + 4ms low
0 = 0,5ms height + 2ms low
Wie man bereits sieht steckt die Information in den low-Anteilen der Übertragung.
Ein komplettes Paket sieht dann z.B. so aus:
A B C D E F
25,9° = 1111 0000 0000 0100 0000 1100
Wie komme ich nun auf die 25.9°:
Die ersten zwei Bytes (A+B) sind die Adresse des Sensors, diese wird bei jedem einlegen der Batterie neu generiert.
Die Temperatur steckt in Byte D-F
0100 0000 1100 = 259 dann noch durch 10 und man bekommt die Temperatur
Eine negative Temperatur sieht so aus:
-7,1° = 1111 0000 0011 1110 1110 0101
Die ersten zwei Bytes sind wieder die Adresse
Mit den zwei Bit von Byte C (11) erkennt man dass die Temperatur ins negative gehen muss.
Wenn wir nun wie bei den positiven werten Rechnen, kommen wir leider nicht ans Ziel:
1110 1110 01 = 953 (kann nicht stimmen)
Die Lösung ist allerdings recht simpel:
Wie negieren einfach alle Bits, daraus ergibt sich:
0001 0001 10 = 70
nun noch +1 und /10 dann kommt die -7,1 raus.
In Byte C Bit 3 steck noch die Batteriewarnung, wenn also z.B. ein Paket 0100 kommt, ist die Batterie leer.
Was ich allerdings nicht raus bekommen habe sind die letzen zwei Bits von Byte F. Das letzte wird immer beim manuellen Senden (drücken der TX Taste) gesetzt. Das Bit wird aber auch ab und zu während der normalen Übertragung gesetzt.
Vielleicht sind die letzten Bits auch eine Checksumme, vielleicht hat ja jemand von Euch eine Idee.
Der CUL überträgt dann die Empfangen Pakete mit einem s prefix, also z.B. s8F7EE5
Fhem legt automatisch neu erkannte Sensoren an.
Im Anhang ist die fertig compilierte CUL V3 Version 1.61f mit IT sowie dem Temperatursensorempfang.
Viel Spaß beim ausprobieren.
Gruß
Björn