* Make `async_flash_firmware` a public helper
* [ZBT-1] Implement flashing for Zigbee and Thread within the config flow
* WIP: Begin fixing unit tests
* WIP: Unit tests, pass 2
* WIP: pass 3
* Fix hardware unit tests
* Have the individual hardware integrations depend on the firmware flasher
* Break out firmware filter into its own helper
* Mirror to Yellow
* Simplify
* Simplify
* Revert "Have the individual hardware integrations depend on the firmware flasher"
This reverts commit 096f4297dc.
* Move `async_flash_silabs_firmware` into `util`
* Fix existing unit tests
* Unconditionally upgrade Zigbee firmware during installation
* Fix failing error case unit tests
* Fix remaining failing unit tests
* Increase test coverage
* 100% test coverage
* Remove old translation strings
* Add new translation strings
* Do not probe OTBR firmware when completing the flow
* More translation strings
* Probe OTBR firmware info before starting the addon
* Mark custom sentence triggers a local agent
* Don't change agent ID
* adds tests to confirm processed_locally is True
* move asserts to after null check
* Add schema supports to object selector
* Update format
* Update homeassistant/helpers/selector.py
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
---------
Co-authored-by: G Johansson <goran.johansson@shiftit.se>
* Add streaming support w/ audio to Android IP Webcam integration
* ruff reformat
* Fix ruff
* Break long comments and strings
* Add camera test
* Fix docstring
* Remove dead code
* Call library function to get URL
* Simplify
---------
Co-authored-by: Shay Levy <levyshay1@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Initial commit for VegeHub integration
* Moved several pieces to library, continuing.
* All device contact moved to library
* Updated documentation link
* Fixed an error in strings.json
* Removed commented out code and unused file
* Removed unneeded info logging, and a few missed lines of commented code
* Added/removed comments for clarity
* Converted integration to use webhooks.
* Update __init__.py to remove unnecessary code.
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Remove unnecessary code from config_flow.py
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
* Simplify unique_id assertion.
* Switch to CONF_ constant for user input
* Added explanation for passing exception.
* Got rid of try-except, since I don't really handle the exceptions her anyway.
* Moved data transform to vegehub library
* Changed references to use HA constants.
* Fixed assigning and returning _attr properties.
* Moved temperature sensor transform to the library.
* Moved sensor names to strings.json
* Made webhook names unique to avoid collisions when multiple devices are added.
* Converted to using entry.runtime_data
* Removed options flow for first PR
* Removed switch support to limit PR to one platform
* Removed/updated outdated tests
* Update homeassistant/components/vegehub/__init__.py
Co-authored-by: Josef Zweck <josef@zweck.dev>
* Got rid of strings in favor of constants.
* Got rid of unnecessary check
* Imported constant directly.
* Added custom type for entry
* Expanded CONF_ constants into sensor.py
* Get rid of extra `str` and `get`
Co-authored-by: Josef Zweck <josef@zweck.dev>
* Added type to errors
* Added try/except to MAC address retrieval
* Moved functionality out of ConfigFlow that shouldn't have been there
* Removed IP:MAC tracking from ConfigFlow
* Added retries to VegeHub PyPI package, and implemented them in integration
* Removed different sensor types for now
* Fixed typo
* Changed abort to error
* Fixed error reporting in config flow
* Further simplify sensor.py to handle all sensors the same
* Added comment to clarify
* Got rid of unused constants
* Removed unused strings in strings.json
* Added quality_scale.yaml
* Fixed problems in sensor init
* Moved config url and sw version storage into vegehub package
* Get rid of extra declaration
Co-authored-by: Josef Zweck <josef@zweck.dev>
* Removed unnecessary task
* Fix type for entry
* Added a test before setup
* Fixed tests and got test coverage of config flow to 100%
* Fixed test descriptions
* Implemented a coordinator
* Removed unused property
* Fixed a few minor issues with the coordinator implementation
* Removed unused function
* Fixed some tests
* Trying to fix a problem with re-initialization when server reboots. Mostly working.
* Moved hub.setup from async_setup_entry to config flow to avoid running it on system reboot
* Delete tests/testing_config/.storage/http.auth
* Fixed errors in coordinator.py
* Added IP validation for manual input IP addresses
* Moved data into self._discovered to simplify
* Removed redundant typing
* Shortened sensor unique ID and added coordinator handler
* Added call to super()._handle_coordinator_update() so state gets handled correctly
* Fixed == and is
* Got rid of "slot" and moved functionality to lib
* Got rid of mocked aiohttp calls in favor of just mocking the vegehub library
* Rewrote config flow to make more sense.
* Changed order of data and data_description
* Changes to sensor.py
* Got rid of async_update_data in coordinator and moved async_set_updated_data into webhook callback
* Changed sensor updates so that they keep using last known values if update doesn't contain data for them
* Changed config flow to use homeassistant.helpers.service_info zeroconf instead of homeassistant.components zeroconf
* Added types to test parameters
* Changes and notes in config_flow.py
* Minor fix to get existing tests working before making changes to tests
* Removed unused data and simplified data passing
* Fixed tests, removed unused data, moved sensor tests to snapshots
* Mocked async_setup_entry and async_unload_entry
* Eliminated retry step so that retries just happen in the user flow or zeroconf_confirm
* Bumped the library version
* Bumped library version again
* Changed test-before-setup test
* Improved use of coordinator
* Almost done reworking tests. A few more changes still needed.
* Added via device to sensor.py and key reference to strings.json
* Webhook tests are almost, but not quite, working
* Fully functional again
* Change error to assert
* made identifiers and via_device the same
* made the via_device just be the mac
* Fixed strings.json and updated translations
* Fixed test_sensor.py
* Cleaned up tests and added autouse to several fixtures to simplify
* Switched from error to assert, and added exemption to quality scale.
* Cleaned up some tests and added update of IP if unique ID of discovered device is the same.
* Improved zeroconfig to update IP and hostname, and added a test to make sure those work.
* Fixed a comment.
* Improved ip/hostname update test.
* Changed Hub to VegeHub in strings.json for clarity.
* Switched to using a base entity to simplify and make adding platforms in the future easier.
* Moved the vegehub object into the coordinator to simplify.
* Removed actuators from sensors, and added unique name for battery sensor
* Changed coordinator to manage its own data, changed sensors to use descriptions and return their value as a property
* Updated data retrieval keys
* Minor updates to several files
* Fixed a few things for pytest
* Reverted to explicit check for None for pytest
* Fixed a comment and a variable name
* Fixed a comment
* Fix
* Bumped depenency version to eliminate pytest from dependencies.
---------
Co-authored-by: Josef Zweck <24647999+zweckj@users.noreply.github.com>
Co-authored-by: Josef Zweck <josef@zweck.dev>
Co-authored-by: Joostlek <joostlek@outlook.com>
* Migrate Google Gen AI to use subentries
* Add reconfig successful msg
* Address comments
* Do not allow addin subentry when not loaded
* Let HA do the migration
* Use config_entries.async_setup
* Remove fallback name on base entity
* Fix
* Fix
* Fix device name assignment in entity and tts modules
* Fix tests
---------
Co-authored-by: Joostlek <joostlek@outlook.com>
* Handle router initialization and connection errors in options flow
Added checks in the Keenetic NDMS2 options flow to handle cases where the integration is not initialized or there are connection errors. Relevant user feedback and abort reasons are now provided to ensure a better user experience.
* Add filtering saved/default options for interfaces before preparing an options form
* Add trigger based fan entities to template integration
* more changes
* add tests
* update doc strings
---------
Co-authored-by: Erik Montnemery <erik@montnemery.com>
* Add action to Music Assistant to add currently playing item to favorites
* add test
* Convert to button entity
* review comments
* Update test_button.ambr
* Fix
---------
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Robert Resch <robert@resch.dev>