- added dual dishwasher support

- updated documentation
- version bumps
This commit is contained in:
Jack Simbach 2022-09-04 16:21:30 -04:00
parent bda47eea1f
commit ac005af428
7 changed files with 96 additions and 6 deletions

View File

@ -1,6 +1,13 @@
# GE Home Appliances (SmartHQ) Changelog
## 0.6.5
- Added beverage cooler support (@kksligh)
- Added dual dishwasher support (@jkili)
- Added initial espresso maker support (@datagen24)
- Added whole home water heater support (@seantibor)
## 0.6.3
- Updated detection of invalid serial numbers (#89)

View File

@ -9,16 +9,18 @@ Integration for GE WiFi-enabled appliances into Home Assistant. This integratio
- Fridge
- Oven
- Dishwasher
- Dishwasher / F&P Dual Dishwasher
- Laundry (Washer/Dryer)
- Whole Home Water Filter
- Whole Home Water Softener
- Whole Home Water Heater
- A/C (Portable, Split, Window, Built-In)
- Range Hood
- Advantium
- Microwave
- Opal Ice Maker
- Coffee Maker
- Coffee Maker / Espresso Maker
- Beverage Center
**Forked from Andrew Mark's [repository](https://github.com/ajmarks/ha_components).**
## Updates

View File

@ -23,6 +23,7 @@ from .microwave import MicrowaveApi
from .water_softener import WaterSoftenerApi
from .oim import OimApi
from .coffee_maker import CcmApi
from .dual_dishwasher import DualDishwasherApi
_LOGGER = logging.getLogger(__name__)
@ -36,8 +37,12 @@ def get_appliance_api_type(appliance_type: ErdApplianceType) -> Type:
return CooktopApi
if appliance_type == ErdApplianceType.FRIDGE:
return FridgeApi
if appliance_type == ErdApplianceType.BEVERAGE_CENTER:
return FridgeApi
if appliance_type == ErdApplianceType.DISH_WASHER:
return DishwasherApi
if appliance_type == ErdApplianceType.DUAL_DISH_WASHER:
return DualDishwasherApi
if appliance_type == ErdApplianceType.WASHER:
return WasherApi
if appliance_type == ErdApplianceType.DRYER:

View File

@ -0,0 +1,61 @@
import logging
from typing import List
from homeassistant.helpers.entity import Entity
from gehomesdk.erd import ErdCode, ErdApplianceType
from .base import ApplianceApi
from ..entities import GeErdSensor, GeErdBinarySensor, GeErdPropertySensor
_LOGGER = logging.getLogger(__name__)
class DualDishwasherApi(ApplianceApi):
"""API class for dual dishwasher objects"""
APPLIANCE_TYPE = ErdApplianceType.DISH_WASHER
def get_all_entities(self) -> List[Entity]:
base_entities = super().get_all_entities()
lower_entities = [
GeErdSensor(self, ErdCode.DISHWASHER_CYCLE_STATE, erd_override="lower_cycle_state", icon_override="mdi:state-machine"),
GeErdSensor(self, ErdCode.DISHWASHER_RINSE_AGENT, erd_override="lower_rinse_agent", icon_override="mdi:shimmer"),
GeErdSensor(self, ErdCode.DISHWASHER_TIME_REMAINING, erd_override="lower_time_remaining"),
GeErdBinarySensor(self, ErdCode.DISHWASHER_DOOR_STATUS, erd_override="lower_door_status"),
#User Setttings
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "sound", erd_override="lower_setting", icon_override="mdi:volume-high"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "lock_control", erd_override="lower_setting", icon_override="mdi:lock"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "sabbath", erd_override="lower_setting", icon_override="mdi:star-david"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "cycle_mode", erd_override="lower_setting", icon_override="mdi:state-machine"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "presoak", erd_override="lower_setting", icon_override="mdi:water"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "bottle_jet", erd_override="lower_setting", icon_override="mdi:bottle-tonic-outline"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "wash_temp", erd_override="lower_setting", icon_override="mdi:coolant-temperature"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "dry_option", erd_override="lower_setting", icon_override="mdi:fan"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "wash_zone", erd_override="lower_setting", icon_override="mdi:dock-top"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "delay_hours", erd_override="lower_setting", icon_override="mdi:clock-fast")
]
upper_entities = [
#GeDishwasherControlLockedSwitch(self, ErdCode.USER_INTERFACE_LOCKED),
GeErdSensor(self, ErdCode.DISHWASHER_UPPER_CYCLE_STATE, erd_override="upper_cycle_state", icon_override="mdi:state-machine"),
GeErdSensor(self, ErdCode.DISHWASHER_UPPER_RINSE_AGENT, erd_override="upper_rinse_agent", icon_override="mdi:shimmer"),
GeErdSensor(self, ErdCode.DISHWASHER_UPPER_TIME_REMAINING, erd_override="upper_time_remaining"),
GeErdBinarySensor(self, ErdCode.DISHWASHER_UPPER_DOOR_STATUS, erd_override="upper_door_status"),
#User Setttings
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "sound", erd_override="upper_setting", icon_override="mdi:volume-high"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "lock_control", erd_override="upper_setting", icon_override="mdi:lock"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "sabbath", erd_override="upper_setting", icon_override="mdi:star-david"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "cycle_mode", erd_override="upper_setting", icon_override="mdi:state-machine"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "presoak", erd_override="upper_setting", icon_override="mdi:water"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "bottle_jet", erd_override="upper_setting", icon_override="mdi:bottle-tonic-outline"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "wash_temp", erd_override="upper_setting", icon_override="mdi:coolant-temperature"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "dry_option", erd_override="upper_setting", icon_override="mdi:fan"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "wash_zone", erd_override="upper_setting", icon_override="mdi:dock-top"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_UPPER_USER_SETTING, "delay_hours", erd_override="upper_setting", icon_override="mdi:clock-fast")
]
entities = base_entities + lower_entities + upper_entities
return entities

