I've been watching enviously as some of the Dashboard masters show off their "Security Keypad" and other fancy designs, and some of them are certainly works of art! Which got me to thinking...
"Wouldn't it be nice to create a less-secure keypad for kids that uses colors and shapes instead of numbers?!" "Could I animate such a thing using only device states?"
Here is what I came up with... [SCROLL DOWN FOR ANIMATED DEMO!]
Perhaps I'll manage to include a video of Chrome Keypad in operation, but for now I tried to make up for that with this detailed description. It was a fun 3-day process that paid off even better than I initially hoped! I certainly (re)learned a lot of WebCoRE theory and best practices, having run into practically every obstacle one could encounter along the way. (Hardest skill? Declaring, populating, and manipulating String List variables!!)
Any questions? I'm just happy I could contribute this tiny bit of whimsy back to the Dashboard designer community, to whose ongoing work I routinely turn for inspiration.
Layout JSON
{
"localization": "English",
"roundedCorners": 20,
"dateFormat": "MM/DD/YYYY",
"hideLabels": true,
"customColors": [
{
"template": "fan",
"bgColor": "rgb(0,0,0)",
"iconColor": "rgb(71,71,71)",
"state": "off",
"customIcon": "he-star-full"
},
{
"template": "fan",
"bgColor": "rgb(255,255,255)",
"iconColor": "rgb(185,185,185)",
"state": "on",
"customIcon": "he-star-full"
},
{
"template": "fan",
"bgColor": "rgb(0,255,0)",
"iconColor": "rgb(71,185,71)",
"state": "auto",
"customIcon": "group_work"
},
{
"template": "fan",
"bgColor": "rgb(255,0,255)",
"iconColor": "rgb(185,71,185)",
"state": "low",
"customIcon": "hourglass_empty"
},
{
"template": "fan",
"bgColor": "rgb(0,255,255)",
"iconColor": "rgb(71,185,185)",
"state": "medium-low",
"customIcon": "change_history"
},
{
"template": "fan",
"bgColor": "rgb(255,255,0)",
"iconColor": "rgb(185,185,71)",
"state": "medium",
"customIcon": "he-sun"
},
{
"template": "fan",
"bgColor": "rgb(0,0,255)",
"iconColor": "rgb(71,71,185)",
"state": "medium-high",
"customIcon": "all_inclusive"
},
{
"template": "fan",
"bgColor": "rgb(255,0,0)",
"iconColor": "rgb(185,71,71)",
"state": "high",
"customIcon": "he-checkbox-unchecked"
},
{
"template": "buttons",
"bgColor": "rgba(0,0,0,0)",
"iconColor": "rgba(0,0,0,0)",
"state": "default"
},
{
"template": "lock",
"bgColor": "rgb(64,64,64)",
"iconColor": "",
"customIcon": "",
"state": "locked"
},
{
"template": "lock",
"bgColor": "rgb(192,192,192)",
"iconColor": "",
"customIcon": "",
"state": "unlocked"
},
{
"template": "variable-string",
"bgColor": "rgb(164,164,164)",
"iconColor": "",
"customIcon": "",
"state": "default"
},
{
"template": "texttile",
"bgColor": "rgb(64,64,64)",
"iconColor": "",
"customIcon": "",
"state": "default"
}
],
"colWidth": 160,
"cloudRefresh": 5,
"hsmPin": "",
"hide3dot": false,
"gridGap": 5,
"clockMode": true,
"tiles": [
{
"rowSpan": 1,
"template": "fan",
"col": 1,
"colSpan": 1,
"id": 1,
"row": 1,
"device": "513"
},
{
"rowSpan": 1,
"template": "fan",
"col": 2,
"colSpan": 1,
"id": 2,
"row": 1,
"device": "512"
},
{
"rowSpan": 1,
"template": "fan",
"col": 3,
"colSpan": 1,
"id": 3,
"row": 1,
"device": "514"
},
{
"rowSpan": 1,
"template": "fan",
"col": 1,
"colSpan": 1,
"id": 4,
"row": 2,
"device": "517"
},
{
"rowSpan": 1,
"template": "fan",
"col": 2,
"colSpan": 1,
"id": 5,
"row": 2,
"device": "518"
},
{
"rowSpan": 1,
"template": "fan",
"col": 3,
"colSpan": 1,
"id": 6,
"row": 2,
"device": "519"
},
{
"rowSpan": 1,
"template": "fan",
"col": 2,
"colSpan": 1,
"id": 7,
"row": 3,
"device": "520",
"templateExtra": null
},
{
"rowSpan": 1,
"template": "buttons",
"col": 1,
"buttonCommand": "push",
"colSpan": 1,
"id": 8,
"row": 1,
"device": "515",
"templateExtra": "1"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 2,
"buttonCommand": "push",
"colSpan": 1,
"id": 9,
"row": 1,
"device": "515",
"templateExtra": "2"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 3,
"buttonCommand": "push",
"colSpan": 1,
"id": 10,
"row": 1,
"device": "515",
"templateExtra": "3"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 1,
"buttonCommand": "push",
"colSpan": 1,
"id": 11,
"row": 2,
"device": "515",
"templateExtra": "4"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 2,
"buttonCommand": "push",
"colSpan": 1,
"id": 12,
"row": 2,
"device": "515",
"templateExtra": "5"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 3,
"buttonCommand": "push",
"colSpan": 1,
"id": 13,
"row": 2,
"device": "515",
"templateExtra": "6"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 2,
"colSpan": 1,
"id": 14,
"row": 3,
"device": "515",
"templateExtra": "7",
"buttonCommand": "push"
},
{
"rowSpan": 1,
"template": "lock",
"col": 1,
"colSpan": 1,
"id": 15,
"row": 3,
"device": "516"
},
{
"rowSpan": 1,
"template": "texttile",
"col": 3,
"z-index": -1,
"colSpan": 1,
"id": 16,
"row": 3,
"templateExtra": "RESET"
},
{
"rowSpan": 1,
"template": "buttons",
"col": 3,
"z-index": 1,
"buttonCommand": "push",
"colSpan": 1,
"id": 17,
"row": 3,
"device": "515",
"templateExtra": "9"
}
],
"goBack": true,
"modePin": "",
"bgColor": "saddlebrown",
"lanRefresh": 2,
"iconSize": "60",
"cols": 3,
"rowHeight": 160,
"customCSS": ".fan .tile-title {\n visibility: hidden;\n}\n.lock .tile-title {\n visibility: hidden;\n}\n",
"hideEvents": false,
"tempScale": "F",
"noColors": false,
"readOnly": null,
"rows": 4,
"hideIconText": true,
"hideTextShadow": true,
"name": "Chroma Keypad",
"fontSize": 20
}