A Homebridge plugin for TellStick without Telldus Live,
interfaced with the CLI tool tdtool
. This will therefore
require tdtool
to be present, and runnable, on your server running
Homebridge.
tdtool
can be found as a part of telldus-core
, provided by Telldus.
Since it relies on telldus-core
, only TellStick Duo and TellStick are
supported. TellStick net will support telldus-core
,
eventually.
Install this plugin globally by typing the following.
npm install -g homebridge-telldus-tdtool
Installing the package globally is not a requirement, but makes it easier if you have also installed Homebridge globally. Otherwise, just install this package in the directory which you have set up Homebridge to watch for plugins in.
You must then include
{
"platform" : "Telldus-TD-Tool",
"name" : "Telldus-TD-Tool"
}
in your list of platforms, in the configuration file of Homebridge. This by
default resides in ~/.homebridge/config.json
and should look something
like the following when you have added this platform:
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:CE:30",
"port": 51826,
"pin": "031-45-154"
},
"platforms": [{
"platform" : "Telldus-TD-Tool",
"name" : "Telldus-TD-Tool"
}]
}
By default, this plugin will use all sensors available from your Telldus tool,
listed by tdtool --list-sensors
. However, this will not allow you to either
specify the name of the sensor, or filter out sensors that you would not like
to be present in HomeKit.
By specifying a list of sensors this overrides the found sensors by tdtool
.
{
"platform" : "Telldus-TD-Tool",
"name" : "Telldus-TD-Tool",
"sensors" : [{
"id": "123",
"name": "some-name",
"model": "sensor-model",
"maxAge": 12,
}]
}
Below is the supported attributes for the sensor list.
Attribute | Default | Description |
---|---|---|
id |
Required | ID as listed in tdtool --list-sensors |
name |
Sensor ${id} |
Name to show in HomeKit |
model |
Required | See below for supported models |
maxAge |
3600 |
Seconds from last update until considered stale |
If your tellstick.conf
is located anywhere other than /etc/tellstick.conf
,
the following can be used to specify a custom location:
{
"platform" : "Telldus-TD-Tool",
"name" : "Telldus-TD-Tool",
"tdtool": {
"tellstickConfLocation": "/home/pi/tellstick.configuration"
}
}
Model | Backed by |
---|---|
selflearning-switch |
TelldusSwitch |
codeswitch |
TelldusSwitch |
selflearning-dimmer |
TelldusDimmer |
humidity |
TelldusHygrometer |
temperature |
TelldusThermometer |
temperaturehumidity |
TelldusThermometerHygrometer |
This module is written in ES6. To support earlier versions of Node, this is
transpiled using Babel to regular ES5. To build it yourself, make sure you have
installed all the development dependencies (this is usually done by default
with npm install
). To make sure, you can run:
npm install --only=dev
after you have issued the regular install command.
To build the dist folder, then run
npm run build
Since a lot of people, me included, are running Homebridge on a server remote from where development takes place (such as on a Raspberry PI), there is a small, experimental script included for addressing this.
This can be run by issuing:
npm run rsync -- user@host /path/to/node_modules/homebridge-telldus-tdtool
Default values for these are:
user@host
- pi
path
- /opt/nodejs/lib/node_modules/homebridge-telldus-tdtool
To run this, it assumes a couple of things:
fswatch
and rsync
installed.This plugin depends on tellstick.conf-parser
. This is because tdtool
does
not output the model of a connected device, making it not possible to provide
a devices characteristics for Homebridge unless we peek in TellSticks
configuration file and check the model there.
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature