define <name> OWServer <protocol> [<version>]
The OWServer device uses
OWNet.pm from Sourceforge
to connect to the owserver.
Currently, OWNet modules for versions 2.8p17 and 3.1p5 are deployed with FHEM.
You can manually add more versions by extracting OWNet.pm from
one of the
available versions and saving it as as
FHEM/lib/OWNet-<version>.pm
in the FHEM directory
structure.
The first connection to the owserver is made using version 3.1p5 unless
you explicitely suggest another version using the optional
<version>
parameter. You should suggest a OWNet module
version matching your actual owserver version if FHEM hangs after
connecting to the owserver.
The OWServer device autodetects the owserver version and chooses a matching OWNet module from the list of available OWNet modules. If no matching OWNet module is found, the initially suggested version is used. The nightmare situation of two OWServer devices connecting to owserver instances with different versions is not handled correctly. The server and module versions are stored in the internals of the OWServer device for your reference.
The ow* version 3.1p5 packages provided with Debian Stretch and
the ow* version 2.8p17 packages provided with Debian Jessie are fine.
The ow* version 2.9 packages provided with Debian Jessie in combination with OWNet.pm as
deployed with FHEM might have issues (feedback welcome).
For Debian Jessie you could unzip
owfs_2.8p17-1_all.zip and install
owserver, dependencies and what else you require with dpkg -i <package>.deb
.
Please report issues and successes related to versions in the 1Wire board of the FHEM Forum.
A typical working configuration file /etc/owfs.conf
looks as follows:
# server uses device /dev/onewire
server: device = /dev/onewire
# clients other than server use server
! server: server = localhost:4304
# port
server: port = 4304
# owhttpd
http: port = 2121
# owftpd
ftp: port = 2120
The actual 1-wire devices are defined as OWDevice devices.
If autocreate is enabled, all the devices found are created at
start of FHEM automatically.
This module is completely unrelated to the 1-wire modules with names all in uppercase.
Examples:
define myLocalOWServer OWServer localhost:4304
define myRemoteOWServer OWServer raspi:4304 2.8p17
localhost
and the FQDN of your owserver as server directives
to the owserver configuration file
on the remote host.
set <name> <value>
value
is one ofreopen
timeout/directory
timeout/ftp
timeout/ha7
timeout/network
timeout/presence
timeout/serial
timeout/server
timeout/stable
timeout/uncached
timeout/usb
timeout/volatile
timeout/w1
units/pressure_scale
units/temperature_scale
get <name> <value>
value
is one ofdevices
errors
/settings/timeout/directory
/settings/timeout/ftp
/settings/timeout/ha7
/settings/timeout/network
/settings/timeout/presence
/settings/timeout/serial
/settings/timeout/server
/settings/timeout/stable
/settings/timeout/uncached
/settings/timeout/usb
/settings/timeout/volatile
/settings/timeout/w1
/settings/units/pressure_scale
/settings/units/temperature_scale
/uncached/alarm
attr <name> nonblocking 1
nonblocking
if you experience lockups of FHEM.
define <name> OWServer <protocol> [<version>]
Die OWServer-Instanz verwendet
OWNet.pm von Sourceforge,
um sich mit dem owserver zu verbinden.
Gegenwärtig werden OWNet-Module für die Versionen 2.8p17 and 3.1p5
mit FHEM verteilt. Man kann manuell weitere Versionen hinzufügen,
indem man OWNet.pm aus
einer der
verfügbaren Versionen extrahiert und als
FHEM/lib/OWNet-<version>.pm
in der FHEM-Verzeichnisstruktur
speichert.
Die erste Verbindung mit dem owserver wird mit der Version 3.1p5 aufgebaut,
es sei denn, dass man ausdrücklich eine andere Version mit dem
optionalen Parameter
<version>
vorschlägt. Man sollte eine
OWNet-Modulversion vorschlagen, die der tatsächlichen Version von
owserver entspricht, falls FHEM nach dem Verbindungsaufbau zum owserver
hängt.
Die OWServer-Instanz erkennt die Version von owserver automatisch und wählt das passende OWNet-Modul aus der Liste der verfügbaren OWNet-Module aus. Wenn kein passendes OWNet-Modul gefunden wird, wird die ursprünglich vorgeschlagene Version verwendet. Die alptraumhafte Situation mit zwei OWServer-Instanzen, die sich mit owserver-Instanzen in unterschiedlichen Versionen verbinden, wird nicht korrekt gehandhabt. Die Versionen von Server und Modul werden zum Nachschauen in den Internals der OWServer-Instanz gespeichert.
Die ow*-Pakete in der Version 3.1p5 bei Debian Stretch und
die ow*-Pakete in der Version 2.8p17 bei Debian Jessie sind gut.
Die ow*-Pakete in der Version 2.9 bei Debian Jessie in Kombination mit den
OWNet-Modulen bei FHEM können Auffälligkeiten zeigen (Rückmeldung
willkommen). Für
Debian Jessie kann man
owfs_2.8p17-1_all.zip
auspacken und owserver, Abhängigkeiten und was man sonst so braucht
mittels dpkg -i <package>.deb
installieren.
Bitte Auffälligkeiten und Erfolgsmeldungen zu Versionen im 1Wire-Board des FHEM-Forums berichten.
Eine typische funktionierende Konfigurationsdatei /etc/owfs.conf
sieht so aus:
# server uses device /dev/onewire
server: device = /dev/onewire
# clients other than server use server
! server: server = localhost:4304
# port
server: port = 4304
# owhttpd
http: port = 2121
# owftpd
ftp: port = 2120
Die vorhandenen 1-Wire- Busteilnehmer werden als OWDevice -Geräte definiert.
Wenn autocreate aktiviert ist, werden beim Start von FHEM alle Geräte automatisch erkannt und eingerichtet.
Achtung: Dieses Modul ist weder verwandt noch verwendbar mit den 1-Wire Modulen, deren Namen nur aus Großbuchstaben bestehen!
Beispiele für die Einrichtung:
define myLocalOWServer OWServer localhost:4304
define myRemoteOWServer OWServer 192.168.1.100:4304
define myRemoteOWServer OWServer raspi:4304
localhost
und einen mit dem "FQDN", bzw. dem Hostnamen, oder der IP-Adresse des Computers, auf dem die Software "owserver" läuft.
set <name> <value>
value
für einen der folgenden Befehle steht:reopen
timeout/directory
timeout/ftp
timeout/ha7
timeout/network
timeout/presence
timeout/serial
timeout/server
timeout/stable
timeout/uncached
timeout/usb
timeout/volatile
timeout/w1
units/pressure_scale
units/temperature_scale
get <name> <value>
value
für einen der folgenden Befehle steht:devices
errors
/settings/timeout/directory
/settings/timeout/ftp
/settings/timeout/ha7
/settings/timeout/network
/settings/timeout/presence
/settings/timeout/serial
/settings/timeout/server
/settings/timeout/stable
/settings/timeout/uncached
/settings/timeout/usb
/settings/timeout/volatile
/settings/timeout/w1
/settings/units/pressure_scale
/settings/units/temperature_scale
/uncached/alarm
attr <name> nonblocking 1
nonblocking
wieder deaktiviert werden.