Files
core/homeassistant/components
Geoff eff35e93bd New core integration for VegeHub (#129598)
* 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>
2025-06-24 06:55:34 +02:00
..
2025-06-03 10:36:43 +02:00
2025-06-19 20:39:09 +02:00
2025-06-05 18:27:20 +02:00
2025-01-28 15:54:06 +01:00
2025-06-19 20:39:09 +02:00
2025-06-10 16:20:35 +02:00
2025-06-19 20:39:09 +02:00
2025-05-26 16:48:41 +02:00
2025-06-17 14:11:55 +02:00
2025-06-13 19:12:52 +02:00
2025-05-21 16:37:51 +01:00
2025-06-16 12:56:03 +01:00
2025-05-09 15:45:18 +02:00
2025-04-05 11:07:21 -10:00
2025-06-19 20:39:09 +02:00
2025-05-26 15:40:15 +02:00
2025-05-06 10:44:16 +02:00
2025-04-12 12:03:28 -10:00
2025-06-17 07:06:51 -07:00
2025-05-14 14:06:40 +02:00
2025-02-20 16:23:21 +01:00
2025-06-19 20:39:09 +02:00
2025-06-02 09:45:14 +02:00
2025-05-07 10:47:36 +02:00
2025-06-19 20:39:09 +02:00
2025-01-28 15:54:06 +01:00
2025-06-19 20:39:09 +02:00
2025-05-15 14:43:58 +02:00
2025-06-07 18:43:18 +02:00
2025-06-04 14:51:40 +02:00
2025-05-28 17:28:37 +01:00
2025-06-17 07:06:51 -07:00
2025-05-14 20:46:28 +02:00
2025-06-04 10:28:34 +02:00
2025-06-19 20:39:09 +02:00
2025-06-19 20:39:09 +02:00
2025-06-19 20:39:09 +02:00
2025-06-19 20:39:09 +02:00
2025-04-30 12:50:28 +02:00
2025-06-17 19:57:52 +02:00
2025-06-19 20:39:09 +02:00
2025-04-12 12:03:28 -10:00
2025-03-30 21:12:42 +03:00
2025-05-19 21:47:01 +02:00
2025-06-19 20:39:09 +02:00
2025-06-03 10:16:08 +02:00
2025-06-14 18:49:16 +02:00
2025-06-19 20:39:09 +02:00
2025-06-03 21:54:44 +02:00
2025-04-18 22:45:09 -10:00
2025-06-02 15:04:34 +02:00
2025-05-29 14:12:51 +02:00
2025-05-14 11:42:43 +02:00
2025-05-28 16:39:10 +02:00
2025-06-19 20:39:09 +02:00
2025-06-19 20:39:09 +02:00
2025-06-23 19:08:48 +02:00
2025-06-19 20:39:09 +02:00
2025-05-14 19:25:01 +02:00
2025-06-23 16:09:41 +02:00
2025-06-19 20:39:09 +02:00
2025-06-19 20:39:09 +02:00
2025-03-09 21:03:03 +02:00
2025-06-04 07:47:41 +01:00
2025-05-17 15:57:55 +02:00
2025-04-11 10:32:54 +02:00
2025-06-10 16:22:53 +02:00
2025-06-18 09:15:27 +02:00
2025-05-09 18:23:50 +02:00
2025-06-11 08:26:55 +02:00
2025-06-19 20:39:09 +02:00