blob: d86c39f1687751879d6aecb02f6072a777b75945 [file] [log] [blame] [view]
# Google Home UI Automator
Google Home Automator can help you automating your Google Home App.
## Getting Started
### Prerequisites
#### Python 3
You need a python 3 environment to run the script.
Google Home UI Automator requires python 3.9 or newer.
#### Android phone
1. turn on ***User Debugging*** mode on your android phone.
1. connect your android phone to computer.
#### Google Home App
1. You need to install Google Home App on your Android phone.
1. Login to your Google Home App.
1. Make sure the Google Home App's version is between `3.1.1.14` and
`3.10.1.6`(latest public version). Or `3.12.4.1`, `3.13.46.1`.
NOTE: Please select the correct Google account on Google Home App.
### Installation
1. clone this repo.
2. `cd` to the folder.
3. Run `pip install .`
## Usage
### Commissioning Matter device
```shell
$ ui-automator --commission DEVICE_NAME,PAIRING_CODE,ROOM_NAME
```
* `DEVICE_NAME`: desired Matter device, e.g. `m5stack`
* `PAIRING_CODE`: pairing code of your Matter device, e.g. `34970112332`
* `ROOM_NAME`: room that is going to be assigned, e.g. `Office`
### Decommissioning Matter device
```shell
$ ui-automator --decommission DEVICE_NAME
```
* `DEVICE_NAME`: display name of commissioned Matter device on GHA, e.g. `m5stack`
### Regression Test
```shell
$ ui-automator --commission DEVICE_NAME,PAIRING_CODE,ROOM_NAME --regtest [--repeat <REPEAT_TIMES>]
```
* flag `--regtest` is required
* regression test need to be used with flag `--commission`
* regression test now only supports commissioning/decommissioning cycle
* defaultly, regression test will run until users use keyboard interrupt to
stop the process
* add `--repeat` to run regression test in limited times
* `REPEAT_TIMES`: repeated times for regression test
## Roadmap
- [x] Commissioning Matter device
- [x] Decommissioning Matter device
- [x] Regression test of cycling commissioning/decommissioning
- [ ] Support regression test for devices that need additionally manual
operations after decommissioning to recover to BLE commissioning mode
- [ ] Share Fabric
- [ ] Get pairing code when sharing fabric
## Notice
* While UI Automation is processing, interfering android phone with any UI
operation might fail the automation.
## Report issue
- Click
[here](https://issuetracker.google.com/issues/new?component=655104&template=1694023)
to report any encountered issues.