Temperatursender von Wetterstation in CUL

Begonnen von bjoernh, 01 November 2014, 16:05:36

Vorheriges Thema - Nächstes Thema

bjoernh

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





kaihs

Hat du dir schon mal den fhemduino angesehen? Da sind diese Sensoren und andere bereits dekodiert. Da kannst du dir wahrscheinlich was anschauen.
Banana Pi, Add-On Board mit 1.8" TFT LCD und IR-Sender, CULFW V1.61, div. Homematic Komponenten, Pollin Funksteckdosen, Selbstbau CUL433 MHz, Jeelink Clone, EC3000
Selbstbau CUL868MHz für Wireless M-Bus, SIGNALduino mit Logilink Temp.-sensoren und Auriol Wetterstation

bjoernh

Nein den kenne ich noch nicht, ich schaue mir das mal an.
Vielleicht finde ich da ja meine fehlenden Bitbeschreibungen.

Olly

Hallo,

ich habe das mal auf meinem BananaPi mit miniCUL und meiner FHEM-Testinstallation eingespielt. Habe nämlich zwei von den abgebildeten Teilen.
Mir fehlte allerdings noch ein #define TYPE_TEMPERATURE (oder so) in der rf_receive.h, damit der Compiler fehlerfrei durch lief. War nicht in der ZIP mit drin, oder ich habs nach dem Auspacken nicht gefunden.
Es funktioniert bei mir ganz gut, Sensoren werden erkannt und die Temperatur ausgelesen, es werden sogar Batteriestatus und Tendenz angezeigt.
Hab zwar auch einen FHEMduino an meinem Raspberry (Hauptsystem), aber da noch nicht die letzte Version. Der erkennt die Tchibo Teile noch nicht.
Vielen Dank, dass du deinen Code hier zur Verfügung gestellt hast.

Gruß

      Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

bjoernh

Zitat von: Olly am 02 November 2014, 11:59:10
Hallo,

ich habe das mal auf meinem BananaPi mit miniCUL und meiner FHEM-Testinstallation eingespielt. Habe nämlich zwei von den abgebildeten Teilen.
Mir fehlte allerdings noch ein #define TYPE_TEMPERATURE (oder so) in der rf_receive.h, damit der Compiler fehlerfrei durch lief. War nicht in der ZIP mit drin, oder ich habs nach dem Auspacken nicht gefunden.
Es funktioniert bei mir ganz gut, Sensoren werden erkannt und die Temperatur ausgelesen, es werden sogar Batteriestatus und Tendenz angezeigt.
Hab zwar auch einen FHEMduino an meinem Raspberry (Hauptsystem), aber da noch nicht die letzte Version. Der erkennt die Tchibo Teile noch nicht.
Vielen Dank, dass du deinen Code hier zur Verfügung gestellt hast.

Gruß

      Olly

Hallo Olly,

danke für die Rückmeldung.
Das fehlende define ist beim CUL in dem board.h, dort werden die Optionen beim CUL ein/ausgeschaltet.

Bei dem Trend bin ich mir noch nicht 100% sicher, ich glaube das eher ein Checkbit ist, bin aber da auch noch nicht auf den Trichter gekommen :-(

Anbei mal noch ein erweitertes FHEM Modul, welches auch noch die RAW Daten ausgibt.
Vielleicht bekommen wir dann ja noch heraus für was die letzten zwei Bit wirklich sind.

Gruß
Björn


Olly

Hallo Björn,

ich meinte nicht die Aktivierung des Temperatursensors in der board.h. Ich bekam beim kompilieren einen undefined TYPE_TEMPSENSOR in der rf_receive.c . Hab dann herausgefunden, dass in die rf_receive.h noch eine Zeile

#define TYPE_TEMPSENSOR "s"

rein muss.
Hab jetzt auch mal die neue 14_CUL_TEMP.pm eingebunden, die DEBUG-Zeile erscheint jetzt.
Einen Trend haben die Sensoren glaube ich nicht, zumindest wird bei der Basisstation, die ich zu den Sensoren hab keiner ausgegeben.

Guß

    Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

bjoernh

#6
Hallo,

anbei die Änderungen auf der aktuellen Fhem Version.
Das Modul habe ich etwas aufgeräumt und die Ausgaben reduziert.
Im Anhang die hex Files auf Basis der neusten CULFW 1.62 für alle Devices.

Viele Grüße
Björn

Olly

Hallo Björn,

vielen Dank für die neue Version.
Wenn jetzt noch die Unterstützung für Somfy mit eincompiliert wäre, wäre die Version für mich perfekt ;-)
Aber kann es sein, dass du die falsche 00_CUL.pm angehängt hast? Ich finde da nix zu CUL_Temp drin..

