diff --git a/homeassistant/components/reolink/button.py b/homeassistant/components/reolink/button.py index 8ea267cc500b..fb2d4dd2ba74 100644 --- a/homeassistant/components/reolink/button.py +++ b/homeassistant/components/reolink/button.py @@ -188,6 +188,14 @@ HOST_BUTTON_ENTITIES = ( supported=lambda api: api.supported(None, "reboot"), method=lambda api: api.reboot(), ), + ReolinkHostButtonEntityDescription( + key="sync_time", + translation_key="sync_time", + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + supported=lambda api: api.supported(None, "sync_time"), + method=lambda api: api.baichuan.synchronize_time(), + ), ) diff --git a/homeassistant/components/reolink/icons.json b/homeassistant/components/reolink/icons.json index efcf8aa7267d..8046c072454f 100644 --- a/homeassistant/components/reolink/icons.json +++ b/homeassistant/components/reolink/icons.json @@ -182,6 +182,9 @@ }, "ptz_zoom_out": { "default": "mdi:magnify" + }, + "sync_time": { + "default": "mdi:clock-outline" } }, "light": { diff --git a/homeassistant/components/reolink/strings.json b/homeassistant/components/reolink/strings.json index c5fa83c37f39..54213113ea44 100644 --- a/homeassistant/components/reolink/strings.json +++ b/homeassistant/components/reolink/strings.json @@ -244,6 +244,9 @@ }, "ptz_zoom_out": { "name": "PTZ zoom out" + }, + "sync_time": { + "name": "Synchronize time" } }, "camera": { diff --git a/tests/components/reolink/snapshots/test_button.ambr b/tests/components/reolink/snapshots/test_button.ambr index 4ce6df9b29b3..be44cf72fd9f 100644 --- a/tests/components/reolink/snapshots/test_button.ambr +++ b/tests/components/reolink/snapshots/test_button.ambr @@ -912,3 +912,53 @@ 'state': 'unknown', }) # --- +# name: test_all_entities[button.test_reolink_name_synchronize_time-entry] + EntityRegistryEntrySnapshot({ + 'aliases': list([ + None, + ]), + 'area_id': None, + 'capabilities': None, + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'button', + 'entity_category': , + 'entity_id': 'button.test_reolink_name_synchronize_time', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Synchronize time', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Synchronize time', + 'platform': 'reolink', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'sync_time', + 'unique_id': 'ABC1234567D89EFG_sync_time', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[button.test_reolink_name_synchronize_time-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + : 'test_reolink_name Synchronize time', + }), + 'context': , + 'entity_id': 'button.test_reolink_name_synchronize_time', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'unknown', + }) +# ---