|
||
---|---|---|
lightrix | ||
remote | ||
roles | ||
.gitignore | ||
.gitmodules | ||
README.org | ||
lightrix.py | ||
lightrix.service | ||
mcatrc | ||
playbook.yaml | ||
requirements.txt | ||
test-client.py |
README.org
Lightrix: Drive Adafruit Neopixels over Matrix
Installation
You will need a Raspberry Pi that is attached to your network. I am using a Raspberry Pi Model A+ due to its really adorable formfactor and the fact that I have some WiFi dongles laying about.
This is based on the rpi_ws281x
library, and I ship an ansible playbook to provision it.
Remove the rrix.setup-home
role from playbook.yaml
and run:
ansible-playbook -i ../devops/hosts playbook.yaml --become
Yes, I install everything in to the main Python library path, because I'm an infoterrorist. It's an embedded Raspberry Pi, deal with it.
Usage
As root: (due to the DMA requirements)
- Create a
~/.mcatrc
- Run
python ./lightrix.py -r "<YOUR ROOM ID>" -c ~/.mcatrc
and it'll fire up - Go in to the room in Vector or so and type "rainbow"
The playbook will install a systemd unit file lightrix.service
which you can start and enable to
your heart's content
Remote
There is also now a remote control included which you can run to allow you to control the lights from a web-page.
-
Create a
secrets.js
which defines the following variables, and put it inremote/
accessToken
: A valid access token which the webpage will use to make requests to the HS ashs
: A fully-qualified homeserver URLuid
: the UID that theaccessToken
represents.rooms
: an array of Room IDs which you can use to toggle to mutliple lightrix installations (assuming each one runs in its own room)
- run
python -m SimpleHTTPServer
in theremote/
directory - browse to
http://DOMAIN:8000
to view the remote