def __init__(self, config, see):
        """Initialize FleetGoDeviceScanner."""
        from ritassist import API

        self._include = config.get(CONF_INCLUDE)
        self._see = see

        self._api = API(config.get(CONF_CLIENT_ID),
                        config.get(CONF_CLIENT_SECRET),
                        config.get(CONF_USERNAME), config.get(CONF_PASSWORD))
Exemple #2
0
    def __init__(self, config, see: SeeCallback):
        """Initialize FleetGoDeviceScanner."""
        self._include = config.get(CONF_INCLUDE)
        self._see = see

        self._api = API(
            config.get(CONF_CLIENT_ID),
            config.get(CONF_CLIENT_SECRET),
            config.get(CONF_USERNAME),
            config.get(CONF_PASSWORD),
        )
class FleetGoDeviceScanner:
    """Define a scanner for the FleetGO platform."""
    def __init__(self, config, see):
        """Initialize FleetGoDeviceScanner."""
        from ritassist import API

        self._include = config.get(CONF_INCLUDE)
        self._see = see

        self._api = API(
            config.get(CONF_CLIENT_ID),
            config.get(CONF_CLIENT_SECRET),
            config.get(CONF_USERNAME),
            config.get(CONF_PASSWORD),
        )

    def setup(self, hass):
        """Set up a timer and start gathering devices."""
        self._refresh()
        track_utc_time_change(hass,
                              lambda now: self._refresh(),
                              second=range(0, 60, 30))

    def login(self, hass):
        """Perform a login on the FleetGO API."""
        if self._api.login():
            self.setup(hass)
            return True
        return False

    def _refresh(self) -> None:
        """Refresh device information from the platform."""
        try:
            devices = self._api.get_devices()

            for device in devices:
                if not self._include or device.license_plate in self._include:

                    if device.active or device.current_address is None:
                        device.get_map_details()

                    self._see(
                        dev_id=device.plate_as_id,
                        gps=(device.latitude, device.longitude),
                        attributes=device.state_attributes,
                        icon="mdi:car",
                    )

        except requests.exceptions.ConnectionError:
            _LOGGER.error("ConnectionError: Could not connect to FleetGO")
class RitAssistDeviceScanner:
    """Define a scanner for the RitAssist platform."""

    def __init__(self, config, see):
        """Initialize RitAssistDeviceScanner."""
        from ritassist import API

        self._include = config.get(CONF_INCLUDE)
        self._see = see

        self._api = API(config.get(CONF_CLIENT_ID),
                        config.get(CONF_CLIENT_SECRET),
                        config.get(CONF_USERNAME),
                        config.get(CONF_PASSWORD))

    def setup(self, hass):
        """Setup a timer and start gathering devices."""
        self._refresh()
        track_utc_time_change(hass,
                              lambda now: self._refresh(),
                              second=range(0, 60, 30))

    def login(self, hass):
        """Perform a login on the RitAssist API."""
        if self._api.login():
            self.setup(hass)
            return True
        return False

    def _refresh(self) -> None:
        """Refresh device information from the platform."""
        try:
            devices = self._api.get_devices()

            for device in devices:
                if (not self._include or
                        device.license_plate in self._include):
                    self._see(dev_id=device.plate_as_id,
                              gps=(device.latitude, device.longitude),
                              attributes=device.state_attributes,
                              icon='mdi:car')

        except requests.exceptions.ConnectionError:
            _LOGGER.error('ConnectionError: Could not connect to RitAssist')
    def __init__(self, config, see):
        """Initialize RitAssistDeviceScanner."""
        from ritassist import API

        self._include = config.get(CONF_INCLUDE)
        self._see = see

        self._api = API(config.get(CONF_CLIENT_ID),
                        config.get(CONF_CLIENT_SECRET),
                        config.get(CONF_USERNAME),
                        config.get(CONF_PASSWORD))