@Erik-Forsberg
I think one should be a bit careful about making too many special rules for different cases, between device and controller. I think there should be set ways of communicating between the controller and device. There should also be ways for the user to make rules to create the automations, but this should not change the set ways for communication.
In this case, when we need an initial value from the user, which should be automated somehow, I think the user should be able to make rules, and somehow be able to set an initial state, by controller API or other means. But I think that should be detached from the specific device - controller communication.
You can have a look at my handle_req branch here:
https://github.com/MartinHjelmare/pymysensors/tree/handle_req
I would say your implementation looks fine, although I have some comments. We can continue at github.