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

F&P Washer - Laundry Cycle shows as "---" #321

Open
zenstrukt opened this issue Dec 24, 2024 · 9 comments
Open

F&P Washer - Laundry Cycle shows as "---" #321

zenstrukt opened this issue Dec 24, 2024 · 9 comments

Comments

@zenstrukt
Copy link

zenstrukt commented Dec 24, 2024

Typically should show the washer cycle I've chosen, e.g. "Everyday", but shows as "---" for the value on entity: sensor.fcb*_laundry_cycle.

Washer model: Fisher & Paykel- WH1060SG1 [10kg front loader]

gehomesdk executed, found this snippet that I assume is useful.

2024-12-24 22:29:07,888 DEBUG    Received features ['CLOTHES_WASHER_V1_DOWNLOADABLE_CYCLE', 'CLOTHES_WASHER_V1_FOUNDATION', 'CLOTHES_WASHER_V1_REMOTE_CYCLE_SELECTION', 'CLOTHES_WASHER_V1_REMOTE_START_AND_STOP'] for FCB***
2024-12-24 22:29:07,888 DEBUG    received event: got_appliance_features, processing callbacks...
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.MODEL_NUMBER to WH1060SG1AA
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.SERIAL_NUMBER to 
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.APPLIANCE_TYPE to ErdApplianceType.WASHER
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.UNIT_TYPE to ErdUnitType.TYPE_120V_CAFE
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.BRAND to ErdBrand.FISHER_PAYKEL
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.WIFI_MODULE_SW_VERSION to 0.2.11.67
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE to 0.0.0.0
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.ACM_UPDATING to False
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.APPLIANCE_SW_VERSION to 1.0.37.18
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.APPLIANCE_SW_VERSION_AVAILABLE to 0.0.0.0
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.APPLIANCE_UPDATING to False
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.LAUNDRY_MACHINE_STATE to Standby
2024-12-24 22:29:07,889 DEBUG    Setting ErdCode.LAUNDRY_SUB_CYCLE to ErdLaundrySubCycle.CYCLE_NONE
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_END_OF_CYCLE to False
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:59:00
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.INVALID
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_DELAY_TIME_REMAINING to 0:00:00
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_REMOTE_DELAY_CONTROL to 0:00:00
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_REMOTE_STATUS to False
2024-12-24 22:29:07,890 DEBUG    Setting ErdCode.LAUNDRY_REMOTE_POWER_CONTROL to ErdOnOff.OFF
2024-12-24 23:04:34,254 DEBUG    Setting 0x20A8 to b'\xa0\xa0\x04\x00d\x90\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2024-12-24 23:04:34,254 DEBUG    Setting 0x20D2 to b'\x00\x80\x00\x00\x82\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
2024-12-24 23:04:34,254 DEBUG    Setting 0x20D3 to b'\x00'
2024-12-24 23:04:34,254 DEBUG    Setting 0x20D7 to b'\x01
2024-12-24 22:29:07,890 DEBUG    Appliance state change detected in GeAppliance(FCB***) (ErdApplianceType.WASHER). Updated keys: ErdCode.MODEL_NUMBER, ErdCode.SERIAL_NUMBER, ErdCode.APPLIANCE_TYPE, ErdCode.UNIT_TYPE, ErdCode.BRAND, ErdCode.WIFI_MODULE_SW_VERSION, ErdCode.WIFI_MODULE_SW_VERSION_AVAILABLE, ErdCode.ACM_UPDATING, ErdCode.APPLIANCE_SW_VERSION, ErdCode.APPLIANCE_SW_VERSION_AVAILABLE, ErdCode.APPLIANCE_UPDATING, ErdCode.LAUNDRY_MACHINE_STATE, ErdCode.LAUNDRY_SUB_CYCLE, ErdCode.LAUNDRY_END_OF_CYCLE, ErdCode.LAUNDRY_TIME_REMAINING, ErdCode.LAUNDRY_CYCLE, ErdCode.LAUNDRY_DELAY_TIME_REMAINING, ErdCode.LAUNDRY_REMOTE_DELAY_CONTROL, ErdCode.LAUNDRY_REMOTE_STATUS, ErdCode.LAUNDRY_REMOTE_POWER_CONTROL, 0x20A8, 0x20D2, 0x20D3, 0x20D7
@zenstrukt
Copy link
Author

