Skip to content

Commit 03d2344

Browse files
committed
Add shiny icons and lovelace card example
1 parent 64c2491 commit 03d2344

File tree

3 files changed

+65
-13
lines changed

3 files changed

+65
-13
lines changed

README.md

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ xiaomi_miio_cooker:
5959
switch:
6060
- platform: template
6161
switches:
62-
- xiaomi_miio_cooker:
62+
xiaomi_miio_cooker:
6363
value_template: "{{ is_state('sensor.xiaomi_miio_cooker_mode', 'Running') }}"
6464
turn_on:
6565
service: xiaomi_miio_cooker.start
@@ -75,6 +75,45 @@ Configuration variables:
7575
- **name** (*Optional*): The name of your cooker.
7676
- **model** (*Optional*): The model of your device. Valid values are `chunmi.cooker.normal2` and `chunmi.cooker.normal5`. This setting can be used to bypass the device model detection and is recommended if your device isn't always available.
7777

78+
## Lovelace
79+
80+
```
81+
type: vertical-stack
82+
cards:
83+
- type: entities
84+
title: Ricecooker
85+
state_color: false
86+
entities:
87+
- entity: switch.xiaomi_miio_cooker
88+
- entity: sensor.xiaomi_miio_cooker_duration
89+
- entity: sensor.xiaomi_miio_cooker_remaining
90+
- entity: sensor.xiaomi_miio_cooker_mode
91+
secondary_info: last-changed
92+
- entity: sensor.xiaomi_miio_cooker_stage_name
93+
secondary_info: last-changed
94+
- entity: sensor.xiaomi_miio_cooker_stage_description
95+
- entity: sensor.xiaomi_miio_cooker_rice_id
96+
- entity: sensor.xiaomi_miio_cooker_state
97+
secondary_info: last-changed
98+
- entity: sensor.xiaomi_miio_cooker_taste
99+
- entity: sensor.xiaomi_miio_cooker_taste_phase
100+
- entity: sensor.xiaomi_miio_cooker_temperature
101+
- entity: sensor.xiaomi_miio_cooker_favorite
102+
- entity: sensor.xiaomi_miio_cooker_menu
103+
secondary_info: last-changed
104+
- type: sensor
105+
entity: sensor.xiaomi_miio_cooker_remaining
106+
detail: 2
107+
hours_to_show: 1
108+
- type: sensor
109+
entity: sensor.xiaomi_miio_cooker_temperature
110+
graph: line
111+
detail: 2
112+
hours_to_show: 2
113+
```
114+
115+
![Lovelace card example](lovelace-card-example.png "lovelace card")
116+
78117
If you prefer a button instead of a switch entity you could add a lovelace button card to you dashboard:
79118
80119
```

custom_components/xiaomi_miio_cooker/sensor.py

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import asyncio
22
import logging
33
from enum import Enum
4+
from typing import Optional
45

56
from homeassistant.components.sensor import ENTITY_ID_FORMAT
67
from homeassistant.core import callback
@@ -15,18 +16,24 @@
1516
DATA_STATE = "state"
1617

1718
SENSOR_TYPES = {
18-
"mode": ["Mode", None, "mode", None],
19-
"menu": ["Menu", None, "menu", None],
20-
"temperature": ["Temperature", None, "temperature", "°C"],
21-
"remaining": ["Remaining", None, "remaining", "min"],
22-
"duration": ["Duration", None, "duration", "min"],
23-
"favorite": ["Favorite", None, "favorite", None],
24-
"state": ["State", "stage", "state", None],
25-
"rice_id": ["Rice Id", "stage", "rice_id", None],
26-
"taste": ["Taste", "stage", "taste", None],
27-
"taste_phase": ["Taste Phase", "stage", "taste_phase", None],
28-
"stage_name": ["Stage Name", "stage", "name", None],
29-
"stage_description": ["Stage Description", "stage", "description", None],
19+
"mode": ["Mode", None, "mode", None, "mdi:bowl"],
20+
"menu": ["Menu", None, "menu", None, "mdi:menu"],
21+
"temperature": ["Temperature", None, "temperature", "°C", None],
22+
"remaining": ["Remaining", None, "remaining", "min", "mdi:timer"],
23+
"duration": ["Duration", None, "duration", "min", "mdi:timelapse"],
24+
"favorite": ["Favorite", None, "favorite", None, "mdi:information-outline"],
25+
"state": ["State", "stage", "state", None, "mdi:playlist-check"],
26+
"rice_id": ["Rice Id", "stage", "rice_id", None, "mdi:rice"],
27+
"taste": ["Taste", "stage", "taste", None, "mdi:flash-outline"],
28+
"taste_phase": ["Taste Phase", "stage", "taste_phase", None, "mdi:flash-outline"],
29+
"stage_name": ["Stage Name", "stage", "name", None, "mdi:stairs"],
30+
"stage_description": [
31+
"Stage Description",
32+
"stage",
33+
"description",
34+
None,
35+
"mdi:stairs",
36+
],
3037
}
3138

3239

@@ -53,6 +60,7 @@ def __init__(self, device, host, config):
5360
self._child = config[1]
5461
self._attr = config[2]
5562
self._unit_of_measurement = config[3]
63+
self._icon = config[4]
5664
self._state = None
5765

5866
self.entity_id = ENTITY_ID_FORMAT.format(
@@ -117,6 +125,11 @@ def unit_of_measurement(self):
117125
"""Return the unit of measurement the state is expressed in."""
118126
return self._unit_of_measurement
119127

128+
@property
129+
def icon(self) -> Optional[str]:
130+
"""Return the icon to use in the frontend, if any."""
131+
return self._icon
132+
120133
@property
121134
def should_poll(self):
122135
"""Return the polling state."""

lovelace-card-example.png

54.9 KB
Loading

0 commit comments

Comments
 (0)