From what I can tell, both OpenBK and ESPHome support the CB3S which I believe is a BK7231N MCU.
What are the pro/cons of each and which is easier to flash
From what I can tell, both OpenBK and ESPHome support the CB3S which I believe is a BK7231N MCU.
What are the pro/cons of each and which is easier to flash
I can’t comment on which is “easier to flash” but they are both firmware for the same chip, so I imagine the procedures are similar, and the ease of initial flashing often depends more on the device (e.g. pin accessibiliity) than the firmware.
One difference is that OpenBK can be downloaded precompiled, whereas esphome must be compiled locally by you using their toolset. It just takes a few minutes longer and some disk space. Both support over-the-air firmware upgrades after initial installation.
OpenBK, as a monolithic image, provides a web interface to configure the device’s GPIO mappings to subcomponents (such as sensors). Esphome takes a different approach, placing configuration in a YAML file that is used at compile-time to build the image. One can be reconfigured on the fly, which can be useful if you don’t already know the config; the other requires re-compiling and re-flashing every change.
OpenBK uses only MQTT for control, whereas esphome supports both MQTT and a native API. The former requires a third-party broker on your network whereas the API is direct, and with somewhat easier encryption setup. I believe both support auto-discovery, but for some Tuya MCU-based commands, OpenBK may require you to manually configure entities in YAML.
Either option will need to have support for your device’s subcomponents, so you will have to research each option’s capabilities. If there is a less-common sensor or chip in your device then it might only be supported by one platform or the other.