View File

@ -59,6 +59,8 @@ class FridgeApi(ApplianceApi):
interior_light: int = self.try_get_erd_value(ErdCode.INTERIOR_LIGHT)
proximity_light: ErdOnOff = self.try_get_erd_value(ErdCode.PROXIMITY_LIGHT)
display_mode: ErdOnOff = self.try_get_erd_value(ErdCode.DISPLAY_MODE)
lockout_mode: ErdOnOff = self.try_get_erd_value(ErdCode.LOCKOUT_MODE)
units = self.hass.config.units
@ -92,6 +94,10 @@ class FridgeApi(ApplianceApi):
fridge_entities.append(GeErdSwitch(self, ErdCode.PROXIMITY_LIGHT, ErdOnOffBoolConverter(), icon_on_override="mdi:lightbulb-on", icon_off_override="mdi:lightbulb"))
if(convertable_drawer and convertable_drawer != ErdConvertableDrawerMode.NA):
fridge_entities.append(GeErdSelect(self, ErdCode.CONVERTABLE_DRAWER_MODE, ConvertableDrawerModeOptionsConverter(units)))
if(display_mode and display_mode != ErdOnOff.NA):
fridge_entities.append(GeErdSwitch(self, ErdCode.DISPLAY_MODE, ErdOnOffBoolConverter(), icon_on_override="mdi:lightbulb-on", icon_off_override="mdi:lightbulb"))
if(lockout_mode and lockout_mode != ErdOnOff.NA):
fridge_entities.append(GeErdSwitch(self, ErdCode.LOCKOUT_MODE, ErdOnOffBoolConverter(), icon_on_override="mdi:lock", icon_off_override="mdi:lock-open"))
# Freezer entities
if fridge_model_info is None or fridge_model_info.has_freezer:

View File

@ -3,7 +3,7 @@
"name": "GE Home (SmartHQ)",
"config_flow": true,
"documentation": "https://github.com/simbaja/ha_gehome",
"requirements": ["gehomesdk==0.4.27","magicattr==0.1.5","slixmpp==1.7.1"],
"requirements": ["gehomesdk==0.5.5","magicattr==0.1.5","slixmpp==1.7.1"],
"codeowners": ["@simbaja"],
"version": "0.6.3"
"version": "0.6.5"
}

13
info.md
View File

@ -4,16 +4,18 @@ Integration for GE WiFi-enabled appliances into Home Assistant. This integratio
- Fridge
- Oven
- Dishwasher
- Dishwasher / F&P Dual Dishwasher
- Laundry (Washer/Dryer)
- Whole Home Water Filter
- Whole Home Water Softener
- Whole Home Water Heater
- A/C (Portable, Split, Window)
- Range Hood
- Advantium
- Microwave
- Opal Ice Maker
- Coffee Maker
- Coffee Maker / Espresso Maker
- Beverage Center
**Forked from Andrew Mark's [repository](https://github.com/ajmarks/ha_components).**
@ -63,6 +65,13 @@ A/C Controls:
#### Features
{% if version_installed.split('.') | map('int') < '0.6.5'.split('.') | map('int') %}
- Added beverage cooler support (@kksligh)
- Added dual dishwasher support (@jkili)
- Added initial espresso maker support (@datagen24)
- Added whole home water heater support (@seantibor)
{% endif %}
{% if version_installed.split('.') | map('int') < '0.6.0'.split('.') | map('int') %}
- Initial support for built-in air conditioners (@DaveZheng)
{% endif %}