Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

metadata {
definition (name: "Fully Kiosk Browser Controller", namespace: "GvnCampbell", author: "Gavin Campbell", importUrl: "https://github.com/GvnCampbell/Hubitat/blob/master/Drivers/FullyKioskBrowserController.groovy") {
capability "Switch Level"
capability "Tone"
if (isSmartThings())
{
Expand Down Expand Up @@ -126,13 +127,20 @@ metadata {
{
state "default", label:'Volume down 10%', action:"volumeDown"
}
controlTile("levelSliderControl", "device.level", "slider", height: 4, width: 2, inactiveLabel: false, decoration: "flat")
{
state "level", label:"Screen Brightness", action:"switch level.setLevel"
}

standardTile("refresh", "device.speech", inactiveLabel: false, decoration: "flat")
{
state "default", label:'Screen Refresh', action:"refresh"
}
}
}
}
}
}

// *** [ Initialization Methods ] *********************************************
def installed() {
def logprefix = "[installed] "
Expand All @@ -147,6 +155,8 @@ def updated() {
def initialize() {
def logprefix = "[initialize] "
logger logprefix

refresh()
}

// *** [ Device Methods ] *****************************************************
Expand Down Expand Up @@ -181,6 +191,14 @@ def setScreenBrightness(value) {
logger(logprefix+"value:${value}","trace")
sendCommandPost("cmd=setStringSetting&key=screenBrightness&value=${value}")
}
def setLevel(value) {
def logprefix = "[setLevel] "
logger(logprefix+"value:${value}","trace")
def newValue = Math.floor((255 / 100) * value).trunc()
logger(logprefix+"value:${newValue}","trace")
setScreenBrightness("${newValue}")
sendEvent(name: "level", value: "${value}")
}
def triggerMotion() {
def logprefix = "[triggerMotion] "
logger(logprefix,"trace")
Expand Down Expand Up @@ -311,17 +329,43 @@ def STsendCommandPost(cmdDetails="")
device.deviceNetworkId = "$hosthex:$porthex"
def headers = [:]
headers.put("HOST", "$serverIP:$serverPort")
headers.put("Content-Type", "application/json")
def method = "POST"
def hubAction = physicalgraph.device.HubAction.newInstance(
method: method,
path: "/?type=json&password=${serverPassword}&${cmdDetails}",
headers: headers
);
logger(logprefix+"hubAction: ${hubAction}","trace")
logger(logprefix+"hubAction: ${hubAction}","trace")
return hubAction
}
}

def parse(description) {
def logprefix = "[parse] "
logger(logprefix+"description: ${description}","trace")

def msg = parseLanMessage(description)

def headersAsString = msg.header // => headers as a string
def headerMap = msg.headers // => headers as a Map
def body = msg.body // => request body as a string
def status = msg.status // => http status code of the response

logger(logprefix+"headersAsString: ${headersAsString}","trace")

def json = new groovy.json.JsonSlurper().parseText(body)
def brightness = json.screenBrightness

logger(logprefix+"json: ${json}","trace")
logger(logprefix+"brightness: ${json.screenBrightness}","trace")

def brightnessPercentage = Math.floor((brightness.toInteger()/255) * 100).trunc()
logger(logprefix+"brightnessPercentage: ${brightnessPercentage}","trace")
def evt1 = createEvent(name: "level", value: "${brightnessPercentage}")
return evt1
}

private String convertIPtoHex(ipAddress) {
String hex = ipAddress.tokenize( '.' ).collect { String.format( '%02X', it.toInteger() ) }.join()
// log.debug "IP address entered is $ipAddress and the converted hex code is $hex"
Expand Down