A node.js module to interface with the Telldus Live API. Written in ECMAScript 2015 using classes and promises. Not complete, but more complete than most other modules.
You will need a Telldus Live account and OAuth tokens:
-
To get a Telldus Live account, go to login.telldus.com/openid/server
-
Once you have a Telldus Live account, go to api.telldus.com and Generate a private token for my user only.
npm install node-live-telldus
let config = {
publicKey: 'your public key here',
privateKey: 'your private key here',
token: 'your token here',
tokenSecret: 'your token secret here'
},
TelldusLive = require('node-live-telldus'),
telldus = new TelldusLive(config);
telldus.getUser().then(user => {
console.log(user);
//the user object is cached for convenience on telldus.user
}).catch(err => {
console.log(err); //Error occured
});
telldus.getDevices().then((devices)=> {
//now all devices are fetched and stored in telldus
//no use to call getInfo, as getDevices() fetches all data from devices.
//convenience methods lets you retrieve cached devices by id or name.
let myDevice = telldus.getDeviceByName('My device');
});
//no use to call getInfo, as getDevices() fetches all data from devices.
//Although, assume it has passed some time, its good to refresh the information.
//.reload() is an alias of getInfo()
telldus.getDeviceByName('My device').reload().then(device => {
//The device info is now fresh, let's do something
if(device.isOn()) {
device.turnOff();
} else {
device.turnOn();
}
});
telldus.addDevice(client, name, protocol, model); //may not be supported by client
telldus.removeDevice(device);
device.setName(name);
device.setModel(model);
device.setParameter(parameter, value);
device.setProtocol(protocol);
device.bell();
device.command(method, value);
device.learn();
device.dim(level);
device.turnOnOff(on);
device.turnOn();
device.turnOff();
device.isOn();
device.stop();
device.isDown();
device.isUp();
device.history(fromTimeStamp, toTimeStamp, extras);
telldus.getSensors(includeIgnored, includeValues, includeScale).then(sensors => {
//do something with the sensors
});
telldus.getSensorById(id); //returns sensor (no server call)
telldus.getSensorByName(name);
sensor.reload().then(...); //alias of sensor.getInfo
sensor.getInfo().then(sensor => { //telldus does not allow this more often than every 10 minutes
//updated sensor info
});
sensor.getDataByName(name); //get a named data from the sensor, ie. 'battery'
sensor.setName(name).then(sensor => {
//new name is now set
console.log(sensor.name);
});
user.changePassword(oldPassword, newPassword);
user.registerPushToken();
user.unregisterPushToken();
user.deletePushToken();
user.getPhones();
user.getClients();
client.setName(name);
client.setPush(enable);
getJobs()
removeJob(job)
telldus.addGroup(client, devices, name);
telldus.removeGroup(group)
telldus.getGroupById(id)
telldus.getGroupByName(name)
goup.id
group.client
group.name
group.devices