Gledopto Zigbee RGB controller

Hello, even though it was a year ago when you posted, but now i’m in the same shoes as you, having 3 pieces of RGBW controller, and about 100m of RGBW cable, and the whites are just always on. Have you found any solution since, or could you recommend me any controller which is RGBW compatible?
Thanks in advance

RGBW ST + GLEDOPTO WHITE led problem
Hello everyone, when i started to renovate my home about 1 year ago i ordered all of my light stuff, when i haven’t had any idea the how things really work (or don’t work). As such, now that i’m at the stage where i would put in the lights (i’m having about 100 m of RGBW stripe, and 3 gledopto RGBW controller, alexa dot and smartthings v3), and realized that ST won’t be able the control the white LED-s on my stripe. Is there any solution out there with this setup? If not, could you suggest me an controller which would work with my stripe? Or shall i completely forget RGBW? Any idea would be greatly appreciated

I went with this one on Amazon there is a device handler on here if you search.
Smart ZigBee Strip Light Switch Controller for Echo Alexa Voice Control Smart Phone APP Control RGBW or White Colour Strip Lights, Compatible with Hue and Lightify Hub https://www.amazon.com/dp/B07BTQJ8S5/ref=cm_sw_r_cp_apa_i_jfBwDb8P8VT3C

1 Like

Well if you consider being able to properly control both lights an additional benefit, then yes. The issue I had with direct pairing to Smartthings hub was that the cct lights would not power off, but the rgb would. Yes there are some benefits to having access to the Hue application light settings as well. I don’t do it often, but you can set up the color transitions or modes which are not available in smartthings. I primarily used it as a TV bias light so I pick a color and smartthings just turns it on at dusk and off at night.

Thank you!

Thanks for the explanation. I actually purchased the RGBW controller and I can control both channels within the single device. Though it will only go down to 2700 on the white channel without modifying the DTH. Can you operate both the white and the RGBW channels at the same time? I can’t do that currently. If I could that might be of benefit as it would give me some additional brightness.

I am using as lighting for my bride at her dresser where she gets ready in the morning.

I have RGB lighting behind the TV’s but its just a simple white strip operating at 5V that I could plug into the USB port and it comes on/off with the television.

Ok my history is with the rgb+cct controller and yes, the 1ID had the same issue, either rgb or white, but not both at the same time. With the hue controller and the Gledopto 2ID controller, both rgb and whites can be on at the same time. With CCT, the white temperature can be set as well. I think the theory with Hue is rgb plus white can adjust the color saturation. I doubt I would pay full price for the Hue hub, but used on eBay worked out well.

1 Like

That’s the info I was looking for. I’m think that I might get the hub and then replace the Cree smart bulbs (the are not great) with Hue white too.

Thank you @Plevy for answering my question.

Here a modified DTH that will control the RGB-CCT Gledopto controller.

This will control Warmwhite to Coolwhite from 2000K to 65000K, so there is Warmwhite only illuminating at 2000K.

Hi @Plevy,

You have it connected to the Hue bridge by now?

Can you see the ID’s of the Gledopto controller in the Hue app?

Now I see in the SmartThings:

Zigbee Id 00124B001D84C460
Device Network Id 122D

Data * application: 01

  • endpointId: 0B
  • manufacturer: GLEDOPTO
  • model: GL-C-007
  • zigbeeNodeType: ROUTER
    Raw Description 0B C05E 0210 02 07 0000 0003 0004

When I know the 2nd ID, maybe I can add it manually.

Grtn Ben

PS I ordered a cheap Hue bridge too, so I can play with the new Gledopto 2ID controller

In Smartthings, you only see the Hue devices, the hub and then each light is XXXXXXXXXFAB/1 and XXXXXXXXXFAB/2. As far as I tried, directly pairing the Gledopto would only find 1 thing so maybe it would be possible to add a special discovery for both but it didn’t exist at the time

I think of using the Hue bridge standalone and pair the new Gledopto controller trying to find the ID of both “parts” of the 2ID controller.

Then remove the controller from the Hue bridge and pair it manually with Smartthings… :innocent:

Just an idea :bulb:

Grtn Ben

Right now, each Hue light has a Parent Device so I assume if you remove the parent, it may try to remove the children. I do wonder if you can pair straight to Smartthings and add a new device manually. Out of the box, it will find a Thing and you can edit that thing to be an rgbw light which will somewhat adjust both RGB and White leds. The difference with hue pairing is each device is a DEVICENUMBER\1 or \2. Maybe its possible to set that up manually or is that only valid with Hue or a parent device.

Just installed the Hue bridge and paired the Gledopto 2ID controller. They have the 2 ID’s and I can control them (RGB & A330 WW/CW) separately by the Hue App and the Hue App.

