Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GE Advantium Cook Action Error #35

Closed
willhayslett opened this issue Aug 20, 2021 · 14 comments
Closed

GE Advantium Cook Action Error #35

willhayslett opened this issue Aug 20, 2021 · 14 comments

Comments

@willhayslett
Copy link

Hi @simbaja,

I'm getting the following error when attempting to execute an Operation against my Advantium microwave oven. This occurs when attempting any operation type:

File "/config/custom_components/ge_home/entities/advantium/ge_advantium.py", line 185, in async_set_operation_mode
    elif self.current_cook_setting.cook_action == CookAction.PAUSE:
AttributeError: 'bytes' object has no attribute 'cook_action'
����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

A bit more of the stack trace if helpful:

2021-08-20 16:57:28 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140500039487744] 'bytes' object has no attribute 'cook_action'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 185, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1491, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1526, in _execute_service
    await handler.job.target(service_call)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await self.hass.helpers.service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 658, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 811, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 695, in _handle_entity_call
    await result
  File "/config/custom_components/ge_home/entities/advantium/ge_advantium.py", line 185, in async_set_operation_mode
    elif self.current_cook_setting.cook_action == CookAction.PAUSE:
AttributeError: 'bytes' object has no attribute 'cook_action'
@willhayslett
Copy link
Author

Playing around with the code a little bit and this is the value I'm getting for the current_cook_setting property:

2021-08-20 21:10:39 INFO (MainThread) [custom_components.ge_home.entities.advantium.ge_advantium] self.appliance.get_erd_value = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2021-08-20 21:10:39 INFO (MainThread) [custom_components.ge_home.entities.advantium.ge_advantium] self.current_cook_setting = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

I'd think we need to decode something but these all are null bytes. For kicks I added a check for that specific value (there's got to be a better way - maybe at the SDK level) in the elif block.

action = CookAction.START
        if mode == AdvantiumOperationMode.OFF:
            action = CookAction.STOP
        elif self.current_cook_setting != b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00':
            if self.current_cook_setting.cook_action == CookAction.PAUSE:
                action = CookAction.RESUME
            elif self.current_cook_setting.cook_action in [CookAction.START, CookAction.RESUME]:
                action = CookAction.UPDATED

            #construct the new mode based on the existing mode
            new_cook_mode = self.current_cook_setting
            new_cook_mode.d = randrange(255)
            new_cook_mode.target_temperature = target_temp
            if(setting.target_power_level != 0):
                new_cook_mode.power_level = setting.target_power_level
            new_cook_mode.cook_mode = setting.cook_mode
            new_cook_mode.cook_action = action

            await self.appliance.async_set_erd_value(ErdCode.ADVANTIUM_COOK_SETTING, new_cook_mode)

It removes the error but the async_write_ha_state call eventually fails with the following:

2021-08-20 21:10:22 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/config/custom_components/ge_home/update_coordinator.py", line 267, in on_device_update
    entity.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 412, in async_write_ha_state
    raise RuntimeError(f"Attribute hass is None for {self}")
RuntimeError: Attribute hass is None for <Entity xxxxxxxxx Unit Type: Type 120V Cafe>

@willhayslett
Copy link
Author

Sure enough this is what I get from the sdk:

DEBUG    Setting ErdCode.ADVANTIUM_COOK_SETTING to b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

Full output:

