smartthingscommunity / smartthingspublic Goto Github PK
View Code? Open in Web Editor NEWSmartThings open-source DeviceType Handlers and SmartApps code
Home Page: https://developer-preview.smartthings.com/docs/devices/hub-connected/get-started
SmartThings open-source DeviceType Handlers and SmartApps code
Home Page: https://developer-preview.smartthings.com/docs/devices/hub-connected/get-started
I am receiving an error when adding my ecobee 3 thermostat from Marketplace=>things=>climate control=>thermostats=>ecobee+>ecobee 3
The error is as follows
error groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method physicalgraph.event.EventService#create.
Cannot resolve which method to invoke for [null, class java.util.LinkedHashMap] due to overlapping prototypes between:
[class physicalgraph.app.InstalledSmartApp, interface java.util.Map]
[class physicalgraph.device.cache.HubDTO, interface java.util.Map]
[class physicalgraph.device.cache.InstalledSmartAppDTO, interface java.util.Map]
[class physicalgraph.device.cache.LocationDTO, interface java.util.Map]
[class physicalgraph.location.Location, interface java.util.Map] @ line 318
Is this an error in the smartapp or my hub?
I also opened a topic on the community forums here:
https://community.smartthings.com/t/bug-issue-with-dynamic-page/89625
Using the code below, the function is being called twice every interval causing the logging to spiral out of control.
definition(
name: "TestApp",
namespace: "randuhmm",
author: "Jonny Morrill",
description: "testing",
category: "",
iconUrl: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience.png",
iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Convenience/[email protected]",
iconX3Url: "https://s3.amazonaws.com/smartapp-icons/Convenience/[email protected]")
preferences {
page(name: "testFunc", title: "Test Func", content: "testFunc")
}
def testFunc() {
log.debug 'testFunc()'
dynamicPage(name: "testFunc", title: "Test Func", nextPage: "", refreshInterval: 5, install: true, uninstall: true) {
section("Example...") {
}
}
}
The logs for this SmartApp look like this:
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:38 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:37 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:33 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:33 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:32 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:27 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:27 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:27 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:27 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:27 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:27 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:26 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:26 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:21 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:21 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:21 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:21 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:16 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:16 PM: debug testFunc()
9779fd5c-b67e-4916-8b60-8873bef14562 9:46:11 PM: debug testFunc()
As you can see the number of concurrent function calls is increasing exponentially every cycle. It would be a great help if anyone could confirm this behavior on their end. Thanks!
Support an offset in minutes to allow (for example) lights to come on just before sunset.
Intermittent issues where SHM is not arming from a routine.
Hi,
I have a Hue emulator that I am trying to add to smartthings. I am able to discover the bridge and proceed to the light discovery page. However it just gets stuck there.
I have debug the issue down to the below code, it is returning [:]. I am not sure where to go to continue to debug it.
Map getHueBulbs() {
state.bulbs = state.bulbs ?: [:]
}
Also where in the code does it generate a string like this:
[ab6ef852-bb9c-1b54-5e00-852761f84bfc/3:Bedside Lamp, ab6ef852-bb9c-1b54-5e00-852761f84bfc/2:Bedroom Ceiling, ab6ef852-bb9c-1b54-5e00-852761f84bfc/1:Living Room Ceiling]
Thank you.
I can't seem to open the smart app. I've tried simulating it on the IDE and it just thinks. And on my phone when I try to add the smart app it thinks, and then stops. The app ends up being added, but the same thing happens when I try to open the installed smart app. (It thinks and doesn't open)
Any ideas what I'm doing wrong?
I'm trying to find an option to connect my Ecobee3 to Smarthings. Are the 2 ecobee devices, and the smart app meant for the Ecobee3?
I implemented this using SmartThings and even after deleting the rule from SmartThings and rebooting the network I still can't stop the Bose from playing. Tried everything.
I use the computer language "ruby" , is there any resources about ruby of SmartThings and how can i use "SmartThings API" by ruby , I don't know if it can work?
Hi I am trying to get the energy alert app to work with my z wave relay it doesn't allow me to input anything in the section 'when this power meter...'
Please advise
On launch unexpected error crash.
Application installs correctly and discovers my TV however I then receive an "unknown error" in my app. When looking at my "live log" I see the following error.
physicalgraph.app.exception.UnknownDeviceTypeException: Device type 'Samsung Smart TV' in namespace 'smartthings' not found. @ line 125
In the lifx-connect.groovy
SmartApp, in the logErrors
function (line 298), there are two return points inside the exception handlers (lines 307 and 310).
Each of these return points is currently:
return options.errerReturn
Whereas they should be:
return options.errorReturn
Since their last platform upgrade, ST has been having a lot of issues with mode based triggers. The SmartAlarm app for example would trigger alarm even though the mode is set to Home - Within the app the state would show as Alarm. Also noticed this on the drop cam app that would take pics only in away mode.
Mode change happens but correct mode is not reflected in the app. It shows the stale mode unless the app is killed and restarted.
How to reproduce:
GoodMorning! routine triggers when things start happening in the morning, Mode changes from Night to Home. The iOS app still shows the stale mode.
capability "sensor"
and/or capability "actuator"
.For reference, the SmartSense Motion Sensor correctly claims capability "sensor"
here:
But the SmartSense Open/Closed Sensor does not:
This is critical to SmartTiles V6 because we encourage the users to select all their devices with two general filter input statements (sensor and actuator). As such, Devices of this DTH are currently not selectable in our SmartApp: SmartTiles V6 Beta (Connect).
Dewpoint Calculation seems to be causing the issue.
After some experimentation I discovered an issue in the way the HubAction parses HTTP response headers.
The issue is that the hubaction response parser requires a space ' '
after the colon ':'
that separates the field-name
from the field-value
.
The HTTP Spec does not require a space, (but does prefer it).
The field value MAY be preceded by any amount of LWS, though a single SP is preferred.
Unfortunately some Hikvision IP camera's send the content length without preceding the value with a space. This makes it impossible to implement the Image.take() capability for these devices.
It would be nice if the hubaction parser could be made to accept response headers with and without space between the colon and the field-value.
Working Response Note the space Content-Length:<SP><length>
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Content-Length: 223556
<data>
Not Working Note the absence of a space Content-Length:<length>
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Content-Length:223556
<data>
Using the mimolite-garage-door-controller device handler but if the mimolite is triggered from outside the ST iOS app the status does not update. For example if I open it from smarttiles, homeremote, or manually it shows open in smarttiles/homeremote but if I go into the ST iOS app it still shows closed. If I tap the refresh tile in ST then it gets stuck on "closing" and nothing happens. Then it shows "closing" on smarttiles/homeremote as well.
Updates fine if controlled from ST app. Any ideas?
When trying to log into the Ecobee Connect app it gives me the following error right after "Click to enter Ecobee Credentials"
It's just a white screen with the following text:
{"error":True, "Type"; "java.lang.reflect.UndeclaredThrowableException", "Message": ""An unexpected error occurred."}
Any help?
(I'm on an iPhone if that matters)
Greetings.
I have installed the app and was able to choose the "monitor the humidity of" the thermostat
I do not have a smart outlet yet but have Aeon microcontroller light switch.
I was able to choose it as the "control humidity"
I have set the "when the humidity rises above" to 0
I have set the "when the humidity drops below" to 50
The light switch is not triggered.
Thanks for directing me in the right direction.
Notice how on line 72, you are only choosing to use setpoint when there is motion.
It should probably be something like:
evaluate(evt.doubleValue, setpoint)
because whether I am using motion sensing or not, I want the setpoint to control the A/C.
scaledHueValue is calculated by taking a byte dividing by 255 and multiplying by 100. A hue should be between 0 and 360 though. Initial tests with lightify bulbs show that changing the multiplier to 360 produces the correct hues.
First off, HUGE thank you for creating this! I'm a new Smartthings user, and very excited to learn how to use the custom development and from such an incredibly well built/documented program! Can't wait to start integrating this all together!
So I'm having an issue under cameras where I can turn streaming on/off, but can't see the video. I'm getting the message attached.
Thank you!
Justin
From Support Sept 14th
Roger (SmartThings)
Sep 14, 3:31 AM
Hey Dawn,
At the moment, the ability to change your device's icons isn't working quite right. We are aware of this and are working hard on getting this fixed.
java.lang.SecurityException: Getting properties on class physicalgraph.device.Device_$$_javassist_11 is not allowed @
line 246
This happens when attempting a secure inclusion on battery or wired.
PR #1951 broke color temperature tuning for OSRAM Lightify tunable white bulbs, with the following error occurring when setting color temperature in SmartThings:
java.lang.IllegalArgumentException: Needs to be string or int, received null value: null @ line 149
The latest commit for CT100 device handler completely broke the functionality of the device. Changing fan mode or temperature mode is broken:
java.lang.NullPointerException: Cannot invoke method leftShift() on null object @ line 619
java.lang.NullPointerException: Cannot invoke method leftShift() on null object @ line 606
When the thermostat is in Fahrenheit mode the temperatures show decimals such as 72.7.
I have errors in my error log that show up as
read attr - raw: 93670102010A2900190D00, dni: 9367, endpoint: 01, cluster: 0201, size: 0A, attrId: 0029, encoding: 19, value: 000d
Pretty sure that the alpha characters are lowercase when coming from the thermostat.
Also the below method is missing 000c which is heating
I believe 000c and 000d to be stage 2 heat, but no one has the API for this thermostat. I contacted Smartthings, ZEN, and openhome.io and this was not helpful. I am coming from a Radio Thermostat and they distinguish when your thermostat is in aux mode.
def getOperatingStateMap() { [
"0000":"idle",
"0001":"heating",
"0002":"cooling",
"0004":"fan only",
"0005":"heating",
"0006":"cooling",
"0008":"heating",
"0009":"heating",
"000A":"heating",
"000D":"heating",
"0010":"cooling",
"0012":"cooling",
"0014":"cooling",
"0015":"cooling"
]}
Smart Lighting app doesn't handle motion triggers correctly. Active motion doesn't cancel the timer to turn off the light.
hi! new SmartThings user here. I'm investigating the integration options, and it seems like the way to do that is to write code that runs in SmartThings' cloud.
I would like if I could write simple desktop tools to query my hub directly. If not that, I would like to have a desktop app send requests to a SmartThings API on the internet. I see that some people worked around the hosted apps by writing a SmartApp that exposes an API, but it would be much nicer to write against an official API, especially if it is exposed by the hub directly on the local network.
Is my preference currently possible? If not, is there any plan to support it?
Icons have disappeared for most of the installed SmartApps from the mobile app including the Smart Lighting.
In zwave-lock.groovy
state.keySet().findAll Line 555
java.lang.SecurityException: Invoking methods on class java.util.Collections$SynchronizedSet is not allowed: findAll @ line 555
See my pull request for the details: #914
Cannot do remote programming of zigbee lock (yale deadbolt). The z-wave lock has the group "Lock Codes" and the zigbee lock is missing the coding for it.
netatmo-connect.groovy gives token errors when trying to connect
I've found several invalid colors:
Also, the color "Snow" is actually "Red" rather than "White?"
The published device handler for the Aeon Labs Multisensor 6 has a serious error which prevents proper installation of the Multisensor 6. Specifically, the device handler fingerprint is incorrect.
As published, the fingerprint lists an outClusters "0x5A", but the "0x5A" needs to be part of the inclusters, and there should be no outClusters for this device.
Fingerprint should read:
fingerprint deviceId: "0x2101", inClusters: "0x5E,0x86,0x72,0x59,0x85,0x73,0x71,0x84,0x80,0x30,0x31,0x70,0x7A,0x5A"
Netatmo Units are returned in Metric (Celsius) as described in the Netatmo API contracts, but Weather Underground requires US (see tempf field description in API contract).
This causes issues on Weather Underground, as the site applies it's own conversion again (receives a Celsius value in Fahrenheit field, converts that to Celsius, so temp is incorrect.
Some routines don't fully execute. Example, Good Night routine didn't set heating/cooling points on Honeywell thermostat nor turned off Wemo switches.
I've installed the Ecobee device for my Ecobee3. I live in Canada and my Ecobee is set to Celsius.
The ecobee device reads this correctly and displays the correct temperature (20 Celsius). However when I adjust the temperatures it pushes the new set points in Fahrenheit:
So for example, the house is 20, the app says 20 it's all good. The up arrow moves it to 21, but now the thermostat is set to 21 fahrenheit! Which is way too cold!
Also, the remote sensors are all translating everything to fahrenheit, so it knows my sensors are about 67, 68 etc. It would be nice to display this in Celsius for us that use the metric system.
Any developers know how to fix this?
"Power allowance" is not at all intuitive for a user looking to setup a time delay. Please consider changing to a more user friendly name in the Smart Lighting and "Power Allowance" SmartApp.
Here's an example of a user completely confused by the current naming: https://community.smartthings.com/t/will-power-allowance-act-as-a-countdown-timer/12225/13
The following Commit (SSVD-2897 to round Celsius and fix rounding on Fahrenheit) removed Celsius decimal places. Currently all motion sensors are displaying high by .5 or lower by .5. This is causing a 1 degree variance from what the actual temperature is:
Furthermore, lines 258 to 263 force the Offset to rounding to Integer (whole) values. Users using Celsius require more accurate temperature displays at least to .5 but preferably to .1 degree increments.
Mode Toggle in Z-Wave Thermostat Fails with the GoControl Thermostat when switching from Auto to the next state. It will toggle from Off to Heat, Heat to Cool, and Cool to Auto, but trying toggle from Auto back to the next state (which I assume is OFF, since I don't have Emergency Heat) the toggle gets stuck on "Updating," the thermostat remains in Auto, and no further activity appears in the logs.
I installed the device handler from LunkwillAndFook without any problems. I see the handler is associated with the switch. The switch is set up in Single Switch mode to control a pool pump. The Primary switch behavior is set to Switch All. My hub is about 15 feet away from the switch with only a wood frame wall between. My Smartthings app see the device and reports the status fine. I just can't control the switch. I did not install any smartapps for the device, it didn't seem like I would need to. I am new to this world so I don't know what I could be missing.
This issue started about a month back and seems like ST is aware but has it at a low priority.
Set dim level doesn't work for some switches. E.G - dimmer switch model 12724.
There is an ongoing discussion/debate regarding some derivative works based on the ecobee-connect smartapp. It would be very helpful to understand what license the file is distributed under.
// StrykerSKS
Since commit 65d4a81 the smartpower-dimming-outlet.groovy DTH no longer shows on/off states when using "set level" commands. Using C0re (for example) to set the level to 60% results in the light turning on to 60% but the device shows the device is still off. Only On/Off commands result in the DTH properly reflecting the device state.
Looks like this was fixed in other DTH's but not applied to this one: be2e19e
Following code needs to be changed?
def setLevel(value) {
zigbee.setLevel(value)
Needs to be changed to:
def setLevel(value) {
zigbee.setLevel(value) + zigbee.onOffRefresh() + zigbee.levelRefresh() //adding refresh because of ZLL bulb not conforming to send-me-a-report
Log messages says 'arrived' when it should say 'departed'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.