As I understand the Navien "Hot Button" interface, see link to PDF below, is pretty straight forward. CON1 or Signal 1 connection block has 4 contacts, 12v, Signal, GND, and 5v.
I believe I can connect a ESP unit to the 5v and GND to ESP, then GPIO pin direct to the "signal 1" contacts. Not worried about opt-isolation of ESP in this case if I use the 5v and GND from "signal 1" contacts. But I will need to confirm the 5v is stable enough for the ESP of course.
My thinking is the hot button unit seems to be designed to accept high state (not 0v) signal for "Signal 1" interface. It can also use a simple switch ("signal 2") or sensor ("signal 3") control signal. PDF implies the "signal 1" interface is just a simple v0 off, non-0v on circuit. Did I miss something?
If using "Signal 1" approach, just have to program the ESP unit as needed to control the GPIO pin state. Thinking I can write the C code myself (done such before), or just use a canned firmware image like Tasmota or ESPhome. I already have a Node Red instance, and MQTT broker in my environment, so would be straight-forward to use MQTT and Node Red for controlling/communicating with the ESP unit.
Of course, I could just connect the ESP to a relay or Mofset breakout board, use the USB power on ESP, and then the relay/mofset would control the open/close of the "signal 2" contacts on the hot button interface.
Link to Navien Hot Button Kit Documentation...
https://www.navieninc.com/app/W1siZiIsIjIwMTgvMDQvMDUvMjAvNDIvNDYvMjQ3YzM3YWItODQ0ZS00NTczLTgwZGYtZWYyMDM5YjdmNDk5L0hvdEJ1dHRvbiBJbnN0YWxsYXRpb24gSW5zdHJ1Y3Rpb25zLnBkZiJdXQ/HotButton%20Installation%20Instructions.pdf?sha=df7e0fa958da1bc9
https://www.navieninc.com/app/W1siZiIsIjIwMTgvMDQvMDUvMjAvMDAvMzEvODg0OWNlMjktM2FjYy00NzUxLTg3NGQtNDVhMDNlM2MzOTM4L1NwZWMgU2hlZXQtSG90QnV0dG9uIEtpdC5wZGYiXV0/Spec%20Sheet-HotButton%20Kit.pdf?sha=250fe62529c98e9d