owfs einbinden

Begonnen von sweetie-pie, 15 Januar 2013, 16:29:38

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Zitat von: eppi schrieb am Di, 15 Januar 2013 22:24Ich werde am Wochenende meine Erkenntnisse im Bereich des Möglichen unter Berücksichtigung meines KnowHow in einem Wiki-Eintrag verewigen.

Danke, Dani!

Viele Grüsse,
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

eppi

Hallo Martin & Boris
Könnt ihr bitte mal einen Blick auf den Wiki Eintrag werfen und Korrekturen & Anregungen einbringen?

Danke und Gruess Dani

Martin Fischer

Hallo Dani,

vorab erstmal Danke für Deinen Beitrag!

> Könnt ihr bitte mal einen Blick auf den Wiki Eintrag werfen
> und Korrekturen & Anregungen einbringen?

Hier noch zwei, drei Anmerkungen:
Ich würde den Wiki-Artikel (wenn möglich) nicht in "ich" Form schreiben. Ein Wiki bietet ja die Möglichkeit, das auch Andere an dem Artikel arbeiten können und der Leser zum Schluß nicht wüßte, welcher "ich" denn da gerade schreibt.

Dein aufgeführten Test zur Funktionsprüfung könnte man aus meiner Sicht verkürzen:
Wenn das Device über "define <name> OWServer <ip:port>" definiert wurde, kann man sofort mittels "get <name> devices" prüfen, ob die Verbindung steht. Der "shutdown restart" und Blick auf "Initialized" ist aus meiner Sicht zu viel des Guten. Sicherlich kann / sollte man erwähnen, das die Definitionen auch gespeichert werden sollte.

Bei dem stateFormat würde _ich_ die Ausgabe analog zu der Schreibweise anderer Temp-Angaben im State anpassen, also ein führendes "T: <wert>". Aber das ist halt Geschmackssache.

Ansonsten könnte man vielleicht noch auf den einen oder anderen set, get Befehl des OWServers eingehen, sowie bei OWDevice ggf. noch einen Link auf OWFS Standard Devices einfügen und auf die ensprechenden Manual der unterstützten Slaves verweisen, damit die Leser wissen, welche get / set Befehle von OWDevice je Family Code unterstützt werden. Das Letztere empfehle ich etwas stärker auszubauen, da ja gerade in den OWDevice Definitionen und deren readings das eigentlich Potential steckt. Vielleicht auch anhand Deines Beispiels mit dem DS18S20 gezielt auf das Manual verlinken oder einfach exemplarisch einen beispielhaften Auszug aus dem Manual für den DS18S20 anzeigen, z.B. so:

Name

DS18S20
    High-Precision 1-Wire Digital Thermometer
DS1920
    iButton version of the thermometer

Synopsis
Thermometer.

10 [.]XXXXXXXXXXXX[XX][/[ die | power | temperature | temphigh | templow | trim | trimblanket | trimvalid | address | crc8 | id | locator | r_address | r_id | r_locator | type ]]
Family Code

10

[...] weitere detaillierte Angaben


Aber das sind alles nur Vorschläge, die ggf. einem Leser helfen und vielleicht etwas mehr "Durchblick" ermöglichen.

Ansonsten ein guter Anfang.

Gruß Martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

eppi

Hallo Martin
Danke für die wertvollen Inputs.

Ich habe den Eintrag nochmals editiert und ergänzt.

Gruess Dani

Martin Fischer

Hallo Dani,

> Ich habe den Eintrag nochmals editiert und ergänzt.

Prima, danke! Zwei Anmerkungen habe ich noch:

Eine Liste der OWFS unterstützten Slaves findet man hier
Das ist so zwar richtig, es suggertiert dem Nutzer aber, das alle unter dem Link aufgeführten Slaves von OWDevice unterstützt werden. Stattdessen ist es aber nur eine, ich sach mal, "gesunde" Auswahl. Es wäre zwar jederzeit möglich _alle_ zu unterstützen, (ohne Entwicklungsaufwand), manche Slaves sind aber so speziell, das sie vermutlich nur in einer dedizierten Umgebung zu Einsatz kommen. Genau deswegen sind diese im Moment nicht Bestandteil von OWDevice.

Wie könnte man es besser schreiben? z.B.:
"Eine Übersicht über alle von OWFS unterstützten Typen (inkl. Dokumentation), ist auf der Liste der Standard Devices auf der Homepage von OWFS einzusehen. Nicht alle Standard Devices sind in OWDevice verfügbar (siehe unten)." Wobei "Liste der Standard Devices" dann der von Dir bereits gesetzte Link ist.

Dann noch:
Grundsätzlich werden die am Busmaster von OWFS angeschlossenen 1-Wire Geräte durch aktives autocreate selber in FHEM definiert.
Hier solltest Du erwähnen, dass das autocreate nur bei einem Neustart von FHEM aktiv ist. Bzw. das vielleicht noch mal überprüfen, weil ich gerade selber nicht mehr weiss ob es tatsächlich nur beim Starten war ;-) (komme gerade aus dem Office und zu faul zum nachschauen).

Achtung: "reopen" ist kein "OWFS", sondern FHEM internes setting, wobei die anderen "timeout, etc." reine OWFS settings sind.
Bei "get" fehlt das oben von Dir bereits erwähnte "devices" sowie "errors". Auch hier gilt wieder: alle die mit "/settings/.." anfangen sind OWFS spezifische settings, die anderen (devices, errors) fhem interne.

Ich fände es sinnvoller den Abschnitt:
Unterstütze Geräte:

Eine aktuelle Liste der von OWDevice unterstützen Geräte findet man im FHEM-Commandref.
an den Anfang des Artikels, vielleicht zwischen "Vorbereitung" und "Konfiguration in FHEM" zu packen. Nicht das einer auf die Idee kommt, alles zu konfigurieren und dann in der Mitte des Artikels liest: April, April, Dein Slave wird gar nicht unterstützt" :-)

Hast Du aber sonst alles fein gemacht ;-) Ich halte jetzt den Mund aber Du hast ja um Feedback gebeten ;-)

Gruß und Danke!

Martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

eppi

Danke Martin.
Ich habe deine Inputs im Wiki angepasst!
Sobald ich neue Erkenntnisse habe, werde ich den Beitrag ergänzen!

Schönes Wochenende und Gruss Dani

Martin Fischer

> Ich habe deine Inputs im Wiki angepasst!
> Sobald ich neue Erkenntnisse habe, werde ich den Beitrag ergänzen!

prima... aber es ist "dein" wiki eintrag. mein feedback waren nur empfehlung ;-)

vg martin
--
Admin, Developer, Gründungsmitglied des FHEM e.V.

ragnaroek

Vielen Dank für die tolle Arbeit am OWServer.

Bei der Installation bin ich nur an einem Punkt gestrauchelt: Ich nutze ubuntu 12.04 und habe owfs aus dem repository installiert.
In der Default-Einstellung lauscht OWServer dann nur mit einem TCP6 socket auf localhost. Erst mit folgender Änderung in /etc/owfs.conf
war der socket auch für TCP4 nutzbar.

#server: port = localhost:4304
server: port = 127.0.0.1:4304


Im wiki wäre es vielleicht hilfreich, gerade für das kleine Testbeispiel darauf hin zu weisen, dass man mit option "-v" auch Fehlermeldungen des Modules OWNet.pm bekommen könnte:

#!/usr/bin/perl
use OWNet;
print OWNet::read( "localhost:4304 -v" , "/28.1421CC030000/temperature" ) ."\n";