A method for a communication between a cloud server and a home gateway performed by the cloud server, wherein the cloud server comprises: ∘ a home gateway software running unit comprising multiple Zigbee applications, ∘ a software managing unit configured to manage software modules, and ∘ a software running monitoring unit configured to manage the home gateway software running unit, the method comprising the following steps: • receiving, by the cloud server, registration information of the home gateway, wherein the registration information comprises a user name, a password, a Wide Area Network, interface Internet Protocol address, WAN interface IP address, of the home gateway, a listening port number of the home gateway, and a model of an Universal Serial Bus, USB, Zigbee module, • feeding back, by the cloud server, registration response information to the home gateway and performing, by the cloud server, a bi-directional authentication with the home gateway, • after the authentication succeeds, determining, by the cloud server, that the home gateway has completed registration; • after determining that the home gateway has completed the registration, being notified by the home gateway about a powering on of the home gateway, • sending, by the software running monitoring unit, the model of the USB Zigbee module, the WAN interface IP address and the listening port number as startup parameters to the software managing unit to start the software managing unit, • selecting, by the software managing unit, one of the multiple Zigbee applications according to the received model of the USB Zigbee module and starting the selected Zigbee application, • initiating, by the software managing unit, a Transmission Control Protocol/Internet Protocol, TCP/IP, connection to the home gateway according to the received WAN interface IP address and the received listening port number, and when receiving connection establishment response information from the home gateway, determining that a data communication channel is established between the software managing unit and the home gateway, • establishing, by the software managing unit, a channel with the started Zigbee application and transmitting, by the software managing unit, data received from the started Zigbee application to the home gateway over the established TCP/IP connection and transmitting data received from the home gateway over the established TCP/IP connection to the started Zigbee application over the channel established between the started Zigbee application and the software managing unit, controlling, by the started Zigbee application, the USB Zigbee module through the established channel. ∘ a home gateway software running unit comprising multiple Zigbee applications, ∘ a software managing unit configured to manage software modules, and ∘ a software running monitoring unit configured to manage the home gateway software running unit, • receiving, by the cloud server, registration information of the home gateway, wherein the registration information comprises a user name, a password, a Wide Area Network, interface Internet Protocol address, WAN interface IP address, of the home gateway, a listening port number of the home gateway, and a model of an Universal Serial Bus, USB, Zigbee module, • feeding back, by the cloud server, registration response information to the home gateway and performing, by the cloud server, a bi-directional authentication with the home gateway, • after the authentication succeeds, determining, by the cloud server, that the home gateway has completed registration; • after determining that the home gateway has completed the registration, being notified by the home gateway about a powering on of the home gateway, • sending, by the software running monitoring unit, the model of the USB Zigbee module, the WAN interface IP address and the listening port number as startup parameters to the software managing unit to start the software managing unit, • selecting, by the software managing unit, one of the multiple Zigbee applications according to the received model of the USB Zigbee module and starting the selected Zigbee application, • initiating, by the software managing unit, a Transmission Control Protocol/Internet Protocol, TCP/IP, connection to the home gateway according to the received WAN interface IP address and the received listening port number, and when receiving connection establishment response information from the home gateway, determining that a data communication channel is established between the software managing unit and the home gateway, • establishing, by the software managing unit, a channel with the started Zigbee application and transmitting, by the software managing unit, data received from the started Zigbee application to the home gateway over the established TCP/IP connection and transmitting data received from the home gateway over the established TCP/IP connection to the started Zigbee application over the channel established between the started Zigbee application and the software managing unit, controlling, by the started Zigbee application, the USB Zigbee module through the established channel.