FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: dero am 04 Februar 2016, 01:57:09

Titel: [42_FTDI.pm] Modul zum Ansteuern von FTDI-USB-Relais (z.B. Sainsmart)
Beitrag von: dero am 04 Februar 2016, 01:57:09
Verifizierte USB-Railsboards

Im Prinzip müssten alle USB-Relaisboards funktionieren, die per FTDI ansteuerbar sind. Verifiziert sind:


FTDI-Device-Rechte setzen

Ubuntu

Auf der Shell die Datei /etc/udev/rules.d/44-my.rules als Sudo anlegen (oder editieren):


sudo nano /etc/udev/rules.d/44-my.rules


Folgende Zeile hinzufügen.


SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", GROUP="dialout", MODE="0666"


Damit sollte FHEM Zugriff auf das FTDI-USB-Gerät bekommen.

Installation des Device::FTDI-Perl-Moduls

Ubuntu

Auf der Shell als Sudo build-essential, libusb-dev und libftdi-dev installieren:


sudo apt-get install build-essential libusb-dev libftdi-dev


Als Sudo das Perl-Modul "Device::FTDI" installieren:


sudo perl -MCPAN -e install "Device::FTDI"


Installation des FTDI-FHEM-Moduls

Angehängte 42_FTDI.pm nach fhem kopieren.

Serial des Relais herausfinden

Jedes FTDI-Device hat eine eigene Serial. Um das richtige Device anzusprechen, müsst Ihr erst einmal die Serial des Relais herausfinden. Dazu auf der Shell eingeben:


perl -e "use Device::FTDI; Device::FTDI::find_all();"


Beispielsausgabe:


Serial: A4002DL4
Serial: A1WRS9LY


Mein Relais hat die Serial A4002DL4. Die andere Serial bezieht sich auf den RFXTRX433, der auch an einem USB-Port hängt.

Um sicher zu gehen, dass Ihr die richtige Serial bekommt, solltet Ihr alle anderen USB-Geräte vorher abziehen!

Gerät für Relais definieren

Die Schaltkarte enthält vermutlich mehrere Ralais. <index> bestimmt die Nummer für das Relais, wobei mit 0 angefangen wird. Welche Nummer für welches Relais steht, muss man ausprobieren...


define <device> FTDI <serial> <index>


Beispiel:


define Relais0 FTDI A4002DL4 0
define Relais1 FTDI A4002DL4 1


Relais schalten

Relais anschalten:


set <device> on


Relais ausschalten:


set <device> off


Versionen


Viel Glück!
Titel: Antw:[42_FTDI.pm] Modul zum Ansteuern von FTDI-USB-Relais (z.B. Sainsmart)
Beitrag von: FNT am 07 Februar 2016, 00:56:48
Hi,

das klingt sehr interessant - kannst Du dazu ein bestimmtest Relais empfehlen?

Danke,
FNT
Titel: Antw:[42_FTDI.pm] Modul zum Ansteuern von FTDI-USB-Relais (z.B. Sainsmart)
Beitrag von: dero am 07 Februar 2016, 11:52:04
erledigt, s.o.
Titel: Antw:[42_FTDI.pm] Modul zum Ansteuern von FTDI-USB-Relais (z.B. Sainsmart)
Beitrag von: Jack_n am 05 November 2016, 08:06:04
Hallo,

ich habe versucht das nach der Anleitung auf einem Raspberry Pi zu machen scheitere aber leider.
Habt Ihr bitte einen Tip:

pi@raspberrypi:~ $ perl -e "use Device::FTDI; Device::FTDI::find_all();"
Can't locate Device/FTDI.pm in @INC (you may need to install the Device::FTDI module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
Titel: Antw:[42_FTDI.pm] Modul zum Ansteuern von FTDI-USB-Relais (z.B. Sainsmart)
Beitrag von: AmunRe am 28 April 2017, 14:59:18
Zitat von: Jack_n am 05 November 2016, 08:06:04
Hallo,

ich habe versucht das nach der Anleitung auf einem Raspberry Pi zu machen scheitere aber leider.
Habt Ihr bitte einen Tip:

pi@raspberrypi:~ $ perl -e "use Device::FTDI; Device::FTDI::find_all();"
Can't locate Device/FTDI.pm in @INC (you may need to install the Device::FTDI module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at -e line 1.
BEGIN failed--compilation aborted at -e line 1.



Der Vollständigkeit halber hier eine mögliche Lösung (so hat es bei mir geklappt):

sudo cpan install Device::FTDI