1-Wire mit OWServer: update lib/OWNet.pm

Begonnen von Dr. Boris Neubert, 10 März 2018, 14:24:26

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

aufgrund der Meldungen hier:

https://forum.fhem.de/index.php/topic,85211.0.html
https://forum.fhem.de/index.php/topic,35726.msg541104.html#msg541104
https://forum.fhem.de/index.php/topic,81197.msg749516.html#msg749516

habe ich das mit FHEM ausgelieferte Perl-Modul lib/OWNet.pm auf die aktuelle Version gebracht. Damit sollte FHEM mit dem owfs-Paket 3.1 unter Debian Stretch und Derivaten (Ubuntu, Raspbian) funktionieren. Möglicherweise sind auch Inkompatibilitäten bei Verwendung von älteren owfs-Paketen behoben.

Wer nach dem Update Probleme hat, kann lib/OWNet.pm mit

https://svn.fhem.de/fhem/tags/FHEM_5_8/FHEM/lib/OWNet.pm

wieder auf den vorherigen Zustand zurücksetzen.

Meldungen zu den Auswirkungen bitte im Board "1-wire".

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

Dr. Boris Neubert

Weil OWNet.pm aus 3.1p5 mit owserver 2.8pl17 nicht funktioniert, habe ich OWServer so angepasst, dass

  • für owserver 2.8p17 das zugehörige OWNet.pm aus 2.8p17 und
  • für owserver 3.1p5 und andere Versionen das zugehörige OWNet.pm aus 3.1p5
automatisch verwendet wird. Eingecheckt am 18.03.2018, verfügbar auf svn.fhem.de sofort und morgen im Update.

Meldungen dazu bitte im Board "1-wire".
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

Aktualisierung aufgrund Problemen mit der Verteilung der OWNet-Module und der Inkompatibilität gewisser OWNet-Versionen mit owserver-Versionen ab morgen verfügbar. Aus der CommandRef:

Zitatdefine <name> OWServer <protocol> [<version>]

Definiert eine logische OWServer-Instanz, die sich mit einem owserver verbindet. owserver ist die Serverkomponente des 1-Wire Dateisystems. Sie ermöglicht den Zugriff auf alle 1-Wire-Busteilnehmer eines Systems. <protocol> hat das Format <hostname>:<port>. Nähere Informationen dazu gibt es in der owserver Dokumentation.

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.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!