In SmartThings they are Lan devices.

Can’t see any Zigbee details of the Gledopto controller.

Time for a Zigbee sniffer tool, I ordered from Ali.

Grtn Ben

I tried copying your DTH, but I’m getting errors in the IDE when pasting. Any ideas why? I’m thinking it may be because parts of the code are in embedded scrolling regions and it’s not all one continuous text box so the formatting when pasting is wrong

I will try another way to copy and paste. Otherwise I email the file to you PM.

/**

  • Copyright 2017 SmartThings
  • Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  •  http://www.apache.org/licenses/LICENSE-2.0
    
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.
  • Author: SmartThings
  • Date: 2016-01-19
  • This DTH should serve as the generic DTH to handle RGBW ZigBee HA devices
    */
    import physicalgraph.zigbee.zcl.DataType

metadata {
definition (name: “ZigBee RGBW Bulb 2000-6500”, namespace: “smartthings”, author: “SmartThings”, runLocally: true, minHubCoreVersion: ‘000.019.00012’, executeCommandsLocally: true, genericHandler: “Zigbee”) {

	capability "Actuator"
	capability "Color Control"
	capability "Color Temperature"
	capability "Configuration"
	capability "Refresh"
	capability "Switch"
	capability "Switch Level"
	capability "Health Check"
	capability "Light"

	attribute "colorName", "string"

	//Generic fingerprint
	fingerprint profileId: "0104", deviceId: "010D", inClusters: "0006, 0008, 0300"// deviceId 0x010D is "Extended Color Light"

	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0702,0B05,FC03,FC04", outClusters: "0019", manufacturer: "sengled", model: "E11-N1EA", deviceJoinName: "Sengled Element Color Plus"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0702,0B05,FC03,FC04", outClusters: "0019", manufacturer: "sengled", model: "E12-N1E", deviceJoinName: "Sengled Element Color Plus"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0B04,FC0F", outClusters: "0019", manufacturer: "OSRAM", model: "LIGHTIFY Flex RGBW", deviceJoinName: "SYLVANIA Smart Flex RGBW"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0B04,FC0F", outClusters: "0019", manufacturer: "OSRAM", model: "Flex RGBW", deviceJoinName: "OSRAM LIGHTIFY Flex RGBW"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0B04,FC0F", outClusters: "0019", manufacturer: "OSRAM", model: "LIGHTIFY A19 RGBW", deviceJoinName: "SYLVANIA Smart A19 RGBW"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0B04,FC0F", outClusters: "0019", manufacturer: "OSRAM", model: "LIGHTIFY BR RGBW", deviceJoinName: "SYLVANIA Smart BR30 RGBW"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0B04,FC0F", outClusters: "0019", manufacturer: "OSRAM", model: "LIGHTIFY RT RGBW", deviceJoinName: "SYLVANIA Smart RT5/6 RGBW"
	fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0300,0B04,FC0F", outClusters: "0019", manufacturer: "OSRAM", model: "LIGHTIFY FLEX OUTDOOR RGBW", deviceJoinName: "SYLVANIA Smart RGBW Flex"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01, FC08", outClusters: "0003, 0019", manufacturer: "LEDVANCE", model: "RT HO RGBW", deviceJoinName: "SYLVANIA Smart RT HO RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "A19 RGBW", deviceJoinName: "SYLVANIA Smart A19 RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "FLEX Outdoor RGBW", deviceJoinName: "SYLVANIA Smart Flex RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "FLEX RGBW", deviceJoinName: "SYLVANIA Smart Flex RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "BR30 RGBW", deviceJoinName: "SYLVANIA Smart BR30 RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "RT RGBW", deviceJoinName: "SYLVANIA Smart RT5/6 RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "Outdoor Pathway RGBW", deviceJoinName: "SYLVANIA Outdoor Pathway Full Color"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, FC01", outClusters: "0019", manufacturer: "LEDVANCE", model: "Flex RGBW Pro", deviceJoinName: "SYLVANIA Smart Flex 11 RGBW"
	fingerprint profileId: "0104", inClusters: "0000, 0004, 0003, 0006, 0008, 0005, 0300, FFFF, 1000", outClusters: "0019", manufacturer: "Aurora", model: "RGBBulb51AU", deviceJoinName: "Aurora RGBW GLS Lamp"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 1000, FFFF", outClusters: "0019", manufacturer: "Aurora", model: "RGBBulb51AU", deviceJoinName: "AOne Smart RGBW GLS Lamp"
	fingerprint profileId: "0104", inClusters: "0000, 0004, 0003, 0006, 0008, 0005, 0300", outClusters: "0019", manufacturer: "LEEDARSON LIGHTING", model: "5ZB-A806ST-Q1G", deviceJoinName: "Ozom Multicolor Smart Light"
	fingerprint profileId: "0104", inClusters: "0000, 0004, 0003, 0005, 0006, 0008, 0300, 1000", outClusters: "0019", manufacturer: "innr", model: "RB 285 C", deviceJoinName: "Innr Smart Bulb Color"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0702, 0B05, FC03", outClusters: "0019", manufacturer: "sengled", model: "E11-U3E", deviceJoinName: "Sengled Element Color Plus", mnmn:"SmartThings", vid: "generic-rgbw-color-bulb-2000K-6500K"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0702, 0B05, FC03", outClusters: "0019", manufacturer: "sengled", model: "E11-U2E", deviceJoinName: "Sengled Element Color Plus"
	fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0300, 0B05, 1000, FEDC", outClusters: "000A, 0019", manufacturer: "Aurora", model: " RGBGU10Bulb50AU", deviceJoinName: "Aurora Smart RGBW"
	fingerprint manufacturer: "sengled", model: "E1G-G8E", deviceJoinName: "Sengled Smart Light Strip", mnmn:"SmartThings", vid: "generic-rgbw-color-bulb-2000K-6500K"
}

// UI tile definitions
tiles(scale: 2) {
	multiAttributeTile(name:"switch", type: "lighting", width: 6, height: 4, canChangeIcon: true){
		tileAttribute ("device.switch", key: "PRIMARY_CONTROL") {
			attributeState "on", label:'${name}', action:"switch.off", icon:"st.lights.philips.hue-single", backgroundColor:"#00A0DC", nextState:"turningOff"
			attributeState "off", label:'${name}', action:"switch.on", icon:"st.lights.philips.hue-single", backgroundColor:"#ffffff", nextState:"turningOn"
			attributeState "turningOn", label:'${name}', action:"switch.off", icon:"st.lights.philips.hue-single", backgroundColor:"#00A0DC", nextState:"turningOff"
			attributeState "turningOff", label:'${name}', action:"switch.on", icon:"st.lights.philips.hue-single", backgroundColor:"#ffffff", nextState:"turningOn"
		}
		tileAttribute ("device.level", key: "SLIDER_CONTROL") {
			attributeState "level", action:"switch level.setLevel"
		}
		tileAttribute ("device.color", key: "COLOR_CONTROL") {
			attributeState "color", action:"color control.setColor"
		}
	}
	controlTile("colorTempSliderControl", "device.colorTemperature", "slider", width: 4, height: 2, inactiveLabel: false, range:"(2000..6500)") {
		state "colorTemperature", action:"color temperature.setColorTemperature"
	}
	valueTile("colorName", "device.colorName", inactiveLabel: false, decoration: "flat", width: 2, height: 2) {
		state "colorName", label: '${currentValue}'
	}
	standardTile("refresh", "device.refresh", inactiveLabel: false, decoration: "flat", width: 2, height: 2) {
		state "default", label:"", action:"refresh.refresh", icon:"st.secondary.refresh"
	}

	main(["switch"])
	details(["switch", "colorTempSliderControl", "colorName", "refresh"])
}

}

