http://n8henrie.com/2015/12/control-an-rf-outlet-with-siri-via-homebridge
Control RF outlets with HomeKit / Siri using rcswitch-gpiomem2
- Install WiringPi
- Install homebridge:
npm install -g homebridge
- Install homebridge-rcswitch-gpiomem:
npm install --global homebridge-rcswitch-gpiomem
- Update your configuration file.
See sample-config.json
Either onCode
and offCode
or systemcode
and unitcode
are required.
My switches use on and off codes, so that's what I recommend and all I can
really help with.
accessory
: Must beRCSwitch
(case sensitive)name
:: string :: What you want to call the switch. Keep in mind that Siri will prefer anything other than your homebridge switch if there's any confusion, so name it something uniqueonCode
,offCode
:: int or string- If int: Decimal RF code to turn switch on / off
- If string: Binary RF code to turn switch on / off
- If triState param set to true: String with tri-state RF code to turn switch on / off
systemcode
:: string :: RF system code. I don't use this, please refer to other docs.unitcode
:: int :: RF unit code. I don't use this, please refer to other docs.triState
:: bool :: If set, onCode and offCode strings are passed to rcswitch sendTriState method (0,1,F)pin
:: int, optional :: BCM pin connected to 433 mhz transmitter, defaults to17
pulseLength
:: int, optional :: RF pulse length, defaults to190
bitLength
:: int, optional :: bit length of RF code, only used if using decimal RF code, defaults to24
repeats
:: int, optional :: Number of times to repeat the transmission of the code, defaults to 10 (as per the original rcswitch code)
It seems that the gpiomem
system I use and the SysFS method of interacting with the GPIO are not compatible for reasons explained in this issue. Make sure that you aren't also using programs that access the GPIO by way of SysFS or this library may not work.
- Moved enableTransmit into loop to allow different accessories to use different pins (@foodbag)
- Move
setRepeatTransmit
to just before callingswitchOn()
to facilitate multiple switches with different desired repeat counts
- Move
setPulseLength
from initialization to just before callingswitchOn()
to facilitate multiple switches with different pulse lengths (closes #2).