Skip to content

Python module for controlling Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs

License

Notifications You must be signed in to change notification settings

toxicgumbo/python-broadlink

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python control for Broadlink RM2, RM3 and RM4 series controllers

A simple Python API for controlling IR/RF controllers from Broadlink. At present, the following devices are currently supported:

  • RM Pro (referred to as RM2 in the codebase)
  • A1 sensor platform devices are supported
  • RM3 mini IR blaster
  • RM4 and RM4C mini blasters
  • SP2/SP3/SP4 smart plugs

There is currently no support for the cloud API.

Example use

Setup a new device on your local wireless network:

  1. Put the device into AP Mode
  2. Long press the reset button until the blue LED is blinking quickly.
  3. Long press again until blue LED is blinking slowly.
  4. Manually connect to the WiFi SSID named BroadlinkProv.
  5. Run setup() and provide your ssid, network password (if secured), and set the security mode
  6. Security mode options are (0 = none, 1 = WEP, 2 = WPA1, 3 = WPA2, 4 = WPA1/2)
import broadlink

broadlink.setup('myssid', 'mynetworkpass', 3)

Discover available devices on the local network:

import broadlink

devices = broadlink.discover(timeout=5)

You may need to specify local_ip_address or discover_ip_address if discovery does not return any devices.

Using your machine's IP address with local_ip_address

import broadlink

devices = broadlink.discover(timeout=5, local_ip_address=192.168.0.100)

Using your subnet's broadcast address with discover_ip_address

import broadlink

devices = broadlink.discover(timeout=5, discover_ip_address=192.168.0.255)

Obtain the authentication key required for further communication:

devices[0].auth()

Enter learning mode:

devices[0].enter_learning()

Sweep RF frequencies:

devices[0].sweep_frequency()

Cancel sweep RF frequencies:

devices[0].cancel_sweep_frequency()

Check whether a frequency has been found:

found = devices[0].check_frequency()

(This will return True if the RM has locked onto a frequency, False otherwise)

Attempt to learn an RF packet:

found = devices[0].find_rf_packet()

(This will return True if a packet has been found, False otherwise)

Obtain an IR or RF packet while in learning mode:

ir_packet = devices[0].check_data()

(This will return None if the device does not have a packet to return)

Send an IR or RF packet:

devices[0].send_data(ir_packet)

Obtain temperature data from an RM2:

devices[0].check_temperature()

Obtain sensor data from an A1:

data = devices[0].check_sensors()

Set power state on a SmartPlug SP2/SP3/SP4:

devices[0].set_power(True)

Check power state on a SmartPlug:

state = devices[0].check_power()

Check energy consumption on a SmartPlug:

state = devices[0].get_energy()

Set power state for S1 on a SmartPowerStrip MP1:

devices[0].set_power(1, True)

Check power state on a SmartPowerStrip:

state = devices[0].check_power()

About

Python module for controlling Broadlink RM2/3 (Pro) remote controls, A1 sensor platforms and SP2/3 smartplugs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%