@morgan_flint Since I have only this device, lets try first to get all features working, then I can easily adapt for the other device. Can easily change everything in JS script, but to know with which device we deal, I think it is good idea if we read dpID19 - braekerID and to identify with which breaker we are communicating.
At least you can test last version of breaker.html and give feedback. If there are some problems - let me know - will fix them. I can test this only on 1 device while you have a lot
So please test the last revision of breaker.html and give some feedback.
About missing dpID's - if you issue tuyaMcu_sendQueryState do you receive something for these channels (even not mapped in the log you should see something)
Also - Please send tuyaMCU package for the missing dpID's from the log - tuyaMcu_sendQueryState -> full answer, which means even what tuya driver tries to do.
Example:
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 11 00 00 04 04 01 00 1E 49
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 17, dataType 0-raw and 4 data bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: raw data 4 int: 67174430
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 10 12 00 00 0C 01 01 00 3F 03 01 00 FA 04 01 00 B4 2F
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 23 bytes
Info:TuyaMCU:TuyaMCU_ParseStateMessage: processing dpId 18, dataType 0-raw and 12 data bytes
Info:TuyaMCU:TUYAMCU received: 55 AA 03 07 00 08 0E 02 00 04 00 00 13 88 C0
Info:TuyaMCU:TuyaMCU_ProcessIncoming[ver=3]: processing command 7 (State) with 15 bytes
From the above it is clear driver is doing something with dpID17, and it is also clear cannot manage dpID18