diff --git a/homeassistant/components/brother/const.py b/homeassistant/components/brother/const.py index e887ad6de21..94d88162d76 100644 --- a/homeassistant/components/brother/const.py +++ b/homeassistant/components/brother/const.py @@ -2,19 +2,29 @@ from homeassistant.const import TIME_DAYS, UNIT_PERCENTAGE ATTR_BELT_UNIT_REMAINING_LIFE = "belt_unit_remaining_life" +ATTR_BLACK_DRUM_COUNTER = "black_drum_counter" +ATTR_BLACK_DRUM_REMAINING_LIFE = "black_drum_remaining_life" +ATTR_BLACK_DRUM_REMAINING_PAGES = "black_drum_remaining_pages" ATTR_BLACK_INK_REMAINING = "black_ink_remaining" ATTR_BLACK_TONER_REMAINING = "black_toner_remaining" ATTR_BW_COUNTER = "b/w_counter" ATTR_COLOR_COUNTER = "color_counter" +ATTR_CYAN_DRUM_COUNTER = "cyan_drum_counter" +ATTR_CYAN_DRUM_REMAINING_LIFE = "cyan_drum_remaining_life" +ATTR_CYAN_DRUM_REMAINING_PAGES = "cyan_drum_remaining_pages" ATTR_CYAN_INK_REMAINING = "cyan_ink_remaining" ATTR_CYAN_TONER_REMAINING = "cyan_toner_remaining" ATTR_DRUM_COUNTER = "drum_counter" ATTR_DRUM_REMAINING_LIFE = "drum_remaining_life" ATTR_DRUM_REMAINING_PAGES = "drum_remaining_pages" +ATTR_DUPLEX_COUNTER = "duplex_unit_pages_counter" ATTR_FUSER_REMAINING_LIFE = "fuser_remaining_life" ATTR_ICON = "icon" ATTR_LABEL = "label" ATTR_LASER_REMAINING_LIFE = "laser_remaining_life" +ATTR_MAGENTA_DRUM_COUNTER = "magenta_drum_counter" +ATTR_MAGENTA_DRUM_REMAINING_LIFE = "magenta_drum_remaining_life" +ATTR_MAGENTA_DRUM_REMAINING_PAGES = "magenta_drum_remaining_pages" ATTR_MAGENTA_INK_REMAINING = "magenta_ink_remaining" ATTR_MAGENTA_TONER_REMAINING = "magenta_toner_remaining" ATTR_MANUFACTURER = "Brother" @@ -24,6 +34,9 @@ ATTR_PF_KIT_MP_REMAINING_LIFE = "pf_kit_mp_remaining_life" ATTR_STATUS = "status" ATTR_UNIT = "unit" ATTR_UPTIME = "uptime" +ATTR_YELLOW_DRUM_COUNTER = "yellow_drum_counter" +ATTR_YELLOW_DRUM_REMAINING_LIFE = "yellow_drum_remaining_life" +ATTR_YELLOW_DRUM_REMAINING_PAGES = "yellow_drum_remaining_pages" ATTR_YELLOW_INK_REMAINING = "yellow_ink_remaining" ATTR_YELLOW_TONER_REMAINING = "yellow_toner_remaining" @@ -54,11 +67,36 @@ SENSOR_TYPES = { ATTR_LABEL: ATTR_COLOR_COUNTER.replace("_", " ").title(), ATTR_UNIT: UNIT_PAGES, }, + ATTR_DUPLEX_COUNTER: { + ATTR_ICON: "mdi:file-document-outline", + ATTR_LABEL: ATTR_DUPLEX_COUNTER.replace("_", " ").title(), + ATTR_UNIT: UNIT_PAGES, + }, ATTR_DRUM_REMAINING_LIFE: { ATTR_ICON: "mdi:chart-donut", ATTR_LABEL: ATTR_DRUM_REMAINING_LIFE.replace("_", " ").title(), ATTR_UNIT: UNIT_PERCENTAGE, }, + ATTR_BLACK_DRUM_REMAINING_LIFE: { + ATTR_ICON: "mdi:chart-donut", + ATTR_LABEL: ATTR_BLACK_DRUM_REMAINING_LIFE.replace("_", " ").title(), + ATTR_UNIT: UNIT_PERCENTAGE, + }, + ATTR_CYAN_DRUM_REMAINING_LIFE: { + ATTR_ICON: "mdi:chart-donut", + ATTR_LABEL: ATTR_CYAN_DRUM_REMAINING_LIFE.replace("_", " ").title(), + ATTR_UNIT: UNIT_PERCENTAGE, + }, + ATTR_MAGENTA_DRUM_REMAINING_LIFE: { + ATTR_ICON: "mdi:chart-donut", + ATTR_LABEL: ATTR_MAGENTA_DRUM_REMAINING_LIFE.replace("_", " ").title(), + ATTR_UNIT: UNIT_PERCENTAGE, + }, + ATTR_YELLOW_DRUM_REMAINING_LIFE: { + ATTR_ICON: "mdi:chart-donut", + ATTR_LABEL: ATTR_YELLOW_DRUM_REMAINING_LIFE.replace("_", " ").title(), + ATTR_UNIT: UNIT_PERCENTAGE, + }, ATTR_BELT_UNIT_REMAINING_LIFE: { ATTR_ICON: "mdi:current-ac", ATTR_LABEL: ATTR_BELT_UNIT_REMAINING_LIFE.replace("_", " ").title(), diff --git a/homeassistant/components/brother/sensor.py b/homeassistant/components/brother/sensor.py index 9ad075f81cd..e118e65e9a5 100644 --- a/homeassistant/components/brother/sensor.py +++ b/homeassistant/components/brother/sensor.py @@ -4,17 +4,32 @@ import logging from homeassistant.helpers.entity import Entity from .const import ( + ATTR_BLACK_DRUM_COUNTER, + ATTR_BLACK_DRUM_REMAINING_LIFE, + ATTR_BLACK_DRUM_REMAINING_PAGES, + ATTR_CYAN_DRUM_COUNTER, + ATTR_CYAN_DRUM_REMAINING_LIFE, + ATTR_CYAN_DRUM_REMAINING_PAGES, ATTR_DRUM_COUNTER, ATTR_DRUM_REMAINING_LIFE, ATTR_DRUM_REMAINING_PAGES, ATTR_ICON, ATTR_LABEL, + ATTR_MAGENTA_DRUM_COUNTER, + ATTR_MAGENTA_DRUM_REMAINING_LIFE, + ATTR_MAGENTA_DRUM_REMAINING_PAGES, ATTR_MANUFACTURER, ATTR_UNIT, + ATTR_YELLOW_DRUM_COUNTER, + ATTR_YELLOW_DRUM_REMAINING_LIFE, + ATTR_YELLOW_DRUM_REMAINING_PAGES, DOMAIN, SENSOR_TYPES, ) +ATTR_COUNTER = "counter" +ATTR_REMAINING_PAGES = "remaining_pages" + _LOGGER = logging.getLogger(__name__) @@ -65,11 +80,26 @@ class BrotherPrinterSensor(Entity): @property def device_state_attributes(self): """Return the state attributes.""" + remaining_pages = None + drum_counter = None if self.kind == ATTR_DRUM_REMAINING_LIFE: - self._attrs["remaining_pages"] = self.printer.data.get( - ATTR_DRUM_REMAINING_PAGES - ) - self._attrs["counter"] = self.printer.data.get(ATTR_DRUM_COUNTER) + remaining_pages = ATTR_DRUM_REMAINING_PAGES + drum_counter = ATTR_DRUM_COUNTER + elif self.kind == ATTR_BLACK_DRUM_REMAINING_LIFE: + remaining_pages = ATTR_BLACK_DRUM_REMAINING_PAGES + drum_counter = ATTR_BLACK_DRUM_COUNTER + elif self.kind == ATTR_CYAN_DRUM_REMAINING_LIFE: + remaining_pages = ATTR_CYAN_DRUM_REMAINING_PAGES + drum_counter = ATTR_CYAN_DRUM_COUNTER + elif self.kind == ATTR_MAGENTA_DRUM_REMAINING_LIFE: + remaining_pages = ATTR_MAGENTA_DRUM_REMAINING_PAGES + drum_counter = ATTR_MAGENTA_DRUM_COUNTER + elif self.kind == ATTR_YELLOW_DRUM_REMAINING_LIFE: + remaining_pages = ATTR_YELLOW_DRUM_REMAINING_PAGES + drum_counter = ATTR_YELLOW_DRUM_COUNTER + if remaining_pages and drum_counter: + self._attrs[ATTR_REMAINING_PAGES] = self.printer.data.get(remaining_pages) + self._attrs[ATTR_COUNTER] = self.printer.data.get(drum_counter) return self._attrs @property