snowdd1 / homebridge-knx-de

German Issue/Discussion forum for homebridge-knx
https://github.com/snowdd1/homebridge-knx
20 stars 4 forks source link

UUID #7

Closed Puki5000 closed 8 years ago

Puki5000 commented 8 years ago

Unique names required

If the names of your devices are not unique, or you think they might not be unique for all times, or you think you going to need to change them without loosing the settings in homekit - then you will need to set the uuid_base parameter for each device.

        "accessories": [
            {
                "name": "Living Room North Lamp",
                "uuid_base":"LIVROOMLAMP00001"
                "services": [
                    {

Then you can change the name of the device without harm to your device database in homekit, as the internal IDs are based on the uuid_base field instead of the name field.

Ich habe folgenden Effekt: ich habe für jedes accessory eine UUID vergeben. Wenn ich nun den Namen des accessory ändere, wird dieser NICHT z.B. in EVE angezeigt. Erst wenn ich eine neue UUID vergebe, wird auch der geänderte Name in EVE beim neuen Gerät aktualisiert angezeigt.

Vielleicht verstehe ich auch nur den Sinn nicht?

Ich dachte, dass der Vorteil gerade darin besteht, dass ich dank der UUID das Gerät in EVE zuordnen kann, und später ohne Probleme einen anderen Namen via config.json übergeben kann?

Oder aber ich bin der Fehleinschätzung aufgesessen, dass sich (aufgrund der ähnlichen Namen) die UUID im Beispiel auf den Namen des accessories bezieht - tatsächlich bezieht sie sich aber vielleicht auf die nachfolgenden services?

Puki5000 commented 8 years ago

Ich habe Tests mit der config.json durchgeführt:

Wie darf ich dann den Vorteil der UUID verstehen, wenn sie zwar das Herausfliegen aus der EVE-Konfig verhindert, aber den neuen Namen aus der config.json nicht weitergibt?

snowdd1 commented 8 years ago

Hallo @Puki5000 , der Parameter uuid_base war eigentlich für die Geräte (Accessories) gedacht, da in der 0.1.x Version von homebridge bzw. hap-nodeJS der eindeutige Schlüssel immer aus dem Namen gewonnen wurde, und damit immer geändert wurde sobald man einen Accessory-Namen anpasst.

Bei den Services ist es so, dass sie eigentlich von Haus aus eine eindeutige Service-Kennung bekommen - bis jemand auf die Idee kam, mehrere Services des gleichen Typs in ein Accessory zu packen - da benötigten die Services eine weitere Kennung, die in homebridge-knx bisher (0.2.x) wieder aus dem Service-Namen gewonnen, mit den bekannten Nachteilen. In Version (0.3.x) wird das anders werden.

Tatsächlich habe ich seit iOS 9.1 nicht mehr getestet ob Homekit die Änderungen überhaupt übernimmt - und das tut es offensichtlich nicht, solange die internen Schlüssel (Accessory: uuid_base ODER Name; Service: Type UND Name) gleich bleiben. Die iOS-Datenbank wird wohl nur noch aktualisiert, wenn ein Gerät oder ein Dienst als "neu" erkannt werden. Vielleicht weil es inzwischen "echte" Homekit-Geräte gibt, deren Name dann immer "Hue 4711" ist, und man bei denen nur in iOS einen vernünftigen Namen vergeben kann (die haben ja keine config.json in der Lampe, die man ändern kann). Ein Überschreiben eines bestehenden Gerätes in der Datenbank durch das Gerät (in unserem Fall durch Homebridge) wäre dann eher uncool. Im Oktober 2015 ging es noch, Original Pull Request

Schlußfolgerung

Man kann die Namen in der Homekit-Datenbank nicht mehr ändern, sobald das Gerät hinzugefügt wurde, ohne ein neues Gerät zu erzeugen.

Puki5000 commented 8 years ago

Danke für die Infos!

Grüße Puki