High CRI Lights and Home Assistant
My partner has very sensitive eyes (they’re a fox, after-all). They tasked me to figure out a specific problem: They want lightbulbs that have high CRI that could also be hooked into our Home Assistant.
I don’t know if this is still true today (I’m writing this post about a year after the fact), but the only things we could find that fit the bill of:
- High CRI
- Not crazy expensive per-bulb
- Can fit in normal light fixtures
Were a line of bulbs from Astera, a company mostly focused on theater and stage lighting, with the NYX line. The downside is that the second part of the request– being able to control them from HA– seemed somewhat dead in the water. These bulbs don’t have any sort of zigbee or zwave radio, and no wifi chip. What they did have was the ability to talk to them through CRMX, a proprietary protocol for wireless DMX. While there are plenty of ways to go from Home Assistant to DMX, if you wanted to send out CRMX signals to the lightbulbs, you needed some sort of transmitter that could do so. Again, this isn’t like something over wifi where HA could control it, and what we needed was some sort of protocol adapter in software.
We ended up going with the lights, though– it was important enough to have good lighting that we were okay eschewing the automation part for now. Especially since we saw a path forward to doing so with some extra hardware we didn’t want to spend money on immediately.
Fast forward a year, and I want to move on from the Philips Hue’s in my room. I take the opportunity to be able to help my partner here, and decide to go with the same bulbs they use, and figure out how to get them onto HA. The following is a very shortened idea of the data flow and process of doing so, the drawbacks, things I’ve learned, and my thoughts on anyone looking to do this in the future for their own setups.
Problem 1: Translating Home Assistant to ???
There are a couple of problem points in this data chain. You have Home Assistant running on something in your home network (For us, it’s a Hyper-V VM on one of our two Windows Servers in a server rack, though we’ve also had it running in our kube cluster before, and also have run it standalone on a Raspberry Pi 4). Home Assistant has abstractions for lights– so if you “turn on” a light in home assistant, there has to be something that translates that to a command that the lights can understand. In the case of Philips Hue, there is an integration that takes in the lighting abstraction and sends data packets over wifi to the Philips bridge on your network.
For stage lighting, there is a protocol called Art-Net that can transport DMX data (normal DMX data, the kind that would normally just be sent through cables) across an ethernet network. There is an integration written over the years by a couple of people for Home Assistant that translates the HA abstraction to Art-Net (and specifically to an Art-Net controller on the network). Great!
Problem 2: Transmitting CRMX
Now that we have the Home Assistant data being transmitted via Art-Net, we need something on the network that can read Art-Net and transmit CRMX data. The cheapest options are around $500, and are USB-to-CRMX transmitters, like this one. NOTE: I did not try this option, so I am not endorsing this particular product. I also don’t know exactly how one would go from Art-Net to this dongle– I believe there are open source software stacks that can do this, but, again, this wasn’t something we wanted.
Instead, we went with a Galileo MAX from Lumenradio (the company that makes CRMX). This box is an all-in-one, PoE box that receives Art-Net directly, and outputs CRMX. Exactly what we needed… with two downsides:
- It was on the more expensive side at $1300.
- It only sends out one universe, which means a total of 512 DMX channels. This is quite a lot if all we have are these Nyx bulbs, which, depending on the DMX profile you put them in, can take as few as 3 channels– we have them in a mode with 6 channels, which means we could have more than 80 bulbs, which is totally fine. However… we also have a Quasar Science Rainbow 2, a 4 foot LED tube that can talk CRMX as well… and itself can suck up hundreds DMX channels if we want it to. Thankfully this thing can talk Art-Net directly so it doesn’t need to take the same universe channels as our physical CRMX transmitter, but… it shows that we can’t super rely on never needing more than one universe.
We went with it, connected it to the network, and was able to get the first and original Nyx bulb we bought connected to it. Using a DMX tester (DMX Workshop) we could send DMX commands to the universe, and we saw the light respond! Hooray! It was pretty simple after that to connect it to HA.
Problem 3: Connecting bulbs to the Galileo
We were happy with this solution, so we bought a few more bulbs, now for my room as well as a couple more around the house. That’s when we hit a snag that we’re still fighting with that we weren’t expecting: Lights need to be connected to the CRMX transmitter first before they accept CRMX commands from it (so that no one with a rogue CRMX transmitter can start just… messing with any lights in a half mile radius). Astera have a mobile app where the NYX bulbs can connect to your phone via bluetooth, be put in a mode to let them sync with a CRMX transmitter, and then the galileo has a button for “sync with bulbs looking for syncing over crmx right now”.
This is a little clunky, but, just like a lot of things in HA, once it’s on there it’s totally fine and you never have to mess with it again. However, we have found that the astera app is jank as fuck. It’s no wonder it has something like a 2/5 rating on the app store, with the reviews all complaining about this… sometimes bulbs just don’t connect to it, sometimes bulbs connect to it but then refuse to hear the CRMX transmitter, sometimes bulbs look like they’re connected to it but then don’t respond at all. It’s super frustrating.
Right now, neither bulb in my room is connected to HA. One of them can be controlled by the astera app, so something is just slightly messed up with our connection to HA… but the other just refuses to be synced with our transmitter.
Do I Recommend This?
Ugh. At the end of the day, this still feels like the only way to get high CRI bulbs into HA, so even with all the drawbacks and extreme amount of jank, I do feel like if you need high CRI light bulbs that can be controlled by a protocol that HA can somewhat speak, this is “the best” option.
I’ll update this blog post in the future if we try more things and get things more working, or if we find other options.