CUL 433 MHz – Gateway zum selber bauen

Wie ihr bestimmt schon mitbekommen habt, sind Gateways das A und O in FHEM. Sie ermöglichen das Steuern von Geräten unterschiedlicher Herstellern und Typen. Sei es zum Beispiel der JeeLink für die ELV Funksteckdosen oder die MiLight-Bridge für die LED-Lampen. Gateways spielen eine wichtige Rolle.

Ein sehr bekanntes Gateway ist der CUL (CC1101 USB Lite). Ein CUL ist ein Funksender, der auf das Funkmodul CC1101 aufbaut. Je nach zusätzlicher Beschaltung und Länge der Antenne funkt der CUL auf 433 MHz oder auf 868 MHz. Am meisten verbreitet ist der 433-MHz-CUL. Fertig zusammengebaut kann man den CUL auf busware.de ab 49€ kaufen.

Anstatt sich den CUL jedoch zu kaufen, kann man sich diesen für ein paar Euros selber zusammenbauen. In diesem Beitrag erkläre ich euch, was ihr alles benötigt und wie man sich selber einen CUL zusammenbaut.

Wozu braucht man den CUL?

Der CUL ist vielseitig einsetzbar. Akktuell unterstützt die CUL-Firmware vier Betriebsmodi, mit der dann jeweils bestimmte Geräte gesteuert werden könne. Es kann jeweils immer nur ein Betriebsmodi aktiv sein. Möchte man Geräte unterschiedlicher Betriebsart steuern, so ist jeweils ein CUL pro  Modus nötig.

SlowRF

Der Betriebsmodus SlowRF ist der Modus, mit den meisten unterstützten Geräten. Ein CUL, der in diesem Modus betrieben wird, kann Geräte folgender Hersteller steuern:

FS20, FHT, KS300, USF1000, BS, HMS, CUL_EM, CUL_WS, CUL_FHTTK, CUL_HOERMANN, ESA2000, CUL_IR, CUL_TX, Revolt, Intertechno, UNIRoll, Somfy

HomeMatic

In dieser Betriebsart können nur HomeMatic-Geräte gesteuert werden. Hier gibt es jedoch noch die Einschränkung, dass nur Geräte ohne AES-Verschlüsselung funktionieren. Der Keymatic zum Beispiel funktioniert nur mit einer originalen HomeMatic-Gateway.

MAX

Dieser Modus sind für die MAX-Geräte. Von MAX gibt es jedoch nur Geräte für die Heizungssteuerung.

WmBus

Dieser Modus ist zur Dekodierung von Wireless M-Bus Nachrichten. Solche Nachrichten werden z. B. von Zählern für Wasser, Wärme, Gas und Elektrizität ausgestrahlt.

Mein Alltagseinsatz

Ich persönlich habe mir den CUL aufgebaut um meine Funksteckdosen von Intertechno über FHEM steuern zu können.

Wie die meisten Hardware-Gateways, baut auch der CUL auf einem Arduino auf. Am besten eignet sich der Arduino Nano. Man sollte jedoch darauf achten, dass man einen Arduino einsetzt mit einem FT232-Chip. Der Arduino besitzt somit eine eindeutige ID und kann dadurch unter Linux programmiert werden.

Wie oben schon erwähnt, bildet neben dem Arduino, der Funkchip CC1101 das Herzstück. Es gibt bereits fertige Platinen mit diesem Chip und die benötigte externe Beschaltung. Hier muss man jedoch darauf achten, dass man sich für die richtige Platine entscheidet.

Funkmodule für 433 MHz gibt es bereits viele auf dem Markt.

Will man jedoch einen CUL für 868 MHz aufbauen, ist es etwas schwieriger an den richtigen Chip zu kommen. Erst recht auf dem deutschen Markt. Ausführlichere Infos zu diesem Thema gibt es auf der FHEM-Wiki Seite.

