A method for controlling a smart home device, comprising: obtaining a distance between a target home device and a mobile terminal; obtaining device information of the target home device when the distance is less than or equal to a preset distance; and executing a device control program corresponding to the target home device based on the device information so as to control the target home device, wherein the device information includes a unique device identifier corresponding to the target home device; determining whether the device identifier of the target home device matches that pre-stored in a device list; wherein when the device identifier of the target home device does not match any one pre-stored in the device list, querying, in a cloud server, whether the target home device is connected in a network based on the device identifier of the target home device; and obtaining the device information of the target home device when the target home device is connected in the network; wherein the obtaining the device information of the target home device when the target home device is connected in the network, comprises: determining whether the target home device is a family member according to the device identifier; obtaining the device information of the target home device when the target home device is the family member; and sending, when the target home device is not the family member, a control request for using the target home device to the cloud server, and obtaining the device information of the target home device when an use authorization transmitted by the cloud server is received. obtaining a distance between a target home device and a mobile terminal; obtaining device information of the target home device when the distance is less than or equal to a preset distance; and executing a device control program corresponding to the target home device based on the device information so as to control the target home device, wherein the device information includes a unique device identifier corresponding to the target home device; determining whether the device identifier of the target home device matches that pre-stored in a device list; wherein when the device identifier of the target home device does not match any one pre-stored in the device list, querying, in a cloud server, whether the target home device is connected in a network based on the device identifier of the target home device; and obtaining the device information of the target home device when the target home device is connected in the network; wherein the obtaining the device information of the target home device when the target home device is connected in the network, comprises: determining whether the target home device is a family member according to the device identifier; obtaining the device information of the target home device when the target home device is the family member; and sending, when the target home device is not the family member, a control request for using the target home device to the cloud server, and obtaining the device information of the target home device when an use authorization transmitted by the cloud server is received. determining whether the target home device is a family member according to the device identifier; obtaining the device information of the target home device when the target home device is the family member; and sending, when the target home device is not the family member, a control request for using the target home device to the cloud server, and obtaining the device information of the target home device when an use authorization transmitted by the cloud server is received.