Beispiel #1
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self.resource_type == 'devices/battery' and self.extra:
         battery_level = BATTERY_LEVELS[self.extra.get('battery')]
         return icon_for_battery_level(battery_level=battery_level,
                                       charging=None)
     return 'mdi:{}'.format(FITBIT_RESOURCES_LIST[self.resource_type][2])
Beispiel #2
0
    def battery_icon(self):
        """Return the battery icon for the vacuum cleaner.

        No need to check VacuumEntityFeature.BATTERY, this won't be called if battery_level is None.
        """
        return icon_for_battery_level(battery_level=self.battery_level,
                                      charging=self._charging)
Beispiel #3
0
 def icon(self):
     """Return the icon to use."""
     if self.device["hive_type"] == "Battery":
         return icon_for_battery_level(
             battery_level=self.device["status"]["state"])
     else:
         return DEVICETYPE[self.device["hive_type"]]['icon']
    def battery_icon(self):
        """Return the battery icon for the vacuum cleaner."""
        charging = bool(self.state == STATE_DOCKED)

        return icon_for_battery_level(
            battery_level=self.battery_level, charging=charging
        )
Beispiel #5
0
 def battery_icon(self):
     """Return the battery icon for the vacuum cleaner."""
     charging = False
     if self.status is not None:
         charging = 'charg' in self.status.lower()
     return icon_for_battery_level(battery_level=self.battery_level,
                                   charging=charging)
Beispiel #6
0
 def icon(self):
     """Return the icon to use."""
     if self.device["hiveType"] == "Battery":
         return icon_for_battery_level(
             battery_level=self.device["deviceData"]["battery"])
     else:
         return DEVICETYPE[self.device["hiveType"]]["icon"]
Beispiel #7
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self.entity_description.key == "battery_level" and self._state is not None:
         return icon_for_battery_level(
             battery_level=int(self._state), charging=False
         )
     return self.entity_description.icon
Beispiel #8
0
 def battery_icon(self):
     """Return the battery icon for the vacuum cleaner."""
     from libpurecoollink.const import Dyson360EyeMode
     charging = self._device.state.state in [
         Dyson360EyeMode.INACTIVE_CHARGING]
     return icon_for_battery_level(
         battery_level=self.battery_level, charging=charging)
Beispiel #9
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self.resource_type == 'devices/battery' and self.extra:
         battery_level = BATTERY_LEVELS[self.extra.get('battery')]
         return icon_for_battery_level(battery_level=battery_level,
                                       charging=None)
     return 'mdi:{}'.format(FITBIT_RESOURCES_LIST[self.resource_type][2])
Beispiel #10
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self._device_class == DEVICE_CLASS_BATTERY and self._state is not None:
         return icon_for_battery_level(
             battery_level=int(self._state), charging=False
         )
     return self._icon
Beispiel #11
0
 def icon(self):
     """Battery state icon handling."""
     chargestate = self.car.data[DATA_CHARGING]
     return icon_for_battery_level(
         battery_level=self.state,
         charging=chargestate
     )
Beispiel #12
0
 def icon(self):
     """Return the icon."""
     if self.instrument.attr in ['battery_level', 'charging']:
         return icon_for_battery_level(battery_level=self.instrument.state,
                                       charging=self.vehicle.charging)
     else:
         return self.instrument.icon
Beispiel #13
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self._sensor_type == "battery_level" and self._state is not None:
         return icon_for_battery_level(
             battery_level=int(self._state), charging=False
         )
     return self._icon
Beispiel #14
0
 def icon(self):
     """Battery state icon handling."""
     chargestate = self.car.data[DATA_CHARGING]
     return icon_for_battery_level(
         battery_level=self.state,
         charging=chargestate
     )
Beispiel #15
0
    def battery_icon(self):
        """Return the battery icon for the vacuum cleaner."""
        if self.supported_features & SUPPORT_BATTERY == 0:
            return

        return icon_for_battery_level(battery_level=self.battery_level,
                                      charging=self._charging)
Beispiel #16
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self._sensor_type == "battery" and self._device.battery_life is not None:
         return icon_for_battery_level(
             battery_level=self._device.battery_life, charging=False
         )
     return self._icon
