Use your Raspberry Pi to control 433 MHz RC power sockets
LGPL-3.0 License
Use your Raspberry Pi to control 433 MHz RC power sockets. Inspired by RC-Switch for Arduino.
PiSwitch is also available as an npm
package.
I'm not able to test all code types, so if you encounter a problem, let me know. Issues and PRs welcome.
/^[01]{10}$/
)/^[1-4]{2}$/
)/^[a-p][1-4]{2}$/
)/^[a-d][123]$/
)Attach your 433 MHz transmitter to VCC, GND, and a pin of your liking.
Run npm install
in the project directory to install PiSwitch’s dependencies.
Choose between running as PiSwitch with root
privileges or using the
WiringPi gpio
utility to export
the GPIO pins, making
them accessible to non-root users.
(This is precisely the choice you have to make when using Wiring Pi’s setup methods, because that is what’s used.)
Running as an unprivileged user is recommended and the default, so please
have a look at the gpio
util’s documentation.
The relevant command is gpio export <pin> out
(BCM numbering).
(Take a look at gpio readall
and Gadgetoid’s Pi pinout chart for
pin numbers, both are really handy.)
If you would rather run as root, pass mode: 'gpio'
during setup (see below).
Now take a look at example.js
. Note:
setup()
must be called to initialize WiringPi. You'll probably want to
to pass key–value option pairs (e.g., { pulseLength: 350, pin: 27 }
) that
match your setup. See config.js
.
send(code, type, off)
is used to transmit an RC code, where
code
matches one of the input schemes, e.g., 'ff0f00fffff0'
or 'a3'
type
is one of {'binary'
, 'tristate'
, 'dip'
, 'rotary'
,'intertechno'
, 'rev'
} (default: 'binary'
)off
is true
to send an off
code (default: false
, i.e., switch on)Some examples:
send('b2', 'rev')
turns on the "B2" power socket of a system using REVsend('b2', 'rev', true)
turns off the same socketsend('010100010000010101010101')
, send('ff0f00ffffff', 'tristate')
,send('0010110000', 'dip')
are all translated to the same transmissionIf you have questions or run into problems, please file an issue. :)