mirror of
https://github.com/mjg59/python-broadlink.git
synced 2024-11-22 07:00:12 +01:00
Improve the CLI (#555)
* Add check humidity option * Rename type to devtype * Remove unnecessary try except clause * Add commands to README.md
This commit is contained in:
parent
822b3c3266
commit
d45c9d0850
119
cli/README.md
119
cli/README.md
@ -1,37 +1,29 @@
|
|||||||
Command line interface for python-broadlink
|
Command line interface for python-broadlink
|
||||||
===========================================
|
===========================================
|
||||||
|
|
||||||
This is a command line interface for broadlink python library
|
This is a command line interface for the python-broadlink API.
|
||||||
|
|
||||||
Tested with BroadLink RMPRO / RM2
|
|
||||||
|
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
You should have the broadlink python installed, this can be made in many linux distributions using :
|
You need to install the module first:
|
||||||
```
|
```
|
||||||
sudo pip install broadlink
|
pip3 install broadlink
|
||||||
```
|
```
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
-----------
|
-----------
|
||||||
Just copy this files
|
Download "broadlink_cli" and "broadlink_discovery".
|
||||||
|
|
||||||
|
|
||||||
Programs
|
Programs
|
||||||
--------
|
--------
|
||||||
|
* broadlink_discovery: Discover Broadlink devices connected to the local network.
|
||||||
|
|
||||||
|
* broadlink_cli: Send commands and query the Broadlink device.
|
||||||
|
|
||||||
|
|
||||||
* broadlink_discovery
|
Device specification formats
|
||||||
used to run the discovery in the network
|
|
||||||
this program withh show the command line parameters to be used with
|
|
||||||
broadlink_cli to select broadlink device
|
|
||||||
|
|
||||||
* broadlink_cli
|
|
||||||
used to send commands and query the broadlink device
|
|
||||||
|
|
||||||
|
|
||||||
device specification formats
|
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
Using separate parameters for each information:
|
Using separate parameters for each information:
|
||||||
@ -48,38 +40,99 @@ Using file with parameters:
|
|||||||
```
|
```
|
||||||
broadlink_cli --device @BEDROOM.device --temp
|
broadlink_cli --device @BEDROOM.device --temp
|
||||||
```
|
```
|
||||||
This is prefered as the configuration is stored in file and you can change
|
This is prefered as the configuration is stored in a file and you can change
|
||||||
just a file to point to a different hardware
|
it later to point to a different device.
|
||||||
|
|
||||||
Sample usage
|
Example usage
|
||||||
------------
|
-------------
|
||||||
|
|
||||||
Learn commands :
|
### Common commands
|
||||||
|
|
||||||
|
#### Join device to the Wi-Fi network
|
||||||
|
```
|
||||||
|
broadlink_cli --joinwifi SSID PASSWORD
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Discover devices connected to the local network
|
||||||
|
```
|
||||||
|
broadlink_discovery
|
||||||
|
```
|
||||||
|
|
||||||
|
### Universal remotes
|
||||||
|
|
||||||
|
#### Learn IR code and show at console
|
||||||
```
|
```
|
||||||
# Learn and save to file
|
|
||||||
broadlink_cli --device @BEDROOM.device --learnfile LG-TV.power
|
|
||||||
# LEard and show at console
|
|
||||||
broadlink_cli --device @BEDROOM.device --learn
|
broadlink_cli --device @BEDROOM.device --learn
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Learn RF code and show at console
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --rfscanlearn
|
||||||
|
```
|
||||||
|
|
||||||
Send command :
|
#### Learn IR code and save to file
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --learnfile LG-TV.power
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Learn RF code and save to file
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --rfscanlearn --learnfile LG-TV.power
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Send code
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --send DATA
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Send code from file
|
||||||
```
|
```
|
||||||
broadlink_cli --device @BEDROOM.device --send @LG-TV.power
|
broadlink_cli --device @BEDROOM.device --send @LG-TV.power
|
||||||
broadlink_cli --device @BEDROOM.device --send ....datafromlearncommand...
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Get Temperature :
|
#### Check temperature
|
||||||
```
|
```
|
||||||
broadlink_cli --device @BEDROOM.device --temperature
|
broadlink_cli --device @BEDROOM.device --temperature
|
||||||
```
|
```
|
||||||
|
|
||||||
Get Energy Consumption (For a SmartPlug) :
|
#### Check humidity
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --temperature
|
||||||
|
```
|
||||||
|
|
||||||
|
### Smart plugs
|
||||||
|
|
||||||
|
#### Turn on
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --turnon
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Turn off
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --turnoff
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Turn on nightlight
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --turnnlon
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Turn off nightlight
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --turnnloff
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Check power state
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --check
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Check nightlight state
|
||||||
|
```
|
||||||
|
broadlink_cli --device @BEDROOM.device --checknl
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Check power consumption
|
||||||
```
|
```
|
||||||
broadlink_cli --device @BEDROOM.device --energy
|
broadlink_cli --device @BEDROOM.device --energy
|
||||||
```
|
```
|
||||||
|
|
||||||
Once joined to the Broadlink provisioning Wi-Fi, configure it with your Wi-Fi details:
|
|
||||||
```
|
|
||||||
broadlink_cli --joinwifi MySSID MyWifiPassword
|
|
||||||
```
|
|
||||||
|
@ -70,6 +70,7 @@ parser.add_argument("--type", type=auto_int, default=0x2712, help="type of devic
|
|||||||
parser.add_argument("--host", help="host address")
|
parser.add_argument("--host", help="host address")
|
||||||
parser.add_argument("--mac", help="mac address (hex reverse), as used by python-broadlink library")
|
parser.add_argument("--mac", help="mac address (hex reverse), as used by python-broadlink library")
|
||||||
parser.add_argument("--temperature", action="store_true", help="request temperature from device")
|
parser.add_argument("--temperature", action="store_true", help="request temperature from device")
|
||||||
|
parser.add_argument("--humidity", action="store_true", help="request humidity from device")
|
||||||
parser.add_argument("--energy", action="store_true", help="request energy consumption from device")
|
parser.add_argument("--energy", action="store_true", help="request energy consumption from device")
|
||||||
parser.add_argument("--check", action="store_true", help="check current power state")
|
parser.add_argument("--check", action="store_true", help="check current power state")
|
||||||
parser.add_argument("--checknl", action="store_true", help="check current nightlight state")
|
parser.add_argument("--checknl", action="store_true", help="check current nightlight state")
|
||||||
@ -92,16 +93,16 @@ args = parser.parse_args()
|
|||||||
|
|
||||||
if args.device:
|
if args.device:
|
||||||
values = args.device.split()
|
values = args.device.split()
|
||||||
type = int(values[0], 0)
|
devtype = int(values[0], 0)
|
||||||
host = values[1]
|
host = values[1]
|
||||||
mac = bytearray.fromhex(values[2])
|
mac = bytearray.fromhex(values[2])
|
||||||
elif args.mac:
|
elif args.mac:
|
||||||
type = args.type
|
devtype = args.type
|
||||||
host = args.host
|
host = args.host
|
||||||
mac = bytearray.fromhex(args.mac)
|
mac = bytearray.fromhex(args.mac)
|
||||||
|
|
||||||
if args.host or args.device:
|
if args.host or args.device:
|
||||||
dev = broadlink.gendevice(type, (host, 80), mac)
|
dev = broadlink.gendevice(devtype, (host, 80), mac)
|
||||||
dev.auth()
|
dev.auth()
|
||||||
|
|
||||||
if args.joinwifi:
|
if args.joinwifi:
|
||||||
@ -113,14 +114,12 @@ if args.convert:
|
|||||||
print(format_durations(durations))
|
print(format_durations(durations))
|
||||||
if args.temperature:
|
if args.temperature:
|
||||||
print(dev.check_temperature())
|
print(dev.check_temperature())
|
||||||
|
if args.humidity:
|
||||||
|
print(dev.check_humidity())
|
||||||
if args.energy:
|
if args.energy:
|
||||||
print(dev.get_energy())
|
print(dev.get_energy())
|
||||||
if args.sensors:
|
if args.sensors:
|
||||||
try:
|
data = dev.check_sensors()
|
||||||
data = dev.check_sensors()
|
|
||||||
except:
|
|
||||||
data = {}
|
|
||||||
data['temperature'] = dev.check_temperature()
|
|
||||||
for key in data:
|
for key in data:
|
||||||
print("{} {}".format(key, data[key]))
|
print("{} {}".format(key, data[key]))
|
||||||
if args.send:
|
if args.send:
|
||||||
|
Loading…
Reference in New Issue
Block a user