CUL

Aus FHEMWiki

CUL (CC1101 USB Lite) ist ein RF-Gerät im Formfaktor eines USB-Dongles mit externer Antenne. Die über das ISM/SRD Band empfangenen Daten werden durch einen Onboard 8 bit Atmel Prozessor vorverarbeitet. Mit verfügbarer quelloffener Firmware (im Umfeld von FHEM die "culfw") kann das CUL verschiedene 868MHz Protokolle empfangen und senden, insbesondere die FS20/FHT/S300/EM/HMS sowie durch kurzfristiges Umschaltung auf 433 MHz Intertechno (z. B. viele Baumarkt Funksteckdosen) Protokolle.

Im Umfeld von FS20/FHT/EM/S300/HMS ("SlowRF - Mode") wird die Dekodierung der per AM in 1 kHz übertragenen Signale per culfw auf dem Atmel Prozessor direkt erledigt und dann per USB an den Hostrechner weitergegeben.

Das CUL kann mittels des CULModuls von FHEM angesprochen und somit wie eine FHZ1X00PC verwendet werden.

Das CUL kann auch im HM-Mode als HomeMatic Zentrale alternativ zur CCU oder dem HMLAN Konfigurator betrieben werden. Bei CULs älter als Version 3 ist jedoch der Speicher zu klein, um die Software für FS20/FHT/S300/EM/HMS und HomeMatic zugleich im Speicher zu halten, hier muss man sich beim Flashen der Firmware für eine Protokollfamilie entscheiden. Mit zwei CULs ist aber auch der Mischbetrieb an einem FHEM Hostrechner möglich.

Ferner ist der Einsatz eines CUL als RFR CUL für den SlowRF Mode (jedoch nicht für den HM Mode) möglich, um die Reichweite zu erhöhen. Die Verbindung erfolgt hierbei über Funk, sodass keine USB Verbindung zum FHEM Hostrechner erforderlich ist.

Seit Ende 2012 gibt es ausserdem ein Modul zur Ansteuerung der MAX! Heizungsteuerung. Auch hier ist ein Mischbetrieb (MAX! und z. B. FS20 gleichzeitig über ein CUL) wohl nicht angeraten.

Obwohl die eigentliche Betriebsfrequenz der FHT und FS20-Komponenten 868,35 MHz ist, ist bei den aktuellen CUL Firmwareversionen zum Betrieb mit FHEM die Frequenz auf 868,30 MHz eingestellt. Dies stellt einen Kompromiss zum besseren Empfang von EM1000EM (Energiemonitor) Geräten dar.

Falls keine RP-SMA-Antenne verfügbar ist, kann (nur für erste Tests) auch die abschraubbare Antenne für 802.11b/g WLAN-Geräte (2,4 GHz) benutzt werden, so diese anschlusstechnisch auf den RP-SMA-Stecker des CUL passt (dies funktioniert zumindest mit FS20- und EM-Geräten). Besser ist auf jeden Fall eine speziell auf den Einsatzzweck (Frequenz) abgestimmte Antenne.

Frequenz und Bandbreite können aber im SlowRF Mode frei angepasst und somit für örtlichen Empfangsgegebenheiten optimiert werden.

Hinweise zum Betrieb mit FHEM

Anmerkung:Nachfolgende Beispiele sind so wie dargestellt in die FHEM-Eingabezeile oder per Telnet auf FHEM zu übertragen und per <Enter> abzuschicken (nicht "save" klicken). "myCUL" ist nur ein Platzhalter und mit dem Namen Ihres CUL zu ersetzen:

  • Ist Empfang eingeschaltet ?
    get myCUL raw C35 (13 = ja, z. b.: C35 = 0D / 13)
  • Auslesen der CULFW Version:
    get myCUL raw V
  • LED soll nur bei Senden / Empfangen blinken
    set myCUL raw l00
  • LED soll regelmäßig (1Hz) und beim Senden / Empfangen blinken
    set myCUL raw l02
  • Reboot / Reset des CUL:
    get myCUL raw B00. Andere Werte als 00 starten das CUL im Bootloader-Modus (=> neue Firmware)
  • Freie CUL Sendezeit (1% Regel):
    get myCUL raw X 2. Wert ist Sendezeit in 10ms slots, ein FS20 Befehl braucht ca. 210ms, eine FHT Kommunikation wesentlich mehr.
  • Freie Kapazität des FHT Buffers
    get myCUL raw T03 Ergebniss bytes in HEX. Leer = 4a
  • Inhalt des FHT Buffers
    get myCUL raw T02 (CUL V2 Buffer ist 74 Bytes gross, Platz für 14 bis 31 FHT Messages). Rückgabe n/a = Buffer ist leer
  • Eingestellte [[1]]
    get myCUL raw T01
  • Eingestellte Frequenz, Bandbreite etc. Ausgeben
    get myCUL ccconf.
    Rückgabe z. B.:
    myCUL ccconf => freq:868.300MHz bWidth:325kHz rAmpl:42dB sens:4dB
  • eingestelle Bandbreite erhöhen (z.b. auf 464 kHz, mehr hat meist keinen Sinn):
    set myCUL bWidth 464
  • Einstellen der Sendestärke:
    set myCUL raw x09 Einstellen der Sendeleistung.

