Skip to content

Instantly share code, notes, and snippets.

Avatar

Nayely Zarazua nayelyzarazua-bluetrail

View GitHub Profile
@nayelyzarazua-bluetrail
nayelyzarazua-bluetrail / init.lua
Created Oct 8, 2021
Hello_World_customCapabilities
View init.lua
-- require st provided libraries
local capabilities = require "st.capabilities"
local Driver = require "st.driver"
local log = require "log"
-- require custom handlers from driver package
local discovery = require "discovery"
--construct the custom capability to use it in the driver
--This is the result of the command >> smartthings capabilities namespace.oneiteminlist -j
local oneiteminlist = capabilities.build_cap_from_json_string([[
View init.lua
local caps = require "st.capabilities"
local zcl_clusters = require "st.zigbee.zcl.clusters"
local ZigbeeDriver = require "st.zigbee"
local constants = require "st.zigbee.constants"
local defaults = require "st.zigbee.defaults"
local contact_sensor_defaults = require "st.zigbee.defaults.contactSensor_defaults"
local data_types = require "st.zigbee.data_types"
local fancy_switch_def = [[{
"id": "commonsmall09402.copySwitch",
@nayelyzarazua-bluetrail
nayelyzarazua-bluetrail / init(main).lua
Last active Nov 6, 2021
EdgeDrivers_change defaults
View init(main).lua
local capabilities = require "st.capabilities"
local zcl_clusters = require "st.zigbee.zcl.clusters"
local ZigbeeDriver = require "st.zigbee"
local constants = require "st.zigbee.constants"
local defaults = require "st.zigbee.defaults"
local contact_sensor_defaults = require "st.zigbee.defaults.contactSensor_defaults"
local data_types = require "st.zigbee.data_types"
local common = require("common")
local function acceleration_handler(driver, device, value, zb_rx)
View presentation.json
{
"dashboard": {
"states": [
{
"component": "main",
"capability": "switch",
"version": 1,
"values": []
}
],
View server.js
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const SmartApp = require('@smartthings/smartapp');
require('dotenv').config();
const server = module.exports = express();
server.use(bodyParser.json());
View rule.json
{
"name": "Rule with several conditions but no depth",
"actions": [
{
"if": {
"equals": {
"right": {
"device": {
"devices": [
"Dimmer1-ID"
View dthFunctions.groovy
//Function called when the command of the Custom Capability is executed (from the app, API or SmartApp)
def setAttr(String arg){
log.trace("attr ${arg}")
sendEvent(name:"attr",value:arg)
state.configValue = 0
switch(arg){
case 'option1':
state.configValue= 20
break;
case 'option2':
View scenario1.json
{
"name": "Sample for precondition",
"actions": [
{
"if":{
"equals": {
"left":{
"string": "pushed"
},
"right":{
View smartapp.js
const SmartApp = require('@smartthings/smartapp');
const deviceStates = {switch: 'off'}//1-10
module.exports = new SmartApp()
.appId('smartApp connector')
.disableCustomDisplayName(true)
.permissions(['w:devices:*', 'r:locations:*','x:devices:*', 'i:deviceprofiles:*', 'r:devices:*'])
.page('mainPage', (ctx, page, configData) => {
page.section('Device label:', section => {
View SmartApp_pageSettings.js
const express = require('express');
const bodyParser = require('body-parser');
const SmartApp = require('@smartthings/smartapp');
const { json } = require('body-parser');
require('dotenv').config();
const server = module.exports = express();
server.use(bodyParser.json());
const app = new SmartApp()