WEBIO 12DIGITAL

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
WEBIO_12DIGITAL
Zweck / Funktion
Ansteurung von W&T WebIO Digital
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Sonstiges
Modulname 23_WEBIO_12DIGITAL.pm
Ersteller Sascha alias sachag
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


FHEM Modul zur Ansteurung von W&T WebIO Digital Ausgängen

Allgemeines

Die Firma Wiesemann & Theis GmbH in Wuppertal stellt diverse Geräte zur Daten- und Signalübertragung in Industrieqaulität her. Die Geräte sind relativ hochpreisig, aber auch sehr robust.
Die WebIOs zeichnen sich durch einen recht hohen Bereich in der Versorgungsspannung (12-24V AC/DC) und der Eingangsspannung (max. Eingangsspannung +/-30V, Schaltschwelle 8V +/- 1V) sowie einem geringem Steuerstrom an den Eingängen ("Ein"-Strom = 2,2 mA) aus. Sie besitzen eine galvanische Trennung. Die Ausgänge sind entweder digital (12x 6V-30V, 500mA) oder potentialfreie Relaiskontakte (6x Schaltspannung max 48V AC bei 5A Laststrom bzw. Schaltspannung max 30V DC bei 5A Laststrom). Die Digitalausgänge können in Gruppen zusammengefasst werden, um höhere Ströme zu schalten.

Basic Syntax

Definition

define <name> WEBIO_12DIGITAL <IP|FQDN> <WebIO-Output-Nummer> <Poll-Intervall für Statusabfrage in Sekunden>

Die Kommunikation erfolgt über HTTP. Im angegebenen Intervall wird der Status des Ausgangs geprüft um eine Statusänderung durch Steuerbefehle außerhalb von FHEM zu erfassen.

on / off

set <name> on|off

Schaltet den Ausgang ein bzw. aus.

on for timer

set <name> on-for-timer <timer>

Schaltet den Ausgang für den Wert von Timer in Sekunden ein. Die Steuerung erfolgt durch das Modul, welches nach dem Timerablauf einen Off-Befehl sendet.

Beispiel:

set <name> on-for-timer 10 : Schaltet den Ausgang für 10 Sekunden auf ON.

Konfiguration WebIO

IP-Adresse

Die IP-Adresse des WebIO kann mit der Windows-Software WuTility gesetzt werden, welche auch ein Firmwareupgrade ermöglicht. Alternativ kann die IP-Adresse über die V.24-Schnittstelle administriert werden.

Login auf WebIO

Nach Setzen der IP wird die restliche Konfiguration via HTTP im Webbrowser vorgenommen. Nach Aufruf der Adresse http://IP-des_WebIO erscheint die eingestellte Startseite. Zur Konfiguration muss man sich zuerst einloggen. Das Default Passwort ist leer.
Nach dem Login wird man gefragt, ob man im Expertenmodus oder über Profile arbeiten möchte. Beide Modis sind grundsätzlich gleich, jedoch markiert der Profil-Modus die für das gewählte Profil zu administrierenden Menüpunkte im Parameterbaum.
Zweig im Webinterface: Home -> Config

Passwort

Zum Schalten via HTTP wird das Operator-Passwort des WebIO benötigt. Das das Modul kein Kennwort unterstützt, muss dieses im Web-IO leer gelassen werden.
Zweig im Webinterface: Home -> Config -> Session Control -> New Password

HTTP-Steuerung aktivieren

Damit die Ausgänge gesteuert werden können, muss der Punkt 'HTTP GET enable' aktiviert sein.
Zweig im Webinterface: Home -> Config -> Device -> Basic Settings -> HTTP

Ausgangskonfiguration

Die Ausgänge müssen für die Steuerung via HTTP eingestellt werden.
Zweig im Webinterface: Config -> Device -> Output Mode

Überwachung der WebIO-Inputs

Diese Funktion wird nicht durch das Modul unterstützt, kann aber recht einfach über das Telnet-Interface von FHEM abgebildet werden. Auch hier ist nur der Vorgang ohne Kennwortschutz auf dem FHEM-Telnet-Interface getestet und dokumentiert.

Einrichtung im FHEM

Im FHEM wird pro Input ein Dummy angelegt:

define <name> Dummy

Beispiel entspr. der folgenden WebIO-Konfiguration:

define WuTest1 Dummy

Einrichtung im WebIO

Im WebIO wird pro Input ein TCP-Alarm eingerichtet, welcher den Zustand an das Telnet-Interface sendet:
WebIO-Alarm1.png
WebIO-Alarm2.png
Bei der Befehlszeile ist darauf zu achten, dass diese mit einem Return abgeschlossen ist, da ansonsten die Befehlsausführung scheitert.

zyklische Statusaktualisierung

Da die Zustände nicht gepollt werden, könnte es passieren, dass eine Änderung nicht im FHEM registriert wird. Um dieses Risiko zu minimieren gibt es 2 Wege den Status. zyklisch zu aktualisieren. Zum Einen kann mit dem HTTPMOD zyklisch der Input gelesen werden, zum Anderen kann der Alarm auch zyklisch gestartet werden. Zudem kann der Status nach Restart des WebIO neu übermittelt werden:

Prüfung via HTTPMOD

Diese Option bietet sich an, wenn man keinen Dummy anlegen will und die zyklische Prüfung des Input-Status ausreicht.

define WebIO_I0 HTTPMOD http://WebIO-Adresse/input0?PW=& Prüfintevall
attr WebIO_I0 userattr reading00Name reading00Regex
attr WebIO_I0 reading00Name Input00
attr WebIO_I0 reading00Regex input0;(.*)

Beim Anlegen über die GUI-Kommandozeile kann der Punkt userattr ignoriert werden, dies wir automatisch durch das Anlegen der anderen Attribute erledigt. Beim direkten Eintragen in die Konfig (nicht empfohlen) müssen im Attribut Regex 2 Semikolons angegeben werden Um nun den Dummy zu setzen, bedarf es noch eines Notify.

Prüfung via zyklischer Alarme im Web-IO

WebIO-Alarm3.png
In diesem Beispiel soll nun der Status minütlich übertragen, sowie nach einem Restart des WebIO. Eine Überprüfung zeigte, dass die zyklische Übertragung nicht funktioniert. Laut Handbuch muss noch der Time Trigger administriert werden:
WebIO-Alarm4.png
Nun konnte ein minütliches Update des Inputstatus geprüft werden. Details zum Sytax des Time Trigger sind im Handbuch des WebIO zu finden. Dieser soll sich jedoch an dem Syntax des Linux-Cron orientieren.

Einschränkung

Sehr kurze ON-Impulse am Eingang führten im Test dazu, dass der OFF-Zustand nicht mehr gesetzt wurde. Im Trace hat sich gezeigt, dass das WebIO den OFF-Befehl nicht sendet.
Wenn das Übermitteln einer Zustandsänderung scheitert, wird der Input-Zustand nicht gepollt, es wird also erst bei der nächsten Zustandsänderung der Dummy-Zustand angepasst. Dieser Umstand lässt sich durch die oben beschriebene zyklische Übertragung des Zustandes reduzieren.

Links