Skip to content
This repository was archived by the owner on Dec 25, 2025. It is now read-only.

Rnage Hood Support#11

Open
casey-a-barber wants to merge 385 commits into
ajmarks:masterfrom
simbaja:master
Open

Rnage Hood Support#11
casey-a-barber wants to merge 385 commits into
ajmarks:masterfrom
simbaja:master

Conversation

@casey-a-barber

Copy link
Copy Markdown

Would it be possible to add support for range hoods? The particular one I have is a UVC9360SL1SS.

simbaja and others added 30 commits August 7, 2021 19:48
- modified climate control to turn on the A/C unit when setting modes
- added async on/off methods to climate
- added initial split ac climate entity support
- added icon for climate entities
- fixed some iconography
- updated SDK version to resolve a few issues
- documentation updates
- version bump
tdfountain and others added 19 commits December 25, 2024 09:38
…#317)

* v0.6.13 (#299)

* Update for gehome library changes associated iwth GE Profile washer and dryer implementation

---------

Co-authored-by: simbaja <59273948+simbaja@users.noreply.github.com>
Co-authored-by: Jack Simbach <jack.simbach@gmail.com>
- version bump
- restructured appliance type mapper
… 'unit_type') and add 240V Cafe standalone to enum in library (#333)

* v0.6.13 (#299)

* Fix Advantium 'unit_type' error.

Fix "AttributeError: 'GeAdvantium' object has no attribute 'unit_type'" error, by using the personality to determine unit_type.

* Add Advantium 240v Cafe standalone to 240v check.

Requires update from gehome library (pull request submitted there to account for this model).

---------

Co-authored-by: simbaja <59273948+simbaja@users.noreply.github.com>
Co-authored-by: Jack Simbach <jack.simbach@gmail.com>
- switched to date-based versioning
* - cleanup
* - additional exception handling (attempt to fix #356)
* - added boost/active modes to water heater
…stringprep warning (#385)

* Silence  stringprep warning

On systems without cython installed the underlying slixmpp library logs a frequent performance warning about stringprep.

This warning is not actionable for most users and creates unnecessary noise in the logs. This change silences the warning by setting the specific logger's level to ERROR, preventing the message from appearing without affecting functionality.

* Add native switch for refrigerator K-Cup hot water

This adds a new switch entity to control the K-Cup/hot water brewing feature on compatible GE fridges.

This change makes it a native switch that is automatically discovered, providing a user-friendly experience directly on the device card.

The new switch is only created for devices that report having the hot water feature, so it shouldn't affect users with other appliance models.

* washer toggle attempt

The idea if it works is that this will create a switch that monitors the status of the machine.  OFF is unit is off, -and- ON is when its in RPP delay status.  When it's ON it can be selected to start the cycle.  Very basic attempt here that needs tested to refine.

* Update __init__.py

Forgot to push the line.

* Full implementation of RPP control switches

This adds RPP control switches to washers and dryers with remote delay functionality.  Device must be in the remote delay mode for the button to be available -and- for a press event to work.

* dryer.py update

Adding to have the button exactly as the washer.

* Additional model support

Some models do not report "Delay Run" as a status code.  Changes made that permit support for more models.
- updated documentation of changes
- updated version
mitchjust and others added 10 commits October 12, 2025 09:19
* Handle Dual ERD controls for water heaters

* Handle Dual ERD controls for water heaters

---------

Co-authored-by: mitchjust <mitchjust@canva.com>
* Add heat mode for Window ACs that support it

* bug fixes

* redundant
…initialization of all other valid/supported devices (#422)

* Resolves issue where a single invalid/unsupported
blocks the initialization of all valid/supported
devices.

* Fix return type of _is_appliance_valid method
Also, sync up with heat-related updates to gehomesdk - REQUIRES gehomesdk 2025.6.0.
* Updates for Monogram Advantium Speed Oven

* Removed some debug not required anymore.

* Implement sw_version property in AdvantiumApi

Add a property to retrieve software version information.

* Refactor temperature handling and cook settings
- removed slixmpp dependency
- pylance cleanup of issues
- updated advantium for new enum names
- fixed ac climate initialization
- added support for new-style hood fan/light (e.g. Haier)
- improved debugging for coordinator
- updated library dependency and HA version
- code refactoring to improve reliability
- added stale device/entity removal
- changed device identifier to mac address
- added brand inference for devices
- cached certain device properties that shouldn't change
- forced oven temperature_unit for ovens to be fahrenheit
- added dishwasher remote start command button
- added entity categorization
- added additional error handling for new HVAC heating mode logic
- added duration for timer entities (resolves #312)
- added suggested uom/precision properties (resolves #312)
- updated laundry enities to use sugested uom (resolves #312)
- set suggested units for timers
* Cooktop Sensor - fixes #440 (#454)

* add cooktop binary sensor

* fix: use the GeCooktopStatusBinarySensor

* fix: aggregate burner status

* fix: prioritize reading ErdCode.COOKTOP_STATUS_EXT

* fix: indentation

* Change mode names for Haier water heaters (#442)

* change mode names for Haier water heaters

* adapt to spelling mistake in gehomesdk (erd_brand.py)

* Add 'DRY' mode to HVAC options and mappings (#441)

Adds dry mode to window ACs

* Add GeWasherCycleButton to WasherDryerApi (#462)

Added the capability to Remote Start WasherDryer Combos, using the existing Washer button entity

* Fix: Persist ApplianceApis on reconnect to prevent duplicate entities (#464)

This commit addresses an issue where GE Home entities would stop updating and generate 'Unique ID already exists' errors after a network disconnection.

Root Cause:
Previously, the integration cleared its internal device list upon any connection drop. When the client reconnected, new device objects were created, but existing Home Assistant entities remained linked to the old (destroyed) objects. This caused orphans and unique ID conflicts.

Fix:
- Modified _reset_sync_state() to PRESERVE the device list on disconnect, allowing existing entities to reconnect.
- Moved the device list clearing to async_reset() for proper cleanup on unload.
- Updated _async_remove_stale_devices to prune stale devices by cross-referencing against the authoritative cloud roster, preventing 'zombie' devices.

Verification:
Verified using a standalone reproduction script with mocked components. The simulation confirmed that device objects persist across reconnections and stale devices are correctly removed.

* Add DishDrawer User Setting wifi_enabled (read only) (#463)

* add wifi_enabled

The erd for remote command availability does not appear to be used as it is always available.
Remote start is enabled by a button on each drawer.

* Update dual_dishwasher.py

* import GeErdPropertyBinarySensor

* Update dual_dishwasher.py

* Update dual_dishwasher.py

* Update dual_dishwasher.py

* Update dual_dishwasher.py

* Update dual_dishwasher.py

* Update dual_dishwasher.py

* Update ge_erd_property_binary_sensor.py

* Update ge_erd_property_binary_sensor.py

* Update ge_erd_property_binary_sensor.py

* fix import GeErdPropertyBinarySensor

* - bumped the version
- fixed an issue with the cooktop status binary sensor

* - made LAUNDRY_MACHINE_STATE diagnostic on all appliances (resolves #447)

* - updated documentation

---------

Co-authored-by: Eric Levicky <ericlevicky@gmail.com>
Co-authored-by: Dan1l1 <Daniel.Magg@gmx.net>
Co-authored-by: PCPSHA <antenna.58-lampoon@icloud.com>
Co-authored-by: andyjohnschneider <andyjohnschneider@gmail.com>
Co-authored-by: Tan Vachiramon <tanvach@users.noreply.github.com>
Co-authored-by: sgraystar <49742396+sgraystar@users.noreply.github.com>
* Restore appliance availability on state update (#495)

* Fix oven off mode to use HA's STATE_OFF constant (#485)

OP_MODE_OFF was set to "Off" (capitalized) but Home Assistant's
STATE_OFF constant is "off" (lowercase). This mismatch causes the
HomeKit Bridge to not recognize the off state when checking
STATE_OFF in operation_list, preventing the Off toggle from
appearing in HomeKit for oven entities.

All internal comparisons use the OP_MODE_OFF constant so this
change is safe — the string is never sent to the appliance (only
the ErdOvenCookMode enum is).

Co-authored-by: Jon Gordner <jgordner@Family-MacBook-Pro.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Allow eco mode access for non-heating split ACs (#474)

* Allow support for energy saver on split ac without heating

* has_energy_saver not valid test... assume energy save always present

* Avoid returning None for oven target_temperature (#457)

When the oven is off, current_cook_setting.temperature may be None.
This causes target_temperature to return None, which breaks downstream
consumers that expect a numeric value (e.g. Google Assistant device
state serialization).

Return a valid numeric temperature instead of None so the oven entity
always exposes a stable target_temperature value.

This prevents Google Assistant queries from failing with:
TypeError: float() argument must be a string or a real number, not 'NoneType'

* - fixed the typing issue in target_temperature

* - refactored common cooktop logic to apply to cooktop and oven devices

* - added cooktop specific entities

* - added kitchen timer to cooktop
- added gas cooktop to known device mapping

* - requirements/version bump

* - added kitchen timer numbers (in minutes)

* - tightened device/state class for sensors
- fixed issue where dehumidifier sensors should have been binary sensors

* - tightened typing for binary sensor device class

* Ignore non-printable serial numbers and fall back to MAC as unique device identifier (#502)

* - updated gehomesdk dependency

* - documentation updates

* - added quiet/turbo mode (resolves #397)
- added some potential support for dishwasher delay start for some models (see #434)

* - documentation update

* - updated manifest to increment gehomesdk dependency
- updated config flow to expose the mfa/terms errors
- added resource usage sensors to the base appliance (resolves #335, #492)

* - updated documentation

* - changed to pin specific SDK version

* Honour metric measurement system for Fisher & Paykel oven temperatures (#509)

Metric-market Fisher & Paykel ovens report raw ERD temperatures in
Celsius, but the integration hard-codes Fahrenheit and lets Home
Assistant convert, double-converting (a real 241C shows as 116C; idle
sensors read -17.78C). #248 confirms the F&P raw-temperature ERD is
already Celsius.

GE appliances, by contrast, always transmit Fahrenheit and can report
METRIC while still sending Fahrenheit (#54, simbaja/gehome#21), so the
unit ERD cannot be trusted globally. Trust it only for F&P-branded
ovens, leaving every GE appliance on the historical behaviour:

- base.py: expose the resolved brand as an ErdBrand (brand_id, factored
  out of the existing brand property) plus an is_fisher_paykel helper.
- ge_oven.py: the oven water_heater temperature_unit returns Celsius
  only when the appliance is F&P and reports METRIC.
- ge_oven_sensor.py (new): GeOvenErdTemperatureSensor reports Celsius
  for the oven's diagnostic temperature sensors under the same
  condition. The shared GeErdSensor._get_uom() is left untouched.
- const.py: map VENT_BAKE so the oven operation no longer falls through
  to Unknown.

Fixes #496

Co-authored-by: simbaja <59273948+simbaja@users.noreply.github.com>

* Update hood controls for better UX in HomeAssistant and Apple Home UI (#507)

* Add native hood HomeKit entities
* Infer GE brand for UVC hood models
* Document hood HomeKit entities

* - refactoring of hood light and fan code

* - version bump
- documentation updates

* - reverted #509 leaving just the brand framework

---------

Co-authored-by: Eli Bosley <11823237+elibosley@users.noreply.github.com>
Co-authored-by: Jon Gordner <jgordner@users.noreply.github.com>
Co-authored-by: Jon Gordner <jgordner@Family-MacBook-Pro.local>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Jacob Myers <76993396+Jyers@users.noreply.github.com>
Co-authored-by: bxthomas <bxthomas@gmail.com>
Co-authored-by: Ben Hamilton (Ben Gertzfield) <bhamiltoncx@gmail.com>
Co-authored-by: Jack McIntyre <jack@jackmcintyre.net>
Co-authored-by: Federico Holgado <fholgado@gmail.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.