Beispiel #17
0
 def battery_icon(self):
     """Return the battery icon for the vacuum cleaner."""
     charging = False
     if self.status is not None:
         charging = 'charg' in self.status.lower()
     return icon_for_battery_level(
         battery_level=self.battery_level, charging=charging)
Beispiel #18
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if (self.entity_description.key == "battery"
             and self._device.battery_life is not None):
         return icon_for_battery_level(
             battery_level=self._device.battery_life, charging=False)
     return self.entity_description.icon
 def icon(self) -> Optional[str]:
     """Return the icon."""
     if self.instrument.attr in ["battery_level", "charging"]:
         return icon_for_battery_level(battery_level=self.instrument.state,
                                       charging=self.vehicle.charging)
     else:
         return self.instrument.icon
Beispiel #20
0
    def battery_icon(self):
        """Return the battery icon for the vacuum cleaner."""
        if self.supported_features & SUPPORT_BATTERY == 0:
            return

        return icon_for_battery_level(
            battery_level=self.battery_level, charging=self._charging)
Beispiel #21
0
    def update(self) -> None:
        """Read new state data from the library."""
        _LOGGER.debug("Updating %s", self._vehicle.name)
        vehicle_state = self._vehicle.state
        if self._attribute == "charging_status":
            self._attr_native_value = getattr(vehicle_state,
                                              self._attribute).value
        elif self.unit_of_measurement == VOLUME_GALLONS:
            value = getattr(vehicle_state, self._attribute)
            value_converted = self.hass.config.units.volume(
                value, VOLUME_LITERS)
            self._attr_native_value = round(value_converted)
        elif self.unit_of_measurement == LENGTH_MILES:
            value = getattr(vehicle_state, self._attribute)
            value_converted = self.hass.config.units.length(
                value, LENGTH_KILOMETERS)
            self._attr_native_value = round(value_converted)
        elif self._service is None:
            self._attr_native_value = getattr(vehicle_state, self._attribute)
        elif self._service == SERVICE_LAST_TRIP:
            vehicle_last_trip = self._vehicle.state.last_trip
            if self._attribute == "date_utc":
                date_str = getattr(vehicle_last_trip, "date")
                self._attr_native_value = dt_util.parse_datetime(
                    date_str).isoformat()
            else:
                self._attr_native_value = getattr(vehicle_last_trip,
                                                  self._attribute)
        elif self._service == SERVICE_ALL_TRIPS:
            vehicle_all_trips = self._vehicle.state.all_trips
            for attribute in (
                    "average_combined_consumption",
                    "average_electric_consumption",
                    "average_recuperation",
                    "chargecycle_range",
                    "total_electric_distance",
            ):
                if self._attribute.startswith(f"{attribute}_"):
                    attr = getattr(vehicle_all_trips, attribute)
                    sub_attr = self._attribute.replace(f"{attribute}_", "")
                    self._attr_native_value = getattr(attr, sub_attr)
                    return
            if self._attribute == "reset_date_utc":
                date_str = getattr(vehicle_all_trips, "reset_date")
                self._attr_native_value = dt_util.parse_datetime(
                    date_str).isoformat()
            else:
                self._attr_native_value = getattr(vehicle_all_trips,
                                                  self._attribute)

        vehicle_state = self._vehicle.state
        charging_state = vehicle_state.charging_status in [
            ChargingState.CHARGING
        ]

        if self._attribute == "charging_level_hv":
            self._attr_icon = icon_for_battery_level(
                battery_level=vehicle_state.charging_level_hv,
                charging=charging_state)
 def icon(self):
     """Return the icon."""
     if self._attribute == 'battery_level':
         val = getattr(self.vehicle, self._attribute)
         return icon_for_battery_level(battery_level=int(val),
                                       charging=self.vehicle.is_charging_on)
     else:
         return RESOURCES[self._attribute][2]
