Will it work with my existing philips dynalite


(Cyprian) #1

Hello guys

I am new here :slight_smile:
I have a philips dynalite system to control lights in my home. Will i be able to control my lights through the smartthings app? Is my dynalite system discoverable through wifi pls?

Thanks!!


#2

There was one community member who was able to get on/off working, but I don’t know if they ever got the dim working. See the following thread:


#3

Yes working with dimming and the four channels are setup as individual devices with custom fade times. I will dig out the code, you will need its IP4 address.

Works with Alexa, Harmony remote, IFTTT etc.


#4

It discovers by ethernet, and when I had a v1 hub I had to use my public IP. On v2 it is the local 192.168…

Hope it works out, and do let me know any feedback, I didn’t write the handler, but did amend so any improvements can be looked at

metadata {
	definition (name: "Dynalite Dimmer PS1", namespace: "smartthings", author: "Derek Wright") {
		capability "Switch Level"
		capability "Actuator"
		capability "Switch"
		capability "Refresh"
		capability "Sensor"
	}
    
    preferences {
    
  	section("IP Address Settings") {

        input "IPAddress", "string", title:"IP Address", description: "IP Address of gateway", required: true
		input "IPPort", "string", title:"Port", description: "Port", required: true
    }   
    
    section("Dynet Settings") {

        input "DynetArea", "number", title:"Area", description: "Area of channel", required: true
		input "DynetChannel", "number", title:"Channel", description: "Channel Number", required: true
        input "DynetFade", "number", title:"Fade Time", description: "Fade time ms", required: true
    }   
    
    }


	simulator {
		// status messages
	}

	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:"#79b821"
				attributeState "off", label:'${name}', action:"switch.on", icon:"st.lights.philips.hue-single", backgroundColor:"#ffffff"
			}
			tileAttribute ("device.level", key: "SLIDER_CONTROL") {
				attributeState "level", action:"switch level.setLevel"
			}

		}
		
		standardTile("refresh", "device.power", inactiveLabel: false, decoration: "flat", width: 2, height: 2) {
			state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"
		}
		
		main "switch"
		details(["switch","refresh"])
	}
}

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

}

def parseDescriptionAsMap(description) {
	(description - "read attr - ").split(",").inject([:]) { map, param ->
		def nameAndValue = param.split(":")
		map += [(nameAndValue[0].trim()):nameAndValue[1].trim()]
	}
}

// Commands to device
def on() {
	sendEvent(name: "switch", value: "on")
	sendpreset(3,1);

}

def off() {
	sendEvent(name: "switch", value: "off")
	sendpreset(3,4);

}


private getIPAddress() {
	settings.IPAddress
}

def setLevel(value) {
	log.trace "setLevel($value)"
    
    //this updates the level of the icon
	sendEvent(name: "level", value: value)
    
    if(value > 0){
 	sendEvent(name: "switch", value: "on")   
    }else{
  	sendEvent(name: "switch", value: "off")  
    }
    
    sendchannellevel(3, 1, value);

}


def sendpreset(area, preset){
 
 		def ipaddress = settings.IPAddress + ":" + settings.IPPort;
    	def path = "/SetDyNet.cgi?a=" + settings.DynetArea + "&c=255&p=" + preset + "&f=" + settings.DynetFade
		def hubAction = new physicalgraph.device.HubAction(
		method: "GET",
		path: path,
		headers: [HOST:ipaddress],
	)


}

def sendchannellevel(area, channel, level){

 	def ipaddress = settings.IPAddress + ":" + settings.IPPort;
    def path = "/SetDyNet.cgi?a=" + settings.DynetArea + "&c=" + settings.DynetChannel + "&l=" + level + "&f=" + settings.DynetFade
	def hubAction = new physicalgraph.device.HubAction(
		method: "GET",
		path: path,
		headers: [HOST:ipaddress],
	)


}

