bwssytems / ha-bridge

Home automation bridge that emulates a Philips Hue light system and can control other systems such as a Vera, Harmony Hub, Nest, MiLight bulbs or any other system that has an http/https/tcp/udp interface. This is a compact impl to run on small format computers. This is impl started from this project https://github.com/armzilla/amazon-echo-ha-bridge.
Apache License 2.0
1.45k stars 198 forks source link

5.4.0 devices not being discovered. #1325

Open dbulling opened 3 years ago

dbulling commented 3 years ago

FYI, 5.4.0 devices not being discovered. I changed the DeviceRepository.java file to hard code the format to

theUniqueId = String.format("00:%s:%s:%s:%s:%s:%s:%s-%s",

I found anything to make it 9 wide makes it work.

Also so if you need to change the Name, first delete it from Alexa the make the name change in ha-bridge and then run discovery.

smartypantsuk commented 3 years ago

FYI, 5.4.0 devices not being discovered. I changed the DeviceRepository.java file to hard code the format to

theUniqueId = String.format("00:%s:%s:%s:%s:%s:%s:%s-%s",

I found anything to make it 9 wide makes it work.

Also so if you need to change the Name, first delete it from Alexa the make the name change in ha-bridge and then run discovery.

I noticed the other day that Alexa stopped discovering. I needed to change a device name and that's what happened. It seems this Unique ID issue is forever going to plague us.

Amazon's Alexa software design is a pile of junk. I just wish a manufacturer would bring out a dedicated smart home speaker which could be configured, its the one thing that's is really missing from the world of smart home.

sub0ne commented 3 years ago

As the problem with the unique IDs on ha-bridge first arose I started developing a Hue emulator in Javascript (HueNode - https://github.com/sub0ne/HueNode). I don't know what the difference is but I did not have any issues with devices not discovered by my Alexa Echo Plus. Sure it's lacking the comfort of a UI yet as the whole configuration is done by JSON files.

Sharky84 commented 3 years ago

Hello,

i can confirm that the problem is with the „UniqueId“. I have version 5.4.0 installed.

In my home network I have a Philips HUE-Bridge, a lot of HUE-Emulators (e. g. WLED from Aircookie) and I flashed an Wemos D1 mini with the ESPAlexa-Sample for testing. Also I have a all kinds of Amazon-Devices in my network.

After starting a HUE-Device search in the Alexa-app I analyzed the network traffic with wireshark. Then I recognized that the other HUE-Emulators anounce long (e. g. 9 Bytes) unique-ids, when a HTTP-GET-request (GET /api/.../lights) from my Alexa-Echo is initiated. Then the devices are individually requested by the Echo (GET /api/.../light/id – id is not the unique-id). But only those with a long „unique-id“ (9 Bytes). When I look at the requests to the HA-Bridge only Devices with 9-Byte-unique-id are requested. The other devices seem to be ignored by the Echo. But the older devices can still be controlled via a speech comand (Alexa).

A workaround for me: I added a new device in HA-Bridge (Webui) then I changed the unique-id in /data/device.db for this device to e. g. 00:11:22:33:44:55:66:89-00. After a restart of the habridge (systemctl restart ha-bridge), when I start a new Hue-Device-search in the Alexa-app, the new device is found.

Hopefully, my post helps and it can be fixed in the software soon.

npaisnel commented 3 years ago

Hello,

i can confirm that the problem is with the „UniqueId“. I have version 5.4.0 installed.

In my home network I have a Philips HUE-Bridge, a lot of HUE-Emulators (e. g. WLED from Aircookie) and I flashed an Wemos D1 mini with the ESPAlexa-Sample for testing. Also I have a all kinds of Amazon-Devices in my network.

After starting a HUE-Device search in the Alexa-app I analyzed the network traffic with wireshark. Then I recognized that the other HUE-Emulators anounce long (e. g. 9 Bytes) unique-ids, when a HTTP-GET-request (GET /api/.../lights) from my Alexa-Echo is initiated. Then the devices are individually requested by the Echo (GET /api/.../light/id – id is not the unique-id). But only those with a long „unique-id“ (9 Bytes). When I look at the requests to the HA-Bridge only Devices with 9-Byte-unique-id are requested. The other devices seem to be ignored by the Echo. But the older devices can still be controlled via a speech comand (Alexa).

A workaround for me: I added a new device in HA-Bridge (Webui) then I changed the unique-id in /data/device.db for this device to e. g. 00:11:22:33:44:55:66:89-00. After a restart of the habridge (systemctl restart ha-bridge), when I start a new Hue-Device-search in the Alexa-app, the new device is found.

Hopefully, my post helps and it can be fixed in the software soon.

So to confirm

are you saying you are changing the UID manually I see your example..each pair in the UID is seperated by a colon : except for the last pair by a dash -

Is that the fix ?

Sharky84 commented 3 years ago

Hello, i can confirm that the problem is with the „UniqueId“. I have version 5.4.0 installed. In my home network I have a Philips HUE-Bridge, a lot of HUE-Emulators (e. g. WLED from Aircookie) and I flashed an Wemos D1 mini with the ESPAlexa-Sample for testing. Also I have a all kinds of Amazon-Devices in my network. After starting a HUE-Device search in the Alexa-app I analyzed the network traffic with wireshark. Then I recognized that the other HUE-Emulators anounce long (e. g. 9 Bytes) unique-ids, when a HTTP-GET-request (GET /api/.../lights) from my Alexa-Echo is initiated. Then the devices are individually requested by the Echo (GET /api/.../light/id – id is not the unique-id). But only those with a long „unique-id“ (9 Bytes). When I look at the requests to the HA-Bridge only Devices with 9-Byte-unique-id are requested. The other devices seem to be ignored by the Echo. But the older devices can still be controlled via a speech comand (Alexa). A workaround for me: I added a new device in HA-Bridge (Webui) then I changed the unique-id in /data/device.db for this device to e. g. 00:11:22:33:44:55:66:89-00. After a restart of the habridge (systemctl restart ha-bridge), when I start a new Hue-Device-search in the Alexa-app, the new device is found. Hopefully, my post helps and it can be fixed in the software soon.

So to confirm

are you saying you are changing the UID manually I see your example..each pair in the UID is seperated by a colon : except for the last pair by a dash -

Is that the fix ?

Yes, I changed the UID manually like in the example with the dash. Then I let Alexa search for new HUE-Lights. Is it working?

dbulling commented 3 years ago

I have a patched file if you want it.

chris1284 commented 3 years ago

It works, I tried the whole day to get the ha-bridge devices maped to alexa. only this solution was working. I changed the uid in the device db from 8 d5: ab: 8d: c7: ef: 67: ca-92 to 9 00 : d5: ab: 8d: c7: ef: 67: ca-92 and it worked immediately

ifuchs commented 3 years ago

I am having the same problem and I tried changing the device.db so that the uniqueid has a 9th octet of a leading 00:. I then used Bridge Reinitialize in the GUI to restart the bridge (it's running in a docker container). I still cannot get Alexa to discover my device. Does this require any changes to the java code (or 5.4.1?)

sbormann commented 3 years ago

For me it worked, added leading "00:" to have 9 bytes.

ifuchs commented 3 years ago

Unfortunately, it did not work for me. Not sure how to determine what is different here. Ironically my old (Armzilla v0.2.1) continues to work with Amazon. I would just keep running it but it will not talk to Home Assistant (which v0.5.4 works fine with). On Sun, Aug 22, 2021 at 11:07 AM Sebastian Bormann @.***> wrote:

For me it worked, added leading "00:" to have 9 bytes.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/bwssytems/ha-bridge/issues/1325#issuecomment-903282865, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABLDPSHLEH6TCJ2MGZ6Y5LTT6EHCTANCNFSM47TBAXJA .

ifuchs commented 3 years ago

This is what my device.db looks like: [{"id":"102","uniqueid":"00:ec:89:56:63:7a:98:77-7b","name":"Family Speakers","mapId":"Test","mapType":"httpDevice","deviceType":"switch","offUrl":"[{\"item\":\"http://192.168.3.110:8002/mute_FS\"}]","onUrl":"[{\"item\":\"http://192.168.3.110:8002/unmute_FS\"}]","inactive":false,"noState":false,"offState":false,"deviceState":{},"onFirstDim":false,"onWhenDimPresent":false,"lockDeviceId":false,"dimNoOn":false,"dimOnColor":false}]

ChrisGet commented 3 years ago

The suggested edits to the device.db file worked for me but I had to add "00:00:" as my unique IDs were only 7 bytes long and just adding "00:" still did not work. Alexa discovered my new devices straight away once I added the extra "00:00:". habridge version - 5.4.0

Thanks for the fix! Just a pain I'll have to edit the db file again when I add any new devices.

dbulling commented 3 years ago

Chris I have a an updated ha-bridge-5.4.0-java11.jar if you want it. contact me offline.

TheTinkerDad commented 3 years ago

I've encountered the same problem and got it fix'd by these steps:

  1. Make sure HA Bridge is running with the *-RC1 jar file (if not, stop it, download the RC1 version and replace the old jar, but to be sure, backup your database file before restarting it)
  2. Start HA Bridge like normally, if not running
  3. Make sure HA Bridge running on port 80
  4. Go to Bridge Control and make sure that the "Unique ID to use 9 Octets" option is ticked (If you changed the setting, HA Bridge will restart itself)

    I'm totally not sure about the 3rd point, but without this, my 2nd & 3rd gen echo dots didn't discover any devices at all.

sbormann commented 3 years ago

...for me the "Unique ID to use 9 Octets" option is completely ignored. Old and new devices get an 7 octet unique id. Im using 5.4.1rc1-java11

npaisnel commented 3 years ago

You must use the ‘ReNumber’ button after changing to ‘9 octet’ Ideally change the Seed Start number too

Did you do both those things after changing to ‘9’

Sent from my iPhone

On 24 Sep 2021, at 19:25, Sebastian Bormann @.***> wrote:

 ...for me the "Unique ID to use 9 Octets" option is completely ignored. Old and new devices get an 7 octet unique id. Im using 5.4.1rc1-java11

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

sbormann commented 3 years ago

No, i did not renumber. I edited the device.db manually and will try it next time i add a device (for now everything is working and im scared risking this by further trials :) ) Thanks for your help!

dsslight commented 3 years ago

@TheTinkerDad please add to your instruction item 5, to tick "Use UPNP Address Interface Only". Otherwise ip 0.0.0.0 populated on discovery call like that 2021-10- ::,** [main] INFO com.bwssystems.HABridge.upnp.UpnpListener - Traceupnp: send upnp discovery template 1 with response address: 0.0.0.0:80 to address: 192.168..*:50000

a general disadvantage of this approach is the need to have a local device running emulator.

sanderlv commented 2 years ago

This post saved my evening!!! Thank YOU!

smartypantsuk commented 2 years ago

As the problem with the unique IDs on ha-bridge first arose I started developing a Hue emulator in Javascript (HueNode - https://github.com/sub0ne/HueNode). I don't know what the difference is but I did not have any issues with devices not discovered by my Alexa Echo Plus. Sure it's lacking the comfort of a UI yet as the whole configuration is done by JSON files.

Hey @sanderlv Are you still developing this and if so, any plans for a GUI? Also, what did it support exactly, as it says lights and sensors not supported yet.

Cheers

sub0ne commented 2 years ago

As the problem with the unique IDs on ha-bridge first arose I started developing a Hue emulator in Javascript (HueNode - https://github.com/sub0ne/HueNode). I don't know what the difference is but I did not have any issues with devices not discovered by my Alexa Echo Plus. Sure it's lacking the comfort of a UI yet as the whole configuration is done by JSON files.

Hey @sanderlv Are you still developing this and if so, any plans for a GUI? Also, what did it support exactly, as it says lights and sensors not supported yet.

Cheers

I guess you mean me and not sanderlv...HueNode is of course still under development. At the moment I am using it productive with my Alexa Echo Plus and several Hue bulbs and some ZigBee Plugs.

I also have a temperature sensor and it might be cool to ask Alexa for the temperature. So this might be one of the future features.

A UI is currently not planned as I don't see the benefit. You configure the system and from then on rarely use the UI. The software simply has to work.

smartypantsuk commented 2 years ago

As the problem with the unique IDs on ha-bridge first arose I started developing a Hue emulator in Javascript (HueNode - https://github.com/sub0ne/HueNode). I don't know what the difference is but I did not have any issues with devices not discovered by my Alexa Echo Plus. Sure it's lacking the comfort of a UI yet as the whole configuration is done by JSON files.

Hey @sanderlv Are you still developing this and if so, any plans for a GUI? Also, what did it support exactly, as it says lights and sensors not supported yet. Cheers

I guess you mean me and not sanderlv...HueNode is of course still under development. At the moment I am using it productive with my Alexa Echo Plus and several Hue bulbs and some ZigBee Plugs.

I also have a temperature sensor and it might be cool to ask Alexa for the temperature. So this might be one of the future features.

A UI is currently not planned as I don't see the benefit. You configure the system and from then on rarely use the UI. The software simply has to work.

Thanks Sub0ne.

Everything has been working great again with Ha-bridge, with no problems at all controlling lights... that is until I tried to add another device, then Alexa found lots of duplicate devices that didn't work. I've cleared all devices out, and now Alexa finds only 14 of 21 devices and those don't function properly. I'm pig sick of the problems to be honest. Is HueNode still working okay? Have you added new devices lately?

Thanks

sub0ne commented 2 years ago

Is HueNode still working okay? Have you added new devices lately?

Still working, just added another device today to make my Synology NAS startup via Alexa. Configured the device and let Alexa do the search - without any issues.

What currently does not working is Philips Hue-App compatibility as they changed the API to a newer version, which I have not fully implement yet. But all the technical hurdles are sorted out and I think I can implement this too.

It's not as user friendly to configure as habridge because of the lack of the UI, but that being said was not one of my primary goals.

tascholl commented 1 year ago

ha-bridge-5.4.1-java11.jar Then be sure to enable Link Button, then Go to Bridge Control and make sure that the "Unique ID to use 9 Octets" option is ticked (If you changed the setting, HA Bridge will restart itself) After that's done do Alexa Device Scan select the Link Button, it won't find any, then scan again press the Link Button and there they were. Fixed my problem!! Thanks