OWServer & OWDevice: Unterschied zwischen den Versionen

Aus FHEMWiki
Keine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''Einleitung:'''
 
 
==Einleitung==
 
Bei OWServer handelt es sich um eine 1-Wire Server Komponente und bei OWDevice um eine Geräte-Komponente, welche die angeschlossenen Module definiert-
Bei OWServer handelt es sich um eine 1-Wire Server Komponente und bei OWDevice um eine Geräte-Komponente, welche die angeschlossenen Module definiert-
Die Module benötigen die Serverkomponente von [http://www.owfs.org OWFS].
Die Module benötigen die Serverkomponente von [http://www.owfs.org OWFS].
Zeile 5: Zeile 8:


'''Wichtig:'''
'''Wichtig:'''
Die Module sind eine eigenständige Möglichkeit, den 1-Wire Bus anzusteuern und kommen ohne die Module aus, deren Namen aus Großbuchstaben bestehen (wie OWX, OWSWITCH, OWTHERM, etc.).  
Die Module sind eine eigenständige Möglichkeit, den 1-Wire Bus anzusteuern und kommen ohne die Module aus, deren Namen aus Großbuchstaben bestehen (wie OWX, OWSWITCH, OWTHERM, etc.).  
Umgekehrt können die Module OWX, OWSWITCH, OWTHERM, etc. auch mit dem Backendmodul OWServer zusammenarbeiten, siehe dazu die commandref der betreffenden Module.
Umgekehrt können die Module OWX, OWSWITCH, OWTHERM, etc. auch mit dem Backendmodul OWServer zusammenarbeiten, siehe dazu die commandref der betreffenden Module.
Zeile 10: Zeile 14:




'''Vorbereitung:'''
==Vorbereitung==
 
Wie oben erwähnt, setzt OWServer/OWDevice auf OWFS auf. Dazu ist eine funktionierende OWFS Installation notwendig. Die Installation ist auf der selben Plattform (Debian-based) möglich oder auch Remote (zBsp Dockstar oder RPi). Eine gute [http://owfs.org/index.php?page=standard-devices Liste der Standard Devices]auf der Homepage von OWFS einzusehen. Nicht alle Standard Devices sind in OWDevice verfügbar (siehe unten).Wenn OWFS funktioniert kann's weiter gehen...
Wie oben erwähnt, setzt OWServer/OWDevice auf OWFS auf. Dazu ist eine funktionierende OWFS Installation notwendig. Die Installation ist auf der selben Plattform (Debian-based) möglich oder auch Remote (zBsp Dockstar oder RPi). Eine gute [http://owfs.org/index.php?page=standard-devices Liste der Standard Devices]auf der Homepage von OWFS einzusehen. Nicht alle Standard Devices sind in OWDevice verfügbar (siehe unten).Wenn OWFS funktioniert kann's weiter gehen...




'''owfs Pakete installieren'''
===owfs Pakete installieren===
1)entweder sind die Pakete bereits vorpaketiert und man muss nur das [http://owfs.davromaniak.eu/ Repository] noch in /etc/apt/sources.list eintragen
 
1) entweder sind die Pakete bereits vorpaketiert und man muss nur das [http://owfs.davromaniak.eu/ Repository] noch in /etc/apt/sources.list eintragen


2)oder man muss selber kompilieren ([http://www.navitron.org.uk/forum/index.php?topic=12604.msg151750#msg151750 Quelle]).  
2) oder man muss selber kompilieren ([http://www.navitron.org.uk/forum/index.php?topic=12604.msg151750#msg151750 Quelle]).  
Für den RaspberryPi wurde dies schon durchgeführt: [http://forum.fhem.de/index.php?t=getfile&id=2742&rid=118 owfs_2.8p17-1_all.zip]
Für den RaspberryPi wurde dies schon durchgeführt: [http://forum.fhem.de/index.php?t=getfile&id=2742&rid=118 owfs_2.8p17-1_all.zip]


Zeile 41: Zeile 47:
owfs_2.8p7+cvs20110310-1_all.deb</nowiki>
owfs_2.8p7+cvs20110310-1_all.deb</nowiki>


'''Unterstütze Geräte:'''
===Unterstütze Geräte===
Eine aktuelle Liste der von OWDevice unterstützen Geräte findet man im [http://fhem.de/commandref.html#OWDevice FHEM-Commandref].
Eine aktuelle Liste der von OWDevice unterstützen Geräte findet man im [http://fhem.de/commandref.html#OWDevice FHEM-Commandref].




'''Konfiguration in FHEM:'''
==Konfiguration in FHEM==
Als erstes definiert man OWServer. Hiermit wird ein logischer OWServer definiert, auf welchem OWFS installiert ist
Als erstes definiert man OWServer. Hiermit wird ein logischer OWServer definiert, auf welchem OWFS installiert ist


Zeile 62: Zeile 68:
Danach werden sämtliche angeschlossene Geräte angezeigt, inkl. Busmaster
Danach werden sämtliche angeschlossene Geräte angezeigt, inkl. Busmaster


'''OWServer Set Befehle:'''
===OWServer Set Befehle===
  <nowiki>set &lt;name&gt; &lt;value&gt;
  <nowiki>set &lt;name&gt; &lt;value&gt;
value:
value:
Zeile 81: Zeile 87:
Weitere Informationen zu den Set Befehlen sind im [http://owfs.org/uploads/owserver.1.html#sect41 OWServer Manual] zu entnehmen.
Weitere Informationen zu den Set Befehlen sind im [http://owfs.org/uploads/owserver.1.html#sect41 OWServer Manual] zu entnehmen.


'''OWServer Get Befehle:'''
===OWServer Get Befehle===
  <nowiki>get &lt;name&gt; &lt;value&gt;
  <nowiki>get &lt;name&gt; &lt;value&gt;
value:
value:
Zeile 104: Zeile 110:
get &lt;Devicename&gt; devices #scan den Server nach Device</nowiki>
get &lt;Devicename&gt; devices #scan den Server nach Device</nowiki>


'''Angeschlossene Geräte auslesen:'''
===Angeschlossene Geräte auslesen===
Grundsätzlich werden die am Busmaster von OWFS angeschlossenen 1-Wire Geräte durch aktives autocreate nach einem Neustart (erfordert shutdown restart) selber in FHEM definiert.
Grundsätzlich werden die am Busmaster von OWFS angeschlossenen 1-Wire Geräte durch aktives autocreate nach einem Neustart (erfordert shutdown restart) selber in FHEM definiert.
Der Busmaster (zBsp ein DS9490r) selbst wird ebenfalls eingelesen und angezeigt.
Der Busmaster (zBsp ein DS9490r) selbst wird ebenfalls eingelesen und angezeigt.


Definition von Geräten:
===Definition von Geräten===
Es ist auch möglich, Geräte manuell anzulegen. Dies erfolgt in folgendem Format:
Es ist auch möglich, Geräte manuell anzulegen. Dies erfolgt in folgendem Format:


Zeile 118: Zeile 124:




'''OWDevice State:'''
===OWDevice State===
Bei Temperaturfühler wie DS18S20 wird das Reading "state" wie folgt ausgegeben:
Bei Temperaturfühler wie DS18S20 wird das Reading "state" wie folgt ausgegeben:


Zeile 133: Zeile 139:
Zusätzlich rundet das obenstehende Attribut mit "%.1f" die Temperatur auf eine Kommastelle.
Zusätzlich rundet das obenstehende Attribut mit "%.1f" die Temperatur auf eine Kommastelle.


'''Tips und Tricks'''
==Tipps und Tricks==
1-wire-Geräte sind häufig generische Geräte, wie Zähler und Spannungsmesser (A/D-Wandler), an denen Sensorik hängt. Die rohen Werte vom 1-wire-Gerät (Zählimpulse, Spannungen) sind dann noch in menschenlesbare Werte zu verwandeln. Hier helfen userReadings, z.B.
1-wire-Geräte sind häufig generische Geräte, wie Zähler und Spannungsmesser (A/D-Wandler), an denen Sensorik hängt. Die rohen Werte vom 1-wire-Gerät (Zählimpulse, Spannungen) sind dann noch in menschenlesbare Werte zu verwandeln. Hier helfen userReadings, z.B.


  <nowiki>attr myEnergyMeter userReadings energy { (ReadingsVal("myEnergyMeter","count.A",0)+AttrVal("myEnergyMeter","myBasis",0))/1250.0;; }</nowiki>
  <nowiki>attr myEnergyMeter userReadings energy { (ReadingsVal("myEnergyMeter","count.A",0)+AttrVal("myEnergyMeter","myBasis",0))/1250.0;; }</nowiki>
[[Kategorie:1-Wire]]
[[Kategorie:1-Wire]]

Version vom 5. November 2013, 12:06 Uhr


Einleitung

Bei OWServer handelt es sich um eine 1-Wire Server Komponente und bei OWDevice um eine Geräte-Komponente, welche die angeschlossenen Module definiert- Die Module benötigen die Serverkomponente von OWFS.


Wichtig:

Die Module sind eine eigenständige Möglichkeit, den 1-Wire Bus anzusteuern und kommen ohne die Module aus, deren Namen aus Großbuchstaben bestehen (wie OWX, OWSWITCH, OWTHERM, etc.). Umgekehrt können die Module OWX, OWSWITCH, OWTHERM, etc. auch mit dem Backendmodul OWServer zusammenarbeiten, siehe dazu die commandref der betreffenden Module.


Vorbereitung

Wie oben erwähnt, setzt OWServer/OWDevice auf OWFS auf. Dazu ist eine funktionierende OWFS Installation notwendig. Die Installation ist auf der selben Plattform (Debian-based) möglich oder auch Remote (zBsp Dockstar oder RPi). Eine gute Liste der Standard Devicesauf der Homepage von OWFS einzusehen. Nicht alle Standard Devices sind in OWDevice verfügbar (siehe unten).Wenn OWFS funktioniert kann's weiter gehen...


owfs Pakete installieren

1) entweder sind die Pakete bereits vorpaketiert und man muss nur das Repository noch in /etc/apt/sources.list eintragen

2) oder man muss selber kompilieren (Quelle). Für den RaspberryPi wurde dies schon durchgeführt: owfs_2.8p17-1_all.zip

sudo apt-get install automake autoconf autotools-dev gcc g++ libtool libusb-dev fuse-utils libfuse-dev swig python-dev tcl-dev php5-dev
sudo apt-get install git git-buildpackage dh-make quilt php5-cli
git clone [git://git.debian.org/collab-maint/owfs.git git://git.debian.org/collab-maint/owfs.git] git
git-buildpackage -uc -us
cd ..
sudo dpkg -i ./owserver_2.8p7+cvs20110310-1_i386.deb ./libow-2.8-7_2.8p7+cvs20110310-1_i386.deb ./owfs-common_2.8p7+cvs20110310-1_all.deb
sudo dpkg -i ./owhttpd_2.8p7+cvs20110310-1_i386.deb

diese Pakete werden alle gebaut:

libow-2.8-7_2.8p7+cvs20110310-1_i386.deb   owfs-common_2.8p7+cvs20110310-1_all.deb
libowcapi-2.8-7_2.8p7+cvs20110310-1_i386.deb owfs-dbg_2.8p7+cvs20110310-1_i386.deb
libow-dev_2.8p7+cvs20110310-1_i386.deb    owfs-doc_2.8p7+cvs20110310-1_all.deb
libownet-2.8-7_2.8p7+cvs20110310-1_i386.deb  owfs-fuse_2.8p7+cvs20110310-1_i386.deb
libownet-dev_2.8p7+cvs20110310-1_i386.deb   owftpd_2.8p7+cvs20110310-1_i386.deb
libownet-perl_2.8p7+cvs20110310-1_all.deb   owhttpd_2.8p7+cvs20110310-1_i386.deb
libownet-php_2.8p7+cvs20110310-1_all.deb   owserver_2.8p7+cvs20110310-1_i386.deb
libow-perl_2.8p7+cvs20110310-1_i386.deb    ow-shell_2.8p7+cvs20110310-1_i386.deb
libow-php5_2.8p7+cvs20110310-1_i386.deb    python-ow_2.8p7+cvs20110310-1_i386.deb
libow-tcl_2.8p7+cvs20110310-1_i386.deb    python-ownet_2.8p7+cvs20110310-1_all.deb
owfs_2.8p7+cvs20110310-1_all.deb

Unterstütze Geräte

Eine aktuelle Liste der von OWDevice unterstützen Geräte findet man im FHEM-Commandref.


Konfiguration in FHEM

Als erstes definiert man OWServer. Hiermit wird ein logischer OWServer definiert, auf welchem OWFS installiert ist

define <name> OWServer <protocol>

<protocol> hat das Format <hostname>:<port>.

zBsp:

define myOWServer OWServer 192.168.14.100:4304

oder wenn sich OWFS auf dem gleichen Server befindet wie FHEM:

define myOWServer OWServer localhost:4304

Nach erfolgreichem "define" ist ein Klick auf den "Save" Button notwenig. Wenn nun der Status von myOWServer auf "Initialized" steht, ist der Server verbunden. Um sicher zu sein, dass der OWServer funktioniert, kann eine manuelle Abfrage der Device durchgeführt werden mit:

get myOWServer devices

Danach werden sämtliche angeschlossene Geräte angezeigt, inkl. Busmaster

OWServer Set Befehle

set <name> <value>
value:
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

Weitere Informationen zu den Set Befehlen sind im OWServer Manual zu entnehmen.

OWServer Get Befehle

get <name> <value>
value:
/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

Zusätzlich stehen die FHEM-internen Befehle "errors" und "devices" zur Verfügung. zBsp:

get <Devicename> errors #listet die Fehler des Device auf
get <Devicename> devices #scan den Server nach Device

Angeschlossene Geräte auslesen

Grundsätzlich werden die am Busmaster von OWFS angeschlossenen 1-Wire Geräte durch aktives autocreate nach einem Neustart (erfordert shutdown restart) selber in FHEM definiert. Der Busmaster (zBsp ein DS9490r) selbst wird ebenfalls eingelesen und angezeigt.

Definition von Geräten

Es ist auch möglich, Geräte manuell anzulegen. Dies erfolgt in folgendem Format:

define <name> OWDevice <address> [<interval>]

zBsp:

define Vorlauftemp OWDevice 28.334F2B040000 60

Wobei der Wert 60 als Abfrageintervall in Sekunden zu verstehen ist.


OWDevice State

Bei Temperaturfühler wie DS18S20 wird das Reading "state" wie folgt ausgegeben:

temperature: 56.1875 alarm: 1

Um die Temperatur wie bei anderen Temperatur-Sensoren (zBsp. CUL_WS) anzuzeigen, hilft das Attribut "stateFormat". Dies kann wie folgt definiert werden:

attr <Devicename> stateFormat T: <wert>

zBsp:

attr Boiler stateFormat T: temperature

alternativ

attr <Devicename> stateFormat {sprintf("%.1f",ReadingsVal("<Devicename>","temperature",0))."°C"}

Zusätzlich rundet das obenstehende Attribut mit "%.1f" die Temperatur auf eine Kommastelle.

Tipps und Tricks

1-wire-Geräte sind häufig generische Geräte, wie Zähler und Spannungsmesser (A/D-Wandler), an denen Sensorik hängt. Die rohen Werte vom 1-wire-Gerät (Zählimpulse, Spannungen) sind dann noch in menschenlesbare Werte zu verwandeln. Hier helfen userReadings, z.B.

attr myEnergyMeter userReadings energy { (ReadingsVal("myEnergyMeter","count.A",0)+AttrVal("myEnergyMeter","myBasis",0))/1250.0;; }