FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: dennis87 am 19 Juli 2014, 11:49:12

Titel: FHEM legt 1-Wire device ständig neu an
Beitrag von: dennis87 am 19 Juli 2014, 11:49:12
Hallo zusammen,
ich habe bei mir ein DS2438 angeschlossen, welches auch per Autocreate erstellt wird.

Die Erstellung findet jedoch als OWDEVICE statt, ich möchte dieses jedoch auf OWMULTI umstellen.


Die ursprüngliche Erstellung sieht so aus.

define DS2438_0FF326010000 OWDevice 26.0FF326010000 60
attr DS2438_0FF326010000 IODev myOWServer
attr DS2438_0FF326010000 room OWDevice



Ich benenne das Device dann per rename in HK.Luftfeuchte um und passe die Definition in der fhem.cfg dann wie folgt an:

define HK.Luftfeuchte OWMULTI 26.0FF326010000 60
attr HK.Luftfeuchte IODev myOWServer
attr HK.Luftfeuchte VFunction ((V/VDD - 0.1515) / 0.00636) / (1.0546 - 0.00216 *  T )
attr HK.Luftfeuchte VName relHumidity|rH
attr HK.Luftfeuchte VUnit percent|%
attr HK.Luftfeuchte model DS2438
attr HK.Luftfeuchte room OWDevice
attr HK.Luftfeuchte stateFormat {sprintf("T: %.1f H: %.1f",ReadingsVal("HK.Luftfeuchte","temperature",0), ReadingsVal("HK.Luftfeuchte","relHumidity",0))}


Wenn ich dies jedoch gemacht habe, wird wieder ein neues (zusätzliches) Device wie in der ursprünglichen Erstellung angelegt.

Ich weiss nun langsam nicht mehr, ob ich einen Fehler mache, oder ob da irgendwas schief läuft.


Vielleicht kann mir ja jemand weiterhelfen.


Danke!

Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: Dr. Boris Neubert am 20 Juli 2014, 14:48:46
Hallo,

OWServer erkennt ein OWDevice. Wenn Du dann manuell ein OWMULTI statt einem OWDevice anlegst, wirst Du weiterhin UNDEFINED OWDevice-Geräte finden, die dann mit autocreate angelegt werden.

Das bekommst Du nur weg, indem Du entweder ein OWDevice-Gerät statt eines OWMULTI-Geräts anlegt, oder autocreate ausschaltest.

Viele Grüße
Boris
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: dennis87 am 20 Juli 2014, 20:01:23
Macht sinn...auch wenn es nicht  so schön für den aktuellen Anwendungsfall ist ;).

Vielen Dank für die Erklärung!
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: ntruchsess am 21 Juli 2014, 13:15:31
Zitat von: Dr. Boris Neubert am 20 Juli 2014, 14:48:46
Das bekommst Du nur weg, indem Du entweder ein OWDevice-Gerät statt eines OWMULTI-Geräts anlegt, oder autocreate ausschaltest.

Hallo Boris,

Was hältst Du im Sinne einer friedlichen Koexistenz davon, wenn ich mal einen Patch für OWServer schreibe, der beim Autocreate die OWX-clients auch berücksichtigt? Würde ich umgekehrt ins OWX/OWX_ASYNC natürlich genauso einbauen, dass beim Autocreate keine OWX-basierten Devices angelegt werden, wenn schon ein passender OWDevice-eintrag existiert

Gruß,

Norbert
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: justme1968 am 21 Juli 2014, 13:32:23
ich glaube es wäre gut auch gleich auf den fhem autocreate mechanismus umzustellen und dann damit z.b. OWDevice gezielt zu deaktivieren.

gruss
  andre
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: ntruchsess am 21 Juli 2014, 13:52:32
Du meinst anstelle von CommandDefine einfach das autocreate-device per notify triggern und darauf vertrauen, dass dort das 'ignoreTypes'-attribut passend gesetzt ist? Ich würde trotzdem schon vorher passend filtern, das halte ich für benutzerfreundlicher.
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: justme1968 am 21 Juli 2014, 14:10:19
ja das meinte ich.

es sollte aber beides gemacht werden. mit dem attribut wird verhindert das überhaupt versucht wird den falschen type per autocreate anzulegen. das würde dann vor allem neue devices betreffen. die prüfung auf beide beide clients würde dann verhindern das zu einem existierenden device des einen types zusätzlich noch der andere angelegt wird.

den umbau auf das fhem autocreate hatte ich eigentlich schon länger vor aber das attribut kann man ja eigentlich auch direkt prüfen ohne auf das fhem autocreate umzustellen. das macht es im ersten schritt vermutlich einfacher. zumal OWServer sich zur zeit noch nicht an das dispatch/parse modell hält.

gruss
  andre
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: Dr. Boris Neubert am 21 Juli 2014, 15:39:56
Hallo,

ich kann Euch nicht folgen.

Aber ich habe nichts gegen einen Patch. Der sollte folgendes tun:

