docs: def get_automations(self, refresh=False, generic_type=None):
          """Get all automations."""
          if refresh or self._automations is None:
              if self._automations is None:
                  # Set up the device libraries
                  self._automations = {}
  
              _LOGGER.info("Updating all automations...")
              response = self.send_request("get", CONST.AUTOMATION_URL)
              response_object = json.loads(response.text)
  
              if (response_object and
                      not isinstance(response_object, (tuple, list))):
                  response_object = [response_object]
  
              _LOGGER.debug("Get Automations Response: %s", response.text)
  
              for automation_json in response_object:
                  # Attempt to reuse an existing automation object
                  automation = self._automations.get(str(automation_json['id']))
  
                  # No existing automation, create a new one
                  if automation:
                      automation.update(automation_json)
                  else:
                      automation = AbodeAutomation(self, automation_json)
                      self._automations[automation.automation_id] = automation
  
          if generic_type:
              automations = []
              for automation in self._automations.values():
                  if (automation.generic_type is not None and
                          automation.generic_type in generic_type):
                      automations.append(automation)
              return automations
  
          return list(self._automations.values())