Synthesis
(The Viking AKA "Holy Crap You're a Giant!")
1
I have received permission from the wife to move forward on a small project as long as I make it easy to use for her.
The end goal: run 60 feet of RGBW LEDs around the perimeter of a room and control them from both a wall control unit that is not a touchscreen tablet, and have them SmartThings enabled for automatic on/off/voice change.
It directly controls LED strips, so it won’t work for making it Smart… Though I could just power the whole circuit with a smart switch or outlet if I need to.
The controller looks “neat” but you’ll need a pretty hefty 12 - 24v DC power supply and a way to wire it so its not a fire hazard. And as you said no way to make it smart other then a smart switch or relay but that would just cut it’s power…not sure if it would go back to what it was set to when turned back on.
There is a ESP8266 based controller that works with RGB lights…might want to check that out: [RELEASE] SmartLife (H801) RGBW LED Strip Wifi Controller & Bulb . Not sure on how much it can power but I know they make RGB “repeaters” that take the signal and resend with injected power.
2 Likes
Synthesis
(The Viking AKA "Holy Crap You're a Giant!")
3
I have eight or nine of the H801 units in use currently, and have been down the road numerous times with LED power, etc. The H801 is a great all purpose unit. I use four of them in my RGBW landscape and home lighting, and several indoors. I just want a good easy to use controller on the wall… I’m thinking a tablet with Actiontiles may be the only way to have that.
2 Likes
Synthesis
(The Viking AKA "Holy Crap You're a Giant!")
4
It appears that I can make this happen by using the STAnything platform, an Arduino or similar supported microcontroller and the wall touch panel.
The wall mounted controller would operate as normal, setting the output terminals to whatever combination of values would create the appropriate color requested. The signaling from this would run to several input pins on the microcontroller via some small electronic circuits to step the voltage down, instead of to the LEDs. The microcontroller would operate as the lighting master for the LEDs using some output circuitry to actually drive the LEDs.
STAnything would operate the LEDs, listening for inputs from the wall controller… When the input values change, the wall controller overrides the STAnything settings and the microcontroller reports back to SmartThings with whatever the new values would be based on the input. Change a setting within SmartThings, and STAnything takes over again, ignoring whatever settings are on the input pins… Until/unless the input values change from the wall mount controller.
Sadly, this is well above my abilities with regard to programming anything, but it’s likely the only way to make what I want happen.
A friend and I brainstormed it. He has microcontroller programming experience, but does not have time to delve into it for me, so I figured I’d post here and see if anyone was interested in trying this out with me?
I have the hardware already, just need to build some opto-isolators for the inputs.
I’ve gotten the device handler done (I think) and the code changed to the ST_Anything parent app done (I think…haha). I’ve gotten the code in my ESP32 to change a RGB strip based on a HEX value passed to it (and I can easily add a RGBW too). I’m just having trouble with the C++ code part. I can make it all work purely using Arduino but that’s not how ST_Anything works and I want to try to stay within it’s framework without modifications.
I’m not a C++ programmer but I know and understand programming so I’m going to keep plugging away I have a real world use case for it (my wife wants above cabinet lighting for the holidays) so I will figure it out eventually. If your friend wants to play with it have him look at the EX_Switch_Dim files in ST_Anything as a starting point. I think that’s the most logical place to start although @ogiewon could confirm that better then me.
Edit: If he does look at it the constructor (right word?) from the sketch would be three bytes for the pins (RGB), a boolean to flip from common cathode to anode, and 3optional bytes for channels (ESP32 does things differently then ESP8266). For RGBW it would be 4 pins, the boolean, and 4 optional channels. The on/off command would simply write a #000000 for off or whatever last hex value was for on and instead of the “dimmer” routine there would be a “setColor” routine. Like I said I’ve been working on it…just not to the point of it actually working.
-Allan
2 Likes
Synthesis
(The Viking AKA "Holy Crap You're a Giant!")
6
I’m interested in what you have done. My friend has a toddler and a full time job, so he’s pretty adamant about not having time, sadly.
I was actually starting working on a custom button that could control this stuff. If your goot with a soldering iron you could probably get it to work well. The circuit board has a built in mains to 3.3v regulator, so I just removed the relay and the existing uC, cut a few wires and added a few resistors and connected it directly to an esp8266. You can then use st_anything or just the arduino library to implement it in a WAF friendly, powerful way. I was also planning on baking in functionality so instead of just going through smart things (which, since device handlers are in the cloud, would take a little while to operate, thus killing WAF) it would actually send the JSON packets directly to the controller, whether it be a H801 or something else. That way it would basically work locally, kind of like direct associations in z-wave.
Anyway, here’s the thread. Advice on create new Multi-Light Switch. I thought about having it work in a few modes, like one button will cause the holding up/down to cycle through the color wheel, one would cycle through presets, stuff like that. It’s in my pile of half started projects that I plan on spending more time with in the future, whenever that may be.
I think I got the device handler done if anyone wants to take a look, open up live debugging, and see it work. I’m going to make the changes to the parent device, make sure the changes pass through (watch Arduino serial monitor) and if it works how I think it should I’ll put in pull requests to the ST_Anything repo then start working on the device code.
I was having issues with my RGB strip not displaying full brightness. They were changing colors on my commands but just never past like 15% of the brightness they would be when I just sent them a direct 12v. Turns out the MOSFET’s I picked needed 4v for full on as they were designed for a arduino board capable of 5v. My ESP32 only can do 3.3 so I ordered different MOSFET’s. Those come Sunday and once they do I’ll attempt the device code.
I went with the new style color picker but added in quick buttons like the Fibaro one. So you can choose from the full color picker and it will auto adjust the dimmer for what you picked. I also made it so it doesn’t auto turn on when you make changes so you can choose your colors and then turn it on and it will send the last picked. Although if you dim to 0% it does turn off.
Please try it and see if it makes sense: https://github.com/vseven/SmartThings_VSeven/blob/master/devicetypes/vseven/child-rgb-switch.src/child-rgb-switch.groovy Either add my repo (vseven - SmartThings_VSeven - master) or just download the code and create it in your IDE. Create a new device based on it, put anything for the network address, and you should be able to play with it. I didn’t do fading or “police lights” or any of that because I want to stay within the ST_Anything framework which means sending “standard” values back and forth.
I don’t know how exactly but I believe I got the code working using the dimmer code as a example. I would like to say C++ is a PITA. Tested using my kinda broken RGB strip and it worked (just not as bright as it should be). Tomorrow I’ll fully test once I get my new MOSFET’s.
I can only test using a ESP32 but I wrote it for both a ESP32 and a standard Arduino controller (8266, Uno, Mega, etc). The ESP32 has a different way of doing analogWrites which took some extra code but it should work without modification for any controller that supports ST_Anything. I would love to know if it works on a ESP8266 and if it does I’ll make another device for RGBW strips also.
So if someone would like to test this on a 8266 please PM me…I’d appreciate it.
1 Like
Synthesis
(The Viking AKA "Holy Crap You're a Giant!")
12
I don’t have any mosfets but I have several 8266 units and can test tomorrow