Wenn das autocreate vom OWServer ausgeht, soll ein neues Gerät am 1-wire-Bus als OWDevice angelegt werden, außer wenn es bereits ein OWDevice oder ein Gerät aus der Familie mit den Namen nur in Großbuchstaben mit derselben ID gibt.

Der Teil in kursiv wäre neu und würde dem OP helfen.

Grüße
Boris
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: justme1968 am 21 Juli 2014, 15:47:39
ja das ist die idee. mit der zusätzlichen möglichkeit das autocreate über das entsprechende ignoreTypes  attribut das im 'normalen' fhem autocreate dafür vorgesehen ist auch device spezifisch und nicht nur komplett zu unterdrücken. erst mal ohne generell auf das fhem autocreate umzustellen.

gruss
  andre
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: Dr. Boris Neubert am 21 Juli 2014, 15:49:07
OK, verstanden.

Ich habe auch nichts dagegen, wenn es auf das fhem-autocreate umgestellt wird.

Viele Grüße
Boris
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: ntruchsess am 21 Juli 2014, 16:08:23
Zitat von: Dr. Boris Neubert am 21 Juli 2014, 15:39:56oder ein Gerät aus der Familie mit den Namen nur in Großbuchstaben mit derselben ID

Nicht dass wir uns missverstehen: Verstehst Du unter 'Namen' jetzt den Wert von 'TYPE' oder von 'NAME'?

Gruß,

Norbert
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: justme1968 am 21 Juli 2014, 16:10:53
er hat in diesem fall die namen der device typen aus der nicht OWServer/OWDevice familie gemeint.

die erkennung ob es schon ein fhem device für das entsprechende 1-wire device gibt soll an der id fest gemacht werden die OWServer zurück liefert.

gruss
  andre
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: ntruchsess am 21 Juli 2014, 16:14:23
ok, so hab ich mir das auch gedacht.

Gruß,

Norbert
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: Dr. Boris Neubert am 21 Juli 2014, 16:21:31
Ich bestätige das hiermit auch nochmal. So habe ich das gemeint.

Grüße
Boris
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: dennis87 am 23 Juli 2014, 06:49:43
Der Patchansatz ist eigentlich genau das was ich gebraucht hätte bzw. erwartet hätte, dass es so passiert.

Falls das umgesetzt werden könnte, würde ich mich sehr freuen :)
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: ntruchsess am 24 Juli 2014, 18:07:18
Hallo Dennis,

hab grade mal blind einen Patch (https://github.com/ntruchsess/fhem-mirror/commit/f35a7a8c29ed05af82ca2e21cdca55339330e74d) dafür gemacht.

Umgesetzt ist erst mal nur dies:
Zitat von: Dr. Boris Neubert am 21 Juli 2014, 15:39:56
Wenn das autocreate vom OWServer ausgeht, soll ein neues Gerät am 1-wire-Bus als OWDevice angelegt werden, außer wenn es bereits ein OWDevice oder ein Gerät aus der Familie mit den Namen nur in Großbuchstaben mit derselben ID gibt.

Vieleicht magst Du ja mal testen: 10_OWServer.pm (https://github.com/ntruchsess/fhem-mirror/raw/owx_autocreate/fhem/FHEM/10_OWServer.pm)

Ich muss selber erst mal wieder einen RPi mit owfs aufsetzen um das testen zu können...

Im OWX muss nichts geändert werden, ein OWX-device kann auf seinem 1-Wire-bus ja gar keine zu existierenden OWDevice-instanzen gehörende Geräte finden, ohne dass das Device physikalisch vom owfs-bus auf den owx-bus umgesteckt worden ist. Und OWDevice-instanzen können mit einem OWX-Device als IODev auch nix anfangen. Das Problem gibt es nur andersrum - wenn OW(AD|ID|THERM|MULTI|SWITCH|LCD)-devices die OWServer-instanz als IODev nutzen (OWX selbst ist dabei außen vor).

Gruß,

Norbert
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: dennis87 am 24 Juli 2014, 19:45:03
Hallo Norbert,
vielen Dank schonmal. Ich komme erst ende nächster Woche wieder nach Hause und kann es leider dann erst testen. Werde es dann auf jeden Fall machen und Rückmeldung geben :).


Beste Grüße,

Dennis
Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: dennis87 am 26 Juli 2014, 21:46:51
So, ich habe es mal durchgetestet - und vielen Dank, es tut genau das was es soll :).

Ich habe das Device nach dem autocreate umbenannt und in den Typ OWMULTI / OWTHERM geändert - und siehe da, es wird kein neues Device angelegt, genauso wie es sein soll :).

Das habe ich mit mehreren Devices geprüft.

Es wäre super, wenn du eine kurze Rückmeldung geben könntest, wenn du es eincheckst, so dass ich dann wieder ein Update machen kann ohne die Datei manuell zu pflegen.


Danke und Gruß,

Dennis


Titel: Antw:FHEM legt 1-Wire device ständig neu an
Beitrag von: Dr. Boris Neubert am 27 Juli 2014, 21:08:09
Danke Norbert.

Ist eingecheckt.

Grüße
Boris