Skip to content

Klimaanlage, Alarmanlage, Löschanlage und USV an USB

Viele Geräte der "Haustechnik" bzw. "Infrastruktur" (das können Klima, Lösch-, Alarmanlagen oder USVs sein) melden Fehlerzustände mit einem potenzialfreien Alarmkontakt. Das klingt ziemlich hochtrabend, ist aber in aller Regel nur ein simples Relais mit einem Schließerkontakt, das im Normalfall angezogen ist. Sprich, wenn irgendwas passiert, fällt das Relais ab und der Kontakt geht auf. Bei dieser Schaltung werden auch Defekte im Relais selbst oder Schäden an der Verkabelung erkannt; das ganze versagt also zur richtigen Seite.

Ich habe in den letzten Monaten einige Zeit damit verbracht, ein Stück Hardware zu finden, was mir ermöglicht, den Zustand eines potenzialfreien Alarmkontaktes in einen PC einzulesen und den Alarm mit Netzwerkmitteln (z.B. Nagios) weiterzumelden.

Die zwei Rechner, an die ich das ankoppeln möchte, sind ein 1U-Server und ein Notebook. Beide Geräte haben gemeinsam, dass sie keinen Gameport haben und auch PCI-Slots eher knapp sind (der Server hat zwar einen, der sollte aber für andere Anwendungen frei bleiben). Bleibt die serielle Schnittstelle (die wohl in der nächsten Gerätegeneration auch aussterben wird) und USB. Also USB.

Als Ergebnis einer Diskussion im Usenet gab es die Empfehlung für das universelle 8-Kanal-USB-Interface aus dem Webshop von ABACOM, was knapp fünfzig Euro kostet.

Das Ding hat zehn Schraubklemmen (GND, Vcc, Port 1 bis Port8), wobei jeder Port als digitaler Ausgang, als digitaler Eingang, analoger Eingang und Temperatureingang (die dazu passenden Fühler kosten extra) verwendet werden kann. Die Digitalausgänge sind mit 25 mA pro Kanal belastbar, ob das für ein Relais reicht weiß ich nicht. Ich habe zu lange keine ernsthafte Elektronik mehr betrieben.

Besondere Treiber sind nicht nötig, das Ding wird beim Einstecken sofort erkannt und als serielle Schnittstelle erreichbar:

Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: new full speed USB device using ehci_hcd and address 20
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: configuration #1 chosen from 1 choice
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: New USB device found, idVendor=0403, idProduct=6001
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: Product: DLP-IO8
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: Manufacturer: DLP Design
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: SerialNumber: 12345678
Jul  3 09:29:47 scyw00225 kernel: usbcore: registered new interface driver usbserial
Jul  3 09:29:47 scyw00225 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
Jul  3 09:29:47 scyw00225 kernel: usbcore: registered new interface driver usbserial_generic
Jul  3 09:29:47 scyw00225 kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core
Jul  3 09:29:47 scyw00225 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
Jul  3 09:29:47 scyw00225 kernel: ftdi_sio 4-4.1:1.0: FTDI USB Serial Device converter detected
Jul  3 09:29:47 scyw00225 kernel: drivers/usb/serial/ftdi_sio.c: Detected FT232RL
Jul  3 09:29:47 scyw00225 kernel: usb 4-4.1: FTDI USB Serial Device converter now attached to ttyUSB0
Jul  3 09:29:47 scyw00225 kernel: usbcore: registered new interface driver ftdi_sio
Jul  3 09:29:47 scyw00225 kernel: drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver

Dann connected man mit 115k8n1 auf die neu erkannte serielle Schnittstelle und kann dort Einbuchstabenkommandos hinschicken. Dabei wird durch das Kommando auch gleich der Port ausgewählt. Hier zum Beispiel die Kommandos für Port 1:

1Digitalausgang HIGH
QDigitalausgang LOW
ADigitaleingang abfragen
ZAnalogeingang abfragen
9Temperatur abfragen

Das einzige was ich probiert habe ist der Digitaleingang. Der wird, wenn er in der Luft hängt, zuverlässig als LOW erkannt, wobei ich natürlich nicht weiß, wie sich das verhält wenn da erstmal zwanzig Meter Anschlussleitung dran hängen und irgendwas da hinein streut. Vielleicht nimmt man dafür am besten einen Pull-Down-Widerstand.

Wenn man dem Gerät auf der seriellen Schnittstelle das "A" schickt, kommt sofort "0" oder (wenn man den Eingang mit Vcc verbindet) "1" zurück. So soll es sein.

Für den Anschluß eines Temperaturfühlers braucht's noch einen 4k7-Pullup-Widerstand.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

... on :

Betriebsspannung für kleines Gerät (Webcam, DSL-Modem, Gadget) über den Kontakt führen, Gerät (oder dahinter hängende Rechentechnik) pingen?

Nachteil: Wird Gerät extra für diesen Zweck betrieben, kostets bei 10 W etwa 4..5 Cent am Tag und heizt.

Marc 'Zugschlus' Haber on :

Sorry, aber das ist Bastelei auf Schülerniveau, etwas professioneller darf es dann doch schon sein.

Add Comment

Markdown format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
Form options