autocreate und IODev

Begonnen von justme1968, 20 November 2013, 09:47:25

Vorheriges Thema - Nächstes Thema

justme1968

gibt es eigentlich schon eine möglichkeit für das autocreate ein IODev vorzugeben oder auszuschließen?

bei mehreren jeelinks ist es in der regel so das sie mit unterschiedlichen sketches laufen und nicht kompatibel sind. der default immer das letzte 'passende' IODev zu verwenden passt also recht wahrscheinlich nicht. es wäre schöner wenn man beim triggern des autocreate das device mit angeben könnte über das die nachricht reingekommen ist.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Du kannst $modules{JeeLink}{AutoCreate}{ATTR} = "IODev:$hash->{NAME}" vor der "UNDEFINED" Zeile in ParseFn setzen, das hat aber (vermutlich vernachlaessigbare) Nebenwirkungen, falls autocreate nicht definiert ist.

Oder in der UNDEFINED Zeile als letztes Argument, und JeeLink::DefFn setzt IODev direkt, statt AssignIODev aufzurufen und modifiziert DEF.

Ja, ich kann mich noch an deinem [] Vorschlag erinnern, das waere hier praktisch :) Ist aber nicht einfach ihn fehlerfrei zu implementieren, da du Attribute gesetzt haben willst, bevor DefFn aufgerufen wurde. D.h. AssignIoPort darf nichts machen, falls das Attribut schon gesetzt ist, usw.

justme1968

ich wollte ja nur hören ob du dich an den [] vorschlag noch erinnerst :)

im ernst: da hätte ich auch selbst drauf kommen können. ich hänge es einfach an die UNDEFINED zeile mit ran und schmeiss es aus dem DEF wieder raus.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ich habe gerade gesehen das das .clientArray nicht aktualisiert wird wenn man das IODev nachträglich per attribut bzw. CommandAttr setzt. ist das so beabsichtigt?

da das setzen des IODev per name statt über durchsuchen der client liste mit allen fehlerprüfungen und .clientArray löschen doch recht lang wird und ich es jetzt schon in drei modulen brauche hab ich es in ein AssignIoPortByName() gesteckt. wäre das nicht etwas zentral für fhem.pl? gleich mit fallback auf AssignIoPort() wenn es nicht geklappt hat?

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

CommandAttr: habs geaendert
AssignIoPortByName: habs als optionalen Parameter in AssignIoPortByName eingebaut.

justme1968

danke!

du hast zwar all meine schönen möglichen fehlermeldungen nicht. aber wenn es zentral ist bin ich ja nicht schuld :)

wäre das nicht auch etwas um es im autocreate für fs20, hm und max zu verwenden damit die devices auf dem richtigen cul landen ?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

achso: sollte man nicht im proposed fall (und vielleicht sogar auch beim automatisch suchen) das IODev attribut gleich einzutragen damit das IODev beim neustart erhalten bleibt? sonst geht nach dem anstecken und dem autocreate erst mal und nach dem neustart eventuell nicht mehr.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Habs eingebaut und eingecheckt.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968