CUL Firmware - Homematic auf einem RFM69

Begonnen von ulli, 30 Januar 2016, 19:09:19

Vorheriges Thema - Nächstes Thema

ulli

Servus zusammen,

Ich versuche mit einem RFM69 das Homematic Protokoll zu empfangen.
Leider schaffe ich es nicht plausible Daten zu erhalten.

Ist es richtig das der CUL wie folgt für HM konfiguriert ist?
Deviation: 19 Khz
Datarate: 10 kBaud
Modulation: FSK, kein Manchester-Codec, DataWhitening aktiviert
RF frequency: 868.3 MHz
RX filterbandwidth: 100 kHz

Die damit empfangenden Daten werden wie folgt noch verrechnet:

data[0] = data[0] & 0x7f; //PacketLength
last_enc = data[1];
data[1] = (~data[1]) ^ 0x89;
for (l = 2; l < (data[0]); l++) {
this_enc = data[l];
data[l] = (last_enc + 0xdc) ^ data[l];
last_enc = this_enc;
}
data[l] = data[l] ^ data[2];


Leider erhalte ich nämlich mit dieser Konfiguration, dem RFM69 und einem ungepaarten unkonfigurierten Fensterkontakt keine plausiblen Daten.

Bin verzweifelt und hoffe Ihr könnt helfen.

rudolfkoenig

Ich meine die erwaehnten Parameter sind grob richtig, was man aber bei CC1101-Paket-Mode nicht unterm Teppich kehren sollte, dass sind Praeambel und Sync-word. Ich vermute, dass der RFM69 auch was vergleichbares hat.

ulli

Ja habe ich berücksichtigt.
4x Preamble
4x SyncWords 0xE9 0xCA 0xE9 0xCA

ulli

Ich bekomme folgende Daten wenn ich das "Fenster schließe/öffne"

l:12 c:4 ft:FB86 q:F933DB z:6F5E88 p:9129F2
l:12 c:5 ft:FB86 q:F933DB z:6F5E88 p:91283A
l:12 c:2 ft:FB46 q:79132B z:8FCE98 p:D18FF2
l:12 c:3 ft:FB46 q:79132B z:8FCE98 p:D18E3A
l:12 c:0 ft:FB46 q:79132B z:8FCE98 p:D18DF2
l:12 c:1 ft:FB46 q:79132B z:8FCE98 p:D18C3A
l:12 c:62 ft:CB86 q:6913DB z:1F5E98 p:A13C2
l:12 c:63 ft:CB86 q:6913DB z:1F5E98 p:A12A
l:12 c:60 ft:CB86 q:6913DB z:1F5E98 p:A11C2


Aus einem anderen Forum habe ich schon heraus gefunden das ich die länge mit einem "^0xFF" korrigieren muss.
Aber der Rest passt noch garnicht..

ulli

Hab es geschafft.
Der CC1101 scheint immer ein Whitening zu machen, was ein Unterschied zum RFM69 ist. (auch wenn es deaktiviert ist)
Das Whitening ist besonders, da es sich um eine PN9 pseudo-random sequence handelt, die vor der XOR Funktion durchlaufen muss.

Apicalis

@ulli

Ich suche schon länger nach einem Foreneitnrag wie diesem hier. Es ist also möglich mit einem RFM69 auf 868Mhz die Daten abzufangen, ist es dementsprechend auch möglich eigene Sensoren, Aktoren zu designen die mit eQ-3 Zentralen kommunizieren können?

Von der Theorie her müsst es ja möglich sein, wenn der Empfang schon funktioniert. Soweit ich weiß hat ELV ja die Codes wohl offen gelegt auf der Website, da ich aber kein Software spezi bin, kann ich damit leider nicht viel Anfangen. Für mich wäre nur die Frage interessant "Kann man eigene Aktoren und Sensoren machen? Was müsste ich dann an meinem Arduino ( Atmega32U4 @3,3V 8Mhz) + RFM69CW einstellen, damit die Kommunikation gewährleistet ist?"

Aktuell verwende ich die Library von LowPowerLab https://github.com/LowPowerLab/RFM69

Leider stoße ich in der Regel auf Threads in unterschiedlichsten Foren in denen davon gesprochen wird, dass ausschließlich die CC1101 verwendet werden können und keine RFM12B oder RFM69CW. Es würde mich sehr freuen, wenn ich hier endlich die passende Antwort finden könnte.

Gruß Martin aka. Apicalis

rudolfkoenig

Zitatmöglich eigene Sensoren, Aktoren zu designen die mit eQ-3 Zentralen kommunizieren können?
Ja, experimentell bewiesen: http://www.fhemwiki.de/wiki/HomeMatic_Asksin_Library

Apicalis

Vielen Dank für die Info, das ist schonmal viel Wert.

Konnte jemand eine derartige Library aufbauen in Verbindung mit RFM69 Modulen? In der Library steht ja leider explizit

"Module aus dem FS20-Bereich funktionieren nicht, da diese eine andere Signalmodulation haben. RFM12-Module können ebenfalls nicht verwendet werden. Auch die "CC1101 w/ co-processor shield for Arduino" von Busware werden nicht unterstützt. "

ulli

Klar ist das möglich. Die rfm69 Konfiguration habe ich ja oben geschrieben,  d.h. sie ist bekannt.
Das Senden ist auch bekannt,  da ja jedes Gerät eine Bestätigung schickt...ACK...

Was fehlt ist eine Art Ablaufsteuerung.....
* die müsste aber in fhem Modul integriert werden,  da der atmega bzw. Rfm nur Kommandos nach Vorgabe versendet.
* Wenn es ein autarkes Gerät, wie du beschrieben hast werden soll musst du die Ablaufsteuerung in den atmega integrieren....

Apicalis

#9
Vielen Dank für die schnelle und ausführliche Antwort.

Da wäre ich warscheinlich besser beraten, wenn ich die RFM69CW gegen C1101 Module austausche. Soweit ich recherchiert habe sind die ähnlich vom Preis und Bauform.

trilu

ZitatDer CC1101 scheint immer ein Whitening zu machen, was ein Unterschied zum RFM69 ist. (auch wenn es deaktiviert ist)
Das Whitening ist besonders, da es sich um eine PN9 pseudo-random sequence handelt, die vor der XOR Funktion durchlaufen muss.

Kannst Du das genauer beschreiben? Die RFM69 sind von den Kosten vergleichbar mit den cc1101 Modulen, aber leichter zu bekommen. Ausserdem habe ich eine nette Hardware bei Jeenode entdeckt.
http://jeelabs.org/article/1706c/
Basiert auf einer STM32F103 CPU, sollte also Arduino Kompatibel sein. Wenn RFM69 mit HM funktioniert und der low power mode vergleichbar ist, dann könnte ich das in die Newasksin einbauen...

ulli

Das jeeLabs Modul beschäftigt mich auch seit kurzer Zeit immer mehr ;)
Bin am überlegen ob ich den Schritt wage....

Es ist aber übrigens ein type L nicht F
Also STM32L0...