Is there any way to control Nanoleaf with Alexa

I have Google, Alexa and Siri at home for voice assistants. We have a disabled shared house and we have been exploring ways to get our Home Assistant OS to run our nanoleaf lights with voice commands given to alexa. I can already control my home fully with Google and Siri (which is great) but as my brother uses Alexa, he continues to forget about Siri and Google. Alexa apparently had the skill for nanoleaf at one point, but in Australia, this skill no longer works.

I am hoping someone knows a way for me to add a plugin or integration that will work.Unfortunately i cannot run install commands via the raspberry pi. I can only seem to login as root and I do have the Samba and Terminal plugins. Thank you for any help.

P.S. I’ve only just started out with Home Assistant. Thanks

You can expose it as a light via emulated hue and integrate it via emulated hue in alexa. This gives you at least the basic functionality to turn it on / off. This is what I do with my nanoleaf.
I don’t know if changing colors or activating scenes is possible.

Hello and thank you for your reply. I have added everything, the way I understand it. Unfortunately it still isn’t working. I am using the add devices via the V1 hub as instructed. I am unsure if this is psrtly sue to my ip address. I do have a static ip, but I must login via homeassistant.local and not as 192.168.0.54:8123. The address fails if i try using the ip address. I do have my homebridge assigned to another static ip.

here is a cut and paste from start to end of my config.yaml. Thank you

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

emulated_hue:
  type: alexa
  host_ip: 192.168.0.54
  listen_port: 80
  expose_by_default: false
  exposed_domains:
   - light
   - switch
  entities:
   light.kitchen_light:
    name: "Kitchen Light"
    hidden: false
   light.corner_lamp:
    name: "Corner Lamp"
    hidden: false
   light.gordons_lamp:
    name: "Gordons Lamp"
    hidden: false

So I’m no expert myself, but I think you don’t need to specify the host_ip in emulated_hue.
I also think this is not a properly formatted yaml file.

The indentation in entities seems to be wrong - there should be 2 spaces.

emulated_hue:
  type: alexa
  listen_port: 80
  expose_by_default: false
  exposed_domains:
   - light
   - switch
  entities:
    light.kitchen_light:
      name: "Kitchen Light"
      hidden: false
    light.corner_lamp:
      name: "Corner Lamp"
      hidden: false
    light.gordons_lamp:
      name: "Gordons Lamp"
      hidden: false

If configured correctly you can try to open this address http://192.168.0.54:80/api/pi/lights in your browser and see if any lights are exposed. You might need to restart home assistant first.

When successful open the Alexa App on your phone and add new philips hue devices via the V1 Round Bridge Option.

I have everything entered correctly. There is something I am missing. If i open http://192.168.0.54/description.xml to show that info, I get this.

<root xmlns="urn:schemas-upnp-org:device-1-0">

<specVersion>

<major>1</major>

<minor>0</minor>

</specVersion>

<URLBase>http://192.168.0.54:80/</URLBase>

<device>

<deviceType>urn:schemas-upnp-org:device:Basic:1</deviceType>

<friendlyName>Home Assistant Bridge (192.168.0.54)</friendlyName>

<manufacturer>Royal Philips Electronics</manufacturer>

<manufacturerURL>http://www.philips.com</manufacturerURL>

<modelDescription>Philips hue Personal Wireless Lighting</modelDescription>

<modelName>Philips hue bridge 2015</modelName>

<modelNumber>BSB002</modelNumber>

<modelURL>http://www.meethue.com</modelURL>

<serialNumber>001788FFFE23BFC2</serialNumber>

<UDN>uuid:2f402f80-da50-11e1-9b23-001788255acc</UDN>

</device>

</root>

but when i open http://192.168.0.54/api/pi/lights all I see is {} . If i set the values to true, it shows all lights except the nanoleaf. I am wondoring if I need a Nanoleaf api

On the Home Assistant cloud, I was able to add the custom repository for Emulated_hue, I also added the Dev version to make Hue app think i had a hub. I only need to fix one issue

Logger: homeassistant.setup
Source: components/emulated_hue/upnp.py:73
First occurred: 1:57:14 PM (1 occurrences)
Last logged: 1:57:14 PM

