Fix custom message for UniFi Protect doorbell select (#64971)

This commit is contained in:
Christopher Bailey 2022-01-26 10:14:40 -05:00 committed by GitHub
parent e9a71231c2
commit e203efa8b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View file

@ -122,7 +122,14 @@ def _get_viewer_options(api: ProtectApiClient) -> list[dict[str, Any]]:
def _get_doorbell_options(api: ProtectApiClient) -> list[dict[str, Any]]:
default_message = api.bootstrap.nvr.doorbell_settings.default_message_text
messages = api.bootstrap.nvr.doorbell_settings.all_messages
built_messages = ({"id": item.type.value, "name": item.text} for item in messages)
built_messages: list[dict[str, str]] = []
for item in messages:
msg_type = item.type.value
if item.type == DoorbellMessageType.CUSTOM_MESSAGE:
msg_type = f"{DoorbellMessageType.CUSTOM_MESSAGE}:{item.text}"
built_messages.append({"id": msg_type, "name": item.text})
return [
{"id": "", "name": f"Default Message ({default_message})"},
@ -176,6 +183,7 @@ async def _set_paired_camera(obj: Light | Sensor | Doorlock, camera_id: str) ->
async def _set_doorbell_message(obj: Camera, message: str) -> None:
if message.startswith(DoorbellMessageType.CUSTOM_MESSAGE.value):
message = message.split(":")[-1]
await obj.set_lcd_text(DoorbellMessageType.CUSTOM_MESSAGE, text=message)
elif message == TYPE_EMPTY_VALUE:
await obj.set_lcd_text(None)

View file

@ -512,6 +512,10 @@ async def test_select_set_option_camera_doorbell_custom(
blocking=True,
)
camera.set_lcd_text.assert_called_once_with(
DoorbellMessageType.CUSTOM_MESSAGE, text="Test"
)
async def test_select_set_option_camera_doorbell_unifi(
hass: HomeAssistant,