Nanoleaf's new light panels

I also noticed the same issue but I am beginning to believe it is a nanoleaf issue because I can get the triangle panels to work again if I unplug the panels (wait 30 seconds) and plug back in. The square panels do not seem to work again even with the same trick and it requires I relink the nanoleaf smart app in the smarthings app. They seem to disconnect again a few days later with no changes to smartthings, the panels, and my network.

Bruno, sorry you are having problems. For what it is worth, I can’t get the official integration to work at all either and if it did, it offers only on, off, color and brightness functions right now.

For the custom DTH, from your screen shot, it appears you are using the older version of the DTH and you did the postman route to get your API code. Since that code was released, Nanoleaf has made changes to the API. The communication piece stayed the same, but the on, off, and other pieces had format changes. There is a newer version of the DTH that I made the updates to, that make getting an API code easier as well as making updates to the API calls.

If you grabbed the first link in this thread, you got the old code. Somewhere in the middle is the new code. Here’s the link. Hopefully this fixes your problems.

https://github.com/Mellit7/NanoleafAuroraHandler

Jeremy, there was a bug in the Nanoleaf firmware that caused the Canvas to stop responding to API calls after so many were issued. That may be what you were seeing. It is supposed to be fixed. I no longer have that problem. Make sure your panels’ firmware is up to date.

2 Likes

Hi Melinda,
Yes, that was it, I was using the old DTH, it’s fully working now :slight_smile:
Thank you so much.

1 Like

Well, being stuck at home has some benefits, time to play with things.

I’ve added an new function/command to the DTH and a new Smartapp to manage your Nanoleaf. Here’s the details.

Thanks to @JeffC and his idea above, I did some looking around and found out we can address individual panels, so we have a new command.

setPanelColor(panel, toColor, blink)

panel is the Nanoleaf assigned panelId, the new smartapp has a tool to help you find it.
color is the color to assign, you can use a short list of defined color names or the #xxxxxx hex color code. The Github readme has detail.
Blink is true/false to determine if panel should blink, false is the default if omitted

One big note, there is a setting in the Nanoleaf app, Scene Transition, that must be off for this to work. See readme on where to find this.

New smartapp is available in the Github to help manage and use your Nanoleaf, especially in the new app. It allows you to use the Get API command to complete your device set up without having to go into the classic app. Also, instead of the 3 presets (they still exist and work in the settings) and the next/previous scene buttons, you have a list of all scenes stored on your Nanoleaf to select for activation.

Also the smartapp has a tool that will help find your panelIds by assigning a color to each panel and displaying the corresponding panelID/color combinations. It uses 9 different colors, so if you have more panels, the colors will repeat, but you will still be able to narrow things down to a few panelIds.

Usual disclaimers, bugs are certainly possible, and the smartapp is certainly not elegant. Feedback welcome.

Update the DTH before using the smartapp

Here’s the git link again

2 Likes

Oh, cool! Thank you! I will look into it… yeah, crazy times right now, but can definitely use the time @home and no commute!

Thanks,
Jeff

Hey all,

How can I cycle though scenes using the Nanoleaf integration?

Hi all,

Mellit7/NanoleafAuroraHandler

Got this working, took a while and I’m using it with the Canvas, not the Aurora. But seems ok.

Couple of questions, what I really wanted to do was get this working with Ikeas five button remote.

Particularly the dimming buttons and left/ right, to map scenes.

Now, should i be looking somewhere else, like ABC because its got to do with the remote and not the Canvas or…

I do see some arrows for scenes in the old app. But they dont seem to change my pre-entered scenes (the top scene selection does work though).

Should that be working?

Thanks

Hi Shane,

Glad you got it working. I have the Canvas as well, and it will work with both types of lights.

Now to your questions.

Some of the features in the implementation are considered custom commands and thus will not work in the standard scenes, routines and automations in either Smartthings App. So to use them you will need to write your own smartapp or use Webcore.

First, the previous and next arrows work on all the scenes stored on your Nanoleaf, not just the 3 you preset. Also, that code was written by the original author, and since I don’t make use of it, I’ve never even tested it. Will try to take a look at it sometime this week.

I’m not familiar with how the Ikea remote works, so can’t speak to how to program it. It will definitely be something other that this, but will refer back to the commands set up here.

The custom commands you might be interested in are

previousScene()
nextScene()
setScene1()
setScene2()
setScene3()
changeScene(ā€œscene nameā€)

There are no arrows in the new app, not supported yet.

As to dimming, standard light dimming settings should work for this however your remote does it.

Let me know if I can be of more help.

Hey Melinda,

Thanks so much for getting back and providing that info. Im sure it will come in handy :slight_smile:

I have the dimming function working now thanks to ABC (Advanced Button Control)

But just waiting on them to advise if there is a way to map what you have given me with the more advanced button config.

Would really appreciate it if you could check and see if it works though :slight_smile:

Im really just interested in these two;

previousScene()
nextScene()

Which I guess corresponds to the arrows, but as I said, they were not working for me.

Thanks again!

Just checked those two commands. For me they are working fine. So, I want to make sure your list of scenes is populated correctly.

In the IDE, on the actual Canvas device, not DH, look at current states and find the scenesList. It should contain a list of all your scenes stored on your Nanoleaf.

If that looks correct, then, still in the IDE, please check the Live Logging while testing those buttons to see if errors are showing up.

Otherwise, it’s hard to guess what is happening.

Oh, and make sure you are using my version of the DH, not someone else. Mine has the Nanoleaf API changes in it.