I ran the debug, and changed (and waited) for each cycle display name to update within the SmartHQ app whilst the debug was running.

Found that it is just particular cycles that are not appearing, with some appearing just fine with the actual cycle name, e.g.

Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.COTTONS

On my dial I have the following presets. Those in italics are reporting as invalid.

  1. Everyday
  2. Steam Refresh
  3. Extra Care
  4. Wool
  5. Sports
  6. Sanitise
  7. Spin
  8. Drum Clean
  9. Rinse
  10. Quick (Quick 30 on the SmartHQ app)
  11. Easy Iron
  12. Delicates
  13. Cottons

@simbaja
Copy link
Owner

simbaja commented Dec 25, 2024

@tdfountain implemented a bunch of new functionality, which will be incorporated into the next version. Looking at the changes, it may resolve what you're seeing. I'll leave this open until you confirm after trying the next version.

@tdfountain
Copy link

tdfountain commented Dec 25, 2024

The referenced changes unfortunately did not update ErdLaundryCycle, only other ERDs. I just submitted gehome PR #81 to address this issue.

In looking through the list of missing presets above, it appears all but "Extra Care" are likely addressed. I do not see an enum value that likely corresponds to that laundry cycle, but it may go by a different name on F&P units. If it is still missing, we will likely need the actual value (integer or hex) to add it to the library.

@zenstrukt
Copy link
Author

The referenced changes unfortunately did not update ErdLaundryCycle, only other ERDs. I just submitted gehome PR #81 to address this issue.

In looking through the list of missing presets above, it appears all but "Extra Care" are likely addressed. I do not see an enum value that likely corresponds to that laundry cycle, but it may go by a different name on F&P units. If it is still missing, we will likely need the actual value (integer or hex) to add it to the library.

I've pulled the latest commit - assuming I'm not jumping the gun, I validated the laundry_enums.py was updated with the changed presets. Everyday cycle doesn't seem to align with the integer value :-(

2024-12-26 08:55:00,735 DEBUG    Setting ErdCode.LAUNDRY_TIME_REMAINING to 0:59:00
2024-12-26 08:55:00,735 DEBUG    Setting ErdCode.LAUNDRY_CYCLE to ErdLaundryCycle.INVALID

@tdfountain
Copy link

I recently changed the ErdLaundryCycle to return NOT_DEFINED rather than INVALID in failure cases. You should confirm you are indeed running the latest gehomesdk (please note this is different than ha_gehome which is the Home Assistant custom component).

It is probable that the value returned for LAUNDRY_CYCLE will be needed to identify or fix the issue if it persists. You may therefore want to apply the gehome PR #82 that I just submitted. I added a debug log entry with the value. (This PR also fixes another issue with an incorrect use of INVALID instead of NOT_DEFINED that further suggests you are using an earlier version of gethomesdk.)

@simbaja
Copy link
Owner

simbaja commented Dec 26, 2024

Give the latest pre-release version of the component (0.6.15-dev0) a shot and see if things are better. It incorporates the latest gehomesdk with all of @tdfountain's changes.

@zenstrukt
Copy link
Author

zenstrukt commented Dec 26, 2024

PIP being PIP - it definitely was the older version still sigh

Now running 0.5.41 as well as the dev branch (0.6.15-dev0) of ha_gehome - both are working perfectly so far. Of all the presets, only Extra Care is not visible. I dumped out the snippet in the running debug, not sure if this helps.

I'm also wondering, as this appears to be a cycle download option - maybe this is actually correct?

