Lambda function is very different. But they both do the same thing, which is post to /api/alexa/smart_home. So you get the same functionality.
Plus as a bonus my colored lights actually work with Alexa and I can now say Alexa, set Bar Light to “Papaya Whip” or “Sea Green”
I don’t think that trusting some random Amazon customer support person (non-technical) saying that they think it is an Amazon problem is really a solution here. Amazon has rolled out a firmware change that effects Home Assistant’s ability to expose entities to Alexa as emulated Hue devices. Since Home Assistant users using the emulated_hue component are likely a very minuscule number of users for Amazon, I don’t see any sense in thinking this will be fixed on their end. The only sensible solution I can see is to change the emulated_hue component to better match the behavior of a real Hue hub so that it is compatible with the new firmware.
Emulated_hue can’t be changed to address this… that’s what you aren’t understanding. This is 100% network side. You’re welcome to try, but I’d be surprised if you get anywhere.
Is it a network problem or an Amazon firmware problem?
The firmware update made it so that discovery (and use) works over port 80 instead of the default 8300.
So the answer is “YES”.
In order for the account link to work. You have to use standard ports accessible from the world. https://myhomeassistant.io:8123 won’t work. the Authorization URI and Access Token URI can’t use ports. Just spent the day trying this and that was the only way to get it to link account.
However, this didn’t resolve my issue with unresponsive devices.
Correct. I already had my HA accessible on port 443 (NAT’d through my router internally to 8123) so this was never a problem for me. However, the account would not link at all using the instructions from the Alexa Skill page on home-assistant.io. The Haaska method of linking the account worked first try.
Yeah, that means something doesn’t always work for authorization. I think we need to get the word out that haaska should be used when you error on the last step until we can figure out what everyone is doing wrong (or if there is a bug in the authentication process).
But why should people try the other option anyway, when both do the same thing and haaska Linking works reliable?
Did not try haaska yet.
So others can log in on your account with different credentials. I made an alexa account for HA and that’s what she logs in as. Now in the states object, I can see who turned on/off the light based on that. I.E. I know if it was controlled by voice.
EDIT: I just want to clarify before anyone asks, this isn’t possible at the moment but the building blocks for this are there. All state objects have an undocumented property ‘context’ which contains 3 properties ‘user_id’, ‘parent_id’, and ‘id’. I believe these properties will be utilized more in the future but as it stands they aren’t used much.
So if it’s possible to see if it an entity was switched by voice, which ideas do so I have to use this information for?
You probably already have some ideas for that.
Possibly build an automation that suppresses on or off commands during specific events if they come from voice. The possibilities are endless tbh
I’ll give Haaska a try today.
If you are running Pi-hole on your HA device I was able to get things working by doing the following:
Go to “/etc/lighttpd/conf-enabled” and create a file called “10-proxy.conf” with the following config (replace 192.XXX.XXX.XXX with your HA device IP address):
#/usr/share/doc/lighttpd/proxy.txt
server.modules += ( "mod_proxy" )
proxy.server = ( "/description.xml" => ( ( "host" => "192.XXX.XXX.XXX", "port" => 8300)),
"/api" => ( ( "host" => "192.XXX.XXX.XXX", "port" => 8300)))
Once this is done restart lighttpd with: /etc/init.d/lighttpd restart
Alexa still gripes about invalid values but everything is working otherwise. Hat tip to @tjedmunds for the idea!
I managed to get it working with the skill directly from Home Assistant,
however, I am having a really bizzare issue which makes this unusable.
I have removed Emulated Hue from my configuration yaml, and even if I UNPLUG my RPI from the wall and run discovery it will still REDISCOVER all “hue devices”… so now I had duplicates of everything and nothing works… any ideas??
Have you deleted the emulated_hue.json file that has all of the stored ID’s?
no but I just tried it now, same result…
The RPI is not even powered on, there is no way to reach the file from Amazon’s side anyway
And before any of this, you logged into the Alexa site or App and “forgot” every device?
I clicked the “Forget all devices” button, not one by one