mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-08 05:31:56 +00:00
Initial commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* ObyThing Music SmartApp
|
||||
*
|
||||
* Copyright 2014 obycode
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
definition(
|
||||
name: "ObyThing Music (Connect)",
|
||||
namespace: "com.obycode",
|
||||
author: "obycode",
|
||||
description: "Use this free SmartApp in conjunction with the ObyThing Music app for your Mac to control and automate music and more with iTunes and SmartThings.",
|
||||
category: "SmartThings Labs",
|
||||
iconUrl: "http://obycode.com/obything/ObyThingSTLogo.png",
|
||||
iconX2Url: "http://obycode.com/obything/ObyThingSTLogo@2x.png")
|
||||
|
||||
|
||||
preferences {
|
||||
section("Get the IP address and port for your Mac computer using the ObyThing App (http://obything.obycode.com) and set up the SmartApp below:") {
|
||||
input "theAddr", "string", title: "IP:port (click icon in status bar)", multiple: false, required: true
|
||||
}
|
||||
section("on this hub...") {
|
||||
input "theHub", "hub", multiple: false, required: true
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
def installed() {
|
||||
log.debug "Installed ${app.label} with address '${settings.theAddr}' on hub '${settings.theHub.name}'"
|
||||
|
||||
initialize()
|
||||
}
|
||||
|
||||
def updated() {
|
||||
/*
|
||||
log.debug "Updated ${app.label} with address '${settings.theAddr}' on hub '${settings.theHub.name}'"
|
||||
|
||||
def current = getChildDevices()
|
||||
log.debug "children: $current"
|
||||
|
||||
if (app.label != current.label) {
|
||||
log.debug "CHANGING name from ${current.label} to ${app.label}"
|
||||
log.debug "label props: ${current.label.getProperties()}"
|
||||
current.label[0] = app.label
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
def initialize() {
|
||||
def parts = theAddr.split(":")
|
||||
def iphex = convertIPtoHex(parts[0])
|
||||
def porthex = convertPortToHex(parts[1])
|
||||
def dni = "$iphex:$porthex"
|
||||
def hubNames = location.hubs*.name.findAll { it }
|
||||
def d = addChildDevice("com.obycode", "ObyThing Music", dni, theHub.id, [label:"${app.label}", name:"ObyThing"])
|
||||
log.trace "created ObyThing '${d.displayName}' with id $dni"
|
||||
}
|
||||
|
||||
private String convertIPtoHex(ipAddress) {
|
||||
String hex = ipAddress.tokenize( '.' ).collect { String.format( '%02X', it.toInteger() ) }.join()
|
||||
return hex
|
||||
|
||||
}
|
||||
|
||||
private String convertPortToHex(port) {
|
||||
String hexport = port.toString().format( '%04X', port.toInteger() )
|
||||
return hexport
|
||||
}
|
||||
Reference in New Issue
Block a user