Renaming app.
authorrtrimana <rtrimana@uci.edu>
Tue, 6 Aug 2019 00:03:16 +0000 (17:03 -0700)
committerrtrimana <rtrimana@uci.edu>
Tue, 6 Aug 2019 00:03:16 +0000 (17:03 -0700)
third-party/Hue Party Mode.groovy [deleted file]
third-party/Hue-Party-Mode.groovy [new file with mode: 0755]

diff --git a/third-party/Hue Party Mode.groovy b/third-party/Hue Party Mode.groovy
deleted file mode 100755 (executable)
index 0bcda03..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*************************************************************************************
-*  Hue Party Mode
-*
-*  Author: Mitch Pond
-*  Date: 2015-05-29
-
-Copyright (c) 2015, Mitch Pond
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this
-list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright notice,
-this list of conditions and the following disclaimer in the documentation
-and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-*************************************************************************************/
-
-definition(
-    name: "Hue Party Mode",
-    namespace: "mitchpond",
-    author: "Mitch Pond",
-    description: "Change the color of your lights randomly at an interval of your choosing.",
-    category: "Fun & Social",
-    iconUrl: "https://s3.amazonaws.com/smartapp-icons/FunAndSocial/App-ItsPartyTime.png",
-    iconX2Url: "https://s3.amazonaws.com/smartapp-icons/FunAndSocial/App-ItsPartyTime@2x.png",
-)
-
-preferences {
-    section("Choose lights..."){
-        input "lights", "capability.colorControl", title: "Pick your lights", required: false, multiple: true
-    }
-    section("Adjust color change speed and timeout"){
-        input "interval", "number", title: "Color change interval (seconds)",   required: false, defaultValue: 10
-        input "timeout",  "number", title: "How long to run (minutes)", required: false, defaultValue: 60
-    }
-}
-
-def installed() {
-    settings.interval = 10    //default value: 10 seconds
-    settings.timeout  = 60    //default value: 60 minutes
-    state.running     = false
-    log.debug("Installed with settings: ${settings}")
-    updated()
-}
-
-def updated() {
-    log.debug("Updated with settings: ${settings}")
-    unsubscribe()
-    subscribe(app, onAppTouch)
-    for (light in lights) {
-       subscribe(light, "off", onLightOff)
-    }
-    
-    
-}
-
-def onLightOff(evt) {
-    //if one of the lights in our device list is turned off, and we are running, unschedule any pending color changes
-    if (state.running) {
-        log.info("${app.name}: One of our lights was turned off.")
-        stop()
-    }
-}
-
-def onAppTouch(evt) {
-    //if currently running, unschedule any scheduled function calls
-    //if not running, start our scheduling loop
-
-    if (state.running) {
-        log.debug("${app.name} is running.")
-        stop()
-    }
-    else if (!state.running) {
-        log.debug("${app.name} is not running.")
-        start()
-    }
-
-}
-
-def changeColor() {
-    if (!state.running) return  //just return without doing anything in case unschedule() doesn't finish before next function call
-
-    //calculate a random color, send the setColor command, then schedule our next execution
-    log.info("${app.name}: Running scheduled color change")
-    def nextHue = new Random().nextInt(101)
-    def nextSat = new Random().nextInt(51)+50
-    //def nextColor = Integer.toHexString(new Random().nextInt(0x1000000))
-    log.debug nextColor
-    lights*.setColor(hue: nextHue, saturation: nextSat)
-    runIn(settings.interval, changeColor)
-}
-
-def start() {
-    log.debug("${app.name}: Beginning execution...")
-    state.running = true
-    lights*.on()
-    changeColor()
-    runIn(settings.timeout*60, stop)
-}
-
-def stop() {
-    log.debug("${app.name}: Stopping execution...")
-    unschedule()
-    state.running = false
-}
diff --git a/third-party/Hue-Party-Mode.groovy b/third-party/Hue-Party-Mode.groovy
new file mode 100755 (executable)
index 0000000..0bcda03
--- /dev/null
@@ -0,0 +1,119 @@
+/*************************************************************************************
+*  Hue Party Mode
+*
+*  Author: Mitch Pond
+*  Date: 2015-05-29
+
+Copyright (c) 2015, Mitch Pond
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+*************************************************************************************/
+
+definition(
+    name: "Hue Party Mode",
+    namespace: "mitchpond",
+    author: "Mitch Pond",
+    description: "Change the color of your lights randomly at an interval of your choosing.",
+    category: "Fun & Social",
+    iconUrl: "https://s3.amazonaws.com/smartapp-icons/FunAndSocial/App-ItsPartyTime.png",
+    iconX2Url: "https://s3.amazonaws.com/smartapp-icons/FunAndSocial/App-ItsPartyTime@2x.png",
+)
+
+preferences {
+    section("Choose lights..."){
+        input "lights", "capability.colorControl", title: "Pick your lights", required: false, multiple: true
+    }
+    section("Adjust color change speed and timeout"){
+        input "interval", "number", title: "Color change interval (seconds)",   required: false, defaultValue: 10
+        input "timeout",  "number", title: "How long to run (minutes)", required: false, defaultValue: 60
+    }
+}
+
+def installed() {
+    settings.interval = 10    //default value: 10 seconds
+    settings.timeout  = 60    //default value: 60 minutes
+    state.running     = false
+    log.debug("Installed with settings: ${settings}")
+    updated()
+}
+
+def updated() {
+    log.debug("Updated with settings: ${settings}")
+    unsubscribe()
+    subscribe(app, onAppTouch)
+    for (light in lights) {
+       subscribe(light, "off", onLightOff)
+    }
+    
+    
+}
+
+def onLightOff(evt) {
+    //if one of the lights in our device list is turned off, and we are running, unschedule any pending color changes
+    if (state.running) {
+        log.info("${app.name}: One of our lights was turned off.")
+        stop()
+    }
+}
+
+def onAppTouch(evt) {
+    //if currently running, unschedule any scheduled function calls
+    //if not running, start our scheduling loop
+
+    if (state.running) {
+        log.debug("${app.name} is running.")
+        stop()
+    }
+    else if (!state.running) {
+        log.debug("${app.name} is not running.")
+        start()
+    }
+
+}
+
+def changeColor() {
+    if (!state.running) return  //just return without doing anything in case unschedule() doesn't finish before next function call
+
+    //calculate a random color, send the setColor command, then schedule our next execution
+    log.info("${app.name}: Running scheduled color change")
+    def nextHue = new Random().nextInt(101)
+    def nextSat = new Random().nextInt(51)+50
+    //def nextColor = Integer.toHexString(new Random().nextInt(0x1000000))
+    log.debug nextColor
+    lights*.setColor(hue: nextHue, saturation: nextSat)
+    runIn(settings.interval, changeColor)
+}
+
+def start() {
+    log.debug("${app.name}: Beginning execution...")
+    state.running = true
+    lights*.on()
+    changeColor()
+    runIn(settings.timeout*60, stop)
+}
+
+def stop() {
+    log.debug("${app.name}: Stopping execution...")
+    unschedule()
+    state.running = false
+}