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 (110, 120, 130, 140, 150), 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 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 system is configured such that, in response to a device discovery request transmitted from the master controller to the plurality of pool or spa slave devices, a responding pool or spa slave device transmits a response packet to the master controller describing at least one pool or spa device capability of the responding pool or spa slave device, and wherein the unique device identifier is configured to be transmitted from the responding pool or spa slave device to the master controller as a plurality of data fields within the response packet, said plurality of data fields comprising a first data field and a second data field, said first data field being a pool or spa device type identifier which identifies a type of the responding pool or spa slave device, and said second data field distinguishing the responding pool or spa slave device from other pool or spa slave devices of the same type. a pool or spa; a plurality of pool or spa slave devices (110, 120, 130, 140, 150), 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 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 system is configured such that, in response to a device discovery request transmitted from the master controller to the plurality of pool or spa slave devices, a responding pool or spa slave device transmits a response packet to the master controller describing at least one pool or spa device capability of the responding pool or spa slave device, and wherein the unique device identifier is configured to be transmitted from the responding pool or spa slave device to the master controller as a plurality of data fields within the response packet, said plurality of data fields comprising a first data field and a second data field, said first data field being a pool or spa device type identifier which identifies a type of the responding pool or spa slave device, and said second data field distinguishing the responding pool or spa slave device from other pool or spa slave devices of the same type.