A pool or spa system including a plurality of components operatively coupled via a communications network supporting dynamic device discovery, the system comprising: a pool or spa; a plurality of pool or spa slave devices, each of the plurality of pool or spa slave devices being configured to perform one or more operations with respect to the pool or spa, each of the plurality of pool or spa slave devices being un-configured and having a unique device identifier; and a master controller operatively coupled to the plurality of pool or spa slave devices to form a network, the master controller being programmed to assign each of the plurality of pool or spa slave devices a network address based on the unique device identifier of each of the plurality of pool or spa slave devices and in response to bidirectional communication between the master controller and the plurality of pool or spa slave devices to configure the plurality of pool or spa slave devices and enable addressed communication between the master controller and the plurality of pool or spa slave devices; wherein the plurality of pool or spa slave devices are further configured such that, in response to a device discovery request transmitted from the master controller to one of the plurality of pool or spa slave devices, the one of the plurality of pool or spa slave devices transmits a response to the master controller having the unique device identifier and describing at least one pool or spa device capability of the one of the plurality of pool or spa slave devices; and wherein the unique device identifier includes a pool or spa device type identifier which uniquely identifies the type of pool or spa device. a pool or spa; a plurality of pool or spa slave devices, each of the plurality of pool or spa slave devices being configured to perform one or more operations with respect to the pool or spa, each of the plurality of pool or spa slave devices being un-configured and having a unique device identifier; and a master controller operatively coupled to the plurality of pool or spa slave devices to form a network, the master controller being programmed to assign each of the plurality of pool or spa slave devices a network address based on the unique device identifier of each of the plurality of pool or spa slave devices and in response to bidirectional communication between the master controller and the plurality of pool or spa slave devices to configure the plurality of pool or spa slave devices and enable addressed communication between the master controller and the plurality of pool or spa slave devices; wherein the plurality of pool or spa slave devices are further configured such that, in response to a device discovery request transmitted from the master controller to one of the plurality of pool or spa slave devices, the one of the plurality of pool or spa slave devices transmits a response to the master controller having the unique device identifier and describing at least one pool or spa device capability of the one of the plurality of pool or spa slave devices; and wherein the unique device identifier includes a pool or spa device type identifier which uniquely identifies the type of pool or spa device.