Gültige Werte für die Sendeleistung sind 00-09. Verwendet werden sollten nur die Werte 05-09, diese entsprechen -10/-5/0/5/10 Sendeleistung in db. Default ist x08 = +5db. Bitte im Interesse von Nachbarn und der Abhörsicherheit den kleinsten problemlos funktionierenden Wert einstellen. Dies ist meistens x07 oder x08. Da speziell die Kommunikation mit den FHTs bidirektional ist, kann die Kommunikation durch höhere Werte oft nicht verbessert werden, da die FHTs selber dadurch nicht stärker senden. Besser versuchen, Lage und Antennenausrichtung des CUL zu verändern. Siehe auch Diskussion unter GoogleGroups-CUL-Fans

Werte x00-x04 sind mit Ramping und führen zum Verlust der Kommunikationsfähigkeit mit anderen CULs, z. B. RFR CUL.

Hinweis: Beim CUL im HM-Modus kann man (ohne firmware-mod) die Empfangs-/Sendeparameter nicht verstellen. Die üblichen freq/x09 etc. haben hier keine Wirkung (Quelle).

Weiterhin kann man zunehmend mehr Debuggingoutput auf dem CUL einschalten mit :

  • set CUL1 raw X61 Communication wird im Detail angezeigt
  • set CUL1 raw X25 auch checksum Fehler / unerkannte Protokolle werden gemeldet
  • set CUL1 raw X2F alle empfangenen Flanken werden gemeldet
  • set CUL1 raw X80 RSSI / Signalstaerke jeder Flanke wird gemeldet
  • set CUL1 raw X21 normal Modus

Achtung: Auf Gross- und Kleinschreibung des "x,X" achten!

Die kompletten Kommandos mit Erklärung für CUL stehen hier: http://culfw.de/commandref.html

Versionen

Das CUL gibt es in mehreren Versionen, die sich überwiegend in Prozessor und Speicherkonfiguration unterscheiden.

  • CUL V1 - AT90USB162 Prozessor, 0,5Kb RAM, 16Kb Flashmemory, 0,5 kByte EEPROM. Einsatzfähigkeit unbekannt (aber vermutlich wie V2). Wird nicht mehr hergestellt.
  • CUL V2 - AT90USB162 Prozessor, 0,5Kb RAM, 16Kb Flashmemory, 0,5 kByte EEPROM. Einsatzfähig. Der Flashspeicher ist jedoch zu klein für eine culfw (CUL Firmware), die Code für SlowRF Geräte und zugleich HM Geräte enthält. Es muss also vor dem Flashen der Firmware zwischen zwei jeweils reduzierten Versionen gewählt werden. Da ein CUL ohnehin nicht beide Sendemodi zeitgleich betreiben kann, ist dies keine wirkliche Einschränkung. Wird nicht mehr hergestellt.
  • CUL V3 - ATMega32U4 Prozessor, 2,5 kB RAM, 32 kB Flashmemory, 1 kByte EEPROM). Voll einsatzfähig.
  • CUL V4 - ATMega32U2 Prozessor, 1 kB RAM 32 kB Flashmemory, 1 kByte EEPROM. Voll einsatzfähig. Genau genommen ein "Sparmodell" des V3, um Lieferengpässe des atmega32u4 Prozessors zu umgehen. Der reduzierte RAM-Speicher verursacht (zumindest gegenwärtig) beim Betrieb mit culfw und Fhem keine Einschränkungen oder Nachteile. Achtung: Flashen des CULv4 setzt DFU-Programmer 0.5.4 oder höher voraus.

