Skip to content

Empirically map cav_cook_mode integer enum to named cooking modes #68

Description

@JonGilmore

Summary

The cav_cook_mode field on Wolf ranges and wall ovens is a small integer (we've observed 0 in idle states). The official Sub-Zero Android app supports multiple cook modes (bake, roast, convection, steam, defrost, broil, proof, microwave, etc.) but the numeric enum mapping is in the compiled Dart bytecode and isn't extractable from the APK strings dump.

To support a select control entity for cook mode (#67), we need this enum mapping.

How to capture

  1. Pair an oven with the integration (any model — Wolf range or wall oven).
  2. Turn on Debug Mode (the appliance's *_debug_switch in HA).
  3. On the appliance physically, cycle through cook modes in order: Bake → Roast → Convection → Convection Bake → Convection Roast → Steam → Broil → Convection Broil → Proof → Defrost → ... etc. (Use whatever modes the appliance supports.)
  4. Each mode change triggers a small push notification on D5: {"props":{"cav_cook_mode": <int>}, "msg_types": 2}.
  5. With Debug Mode on, those land as Response[1/1]: lines in the ESPHome log. Note the integer for each mode.

What we need

A table like this for at least one Wolf range and one Wall Oven, since dual-fuel ranges may have different mode sets than electric wall ovens:

Mode (UI label) cav_cook_mode value
Off 0
Bake ?
Convection Bake ?
Roast ?
... ...

For dual-oven appliances, also confirm the same enum applies to cav2_cook_mode.

Where to put the result

Once captured:

References

🤖 Generated from APK reverse-engineering session, captured for follow-up.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions