mirror of
https://gitlab.com/wirelos/sprocket-plugin-rcswitch.git
synced 2025-12-13 21:46:49 +01:00
master
Sprocket RC-Switch Plugin
A remote control RF switch plugin for the Sprocket framework, enabling control of 433MHz RF switches and receivers through the Sprocket event system.
Overview
The RC-Switch plugin provides integration with 433MHz RF remote control systems, allowing Sprocket devices to control RF switches, outlets, and other RF-controlled devices through a simple event-based interface.
Features
- RF Transmitter Control: Send 433MHz RF signals to control remote switches
- Group/Device Addressing: Support for group and device-based addressing
- Event-Driven Control: Control switches through Sprocket events
- Task-Based Operation: Integrated with Sprocket's task scheduler
- JSON Configuration: Easy setup through configuration files
- Multiple Switch Support: Control multiple RF devices independently
Configuration
struct RcSwitchConfig {
int txPin; // GPIO pin for RF transmitter
};
struct RcSwitchPayload {
const char *group; // RF group code
const char *device; // RF device code
};
Usage Example
#include <RcSwitchPlugin.h>
#include <RcSwitchConfig.h>
// Configure RF transmitter
RcSwitchConfig rcConfig = {
.txPin = 4
};
// Create and activate plugin
RcSwitchPlugin rcPlugin(rcConfig);
rcPlugin.activate(scheduler);
// Control switches via Sprocket events
// Turn on: publish to "rcswitch/on" with group/device payload
// Turn off: publish to "rcswitch/off" with group/device payload
Event Topics
The plugin responds to various Sprocket events:
rcswitch/on- Turn on specific RF switchrcswitch/off- Turn off specific RF switch
Message Payload Format
Control messages use JSON format:
{
"group": "A",
"device": "1"
}
Hardware Requirements
- RF Transmitter: 433MHz RF transmitter module
- Antenna: Wire antenna (typically 17.3cm for 433MHz)
- Power Supply: Adequate power for RF transmission
- GPIO Pin: Digital output pin for transmitter control
Supported RF Protocols
The plugin supports common 433MHz RF protocols:
- Group/Device Addressing: Standard group and device codes
- On/Off Commands: Basic switch control
- Custom Codes: Extensible for other RF protocols
Installation
- Include the RC-Switch plugin in your Sprocket project
- Connect 433MHz RF transmitter to configured GPIO pin
- Attach appropriate antenna for transmission
- Initialize the plugin with transmitter configuration
- Control switches via Sprocket events
Dependencies
- Sprocket-Core framework
- Arduino framework
- RCSwitch library
- TaskScheduler library
- ArduinoJson library
Platform Support
- ESP8266
- ESP32
Examples
See the examples/ directory for complete usage examples:
basic/- Basic RF switch control setup
RF Considerations
- Frequency: 433MHz ISM band operation
- Range: Typical range 10-100 meters (line of sight)
- Interference: May be affected by other 433MHz devices
- Regulations: Ensure compliance with local RF regulations
Power Requirements
- RF transmission requires adequate power
- Consider external power supply for reliable operation
- Monitor voltage levels during transmission
- Ensure stable power during RF operations
Use Cases
- Home Automation: Control RF outlets and switches
- Remote Control: Operate devices from Sprocket applications
- IoT Integration: Bridge between Sprocket and RF devices
- Automation: Schedule-based RF device control
Troubleshooting
- No Transmission: Check transmitter power and antenna
- Weak Signal: Verify antenna length and positioning
- Interference: Check for other 433MHz devices
- Range Issues: Ensure line of sight and adequate power
License
See LICENSE file for details.
Description
Languages
C++
81.9%
C
18.1%