Error during setup of component emulated_hue
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/setup.py", line 213, in _async_setup_component
    result = await task
  File "/usr/src/homeassistant/homeassistant/components/emulated_hue/__init__.py", line 131, in async_setup
    listen = create_upnp_datagram_endpoint(
  File "/usr/src/homeassistant/homeassistant/components/emulated_hue/upnp.py", line 73, in create_upnp_datagram_endpoint
    ssdp_socket.setsockopt(
OSError: [Errno 99] Address not available

I have been researching and came accross a string that I need to enter to direct to watch a different port. I will attempt linking the thread about the command https://github.com/home-assistant/core/pull/4708

But the command sudo setcap 'cap_net_bind_service=+ep' /usr/bin/python3.4 does not work. I cannot use the apt-get either.

edit: Apparently there is no apt get on hassio, that solves that.

I can’t really follow you anymore. I think there should be no need to install some dev version of emulated_hue or something like that. Everything you need should be included in the standard version of Home Assistant OS.

  1. Make sure that you can control Nanoleaf via Home Assistant (without Alexa). I assumed you already did this, but now I’m not so sure anymore.
    First, you need to make sure, that your Nanoleaf is working with home assistant. Therefore you need to follow the instructions here: https://www.home-assistant.io/integrations/nanoleaf/

  2. After you have integrated nanoleaf with home assistant you can expose it via emulated hue. In your case emulated_hue seems to be working, but due to {} in /api/pi/lights there is something wrong with the way you expose your lights. If you set expose_by_default: true it seems to work so start with that.

  3. Integrate the exposed lights via Alexa App into Alexa and turn them on/off via voice.

They aren’t working with home assistant yet. I’m trying to understand why. I have tried following the video that explains HomeKit controller, but it doesn’t find the nanoleaf light bulbs. They are connected and working on the nanoleaf app and HomeKit app.

I’m very new to home assistant. I’ve only just made the realisation that these need to be working on home assistant before anywhere else.

I have been trying to get these lights to work with home assistant, but I didn’t realise how I was meant to. I thought a plugin or integration would be an easy solution, but I have found that I need to add these light bulbs via thier mac address as they use bluetooth until connected via the app. They dont seem to be discoverable once they are added to the app and it cannot be linked via the homekit controller integration, despite the video tutorial. I’m currently looking into mac address adding for the lights into home assistant.

I am not sure why, but not all HomeKit added devices are showing with home assistant. Nanoleaf doesn’t seem to be accessible due to Bluetooth. I have tried finding if there is a way to add items via the MAC address, to control them via the Bluetooth function, but I am getting lost. I have a list of thier Mac addresses and have attempted to use a couple plugins, but essentially, it doesn’t end up helping. These lights have no on switch that can be held and I can not get HomeKit controller to add them. It appears the way they could be added , no longer works. I’m not sure how to progress. I don’t need any special setup or anything like controlling color or brightness etc, I can control that via the app. All I basically want is just a simple on and off capability for use with Alexa. I hope that explanation might help with any ideas you might have. Thanks :blush:

Hi.

Try this.

emulated_hue:
  type: alexa
  host_ip: 192.168.0.54
  listen_port: 80
  off_maps_to_on_domains:
    - script
    - scene
  expose_by_default: true
  exposed_domains:
    - light
    - switch

Set expose by default true and delete the entities list.
in this way all the lights and switches you have will be available through hue emulation.
I use hue emulation to control my lights through my Harmony remote.
If it works then you can start adding you entities.

This does not add the missing lights. It only shows the current lights, which I can move to home assistant. It did yield more device discoveries though. But they were devices I could already use. I don’t get why nanoleaf smart bulbs are so annoyingly frustrating.

Apparently my lights are not currently accessible through HA. Because Nanoleaf Essentials Light Bulbs use Thread network, I apparently need to run a RPi with a docker that is acting as a ipv6 wifi and run another RPi that is transmitting and recieving bluetooth. From what I have read, it isn’t easy running both from the same device. I think it may just be easier getting some LiFX bulbs for the time being. I’m not sure if I explained it correctly. It is here, but 2 years old. Thread wireless protocol?

I’m very new to home assistant. I’ve only just made the realisation that these need to be working on home assistant before anywhere else.

This is the right way to start. You need to understand the basics of Home Assistant before you can create some advanced configurations and automations. It took me quite some time and I still am no expert. But you will get there :slight_smile:

As far as your nanoleaf lights are concerned: I think only Aurora/Light panels are supported at the moment.
Never heard about the essential light bulbs or the Thread Network. Maybe some nice HA developer will integrate it in the future - but at the moment I think there might not be a solution for this.