FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: CoolTux am 29 Mai 2017, 11:58:21

Titel: TYPE ändern
Beitrag von: CoolTux am 29 Mai 2017, 11:58:21
Hallo,

Ich möchte bei bereits definierten Devices einfach nur den TYPE ändern. Wie kann man das am saubersten machen? Ich dachte an defmod aber der meckert das er den TYPE nicht ändern kann.

Beispiel:
Ich habe ein Device mit Namen AMADBridge TYPE=AMAD BRIDGE=1
Diese möchte ich ausschließlich ändern in TYPE=AMADCommBridge

Ich habe mehrere Devices mit Namen Tablet1 Tablet2 Tablet3 mit Type=AMAD HOST=IP
Diese möchte ich ausschließlich ändern in TYPE=AMADDevice


Ich kann es sicherlich hart über das neu schreiben des entsprechenden INTERNALS machen, aber ich wollte erstmal nach einer sanften Methode fragen.
Am Ende soll es so sein das bereits existierende AMAD Instanzen nach dem laden durch eine Subroutine das entsprechende TYPE der neuen Module bekommen.


Grüße
Titel: Antw:TYPE ändern
Beitrag von: rudolfkoenig am 29 Mai 2017, 12:09:44
ZitatIch möchte bei bereits definierten Devices einfach nur den TYPE ändern.
Ich lasse das "einfach nur" unkommentiert, moechte trotzdem hinterfragen, warum das notwendig ist.

ZitatIch kann es sicherlich hart über das neu schreiben des entsprechenden INTERNALS machen, aber ich wollte erstmal nach einer sanften Methode fragen.
FHEM beenden, fhem.cfg bearbeiten, FHEM neu starten. Das Aendern des INTERNALS kann je nach Modul reichen, muss aber nicht.
Titel: Antw:TYPE ändern
Beitrag von: justme1968 am 29 Mai 2017, 12:29:25
ich finde immer noch das es im amad fall eleganter ist für die bridge keinen eigenen type zu haben sondern diese automatisch und intern anzulegen. der endanwender muss doch damit gar nichts zu tun haben.

oder was würde ein endanwender mit dem
bridge device tun? reicht es nicht das er nur die devices für die endgeräte sieht?
Titel: Antw:TYPE ändern
Beitrag von: CoolTux am 29 Mai 2017, 12:38:08
Hallo Ihr zwei

@Andre
Mittlerweile ist das nicht mehr ausreichend. Es gibt bereits Anwendungsfälle wo einzig die Bridge Interessant ist. So zum Beispiel im Fall von Sprachsteuerung. Klar die meisten verwenden natürlich das ganze in Kombi mit einem Infodarstellung und Steuerung eines Androidgerätes, aber einzelne Anwendungen/Module für Sprachsteuerung nehmen nur die Bridge.

@Rudi
Viele User haben bereits mit Aufwand ihre Tablets/Handys eingebunden und so einige trigger für Readings eingerichtet. Ich möchte den Umbau für solche User so gering wie möglich halten. Ich zähle ebenfalls dazu.
fhem.cfg wäre ein Weg, bei configDB wäre es schon aufwändiger. Daher meine Idee es von meinem alten Modul ab einer bestimmten Version eigenständig zu machen.
Es ändert sich wirklich sonst rein gar nichts, daher bilde ich mir in meinem jugendlichen Leichtsinn ein das ein ändern des TYPES über $hash->{TYPE} nichts weiter kaputt machen sollte.


Grüße
Titel: Antw:TYPE ändern
Beitrag von: justme1968 am 29 Mai 2017, 12:42:12
ich glaube bei ändern des types gibt es einige fallstricke. vor allem wenn fhem danach weiter läuft.

besser ist es das neue device wirklich anzulegen und das alte zu löschen. das kann man ja auch automatisieren.
Titel: Antw:TYPE ändern
Beitrag von: CoolTux am 29 Mai 2017, 12:51:08
Ich möchte ja den selben Devicenamen haben und es sollen keine Zuordnungen verloren gehen was aber, zu mindest bei mir, der Fall ist/war. Raus aus strucrure, raus aus lightszene und glaube entsprechende Notifys wurden auch gelöscht.
Weiter laufen soll es nicht, das kann es auch gar nicht. Es muss dann neu gestartet werden. Ich würde das alles auch gerne dem User überlassen mit entsprechenden set Auswählen.
Titel: Antw:TYPE ändern
Beitrag von: justme1968 am 29 Mai 2017, 12:55:29
das löschen und unter
gleichem namen neu anlegen kann man glaube ich so automatisieren dass es passt.

meinst du das aktuelle bridge device wird in structure, notify, lightscene oder ähnlichem wirklich schon verwendet?
Titel: Antw:TYPE ändern
Beitrag von: CoolTux am 29 Mai 2017, 13:03:33
Nein das Bridgedevice nicht, aber die Tablet/Handy Devices. Auch die bekommen einen neuen TYPE AMADDevice. Das ganze habe ich auf 2 stufiges Modul umgestellt. Und da wollte ich AMAD nicht einfach so lassen sondern etwas sprechenderes nehmen. Ich weiß, man kann es auch so lassen  ;D aber nun habe ich alles so schön hinbekommen  8)
Titel: Antw:TYPE ändern
Beitrag von: justme1968 am 29 Mai 2017, 13:08:16
ich würde bei AMAD bleiben. für alles :)
Titel: Antw:TYPE ändern
Beitrag von: CoolTux am 29 Mai 2017, 13:16:51
Ich weiß.  ;D
Aber nun habe ich es so schön hinbekommen. Dank Dir habe ich ja gelernt wie man solche schönen Dinge in FHEM zaubern kann   ;)

Hast Du einen Tip wie man das löschen und neu anlegen ohne Verluste hinbekommen kann?
Titel: Antw:TYPE ändern
Beitrag von: justme1968 am 29 Mai 2017, 13:23:17
alles was wichtig ist merken. löschen. mit den gemerkten dingen neu anlegen.
Titel: Antw:TYPE ändern
Beitrag von: rudolfkoenig am 29 Mai 2017, 13:26:53
Klingt nach einem chinesichen Sprichwort :)
Titel: Antw:TYPE ändern
Beitrag von: CoolTux am 29 Mai 2017, 13:35:56
Zitat von: justme1968 am 29 Mai 2017, 13:23:17
alles was wichtig ist merken. löschen. mit den gemerkten dingen neu anlegen.

;D ;D

Gib zu das hast Du gerade aus nem Glückskeks geklaut  :)

Na gut dann schaue ich mal wie ich das am elegantesten hinbekomme, oder die User sind halt gefragt.