"""Exception hierarchy for aiovictron."""


class VictronError(Exception):
    """Base exception for aiovictron."""


class VictronConnectionError(VictronError):
    """Cannot connect to Victron device."""


class VictronTimeoutError(VictronError):
    """Connection or read timed out."""


class VictronModbusError(VictronError):
    """Modbus protocol error (invalid response, CRC, etc.)."""


class VictronNoDevicesError(VictronError):
    """No Victron devices discovered at the given host."""
