Ich komme einfach nicht mehr weiter, vielleicht hat ja hier jemand
eine Idee:
Ich bin seit ein paar Tagen Besitzer eines CUL Version 3.2 um meine
vorhandene FS20-Landschaft, die bis dato nur aus Steckdosen FS20ST-3
und Handsenders FS20S8-2 bestand, zu automatisieren.
CUL sollte unter Linux geflasht werden, allerdings hat das Einstecken
mit gedrücktem Mikroschalter zum Einfrieren des Systems geführt, also
unter Windows mit FLIP Firmware 1.44 draufgeflasht. Eingesteckt unter
Linux (Ubuntu Server 11.10), erkannst, Device erstellt, alles gut
soweit. Es gab noch das bekannte Problem mit den Zugriffsrechten (hier
in der Gruppe bereits diskutiert), per udev-Regel behoben, FHEM 5.1
installiert, Zugriff klappt.
Danach bin ich genau nach der Anleitung vorgegangen, nämlich den CUL
definiert (define CUL CUL /dev/CUL 1234), schaltbare Steckdose
definiert (define flur FS20 1234 56) und gesichert (save). Der Empfang
von Signalen funktioniert einwandfei, also wenn ich mit dem
vorhandenen Sender Schaltvorgänge auslöse sehe ich diese im Log, es
werden automatisch Devices angelegt und Logfiles geschriebe. Problem
ist das Senden.
Ich drücke den Knopf auf der Steckdose bis die LED blinkt, dann sende
ich ein Signal über den CUL. Die LED des CUL ist so programmiert, daß
sie nur beim Senden angeht, ich sehe, daß das passiert, und die LED
auf der Steckdose geht aus, also ist das Signal dort angekommen.
Danach klappt die Steuerung der Steckdose aber maximal einmal,
anschließend kommen keine Signale mehr dort an oder werden dort
ignoriert. Ich sehe im Log von FHEM nach dem Hochsetzen des Loglevels
auch, das ein Signal versendet wird, ob das aber wirklich die Antenne
verläßt weiß ich nicht. Ich habe bereits mehrere Dinge überprüft
(Sendebuffer, vorhandene Timeslots für den CUL etc.), aber jetzt bin
ich am Ende meines Lateins. Ich sehe auch keine USB-
Verbindungsabbrüche im Log, wie sie z.B. im FAQ erwähnt werden oder
ähnliches. Die Steckdose befindet sich ca. 1,5 Meter neben dem CUL,
dazwischen ist nur Luft.
Hat irgendjemand eine Idee, woran das liegen könnte? Macht es Sinn,
mal an den Funkparametern des CUL (Frequenz, Bandbreite etc.) zu
schrauben? Wenn ja, in welche Richtung? Kann es sein, daß evtl. die
Firmware nicht korrekt geflasht ist? Mir gehen hier echt die Ideen
aus.
Danke, Steffen
"define CUL CUL /dev/CUL@9600 0000" waere mir in dieser Situation lieber.
> Macht es Sinn, mal an den Funkparametern des CUL (Frequenz, Bandbreite etc.)
> zu schrauben? Wenn ja, in welche Richtung?
Ja, z.Bsp. bWidth groesser, oder bei gleicher bWidth freq in 0.1 MHz Schritten
aendern. Siehe auch "get CUL ccconf"
> Kann es sein, da� evtl. die Firmware nicht korrekt geflasht ist?
Ja. Wenn ccconf komisches meldet, hilft evtl. ein reset (set CUL raw e)
OK, vielen Dank. Ich habe jetzt nochmal die Firmware geflasht über
CULflash (geht übrigens unter Ubuntu nicht automatisch, weil dfu-
programmer root-Rechte braucht und der Daemon unter dem User fhem
läuft, außerdem fehlt fhem Schreibrechte unter /usr/share/fhem/FHEM)
und mit 9600 Baud rate neu angelegt, jetzt klappt das Senden (fast)
zuverlässig! Super!
Fast deswegen, weil offensichlich die Reichweite der Drahtantenne am
CUL nicht ausreichend ist. Direkt neben dem Sender klappt es, aber ein
paar Meter weiter (mit Wassertank dazwischen ;-) nicht mehr. Hier muß
ich mir etwas anderes überlegen. Gibt es Möglichkeiten ohne
Hardwareveränderungen die Reichweite zu verbessern?
Komischerweise habe ich jetzt ein anderes Problem mit dem Empfangen,
weil das Senden eines Signals des Handsenders bei FHEM jetzt ein
"unknown code/help me" erzeiugt, dafür mache ich aber einen
entsprechenden Thread in fhem-users auf.
Ja, mWn sendet CUL nicht mit der maximale Staerke, als "set CUL raw x05" (x
klein!) koennte helfen, siehe auch commandref.html. Ich meine default ist x04.
Das hat's gebracht (bzw. set CUL raw x09). Vielen Dank, der Support
hier ist für ein (wie ich gelesen habe) Freizeitprojekt wirklich vom
allerfeinsten!
Sorry, da habe ich vorher Mist erzaehlt, und die Sache ist auch komplexer.
- default ist x08
- es existieren 2 Verstaerkerserien:
- mit einem jeweiligen "sanften" Anstieg (ramping) x0-x4
- ohne Anstieg (nahezu rechteckig): x5-x9
- das CUL selber "hoert" Signale mit ramping nicht, die FHT/FS20 Empfaenger
schon.
- Um auf dem CUL_V2 Speicher zu sparen, wird nur das x05-x09 angeboten, und x0
bis x4 entsprechend gemapped. Auf dem CULV2 (nur da!) ist also x04 == x09
Antwort: x05 ist sehr leise, ohne Ramping. Maximale Sendestaerke ist mit x04
oder x09 zu erreichen, wobei ich x09 bevorzugen wuerde.
> 2.) Reicht es eigentlich, wenn man genau diesen Befehl ins fhem.cfg
> eintr�gt?
Es reicht x09 einmal einzugeben, es wird im EEPROM gespeichert. Danach muss
aber das Senden mit X21 initialisiert werden (oder fhem neu starten)
> Kann man die Sendeleistung irgendwie auslesen?
Ja, mit einem Rxx oder Cxx Befehl, aber ich bin jetzt zu Faul aus
culfw/clib/fncollection.h oder aus CC1101.pdf die richtigen HEX Zahlen
zusammenzurechnen.
> 3.) Kann mir einer den Unterschied der beiden Zeilen aus der fhem.cfg
> erkl�ren:
> define CUL CUL /dev/ttyACM0 1234
Angesprochen wird /dev/ttyACM0 ueber Device::SerialPort, aber es werden keine
seriellen Parameter gesetzt (kein @...), fhem verlaesst sich auf die defaults
des Betriebsystems. Funktioniert leider nur bei (aus meiner Sicht) "guten"
Distributionen (ArchLinux, OSX, Ubuntu), leider aendert sich das aber auch von
Version zu Version. /dev/ttyACM0 beutet: Linux mit dem cdc_acm USB-Treiber.
1234 ist die FHT-Adresse des CULs: 12 wird bei der Kommuniklation mit dem
FHT80b verwendet, und 1234 fuer die direkte FHT8v Steuerung. Fuer die FS20
Kommunikation ist dieser Nummer irrelevant.
> define CUL CUL /dev/CUL@9600 0000
Hier hat jemand Linux (udev?) so konfiguriert, dass CUL als /dev/CUL
ansprechbar ist. fhem setzt wegen @9600 die seriellen Parameter. Die Baudrate
selber ist fuer das CUL total egal, nicht aber die anderen Parameter wie
"echo", sie wird z.Bsp implizit geloescht.
Bei eingeschalteten echo wird alles was culfw "sagt", von der Linux seriellen
Schnittstelle gleich zurueck ans culfw geschickt. Das waere praktisch, wenn im
CUL ein kleiner Kobold sehen wollte, was er tippt, so nervt es nur.
0000 bedeutet, dass im culfw die FHT "server" Funktionalitaet abgeschaltet
wird, und das CUL antwortet nicht selbstaendig auf irgendwelche FHT Anfragen.
Die FHT Meldungen selber werden trotzdem weitergereicht.
Tippfehler: x00-x04 bzw. x05-x09
Letzteres. Siehe auch culfw/cc1101.c, ccInitChip
Die Sendestaerke steht nicht in einem Register, sondern es sind 8, die ein
Verlauf der Sendestaerke beschreiben. Diesen Verlauf habe ich mit dem RF-Studio
von TI generiert, und nicht selbst erfunden.
SleepModus gibt es nur fuer das CUR, und das will busware mangels Nachfrage
bzw. Preis/Leistungsverhaeltnis wohl nicht in Serie bauen. Etwas schade um die
Antialiased Font Routinen und Monitor-Mode.
Dafuer muss ich die Fhem<->CUR Dateiuebertragung nicht debuggen, und das
Einschlafen hat auch noch seine Macken.
Wo steht denn die o.g. Beschreibung im Spec?
Ja. Einmalig, soll also nicht ins fhem.cfg
Nope. Factory Reset wird nur mit e aufgerufen. Sonst waeren ja die schoenen
EEPROM Werte weg, damit koennte man das EEPROM ganz sparen.
Ja.
> D.h er wird dann auch erstmal dauerhaft dort gespeichert und es macht
> eigentlich keinen Sinn, diesen in die Firmware einzubauen, richtig?
So sehe ich das (== ja).
> Wozu dient dann der Befehl "set CUL raw X21", der oben angesprochen
> wurde?
x != X
Die X Werte werden _nicht_ im eeprom gespeichert. X21 schreibt die
Konfiguration aus dem EEPROM (samt x Einstellung) ins CC1101. Ein "X21" wird
nur dann beim booten automatisch ausgefuehrt, falls das CUL eine RFR Adresse
hat.