DEBUG    Event triggered: message
DEBUG    Setting ErdCode.MODEL_NUMBER to CSB913P2N2S1
DEBUG    Setting ErdCode.SERIAL_NUMBER to xxxxxxxxxx
DEBUG    Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL
DEBUG    Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.ADVANTIUM
DEBUG    Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_CAFE
DEBUG    Setting 0x0037 to b'\x00'
DEBUG    Setting 0x0039 to b'\x00\x00\x00\x00'
DEBUG    Setting 0x003a to b'\x00\x00\t\t'
DEBUG    Setting 0x003b to b'\x00\x00\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_KITCHEN_TIME_REMAINING to 0:00:00
DEBUG    Setting 0x008f to b'\x03\x00'
DEBUG    Setting 0x0090 to b'\xe0\x01\x02\x00'
DEBUG    Setting 0x0092 to b'\x00\x00\x00\x01\x00\x00\x00\x03'
DEBUG    Setting 0x0093 to b'\x00\x05\x00\x01\x00\x00\x01\xfb'
DEBUG    Setting 0x0098 to b'\x00r\x00\x01\x80'
DEBUG    Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.2.68
DEBUG    Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
DEBUG    Setting ErdCode.APPLIANCE_UPDATING to False
DEBUG    Setting ErdCode.LCD_SW_VERSION to 0.0.9.9
DEBUG    Setting ErdCode.LCD_SW_VERSION_AVAILABLE to 0.0.0.0
DEBUG    Setting ErdCode.LCD_UPDATING to False
DEBUG    Setting ErdCode.END_TONE to ErdEndTone.BEEP
DEBUG    Setting ErdCode.CONVECTION_CONVERSION to False
DEBUG    Setting ErdCode.OVEN_MODE_MIN_MAX_TEMP to OvenRanges(lower=245, upper=450)
DEBUG    Setting ErdCode.UPPER_OVEN_DISPLAY_TEMPERATURE to 164
DEBUG    Setting ErdCode.UPPER_OVEN_REMOTE_ENABLED to True
DEBUG    Setting ErdCode.MICROWAVE_RECIPE_STATUS to b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_REMOTE_COOK_MODE_CONFIG to ErdAdvantiumRemoteCookModeConfig(microwave_staged_time_enable=True, microwave_staged_temp_enable=True, microwave_slow_cook_time_enable=True, microwave_slow_cook_temp_enable=False, precision_cook_time_enable=True, precision_cook_temp_enable=False, precision_cook_staged_time_enable=True, precision_cook_staged_temp_enable=False, precision_cook_custom_time_enable=True, precision_cook_custom_temp_enable=False, precision_cook_custom_upper_heater_enable=True, precision_cook_custom_lower_heater_enable=True, precision_cook_custom_microwave_enable=True, precision_cook_custom_convection_enable=False, warm_enable=True, warm_time_enable=False, warm_temp_enable=True, proof_enable=True, proof_time_enable=False, proof_temp_enable=False, toast_enable=True, toast_time_enable=False, toast_temp_enable=False, steam_clean_time_enable=True, steam_clean_temp_enable=False, convection_bake_enable=True, convection_bake_time_enable=True, convection_bake_temp_enable=True, broil_enable=True, broil_time_enable=False, broil_temp_enable=False, microwave_time_enable=True, microwave_temp_enable=False, microwave_sensor_time_enable=True, microwave_sensor_temp_enable=False, raw_value='0f03474745477774770b0303050000000100000034a40e000fd9060004000000')
DEBUG    Setting ErdCode.ADVANTIUM_COOK_STATUS to ErdAdvantiumCookStatus(cook_action=<CookAction.STOP: 0>, cook_mode=<CookMode.NO_MODE: 0>, termination_reason=<TerminationReason.COOK_TIME_COMPLETE: 1>, preheat_status=<PreheatStatus.NO_PREHEAT: 0>, temperature=0, power_level=10, door_status=<DoorStatus.CLOSED: 1>, sensing_active=<SensingActive.INACTIVE: 0>, cooling_fan_status=<CoolingFanStatus.OFF: 0>, oven_light_status=<OvenLightStatus.OFF: 0>, warm_status=<WarmStatus.OFF: 0>, raw_value='cc00000100000000000a000100000000')
DEBUG    Setting ErdCode.ADVANTIUM_COOK_SETTING to b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_COOK_TIME_REMAINING to 0:00:00
DEBUG    Setting ErdCode.ADVANTIUM_COOK_TIME_ADJUST to 0
DEBUG    Setting ErdCode.ADVANTIUM_PRECISION_VERSION to b'\xd8\x1e\xb1\xd7@\x07\x9at\x82\xc7\x15\xbc_\xadF\xbes\x11q\xfe\xf4@2\xed\xd5\xe9n\x0f\x1d\xbf.\xf7'
DEBUG    Setting ErdCode.ADVANTIUM_UNKNOWN_5406 to b'\xff\xff\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_COOK_TIME_MIN_MAX to ErdAdvantiumCookTimeMinMax(is_valid=True, convection_min_time=datetime.timedelta(seconds=60), convection_max_time=datetime.timedelta(seconds=10800), broil_min_time=datetime.timedelta(0), broil_max_time=datetime.timedelta(0), warm_min_time=datetime.timedelta(0), warm_max_time=datetime.timedelta(0), proof_min_time=datetime.timedelta(0), proof_max_time=datetime.timedelta(0), slow_cook_min_time=datetime.timedelta(0), slow_cook_max_time=datetime.timedelta(0), raw_value='003c2a3000000000000000000000000000000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_MICROWAVE_MIN_MAX to ErdAdvantiumMicrowaveMinMax(is_valid=True, min_time=datetime.timedelta(seconds=15), max_time=datetime.timedelta(seconds=360), slow_cook_min_time=datetime.timedelta(seconds=1), slow_cook_max_time=datetime.timedelta(seconds=5940), raw_value='000f016800011734000117340001173400000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_PRECISION_MIN_MAX to ErdAdvantiumPrecisionMinMax(is_valid=True, min_time=datetime.timedelta(0), max_time=datetime.timedelta(seconds=5940), custom_low_min_time=datetime.timedelta(seconds=1), custom_low_max_time=datetime.timedelta(seconds=5940), custom_high_min_time=datetime.timedelta(seconds=1), custom_high_max_time=datetime.timedelta(seconds=5940), raw_value='0001173400011734000117340000000000000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_KITCHEN_TIMER_MIN_MAX to ErdAdvantiumKitchenTimerMinMax(min_time=datetime.timedelta(seconds=1), max_time=datetime.timedelta(seconds=43200), raw_value='0001a8c0')
DEBUG    Setting ErdCode.MICROWAVE_UNKNOWN_5C12 to b'\x03\xcf'
DEBUG    Setting ErdCode.MICROWAVE_REMOTE_ENABLE to False
DEBUG    Setting ErdCode.MICROWAVE_UNKNOWN_5C18 to b'\x00\x00\x00\x00\x00\x00'
DEBUG    Setting 0x600e to b'\x0e\x10'
DEBUG    Setting 0x6020 to b'\x00\x00\x08\x00\x00\x96 \x00\x00\x00\x00\x00\r\x00'
DEBUG    Setting 0xe001 to b'\xe1\x00'
DEBUG    Setting 0xe002 to b'\xe3\x00'
DEBUG    Setting 0xe100 to b'\x00\x01\x04\x00\x00\x05\x00\n\x00\n\x00\x00'
DEBUG    Setting 0xe101 to b'\x00\x00\x01\xd7\x00\x00\x00\x00'
DEBUG    Setting 0xe102 to b'\x00\x00\xf4(\x00\x00\x00\x00'
DEBUG    Setting 0xe103 to b'\x00\x02\x00\x02\x00\x00\x00\x00'
DEBUG    Setting 0xe10f to b'\x00\x08\x00\x08\x00\x00\x00\x00'
DEBUG    Setting 0xe300 to b'\x01\x01\x04\x00\x00\x15\x00\n\x00\n\x00<'
DEBUG    Setting 0xe301 to b'\x00\x00\x01\xd7\x00\x00\x00\x00'
DEBUG    Setting 0xe302 to b'\x00\x00\xf4(\x00\x00\x00\x00'
DEBUG    Setting 0xe303 to b'\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting 0xe30f to b'\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting 0xe31b to b'\x003\x00<\x01\x9b\x00\x00'
DEBUG    Appliance state change detected in GeAppliance(D828C9572FCF) (ErdApplianceType.ADVANTIUM). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, 0x0037, 0x0039, 0x003a, 0x003b, ErdCode.ADVANTIUM_KITCHEN_TIME_REMAINING, 0x008f, 0x0090, 0x0092, 0x0093, 0x0098, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE, ErdCode.APPLIANCE_UPDATING, ErdCode.LCD_SW_VERSION, ErdCode.LCD_SW_VERSION_AVAILABLE, ErdCode.LCD_UPDATING, ErdCode.END_TONE, ErdCode.CONVECTION_CONVERSION, ErdCode.OVEN_MODE_MIN_MAX_TEMP, ErdCode.UPPER_OVEN_DISPLAY_TEMPERATURE, ErdCode.UPPER_OVEN_REMOTE_ENABLED, ErdCode.MICROWAVE_RECIPE_STATUS, ErdCode.ADVANTIUM_REMOTE_COOK_MODE_CONFIG, ErdCode.ADVANTIUM_COOK_STATUS, ErdCode.ADVANTIUM_COOK_SETTING, ErdCode.ADVANTIUM_COOK_TIME_REMAINING, ErdCode.ADVANTIUM_COOK_TIME_ADJUST, ErdCode.ADVANTIUM_PRECISION_VERSION, ErdCode.ADVANTIUM_UNKNOWN_5406, ErdCode.ADVANTIUM_COOK_TIME_MIN_MAX, ErdCode.ADVANTIUM_MICROWAVE_MIN_MAX, ErdCode.ADVANTIUM_PRECISION_MIN_MAX, ErdCode.ADVANTIUM_KITCHEN_TIMER_MIN_MAX, ErdCode.MICROWAVE_UNKNOWN_5C12, ErdCode.MICROWAVE_REMOTE_ENABLE, ErdCode.MICROWAVE_UNKNOWN_5C18, 0x600e, 0x6020, 0xe001, 0xe002, 0xe100, 0xe101, 0xe102, 0xe103, 0xe10f, 0xe300, 0xe301, 0xe302, 0xe303, 0xe30f, 0xe31b

@simbaja
Copy link
Owner

simbaja commented Aug 21, 2021

Can you try the latest version of the SDK and make sure you get a ErdAdvantiumCookSetting structure instead of raw bytes? This was the last ERD I implemented, and I forgot to go back and switch the placeholder bytes implementation with the real one, oops...

@willhayslett
Copy link
Author

lol no worries at all man. just happy to be able to test some of this. checking now.

@willhayslett
Copy link
Author

Cook setting looks better. Do the other properties just need to be mapped or do we need to call decode_erd_value on them? wondering if there's something I can do to help on my end with this.

DEBUG    Event triggered: message
DEBUG    Setting ErdCode.MODEL_NUMBER to CSB913P2N2S1
DEBUG    Setting ErdCode.SERIAL_NUMBER to xxxxxxxx
DEBUG    Setting ErdCode.TEMPERATURE_UNIT to ErdMeasurementUnits.IMPERIAL
DEBUG    Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.ADVANTIUM
DEBUG    Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_CAFE
DEBUG    Setting 0x0037 to b'\x00'
DEBUG    Setting 0x0039 to b'\x00\x00\x00\x00'
DEBUG    Setting 0x003a to b'\x00\x00\t\t'
DEBUG    Setting 0x003b to b'\x00\x00\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_KITCHEN_TIME_REMAINING to 0:00:00
DEBUG    Setting 0x008f to b'\x03\x00'
DEBUG    Setting 0x0090 to b'\xe0\x01\x02\x00'
DEBUG    Setting 0x0092 to b'\x00\x00\x00\x01\x00\x00\x00\x03'
DEBUG    Setting 0x0093 to b'\x00\x05\x00\x01\x00\x00\x01\xfb'
DEBUG    Setting 0x0098 to b'\x00r\x00\x01\x80'
DEBUG    Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.0.2.68
DEBUG    Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
DEBUG    Setting ErdCode.APPLIANCE_UPDATING to False
DEBUG    Setting ErdCode.LCD_SW_VERSION to 0.0.9.9
DEBUG    Setting ErdCode.LCD_SW_VERSION_AVAILABLE to 0.0.0.0
DEBUG    Setting ErdCode.LCD_UPDATING to False
DEBUG    Setting ErdCode.END_TONE to ErdEndTone.BEEP
DEBUG    Setting ErdCode.CONVECTION_CONVERSION to False
DEBUG    Setting ErdCode.OVEN_MODE_MIN_MAX_TEMP to OvenRanges(lower=245, upper=450)
DEBUG    Setting ErdCode.UPPER_OVEN_DISPLAY_TEMPERATURE to 140
DEBUG    Setting ErdCode.UPPER_OVEN_REMOTE_ENABLED to True
DEBUG    Setting ErdCode.MICROWAVE_RECIPE_STATUS to b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_REMOTE_COOK_MODE_CONFIG to ErdAdvantiumRemoteCookModeConfig(microwave_staged_time_enable=True, microwave_staged_temp_enable=True, microwave_slow_cook_time_enable=True, microwave_slow_cook_temp_enable=False, precision_cook_time_enable=True, precision_cook_temp_enable=False, precision_cook_staged_time_enable=True, precision_cook_staged_temp_enable=False, precision_cook_custom_time_enable=True, precision_cook_custom_temp_enable=False, precision_cook_custom_upper_heater_enable=True, precision_cook_custom_lower_heater_enable=True, precision_cook_custom_microwave_enable=True, precision_cook_custom_convection_enable=False, warm_enable=True, warm_time_enable=False, warm_temp_enable=True, proof_enable=True, proof_time_enable=False, proof_temp_enable=False, toast_enable=True, toast_time_enable=False, toast_temp_enable=False, steam_clean_time_enable=True, steam_clean_temp_enable=False, convection_bake_enable=True, convection_bake_time_enable=True, convection_bake_temp_enable=True, broil_enable=True, broil_time_enable=False, broil_temp_enable=False, microwave_time_enable=True, microwave_temp_enable=False, microwave_sensor_time_enable=True, microwave_sensor_temp_enable=False, raw_value='0f03474745477774770b0303050000000100000034a40e000fd9060004000000')
DEBUG    Setting ErdCode.ADVANTIUM_COOK_STATUS to ErdAdvantiumCookStatus(cook_action=<CookAction.STOP: 0>, cook_mode=<CookMode.NO_MODE: 0>, termination_reason=<TerminationReason.COOK_TIME_COMPLETE: 1>, preheat_status=<PreheatStatus.NO_PREHEAT: 0>, temperature=0, power_level=10, door_status=<DoorStatus.CLOSED: 1>, sensing_active=<SensingActive.INACTIVE: 0>, cooling_fan_status=<CoolingFanStatus.OFF: 0>, oven_light_status=<OvenLightStatus.OFF: 0>, warm_status=<WarmStatus.OFF: 0>, raw_value='cc00000100000000000a000100000000')
DEBUG    Setting ErdCode.ADVANTIUM_COOK_SETTING to ErdAdvantiumCookSetting(d=0, cook_action=<CookAction.STOP: 0>, cook_mode=<CookMode.NO_MODE: 0>, target_temperature=0, h=0, i=0, power_level=0, k=0, cook_time_remaining=datetime.timedelta(0), m=0, n=0, o=0, p=0, q=0, r=0, s=0, warm_status=<WarmStatus.OFF: 0>, raw_value='00000000000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_COOK_TIME_REMAINING to 0:00:00
DEBUG    Setting ErdCode.ADVANTIUM_COOK_TIME_ADJUST to 0
DEBUG    Setting ErdCode.ADVANTIUM_PRECISION_VERSION to b'\xd8\x1e\xb1\xd7@\x07\x9at\x82\xc7\x15\xbc_\xadF\xbes\x11q\xfe\xf4@2\xed\xd5\xe9n\x0f\x1d\xbf.\xf7'
DEBUG    Setting ErdCode.ADVANTIUM_UNKNOWN_5406 to b'\xff\xff\x00\x00'
DEBUG    Setting ErdCode.ADVANTIUM_COOK_TIME_MIN_MAX to ErdAdvantiumCookTimeMinMax(is_valid=True, convection_min_time=datetime.timedelta(seconds=60), convection_max_time=datetime.timedelta(seconds=10800), broil_min_time=datetime.timedelta(0), broil_max_time=datetime.timedelta(0), warm_min_time=datetime.timedelta(0), warm_max_time=datetime.timedelta(0), proof_min_time=datetime.timedelta(0), proof_max_time=datetime.timedelta(0), slow_cook_min_time=datetime.timedelta(0), slow_cook_max_time=datetime.timedelta(0), raw_value='003c2a3000000000000000000000000000000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_MICROWAVE_MIN_MAX to ErdAdvantiumMicrowaveMinMax(is_valid=True, min_time=datetime.timedelta(seconds=15), max_time=datetime.timedelta(seconds=360), slow_cook_min_time=datetime.timedelta(seconds=1), slow_cook_max_time=datetime.timedelta(seconds=5940), raw_value='000f016800011734000117340001173400000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_PRECISION_MIN_MAX to ErdAdvantiumPrecisionMinMax(is_valid=True, min_time=datetime.timedelta(0), max_time=datetime.timedelta(seconds=5940), custom_low_min_time=datetime.timedelta(seconds=1), custom_low_max_time=datetime.timedelta(seconds=5940), custom_high_min_time=datetime.timedelta(seconds=1), custom_high_max_time=datetime.timedelta(seconds=5940), raw_value='0001173400011734000117340000000000000000000000000000000000000000')
DEBUG    Setting ErdCode.ADVANTIUM_KITCHEN_TIMER_MIN_MAX to ErdAdvantiumKitchenTimerMinMax(min_time=datetime.timedelta(seconds=1), max_time=datetime.timedelta(seconds=43200), raw_value='0001a8c0')
DEBUG    Setting ErdCode.MICROWAVE_UNKNOWN_5C12 to b'\x03\xcf'
DEBUG    Setting ErdCode.MICROWAVE_REMOTE_ENABLE to True
DEBUG    Setting ErdCode.MICROWAVE_UNKNOWN_5C18 to b'\x00\x00\x00\x00\x00\x00'
DEBUG    Setting 0x600e to b'\x0e\x10'
DEBUG    Setting 0x6020 to b'\x00\x00\x08\x00\x00\x96 \x00\x00\x00\x00\x00\r\x00'
DEBUG    Setting 0xe001 to b'\xe1\x00'
DEBUG    Setting 0xe002 to b'\xe3\x00'
DEBUG    Setting 0xe100 to b'\x00\x01\x04\x00\x00\x05\x00\n\x00\n\x00\x00'
DEBUG    Setting 0xe101 to b'\x00\x00\x01\xd9\x00\x00\x00\x00'
DEBUG    Setting 0xe102 to b'\x00\x00\xf4\xdc\x00\x00\x00\x00'
DEBUG    Setting 0xe103 to b'\x00\x02\x00\x02\x00\x00\x00\x00'
DEBUG    Setting 0xe10f to b'\x00\x08\x00\x08\x00\x00\x00\x00'
DEBUG    Setting 0xe300 to b'\x01\x01\x04\x00\x00\x15\x00\n\x00\n\x00<'
DEBUG    Setting 0xe301 to b'\x00\x00\x01\xd9\x00\x00\x00\x00'
DEBUG    Setting 0xe302 to b'\x00\x00\xf4\xdc\x00\x00\x00\x00'
DEBUG    Setting 0xe303 to b'\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting 0xe30f to b'\x00\x00\x00\x00\x00\x00\x00\x00'
DEBUG    Setting 0xe31b to b'\x005\x00<\x01\x9d\x00\x00'
DEBUG    Appliance state change detected in GeAppliance(D828C9572FCF) (ErdApplianceType.ADVANTIUM). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.TEMPERATURE_UNIT, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, 0x0037, 0x0039, 0x003a, 0x003b, ErdCode.ADVANTIUM_KITCHEN_TIME_REMAINING, 0x008f, 0x0090, 0x0092, 0x0093, 0x0098, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE, ErdCode.APPLIANCE_UPDATING, ErdCode.LCD_SW_VERSION, ErdCode.LCD_SW_VERSION_AVAILABLE, ErdCode.LCD_UPDATING, ErdCode.END_TONE, ErdCode.CONVECTION_CONVERSION, ErdCode.OVEN_MODE_MIN_MAX_TEMP, ErdCode.UPPER_OVEN_DISPLAY_TEMPERATURE, ErdCode.UPPER_OVEN_REMOTE_ENABLED, ErdCode.MICROWAVE_RECIPE_STATUS, ErdCode.ADVANTIUM_REMOTE_COOK_MODE_CONFIG, ErdCode.ADVANTIUM_COOK_STATUS, ErdCode.ADVANTIUM_COOK_SETTING, ErdCode.ADVANTIUM_COOK_TIME_REMAINING, ErdCode.ADVANTIUM_COOK_TIME_ADJUST, ErdCode.ADVANTIUM_PRECISION_VERSION, ErdCode.ADVANTIUM_UNKNOWN_5406, ErdCode.ADVANTIUM_COOK_TIME_MIN_MAX, ErdCode.ADVANTIUM_MICROWAVE_MIN_MAX, ErdCode.ADVANTIUM_PRECISION_MIN_MAX, ErdCode.ADVANTIUM_KITCHEN_TIMER_MIN_MAX, ErdCode.MICROWAVE_UNKNOWN_5C12, ErdCode.MICROWAVE_REMOTE_ENABLE, ErdCode.MICROWAVE_UNKNOWN_5C18, 0x600e, 0x6020, 0xe001, 0xe002, 0xe100, 0xe101, 0xe102, 0xe103, 0xe10f, 0xe300, 0xe301, 0xe302, 0xe303, 0xe30f, 0xe31b

@simbaja
Copy link
Owner

simbaja commented Aug 21, 2021

I couldn't figure out what they did, so I just left them as pass-throughs. If you can play around with the Advantium and log what changes, that would be helpful. Unfortunately, nothing is documented, so it's a lot of guesswork (and reverse engineering of obfuscated code in some cases when really stuck).

@willhayslett
Copy link
Author

Ok cool. Let me see what I can do. I've only used Python for simple scripting so debugging has offered a bit of a learning curve. Will play around with this and hopefully come up with something useful.

@simbaja
Copy link
Owner

simbaja commented Aug 21, 2021

The new 0.5.0-dev0 version should bring in the decoded operation mode, let me know what you see.

@willhayslett
Copy link
Author

hi @simbaja - sorry for the delay. I pulled in 0.5.0-dev0 and now all of the entity states are reporting unavailable. I can see the states fine in the logs but for whatever reason they aren't making it to HA.

There's an attribute on each entity, supported_features, and its value is 0 for all of them. Wondering if it's related? Again, the logs looks fine but let me know if you need to see any.

@willhayslett
Copy link
Author

Same issue on v0.5.0-dev3

@willhayslett
Copy link
Author

Disregard... this has got to be something on my end. Reverted back to 0.4.3-dev7 and I'm still seeing the issue.

@simbaja
Copy link
Owner

simbaja commented Aug 29, 2021

You might want to uninstall/reinstall instead of trying to upgrade. I'm still trying to sort out how HACS does its upgrades, but it looks like there may be an issue with duplication when it attempts it.

@willhayslett
Copy link
Author

was literally trying to do that now. will let you know how it goes. thanks!

@simbaja
Copy link
Owner

simbaja commented Dec 12, 2021

@willhayslett, have you had a chance to look into this? Just coming back to finish the Advantium support if possible in 0.6.x

@simbaja simbaja closed this as completed Apr 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants