CUL: Unterschied zwischen den Versionen
K (Typos/Spelling) |
(Add SIGNALduino item (and locally useful specifics) missing at that paragraph, describe structure design aspects, mark (incompatible/inconsistent) forking as not necessarily beneficial) |
||
Zeile 87: | Zeile 87: | ||
die aktuelle Version laden. | die aktuelle Version laden. | ||
Zusätzlich gibt es folgende Forks der originalen culfw mit speziellen Anpassungen: | Zusätzlich gibt es ["leider"...!?] folgende Forks der originalen culfw mit dortigen speziellen Anpassungen/Abweichungen: | ||
* [https://github.com/heliflieger/a-culfw Alternative culfw for cul devices] auf GitHub und im {{Link2Forum|Topic=35064|LinkText=Forum}} mit Anpassungen unter anderem für InterTechno. Hier könnte es aber zu Funktionseinschränkungen bei anderen Protokollen kommen. In dieser Version ist auch ein Portierung auf ARM-Prozessoren enthalten (siehe {{Link2Forum|Topic=38404|LinkText=Forum}}) mit der die CUL-Firmware auch auf dem HM-CFG-USB-2 und dem [[MAX]] Cube betrieben werden kann. | * [https://github.com/heliflieger/a-culfw Alternative culfw for cul devices] auf GitHub und im {{Link2Forum|Topic=35064|LinkText=Forum}} mit Anpassungen unter anderem für InterTechno. Hier könnte es aber zu Funktionseinschränkungen bei anderen Protokollen kommen. In dieser Version ist auch ein Portierung auf ARM-Prozessoren enthalten (siehe {{Link2Forum|Topic=38404|LinkText=Forum}}) mit der die CUL-Firmware auch auf dem HM-CFG-USB-2 und dem [[MAX]] Cube betrieben werden kann. | ||
* {{Link2Forum|Topic=24436|LinkText=Timestamp Firmware}} mit speziellen Anpassungen für HomeMatic. Bei HomeMatic ist das Timing der Telegramme entscheidend sonst kann es zu "MISSING ACK" bzw. "RESPONSE TIMEOUT REGISTER READ" u.ä. Meldungen kommen. | * {{Link2Forum|Topic=24436|LinkText=Timestamp Firmware}} mit speziellen Anpassungen für HomeMatic. Bei HomeMatic ist das Timing der Telegramme entscheidend sonst kann es zu "MISSING ACK" bzw. "RESPONSE TIMEOUT REGISTER READ" u.ä. Meldungen kommen. | ||
Alternativ zu den [a]culfw-Firmwares gibt es [[SIGNALduino]] (zumindest auf manchen Hardware-Konstellationen umgeflashed direkt anwendbar und 1:1 lauffähig; inkl. normierter/kompatibler Weiterleitung/Dispatching auf die gleichen zentralen Geräte-Protokoll-Dekodier-Module, die auch von anderer Transceiver-Hardware/-Firmware - CUL etc. - ähnlich angebunden werden (sollen); somit Kommunikation mit vielen Funk-Komponenten auch dort idealerweise immer 1:1 funktionierend). | |||
Generell ist das Angebot an Speicherplatz auf dem im CUL verwendeten ATMega32U2 sehr eingeschränkt, wodurch Erweiterungen ohne Abstriche an anderer Stelle kaum mehr möglich sind. Es wird also die optimale CUL-Firmware für alle Zwecke nie geben, so dass man die Auswahl am konkreten Bedarf klären muss. Wer die Firmware selbst compiliert kann gezielt Funktionen die nicht benötigt werden weg lassen und dafür ggf. Funktionen die sonst nicht eingefügt sind hinzufügen. | Generell ist das Angebot an Speicherplatz auf dem im CUL verwendeten ATMega32U2 sehr eingeschränkt, wodurch Erweiterungen ohne Abstriche an anderer Stelle kaum mehr möglich sind. Es wird also die optimale CUL-Firmware für alle Zwecke nie geben, so dass man die Auswahl am konkreten Bedarf klären muss. Wer die Firmware selbst compiliert kann gezielt Funktionen die nicht benötigt werden weg lassen und dafür ggf. Funktionen die sonst nicht eingefügt sind hinzufügen. |
Version vom 28. Dezember 2017, 20:32 Uhr
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 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 ("rfmode - SlowRF") 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.
Ebenso gibt es ein Modul zur Ansteuerung der MAX! Heizungsteuerung. Auch hier ist ein Mischbetrieb (MAX! und z. B. FS20 gleichzeitig über ein CUL) obwohl technisch nicht unmöglich nicht angeraten.
Ferner ist der Einsatz eines CUL als RFR CUL für den SlowRF Mode (jedoch nicht für den HomeMatic Mode) möglich, um die Reichweite zu erhöhen. Die Verbindung erfolgt hierbei über Funk, sodass keine USB Verbindung zum FHEM Hostrechner erforderlich ist.
Alle diese Modi sind in der Original-culfw enthalten und werden z.B. durch die Wahl des rfmode eingestellt.
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 hat sich als Kompromiss zum besseren Empfang von EM1000EM (Energiemonitor) Geräten bewährt, obwohl diese nominal mit 868,360 MHz arbeiten. Praktisch ist die Genauigkeit der Sendefrequenz der meisten SlowRF Geräte wegen der primitiven Sender sehr schlecht und kann deutlich von der nominalen Frequenz abweichen.
Frequenz und Bandbreite können daher im SlowRF Mode frei angepasst und somit für die ö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 <Taste>Enter</Taste> abzuschicken (nicht "save" klicken); myCUL ist dabei nur ein Platzhalter und durch den Namen Ihres CUL zu ersetzen. Da diese Funktionen durch die culfw (Firmware) bereitgestellt werden, funktionieren sie auf allen Geräten, die die culfw verwenden (CUNO, COC, CSM:
- Ist Empfang eingeschaltet ?
get myCUL raw C35
(13 = ja, z. b.: C35 = 0D / 13)
- Auslesen der culfw Version:
get myCUL raw V
- LED ausschalten (Achtung: Buchstabe l (L) vorweg für LED, keine Zahl 1)
set myCUL raw l00
- LED einschalten
set myCUL raw l01
Blinkt bei Senden oder Empfangen von Paketen
- LED soll blinken (einmal in der Sekunde)
set myCUL raw l02
- Reboot / Reset des CUL:
set 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 (also 21 Slots), eine FHT Kommunikation wesentlich mehr. Alternativ auchget myCUL credit10ms
ergibt Sendezeit in 10ms Slots
- 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 FHT-ID
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 HomeMatic-Modus kann man (ohne Firmware-Modifikation) 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 angezeigtset CUL1 raw X25
auch checksum Fehler / unerkannte Protokolle werden gemeldetset CUL1 raw X2F
alle empfangenen Flanken werden gemeldetset CUL1 raw X80
RSSI / Signalstaerke jeder Flanke wird gemeldetset CUL1 raw X21
normal Modus
Achtung: Auf Gross- und Kleinschreibung des "x,X" achten!
Die kompletten Kommandos mit Erklärung für CUL sind in der commandref zu finden.
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 HomeMatic 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.
Die für die aktuellen Modelle lieferbare Abschirmung ist in der Regel nicht notwendig.
Firmware
Die für den CUL und verwandte Hardware wie CUN und CUR im Zusammenhang mit FHEM überwiegend eingesetzte Firmware culfw findet sich auf der
Dort kann die jeweils aktuelle Version nachgesehen und herunter geladen werden. Alten Stände, Version für Entwickler und ganz aktuelle Änderungen findet man auf der
Hier kann man sich z.B. mit
svn co svn://svn.code.sf.net/p/culfw/code/trunk/culfw
die aktuelle Version laden.
Zusätzlich gibt es ["leider"...!?] folgende Forks der originalen culfw mit dortigen speziellen Anpassungen/Abweichungen:
- Alternative culfw for cul devices auf GitHub und im Forum mit Anpassungen unter anderem für InterTechno. Hier könnte es aber zu Funktionseinschränkungen bei anderen Protokollen kommen. In dieser Version ist auch ein Portierung auf ARM-Prozessoren enthalten (siehe Forum) mit der die CUL-Firmware auch auf dem HM-CFG-USB-2 und dem MAX Cube betrieben werden kann.
- Timestamp Firmware mit speziellen Anpassungen für HomeMatic. Bei HomeMatic ist das Timing der Telegramme entscheidend sonst kann es zu "MISSING ACK" bzw. "RESPONSE TIMEOUT REGISTER READ" u.ä. Meldungen kommen.
Alternativ zu den [a]culfw-Firmwares gibt es SIGNALduino (zumindest auf manchen Hardware-Konstellationen umgeflashed direkt anwendbar und 1:1 lauffähig; inkl. normierter/kompatibler Weiterleitung/Dispatching auf die gleichen zentralen Geräte-Protokoll-Dekodier-Module, die auch von anderer Transceiver-Hardware/-Firmware - CUL etc. - ähnlich angebunden werden (sollen); somit Kommunikation mit vielen Funk-Komponenten auch dort idealerweise immer 1:1 funktionierend).
Generell ist das Angebot an Speicherplatz auf dem im CUL verwendeten ATMega32U2 sehr eingeschränkt, wodurch Erweiterungen ohne Abstriche an anderer Stelle kaum mehr möglich sind. Es wird also die optimale CUL-Firmware für alle Zwecke nie geben, so dass man die Auswahl am konkreten Bedarf klären muss. Wer die Firmware selbst compiliert kann gezielt Funktionen die nicht benötigt werden weg lassen und dafür ggf. Funktionen die sonst nicht eingefügt sind hinzufügen.
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 HomeMatic 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.
Antenne
Der CUL ist mit RP-SMA-Stecker für die Antenne aber auch mit angelöteter Drahtantenne lieferbar. Funktional besteht kein Unterschied: auch die "richtige" Antenne ist (in diesem Fall) nur ein Draht, jedoch gummiummantelt und eventuell mit einem Knickgelenk und einem Schraubanschluss versehen, d.h. die Drahtantenne sieht nur unschön aus.
Wichtig ist nur die Länge. Diese muss vorteilhafterweise so groß sein wie ein Viertel der Wellenlänge der Frequenz ("Lambda/4"). Die sind bei 868 Mhz ca. 8,6 Zentimeter. Antennenlängen die länger oder kürzer sind verschlechtern in der Regel die Leistung. Daher ist eine z.B. 10 Zentimeter lange Antenne (obwohl länger) schlechter als 1/4 Lambda mit 8,6 Zentimeter.
Über besondere Antennenkonstruktionen (bitte nach Colinear, Jpole, Yagi suchen) oder Antennen die "Lambda/2" oder gar ("Lambda") lang sind (also ca. 17,2 bzw. 34,5 Zentimeter) kann ein höherer Gewinn erreicht werden. Einher geht aber gleichzeitig eine stärkere Richtwirkung der Antenne. Je kürzer die Antenne, desto kugelförmiger die Abstrahlung. Bei längeren Antennen wird die Abstrahlung mehr und mehr zylinderähnlich, also mit horizontaler Richtwirkung (und in die Richtung ist das Signal dann stärker, daher der Antennen"gewinn"). Das hat auch Nachteile, speziell wenn man auch "nach oben" funken will. Speziell wenn man Antennen länger als eine λ/4 Antenne (8,6 Zentimeter) in einem mehretagigen Haus verwenden will, muss man diese daher in der Regel waagerecht/horizontal ausrichten, da alles was in Richtung der Spitze (und dem Fuss) der Antenne liegt schlecht Empfangen wird.
Daher: Je mehr Gewinn die Antenne aufweist, desto besser ist die Sende und Empfangsleistung, aber desto mehr Gedanken muss man sich um die Ausrichtung der Antenne machen, um alle Geräte zu empfangen / zu erreichen. "Mehr db" und speziell "länger" ist also nicht automatisch besser.
Zu beachten ist auch, dass die Sendeleistung der Module gesetzlich geregelt ist und Spezialantennen mit höherem Gewinn ggf. nur an Empfängern erlaubt sind.
Falls man den CUL mit RP-SMA Stecker geordert hat, aber keine passend lange RP-SMA-Antenne verfügbar ist, kann (nur für erste Tests) auch eine 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). Deren Länge ist wie oben diskutiert aber nicht optimal, besser ist auf jeden Fall eine speziell auf den Einsatzzweck (Frequenz) abgestimmte Antenne.
Antennenlänge
Die genauen Antennenlängen sind praktisch schwer zu ermitteln, da auch Zuleitung auf dem CUL zugerechnet werden müssten und ggf Dämpfungen (also z.B. Durchführung der Antenne durch eine Gehäuse, oder gebogene Antennen) die Antennenlänge weiter beeinflussen. Gleichzeitig haben schon Abweichungen von wenigen Millimetern messbaren Einfluss. Die Antennenlänge ist daher immer nur eine Kompromiss.
Exact berechnet ohne Störeinflüsse wären folgende Antennenlängen nutzbar:
868,35 Mhz (z.B. HM, FS20, FHT …) 1/4 Lambda = 8,63 Zentimeter 1/2 Lambda = 17,26 Zentimeter 1 Lambda = 34,52 Zentimeter (Bereits sehr hohe Richtwirkung)
433,92 Mhz (z.B. Intertechno …)
1/4 Lambda = 17,27 Zentimeter 1/2 Lambda = 34,54 Zentimeter
Folgende Antennenlängen bieten sich praktisch an, diese sind immer etwas kürzer als die optimale Länge, dies wird z.T. durch Leiterlänge im CUL kompensiert.:
8,6 Zentimeter als 1/4 Lambda für 868,35 Mhz 17,2 Zentimeter als 1/2 Lambda für 868,35 Mhz und zugleich 1/4 Lambda für 433,92 Mhz 34,5 Zentimeter als Lambda für 868,35 Mhz und zugleich 1/2 Lambda für 433,92 Mhz
Bekannte Probleme
Im Gegensatz zu den original FHZ-Zentralen ist das CUL recht schmalbandig, 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 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 sens 8
- Oft hilft auch, die Bandbreite auf z. B. 464 kHz aufzuweiten.
set CUL bWidth 464
Selbstbau-/Bastelprojekte
Innerhalb der FHEM-Community werden mittlerweile diverse Bastelprojekte zum Selbstbau eines CUL betrieben. Eine Auswahl dieser Projekte:
- Selbstbau CUL
- FHEMduino
- SIGNALduino
- MapleCUN mit STM32 Mikrocontroller
Links
- Hersteller / Bezugsquelle für CUL: busware.de
- Google groups CUL fans, mittlerweile durch das Board cul-fans im FHEM Forum ergänzt/ersetzt