Meteor app to control Photon-connected lights.
This project contains the source code for my personal Android application for controlling my lights. The lights are controlled using a Photon device and a relay. My lights are connected to the relay and this app triggers a function in the Photon to turn on/off the relay.
The app is built with Meteor which allows me to compile an APK for my Android phone.
👉🏻 For the Photon-side of things checkout the project here: github.com/juangesino/lux.
-
Install Meteor
On Linux & Mac:
> curl https://install.meteor.com/ | sh
This will setup Meteor (including Node and Mongo if necessary).
Note: Windows users must download installer.
-
Clone Repository
> git clone https://github.com/juangesino/photon.git > cd photon
-
Install Dependencies
If you have npm installed:
> npm install
If you only have meteor:
> meteor npm install
-
Setup Keys
In order for the application to connect with the Photon, we need to provide some auth key (the device ID and an access token).
Rename the file
/server/keys.js.example
to/server/keys.js
.Open the file and replace
<DEVICE-ID>
and<ACCESS-TOKEN>
with the device ID and an access token.For info on how to get these variables see these docs.
-
Run
While in repository directory run:
> meteor run
Load browser and go to http://localhost:3000/
Alternatively, you can run:
> meteor run android-device
With an Android phone connected to your computer and with USB debugging enabled to run the server on your computer and install the APK on your phone (connected to the same network). More info about running Meteor on Android here and more info on debugging here.
This project requires my Lux project. Go check it out here: github.com/juangesino/lux.
The meteor application requires a server. We can do this by deploying the server to Heroku for free.
Follow these steps to deploy the Meteor app on Heroku.
After that we need to setup our two environment variables: deviceId
and accessToken
. To do so, we need to add the following Config Var to our Heroku application:
METEOR_SETTINGS = {"secrets": {"deviceId":"<DEVICE-ID>", "accessToken": "<ACCESS-TOKEN>"} }
Where <DEVICE-ID>
and <ACCESS-TOKEN>
are the device ID and access token for the Photon device.
👉🏻 For info on how to get these variables see github.com/juangesino/lux.
👉🏻 For info on how to set these variables in Heroku see these docs.
Note: You will need to deploy this server for the Android app to work.
Note 2: The name of the config variable is METEOR_SETTINGS
and the value for it is everything to the right of the =
sign.
To build for Android run:
> meteor build ../<PATH-TO-BUILD>/photon --debug --server=https://<YOUR-HEROKU-APP-NAME>.herokuapp.com/
Replace <PATH-TO-BUILD>
with the actual path where you want your build to be generated.
Replace <YOUR-HEROKU-APP-NAME>
with the name of the Heroku app for your server. If you are not using Heroku, replace the entire --server
argument with your server's URL.
- Fork it ( https://github.com/juangesino/photon/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
See MIT-LICENSE.