| # 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. |