Fork of the espurna firmware for `mhsw` switches
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

58 lines
1.7 KiB

#include <RemoteReceiver.h>
#include <RemoteSwitch.h>
/*
* Demo for RF remote switch receiver.
* For details, see RemoteReceiver.h!
*
* This sketch "translates" a Action-remote to a Blokker-remote.
* When the A-On-button of the Action-remote is pressed, the Blokker-devices
* 5, 6 and 7 are switched on. The A-Off-button switches the devices off again.
*
* Connect the transmitter to digital pin 11, and the receiver to digital pin 2.
*/
ActionSwitch actionSwitch(11);
BlokkerSwitch blokkerSwitch(11);
//Prepare the code for switch A (system code 1) on and off, for easy comparision later.
unsigned long actionAOn = actionSwitch.getTelegram(1,'A',true);
unsigned long actionAOff = actionSwitch.getTelegram(1,'A',false);
void setup() {
//See example Show_received_code for info on this
RemoteReceiver::init(0, 3, translateCode);
}
void loop() {
}
//Callback function is called only when a valid code is received.
void translateCode(unsigned long receivedCode, unsigned int period) {
//Enabled interrupts, so RemoteReceiver::isReceiving() can be used.
interrupts();
//Compare the signals
if (RemoteSwitch::isSameCode(actionAOn, receivedCode)) {
//A-On-button pressed!
//Wait for a free ether
while(RemoteReceiver::isReceiving());
//Switch devices on
blokkerSwitch.sendSignal(5,true);
blokkerSwitch.sendSignal(6,true);
blokkerSwitch.sendSignal(7,true);
} else if (RemoteSwitch::isSameCode(actionAOff, receivedCode)) {
//A-Off-button pressed!
//Wait for a free ether
while(RemoteReceiver::isReceiving());
//Switch devices off
blokkerSwitch.sendSignal(5,false);
blokkerSwitch.sendSignal(6,false);
blokkerSwitch.sendSignal(7,false);
}
}