Ich geselle mich als Neuling mal dazu :-)
Bei mir @home ist alles in FS20 realisiert, hab bisher auf die teure und unflexible FHZ verzichtet und alles per FS20 FB gemacht.
Da ich seit kurzem nun auch einen Raspberry Pi mein eigen nennen kann, wollte ich es nun mal kostengünstig über diesen probieren.
Allerdings bekomme ich das ELV FS20 US - UART Modul nicht ans rennen.
Es existiert leider auch keine dedizierte Anleitung für das Modul.
Der Pi ist frisch aufgesetzt, FHEM ist installiert, die Einträge für die serielle UART Schnittstelle sind gelöscht oder auskommentiert.
In FHEM ist das Modul mit define CSM1 CUL /dev/ttyAMA0@9600 1234 eingetragen.
Im Log erscheint dennoch :
2014.05.09 15:44:06 3: Opening CSM1 device /dev/ttyAMA0
2014.05.09 15:44:06 3: Setting CSM1 baudrate to 9600
2014.05.09 15:44:06 3: CSM1 device opened
2014.05.09 15:44:16 1: Cannot init /dev/ttyAMA0, ignoring it
Verkabelung sollte stimmen ->
Modul > RasPi
Pin 1 VCC In -> Pin1 3,3 V
Pin 2 TXD -> Pin 10 RXD
Pin 3 RXD -> Pin 8 TXD
Pin 4 GND -> Pin 6 GND
Das Modul blinkt einmal nur kurz beim Einschalten und beim Tasterdruck direkt auf dem Modul.
Im FHEM kann ich keine Version oder sonstige Sachen abfragen.
Auch mit minicom -b 9600 -o -D /dev/ttyAMA0 auf der Console, sehe ich die Verbindung als Offline.
Was mache ich falsch?
Hallo Frickler,
das ELV FS20 US von ELV ist nicht vergleichbar mit dem CSM von Busware.
Ich glaube auch nicht daß das FS20 US sich wie ein CSM ansprechen lässt.
FS20 US benutzt ein eigenes Protokoll welches meines Wissen nach so noch nicht in FHEM implementiert ist.
Mit diesem Modul kannst du auch nur FS20 Befehle senden und nicht empfangen.
Gruß
Dirk
Dass das Modul ein reines Sendemodul ist, war mir bekannt.
Das ist beim FS 20 System ja auch ok, da meine schon vorhandenen FS 20 Geräte ja alles reine Schaltempfänger sind.
Ein Rückkanal ist eh nicht vorhanden seitens der Steckdosen.
Was mich nur wundert ist, dass es bei anderen ja klappte und auch Befehle nach außen dringen.
Bei mir findet wohl schon keine Kommunikation zw. Modul/FHEM und Pi statt wg. dem > Cannot init /dev/ttyAMA0, ignoring it
Daher die Frage, wo es da noch klemmen könnte und was ich testen kann.
Falls alles nicht klappt geht es halt zurück und ich hole mir ein anderes Sendemodul.
Aber erstmal gebe ich nicht auf :-)
Hast du es hinbekommen? Ich wollte eigentlich auch den FS20 US über den FHEM ansprechen.. Geht das inzwischen irgendwie?
Ich bin was FHEM und Perl betrifft absoluter Anfänger...
Noch Interesse? Ich hab es eben hinbekommen :)
Ich gehe allerdings nicht über die "offiziellen" Wege sondern rufe ein eigenes Perlscript auf - das schickt dann einen String an die FS20 US und der wird gesendet. Wenn jemand Details braucht, schreib ich die gern - jetzt bin ich aber feiern :)
vg
Klaus
So, es läuft immer noch ganz gut.
Das hier habe ich in ein eigenes Perl Script gepackt und rufe es mit den Parametern "Front"/"Back" und "Up"/"Down" auf (ich hab vorne und hinten Rolläden zu steuern)
use Device::SerialPort;
$side = $ARGV[0];
$cmd = $ARGV[1];
$Port = new Device::SerialPort( "/dev/ttyUSB0" ) || die "Can't open ttyUSB0";
if( $side eq "Front" )
{
$sb = "55";
} else
{
$sb = "00";
}
if( $cmd eq "Up" )
{
$c = "10";
} else
{
$c = "00";
}
$Port->baudrate( 38400 );
$Port->parity( "none" );
$Port->databits( 8 );
$Port->stopbits( 1 );
$string = "0206f1050a".$sb.$c."00";
print $string, "\n";
$bin = pack( "H[16]", $string );
$cnt = $Port->write( $bin );
Aus der Anleitung der FS20 US habe ich mir das Kommando zusammengebaut:
02 06 f1: Startsequenz, Anzahl Bytes, Befehl einmal senden
05 0a: Mein Hauscode (siehe http://www.fhemwiki.de/wiki/FS20_Allgemein für die blöden Umrechnungen)
$sb : Side Byte - Welcher Rolladen soll es denn sein? Das muss mit den FS20 RSU abgestimmt sein...
$c: Command - wieder aus der Anleitung: 0 für Aus-runter und 10 für An-rauf
Dann wird das ganze in einen Binärstring verpackt (danke an den unbekannten Poster der mir das verraten hat) und auf den Port rausgeschrieben...
Durch frühere Versuche habe ich den FS20 US auf 38.400 umgebogen. Ich denke mal, es würde auch mit den default 9.600 gehen.
Viel Glück
Klaus