Beispiel #23
0
    def test_battery_icon(self):
        """Test icon generator for battery sensor."""
        from homeassistant.helpers.icon import icon_for_battery_level

        assert 'mdi:battery-unknown' == \
            icon_for_battery_level(None, True)
        assert 'mdi:battery-unknown' == \
            icon_for_battery_level(None, False)

        assert 'mdi:battery-outline' == \
            icon_for_battery_level(5, True)
        assert 'mdi:battery-alert' == \
            icon_for_battery_level(5, False)

        assert 'mdi:battery-charging-100' == \
            icon_for_battery_level(100, True)
        assert 'mdi:battery' == \
            icon_for_battery_level(100, False)

        iconbase = 'mdi:battery'
        for level in range(0, 100, 5):
            print('Level: %d. icon: %s, charging: %s' %
                  (level, icon_for_battery_level(
                      level, False), icon_for_battery_level(level, True)))
            if level <= 10:
                postfix_charging = '-outline'
            elif level <= 30:
                postfix_charging = '-charging-20'
            elif level <= 50:
                postfix_charging = '-charging-40'
            elif level <= 70:
                postfix_charging = '-charging-60'
            elif level <= 90:
                postfix_charging = '-charging-80'
            else:
                postfix_charging = '-charging-100'
            if 5 < level < 95:
                postfix = '-{}'.format(int(round(level / 10 - .01)) * 10)
            elif level <= 5:
                postfix = '-alert'
            else:
                postfix = ''
            assert iconbase + postfix == \
                icon_for_battery_level(level, False)
            assert iconbase + postfix_charging == \
                icon_for_battery_level(level, True)
Beispiel #24
0
 def icon(self) -> str | None:
     """Icon to use in the frontend, if any."""
     if (self.entity_description.key == "devices/battery"
             and self.extra is not None
             and (extra_battery := self.extra.get("battery")) is not None
             and
         (battery_level := BATTERY_LEVELS.get(extra_battery)) is not None):
         return icon_for_battery_level(battery_level=battery_level)
 def icon(self):
     """Return the icon."""
     if self._sensor_name == 'battery':
         return icon_for_battery_level(
             battery_level=int(self._state),
             charging=self._get_vehicle_data['state_charge'])
     else:
         return self.sensor.get('icon')
Beispiel #26
0
    def test_battery_icon(self):
        """Test icon generator for battery sensor."""
        from homeassistant.helpers.icon import icon_for_battery_level

        self.assertEqual('mdi:battery-unknown',
                         icon_for_battery_level(None, True))
        self.assertEqual('mdi:battery-unknown',
                         icon_for_battery_level(None, False))

        self.assertEqual('mdi:battery-outline',
                         icon_for_battery_level(5, True))
        self.assertEqual('mdi:battery-alert',
                         icon_for_battery_level(5, False))

        self.assertEqual('mdi:battery-charging-100',
                         icon_for_battery_level(100, True))
        self.assertEqual('mdi:battery',
                         icon_for_battery_level(100, False))

        iconbase = 'mdi:battery'
        for level in range(0, 100, 5):
            print('Level: %d. icon: %s, charging: %s'
                  % (level, icon_for_battery_level(level, False),
                     icon_for_battery_level(level, True)))
            if level <= 10:
                postfix_charging = '-outline'
            elif level <= 30:
                postfix_charging = '-charging-20'
            elif level <= 50:
                postfix_charging = '-charging-40'
            elif level <= 70:
                postfix_charging = '-charging-60'
            elif level <= 90:
                postfix_charging = '-charging-80'
            else:
                postfix_charging = '-charging-100'
            if 5 < level < 95:
                postfix = '-{}'.format(int(round(level / 10 - .01)) * 10)
            elif level <= 5:
                postfix = '-alert'
            else:
                postfix = ''
            self.assertEqual(iconbase + postfix,
                             icon_for_battery_level(level, False))
            self.assertEqual(iconbase + postfix_charging,
                             icon_for_battery_level(level, True))
    def icon(self):
        """Icon to use in the frontend."""
        if self._sensor_type == "battery" and isinstance(self.state, int):
            charging = self._attributes["charging"]
            return icon_for_battery_level(battery_level=self.state,
                                          charging=charging)

        return API_WORX_SENSORS[self._sensor_type]["icon"]