Sendefrequenz

Das CUL gibt es in Ausführungen für 868 und 433 MHz. Die Sende- und Empfangsfrequenz des CUL sind in weiten Bereichen einstellbar, im SlowRF Mode auch durch direkte Befehle aus Fhem (im HM Mode derzeit nicht unterstützt). Der wesentliche Unterschied der 868 und 433 MHz CULs ist ein auf die Frequenz richtig abgestimmter HF-Eingangskreis inklusive Antennenlänge. Es ist es durchaus möglich, ein 868 MHz CUL auf 433 MHz einzustellen. Da dann aber die HF-Eingangskreis-Abstimmung und Antennenlänge nicht korrekt sind, ist Empfangs- und Sendeleistung suboptimal, die Reichweite sinkt. Dennoch wird diese Möglichkeit des freien Einstellens durch das Fhem Intertechnomodul genutzt, da Intertechnokomponenten mit 433 MHz arbeiten. Dazu wird beim Senden eines Intertechno-Befehls die Frequenz eines 868 MHz CULs kurz umgestellt.

Denkbar ist auch der Einsatz eines CUL 433 MHz im Zusammenhang mit HomeMatic. Hier wird das CUL normalerweise im HM Mode betrieben, dessen Frequenz auf 868 MHz fest eingestellt ist. Die verminderte Sendeleistung aufgrund der falschen Antenne fällt je nach örtlicher Gegebenheit eventuell nicht ins Gewicht, da HomeMatic aufgrund seiner besseren Empfänger grundsätzlich etwas bessere Reichweiten hat als die empfangsseitig simplen Intertechnomodule. Soll nun ein Intertechnomodul geschaltet werden, wird das CUL kurzzeitig auf SlowRF umgeschaltet und dann in 433 MHz betrieben, jetzt mit optimaler Antennenabstimmung zur Reichweitenoptimierung der Intertechno-Komponenten, danach wird sofort in den HM Modus zurückgeschaltet, wodurch sich die Frequenz auch automatisch wieder auf 868 MHz ändert. Theoretisch ist hierbei allerdings der Verlust von HM-ACK Meldungen möglich, wenn diese in dem Moment eintreffen, in dem das CUL gerade auf Intertechno umgeschaltet ist.

Bekannte Probleme

Im Gegensatz zu den original FHZ Zentralen ist das CUL recht flankensteil, d.h. die Sende- und Empfangsfrequenz wird genauer eingehalten als z. B. bei einer FHZ1x00PC. Dies kann im Zusammenhang mit den eher ungenauen Sendern z. B. der FHT Raumregler zu Empfangsproblemen führen. Es kann daher mitunter sinnvoll sein, die Sende- und Empfangsbandbreite des CUL etwas zu erhöhen. Dies senkt jedoch gleichzeitig die Empfindlichkeit.

Bei Empfangsproblemen von z. B. HEM-Sensoren oder dem S300TH kann man folgendes testen:

  • Man kann die Frequenz des CUL auf genau 868,35 MHz einstellen. Standardmäßig ist hier aus Kompatibilitätsgründen 868,30 MHz eingestellt. Diese Einstellung wird fest im NVRAM gespeichert und braucht nur einmal vorgenommen zu werden.
    set CUL_0 freq 868.350
  • Es ist möglich die "decision boundary" zu vergrößern, frei beschrieben: die "Entscheidungsgrenze" ob die empfangene Signalflanke digital "0" oder "1" darstellte (siehe Diskussion hier). Möglich sind die Werte "4", "8" und "16". Default-Einstellung ist hier "4". Zur Steigerung der Empfangsqualität soll es hilfreich sein, hier "8" einzustellen. Mitunter bringt jedoch erst die Einstellung auf "16" signifikante Verbesserungen beim Empfang von S300TH-Sensoren.
    set CUL_0 sens 8
  • Oft hilft auch, die Bandbreite auf z. B. 464 kHz aufzuweiten.

Links