Die folgende Beschreibung zeigt den Anschluss eines 433-Mhz-Moduls. Module für 868 MHz sollten jedoch identisch sein.

Aufbau

Wichtig beim Aufbau ist, dass man auf die maximale Spannung des Funkmoduls achtet. Dessen Versorgungsspannung darf maximal 3,6V sein. Ihr solltet deswegen, den 3,3V Anschluss des Arduinos benutzen.

Da die Datenleitungen des Moduls ebenfalls am besten auf 3,3V laufen sollten, ist der Einsatz eines Spannungsteilers zu empfehlen. Am besten eignen sich da ein 470 Ohm Wiederstand mit einem 1 kOhm Wiederstand gegen Masse.

INFO: Die Spannungsteiler (470 Ohm / 1 kOhm) sind nur notwendig, wenn die Pegel des Arduinos 5V betragen. Laufen die Ports des Arduinos auf 3,3V ist kein Spannungsteiler notwendig. Für eine stabile Datenübertragung, sollte mann dann jedoch zusätzlich den CSN-Pin des Moduls mit einem Pullup-Widerstand (10 kOhm) stabilisieren.

Wie bereits beim JeeLink-Clone oder den MySensors empfehle ich euch, die Schaltung auf ein Stück Lochrasterplatine zu löten und später alles mit Heißkleber zu „versiegeln“.

CUL-Software

Damit der CUL beschrieben werden kann, ist der AVR C-Cross-Compiler und die dazu benötigten Tools notwendig.

sudo apt-get install make gcc-avr avrdude avr-libc

Anschließend kann die CUL-Firmware heruntergeladen werden. Hier gibt es drei Möglichkeiten:

FTP

Wer einen FTP-Zugang zum Raspberry eingerichtet hat, kann sich die Firmware downloaden und auf den Raspberry übertragen. Am besten speichert ihr die Firmware in den Ordner „/opt/“.

https://sourceforge.net/p/culfw/code/HEAD/tarball

Nachdem die Übertragung abgeschlossen ist, in folgenden Ordner wechseln:

cd /opt/culfw-code-553-trunk/culfw/Devices/nanoCUL

SUBVERSION

Benötigtes Paket installieren:

sudo apt-get install subversion

Download der Firmware starten:

svn checkout http://svn.code.sf.net/p/culfw/code/trunk /opt/culfw-code

in den Ordner wechseln:

cd /opt/culfw-code/culfw/Devices/nanoCUL

WGET

In den Ordner wechseln, in der die Firmware gespeichert werden soll:

cd /opt/

Download der Firmware starten:

wget https://sourceforge.net/code-snapshots/svn/c/cu/culfw/code/culfw-code-553-trunk.zip

Zip-Archive entpacken:

unp culfw*.zip

In den Ordner wechseln:

cd culfw-code-553-trunk/culfw/Devices/nanoCUL

Optionale Anpassungen:

Sollte ein Arduino verwendet werden, der nicht auf 16 MHz läuft, muss dies in der Board-Datei eingestellt werden. Dazu einfach die Datei mit dem nano-Editor bearbeiten.

sudo nano board.h

Nun einfach den Eintrag ausklammern oder löschen:

Arduino flashen

Nachdem die Firmware heruntergeladen wurden, kann mit dem Übersetzen des Codes begonnen werden.

make

Danach kann der Arduino mit der Firmware beschrieben werden. Dazu am besten alle anderen USB-Geräte vom Raspberry entfernen.

make program

Je nach Konfiguration des Raspberrys, kann es sein, dass die obigen Befehle als „sudo“ ausgeführt werden müssen – „sudo make“, „sudo make program“.

Definition in FHEM

Das Einbinden des CULs in FHEM klappt am besten über die eindeutige ID des CULs. Um diese herauszufinden, lässt man sich die ID-Dateien der USB-Geräte auflisten:

ls -l /dev/serial/by-id

