Integrating Zigbee Canless Lights For Entire Home - Juno Connect

I get off work in a couple of hours, once I’m home I’ll post my config. This was my first time making one so not totally sure if everything is correct on it. Maybe @jcharles42 and I can compare notes :joy: and see if they match up. Then we could probably try to add it to the Zigbee2mqtt database.

1 Like

Hey, I have a bunch of these Juno connects as well. Here’s the conf that I’ve been using. It’s all generic stuff except that I had to find the right values for the color temp range, but I don’t remember exactly how I did that. Anyway, would be great to compare notes @davbay2.

I have the following saved as junoconnectwafer.js in my /opt/zigbee2mqtt/data folder. You also have to add to your configuration.yaml an entry for junoconnectwafer.js under the external_converters key and then restart zigbee2mqtt before pairing.

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const ota = require('zigbee-herdsman-converters/lib/ota');
const tuya = require('zigbee-herdsman-converters/lib/tuya');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    zigbeeModel: ['ABL-LIGHT-Z-001'],
    model: 'JunoConnectWafer',
    vendor: 'Samsung Electronics',
    description: 'Juno Connect Wafer',
    // Note that fromZigbee, toZigbee and exposes are missing here since we use extend here.
    // Extend contains a default set of fromZigbee/toZigbee converters and expose for common device types.
    // The following extends are available:
    // - extend.switch
    // - extend.light_onoff_brightness
    // - extend.light_onoff_brightness_colortemp
    // - extend.light_onoff_brightness_color
    // - extend.light_onoff_brightness_colortemp_color
    extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200,370]}),
};

module.exports = definition;
4 Likes

Nice! I wasn’t expecting it to be so simple

I cleaned it up a bit and added a pull request to the official zigbee-herdsman-converters project

I’m assuming you got the color temperature range by following these instructions :slight_smile:

2 Likes

Sweet, thanks for submitting the PR @ankushg! Yes, I did use those instructions for obtaining the color temperature range. However, I did at some point recreate my setup and it is possible that I forgot to update those values, so it wouldn’t hurt to double check the ranges are correct.

This is my config:

const fz = require(‘zigbee-herdsman-converters/converters/fromZigbee’);
const tz = require(‘zigbee-herdsman-converters/converters/toZigbee’);
const exposes = require(‘zigbee-herdsman-converters/lib/exposes’);
const constants = require(‘zigbee-herdsman-converters/lib/constants’);
const reporting = require(‘zigbee-herdsman-converters/lib/reporting’);
const extend = require(‘zigbee-herdsman-converters/lib/extend’);
const e = exposes.presets;
const ea = exposes.access;

const definition = [
{
zigbeeModel: [‘ABL-LIGHT-Z-001’], // The model ID from: Device with modelID ‘lumi.sens’ is not supported.
model: ‘WF4CRDTUWHMWM6’, // Vendor model number, look on the device for a model number
vendor: ‘Samsung Electronics’, // Vendor of the device (only used for documentation and startup logging)
description: ‘Juno recessed light by Samsung’, // Description of the device, copy from vendor site. (only used for documentation and startup logging)
//fromZigbee: [fz.on_off], // We will add this later
//toZigbee: [tz.on_off], // Should be empty, unless device can be controlled (e.g. lights, switches).
extend: extend.light_onoff_brightness_colortemp({colorTempRange: [200, 370]}), // Defines what this device exposes, used for e.g. Home Assistant discovery and in the frontend
},
];

module.exports = definition;

It looks pretty much identical other than me having this line “const constants = require(‘zigbee-herdsman-converters/lib/constants’);” (Can’t remember why I have this, not sure if it’s necessary.)

And you have these two “const ota = require(‘zigbee-herdsman-converters/lib/ota’);
const tuya = require(‘zigbee-herdsman-converters/lib/tuya’);”

Does OTA work for you?

Great question about OTA. No, the Juno lights don’t show up in the OTA page. I did see in the zigbee2mqtt logs something like this:

2022-09-18.14-54-09/log1.txt:debug 2022-09-18 15:49:59: Device 'downstairs/livingroom/light3' requested OTA

Which gave me a glimmer of hope on that. It would be nice if these lights did have updates and were being maintained, but I haven’t seen that.

To the best of my knowledge, you don’t get any added functionality from just importing a dependency via
const foo = require(‘foo’)

You have to actually call that import to do something (like we do with extend)

I’m guessing that these were just leftover copy/paste from a template that was designed to potentially let you implement OTA if you know the web address for it

Also @davbay2 glad your temp ranges are the same!

Yea, that’s just boilerplate code copied from a template that I found online. I’m no js expert but my belief is that a require statement will read in the referenced file and execute the code at global scope in said file. Typically that just sets up the module exports and doesn’t really do anything of consequence but I suppose it’s possible for a require statement to have side effects.

Super true! I hope they’re not executing code with side-effects on require, but it’s definitely technically possible :dizzy_face:

Also - it looks like my PR was merged! I’m not sure what the timeline is for it to make its way into a release for zigbee-herdsman-converterszigbee-herdsmanzigbee2mqtt but I imagine it’ll show up some time soon!

Thanks for the help everyone :slight_smile:

1 Like

Have any of you used zigbee binding with your Juno wafers? I’ve used the IKEA Styrbar remotes and they work pretty well for on/off but not for dimming. However, from time to time somehow the binding ends up becoming bound to a wrong light somewhere else in the house. It’s a bit mysterious. Looking forward to getting some of the Inovelli Blue switches, probably next week and seeing how those fare!

