2022-04-24 21:38:45 +02:00
|
|
|
from abc import ABC
|
2022-04-07 01:46:37 +02:00
|
|
|
from typing import Union
|
|
|
|
|
|
|
|
from platypush.entities import Entity
|
|
|
|
from platypush.message.event import Event
|
|
|
|
|
|
|
|
|
2022-04-24 21:38:45 +02:00
|
|
|
class EntityEvent(Event, ABC):
|
2022-04-30 02:13:20 +02:00
|
|
|
def __init__(
|
|
|
|
self, entity: Union[Entity, dict], *args, disable_logging=True, **kwargs
|
|
|
|
):
|
2022-04-07 01:46:37 +02:00
|
|
|
if isinstance(entity, Entity):
|
|
|
|
entity = entity.to_json()
|
2022-04-30 02:13:20 +02:00
|
|
|
super().__init__(
|
|
|
|
entity=entity, *args, disable_logging=disable_logging, **kwargs
|
|
|
|
)
|
2022-04-07 01:46:37 +02:00
|
|
|
|
|
|
|
|
2022-04-24 21:38:45 +02:00
|
|
|
class EntityUpdateEvent(EntityEvent):
|
|
|
|
"""
|
|
|
|
This event is triggered whenever an entity of any type (a switch, a light,
|
|
|
|
a sensor, a media player etc.) updates its state.
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
class EntityDeleteEvent(EntityEvent):
|
|
|
|
"""
|
|
|
|
This event is triggered whenever an entity is deleted.
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
2022-04-07 01:46:37 +02:00
|
|
|
# vim:sw=4:ts=4:et:
|