DevIo - Problem mit Reading "state"?

Begonnen von vbs, 29 November 2014, 21:38:33

Vorheriges Thema - Nächstes Thema

vbs

Ich versuche im Moment rauszufinden, warum das XBMC-Modul nach einem Reconnect als STATE fälschlicherweise "disconnected" anzeigt, obwohl es connectet ist und auch funktioniert.
Und zwar passiert das seit diesem Commit in DevIO:
http://sourceforge.net/p/fhem/code/6980/

Dabei kam die Zeile rein, die beim Disconnect das Reading "state" füllt:

setReadingsVal($hash, "state", "disconnected", TimeNow());


Meiner Meinung nach ist es nun so, dass dieser Wert "disconnected" durch den Mechanismus, der STATE aus dem state-Reading füllt, dauerhaft bei STATE erscheint. In DevIO gibt es keine andere Stelle, welche das state-Reading modifiziert und auch im XBMC-Modul wird kein Reading "state" gesetzt (das Reading gab es normalerweise nicht). Sobald als DevIo das Reading einmal befüllt hat mit "disconnected", so bleibt es scheinbar auch dabei und erscheint dann auch dauerthaft als STATE.

Wer ist dafür zuständig, das state-Reading beim Connecten zu füllen? DevIo setzt es zwar beim Disconnect, nicht jedoch beim Connect. Ist das so richtig und ist das so beabsichtigt?

Müsste ich jetzt das XBMC-Modul anpassen, so dass es selbst das state-Reading korrekt auf "opened" setzt nach dem Verbinden?

rudolfkoenig

Habe DevIo.pm angepasst (das state reading wird jetzt gemeinsam mit STATE geaendert), und eingecheckt.

vbs

Danke Rudi! Hab es gerade getestet, sieht gut aus! Das state-Reading wird nun auch schon beim Connecten gesetzt und ist bei mir jetzt synchron zu STATE.

Wolfpunk

Hallo, Rudi!

Kann es sein, dass die Änderung auch mein Problem mit dem HMUSB verursacht, wie in diesem Thread beschrieben? Der steht auf state disconnected, obwohl cond ok ist. Erst ein physikalisches Abziehen behebt den falschen state.

http://forum.fhem.de/index.php?topic=29907

Bennemannc

Hallo Wolfpunk,

mach doch einfach ein Update und schau nach ob es weg ist. Rudi hat das am 30.11. geändert, also sollte die Änderung ab dem 1.12. 8:00 im Update enthalten sein.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Wolfpunk

#5
Danke, Christoph. Aber das Update habe ich schon am 2.12. abends gemacht, kurz bevor ich gepostet habe. Vielleicht muss noch an einer anderen Stelle etwas gemacht werden, damit der HMUSB den state auch wieder korrekt anzeigt?

vbs

Ich glaube ehrlich gesagt nicht, dass dein Problem hiermit etwas zu tun hat. mMn würde es dann nicht helfen, den USB-Stick neu dranzustecken.

Bennemannc

Hallo Wolfpunkt,

Du nutzt eine HM-CFG-USB, da spielt doch auch noch der hmland mit. Wann wird der gestartet - ist dann eventuell der USB Bus noch nicht komplett ?

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Wolfpunk

Hallo, Christoph!

Hab nochmal ein wenig rumgetestet. Der HM-CFG-USB funktioniert seit Rudis Update wohl wieder ordnungsgemäß. Nach einem Reboot funktioniert der Stick also inzwischen wieder. Es scheint nur noch ein "kosmetisches" Problem des state-Readings zu sein. Es scheint keine weiteren Auswirkungen zu haben, außer der Anzeige des state-Readings. Soweit bin ich also erst einmal glücklich.

An wen müsste ich mich denn wegen des falschen state-Readings wenden? An Martin? Oder wäre das doch eher Rudis Baustelle, wie ich dachte? Nur für den Fall, dass man den korrekten state vom HM-CFG-USB mal brauchen sollte...

rudolfkoenig

HMLAN_DoInit loescht $hash->{READINGS}{state} (warum auch immer).
Fuehrt dazu, dass die "setstate HM Datum state disconnected" Zeile aus fhem.state ausgefuehrt wird.
Das Problem betrifft auch die HMLANs.

martinp876

ich werde state nicht löschen.
welches Kommando wird hier ausgeführt?

DevIo hat eine seltsame Logik - wenn reading "state" (und STATE) auf einen wert gesetzt wird und ein anderer Trigger ausgelöst wird. Auch wenn  trigger ausgelöst werden ohne dass state überhaupt geändert wird.
readingsSingleUpdate wäre hier m.E. die eigentlich zu nutzende Funktion
Ziemlich lästig für das User-IO hier den Zustand abzubilden.

rudolfkoenig

Ich meinte die Zeile
    delete $hash->{READINGS}{state};
diese gehoert mAn geloescht. Alternativ verzichtest du auf DevIo.

martinp876

und ich meinte
Zitatdass die "setstate HM Datum state disconnected" Zeile aus fhem.state ausgefuehrt wird.
wann und wo wird das ausgeführt?

die von dir angesprochene Zeile ist - wie beschrieben - nicht mehr drin.