I did some research into this (because I also have iOS, and was having the same issue), and apparently the valueTile can act differently across both iOS and Android. From what I can tell, you can’t have multiple states inside of a valueTile, at least not in iOS. See this post thread, which seems to insinuate that (specifically the question being asked, and the third post): Can a valueTile have more than one dynamic value?
So, I made a small update to the tile code for the tampering tile. I updated it to use a standardTile instead of a valueTile. This lost some of the text that could be displayed, so I updated that too so it would fit. See code below:
standardTile("tampering", "device.tamper", width: 2, height: 2) {
state "detected", label:"Tamper Yes", backgroundColor: "#ff0000"
state "clear", label:"Tamper No", backgroundColor: "#cccccc"
}
It’s not a perfect solution, and I don’t know what it would do on Android, or any other mobile OS, but it helps out in iOS. Feel free to take/use it as you please.