Binding Request: Nanoleaf Aurora (LED Design Triangle)

Tags: #<Tag:0x00007faee0c95d38> #<Tag:0x00007faee0c959c8> #<Tag:0x00007faee0c95590>

Anyone looking into this? If not may have some cycles available soon to take a stab at it.

1 Like

I’ve seen these sold in the stores hear locally and they seem pretty cool. Does anyone have one and workign with OH2. Does perhaps the existing Wifi LED or other bindings already work with it?

Nanoleaf aurora seems to be supported by homegear. https://doc.homegear.eu/data/homegear-nanoleaf/

Perhaps some openhabian user with a nanoleaf can check this :slight_smile:

And I think this could be a great starting point for a direct openhab integration.

Does anyone have this working with OpenHab? I would love to integrate it with my current setup.

1 Like

I have found a workaround for getting the Aurora to work with OpenHab and Alexa.

I installed the Alexa Control binding and that has a feature to run a scene. Since Aurora is native with Alexa, I can have it “run the scene” at sunset.

The whole API was release now, and it seem we have all we need for a good binding.
http://forum.nanoleaf.me/docs/openapi
I’m not be able to achieve this, but I’ve managed to get it working with a rule, only a Dimmer control for the moment.
If it help someone, this is how I done it :

First of all, you need a auth token :

  1. Holding the on-off button down for 5-7 seconds until the LED starts flashing in a pattern

  2. Sending a POST request to the authorization endpoint : http://NANOLEAF-IP:16021/api/v1/new

within 30 seconds of activating pairing.

  1. If 2 is achieved, the POST response will contain a randomly generated authorization token:
    {“auth_token” : “xxxxxxxxxxxxxxxxxxxxx … xxx”}

Next, set up a Dummy Dimmer item :

Dimmer NANOLEAF 

and this is my rule :

rule "Nanoleaf"

when
    Item NANOLEAF received command
then

var String command = receivedCommand.toString.lowerCase
val String MY_URL = 'http://NANOLEAF-IP:16021/api/v1/AUTH-TOKEN/state'
var String myData

if (command == "on") {
	myData = '{"on" : {"value":true}}'

} else if (command == "off") {
	myData = '{"on" : {"value":false}}'

} else {
	myData = '{"brightness" : {"value":' + command + '}}'
}

sendHttpPutRequest(MY_URL, "application/x-www-form-urlencoded", myData)

end

Don’t forget to replace NANOLEAF-IP and AUTH-TOKEN with your proper values in the MY_URL String.

Next I will look how to trigger scenes, and I’ll post progress if some peoples are interested.

Best regards,

Mac_Fly.

Hi MacFly,
your rule Definition works perfectly. I implemented it a couple days ago in my Setup, works fine, even in Habpanel Setups. Please keep us updated on your Progress, I’ ll want to try and contribute to it.

Best regards,
Kai

Hi folks,
I did some fiddling with my nanoleaf and modified the example given above. It is possible to send a “direct” brightness value to a panel. It will then turn on with the given brightness value. I implemented some cron based rules to switch on my panels to 30% brightness at 06:00 in the moring on weekdays and on 07:30 on weekends. Here is my rule definition:

rule "Nanoleaf turns on"
when 
	Time cron "0 0 6 ? * MON-FRI" or //weekdays at 06:00
	Time cron "0 30 7 ? * SAT-SUN" //weekends at 07:30
then
        val String MY_URL = 'http://NANOLEAF-IP:16021/api/v1/AUTH-TOKEN/state'
	myData = '{"brightness" : 30}' //anschalten, 30% Helligkeit
	sendHttpPutRequest(MY_URL, "application/x-www-form-urlencoded", myData)
	logInfo("wohnzimmer.rules","Nanoleaf turns on")
	Nanoleaf_Flur.postUpdate(30)
end

The last line with Nanoleaf_Flur.postUpdate(30) updates an Dimmer Item used in my Habpanel to the correct value. Hope that helps!
Best regards,
Kai

I’ve seen this java api that looks quite simple to integrate

bump #nanoleaf

Hi guys,

I have started a Nanoleaf binding. Could you perhaps hop over to my new thread and help collect use cases and requirements?

1 Like

I’ve started developing a binding for the Nanoleaf Light Panels over the holidays. A first working version can be found at https://github.com/raepple/nanoleaf-binding.

A jar file to play with is here.

Curious for any feedback. See the README file for more details on the current features.

Best regards

Interesting how great minds think alike :smile:

My code is very similiar to yours, the main differences are how we model the nanloeaf.

I will go with a “bridge”, a Thing for the controller and several Things for the leafs, similar to what the hue binding does. The main reason being that this way, I can address individual panels. Let’s see how it goes.

I did further testing of my binding on an openHAB 2.3 instance and applied some minor changes in the handler to make it also work for this release. Changes are merged in the master branch, and JAR file is updated.

Hi Martin and thanks you for sharing this with us.

Do you think is possible to have a Color Channel for the nanoleaf that can be linked to a ColorPicker ?

I just installed it and I’m not at home, so I can’t pair and test it now. I’ll report my tests later.

Best regards

Excellent idea. I think this could be achieved by setting the panels to an effect of animation type “solid” where they should hold a static color. To avoid saving this effect on the device, there is a “display” command available. A sample request to be sent via PUT to /api/v1/<auth_token>/effects should be as follows:

{"write" : {
	 "command": "display",                     
	 "animType": "solid",
	 "palette": [{
	 "hue": < user > ,
	 "saturation": < user > ,
	 "brightness": < user >
	 }],
	 "colorType": "HSB"
}}

I will give it a try this evening :wink:

This seem to be perfect !

Works like a charm :+1:

I’ve added a “color” channel to the binding which uses the “display” command with animType “solid” to set all panels to the same color. Color channel is of item type “Color”.

Master and README are updated with the new channel, JAR file as well.

Here is a short video showing the binding in action:

1 Like

Hi Martin,

This is great, I’ve tested this new feature with HabPanel and it works perfectly.
Just one thing, with a regular Dimmer, it react to the ON/OFF command and DIM value. This seem to not be the case for the Brightness channel, it don’t react to ON or OFF. Do you think this can be improved ?
Anyway thanks for your works !

Hi!

First of all thanks a lot for testing the new binding with your Nanoleaf.

I’ve played a bit with HabPanel (I am not using it for my home automation) and configured a dimmer widget for the Brightness channel and a switch widget for the Power channel. When the panels are in OFF state and I turn the dimmer wheel, the panels turn on and a second or so later the switch turns on as well. This may be delayed by the refresh period configurable on the thing level.

Is that what you mean? Or did I got it wrong…? :thinking: