CUL ueber Netz
Da bei mir RFR CUL sehr instabil lief, WLAN aber zufriedenstellend, habe ich einen Buffalo WZR-HP-G300NH mit OpenWRT Backfire (10.03.1-rc4) ausgestattet, als WLAN-Client konfiguriert und den CUL am USB-Port betrieben.
Um den CUL als Quasi-CUN über FHEM anzusprechen, läuft folgendes Script auf dem Router:
#!/bin/sh DEV=/dev/ttyACM0 while (true) do /usr/bin/socat -ly -lh GOPEN:$DEV,raw,echo=0 TCP-LISTEN:2323 sleep 2 done
Zu beachten ist, dass socat in der mitgelieferten Version (1.6.0.1-2) für o.g. Zweck nicht funktioniert. Man kann aber eine neuere Version (1.7.1.3-2) von http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/ herunterladen und installieren.
Die Konfiguration in fhem ist einfach:
define cul868 CUL <name-des-geräts>:2323 <fhtid> attr cul868 model CUL
Anstelle von socat kann man im Notfall auch netcat benutzen. Dazu im Script die Zeile mit socat durch
netcat -l -p 2323 < $DEV >$DEV
ersetzen. Allerdings gab es dann häufig Probleme mit der Echo-Einstellung, so dass mehrere Anläufe erforderlich waren, bis es nach einen Reboot stabil läuft.
ser2net
Statt socat kann man auch ser2net verwenden. Hierzu das standard ser2net Paket installieren und in /etc/ser2net.conf so konfigurieren:
2000:raw:0:/dev/ttyACM0:38400 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE
Danach den CUL in fhem anlegen:
define cul CUL<ip>:2000 0000
Natürlich lassen sich auch mehrere CUL, panStick, JeeLink oder miniCul einrichten. Hierzu ist dann jeweils ein eigener Port zu verwenden und die Geschwindigkeit passend zu setzen:
#cul 2000:raw:0:/dev/ttyACM0:38400 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE 2001:raw:0:/dev/ttyACM1:38400 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE #panStick 2002:raw:0:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900LDNL-if00-port0:38400 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE #JeeLink 2003:raw:0:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AE01DTXW-if00-port0:57600 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE #miniCul 2004:raw:0:/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AI02IDI4-if00-port0:38400 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE