Mysteriöses Durcheinander OWX / OWServer => fhem.pl Fehler ?

Begonnen von Prof. Dr. Peter Henning, 29 September 2019, 20:05:11

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Ich habe in meinem Produktivsystem vier 1-Wire-Interfaces unter OWS laufen, sowie eine Instanz von OWServer, angekoppelt an ein entferntes OWFS.

Läuft alles prima, schon seit langer Zeit. Seit neuestem (2 Wochen maximal) sehe ich aber bei drei der vier OWX-Devices (und zwar OWX_DG, OWX_UG1, OWX_UG2) im Webfrontend die Set/Get-Befehle des OWServer-Interfaces, und ein (unter OWX wohldefiniertes) Kommando
set OWX_DG reopen
steigt aus, weil das Kommando set ... reopen in OWServer nicht definiert ist.

Lediglich beim Device OWX_EG wird der korrekte Befehlssatz Set/Get im Webfrontend angezeigt, und
set OWX_EG reopen  wird problemlos ausgeführt. Die Definitionen von OWX_EG und OWX_DG sind (bis auf das USB-Device) identisch.

Alle Listings der betreffenden Devices sind unauffällig und fehlerfrei. Es sieht eher so aus, als ob das Backend bei der Darstellung in FHEMWEB und beim Check, ob ein Set-Befehl definiert wurde, auf das falsche Device zugreift.

LG

pah

rudolfkoenig

Kannst du bitte die Ausgabe von set OWX_DG ? und  { getAllSets("OWX_DG") } hier anhaengen?


Prof. Dr. Peter Henning

#2
{ getAllSets("OWX_DG") }liefert
Zitat
timeout/directory:noArg timeout/ftp:noArg timeout/ha7:noArg timeout/network:noArg timeout/presence:noArg timeout/serial:noArg timeout/server:noArg timeout/stable:noArg timeout/uncached:noArg timeout/usb:noArg timeout/volatile:noArg timeout/w1:noArg units/pressure_scale:noArg units/temperature_scale:noArg

set OWX_DGliefert
Zitat
timeout/directory:noArg timeout/ftp:noArg timeout/ha7:noArg timeout/network:noArg timeout/presence:noArg timeout/serial:noArg timeout/server:noArg timeout/stable:noArg timeout/uncached:noArg timeout/usb:noArg timeout/volatile:noArg timeout/w1:noArg units/pressure_scale:noArg units/temperature_scale:noArg

Also in beiden Fällen dasselbe - und in beiden Fällen falsch (Edit: das ist nämlich die Set-Liste des OWServer-Moduls). OWX_DG müsste aber stattdessen liefern
Zitat
reopen:noArg
(Edit: Das wäre die Set-Liste des OWX-Moduls).

Und für das Device OWX_EG machen beide Kommandos das auch richtig.

LG

pah

rudolfkoenig

Ich gehe davon aus, dass "attr OWX_DG expert 1_detail" gesetzt ist.
In diesem Fall wird %sets verwendet, diese ist (mangels my) eine globale Variable, was von 10_OWSserver.pm ueberschrieben wird, wo %sets explizit global definiert wird.

Bitte bei Verwendung von globalen Variablen einen eigenen Namensraum bilden.

Prof. Dr. Peter Henning

Ah, danke Dir, das ist in der Tat noch ein Überbleibsel aus dem allerersten OWX-Modul von 2011. Hat aber bis heute keine Probleme bereitet - möglicherweise hat Boris in OWServer etwas geändert, so dass das jetzt erst aufschlägt.

LG

pah