A computer-implemented method of configuring a thermostat for communication with a computer device over a network connection, comprising: configuring the thermostat on a private network using a network interface controller associated with the thermostat providing network connectivity between the thermostat and a thermostat management system on a public network , wherein the private network includes a router connected to the public network and provides the thermostat with access to the public network; sending thermostat metadata that includes a unique thermostat identifier and a public network address of the router over the private network to the thermostat management system on the public network for registration in a thermostat registration pool used for pairing; determining whether the thermostat can be automatically paired with a thermostat management account of a plurality of thermostat management accounts provided by the thermostat management system , with each thermostat management account being associated with an account identifier, and wherein for each thermostat management account, the thermostat management system keeps track of one or more public network addresses used by a computer device of a user to access the thermostat management account, the determining comprising comparing the public network address of the router from the thermostat metadata associated with the thermostat and the tracked one or more public network addresses; and after determining there is a match between the public network address of the router and a tracked public network address from which one thermostat management account has been accessed, automatically pairing the thermostat registered in the thermostat registration pool to the one thermostat management account, wherein once the thermostat is paired to the one thermostat management account, a user accesses the one thermostat management account to communicate with the thermostat over the public network through the thermostat management system . configuring the thermostat on a private network using a network interface controller associated with the thermostat providing network connectivity between the thermostat and a thermostat management system on a public network , wherein the private network includes a router connected to the public network and provides the thermostat with access to the public network; sending thermostat metadata that includes a unique thermostat identifier and a public network address of the router over the private network to the thermostat management system on the public network for registration in a thermostat registration pool used for pairing; determining whether the thermostat can be automatically paired with a thermostat management account of a plurality of thermostat management accounts provided by the thermostat management system , with each thermostat management account being associated with an account identifier, and wherein for each thermostat management account, the thermostat management system keeps track of one or more public network addresses used by a computer device of a user to access the thermostat management account, the determining comprising comparing the public network address of the router from the thermostat metadata associated with the thermostat and the tracked one or more public network addresses; and after determining there is a match between the public network address of the router and a tracked public network address from which one thermostat management account has been accessed, automatically pairing the thermostat registered in the thermostat registration pool to the one thermostat management account, wherein once the thermostat is paired to the one thermostat management account, a user accesses the one thermostat management account to communicate with the thermostat over the public network through the thermostat management system . <EOS>