docs: async def load_remote(
              self, email: str, password: str,
              skip_existing: bool = True) -> None:
          """Create a local client."""
          auth_resp = await self._request(
              'post',
              'https://my.rainmachine.com/login/auth',
              json={'user': {
                  'email': email,
                  'pwd': password,
                  'remember': 1
              }})
  
          access_token = auth_resp['access_token']
  
          sprinklers_resp = await self._request(
              'post',
              'https://my.rainmachine.com/devices/get-sprinklers',
              access_token=access_token,
              json={'user': {
                  'email': email,
                  'pwd': password,
                  'remember': 1
              }})
  
          for sprinkler in sprinklers_resp['sprinklers']:
              if skip_existing and sprinkler['mac'] in self.controllers:
                  continue
  
              controller = RemoteController(self._request, self._websession)
              await controller.login(
                  access_token, sprinkler['sprinklerId'], password)
  
              version_data = await controller.api.versions()
              controller.api_version = version_data['apiVer']
              controller.hardware_version = version_data['hwVer']
              controller.mac = sprinkler['mac']
              controller.name = sprinkler['name']
              controller.software_version = version_data['swVer']
  
              self.controllers[sprinkler['mac']] = controller