I’m so glad I came across this topic :exploding_head:.

I was strongly in favor of smart switches over smart bulbs in the past, mostly because 1) I’ve never found an use for them, and 2) I’d like light/switch to work even if the hub is down.

But tunable looks amazing with @kreene1987’s adaptive lighting suggestion, and Blue’s Zigbee binding capabilty allow the lights to be controlled by the switch even if the hub is down.

I am curious what are everyone’s setups like?

  • Do you have tunable smart lights all around the house? Or just select rooms?
  • In addition to automations that turn on/off the lights, what kind of manual control do your switches have? On/off definitely makes sense. Hold up/down for brightness adjustment? And maybe double tap to loop through temperature changes?
1 Like

I’ll go first :smile:

I recently bought and remodeled my house. Part of that remodel was replacing my lights. I found these can lights and replaced every light in my house with them except in the bathrooms.

I have been using Adaptive Lighting with them and everything has been working great so far. Just waiting on the light switches to finalize the setup.

2 Likes

Okay, I’ll chime in here too. I moved into a new (old) house a couple months ago. Added these Juno lights in three upstairs bedrooms and a living room downstairs. Old plaster walls, wanted to minimize damage to the walls, so went the smart light route. The rooms all have three-way switches that control a central ceiling fan. I still need to figure out the switch situation. For now Ikea Styrbar remotes have been doing the job. Ultimately I might switch the fans out which might give more options (we want to swap out some of them anyway for a different look).

I’ve had lots of challenges getting it all running smoothly. At first had Hubitat in the basement. I think the range was too far. Added a couple Inner smart plugs to act as repeaters. Switched to a sonoff zigbee dongle on a raspberry pi closer to the lights. Thankfully things have been stable now for some time.

I’m curious about the adaptive lighting. For now I’m using zigbee2mqtt on a raspberry pi but not really using any automations. Maybe I’ll set up home assistant and try the above adaptive lighting thing. I do also have an Apple TV and Home Bridge running on a synology box. I think that there might be a way to get Apple’s version of adaptive lighting working but haven’t really tried. For the most part though I’m just happy that I didn’t have to pick a color temperature and can change it when I figure out what temperature I actually want.

Just to round out the picture, I also have a bunch of hue bulbs in the kitchen. Those were existing bulb fixtures so it was easy to just use hue bulbs. There weren’t so many choices before (but now Hue wafer lights are available, maybe I would have gone that way if they were a thing a few months ago, but are pricey). Adding the hue bulbs was not without issues and I ended up putting them on a separate zigbee network with a hue bridge. That’s been working well, I don’t really have a reason to need them all on the same zigbee network.

1 Like

This helps. We are moving into a new larger home and I’m about to take the leap. Our interior decorator said that the lighting was “abysmal” so that’s my first big project and best of all the wife approves!

2 Likes

So I had a similar plan and setup a test rig with one of the Juno Connect smart recessed wafer lights and a Blue 2-1 switch. I was able to get bindings working but the light could not keep up with the messages from the switch. Dimming and brightening lagged the switch and worse even the state of on/off got lost if I acted too quickly on the switch… i.e. tap & hold to full bright, then tap off … light stays on but switch thinks it’s off. same in reverse. Definitely not going to hold up to my family using the switches and expecting them to “just work like normal lights”.

In contrast, the Philips Hue thin wafer light works amazingly well and keeps up 100%… but currently has a color temp change issue that the engineering team is investigating.

In the end I tested about a dozen canless light options and settled on these “dumb” Juno lights which worked flawlessly when driven by the Blue 2-1 as a dimmer. No buzz at all, dims to nearly off, just works. Not a smart bulb so you have to pick your color temp (it’s at least a switch on the LED driver), but at least it’s working buttery smooth on the 2-1.
https://www.homedepot.com/p/RL-6-in-Color-Selectable-2700K-to-5000K-Remodel-Canless-Recessed-Integrated-LED-Kit-RL6069S1EWHDMR/306673240
https://www.homedepot.com/p/Halo-RA-6-in-Selectable-CCT-New-Construction-or-Remodel-Canless-Recessed-Adjustable-Gimbal-Integrated-LED-Kit-RA6069S1EWHDMR/311306354

3 Likes

How many bulbs did you have setup with the binding? I am wondering if a group binding might help if it is a large number. Seems like things might be working well for you though so maybe not rock the boat? :slight_smile:

1 Like

It was just one. Could go pick one back up to do more testing if there’s anything you recommend I try differently.

1 Like

Strange that it was doing that with one light. Honestly, I haven’t seen that even with 4 lights (I tried 2 hue and 2 sylvania at the same time). I wonder what was going on.

Maybe it has to do with the Zigbee signal strength? Sounds similar to issues I had in general as I was building out my network. I’m hoping to be able to test my two-in-one switch with binding to my Juno connect wafers in the next week or two, but I need to find some focused time to do so.

Not sure if this is the same model, but it looks like these lights may have some other issues. https://www.amazon.com/Juno-WF6C-RD-TUWH-MW/dp/B08QV3S13W/?_encoding=UTF8&pd_rd_w=EequD&content-id=amzn1.sym.8cf3b8ef-6a74-45dc-9f0d-6409eb523603&pf_rd_p=8cf3b8ef-6a74-45dc-9f0d-6409eb523603&pf_rd_r=P3CBS6P23X04XA10ENGY&pd_rd_wg=EKkVb&pd_rd_r=5799247a-e201-4d2c-ade4-7929f2a66a5f&ref_=pd_gw_ci_mcx_mi