The existing module structure should be used for the new "tapo-like" devices to decide which queries should be made on update(). The negotiation result should be used to initialize the available modules.