Gruß

     Olly
BananaPi 1GB;NetCSM 868MHz, miniCUL 433MHz, LaCrosseGateway, 2x SignalESP; FHEM 6.2

bjoernh

Hallo Olly,

schick mir doch kurz ne PM und nen mir deine E-Mail Adresse und deinem Device, dann kompiliere ich dir die Version mit Somfy.

Das mit der 00_CUL kann schon sein, ich hatte danach ein Update gemacht, dann war es wohl weg ;-)

Gruß
Björn

chris1284

Evtl mal rudolfkoenig mit rein nehmen um die änderungen in 00_cul offiziell werden ? Auch wegen der inoffiziellen culfw 1.62?
http://sourceforge.net/p/fhem/code/7253/tree//trunk/fhem/MAINTAINER.txt

bjoernh

Hallo,

ist schon in Arbeit  :-)

Gruß
Björn


bjoernh

Die Änderungen in fhem sind nun via update Verfügbar.

nicor2k

Hallo bjoernh,

erst einmal vielen vielen Dank für Deine Implementation! Mit Deiner aktuellen CUL Firmware und den IT Protokollen kann mein CUL 433 jetzt auch die Kommandos der IT-Fernbedienung erkennen, das ist super! :)
Leider hat keiner meiner Nachbarn eine TCM Wetterstation (ich auch nicht). Ich habe aber Wetterstationen von Aldi hier herumliegen, die größtenteils auch auf 433 MHz funken - leider werden sie von der 14_CUL_Temp aber nicht erkannt: Weder in den Events, noch im Log noch unter "Everything" ist etwas zu finden :(

Besteht die Möglichkeit, die 14_CUL_Temp zu erweitern, dass die Stationen auch erkannt werden?

Bei den Stationen handelt es sich im die GT-WS-05s mit dem Sender GT-WT-01 und um die ähnlich aussehende GT-WS-11s mit dem Sender GT-WT-02. Die Sender scheinen, trotz gleichem Aussehen (bis auf die Zahl beim Namen) aber nicht kompatibel zu sein, jedenfalls empfängt die eine Station nicht den Daten des anderen Senders.

link zum Sender: http://shop.teknihall.de/haushaltsgeraete/wetterstationen/254/aussensensor-gt-wt-01-fuer-gt-ws-06/07

Gerne mache ich Fotos oder helfe bei der Ermittlung der Funksignale (wenn ich etwas angezeigt bekommen würde... :)


Das Modul dafür wurde übrigens hier schon einmal gewünscht:
http://forum.fhem.de/index.php?topic=29388.0  :)

Vielen Dank!
Nico

killah78

Hi,

bin auch noch recht neu mit FHEM. Betreibe bisher auch nur ein paar  Intertechno zum Testen.
Habe hier eine TCM 212836 Wetterstation. Ich weiss aber nicht, wie ich diese in CUL und FHEM einbinden kann.
Habe mir mal die Mühe gemacht, den Code zu dekodieren. Kann also Temperatur und Luftdruck aus dem Binärcode berechnen.
Aber die Frage ist jetzt, wie bekomme ich das in den CUL (nanoCUL) und FHEM rein?
Kann mich da jemand untstützen?

Der CUL gibt mir zb. solch eine Zeile:
2015-02-13 14:29:21 CUL nanoCUL UNKNOWNCODE p 8 448 1920 464 4000 1 4 3 18 47ADC80480

Wie mache  ich da weiter?

Gruss
killah78

bjoernh

Hallo Nico,

dazu muss erst das Protokoll analysiert werden. Außerdem müssen wir wissen wie der Sender Sendet. Der CUL kann nur AM-Modulierte Protokolle empfangen.

Zitat von: killah78 am 13 Februar 2015, 14:32:29
Der CUL gibt mir zb. solch eine Zeile:
2015-02-13 14:29:21 CUL nanoCUL UNKNOWNCODE p 8 448 1920 464 4000 1 4 3 18 47ADC80480
killah78
Das sieht ja schon super aus, sprich der Temperatursensor wird prinzipiell nach meiner Implementierung erkannt.
Hast Du mir noch mehr von den p8 Meldungen + evtl die decodierung.
Um den Sensor voll zu unterstützen muss ich die CULFW noch etwas anpassen. Ansonsten muss das Modul angepasst werden.
Aber eins nach dem Anderen. Wie gesagt, wenn Du mir noch ein paar p 8 Ausgaben + Dekodierung hast, denke ich sollte der Sensor schnell implementiert sein.

Viele Grüße
Björn