Skip to content

Latest commit

 

History

History
86 lines (57 loc) · 2.01 KB

README.md

File metadata and controls

86 lines (57 loc) · 2.01 KB

node-rfswitch

Control RF outlets from nodejs.

This library was inspired by node-rcswitch but instead of creating bindings for rcswitch-pi this library uses node-rpio to control the GPIO.

Installation

The latest version can be installed via npm

$ npm install rfswitch

Make sure that /dev/gpiomem exists and is writeable by you (usually by adding yourself to the gpio group).

If /dev/gpiomem exists but is not owned by the group gpio (e.g. on Arch Linux) see here.

Usage

Import rfswitch

const RFSwitch = require('./index.js')

Create a switch

let group = '0F00F'
let unit = 'FF0FF'
let options = {
  onCode: group + unit + '0F',
  offCode: group + unit + 'F0'
}
let s = new RFSwitch(options)

Turn the switch on/off

s.switchOn()
s.switchOff()

Options

pin

The pin to which the sender is connected (using the BCM based GPIO numbering, defaults to 17)

protocol.tristate

Defines if the protocol uses tristate (0 = 00, 1 = 11, F = 01)

protocol.pulseLength

The length of one pulse in µs

protocol.zero, .one, .sync

The number of high and low pulses that equal a binary zero and one as well as the pulses used for synchronization (e.g. {high: 1, low: 3}).

onCode, offCode

The code used to turn the switch on/off. Some info on finding those codes can be found here

repeat

How should each code be send (defaults to 10 times)

Advanced

Use RFSwitch.send to send a code directly using a given pin and protocol

let pin = 17
let code = '0F00FFF0FF0F'
let protocol = {
  tristate: true,
  pulseLength: 350,
  zero: {high: 1, low: 3},
  one: {high: 3, low: 1},
  sync: {high: 1, low: 31}
}
RFSwitch.send(pin, code, protocol)