Sylvania LIGHTIFY 74099 ZigBee 4-button switch

I have been working with this device a bit over the last 24hours. Editing a DTH with the following will bind the on/off properly and thus stop everything turning on/off.

ToDo: Parse events and look at how to handle (via SmartApp ala dimmer?). Look at using source endpoint ID rather than command to parse. Advanced: Process button held.

Four Button Switch Fingerprint:

> fingerprint profileId: "0104", deviceId: "0810", inClusters: "0000, 0001, 0020, 1000, FD00", outClusters: "0003, 0004, 0005, 0006, 0008, 0019, 0300, 1000", manufacturer: "OSRAM", model: "Switch 4x EU-LIGHTIFY", deviceJoinName: "OSRAM 4x Switch"

Bindings:

> // Bind Button 1 and 2
    "zdo bind 0x${device.deviceNetworkId} 0x01 0x01 0x0006 {${device.zigbeeId}} {}",
    // Bind Button 3 and 4
    "zdo bind 0x${device.deviceNetworkId} 0x01 0x01 0x0300 {${device.zigbeeId}} {}",

So I have two out of four buttons working. Used Mutley’s Lightify Dimmer code for DTH and SmartApp. Change fingerprint and bindings as per post above.

Edit DTH under the parseCatchAllMessage function to replace the case statements as below.

