dubocr / homebridge-tahoma

Homebridge plugin for TaHoma, Connexoon, Cozytouch, Energeasy Connect.
Apache License 2.0
135 stars 42 forks source link

One more time : Cannot add a bridged Accessory with the same UUID #52

Closed Killator closed 5 years ago

Killator commented 5 years ago

Hi Romain,

I try to connect my 3 new Atlantics Heaters with Cozytouch/HomeBridge and your plugin.

My setup: rPI 3 / Fresh Raspbian / Fresh HomeBridge / Your plugin & a minimalist config.json

Below, the Homebridge log:

[2018-11-14 20:19:10] Loaded config.json with 0 accessories and 1 platforms.
[2018-11-14 20:19:10] ---
[2018-11-14 20:19:10] Loaded plugin: homebridge-tahoma
homebridge-tahoma API version: 2.2
[2018-11-14 20:19:10] Registering platform 'homebridge-tahoma.Tahoma'
[2018-11-14 20:19:10] ---
[2018-11-14 20:19:10] Loading 1 platforms...
[2018-11-14 20:19:10] [Cozytouch] Initializing Tahoma platform...
[2018-11-14 20:19:12] [Cozytouch] Device type Pod unknown
[2018-11-14 20:19:12] [Cozytouch] [I2G_Actuator] device type: HeatingSystem, name: io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (1468835#2)] device type: TemperatureSensor, name: io:TemperatureInCelciusIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (1468835#3)] device type: ContactSensor, name: io:ContactIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (1468835#4)] device type: OccupancySensor, name: io:OccupancyIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (1468835#5)] device type: ElectricitySensor, name: io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [I2G_Actuator] device type: HeatingSystem, name: io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (503269#2)] device type: TemperatureSensor, name: io:TemperatureInCelciusIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (503269#3)] device type: ContactSensor, name: io:ContactIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (503269#4)] device type: OccupancySensor, name: io:OccupancyIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (503269#5)] device type: ElectricitySensor, name: io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [I2G_Actuator] device type: HeatingSystem, name: io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (7288378#2)] device type: TemperatureSensor, name: io:TemperatureInCelciusIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (7288378#3)] device type: ContactSensor, name: io:ContactIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (7288378#4)] device type: OccupancySensor, name: io:OccupancyIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] [IO (7288378#5)] device type: ElectricitySensor, name: io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor, protocol: io
[2018-11-14 20:19:12] [Cozytouch] Initializing platform accessory 'I2G_Actuator'...
[2018-11-14 20:19:12] [Cozytouch] Initializing platform accessory 'IO (1468835#2)'...
[2018-11-14 20:19:12] [Cozytouch] Initializing platform accessory 'IO (1468835#3)'...
[2018-11-14 20:19:12] [Cozytouch] Initializing platform accessory 'IO (1468835#4)'...
[2018-11-14 20:19:12] [Cozytouch] Initializing platform accessory 'IO (1468835#5)'...
[2018-11-14 20:19:12] [Cozytouch] Initializing platform accessory 'I2G_Actuator'...
/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:264
      throw new Error("Cannot add a bridged Accessory with the same UUID as another bridged Accessory: " + existing.UUID);
      ^

Error: Cannot add a bridged Accessory with the same UUID as another bridged Accessory: e2a1545d-9063-47b4-ab6c-7079a4914e6f
    at Bridge.Accessory.addBridgedAccessory (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:264:13)
    at Server.<anonymous> (/usr/lib/node_modules/homebridge/lib/server.js:399:24)
    at /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:16:19
    at /usr/lib/node_modules/homebridge-tahoma/index.js:67:16
    at /usr/lib/node_modules/homebridge-tahoma/index.js:125:5
    at /usr/lib/node_modules/homebridge-tahoma/overkiz-api.js:176:5
    at Request.authCallback [as _callback] (/usr/lib/node_modules/homebridge-tahoma/overkiz-api.js:208:17)
    at Request.self.callback (/usr/lib/node_modules/homebridge-tahoma/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)

I think is not a cached accessories issue like #22 (fresh install, up-to-date, Homebridge « accessories » and « persist » directories are empties).

I have found this previous issue #47, so I have replace the line 85 of the AbstractAccessory.js file located in « accessories » tahoma plugin folder by this code :

this.UUID = UUIDGen.generate(serial);

Same error…

[2018-11-14 20:22:19] Loaded config.json with 0 accessories and 1 platforms.
[2018-11-14 20:22:19] ---
[2018-11-14 20:22:20] Loaded plugin: homebridge-tahoma
homebridge-tahoma API version: 2.2
[2018-11-14 20:22:20] Registering platform 'homebridge-tahoma.Tahoma'
[2018-11-14 20:22:20] ---
[2018-11-14 20:22:20] Loading 1 platforms...
[2018-11-14 20:22:20] [Cozytouch] Initializing Tahoma platform...
[2018-11-14 20:22:21] [Cozytouch] Device type Pod unknown
[2018-11-14 20:22:21] [Cozytouch] [I2G_Actuator] device type: HeatingSystem, name: io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : I2G_Actuator ID:1468835#1
[2018-11-14 20:22:21] [Cozytouch] [IO (1468835#2)] device type: TemperatureSensor, name: io:TemperatureInCelciusIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (1468835#2) ID:1468835#2
[2018-11-14 20:22:21] [Cozytouch] [IO (1468835#3)] device type: ContactSensor, name: io:ContactIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (1468835#3) ID:1468835#3
[2018-11-14 20:22:21] [Cozytouch] [IO (1468835#4)] device type: OccupancySensor, name: io:OccupancyIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (1468835#4) ID:1468835#4
[2018-11-14 20:22:21] [Cozytouch] [IO (1468835#5)] device type: ElectricitySensor, name: io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (1468835#5) ID:1468835#5
[2018-11-14 20:22:21] [Cozytouch] [I2G_Actuator] device type: HeatingSystem, name: io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : I2G_Actuator ID:503269#1
[2018-11-14 20:22:21] [Cozytouch] [IO (503269#2)] device type: TemperatureSensor, name: io:TemperatureInCelciusIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (503269#2) ID:503269#2
[2018-11-14 20:22:21] [Cozytouch] [IO (503269#3)] device type: ContactSensor, name: io:ContactIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (503269#3) ID:503269#3
[2018-11-14 20:22:21] [Cozytouch] [IO (503269#4)] device type: OccupancySensor, name: io:OccupancyIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (503269#4) ID:503269#4
[2018-11-14 20:22:21] [Cozytouch] [IO (503269#5)] device type: ElectricitySensor, name: io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (503269#5) ID:503269#5
[2018-11-14 20:22:21] [Cozytouch] [I2G_Actuator] device type: HeatingSystem, name: io:AtlanticElectricalHeaterWithAdjustableTemperatureSetpointIOComponent, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : I2G_Actuator ID:7288378#1
[2018-11-14 20:22:21] [Cozytouch] [IO (7288378#2)] device type: TemperatureSensor, name: io:TemperatureInCelciusIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (7288378#2) ID:7288378#2
[2018-11-14 20:22:21] [Cozytouch] [IO (7288378#3)] device type: ContactSensor, name: io:ContactIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (7288378#3) ID:7288378#3
[2018-11-14 20:22:21] [Cozytouch] [IO (7288378#4)] device type: OccupancySensor, name: io:OccupancyIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (7288378#4) ID:7288378#4
[2018-11-14 20:22:21] [Cozytouch] [IO (7288378#5)] device type: ElectricitySensor, name: io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor, protocol: io
[2018-11-14 20:22:21] [Cozytouch] New Device : IO (7288378#5) ID:7288378#5
[2018-11-14 20:22:21] [Cozytouch] Initializing platform accessory 'I2G_Actuator'...
[2018-11-14 20:22:21] [Cozytouch] Initializing platform accessory 'IO (1468835#2)'...
[2018-11-14 20:22:21] [Cozytouch] Initializing platform accessory 'IO (1468835#3)'...
[2018-11-14 20:22:21] [Cozytouch] Initializing platform accessory 'IO (1468835#4)'...
[2018-11-14 20:22:21] [Cozytouch] Initializing platform accessory 'IO (1468835#5)'...
[2018-11-14 20:22:21] [Cozytouch] Initializing platform accessory 'I2G_Actuator'...
/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:264
      throw new Error("Cannot add a bridged Accessory with the same UUID as another bridged Accessory: " + existing.UUID);
      ^

Error: Cannot add a bridged Accessory with the same UUID as another bridged Accessory: e2a1545d-9063-47b4-ab6c-7079a4914e6f
    at Bridge.Accessory.addBridgedAccessory (/usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:264:13)
    at Server.<anonymous> (/usr/lib/node_modules/homebridge/lib/server.js:399:24)
    at /usr/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/once.js:16:19
    at /usr/lib/node_modules/homebridge-tahoma/index.js:67:16
    at /usr/lib/node_modules/homebridge-tahoma/index.js:125:5
    at /usr/lib/node_modules/homebridge-tahoma/overkiz-api.js:176:5
    at Request.authCallback [as _callback] (/usr/lib/node_modules/homebridge-tahoma/overkiz-api.js:208:17)
    at Request.self.callback (/usr/lib/node_modules/homebridge-tahoma/node_modules/request/request.js:185:22)
    at emitTwo (events.js:126:13)
    at Request.emit (events.js:214:7)

As you can see, I have uncomment the line 86 to log ’New Device’ : « this.displayName » and « serial ». All « serial » seem unique… Come from « io:ControllerAddressState » (+1) of the CozyTouch API (thanks for your config reader tool)

Between the two try, the UUID is the same (e2a1545d-9063-47b4-ab6c-7079a4914e6f) as if the modification line 85 seems useless...

And I have no more idea to how I can investigate... ^^’

Could you please help me ?

dubocr commented 5 years ago

Hi Killator,

Sorry for this delay, This must be fixed in the last release. Could you try to update and tell me if it fix.

In fact, the UUID was not transfered from homebridge to hap-nodejs. We need to use homebridge base_uuid to diferenciate devices. Thanks.

Killator commented 5 years ago

Tout est OK. Merci Romain !

Il me reste à découvrir ton plugin maintenant :-)

dubocr commented 5 years ago

Bonne nouvelle c’est super.

Désolé pour ce délai je n’ai pas eu beaucoup de temps pour m’occuper de ce projet que je n’utilise plus en ce moment (changement de logement oblige).

Et je pensais que le problème était réglé car ca fonctionnait pour d’autre mais finalement c’est parce qu’ils avaient renommé leurs devices (c’etait fonctionnel avec des noms de device unique mais encore fallait-il le savoir).

Homebridge ne tenait pas compte de l’UUID généré à partir du serial et continuait à se baser sur deviceName. Je me suis rendu compte de ça par hasard l’autre jour en copiant une config avec des capteurs portant le même nom.

Tant mieux si cela peut te permettre de l’utiliser enfin même si la partie chauffage n’est pas forcément aboutie pour2 raisons :

  1. homekit est assez limitée sur ce genre d’accessoires (seulement la possibilité d’un thermostat qui répond assez mal au besoin du chauffage électrique français)
  2. Peu d’utilisateurs avec des chauffages connectés à priori donc peu de tests et de retours.

N’hesites pas à me remonter des éventuels soucis j’essairai d’être plus réactif :-).