core/homeassistant/components/onvif/models.py

74 lines
1.2 KiB
Python
Raw Normal View History

2020-05-06 16:29:59 +00:00
"""ONVIF models."""
from dataclasses import dataclass
from typing import Any, List
2020-05-06 16:29:59 +00:00
@dataclass
class DeviceInfo:
"""Represent device information."""
manufacturer: str = None
model: str = None
fw_version: str = None
serial_number: str = None
2020-05-06 16:29:59 +00:00
mac: str = None
@dataclass
class Resolution:
"""Represent video resolution."""
width: int
height: int
@dataclass
class Video:
"""Represent video encoding settings."""
encoding: str
resolution: Resolution
@dataclass
class PTZ:
"""Represents PTZ configuration on a profile."""
continuous: bool
relative: bool
absolute: bool
presets: List[str] = None
@dataclass
class Profile:
"""Represent a ONVIF Profile."""
index: int
token: str
name: str
video: Video
ptz: PTZ = None
@dataclass
class Capabilities:
"""Represents Service capabilities."""
snapshot: bool = False
events: bool = False
2020-05-06 16:29:59 +00:00
ptz: bool = False
@dataclass
class Event:
"""Represents a ONVIF event."""
uid: str
name: str
platform: str
device_class: str = None
unit_of_measurement: str = None
value: Any = None
entity_enabled: bool = True