//Globals
private getATTRIBUTE_HUE() { 0x0000 }
private getATTRIBUTE_SATURATION() { 0x0001 }
private getHUE_COMMAND() { 0x00 }
private getSATURATION_COMMAND() { 0x03 }
private getMOVE_TO_HUE_AND_SATURATION_COMMAND() { 0x06 }
private getCOLOR_CONTROL_CLUSTER() { 0x0300 }
private getATTRIBUTE_COLOR_TEMPERATURE() { 0x0007 }

// Parse incoming device messages to generate events
def parse(String description) {
log.debug “description is $description”

def event = zigbee.getEvent(description)
if (event) {
	log.debug event
	if (event.name == "level" && event.value == 0) {}
	else {
		if (event.name == "colorTemperature") {
			setGenericName(event.value)
		}
		sendEvent(event)
	}
}
else {
	def zigbeeMap = zigbee.parseDescriptionAsMap(description)
	def cluster = zigbee.parse(description)

	if (zigbeeMap?.clusterInt == COLOR_CONTROL_CLUSTER) {
		if(zigbeeMap.attrInt == ATTRIBUTE_HUE){  //Hue Attribute
			state.hueValue = Math.round(zigbee.convertHexToInt(zigbeeMap.value) / 0xfe * 100)
			runIn(5, updateColor, [overwrite: true])
		}
		else if(zigbeeMap.attrInt == ATTRIBUTE_SATURATION){ //Saturation Attribute
			state.saturationValue = Math.round(zigbee.convertHexToInt(zigbeeMap.value) / 0xfe * 100)
			runIn(5, updateColor, [overwrite: true])
		}
	}
	else if (cluster && cluster.clusterId == 0x0006 && cluster.command == 0x07) {
		if (cluster.data[0] == 0x00){
			log.debug "ON/OFF REPORTING CONFIG RESPONSE: " + cluster
			sendEvent(name: "checkInterval", value: 60 * 12, displayed: false, data: [protocol: "zigbee", hubHardwareId: device.hub.hardwareID])
		}
		else {
			log.warn "ON/OFF REPORTING CONFIG FAILED- error code:${cluster.data[0]}"
		}
	}
	else {
		log.info "DID NOT PARSE MESSAGE for description : $description"
		log.debug zigbeeMap
	}
}

}

