async def fire_event(self, namespace, event, **kwargs):
    'Fires an event.\n\n        If the namespace does not have a plugin associated with it, the event will be fired locally.\n        If a plugin is associated, the firing of the event will be delegated to the plugin, under the\n        understanding that when the event is fired, the plugin will notify appdaemon that it occurred,\n        usually via the system the plugin is communicating with.\n\n        Args:\n            namespace (str): Namespace for the event to be fired in.\n            event (str): Name of the event.\n            **kwargs: Arguments to associate with the event.\n\n        Returns:\n            None.\n\n        '
    self.logger.debug('fire_plugin_event() %s %s %s', namespace, event, kwargs)
    plugin = (await self.AD.plugins.get_plugin_object(namespace))
    if hasattr(plugin, 'fire_plugin_event'):
        (await plugin.fire_plugin_event(event, namespace, **kwargs))
    else:
        (await self.AD.events.process_event(namespace, {'event_type': event, 'data': kwargs}))
Fires an event.

If the namespace does not have a plugin associated with it, the event will be fired locally.
If a plugin is associated, the firing of the event will be delegated to the plugin, under the
understanding that when the event is fired, the plugin will notify appdaemon that it occurred,
usually via the system the plugin is communicating with.

Args:
    namespace (str): Namespace for the event to be fired in.
    event (str): Name of the event.
    **kwargs: Arguments to associate with the event.

Returns:
    None.
async def fire_event(self, namespace, event, **kwargs):
    'Fires an event.\n\n        If the namespace does not have a plugin associated with it, the event will be fired locally.\n        If a plugin is associated, the firing of the event will be delegated to the plugin, under the\n        understanding that when the event is fired, the plugin will notify appdaemon that it occurred,\n        usually via the system the plugin is communicating with.\n\n        Args:\n            namespace (str): Namespace for the event to be fired in.\n            event (str): Name of the event.\n            **kwargs: Arguments to associate with the event.\n\n        Returns:\n            None.\n\n        '
    self.logger.debug('fire_plugin_event() %s %s %s', namespace, event, kwargs)
    plugin = (await self.AD.plugins.get_plugin_object(namespace))
    if hasattr(plugin, 'fire_plugin_event'):
        (await plugin.fire_plugin_event(event, namespace, **kwargs))
    else:
        (await self.AD.events.process_event(namespace, {'event_type': event, 'data': kwargs}))