Add Picnic last_order_max_order_time sensor (#63169)
This commit is contained in:
parent
53496c019c
commit
ec75b0caf0
2 changed files with 20 additions and 0 deletions
|
@ -35,6 +35,7 @@ SENSOR_LAST_ORDER_SLOT_END = "last_order_slot_end"
|
|||
SENSOR_LAST_ORDER_STATUS = "last_order_status"
|
||||
SENSOR_LAST_ORDER_ETA_START = "last_order_eta_start"
|
||||
SENSOR_LAST_ORDER_ETA_END = "last_order_eta_end"
|
||||
SENSOR_LAST_ORDER_MAX_ORDER_TIME = "last_order_max_order_time"
|
||||
SENSOR_LAST_ORDER_DELIVERY_TIME = "last_order_delivery_time"
|
||||
SENSOR_LAST_ORDER_TOTAL_PRICE = "last_order_total_price"
|
||||
|
||||
|
@ -149,6 +150,16 @@ SENSOR_TYPES: tuple[PicnicSensorEntityDescription, ...] = (
|
|||
str(last_order.get("eta", {}).get("end"))
|
||||
),
|
||||
),
|
||||
PicnicSensorEntityDescription(
|
||||
key=SENSOR_LAST_ORDER_MAX_ORDER_TIME,
|
||||
device_class=SensorDeviceClass.TIMESTAMP,
|
||||
icon="mdi:clock-alert-outline",
|
||||
entity_registry_enabled_default=True,
|
||||
data_type="last_order_data",
|
||||
value_fn=lambda last_order: dt_util.parse_datetime(
|
||||
str(last_order.get("slot", {}).get("cut_off_time"))
|
||||
),
|
||||
),
|
||||
PicnicSensorEntityDescription(
|
||||
key=SENSOR_LAST_ORDER_DELIVERY_TIME,
|
||||
device_class=SensorDeviceClass.TIMESTAMP,
|
||||
|
|
|
@ -249,6 +249,11 @@ class TestPicnicSensor(unittest.IsolatedAsyncioTestCase):
|
|||
"2021-02-26T20:14:00+00:00",
|
||||
cls=SensorDeviceClass.TIMESTAMP,
|
||||
)
|
||||
self._assert_sensor(
|
||||
"sensor.picnic_last_order_max_order_time",
|
||||
"2021-02-25T21:00:00+00:00",
|
||||
cls=SensorDeviceClass.TIMESTAMP,
|
||||
)
|
||||
self._assert_sensor(
|
||||
"sensor.picnic_last_order_delivery_time",
|
||||
"2021-02-26T19:54:05+00:00",
|
||||
|
@ -385,6 +390,9 @@ class TestPicnicSensor(unittest.IsolatedAsyncioTestCase):
|
|||
)
|
||||
self._assert_sensor("sensor.picnic_last_order_eta_start", STATE_UNAVAILABLE)
|
||||
self._assert_sensor("sensor.picnic_last_order_eta_end", STATE_UNAVAILABLE)
|
||||
self._assert_sensor(
|
||||
"sensor.picnic_last_order_max_order_time", STATE_UNAVAILABLE
|
||||
)
|
||||
self._assert_sensor("sensor.picnic_last_order_delivery_time", STATE_UNAVAILABLE)
|
||||
|
||||
async def test_sensors_malformed_delivery_data(self):
|
||||
|
@ -400,6 +408,7 @@ class TestPicnicSensor(unittest.IsolatedAsyncioTestCase):
|
|||
assert self._coordinator.last_update_success is True
|
||||
self._assert_sensor("sensor.picnic_last_order_eta_start", STATE_UNKNOWN)
|
||||
self._assert_sensor("sensor.picnic_last_order_eta_end", STATE_UNKNOWN)
|
||||
self._assert_sensor("sensor.picnic_last_order_max_order_time", STATE_UNKNOWN)
|
||||
self._assert_sensor("sensor.picnic_last_order_delivery_time", STATE_UNKNOWN)
|
||||
|
||||
async def test_sensors_malformed_response(self):
|
||||
|
|
Loading…
Add table
Reference in a new issue