From d2cd0c993492b16f4c20499d0404248efa54b666 Mon Sep 17 00:00:00 2001 From: starkillerOG Date: Wed, 28 Jun 2023 09:18:14 +0200 Subject: [PATCH] Add reolink channel based record, push, email, ftp, and buzzer switches (#91006) * Add channel based email, ftp, push, rec and buzzer switches * fix dataclass --- homeassistant/components/reolink/switch.py | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/homeassistant/components/reolink/switch.py b/homeassistant/components/reolink/switch.py index 1a4deda17e3..aa121911758 100644 --- a/homeassistant/components/reolink/switch.py +++ b/homeassistant/components/reolink/switch.py @@ -98,6 +98,50 @@ SWITCH_ENTITIES = ( value=lambda api, ch: api.ptz_guard_enabled(ch), method=lambda api, ch, value: api.set_ptz_guard(ch, enable=value), ), + ReolinkSwitchEntityDescription( + key="email", + name="Email on event", + icon="mdi:email", + entity_category=EntityCategory.CONFIG, + supported=lambda api, ch: api.supported(ch, "email") and api.is_nvr, + value=lambda api, ch: api.email_enabled(ch), + method=lambda api, ch, value: api.set_email(ch, value), + ), + ReolinkSwitchEntityDescription( + key="ftp_upload", + name="FTP upload", + icon="mdi:swap-horizontal", + entity_category=EntityCategory.CONFIG, + supported=lambda api, ch: api.supported(ch, "ftp") and api.is_nvr, + value=lambda api, ch: api.ftp_enabled(ch), + method=lambda api, ch, value: api.set_ftp(ch, value), + ), + ReolinkSwitchEntityDescription( + key="push_notifications", + name="Push notifications", + icon="mdi:message-badge", + entity_category=EntityCategory.CONFIG, + supported=lambda api, ch: api.supported(ch, "push") and api.is_nvr, + value=lambda api, ch: api.push_enabled(ch), + method=lambda api, ch, value: api.set_push(ch, value), + ), + ReolinkSwitchEntityDescription( + key="record", + name="Record", + icon="mdi:record-rec", + supported=lambda api, ch: api.supported(ch, "recording") and api.is_nvr, + value=lambda api, ch: api.recording_enabled(ch), + method=lambda api, ch, value: api.set_recording(ch, value), + ), + ReolinkSwitchEntityDescription( + key="buzzer", + name="Buzzer on event", + icon="mdi:room-service", + entity_category=EntityCategory.CONFIG, + supported=lambda api, ch: api.supported(ch, "buzzer") and api.is_nvr, + value=lambda api, ch: api.buzzer_enabled(ch), + method=lambda api, ch, value: api.set_buzzer(ch, value), + ), ReolinkSwitchEntityDescription( key="doorbell_button_sound", name="Doorbell button sound",