def getchannellevel(area, channel, level){

  	def ipaddress = settings.IPAddress + ":" + settings.IPPort;
    def path = "/GetDyNet.cgi?a=" + settings.DynetArea + "&c=" + settings.DynetChannel + "&f=" + settings.DynetFade
	def hubAction = new physicalgraph.device.HubAction(
		method: "GET",
		path: path,
		headers: [HOST:ipaddress],
	)


}

def refresh() {

}

(Cyprian) #5

Thanks for your reply!

I am really new to this :smile:

So i will not need to buy anything else to connect both right?
I am purchasing the v2…

So where do i put that code pls?

Can you guide me through?

Thanks!!


#6

Read this as a first step. It covers the concepts and the basic process. :sunglasses::bulb:


#7

As long as you have an Envision Gateway connected to the same router as the Smartthings hub you should be good


(Cyprian) #8

Thanks mate will read and try it out

You’re great


(Cyprian) #9

hey mate just one question pls

will I be able to control all the lights and curtains with the smartthings app of my dynalite setup?

I will see all the setting as I see on my dynalite app pls?

thanks


#10

Control lights yes
Control curtains I think so, they are just channels

Dim (+curtain %?) levels can be done in the ST app (or even for further Alexa or Harmony in my case)

Right now this does not report/update the level in the ST app if you have used a different UI/Wall switch

Sorry no longer seem to get notifications from the forum of posts.

Give it a try!


#11

How are you getting on with it?


(Cyprian) #12

hey mate…

no still no luck…

I went to add new smart app from code

entered the code you gave me but then this came up:

No signature of method: script14782443150531819790970.metadata() is applicable for argument types: (script14782443150531819790970$_run_closure1) values: [script14782443150531819790970$_run_closure1@29657379] Possible solutions: getMetadata(), getState(), setState(java.lang.Object), metaClass(groovy.lang.Closure)

I did add a device handler with that code… but cant do a smartapp

I have a v2 US version

thanks


(Cyprian) #13

hello,

Ok I managed to add it as a DTH…

I opened it on my mobile app… but can only see one dyanlite thing… it says ON and OFF but nothing happens…

in my house I have several lights and dimmers etc… in many areas… but here in only have one dynalite showing up…

ON or Off only

pls help :slight_smile:
thannks


#14

So there is no specific smart app. The code is for the device type. Then you need to select that device type to setup each dynalite channel as a Dynalite dimmer device. Then in the ST app you need to set the IP address, port (80), channel, area number and a custom fade time in the settings of that device


(Cyprian) #15

hey mate

I have made all the steps…

but on the website… dynalite is still showing as inactive…

i have entered ip address

port: 50000 (which the dynalite guy told me)

area 1
channel: 1
fade time: 1

am i doing something wrong pls?

thanks for your help


#16

Not easy to diagnose but a few things:

  1. Don’t worry about it saying inactive - mine also says inactive. The device handler hasn’t been written to poll to check status of the dynalite channel
  2. Can you open the web interface of the Envision Gateway via the IP address?
  3. It shouldn’t make a difference but bring the fade time up to say 500, there might be a minimum level (although i think it defaults to that if the value is too low)
  4. For testing use the ST app
  5. For my US smartthings gen 1 hub I had to use the public IP address to get connectivity, it may be worth trying temporarily to rule this out, you would need to port forward from the router. I do not recommend this as a long term option though from a security perspective

(Cyprian) #17
  1. -ok thanks

  2. i do not know how to open envision gateway… maybe i am missing this step?

  3. i will try

  4. I am using the St App for testing… changing channels etc

  5. i have a gen 2 us version hub…

would be cool to explain step 2 mate

thanks
]


#18
  1. Type your Envision Gateway IP address in a browser
  2. I am using UK version

That’s 2&5, strange it defaults to 1&2


(Cyprian) #19

can it be that i am in europe and using a us version a problem maybe?

thanks


#20

That was what point 5 was to investigate, I suspect not but do not know