This project is based on node_tradfri_ifttt
Using this project you can control your IKEA lights using simple webhook requests.
- Have a group called
Living Room. - Name your lightbulbs
Couch 1,Couch 2,Lamp 1. - The command will try to match the group name exactly.
- If no match is found, it will apply the action to all bulbs that start with the given argument.
If you haven't already, install git and node.js on your device.
-
Fork or clone this repository onto your device.
-
In your console, run
npm installto install the required components. -
Run
touch .envto create your hidden, gitignored environment config file. -
Generate a preshared key for your application by running
node get_key.js- Input the IP to the IKEA Tradfri hub
- Input the security code printed on the HUB
- You will get back the identity and psk values to be saved into the .env file
-
In .env, configure your environment as follows:
DEV=TRUEif you are on desktop, orFALSEif you are on your raspberry piPORT=The port that the server will listen on.PASS=Whatever you want the password to your API to beHUBIP=The IP to your IKEA Tradfri hubAPIUSER=The user/identity used to the connect to the hubAPIKEY=The password/psk used to connect to the hub
-
Run
npm startto launch the server -
Test your API
- The API has the following structure:
http://[IPADDRESS]:[PORT]/api/:operation/:what/:state?password=[PASS] [IPADDRESS]- the internet accessible IP address used to access the API. This is usually the public IP address of your router.[PORT]- the internet accessible PORT used to access the API. You usually have to forward this from your router to the host running this package.[PASS]- the password you defined in the .env file- You can test that it works by making calls with
curlsuch ascurl -i -X POST http://[IPADDRESS]:[PORT]/api/turn/all/on?password=[PASS](this should turn on all the lights)
- Run the project at startup:
- Add a line similar to
cd /home/pi/node_tradfri_ifttt && nohup npm start &to your/etc/rc.local
- Add a line similar to
At http://[IPADDRESS]:[PORT]/dashboard there is a dashboard with toggle functionality for each device
turn
- on
- off
- toggle
dim
- dim value 0-100
temp
- temp value 0-100
color
- Hex color value
- Make a more functional dashboard
- Add testing