switch(msg.clusterId) {
case 1:
// call getBatteryResult method to parse battery message into event map
log.debug 'BATTERY MESSAGE’
def result = getBatteryResult(Integer.parseInt(msg.value, 16))
break
/* case 6:
def button = (msg.command == 1 ? 1 : 2)
log.debug "Command received was $msg.command"
log.debug "Data received was $msg.data[0]"
log.debug msg.sourceEndpoint
Map result = [:]
result = [
name: ‘button’,
value: ‘pushed’,
data: [buttonNumber: button],
descriptionText: “$device.displayName button $button was pushed”,
isStateChange: true
]
log.debug "Parse returned ${result?.descriptionText}"
return result
break
case 768:
def button = (msg.data[0] == 1 ? 3 : 4)
log.debug "Command received was $msg.command"
log.debug "Data received was $msg.data[0]"
log.debug msg.sourceEndpoint

  Map result = [:]
  result = [
    name: 'button',
    value: 'pushed',
    data: [buttonNumber: button],
    descriptionText: "$device.displayName button $button was pushed",
    isStateChange: true
  ]
  log.debug "Parse returned ${result?.descriptionText}"
  
  return result
  break */
case 8:
  switch(msg.command) {
    case 1: // brightness decrease command
      Map result = [:]
      result = [
        name: 'button',
        value: 'held',
        data: [buttonNumber: 2],
        descriptionText: "$device.displayName button 2 was held",
        isStateChange: true
      ]
      log.debug "Parse returned ${result?.descriptionText}"
      return result
      break
    case 3: /* brightness change stop command
      def result = [
        name: 'button',
        value: 'released',
        data: [buttonNumber: [1,2]],
        descriptionText: "$device.displayName button was released",
        isStateChange: true
      ]*/
      log.debug "Recieved stop command, not currently implemented!"
      //return result
      break
    case 5: // brightness increase command
      Map result = [:]
      result = [
        name: 'button',
        value: 'held',
        data: [buttonNumber: 1],
        descriptionText: "$device.displayName button 1 was held",
        isStateChange: true
      ]
      log.debug "Parse returned ${result?.descriptionText}"
      return result
      break
  }

}
switch(msg.sourceEndpoint) {
case 1:
log.debug "physical button 1"
Map result = [:]
result = [
name: ‘button’,
value: ‘pushed’,
data: [buttonNumber: 1],
descriptionText: “$device.displayName button 1 was pushed”,
isStateChange: true
]
log.debug "Parse returned ${result?.descriptionText}"
return result
break
case 2: //physical button 3
Map result = [:]
result = [
name: ‘button’,
value: ‘pushed’,
data: [buttonNumber: 3],
descriptionText: “$device.displayName button 3 was pushed”,
isStateChange: true
]
log.debug "Parse returned ${result?.descriptionText}"
return result
break
case 3:
//physical button 2
Map result = [:]
result = [
name: ‘button’,
value: ‘pushed’,
data: [buttonNumber: 2],
descriptionText: “$device.displayName button 2 was pushed”,
isStateChange: true
]
log.debug "Parse returned ${result?.descriptionText}"
return result
break
case 4:
//physical button 4
Map result = [:]
result = [
name: ‘button’,
value: ‘pushed’,
data: [buttonNumber: 4],
descriptionText: “$device.displayName button 4 was pushed”,
isStateChange: true
]
log.debug "Parse returned ${result?.descriptionText}"
return result
break

Just got one of these today. I assumed since the other Lightify switch worked easily, this would too. Lesson learned.

Has anyone made any more progress getting the 4-button to work on SmartThings?

Has anyone made any progress on this? I would like to buy this device its ideal and cheep but need it to work with ST.

I haven’t seen anyone reporting success getting the 2 right-side buttons to work on the US model to work. Mine’s sitting, unused, with a few other troublesome items on my desk.

1 Like

I got mine to work with the below device handler. The hold function doesn’t work, but all four buttons do.

https://community.smartthings.com/t/osram-lightify-4-button-switch-dth-binder-alpha/99877

Sylvania lightify 74099 pairing. how do you put this in? a. exclusion b. pairing mode

I am not a programmer. Is there a device in ST that I should be searching for in manual?

It’s a zigbee device. “Exclusion” doesn’t apply— that’s only for Z wave devices. Instead, you just have to factory reset it.

Do you have the US model or the EU model? They work somewhat differently.

Bar code on box is 46133 74099

Fcc id label ON DEVICE IS # 2AJRH-LDV74099

That’s the US version. Reset instructions are in the user guide:

That said, as you can see in the comments above and in the other thread about this device, although some people have been able to get the European version working, to date unfortunately no one has been able to get the US version working for more than two of the four buttons. :disappointed_relieved:

Has there been any luck in making the US version work? I bought one as I found it for 30 bucks vs the Aoetec $70 one.

If I have to buy the Lightify Gateway to link it well that may be viable when you can get one gateway and pass it through that. each 4button at half the cost of the Aoetec throws weight very quickly.

The lightify gateway does not link with the smartthings hub. Each is a primary zigbee coordinator, and you can only have one of those on a network. So it’s very different than, say, the Phillips hue bridge where the bridge itself allows integration with other systems.

Can’t tie them together so one can pass commands to the other? IE tell smartthings throuhgh routines/scenes to turn on the bedroom lights and have it throw the command to the lightify gateway to turn those lights on that are under its control?

No. They can’t both be on the same network. And each bulb can only belong to one network. So you have to choose one or the other.

I’m not saying bind the bulbs to both networks(nothing really supports that, you can do it with PCs but need multiple network cards). But rather let the two hubs talk to each other and let one tell the other “hey, turn these bulbs on”. If no, they can’t talk to each other and cooperate… come on ST and Osram, GET TOGETHER!

The two hubs don’t talk to each other. That’s a decision that Osram/Sylvania has made, so write to their support department and tell them you would like to see more third-party integrations. They don’t even have an IFTTT channel for their Gateway. :disappointed_relieved:

Not tried the button yet but I’ve achieved this for bulbs with eventghost as middle man.
Using simulated switches and dimmers in ST they trigger eventghost and using a python script it runs Lightify’s API to control the bulbs. It also updates the ST switch when Lightify changes using ST’s API.
I did have the bulbs connected directly to ST but response was really slow when trying to do a colour change routine for Xmas/ alarm and the Lightify app has some nice colour change effects and can group bulbs together.
I have got a Lightify button, I try and see if works.

1 Like

since you guys already have it and i wanna buy it, i think i found a solution over an amazon review. Can you guys try it out?

https://www.amazon.com/gp/customer-reviews/R1WAD5H23FBV0B/ref=cm_cr_getr_d_rvw_ttl?ie=UTF8&ASIN=B01M3OK6J7

the butons that you have to press for 3 sec are the top right and botton left

if you need to reset it, you press the top left and botton right for 10 sec.

1 Like

I will try it, but I’m 99% certain that it will not work with the US Version. SmartThings simply does not register a button press for 2 of 4 buttons.

Did it work?