FHEM legt 1-Wire device ständig neu an

Begonnen von dennis87, 19 Juli 2014, 11:49:12

Vorheriges Thema - Nächstes Thema

dennis87

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!


Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

dennis87

Macht sinn...auch wenn es nicht  so schön für den aktuellen Anwendungsfall ist ;).

Vielen Dank für die Erklärung!

ntruchsess

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
while (!asleep()) {sheep++};

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

ntruchsess

#5
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.
while (!asleep()) {sheep++};

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Dr. Boris Neubert

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
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Dr. Boris Neubert

OK, verstanden.

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

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

ntruchsess

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
while (!asleep()) {sheep++};

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

ntruchsess

ok, so hab ich mir das auch gedacht.

Gruß,

Norbert
while (!asleep()) {sheep++};

Dr. Boris Neubert

Ich bestätige das hiermit auch nochmal. So habe ich das gemeint.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

dennis87

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 :)