In meinem Fall ist der CUL nun der zweite Eintrag der Liste. Diese nun aufgelistete ID am besten notieren. Mit dieser ID kann man nun nämlich den CUL in FHEM definieren:

define CUL_433 CUL /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A505MPVO-if00-port0@38400 1234

Bei der Definition ist es wichtig, dass man die Übertragungsrate von 38,4 kbit/s mit angibt.

Nach der Definition kann man nun über das Attribut „rfmode“ den Betriebsmodus festlegen.

attr CUL_433 rfmode SlowRF

Der CUL ist nun betriebsbereit und kann verwendet werden. Ich persönlich steuere zum Beispiel die Intertechno Funksteckdosen über einen 433MHz-Cul.

CUL-433MHz in meiner FHEM Live-Demo

Um den Cul in seiner freien Wildbahn zu erleben, empfehle ich euch einen Abstecher nach meiner FHEM Live-Demo. Dort findet ihr ihn im Raum „Gateways“.

zur FHEM Live-Demo

Ich hoffe ich konnte euch den Aufbau eines CULs näher bringen und euch ermutigen euch auch selber einen CUL aufzubauen.

0 0 vote
Article Rating
Subscribe
Benachrichtige mich zu:
guest
27 Comments
älteste
neuste beste Bewertung
Inline Feedbacks
View all comments
Rainer Herrler
3 Jahre her

Kleiner Hinweis: Fehler im Wiring-Bild. GD0 und GD2 sind vertauscht

rene
rene
3 Jahre her

Hallo
Super gemacht, nachdem meiner endlich die kurfe bekommen hat, zu Flashen. Ich mache das immer wieder seit 2 Wochen. Wollte das schon in die Ecke pfeffern.
Heute hat es geplappt.

Vorab: habe keine Intertechno
ganz alte mit Fernbedienung
und
wifi Silvercrest

Nur was ich überhaupt noch nicht verstanden habe.
Wie kann ich jetzt irgend etwas auf 433 MHz einbinden. Mit Fhem verbinden . Oder auslesen .
Ich blicke da jetzt wirklich nicht mehr durch.

Ich habe mir schon einen Wolf gesucht , nichts gefunden.

Bitte, könnt ihr mir da links geben.
Oder Tipps geben.
Jetzt wo nanoCuL Initialized ist, bin ganz ehrlich,bin heiß darauf weiter zukommen .

DeviceOverview
culNano433

Initialized
culNano433
culNano433
Internals
CMDS

ABCEeFfGhiKklMmRTtUVWXxYZz
Clients

:FS20:FHT.*:KS300:USF1000:BS:HMS: :CUL_EM:CUL_WS:CUL_FHTTK:CUL_HOERMANN: :ESA2000:CUL_IR:CUL_TX:Revolt:IT:UNIRoll:SOMFY: :STACKABLE_CC:TSSTACKED:CUL_RFR::CUL_TCM97001:CUL_REDIRECT:
DEF
/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400 0000
DeviceName

/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
FD

28
FHTID

0000
NAME

culNano433
NR

97
PARTIAL

RAWMSG

i15515154
RSSI

-32
STATE

Initialized
TYPE

CUL
VERSION

V 1.67 nanoCUL433
culNano433_MSGCNT

5
culNano433_TIME

2017-03-22 16:30:59
initString

X21
Readings
ccconf

freq:433.920MHz bWidth:406KHz rAmpl:42dB sens:8dB

2017-03-22 15:38:37
cmds

A B C E e F f G h i K k l M m R T t U V W X x Y Z z

2017-03-22 16:23:03
credit10ms

900

2017-03-22 14:24:55
fhtbuf

AE

2017-03-22 14:24:48
raw

No answer

2017-03-22 16:22:58
state

Initialized

2017-03-22 16:30:59
uptime

0 01:18:32

2017-03-22 14:24:39
version

V 1.67 nanoCUL433

2017-03-22 14:24:32
culNano433
Attributes
model

nanoCUL

deleteattr
rfmode

