I don’t recommend this method, as it is apparently only working due to a glitch in SmartThings, that they could fix at anytime.
Then again, SmartThings has a lot of glitches, so unexpected changes (for better or worse) are to be expected.
I don’t recommend this method, as it is apparently only working due to a glitch in SmartThings, that they could fix at anytime.
Then again, SmartThings has a lot of glitches, so unexpected changes (for better or worse) are to be expected.
I’ve noticed an interesting behavior in the event history tool. In my general dashboard (shows the information I care little about day-to-day such as current state of my windows and doors, battery levels, presence), I only see historical activity from my motion sensors and weather tile, not the contact sensors.
The contact sensors do show up in the SmartThings app histories for each device, so I’m not too sure where the disconnect might be…
Someone made an observation that the Event was showing up under State, but not Attribute, or something like that … I did a quick search through my history and unfortunately can’t find the reference.
I bet comparing the Device Type Handlers from correctly functioning brand vs the incorrect would show some relatively obvious difference in the code. Something that changes the behavior subtly is often visible in a different code design (e.g., a call to sendEvent with “displayed: false” instead of “true”, might not impact 80% of use cases, but the difference in code is easy to see and thus be suspect as the cause for the malfunctioning 20%.
I’m swamped with SmartTiles V6 at the moment, otherwise I’d enjoy the challenge … provided the source code from relevant DTHs are public.
You’re not the first to observe this; just one reference I was able to find…
You might want to try using uDTH:
Or zone Motion manager:
I have an arduino with two door/contact sensors but in smartTiles setup, only the device name shows up, not the two contact sensors. Each door has a separate tile and event, the SmartThings app shows it correctly.
definition (name: "Arduino Garage", ...
standardTile("door1", "device.door1", width: 2, height: 2) {...
standardTile("door2", "device.door2", width: 2, height: 2) {...
result << createEvent(name: "door1", value: value)
result << createEvent(name: "door2", value: value)
Is there a way to make SmartTiles see the two individual sensors instead of just the overall device as a contact sensor?
Thanks!
I’m not a developer but I think you need to make a Smartapp manager that spawns virtual devices.
Or maybe you could do something like button controllers do.
This is what the event history looks like on IDE. There is no “contact” change for when doors open or close. I’m guessing that’s why the open/close event don’t show up in the smart tiles event history.
Just looked up the source code. WTF is “status” anyway?
Looks like the Attribute contact
is being set, but with displayed: false
; but right next to the redundant (?) status
Attribute…
Compare this to the correctly functioning generic Z-Wave contact sensor:
Anyhow… feel free to raise this up to Support and/or Dev Support.
Something like the Universal Device Translator might work … if it supported Custom / Ad hoc Attributes (I haven’t tried it myself or followed all the features or checked if any other SmartApp performs this function).
The old Rule Machine had an advanced function for handling Custom Attributes. Currently this is too rare of a case to make it a feature priority for SmartTiles (even V6).
In the meantime, spawning or manually creating 2 custom Virtual Devices (with standard Capabilities) is the generic solution applicable to this and many other special use cases.
Does anyone have the time to see if the issue below is common across any thermostat, or is just related stat that I’m using?
Not a bug. Status mirrors “contact” unless the sensor is in garage door mode.
Status is set by contact in normal mode and set by 3-axis in garage mode.
Garage door mode is coming [back] in an upcoming hub firmware update.
Thanks for the confirmation, Tyler.
The problem is that SmartTiles (and perhaps other SmartApps?) are not able to collect the “contact” Events from this DTH using the same code we use for other DTHs.
Perhaps because it is set with “displayed: false
”?
Looks like the Attribute contact is being set, but with “
displayed: false
”;
I’ll have to take a closer look at SmartTiles’s code regarding Event History fetching and see if there’s anything unusual involved.
Here’s the code that works for a Z-Wave Contact Sensor, users are reporting doesn’t work with the Multi-Sensor:
But note!!!: My event history is working for both Z-Wave Contact Sensor and “original” SmartThings Multi-Sensor. So this may be an bug that is only affecting some users @Ren34 or there are additional DTHs involved than I know about. Ack!!!
def getEventsOfDevice(device) {
def today = new Date()
def then = timeToday(today.format("HH:mm"), TimeZone.getTimeZone('UTC')) - 1
device.eventsBetween(then, today, [max: 200])?.findAll{"$it.source" == "DEVICE"}?.collect{[description: it.description, descriptionText: it.descriptionText, displayName: it.displayName, date: it.date, name: it.name, unit: it.unit, source: it.source, value: it.value]}
}
def filterEventsPerCapability(events, deviceType) {
log_trace "start filterEventsPerCapability"
def acceptableEventsPerCapability = [
light : ["switch"],
dimmerLight : ["switch", "level"],
switch : ["switch"],
dimmer : ["switch", "level"],
momentary : ["switch"],
themeLight : ["switch"],
thermostatHeat : ["temperature", "heatingSetpoint", "thermostatFanMode", "thermostatOperatingState",],
thermostatCool : ["temperature", "coolingSetpoint", "thermostatFanMode", "thermostatOperatingState",],
lock : ["lock"],
music : ["status", "level", "trackDescription", "mute"],
camera : [],
presence : ["presence"],
contact : ["contact"],
motion : ["motion"],
temperature : ["temperature"],
humidity : ["humidity"],
water : ["water"],
battery : ["battery"],
energy : ["energy"],
power : ["power"],
acceleration : ["acceleration"],
luminosity : ["illuminance"],
weather : ["temperature", "weather"],
]
if (events) events*.deviceType = deviceType
def result = events?.findAll{it.name in acceptableEventsPerCapability[deviceType]}
log_trace "end filterEventsPerCapability"
result
}
Just a quick question, tried searching around the forums and didn’t want to create a whole new thread. @tgauchat you can probably answer in two seconds.
As of right now with the current version, is the only way to have a tile that runs a single routine is to have a virtual switch?
I tried cheating, I thought maybe I could use the chrome element inspector to see if I could find whatever code is used to initiate the routine, and then try and put that code into a custom URL tile, but I couldn’t find anything, I also didn’t look for very long hahaha
Correct. A “Virtual Contact” is the best way at the moment!
(And adding to this existing Topic is generally preferred, actually, because we are politely trying not to fill the SmartThings Community Forum with SmartTiles Topics). Next version of SmartTiles will have its own Forum (if y’all promise to still promote it here from time to time!).
Then you will have two forums to manage You know this will always be your “back yard”, besides, we are too lazy to go to another forum
Unfortunately, SmartThings doesn’t let us “manage” this Forum at all (they don’t delegate any moderator privileges, even restricted to a specific Category or Topic — we asked).
And relying on a vendor owned site is not advisable for a partner business in the long term. There is, quite legitimately, no right to privacy here and free speech here (nor is there on our own Forum, but it’s then our own user’s privacy and own user’s speech…).
I understand your positioning and think it is wise for your business interests. I was just thinking in selfish ease of use. I hope you maintain some presence here though. I know your app will always be promoted in ST forum discussions.
When will the Weather Tile be working?
@tgauchat Just sent a donation your way. Not much, but keep up the good work.
Here is a request. Can you add the capability to track devices like Smart Doorbell(s)?
Weather Tile is working, as far as I know. Only the “standard” SmartThings Smart WeatherStation Device is supported, and v5.8 periodically refreshes it.
What do you mean by “track”?
We continuously review the official SmartThings “Capability List” and periodically determine which ones are likely to have a large enough user base to add to SmartTiles (e.g., Smoke & CO).
All our efforts are focused on the next generation “V6” revamp, though, so that’s where all feature requests are being shuffled to (and prioritized within that overall project; the first release will not include a lot of requested features).