- Notifications
You must be signed in to change notification settings - Fork 80
Open
Labels
needs triageNeeds investigation and prioritizationNeeds investigation and prioritizationquestionFurther information is requestedFurther information is requestedreviewed
Description
When defining device subscription handlers, you cannot name a common handler across subscriptions. The SDK design seems to impose a unique handler name for each subscription. If I want to support nearly all SmartThings capabilities, I would have a potentially LARGE number of subscriptions to handle, but the current design forces me to declare a unique handler for each, resulting in an unnecessary proliferation of code.
What I want to do is this:
context.api.subscriptions.subscribeToDevices(context.config.buttonList, 'button', 'button', 'commonhandler')) context.api.subscriptions.subscribeToDevices(context.config.contactList, contactSensor', contact', 'commonhandler')) . . . context.api.subscriptions.subscribeToDevices(context.config.motionList, 'motionSensor', motion', 'commonhandler')) subscribedEventHandler('commonHandler', (context, deviceEvent) => { <do common stuff> } However, I get a subscriptionName conflict error if I try to do that. What I seem to be forced to do is define unique handlers for each like this:
context.api.subscriptions.subscribeToDevices(context.config.buttonList, 'button', 'button', 'buttonhandler')) context.api.subscriptions.subscribeToDevices(context.config.contactList, contactSensor', contact', 'contacthandler')) . . . context.api.subscriptions.subscribeToDevices(context.config.motionList, 'motionSensor', motion', 'motionhandler')) subscribedEventHandler('buttonHandler', (context, deviceEvent) => { <do same stuff, or call a common do-stuff routine here> } subscribedEventHandler('contactHandler', (context, deviceEvent) => { <do same stuff, or call a common do-stuff routine here> } . . . subscribedEventHandler('motionHandler', (context, deviceEvent) => { <do same stuff, or call a common do-stuff routine here> } Is there a better way to accomplish this or perhaps this is a needed design change in the SDK?
Metadata
Metadata
Assignees
Labels
needs triageNeeds investigation and prioritizationNeeds investigation and prioritizationquestionFurther information is requestedFurther information is requestedreviewed