docs: def get_devices(self, refresh=False):
          """Get all devices from Abode."""
          if refresh or self._devices is None:
              if self._devices is None:
                  self._devices = {}
  
              _LOGGER.info("Updating all devices...")
              response = self.send_request("get", CONST.DEVICES_URL)
              response_object = json.loads(response.text)
  
              _LOGGER.debug("Get Devices Response: %s", response.text)
  
              for device_json in response_object:
                  # Attempt to reuse an existing device
                  device = self._devices.get(device_json['id'])
  
                  # No existing device, create a new one
                  if device:
                      device.update(device_json)
                  else:
                      device = SkybellDevice(device_json, self)
                      self._devices[device.device_id] = device
  
          return list(self._devices.values())