I am trying to repair the Roomba integration (https://community.smartthings.com/t/latest-2019-irobot-roomba-integration-methods/169733), and am 90% of the way there but I’m caught by a strange UI issue.
Here is the target UI design (from the original post):
Here is what it looks like in the Simulator, which is close enough:
And this is what it looks like in the ST App:
The tiles we want to see are missing, and the tiles that should be hidden are visible. Here is the tile generation code:
tiles (scale: 2){
/Status tile based on intended action/
multiAttributeTile(name:"status", type: "generic", width: 6, height: 4){
tileAttribute ("device.status", key: "PRIMARY_CONTROL") {
attributeState ("Ready", label: "Ready", icon:"st.samsung.da.RC_ic_rc", backgroundColor:"#8CFC03")
attributeState ("Running", label: "In-Process", icon:"st.Health & Wellness.health7", backgroundColor:"#078bf7")
attributeState ("Paused", label: "Paused", icon:"st.sonos.pause-icon", backgroundColor:"#FC030F")
attributeState ("Docking", label: "Docking", icon:"st.presence.house.unlocked", backgroundColor:"#5F07F7")
attributeState ("Docked", label: "Docked", icon:"st.presence.house.secured", backgroundColor:"#5F07F7")
attributeState ("Stopped", label: "Stopped", icon:"st.sonos.stop-btn", backgroundColor:"#FC030F")
attributeState ("Ended", label: "Complete", icon:"st.samsung.da.RC_ic_rc", backgroundColor:"#8CFC03")
attributeState ("Error", label: "Error", icon:"st.Office.office6", backgroundColor:"#FC030F")
}
tileAttribute("device.motion", key: "SECONDARY_CONTROL") {
attributeState ("active", label: "Cleaning")
attributeState ("inactive", label: "Docked")
}
}
/Start/
standardTile("start", "device.button", width: 3, height: 2, decoration: "flat") {
state "default", label: "Start", icon:"st.samsung.da.RC_ic_rc", backgroundColor: "#ffffff", action: "start"
}
/Pause/
standardTile("pause", "device.button", width: 3, height: 2, decoration: "flat") {
state "default", label: "", icon:"st.sonos.pause-btn", backgroundColor: "#ffffff", action: "pause"
}
/Dock/
standardTile("dock", "device.button", width: 3, height: 2, decoration: "flat") {
state "default", label: "Dock", icon:"st.nest.nest-home", backgroundColor: "#ffffff", action: "dock"
}
/Stop/
standardTile("stop", "device.button", width: 3, height: 2, decoration: "flat") {
state "default", label: "", icon:"st.sonos.stop-btn", backgroundColor: "#ffffff", action: "stop"
}
/Reset/
standardTile("reset", "device.button", width: 6, height: 2, decoration: "flat") {
state "default", label: "Reset", icon:"st.secondary.refresh-icon", backgroundColor: "#ffffff", action: "reset"
}
/Switch for IFTT feedback of Started - Hidden by default/
standardTile("switch", "device.switch", inactiveLabel: false, width: 6, height: 2, decoration: "flat"){
state("off", label: "Ready", action: "switch.on", backgroundColor: "#ffffff", nextState: "on", defaultState: "true")
state("on", label: "Cleaning", action: "switch.off", backgroundColor: "#00a0dc", nextState: "off")
}
/Alarm for IFTT feedback of Error - Hidden by default/
standardTile("alarm", "device.alarm", inactiveLabel: false, width: 6, height: 2, decoration: "flat") {
state("off", label:"Ready / Pending", action:"alarm.strobe", icon:"st.alarm.alarm.alarm", backgroundColor:"#ffffff", nextState: "strobe", defaultState: "true")
state("strobe", label:"Error", action:"alarm.off", icon:"st.alarm.alarm.alarm", backgroundColor:"#e86d13", nextState: "off")
}
/Lock for IFTT feedback of mission complete - Hidden by default/
standardTile("lock", "device.lock", inactiveLabel: false, width: 6, height: 2, decoration: "flat"){
state("unlocked", label: "Ready / Pending", action: "lock.lock", backgroundColor: "#ffffff", nextState: "locked", defaultState: "true")
state("locked", label: "Mission Complete", action: "lock.unlock", backgroundColor: "#00a0dc", nextState: "unlocked")
}
main "status"
details(["status","start","pause","dock","stop","reset"])
}
}
I’ve not created too many device handlers, so it’s probably a pretty basic issue, but so far the answer has eluded me in the forums & help documentation. This is the last piece of the puzzle - any help is welcome!