FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: justme1968 am 20 November 2013, 09:47:25

Titel: autocreate und IODev
Beitrag von: justme1968 am 20 November 2013, 09:47:25
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
Titel: Antw:autocreate und IODev
Beitrag von: rudolfkoenig am 20 November 2013, 10:43:59
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.
Titel: Antw:autocreate und IODev
Beitrag von: justme1968 am 20 November 2013, 11:45:58
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.
Titel: Antw:autocreate und IODev
Beitrag von: justme1968 am 20 November 2013, 13:16:58
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?

Titel: Antw:autocreate und IODev
Beitrag von: rudolfkoenig am 20 November 2013, 14:05:13
CommandAttr: habs geaendert
AssignIoPortByName: habs als optionalen Parameter in AssignIoPortByName eingebaut.
Titel: Antw:autocreate und IODev
Beitrag von: justme1968 am 20 November 2013, 14:43:04
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 ?
Titel: Antw:autocreate und IODev
Beitrag von: justme1968 am 20 November 2013, 14:49:29
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.
Titel: Antw:autocreate und IODev
Beitrag von: rudolfkoenig am 22 November 2013, 13:55:28
Habs eingebaut und eingecheckt.
Titel: Antw:autocreate und IODev
Beitrag von: justme1968 am 22 November 2013, 13:57:31
danke!