Beispiel #28
0
 def icon(self):
     """Return icon for sensor."""
     if self.title == "EV Battery Level" and self.coordinator.data.get(
             self.vin):
         charge_status = (self.coordinator.data[self.vin]["status"].get(
             sc.EV_CHARGER_STATE_TYPE) == "CHARGING")
         return icon_for_battery_level(battery_level=self.current_value,
                                       charging=charge_status)
     return super().icon
Beispiel #29
0
 def icon(self) -> str:
     """Return the icon to use in the frontend, if any."""
     if self._updateble_icon:
         return self._icon_func(self._state)
     if self._icon == "battery":
         return icon_for_battery_level(
             int(self._state) if self._state is not None else None,
             self.charging)
     return self._icon
Beispiel #30
0
 def icon(self) -> str:
     """Icon to use in the frontend, if any."""
     if self.resource_type == "devices/battery" and self.extra is not None:
         extra_battery = self.extra.get("battery")
         if extra_battery is not None:
             battery_level = BATTERY_LEVELS.get(extra_battery)
             if battery_level is not None:
                 return icon_for_battery_level(battery_level=battery_level)
     fitbit_ressource = FITBIT_RESOURCES_LIST[self.resource_type]
     return f"mdi:{fitbit_ressource[2]}"
Beispiel #31
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self._sensor_type == "battery_level" and self._state is not None:
         return icon_for_battery_level(battery_level=int(self._state),
                                       charging=False)
     if self._sensor_type == "recording_mode" and self._state is not None:
         return "mdi:eye" if self._state == STATE_ON else "mdi:eye-off"
     if self._sensor_type == "streaming_mode" and self._state is not None:
         return "mdi:camera" if self._state == STATE_ON else "mdi:camera-off"
     return self._icon
Beispiel #32
0
    def icon(self):
        """Return the icon of the sensor."""
        if (self.device_class == DEVICE_CLASS_BATTERY
                and self.tesla_device.has_battery()):
            return icon_for_battery_level(
                battery_level=self.tesla_device.battery_level(),
                charging=self.tesla_device.battery_charging(),
            )

        return self._icon
Beispiel #33
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self._key == "battery":
         return icon_for_battery_level(
             battery_level=self._device.battery_level_percent,
             charging=self._device.car_state.get("ign", False),
         )
     if self._key == "gsm_lvl":
         return icon_for_signal_level(signal_level=self._device.gsm_level_percent)
     return self._icon
Beispiel #34
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if (self._sensor_type == 'battery_level' and self._state is not None):
         return icon_for_battery_level(battery_level=int(self._state),
                                       charging=False)
     if (self._sensor_type == 'privacy_mode' and self._state is not None):
         return 'mdi:eye-off' if self._state == STATE_ON else 'mdi:eye'
     if (self._sensor_type == 'streaming_mode' and self._state is not None):
         return ('mdi:camera'
                 if self._state == STATE_ON else 'mdi:camera-off')
     return self._icon
Beispiel #35
0
def test_battery_icon():
    """Test icon generator for battery sensor."""
    from homeassistant.helpers.icon import icon_for_battery_level

    assert icon_for_battery_level(None, True) == "mdi:battery-unknown"
    assert icon_for_battery_level(None, False) == "mdi:battery-unknown"

    assert icon_for_battery_level(5, True) == "mdi:battery-outline"
    assert icon_for_battery_level(5, False) == "mdi:battery-alert"

    assert icon_for_battery_level(100, True) == "mdi:battery-charging-100"
    assert icon_for_battery_level(100, False) == "mdi:battery"

    iconbase = "mdi:battery"
    for level in range(0, 100, 5):
        print("Level: %d. icon: %s, charging: %s" % (
            level,
            icon_for_battery_level(level, False),
            icon_for_battery_level(level, True),
        ))
        if level <= 10:
            postfix_charging = "-outline"
        elif level <= 30:
            postfix_charging = "-charging-20"
        elif level <= 50:
            postfix_charging = "-charging-40"
        elif level <= 70:
            postfix_charging = "-charging-60"
        elif level <= 90:
            postfix_charging = "-charging-80"
        else:
            postfix_charging = "-charging-100"
        if 5 < level < 95:
            postfix = f"-{int(round(level / 10 - 0.01)) * 10}"
        elif level <= 5:
            postfix = "-alert"
        else:
            postfix = ""
        assert iconbase + postfix == icon_for_battery_level(level, False)
        assert iconbase + postfix_charging == icon_for_battery_level(
            level, True)
    def icon(self):
        """Icon to use in the frontend, if any."""
        from bimmer_connected.state import ChargingState
        vehicle_state = self._vehicle.state
        charging_state = vehicle_state.charging_status in \
            [ChargingState.CHARGING]

        if self._attribute == 'charging_level_hv':
            return icon_for_battery_level(
                battery_level=vehicle_state.charging_level_hv,
                charging=charging_state)
        icon, _ = ATTR_TO_HA.get(self._attribute, [None, None])
        return icon