SlowRF

deleteattr
room

CUL433

deleteattr

Thomas
Thomas
3 Jahre her
Reply to  Daniel

Hi Daniel,

vielen Dank für die Anleitung. Leider bekomme ich den cul in FHEM nicht zum laufen. Könntest du mir vielleicht helfen?

Der Stick wird in FHEM angezeigt als Initialized, wenn ich jedoch Lampen (bzw. Intertechno Steckdosen) schalten will, dann passiert nicht, bzw. die Steckdose schaltet nicht. Ich dachte, vielleicht nutze ich den falschen Code, aber ich habe nun mittlerweile schon fast alle Möglichkeiten durch… F0FF000F0F FF F0 ist der Code, den ich eingestellt habe. Ich nutze N und Gruppe 1 und Gruppe 3. Der Stick blinkt auch 2x kurz wenn ich schalte, aber die Steckdose geht nicht an. Wenn ich über den Raspberry über Pilight direkt die Steckdosen ansteuere, funktioniert es jedoch, aber halt nicht über den Stick sondern ein 433 Funkmodul.

Vielen Dank und viele Grüße

Thomas

Sven
Sven
3 Jahre her

Hallo Daniel
Ich habe mich heute mal daran gemacht, den CUL zusammen zulöten und versucht zu flashen
Leider bekomme ich beim Befehlt „make“ diesen fehler:
Compiling C: nanoCUL.c
nanoCUL.c:229:1: fatal error: opening dependency file .dep/nanoCUL.o.d: Datei oder Verzeichnis nicht gefunden
}
^
compilation terminated.
makefile:327: recipe for target 'nanoCUL.o' failed
make: *** [nanoCUL.o] Error 1

Leider weiß ich jezt nicht weiter, irgendwie fehlt ihm was oder?
gruß

Sven
Sven
3 Jahre her
Reply to  Sven

ok erledigt
bei mir musste ich den befehl mit sudo vorsetzten … 😉

Ernst
Ernst
3 Jahre her

mOin,
cooler Blog! Viele interessante Sachen zum stöbern. Dank und Kompliment!
War verwirrt wegen der Spannungsteiler, die doch – wenn ich zwischenzeitlich gescheit recherchiert habe – nur bei einem 5V Arduino nötig sind (bei einem 3,3V womöglich eher hinderlich sein könnten)?
Immer noch ratlos hinterlässt mich aber weiterhin der 10k Pullup an CSN. Was soll der arme Kerl denn gegen die 1k gegen Masse vom Spannungsteiler hoch ziehen?
Könntest Du das bitte kommentieren?
Merci,
E.
😉

Daniel
Daniel
3 Jahre her

Moin zusammen..
vorweg – bin ein kompletter Neuling und suche schon seit mehreren Wochen nach einem Ansatz genau so einen CUL zusammenzubauen. Leider habe ich einen ESP8266 hier zu liegen und finde nirgends ein Mapping der Ports auf den CC1101. So wie ich das sehe, kann ich den CC ja direkt anschließen ohne PullUP/Down, da der ESP durchgängig mit 3.3V betrieben wird?

Leider hakt es grundsätzlich bei mir mit dem PinOut. Der ESP hat nur die Pinbezeichnungen D0-D8 – die GPIO-Bezeichnung geht allerdings von GPIO0-16 + separate MOSI,MISO,CS,SCLK Pins…
Vielleicht kannst Du da mal Starthilfe geben?

Daniel
Daniel
3 Jahre her
Reply to  Daniel

Wahrscheinlich ist das genau mein Problem, Habe irgendwo im Netz von dem ESP als eierlegende Wollmilchsau gelesen, da man sich um Connectivität keine Gedanken zu machen braucht.. UART vollständig, WLAN-tauglich…
Eigentlich hätte ich gerne eine Art CUL, die ich irgendwo im Haus in einer Ecke platzieren kann und der dann mittels WLAN/transparent Bridge angebunden ist. Schalten und Walten sollte das Teil dann über FHEM/OpenHab oder sonstwas.. Gleichzeitig hätte ich gern in der Experimentierphase über ein Mini-Web Interface die Möglichkeit ohne eine Zentrale Kommandos abzusetzen…
Vielleicht sollte ich einfach mit einem klein Projekt starten 😀
Trotzdem Danke