def updateColor() {
sendEvent(name: “hue”, value: state.hueValue, descriptionText: “Color has changed”)
sendEvent(name: “saturation”, value: state.saturationValue, descriptionText: “Color has changed”, displayed: false)
}

def on() {
zigbee.on()
}

def off() {
zigbee.off()
}
/**

  • PING is used by Device-Watch in attempt to reach the Device
  • */
    def ping() {
    return zigbee.onOffRefresh()
    }

def refresh() {
zigbee.onOffRefresh() +
zigbee.levelRefresh() +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_COLOR_TEMPERATURE) +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_HUE) +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_SATURATION) +
zigbee.onOffConfig(0, 300) +
zigbee.levelConfig()
}

def configure() {
log.debug “Configuring Reporting and Bindings.”
// Device-Watch allows 2 check-in misses from device + ping (plus 1 min lag time)
// enrolls with default periodic reporting until newer 5 min interval is confirmed
sendEvent(name: “checkInterval”, value: 2 * 10 * 60 + 1 * 60, displayed: false, data: [protocol: “zigbee”, hubHardwareId: device.hub.hardwareID])

// OnOff minReportTime 0 seconds, maxReportTime 5 min. Reporting interval if no activity
refresh()

}

def setColorTemperature(value) {
value = value as Integer
def tempInMired = Math.round(1000000 / value)
def finalHex = zigbee.swapEndianHex(zigbee.convertToHexString(tempInMired, 4))

zigbee.command(COLOR_CONTROL_CLUSTER, 0x0A, "$finalHex 0000") +
		zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_COLOR_TEMPERATURE)

}

//Naming based on the wiki article here: http://en.wikipedia.org/wiki/Color_temperature
def setGenericName(value){
if (value != null) {
def genericName = “White”
if (value < 3300) {
genericName = “Soft White”
} else if (value < 4150) {
genericName = “Moonlight”
} else if (value <= 5000) {
genericName = “Cool White”
} else if (value >= 5000) {
genericName = “Daylight”
}
sendEvent(name: “colorName”, value: genericName)
}
}

def setLevel(value, rate = null) {
zigbee.setLevel(value)
}

private getScaledHue(value) {
zigbee.convertToHexString(Math.round(value * 0xfe / 100.0), 2)
}

private getScaledSaturation(value) {
zigbee.convertToHexString(Math.round(value * 0xfe / 100.0), 2)
}

def setColor(value){
log.trace “setColor($value)”
zigbee.on() +
zigbee.command(COLOR_CONTROL_CLUSTER, MOVE_TO_HUE_AND_SATURATION_COMMAND,
getScaledHue(value.hue), getScaledSaturation(value.saturation), “0000”) +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_SATURATION) +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_HUE)
}

def setHue(value) {
zigbee.command(COLOR_CONTROL_CLUSTER, HUE_COMMAND, getScaledHue(value), “00”, “0000”) +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_HUE)
}

def setSaturation(value) {
zigbee.command(COLOR_CONTROL_CLUSTER, SATURATION_COMMAND, getScaledSaturation(value), “0000”) +
zigbee.readAttribute(COLOR_CONTROL_CLUSTER, ATTRIBUTE_SATURATION)
}

def installed() {
if (((device.getDataValue(“manufacturer”) == “MRVL”) && (device.getDataValue(“model”) == “MZ100”)) || (device.getDataValue(“manufacturer”) == “OSRAM SYLVANIA”) || (device.getDataValue(“manufacturer”) == “OSRAM”)) {
if ((device.currentState(“level”)?.value == null) || (device.currentState(“level”)?.value == 0)) {
sendEvent(name: “level”, value: 100)
}
}
}

Hi, did you get this working?

went into the IDE and change the device type to ZLL RGB Bulb

@mcphearson, thank you! It works just as you described.

© 2019 SmartThings, Inc. All Rights Reserved. Terms of Use | Privacy Policy

SmartThings; SmartApps®; Physical Graph; Hello, Home; and Hello, Smart Home are all trademarks of the SmartThings, Inc.