1
0
mirror of https://github.com/mjg59/python-broadlink.git synced 2024-06-03 06:10:12 +02:00
python-broadlink/README.md

157 lines
3.6 KiB
Markdown
Raw Normal View History

Python control for Broadlink devices
2016-09-15 17:06:26 +02:00
===============================================
A simple Python API for controlling Broadlink devices. At present, the following devices are supported:
- Universal remotes: `RM pro`, `RM pro+`, `RM pro plus`, `RM mini 3`, `RM4 pro`, `RM4 mini`, `RM4C mini`, `RM4S`
- Smart plugs: `SP1`, `SP2`, `SP mini`, `SP mini+`, `SP3`, `SP3S`, `SP4L`, `SP4M`
- Power strips: `MP1-1K4S`, `MP1-1K3S2U`, `MP2`
- Control box: `SC1`, `SCB1E`, `MCB1`
- Sensors: `A1`
- Alarm kit: `S1C`, `S2KIT`
- Light bulb: `LB1`, `SB800TD`
Other devices with Broadlink DNA:
- Smart plugs: `Ankuoo NEO`, `Ankuoo NEO PRO`, `Efergy Ego`, `BG AHC/U-01`
- Outlet: `BG 800`, `BG 900`
- Curtain motor: `Dooya DT360E-45/20`
- Thermostat: `Hysen HY02B05H`
There is currently no support for the cloud API.
2016-09-15 17:06:26 +02:00
Example use
-----------
Setup a new device on your local wireless network:
1. Put the device into AP Mode
1. Long press the reset button until the blue LED is blinking quickly.
2. Long press again until blue LED is blinking slowly.
3. Manually connect to the WiFi SSID named BroadlinkProv.
2. Run setup() and provide your ssid, network password (if secured), and set the security mode
1. 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:
2016-09-15 17:06:26 +02:00
```
import broadlink
devices = broadlink.discover(timeout=5)
2016-09-15 17:06:26 +02:00
```
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')
```
2016-09-15 17:06:26 +02:00
Obtain the authentication key required for further communication:
```
devices[0].auth()
2016-09-15 17:06:26 +02:00
```
Enter learning mode:
```
devices[0].enter_learning()
2016-09-15 17:06:26 +02:00
```
2017-11-25 21:38:57 +01:00
Sweep RF frequencies:
```
devices[0].sweep_frequency()
```
Cancel sweep RF frequencies:
```
devices[0].cancel_sweep_frequency()
```
2017-11-25 21:38:57 +01:00
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:
2016-09-15 17:06:26 +02:00
```
ir_packet = devices[0].check_data()
2016-09-15 17:06:26 +02:00
```
(This will return None if the device does not have a packet to return)
Send an IR or RF packet:
2016-09-15 17:06:26 +02:00
```
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()
2016-09-15 17:06:26 +02:00
```
2020-10-23 00:54:30 +02:00
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()
```
2018-04-19 22:45:50 +02:00
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()
```
Get state on a bulb
```
state=devices[0].get_state()
```
Set a state on a bulb
```
devices[0].set_state(pwr=0)
devices[0].set_state(pwr=1)
devices[0].set_state(brightness=75)
devices[0].set_state(bulb_colormode=0)
devices[0].set_state(blue=255)
devices[0].set_state(red=0)
devices[0].set_state(green=128)
devices[0].set_state(bulb_colormode=1)
```