Sorry Melinda,

I missed this last post somehow. Ill have a look today. Thanks for getting back :slight_smile:

Ok, So if I use the, Smartthings/ nanoleaf integration, I really don’t get a lot of info.

States: no states found

Looking at events in your DH, buttons not doing anything, nothing showing up at all. but if I use the hard set buttons for scene (Favorite scene 1 ect) that works ok

Date	Source	Type	Name	Value	User	Displayed Text
2020-05-07 11:43:47.329 AM AEST
moments ago	DEVICE		scene	Falling Whites		Canvas scene is Falling Whites
2020-05-07 11:43:40.595 AM AEST
moments ago	DEVICE		scene	Cyberpunk		Canvas scene is Cyberpunk
2020-05-07 11:43:32.484 AM AEST
moments ago	DEVICE		switch	on		Canvas switch is on

Let’s see…

Smartthings Nanoleaf official integration, I have nothing to do with, and no it does almost nothing.

States, where are you looking? This is not in the mobile app, but in the IDE website, in the devices tab. Details for your specific device by clicking on it, scenesList is an item in current states.

What you included is from that same screen I just referenced. It is not the same as live logging. It is a log changes to the devices attributes from the DH. These indicate the reported state of the device changed, which is not always the same as the physical device changing if an error occurred somewhere.

buttons not doing anything, nothing showing up at all. but if I use the hard set buttons for scene (Favorite scene 1 ect) that works ok

Not exactly sure what you mean here. Favorites are the 3 you see in the classic app? What buttons are not doing anything?

Live logging is another tab in the IDE, that shows debugging info and error messages in real time. You click that tab and then use the app or whatever you are trying to test and see what is going on.

Sorry I’m not more help

LOL right got you, I read that wrong :slight_smile:
Here are the states from the device I created, based on your device handler;

switch: on
level: 70
color:
DeviceWatch-DeviceStatus: online
healthStatus: online
DeviceWatch-Enroll:
{
ā€œprotocolā€: ā€œLANā€,
ā€œschemeā€: ā€œuntrackedā€,
ā€œhubHardwareIdā€: ā€œ0037ā€
}
scene: Falling Whites
IPinfo: Canvas at 192.168.190.100:16021 REMOVED
retrievedAPIkey:
apiKeyStatus: API Key Was Entered

HAHA yup, I was so confused by that… Found it. Because of samsung’s amazing coding ā€œLive Loggingā€ was hidden behind the ā€œwelcome back your nameā€ on the top right of the page. This should be more helpful

20:14:09: error java.lang.NullPointerException: Cannot invoke method replaceAll() on null object @line 251 (previousScene)
20:14:07: error java.lang.NullPointerException: Cannot invoke method replaceAll() on null object @line 270 (nextScene)

Based on what you sent, exactly what I was looking for BTW, I know what is happening, but not why it is happening. Your list of scenes from your Nanoleaf are not populating correctly, so you have no list to move through. So, let’s try to find out why. I’m going to PM you some things to try.

@mellit7 Nice SmartApp, useful for the new app there are a couple of questions I have though, is the toggle switch on the SmartApp selection page a consequence of the new app or is it possible to hide it as all it does is update? Also the parsing of the presets causes it to fail on when run on an unconfigured device, there is a map count check but it fails before this point.

Thanks for the feedback. The SmartApp was a quick and dirty attempt to fill a void, so I’m not surprised there are some bumps. I haven’t looked at it in a while, so I don’t have answers at the moment.

This environment is changing so quickly that I never know how things will work from one day to the next.

The toggle switch thing will probably be what ever it is for now, but will look at the presets error in the next few days. If you have error logs you can send, that will help immensely.

The preset fix I have used is:

    	def presetsMap = null

	if (theNanoleaf.currentValue("presets")?.trim()) {
    	presetsMap = new groovy.json.JsonSlurper().parseText(theNanoleaf.currentValue("presets"))
    }

	return dynamicPage(name: "displayDetails", uninstall: true, install: true) {
     	section ("${theNanoleaf.name} Actions"){
     	  	if (presetsMap && presetsMap.name.size() > 0) {

Also a bit quick and dirty! I have had a look at the toggle but it’s been years since I last dabbled and there wasn’t a new app back then.

I see the potential problem, and your fix works.

If you mean the toggle on the page that lists your smartapps, that’s totally the control of the app, don’t have any control over it. It’s a way to deactivate your smartapp, like if you had one that ran on a schedule.

Hi Mellit7
just got the nanoleaf shapes and using the new ST app. I created the device handler and got the HEX value for the device, but I do not understand how to get that API key. I do press the device on/off for 7/8 sec and it blink alright, but from there how do I get the API key? you mention ā€œIf you are using the new Smartthings app, there is no Get API Key, so you need to use the management smartappā€ >> what is the management smartapp?
sorry if that sounds like a stupid question - just being stuck with this :stuck_out_tongue:

Hope you enjoy your Nanoleaf lights. Let’s see if I can answer your questions.

In the classic app there was a Get API Key button to press, but it does not yet exist in the new app. So, I created a management SmartApp to handle some of the missing functions. It is installed in the same way as the device handler in the IDE and is found in my GitHub.

You then would use it like any other SmartApp. One of the options to select is a Get API key. You were on the right track. On the physical Nanoleaf you press the power button until it blinks, once it is blinking, you select the Get API key option in the SmartApp. If it all works correctly, you should see the API info populate in the SmartApp as well.

Let me know if you have any more questions