What's the First Thing You Will Setup in Core?

I’d be interested in hearing about these. And maybe seeing the driver you already have for it. I know someone that might be able to help you.
:wink:

I had these and i know they pair to CORE, but I never used them for Z-Wave. I think that there are different models of these and they caused trouble when I had HE. I sold them to another user. I’d be curious if they pair and operate well on CORE. If you could keep us informed.

Yeah I will keep you guys informed…I wonder who that other user was :stuck_out_tongue_winking_eye:

1 Like

The drivers are pretty basic I believe. The major work is done on the RPi I assume.
Here is the link to the thread on ST that gives all the info on how to integrate it into an RPi.

Here is the dimmer driver.

/**
 *  Lightwave Lights
 *
 *  Copyright 2015 Adam Clark
 *  For any information or help please contact [email protected] 
 *
 *  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.
 *
 */
 
import java.security.MessageDigest
 
preferences {
    input("serverIP", "text", title: "Server IP Address", description: "IP Address of the Server")
    input("lightwaveIP", "text", title: "Lightwave IP Address", description: "IP Address of the Lightwave Hub")
	input("roomID", "text", title: "Room ID", description: "The room id")
    input("deviceID", "text", title: "Device ID", description: "The device id")
}
 
metadata {
	definition (name: "Lightwave Dimmer Switch", namespace: "hubitat-users", author: "Adam Clark") {
		capability "Switch"
        capability "Switch Level"
        capability "Refresh"
        command "register"
	}

	simulator {}
       
    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.switches.switch.on", backgroundColor:"#79b821", nextState:"off"
				attributeState "off", label:'${name}', action:"switch.on", icon:"st.switches.switch.off", backgroundColor:"#ffffff", nextState:"On"
			}
			tileAttribute ("device.level", key: "SLIDER_CONTROL") {
				attributeState "level", action:"switch level.setLevel", range:"(5..100)"
			}
		}

        standardTile("register", "device.status", inactiveLabel:false, decoration:"flat",height: 2, width: 2) {
            state "default", label:"Register", icon:"http://www.mocet.com/pic/link-icon.png", action:"register"
        }

		main "switch"
		details(["switch", "level","register"])
	}

}

// parse events into attributes
def parse(String description) {
//	log.debug "Parsing '${description}'"
	// TODO: handle 'switch' attribute

}

// handle commands
def on() {
	log.info "Dimmer Turned On"
    sendEvent(name: "switch", value: 'on')
	apiGet('/on', 0,)
}

def off() {
	log.info "Dimmer Turned Off"
    sendEvent(name: "switch", value: 'off')
	apiGet('/off', 0)    
}

def setLevel(value) {
	if (value == 0) {
		sendEvent(name: "switch", value: 'off')
		sendEvent(name: "level", value: '0')
		apiGet('/off', 0)
	} else {
		sendEvent(name: "switch", value: 'on')
		sendEvent(name: "level", value: value)
		apiGet('/on', value)
    	}
}

def register() {
	apiGet('/register', 0)
}

private apiGet(path, level) {

//	log.debug settings.serverIP + ':8000'

    def httpRequest = [
        method:     'GET',
        path:       path,
        headers:    [
            HOST:       settings.serverIP + ':8000',
            Accept:     "*/*"
        ],
        query: [
        	ip: settings.lightwaveIP,
        	room: settings.roomID, 
            device: settings.deviceID,
            level: level
        ]
    ]

	log.debug httpRequest.query

    return new hubitat.device.HubAction(httpRequest)
}

To be honest I have only kept these as my wife likes the look of them and we are very limited in the UK with decent looking smart switches/dimmers.
I started with these years ago and I’m afraid until something decent comes out, I HAVE to keep them. :wink:
There is now a Gen 2 series which I believe cannot be integrated using this method.

Here’s a picture of a dimmer. They do them in various finishes.

Summary

image

I’m sure they will work just fine with CORE as said above the driver just sends info to an IP address and port and the RPi relays this somehow :person_shrugging: to the LW hub.

These LightwaveRF things do look esthetically very nice. The RF protocol is apparently also well known, so a fully local integration could be done, found this code for Arduino:
roberttidey/LightwaveRF: Arduino Libraries for LightwaveRF 433MHz rx and tx (github.com)

But it may very well be possible to do with a Sonoff RF Bridge running a custom firmware (fairly painful to flash if you’re not into that type of thing). The simplest way is probably just an ESP8266 with a 433MHz transmitter and that library linked to above. Plenty of info in the PDF:
LightwaveRF/LightwaveRF433.pdf at master · roberttidey/LightwaveRF (github.com)

:astonished: :astonished: :astonished: :astonished: :astonished: :astonished:

1 Like