I think battery pack status, battery pack remaining capacity and charger status would be in a separate message sent by a separate "publish" function, but the timing would just be whenever any of the 3 registers (or the 3rd of the 3 if they are always next to each other in enum in same order) has been read (call publish function from the cases where we read one of the 3 registers). If you publish after reading any of the 3, you could sometimes get broadcast 250ms apart. If you publish after reading the last of the 3 in a group (i.e. the status_1, remaining_capacity_1, charger_status_1), the spacing of the broadcast will depend on how many enums are between them.