42 lines
1.6 KiB
Org Mode
42 lines
1.6 KiB
Org Mode
* 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 [[http://ansible.com][ansible]] playbook to provision it.
|
|
|
|
Remove the =rrix.setup-home= role from =playbook.yaml= and run:
|
|
|
|
#+BEGIN_SRC sh
|
|
ansible-playbook -i ../devops/hosts playbook.yaml --become
|
|
#+END_SRC
|
|
|
|
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 in =remote/=
|
|
- =accessToken=: A valid access token which the webpage will use to make requests to the HS as
|
|
- =hs=: A fully-qualified homeserver URL
|
|
- =uid=: the UID that the =accessToken= 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 the =remote/= directory
|
|
- browse to =http://DOMAIN:8000= to view the remote
|