Chris kross
Chris kross
3 Jahre her

Kann man einen Stick 2x definieren zu slow rf und Max wenn es die frequenz weite zulässt

u2mike
u2mike
3 Jahre her

erstmal großes Kompliment zu dieser Seite!

ich muss sagen (bin ganz neu nun in die homeautomation eingestiegen) und ich werde fast „erschlagen“ von den vielen Informationsmöglichkeiten über Mr. google etc.

aus diesem Grund erlaub ich mir hier in diesem Post ein paar Fragen zu meiner Installation zu stellen:
ich möchte: funktsteckdosen / somfy funk rolladen / hörmann garagen tor usw. steuern

ich habe:
1) per ebay einen 433mhz CUL erworben:
https://www.ebay.de/itm/nanoCUL-USB-Stick-FTDI-CC1101-433MHz-mit-FW-1-67-f%C3%BCr-FHEM-CCU-CUL433/372133699974?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649
2) per ebay einen 868mhz CUL erworben:
https://www.ebay.de/itm/nanoCUL-mit-CC1101-868Mhz-Transceiver-CUL-f%C3%BCr-FHEM-FW-1-67-inkl-USB-Adapter/263238129098?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649

hintergrund: ich habe im Netz gelesen, dass z.B. garagentor über 868 läuft und z.B. funktsteckdosen über 433 und wenn man beides verwenden möchte ZWEI CUL´s benötigt

ich konnte beide aktivieren … habe jedoch Probleme beim Ansteuern der Geräte

Frage1: wie soll 433 aktiviert werde für die Funktsteckdosen?
rfmode = slowrf
model = ???
Frage2: wie soll 868 aktiviert werden
rfmode = ???
model = ???

sonst irgendwelche parameter?
für jeden tip sehr danbar

Silberstein
Silberstein
2 Jahre her

Moin, bei mir scheiterte der Befehl: sudo apt-get install Subversion
Mit einem kleinen s geht es aber: sudo apt-get install subversion

Dirk
Dirk
2 Jahre her
Reply to  Daniel

Mal eine Frage, wie soll der CUL senden wenn ein Sender doch gar nicht installiert ist ?
Der CUL kann nur Empfangen. Von einem Sender sehe ich hier nichts…
Ich Bitte um Aufklärung.

Gruß

Dirk

Dirk
Dirk
2 Jahre her
Reply to  Daniel

Asche auf mein Haupt,
wer lesen kann ist klar von vorteil.
Es ist ja ein Transceiver Modul und sowas beinhaltet beides.

Sorry, war meine Schuld.

Gruß

Dirk

Marvin
Marvin
2 Jahre her

Schönen guten Abend 🙂

Könntest du mir die genauen Abmaße des CUL mal eben messen?
Das wäre sehr nett.

Liebe Grüße, Marvin

Marv
Marv
2 Jahre her

Hallo 🙂

Ich würde die beiden Controller gerne in ein Gehäuse einbauen und nur die benötigten Anschlüsse nach außen legen. Kannst du mir sagen, welche das sind, die an den USB Port müssten?

Liebe Grüße, Marvin

Marc Boettinger
1 Jahr her

Sehr gutes Tutorial. Von dem CUL habe ich auch zwei im Einsatz, dazu kommen noch die HM Aktoren, die fast baugleich sind. Für die Aktoren habe ich mir eine Platine in China erstellen lassen, damit ich es schneller löten kann.

Meine CUL Version ist hier
https://smarthome.family.blog/2018/12/08/selbstbau-cul-stick-868-433/