Beispiel #37
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if (self._sensor_type == 'battery_level' and
             self._state is not None):
         return icon_for_battery_level(battery_level=int(self._state),
                                       charging=False)
     if (self._sensor_type == 'privacy_mode' and
             self._state is not None):
         return 'mdi:eye-off' if self._state == STATE_ON else 'mdi:eye'
     if (self._sensor_type == 'streaming_mode' and
             self._state is not None):
         return (
             'mdi:camera' if self._state == STATE_ON else 'mdi:camera-off')
     return self._icon
Beispiel #38
0
    def icon(self):
        """Return the icon to use in the frontend, if any."""
        device_battery = self._device[ios.ATTR_BATTERY]
        battery_state = device_battery[ios.ATTR_BATTERY_STATE]
        battery_level = device_battery[ios.ATTR_BATTERY_LEVEL]
        charging = True
        icon_state = DEFAULT_ICON_STATE
        if battery_state in (ios.ATTR_BATTERY_STATE_FULL,
                             ios.ATTR_BATTERY_STATE_UNPLUGGED):
            charging = False
            icon_state = "{}-off".format(DEFAULT_ICON_STATE)
        elif battery_state == ios.ATTR_BATTERY_STATE_UNKNOWN:
            battery_level = None
            charging = False
            icon_state = "{}-unknown".format(DEFAULT_ICON_LEVEL)

        if self.type == "state":
            return icon_state
        return icon_for_battery_level(battery_level=battery_level,
                                      charging=charging)
Beispiel #39
0
 def icon(self):
     """Return the icon to use in the frontend."""
     return icon_for_battery_level(int(self.state))
Beispiel #40
0
 def icon(self):
     """Icon to use in the frontend, if any."""
     if self._sensor_type == 'battery_level' and self._state is not None:
         return icon_for_battery_level(battery_level=int(self._state),
                                       charging=False)
     return self._icon
Beispiel #41
0
 def battery_icon(self):
     """Return the battery icon for the vacuum cleaner."""
     return icon_for_battery_level(
         battery_level=self.battery_level, charging=self.is_charging)
Beispiel #42
0
    def battery_icon(self):
        """Return the battery icon for the vacuum cleaner."""
        charging = bool(self.state == STATE_DOCKED)

        return icon_for_battery_level(
            battery_level=self.battery_level, charging=charging)
 def icon(self):
     """Return the icon for the sensor."""
     if self._sensor == 'battery_level' and self._state is not None:
         return icon_for_battery_level(int(self._state))
     return ICON_MAP.get(self._sensor, 'mdi:eye')
Beispiel #44
0
    def icon(self):
        """Icon for the sensor."""
        if self.state is not None and self._sensor_type[0] == "battery":
            return icon_for_battery_level(battery_level=self.state)

        return self._sensor_type[2]
Beispiel #45
0
 def icon(self):
     """Return the icon."""
     if self._attr == BATTERY_SENSOR:
         return icon_for_battery_level(self.state)
     return self._icon
Beispiel #46
0
 def icon(self):
     """Return the icon."""
     if self._attr == BATTERY_SENSOR:
         charging = self._state_attributes.get("charging", False)
         return icon_for_battery_level(self.state, charging)
     return self._icon