Comments (6)
from smartthings-ps.
Thanks!
Here are my complete edits to add the getSpecText on the configButtonsPage while minimizing maintenance requirements for getSpecText by adding an optional parameter.
I've added WS200+, WD200+, and Zen27 to the list of devices.
section("Step 2: Configure Buttons for Selected Device") {
if (state.buttonCount < 1) {
paragraph "The selected button device did not report the number of buttons it has. Please specify in the Advanced Config section below."
} else {
for (i in 1..state.buttonCount) {
href "configButtonsPage", title: "Button ${i}"**+"\n${getSpecText(i)}"**, state: getDescription(i) != "Tap to configure" ? "complete" : null, description: getDescription(i), params: [pbutton: i]
def getSpecText(currentButton) {
currentButton=(currentButton==null ? state.currentButton : currentButton)
if (state.buttonType == "Lutron Pico") {
switch (currentButton) {
case 1: return "Top Button"; break
case 2: return "Bottom Button"; break
case 3: return "Middle Button"; break
case 4: return "Up Button"; break
case 5: return "Down Button"; break
}
}
if (state.buttonType == "Hue Dimmer") {
switch (currentButton) {
case 1: return "On Button"; break
case 2: return "Up Button"; break
case 3: return "Down Button"; break
case 4: return "Off Button"; break
}
}
if (state.buttonType == "Cube Controller") {
switch (currentButton) {
case 1: return "Shake Cube"; break
case 2: return "Flip Cube 90 Degrees"; break
case 3: return "Flip Cube 180 Degrees"; break
case 4: return "Slide Cube"; break
case 5: return "Knock Cube"; break
case 6: return "Rotate Cube Right"; break
case 7: return "Rotate Cube Left"; break
}
}
if (state.buttonType == "Aeon Minimote") {
switch (currentButton) {
case 1: return "Top Left Button"; break
case 2: return "Top Right Button"; break
case 3: return "Lower Left Button"; break
case 4: return "Lower Right"; break
}
}
if (state.buttonType.contains("WD100+ Dimmer")) {
switch (currentButton) {
case 1: return "Double-Tap Upper Paddle"; break
case 2: return "Double-Tap Lower Paddle"; break
case 3: return "Triple-Tap Upper Paddle"; break
case 4: return "Triple-Tap Lower Paddle"; break
case 5: return "Press & Hold Upper Paddle\n(See user guide for quirks)"; break
case 6: return "Press & Hold Lower Paddle\n(See user guide for quirks)"; break
case 7: return "Single Tap Upper Paddle\n(See user guide for quirks)"; break
case 8: return "Single Tap Lower Paddle\n(See user guide for quirks)"; break
}
}
if (state.buttonType.contains("WS100+ Switch")) {
switch (currentButton) {
case 1: return "Double-Tap Upper Paddle"; break
case 2: return "Double-Tap Lower Paddle"; break
case 3: return "Triple-Tap Upper Paddle"; break
case 4: return "Triple-Tap Lower Paddle"; break
case 5: return "Press & Hold Upper Paddle"; break
case 6: return "Press & Hold Lower Paddle"; break
case 7: return "Single Tap Upper Paddle"; break
case 8: return "Single Tap Lower Paddle"; break
}
}
if (state.buttonType.contains("WD200+ Dimmer")) {
switch (currentButton) {
case 1: return "Double-Tap Upper Paddle"; break
case 2: return "Double-Tap Lower Paddle"; break
case 3: return "Triple-Tap Upper Paddle"; break
case 4: return "Triple-Tap Lower Paddle"; break
case 5: return "Press & Hold Upper Paddle\n(See user guide for quirks)"; break
case 6: return "Press & Hold Lower Paddle\n(See user guide for quirks)"; break
case 7: return "Single Tap Upper Paddle\n(See user guide for quirks)"; break
case 8: return "Single Tap Lower Paddle\n(See user guide for quirks)"; break
case 9: return "4X-Tap Upper Paddle"; break
case 10: return "4X-Tap Lower Paddle"; break
case 11: return "5X-Tap Upper Paddle"; break
case 12: return "5X-Tap Lower Paddle"; break
}
}
if (state.buttonType.contains("WS200+ Switch")) {
switch (currentButton) {
case 1: return "Double-Tap Upper Paddle"; break
case 2: return "Double-Tap Lower Paddle"; break
case 3: return "Triple-Tap Upper Paddle"; break
case 4: return "Triple-Tap Lower Paddle"; break
case 5: return "Press & Hold Upper Paddle\n(See user guide for quirks)"; break
case 6: return "Press & Hold Lower Paddle\n(See user guide for quirks)"; break
case 7: return "Single Tap Upper Paddle\n(See user guide for quirks)"; break
case 8: return "Single Tap Lower Paddle\n(See user guide for quirks)"; break
case 9: return "4X-Tap Upper Paddle"; break
case 10: return "4X-Tap Lower Paddle"; break
case 11: return "5X-Tap Upper Paddle"; break
case 12: return "5X-Tap Lower Paddle"; break
}
}
if (state.buttonType.contains("Inovelli")) {
switch (currentButton) {
case 1: return "NOT OPERATIONAL - DO NOT USE"; break
case 2: return "2X Tap Upper Paddle = Pushed\n2X Tap Lower Paddle = Held"; break
case 3: return "3X Tap Upper Paddle = Pushed\n3X Tap Lower Paddle = Held"; break
case 4: return "4X Tap Upper Paddle = Pushed\n4X Tap Lower Paddle = Held"; break
case 5: return "5X Tap Upper Paddle = Pushed\n5X Tap Lower Paddle = Held"; break
case 6: return "Hold Upper Paddle = Pushed\nHold Lower Paddle = Held"; break
case 7: if (state.buttonType.contains("Red")) { return "1x Tap Config Button"; break; }
}
}
if (state.buttonType.contains("Zen27")) {
switch (currentButton) {
case 1: return "1 x up"; break
case 2: return "1 x down"; break
case 3: return "2 x up"; break
case 4: return "2 x down"; break
case 5: return "3 x up"; break
case 6: return "3 x down"; break
case 7: return "4 x up"; break
case 8: return "4 x down"; break
case 9: return "5 x up"; break
case 10: return "5 x down"; break
}
}
if (state.buttonType.contains("ZRC-90")) {
switch (currentButton) {
case 1: return "Tap or Hold Button 1"; break
case 2: return "Tap or Hold Button 2"; break
case 3: return "Tap or Hold Button 3"; break
case 4: return "Tap or Hold Button 4"; break
case 5: return "Tap or Hold Button 5"; break
case 6: return "Tap or Hold Button 6"; break
case 7: return "Tap or Hold Button 7"; break
case 8: return "Tap or Hold Button 8"; break
case 9: return "2X Tap Button 1\nHold Not Available"; break
case 10: return "2X Tap Button 2\nHold Not Available"; break
case 11: return "2X Tap Button 3\nHold Not Available"; break
case 12: return "2X Tap Button 4\nHold Not Available"; break
case 13: return "2X Tap Button 5\nHold Not Available"; break
case 14: return "2X Tap Button 6\nHold Not Available"; break
case 15: return "2X Tap Button 7\nHold Not Available"; break
case 16: return "2X Tap Button 8\nHold Not Available"; break
}
}
return "Not Specified By Device"
}
from smartthings-ps.
from smartthings-ps.
These are now incorporated in next release
from smartthings-ps.
Thanks for adding the new devices.
I didn't see the additional information on the Step 2: Configure Buttons for Selected Devices, so I had to re-add code to def chooseButton() on my local version after pulling your latest release.
for (i in 1..state.buttonCount) {
href "configButtonsPage", title: "Button ${i}" + "\n" + "${getSpecText(i)}", state: getDescription(i) != "Tap to configure" ? "complete" : null, description: getDescription(i), params: [pbutton: i]
You mentioned maybe adding this to an options page so it could be toggled per user, though I'm not sure how to find an options page.
from smartthings-ps.
from smartthings-ps.
Related Issues (13)
- Suggestion: Do not center justify in child creator HOT 4
- Adding support for WD200+ HOT 5
- Use Ikea 5 button remote to change Nanoleaf scenes HOT 6
- I get an error when I want to add it to SmartApps HOT 3
- Routines to scenes migration breaks routines HOT 1
- No instructions HOT 1
- Error when trying to use ABC smart app HOT 1
- REMOTEC ZRC-90 does not show Double Click HOT 17
- Increase dimming in increments HOT 5
- Aqara Magic Cube config error HOT 2
- Hue Dimmer HOT 4
- Devolo Switch
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smartthings-ps.