Set sensor icons
This commit is contained in:
parent
1dddaa9bcc
commit
0ecfe402ea
@ -1,6 +1,6 @@
|
|||||||
from homeassistant.components.binary_sensor import BinarySensorEntity
|
from homeassistant.components.binary_sensor import BinarySensorEntity
|
||||||
|
|
||||||
from .const import DATA_BROWSERS, DOMAIN, DATA_ADDERS
|
from .const import DOMAIN, DATA_ADDERS
|
||||||
from .entities import BrowserModEntity
|
from .entities import BrowserModEntity
|
||||||
|
|
||||||
|
|
||||||
@ -15,14 +15,14 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
|||||||
|
|
||||||
|
|
||||||
class BrowserBinarySensor(BrowserModEntity, BinarySensorEntity):
|
class BrowserBinarySensor(BrowserModEntity, BinarySensorEntity):
|
||||||
def __init__(self, coordinator, browserID, parameter, name):
|
def __init__(self, coordinator, browserID, parameter, name, icon=None):
|
||||||
BrowserModEntity.__init__(self, coordinator, browserID, name)
|
BrowserModEntity.__init__(self, coordinator, browserID, name, icon)
|
||||||
BinarySensorEntity.__init__(self)
|
BinarySensorEntity.__init__(self)
|
||||||
self.parameter = parameter
|
self.parameter = parameter
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_on(self):
|
def is_on(self):
|
||||||
return self._data.get(DATA_BROWSERS, {}).get(self.parameter, None)
|
return self._data.get("browser", {}).get(self.parameter, None)
|
||||||
|
|
||||||
|
|
||||||
class ActivityBinarySensor(BrowserModEntity, BinarySensorEntity):
|
class ActivityBinarySensor(BrowserModEntity, BinarySensorEntity):
|
||||||
|
@ -57,33 +57,50 @@ class BrowserModBrowser:
|
|||||||
coordinator = self.coordinator
|
coordinator = self.coordinator
|
||||||
browserID = self.browserID
|
browserID = self.browserID
|
||||||
|
|
||||||
def _assert_browser_sensor(type, name, *properties):
|
def _assert_browser_sensor(type, name, *properties, **kwarg):
|
||||||
"""Create a browser state sensor if it does not already exist"""
|
"""Create a browser state sensor if it does not already exist"""
|
||||||
if name in self.entities:
|
if name in self.entities:
|
||||||
return
|
return
|
||||||
adder = hass.data[DOMAIN][DATA_ADDERS][type]
|
adder = hass.data[DOMAIN][DATA_ADDERS][type]
|
||||||
cls = {"sensor": BrowserSensor, "binary_sensor": BrowserBinarySensor}[type]
|
cls = {"sensor": BrowserSensor, "binary_sensor": BrowserBinarySensor}[type]
|
||||||
new = cls(coordinator, browserID, name, *properties)
|
new = cls(coordinator, browserID, name, *properties, **kwarg)
|
||||||
adder([new])
|
adder([new])
|
||||||
self.entities[name] = new
|
self.entities[name] = new
|
||||||
|
|
||||||
_assert_browser_sensor("sensor", "path", "Browser path")
|
_assert_browser_sensor("sensor", "path", "Browser path", icon="mdi:web")
|
||||||
_assert_browser_sensor("sensor", "visibility", "Browser visibility")
|
_assert_browser_sensor("sensor", "visibility", "Browser visibility")
|
||||||
_assert_browser_sensor("sensor", "userAgent", "Browser userAgent")
|
_assert_browser_sensor(
|
||||||
_assert_browser_sensor("sensor", "currentUser", "Browser user")
|
"sensor", "userAgent", "Browser userAgent", icon="mdi:account-details"
|
||||||
_assert_browser_sensor("sensor", "width", "Browser width", "px")
|
)
|
||||||
_assert_browser_sensor("sensor", "height", "Browser height", "px")
|
_assert_browser_sensor(
|
||||||
|
"sensor", "currentUser", "Browser user", icon="mdi:account"
|
||||||
|
)
|
||||||
|
_assert_browser_sensor(
|
||||||
|
"sensor", "width", "Browser width", "px", icon="mdi:arrow-left-right"
|
||||||
|
)
|
||||||
|
_assert_browser_sensor(
|
||||||
|
"sensor", "height", "Browser height", "px", icon="mdi:arrow-up-down"
|
||||||
|
)
|
||||||
# Don't create battery sensor unless battery level is reported
|
# Don't create battery sensor unless battery level is reported
|
||||||
if self.data.get("browser", {}).get("battery_level", None) is not None:
|
if self.data.get("browser", {}).get("battery_level", None) is not None:
|
||||||
_assert_browser_sensor(
|
_assert_browser_sensor(
|
||||||
"sensor", "battery_level", "Browser battery", "%", "battery"
|
"sensor", "battery_level", "Browser battery", "%", "battery"
|
||||||
)
|
)
|
||||||
|
|
||||||
_assert_browser_sensor("binary_sensor", "darkMode", "Browser dark mode")
|
_assert_browser_sensor(
|
||||||
_assert_browser_sensor("binary_sensor", "fullyKiosk", "Browser FullyKiosk")
|
"binary_sensor",
|
||||||
|
"darkMode",
|
||||||
|
"Browser dark mode",
|
||||||
|
icon="mdi:theme-light-dark",
|
||||||
|
)
|
||||||
|
_assert_browser_sensor(
|
||||||
|
"binary_sensor", "fullyKiosk", "Browser FullyKiosk", icon="mdi:alpha-f"
|
||||||
|
)
|
||||||
# Don't create a charging sensor unless charging state is reported
|
# Don't create a charging sensor unless charging state is reported
|
||||||
if self.data.get("browser", {}).get("charging", None) is not None:
|
if self.data.get("browser", {}).get("charging", None) is not None:
|
||||||
_assert_browser_sensor("binary_sensor", "charging", "Browser charging")
|
_assert_browser_sensor(
|
||||||
|
"binary_sensor", "charging", "Browser charging", icon="mdi:power-plug"
|
||||||
|
)
|
||||||
|
|
||||||
if "activity" not in self.entities:
|
if "activity" not in self.entities:
|
||||||
adder = hass.data[DOMAIN][DATA_ADDERS]["binary_sensor"]
|
adder = hass.data[DOMAIN][DATA_ADDERS]["binary_sensor"]
|
||||||
|
@ -11,10 +11,11 @@ _LOGGER = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
class BrowserModEntity(CoordinatorEntity):
|
class BrowserModEntity(CoordinatorEntity):
|
||||||
def __init__(self, coordinator, browserID, name):
|
def __init__(self, coordinator, browserID, name, icon=None):
|
||||||
super().__init__(coordinator)
|
super().__init__(coordinator)
|
||||||
self.browserID = browserID
|
self.browserID = browserID
|
||||||
self._name = name
|
self._name = name
|
||||||
|
self._icon = icon
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _data(self):
|
def _data(self):
|
||||||
@ -54,3 +55,7 @@ class BrowserModEntity(CoordinatorEntity):
|
|||||||
@property
|
@property
|
||||||
def unique_id(self):
|
def unique_id(self):
|
||||||
return f"{self.browserID}-{self._name.replace(' ','_')}"
|
return f"{self.browserID}-{self._name.replace(' ','_')}"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def icon(self):
|
||||||
|
return self._icon
|
||||||
|
@ -23,8 +23,9 @@ class BrowserSensor(BrowserModEntity, SensorEntity):
|
|||||||
name,
|
name,
|
||||||
unit_of_measurement=None,
|
unit_of_measurement=None,
|
||||||
device_class=None,
|
device_class=None,
|
||||||
|
icon=None,
|
||||||
):
|
):
|
||||||
BrowserModEntity.__init__(self, coordinator, browserID, name)
|
BrowserModEntity.__init__(self, coordinator, browserID, name, icon)
|
||||||
SensorEntity.__init__(self)
|
SensorEntity.__init__(self)
|
||||||
self.parameter = parameter
|
self.parameter = parameter
|
||||||
self._device_class = device_class
|
self._device_class = device_class
|
||||||
@ -32,10 +33,7 @@ class BrowserSensor(BrowserModEntity, SensorEntity):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def native_value(self):
|
def native_value(self):
|
||||||
data = self._data
|
return self._data.get("browser", {}).get(self.parameter, None)
|
||||||
data = data.get("browser", {})
|
|
||||||
data = data.get(self.parameter, None)
|
|
||||||
return data
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def device_class(self):
|
def device_class(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user