Heizungssteuerung Raspberry Pi entdecken – Teil 2

September 4, 2020
Heizungssteuerung CUL

Im ersten Teil unserer Reihe „Heizungssteuerung Raspberry Pi entdecken“ haben wir Raspbian Lite und FHEM auf ein Raspberry Pi installiert. Zweite Teil befasst sich mit CUL (868 MHz) Selbstbau und Einrichtung unter FHEM. Ein CUL ist ein Transceiver zum Empfangen und Senden von Funknachrichten. Er besteht im Wesentlichen in unserem Fall aus einem Arduino und einem CC1101 Funkmodul sowie einer USB-Schnittstelle zur Verbindung mit dem Host Computer auf dem zum Beispiel FHEM läuft. Als CUL Firmware wird die quelloffene culfw verwendet. → Auszug aus FHEM Wiki


Wir übernehmen keine Haftung jeglicher Art bei Nachmachen im Beitrag dargestellten Handlungen. Die jeweilige Einzelperson übernimmt Haftung für sich selbst.


Mittlerweile sind Bauteile einfach und preisgünstig. Daher ist es relativ einfach möglich eine in der Funktionalität zum Original CUL von Busware vergleichbare Hardware selbst zu bauen. Damit sind wir ein Schritt näher zum Smart Home Heizung Integration.

Heizungssteuerung Raspberry Pi – CUL Hardware

Arduino Nano

Bild 1: PIN Belegung Arduino Nano:

Die original Arduino sind relativ teuer. Es gibt aber billige Kopien, meistens direkt aus China. Das ist aber kein Problem, nur im Fall das Sie mehrere CULs gleichzeitig in FHEM nutzen wollen, dann bitte beachten: Arduino mit Chip Bezeichnung FTDI FT232RL verwenden.

Heizungssteuerung CUL Selbstbau
CC1101 – Widerstände

Smart Home mit FHEM: Individuelle und flexible Open-Source-Hausautomatisierung. Inklusive Tablet-Interface und Sprachsteuerung (makers DO IT)

Der CC1101 darf nur mit Spannung 1,8 – 3.6 V versorgt werden. Passende Spannung von 3,3 V (siehe Bild Nr. 1) stellt der Arduino Nano bereit. Laut Datenblatt sind Eingänge von CC1101 nicht 5 V tolerant und gerade die Ausgänge bei Arduino Nano haben 5 V. In der Praxis funktionieren die Module bisher trotzdem, ich selbst betreibe so eine Selbstbau CUL ohne Spannungsteiler über mehr als 2 Jahre ohne Problem. Wer sicher gehen will, der verwendet in den Signalleitungen Spannungsteiler, oder verwendet einfach Teilung mit Widerständen (siehe Bild 3).

Schaltplan CUL Arduino
Schaltplan CUL – CC1101 und Arduino

Gemäß Bild 3 ist am einfachsten der Aufbau auf einem Steckbrett oder Rasterplatine. Damit lässt es sich Selbstbau CUL schnell in Betrieb nehmen und mögliche Fehler können einfach korrigiert werden. Für einen permanenten Aufbau kann eine Rasterplatine verwendet werden. Zur Info: LED hilft als grobe Funktionskontrolle aber muss nicht verwendet werden.

Aktuell unterstützt CUL mehrere Betriebsmodi und damit kann bestimmte Geräte steuern. Jeweils kann immer nur ein Betriebsmodi aktiv sein. Möchte man Geräte unterschiedlicher Betriebsart steuern, so ist jeweils ein CUL pro Modus nötig oder muss man zwischen Betriebsmodi umschalten.

CUL Betriebsmodi

  • SlowRF – 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.
  • MAX! – Dieser Modus ist nur für die MAX! Geräte, grundsätzlich nur Heizungsteuerung.
  • WMBus – Dieser Modus ist zur Dekodierung von Wireless M-Bus Nachrichten zuständig, z. B. von Zählern für Wasser, Wärme, Gas und Elektrizität.

CUL Firmware

Damit der CUL beschrieben werden kann, ist der AVR C-Cross-Compiler und die dazu benötigten Tools notwendig. Einfach mit Hilfe von z.B. Putty sich mit Raspberry Pi per SSH verbinden und AVR Compiler installieren.

sudo apt-get install make gcc-avr avrdude avr-libc
### Firmware herunterladen
cd /opt
wget https://sourceforge.net/code-snapshots/svn/c/cu/culfw/code/culfw-code-r568-trunk.zip
### Datei culfw-code-r568-trunk.zip entpacken
sudo unzip culfw-code-r568-trunk.zip
### Verzeichnis auswählen
cd /opt/culfw-code-r568-trunk/culfw/Devices/nanoCUL
### Bearbeitung von Datei board.h
sudo nano board.h
  • Sollte ein Arduino verwendet werden, der nicht 16 MHz Takt verwendet, muss dies in der board.h Zeile #define HAS_16MHZ_CLOCK auskommentiert werden.
  • Wenn ein 868MHz Modul verbaut ist, sollte in der Datei board.h die Zeile #define HAS_CC1100_433 auskommentiert werden.
CUL Konfiguration board.h
Board.h Konfiguration

Nachdem Sie die Änderungen in Datei board.h gemacht haben, kann mit Kompilieren des Codes begonnen werden.

sudo make

Jetzt können wir der Arduino mit Raspberry Pi per USB Kabel verbinden und Firmware kann beschrieben werden.

sudo make program

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

ls -l /dev/serial/by-id
CUL USB Port
Raspberry Pi – CUL Port ermitteln

Beispiel für eine CUL Definition in FHEM

define CUL CUL /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400 1234
Heizungssteuerung Raspberry Pi FHEM
FHEM CUL Integration

Heizungssteuerung Raspberry Pi – MAX! Ventil Integration

CUL für Heizungssteuerung Raspberry Pi ist jetzt verbunden und wir können uns mit MAX! Ventil Integration befassen. Integration ist sehr einfach, zuerst starten wir CUL „Pairmode“ in FHEM, befindet sie im Menü unter CUL Bezeichnung „cm“ (siehe Bild unten). Jetzt müssen wir gemäß MAX! Anleitung Ventil im Pairmode versetzen, lange drücken an mittlere „Boost“ Taste. Ventil wird sofort erkannt und integriert in FHEM, bzw. Heizungssteuerung Raspberry Pi. Mehr Information über Integration und Anpassung von MAX! Ventilen lesen Sie hier nach.

FHEM MAX Integration
FHEM Pairmode
Haus Automatisierung Video – FHEM Reihe

Weblinks mit Thema CUL Selbstbau und FHEM Smart Home:

Heizungssteuerung Raspberry Pi – Teil 1. Erste Teil unsere Reihe beschäftigt sich mit Raspbian Installation und Konfiguration, FHEM Installation und FHEM Styling.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.