# ------- generated by typeit -------
from typing import Any, NamedTuple, Optional, Sequence
# from typeit import TypeConstructor


class Peripherals(NamedTuple):
    Type: int
    PeripheralType: int
    ItemId: int
    Name: str
    Firmware: str
    Tamper: int
    Missing: int
    Enabled: int
    Voltage: float
    Data: str


class Zones(NamedTuple):
    ZoneId: int
    Type: int
    TerminalId: int
    Name: str
    Areas: int
    Status: int
    AlarmMemory: int
    TamperMemory: int
    Bypassed: int
    OutputOn: int
    OutputValue: int
    Power: int
    Voltage: int
    CosPhi: int
    InputType: int
    InputFlags: int
    OutputFlags: int
    Monost: int
    OutputCategory: int
    Channels: Sequence
    Favorite: int
    Special: int
    Visibility: int


class Scenarios(NamedTuple):
    ScenarioId: int
    Name: str
    AreaSet: str
    AreaMask: int
    Icona: int
    Uscita: int


class Areas(NamedTuple):
    AreaId: int
    Name: str
    Armed: int
    Alarm: int
    AlarmMemory: int
    Tamper: int
    TamperMemory: int
    AutoInsert: int


class Data(NamedTuple):
    DeviceId: int
    ActiveScenario: int
    ActiveScenarios: str
    Master: int
    Favorite: int
    CodeIndex: int
    counter_0: int
    counter_1: int
    counter_2: int
    counter_3: int
    counter_4: int
    Name: str
    InternalName: str
    SerialNumber: str
    ModelFamily: str
    ModelNumber: str
    Language: str
    ControlledBy: int
    BlockUserBinding: int
    InstReqPending: int
    Enabled: int
    EnrollDate: str
    NetworkStatus: int
    LastCommunicationDate: str
    PrimaryIpAddress: str
    PrimaryChannel: str
    SecondaryIpAddress: str
    SecondaryChannel: str
    FirmwareVersionMajor: str
    FirmwareVersionMinor: str
    TZOffset: int
    Options: int
    Faults: int
    FaultList: Sequence
    FaultEventDescription: str
    Voltage: float
    Address: str
    Lat: int
    Lng: int
    Functionalities: int
    Related: Sequence
    AlarmedAreas: str
    AlarmEventDescription: str
    Areas: Sequence[Areas]
    Scenarios: Sequence[Scenarios]
    Zones: Sequence[Zones]
    Blinds: Sequence
    Thermostats: Sequence
    Peripherals: Sequence[Peripherals]

class Devices(NamedTuple):
    Status: int
    ErrMsg: str
    ts: str
    Data: dict[str, Data]
