├── .github ├── FUNDING.yml └── workflows │ ├── python-publish.yml │ └── test.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .yamllint ├── CHANGELOG.md ├── LICENSE ├── MANIFEST.in ├── README.md ├── bandit.yaml ├── calculate_device_credenial.py ├── get_devices.py ├── libdyson ├── __init__.py ├── cloud │ ├── __init__.py │ ├── account.py │ ├── cloud_360_eye.py │ ├── cloud_device.py │ ├── device_info.py │ ├── regions.py │ └── utils.py ├── const.py ├── discovery.py ├── dyson_360_eye.py ├── dyson_360_heurist.py ├── dyson_device.py ├── dyson_pure_cool.py ├── dyson_pure_cool_link.py ├── dyson_pure_hot_cool.py ├── dyson_pure_hot_cool_link.py ├── dyson_pure_humidify_cool.py ├── dyson_vacuum_device.py ├── exceptions.py └── utils.py ├── pyproject.toml ├── requirements.txt ├── requirements_test.txt ├── setup.cfg ├── setup.py └── tests ├── __init__.py ├── cloud ├── __init__.py ├── conftest.py ├── mocked_requests.py ├── test_bearer_auth.py ├── test_cloud_360_eye.py ├── test_dyson_account.py └── utils.py ├── conftest.py ├── mocked_mqtt.py ├── test_360_eye.py ├── test_360_heurist.py ├── test_device.py ├── test_discovery.py ├── test_fan_device.py ├── test_heating_device.py ├── test_init.py ├── test_pure_cool.py ├── test_pure_cool_formaldehyde.py ├── test_pure_cool_link.py ├── test_pure_hot_cool_link.py ├── test_pure_humidify_cool.py ├── test_purifier_humidify_cool_formaldehyde.py ├── test_utils.py └── test_vacuum.py /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | custom: ['https://www.buymeacoffee.com/shenxn'] 2 | -------------------------------------------------------------------------------- /.github/workflows/python-publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/.github/workflows/python-publish.yml -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/.github/workflows/test.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/.yamllint -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/LICENSE -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include libdyson *.crt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/README.md -------------------------------------------------------------------------------- /bandit.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/bandit.yaml -------------------------------------------------------------------------------- /calculate_device_credenial.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/calculate_device_credenial.py -------------------------------------------------------------------------------- /get_devices.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/get_devices.py -------------------------------------------------------------------------------- /libdyson/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/__init__.py -------------------------------------------------------------------------------- /libdyson/cloud/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/__init__.py -------------------------------------------------------------------------------- /libdyson/cloud/account.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/account.py -------------------------------------------------------------------------------- /libdyson/cloud/cloud_360_eye.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/cloud_360_eye.py -------------------------------------------------------------------------------- /libdyson/cloud/cloud_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/cloud_device.py -------------------------------------------------------------------------------- /libdyson/cloud/device_info.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/device_info.py -------------------------------------------------------------------------------- /libdyson/cloud/regions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/regions.py -------------------------------------------------------------------------------- /libdyson/cloud/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/cloud/utils.py -------------------------------------------------------------------------------- /libdyson/const.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/const.py -------------------------------------------------------------------------------- /libdyson/discovery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/discovery.py -------------------------------------------------------------------------------- /libdyson/dyson_360_eye.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_360_eye.py -------------------------------------------------------------------------------- /libdyson/dyson_360_heurist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_360_heurist.py -------------------------------------------------------------------------------- /libdyson/dyson_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_device.py -------------------------------------------------------------------------------- /libdyson/dyson_pure_cool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_pure_cool.py -------------------------------------------------------------------------------- /libdyson/dyson_pure_cool_link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_pure_cool_link.py -------------------------------------------------------------------------------- /libdyson/dyson_pure_hot_cool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_pure_hot_cool.py -------------------------------------------------------------------------------- /libdyson/dyson_pure_hot_cool_link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_pure_hot_cool_link.py -------------------------------------------------------------------------------- /libdyson/dyson_pure_humidify_cool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_pure_humidify_cool.py -------------------------------------------------------------------------------- /libdyson/dyson_vacuum_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/dyson_vacuum_device.py -------------------------------------------------------------------------------- /libdyson/exceptions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/exceptions.py -------------------------------------------------------------------------------- /libdyson/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/libdyson/utils.py -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | paho_mqtt 2 | cryptography>=3.1 3 | requests 4 | zeroconf 5 | attrs 6 | -------------------------------------------------------------------------------- /requirements_test.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/requirements_test.txt -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/setup.cfg -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/setup.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/__init__.py -------------------------------------------------------------------------------- /tests/cloud/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/__init__.py -------------------------------------------------------------------------------- /tests/cloud/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/conftest.py -------------------------------------------------------------------------------- /tests/cloud/mocked_requests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/mocked_requests.py -------------------------------------------------------------------------------- /tests/cloud/test_bearer_auth.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/test_bearer_auth.py -------------------------------------------------------------------------------- /tests/cloud/test_cloud_360_eye.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/test_cloud_360_eye.py -------------------------------------------------------------------------------- /tests/cloud/test_dyson_account.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/test_dyson_account.py -------------------------------------------------------------------------------- /tests/cloud/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/cloud/utils.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/mocked_mqtt.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/mocked_mqtt.py -------------------------------------------------------------------------------- /tests/test_360_eye.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_360_eye.py -------------------------------------------------------------------------------- /tests/test_360_heurist.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_360_heurist.py -------------------------------------------------------------------------------- /tests/test_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_device.py -------------------------------------------------------------------------------- /tests/test_discovery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_discovery.py -------------------------------------------------------------------------------- /tests/test_fan_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_fan_device.py -------------------------------------------------------------------------------- /tests/test_heating_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_heating_device.py -------------------------------------------------------------------------------- /tests/test_init.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_init.py -------------------------------------------------------------------------------- /tests/test_pure_cool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_pure_cool.py -------------------------------------------------------------------------------- /tests/test_pure_cool_formaldehyde.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_pure_cool_formaldehyde.py -------------------------------------------------------------------------------- /tests/test_pure_cool_link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_pure_cool_link.py -------------------------------------------------------------------------------- /tests/test_pure_hot_cool_link.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_pure_hot_cool_link.py -------------------------------------------------------------------------------- /tests/test_pure_humidify_cool.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_pure_humidify_cool.py -------------------------------------------------------------------------------- /tests/test_purifier_humidify_cool_formaldehyde.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_purifier_humidify_cool_formaldehyde.py -------------------------------------------------------------------------------- /tests/test_utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_utils.py -------------------------------------------------------------------------------- /tests/test_vacuum.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shenxn/libdyson/HEAD/tests/test_vacuum.py --------------------------------------------------------------------------------