2024-12-26 14:48:51,670 DEBUG    Setting ErdCode.LAUNDRY_WASHER_DOWNLOADED_CYCLE_ALLOWABLES to ErdDownloadedCycleAllowables(basket_clean=False, drain_and_spin=False, quick_rinse=False, bulky=False, sanitize=False, towels_or_sheets=False, washer_stream_refresh=False, normal_or_mixed=False, whites=False, darks=False, jeans=False, hand_wash=False, delicates=False, speed_wash=False, heavy_duty=True, allergen=False, power_clean=False, rinse_and_spin=False, single_item=False, colors=False, cold_wash=False, water_station=False, tub_clean=False, casuals_steam=False, stain_wash_with_steam=False, deep_clean=False, bulky_bedding=False, normal=False, quick_wash=False, sanitize_with_oxi=False, self_clean=False, towels=False, soak=True, wool=False, ultra_fresh_vent=False, sanitize_plus_allergen=False, spin_only=False, everyday=False, soft_toys=True, sneakers=True, synthetics=False, silk=False, denim=False, drum_clean=False, sheets=False, quick_15=False, quick_30=False, easy_iron=False, sports=False, eco_40_to_60=False, twency_c=False, warm_wash=False, hot_wash=False, swim_wear=False, eco=False, express=False, mix=False, quick_cycle=False, duvet=False, cottons=False, easy_care=False, active_wear=False, timed_dry=False, dewrinkle=False, quick_or_airfluff=False, steam_refresh=False, steam_dewrinkle=False, speed_dry=False, mixed=False, quick_dry=False, casuals=False, warm_up=False, energy_saver=False, antibacterial=False, rack_dry=False, baby_care=False, auto_dry=False, auto_extra=False, perm_press=False, washer_link=False, auto_damp=False, smart_vent=False, pre_iron=False, hygiene=False, cool_air=False, outdoor=False, ultra_delicate=False, scent=False, sanitize_steam=False, durable=False, shoes=False, shirts=False, refresh=False, freshen=False, ecocool=False, rinse_and_dry=False, leather=False, outerwear=False, mixed_refresh=False, shirts_refresh=False, delicate_refresh=False, sanitize_refresh=False, light=False, heavy=False, wool_or_knit=False, rain_or_snow=False, kids_item=False, suits_or_coats=False, pants_crease=False, steam_normal=False, steam_whites=False, steam_towels=False, steam_sanitize=False, down=False, night_dry=False, raw_value='0080000082010000000000000000000000000000000000000000000000000000')
2024-12-26 14:48:51,670 DEBUG    Setting ErdCode.LAUNDRY_WASHER_DOWNLOADED_CYCLE_REQUEST to ErdDownloadedCycleRequest.NOT_DEFINED
2024-12-26 14:48:51,670 DEBUG    Setting ErdCode.LAUNDRY_WASHER_DOWNLOAD_CYCLE_FEATURE_VERSION to 1
2024-12-26 14:48:51,671 DEBUG    received event: appliance_state_change, processing callbacks...
2024-12-26 14:48:51,671 DEBUG    processing callback: <bound method GeBaseClient._maybe_trigger_appliance_init_event of <gehomesdk.clients.websocket_client.GeWebsocketClient object at 0x7f6a0db0c6d0>>

@tdfountain
Copy link

Glad most of the changes are working for you.

Could you be referring to the "Easy Care" cycle instead of the "Extra Care" cycle?

The LAUNDRY_WASHER_DOWNLOADED_CYCLE_ALLOWABLES value is a bitmap of downloads that are permitted by the device. It appears from your bitmap that your washer does not support Easy Care but it is entirely possible I have something off slightly in the parser for the bitmap. I believe the list here should match the "My Cycle Settings" in your SmartHQ app.

How do you set the "Extra Care" cycle (e.g. on the front of the unit, via the app, etc.)? Can you provide the full debug information from the unit when in "Extra Care"? I can look at the debug logs to see whether perhaps it is a standard cycle with a specified sub-cycle or otherwise.

@zenstrukt
Copy link
Author

Glad most of the changes are working for you.

Could you be referring to the "Easy Care" cycle instead of the "Extra Care" cycle?

The LAUNDRY_WASHER_DOWNLOADED_CYCLE_ALLOWABLES value is a bitmap of downloads that are permitted by the device. It appears from your bitmap that your washer does not support Easy Care but it is entirely possible I have something off slightly in the parser for the bitmap. I believe the list here should match the "My Cycle Settings" in your SmartHQ app.

How do you set the "Extra Care" cycle (e.g. on the front of the unit, via the app, etc.)? Can you provide the full debug information from the unit when in "Extra Care"? I can look at the debug logs to see whether perhaps it is a standard cycle with a specified sub-cycle or otherwise.

Physically on the machine it's showing as "Extra Care", but likely the same function. I will run a debug for you! Though I've noticed that whether I tail it to a log file or view it interactively, the JSON payload is always truncated. Is there a particular location I should be picking the logs from? Or whatever is being output is suitable?

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

3 participants