Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Carcam #1161

Open
johntous opened this issue Feb 18, 2023 · 14 comments
Open

Add Carcam #1161

johntous opened this issue Feb 18, 2023 · 14 comments
Labels
enhancement New feature or request

Comments

@johntous
Copy link

Feature Request

Description

A clear and concise description of the problem or missing capability...

Add CarCam

Describe the solution you'd like

If you have a solution in mind, please describe it.

View Carcam and location in homekit like other cams

Describe alternatives you've considered

Have you considered any alternative solutions or workarounds?

Device data

If you are requesting a new device be added to homebridge-ring, please follow the instructions in

{"locations":[{"name":"Home","cameras":[{"description":"Front Door Camera","subscribed":false,"subscribed_motions":false,"battery_life":null,"external_connection":false,"firmware_version":"Up to Date","kind":"lpd_v2","settings":{"cv_settings":{"detection_types":{"human":{"enabled":true,"mode":"edge","record":null,"notification":true},"loitering":{"enabled":false,"mode":"none","record":null,"notification":false},"motion":{"enabled":true,"mode":"edge","record":null,"notification":false},"moving_vehicle":{"enabled":false,"mode":"none","record":null,"notification":false},"other_motion":{"enabled":true,"mode":"edge","record":null,"notification":false},"package_delivery":{"enabled":true,"mode":"cloud","record":null,"notification":true},"package_pickup":{"enabled":false,"mode":"none","record":null,"notification":false}},"threshold":{"loitering":10,"package_delivery":2},"triggers":[]},"cv_paid_features":{"baby_cry":true,"car_alarm":true,"co2_smoke_alarm":true,"dog_bark":true,"general_sound":true,"glass_break":true,"human":true,"loitering":true,"motion":true,"moving_vehicle":true,"other_motion":true,"package_delivery":true,"package_pickup":true,"cv_triggers":true},"concierge_settings":{"mode":"disabled"},"other_paid_features":{"alexa_concierge":true,"sheila_cv":true,"sheila_recording":true},"sheila_settings":{"cv_processing_enabled":false,"local_storage_enabled":false},"server_settings":{"ring_media_server_enabled":true,"ring_media_server_host":"rms-us-east-1.rapi.us-east-1.prod.client.cap.ring.devices.a2z.com"},"zone_settings":{"motion":[{"name":"Default Zone","state":"enabled","properties":{"detection_types":["motion"],"style":1},"vertices":[{"x":0.298857,"y":0.055502},{"x":0.773588,"y":0.312481},{"x":0.782223,"y":0.672818},{"x":0.978427,"y":0.642198},{"x":1,"y":1},{"x":0,"y":1},{"x":0.001209,"y":0.648009},{"x":0.264904,"y":0.583089}]},{"name":"Package Zone","state":"enabled","properties":{"detection_types":["package_delivery"],"style":4},"vertices":[{"x":0.278718,"y":0.846071},{"x":0.519843,"y":0.82282},{"x":0.707158,"y":0.728095},{"x":0.968561,"y":0.820667},{"x":0.911729,"y":1},{"x":0.66,"y":1},{"x":0.33,"y":1},{"x":0.184401,"y":1}]}]},"offline_motion_event_settings":{"subscribed":true,"enabled":false,"max_upload_kb":5000,"resolution_p":360,"frequency_after_secs":1,"period_after_secs":30},"lite_24x7":{"subscribed":true,"enabled":true,"frequency_secs":180,"resolution_p":360},"enable_vod":true,"motion_zones":{"enable_audio":false,"active_motion_filter":1,"sensitivity":5,"advanced_object_settings":{"human_detection_confidence":{"day":0.8,"night":0.8},"motion_zone_overlap":{"day":0.2,"night":0.3},"object_time_overlap":{"day":0.2,"night":1.2},"object_size_minimum":{"day":0.04,"night":0.07},"object_size_maximum":{"day":0.7,"night":0.7}},"zone1":{"name":"Default Zone","state":2,"vertex1":{"x":0.298857,"y":0.055502},"vertex2":{"x":0.773588,"y":0.312481},"vertex3":{"x":0.782223,"y":0.672818},"vertex4":{"x":0.978427,"y":0.642198},"vertex5":{"x":1,"y":1},"vertex6":{"x":0,"y":1},"vertex7":{"x":0.001209,"y":0.648009},"vertex8":{"x":0.264904,"y":0.583089}},"zone2":{"name":"Zone 2","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"zone3":{"name":"Zone 3","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}}},"motion_snooze_preset_profile":"low","live_view_preset_profile":"highest","live_view_presets":["low","middle","high","highest"],"motion_snooze_presets":["none","low","medium","high"],"doorbell_volume":11,"chime_settings":{"type":0,"enable":true,"duration":10},"video_settings":{"ignore_zones":null,"birton":null,"brightness":16,"contrast":80,"saturation":48,"ae_level":32,"ae_mode":0,"ae_mask":null,"encryption_enabled":false,"encryption_method":1,"clip_length_min":null,"clip_length_max":60,"auto_clip_length_enabled":null},"motion_announcement":false,"stream_setting":0,"advanced_motion_detection_enabled":true,"advanced_motion_detection_human_only_mode":true,"luma_night_threshold":0,"enable_audio_recording":true,"people_detection_eligible":true,"live_view_disabled":false,"ignore_zones":null,"enable_rich_notifications":true,"rich_notifications_billing_eligible":true,"loitering_threshold":10,"advanced_motion_detection_types":["human"],"motion_detection_enabled":true,"rich_notifications_scene_source":"firmware","stark_enrolled":null,"rich_notifica-uuid":false},"features":{"motion_zone_recommendation":false,"motions_enabled":true,"show_recordings":true,"advanced_motion_enabled":false,"people_only_enabled":false,"shadow_correction_enabled":false,"motion_message_enabled":true,"night_vision_enabled":false,"rich_notifications_eligible":true,"show_24x7_lite":true,"show_offline_motion_events":false,"cfes_eligible":true,"sheila_camera_eligible":true,"sheila_camera_processing_eligible":true},"owned":true,"alerts":{"connection":"online","ota_status":"timeout"},"motion_snooze":null,"stolen":false,"is_sidewalk_gateway":true,"created_at":"2020-12-08T17:33:17Z","shared_at":null,"active_schedule_uuid":null,"health":{"device_type":"lpd_v2","last_update_time":1676674435,"connected":true,"rss_connected":true,"sidewalk_connection":false,"floodlight_on":false,"white_led_on":false,"siren_on":false,"packet_loss":-1,"packet_loss_category":"NA","rssi":-51,"transformer_voltage":17,"transformer_voltage_category":"good","ota_status":"timeout","network_connection_value":"wifi","ac_power":0,"external_connection":false,"battery_percentage_category":"unknown","battery_voltage":4014,"battery_voltage_category":"very_good","firmware_version":"11.0.24","rssi_category":"good","second_battery_percentage_category":"unknown","second_battery_voltage_category":"unknown","firmware_version_status":"Up to Date","stream_resolution":100,"tx_rate":72,"bandwidth_last_time":1676665028,"bandwidth":14968,"status_time":54941267876332,"uptime_sec":2592383,"channel":"10","firmware_avg_bitrate":"2238266","egress_tx_rate":"33.9","video_packets_total":"14975","stream_profile":"1080_avc","iperf_tcp_throughput":"12060 Kbps","fast_ping_hop1_score":"26.765"},"deactivated_at":null,"night_mode_status":"unknown"},{"description":"Garage Camera","subscribed":true,"subscribed_motions":false,"battery_life":100,"external_connection":false,"firmware_version":"Up to Date","kind":"stickup_cam_elite","settings":{"cv_settings":{"detection_types":{"human":{"enabled":true,"mode":"edge","record":null,"notification":false},"loitering":{"enabled":false,"mode":"none","record":null,"notification":false},"motion":{"enabled":false,"mode":"none","record":null,"notification":false},"moving_vehicle":{"enabled":false,"mode":"none","record":null,"notification":false},"other_motion":{"enabled":false,"mode":"none","record":null,"notification":false},"package_delivery":{"enabled":false,"mode":"none","record":null,"notification":false},"package_pickup":{"enabled":false,"mode":"none","record":null,"notification":false}},"threshold":{"loitering":10,"package_delivery":2},"triggers":[]},"cv_paid_features":{"baby_cry":true,"car_alarm":true,"co2_smoke_alarm":true,"dog_bark":true,"general_sound":true,"glass_break":true,"human":true,"loitering":true,"motion":true,"moving_vehicle":true,"other_motion":true,"package_delivery":true,"package_pickup":true,"cv_triggers":true},"other_paid_features":{"alexa_concierge":true,"sheila_cv":true,"sheila_recording":true},"sheila_settings":{"cv_processing_enabled":false,"local_storage_enabled":false},"server_settings":{"ring_media_server_enabled":true,"ring_media_server_host":"rms-us-east-1.rapi.us-east-1.prod.client.cap.ring.devices.a2z.com"},"zone_settings":{"motion":[{"name":"Default Zone","state":"enabled","properties":{"detection_types":["motion"]},"vertices":[{"x":0.0075662043,"y":0},{"x":0.38272384,"y":0.25112113},{"x":0.7755359,"y":0.23094173},{"x":1,"y":0},{"x":0.99810845,"y":1},{"x":0.50882727,"y":1},{"x":0.0075662043,"y":1},{"x":0.0075662043,"y":0.633408}]}]},"offline_motion_event_settings":{"subscribed":true,"enabled":false,"max_upload_kb":5000,"resolution_p":360,"frequency_after_secs":1,"period_after_secs":30},"lite_24x7":{"subscribed":true,"enabled":true,"frequency_secs":180,"resolution_p":360},"enable_vod":true,"motion_zones":{"enable_audio":false,"active_motion_filter":1,"sensitivity":5,"advanced_object_settings":{"human_detection_confidence":{"day":0.8,"night":0.8},"motion_zone_overlap":{"day":0.2,"night":0.3},"object_time_overlap":{"day":0.2,"night":1.2},"object_size_minimum":{"day":0.04,"night":0.07},"object_size_maximum":{"day":0.7,"night":0.7}},"zone1":{"name":"Default Zone","state":2,"vertex1":{"x":0.0075662043,"y":0},"vertex2":{"x":0.38272384,"y":0.25112113},"vertex3":{"x":0.7755359,"y":0.23094173},"vertex4":{"x":1,"y":0},"vertex5":{"x":0.99810845,"y":1},"vertex6":{"x":0.50882727,"y":1},"vertex7":{"x":0.0075662043,"y":1},"vertex8":{"x":0.0075662043,"y":0.633408}},"zone2":{"name":"Zone 2","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"zone3":{"name":"Zone 3","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"pir_settings":{"sensitivity1":10,"sensitivity2":10,"sensitivity3":10,"zone_mask":7}},"motion_snooze_preset_profile":"low","live_view_preset_profile":"highest","live_view_presets":["low","middle","high","highest"],"motion_snooze_presets":["none","low","medium","high"],"doorbell_volume":11,"chime_settings":{"type":2,"enable":true,"duration":10},"video_settings":{"ignore_zones":null,"birton":null,"brightness":16,"contrast":80,"saturation":48,"ae_level":32,"ae_mode":0,"ae_mask":null,"encryption_enabled":false,"encryption_method":1,"clip_length_min":20,"clip_length_max":60,"auto_clip_length_enabled":null},"motion_announcement":false,"stream_setting":0,"advanced_motion_detection_enabled":false,"advanced_motion_detection_human_only_mode":true,"luma_night_threshold":0,"enable_audio_recording":true,"people_detection_eligible":true,"live_view_disabled":false,"ignore_zones":null,"enable_rich_notifications":true,"rich_notifications_billing_eligible":true,"loitering_threshold":10,"advanced_motion_detection_types":["human"],"motion_detection_enabled":true,"rich_notifications_scene_source":"firmware","stark_enrolled":null,"enable_ir_led":true,"rich_notifica-uuid":false},"features":{"motion_zone_recommendation":false,"motions_enabled":true,"show_recordings":true,"advanced_motion_enabled":false,"people_only_enabled":false,"shadow_correction_enabled":false,"motion_message_enabled":true,"night_vision_enabled":false,"rich_notifications_eligible":true,"show_24x7_lite":true,"show_offline_motion_events":false,"cfes_eligible":true,"sheila_camera_eligible":true,"sheila_camera_processing_eligible":true,"light_schedule_enabled":false},"owned":true,"alerts":{"connection":"online","ota_status":"timeout"},"motion_snooze":{"scheduled":true},"stolen":false,"is_sidewalk_gateway":false,"created_at":"2020-03-25T15:04:17Z","shared_at":null,"active_schedule_uuid":null,"health":{"device_type":"stickup_cam_elite","last_update_time":1676673872,"connected":true,"rss_connected":true,"sidewalk_connection":false,"floodlight_on":false,"white_led_on":false,"siren_on":false,"packet_loss":-1,"packet_loss_category":"NA","rssi":-52,"ota_status":"timeout","network_connection_value":"wifi","ac_power":0,"external_connection":false,"battery_percentage_category":"unknown","battery_voltage_category":"unknown","firmware_version":"11.0.33","rssi_category":"good","second_battery_percentage_category":"unknown","second_battery_voltage_category":"unknown","firmware_version_status":"Up to Date","stream_resolution":100,"tx_rate":72,"bandwidth_last_time":1676671715,"bandwidth":14980,"status_time":54941249424238,"uptime_sec":2575617,"channel":"1","firmware_avg_bitrate":"2484145","egress_tx_rate":"40.1","video_packets_total":"16749","stream_profile":"1080_avc","iperf_tcp_throughput":"28400 Kbps","fast_ping_hop1_score":"27.584"},"deactivated_at":null,"motion_detection_enabled":true,"camera_location_indoor":true,"facing_window":false,"enable_ir_led":true,"siren_status":{"seconds_remaining":0}},{"description":"Driveway Camera","subscribed":false,"subscribed_motions":false,"battery_life":100,"external_connection":false,"firmware_version":"Up to Date","kind":"stickup_cam_elite","settings":{"cv_settings":{"detection_types":{"human":{"enabled":true,"mode":"edge","record":null,"notification":false},"loitering":{"enabled":false,"mode":"none","record":null,"notification":false},"motion":{"enabled":false,"mode":"none","record":null,"notification":false},"moving_vehicle":{"enabled":false,"mode":"none","record":null,"notification":false},"other_motion":{"enabled":true,"mode":"edge","record":null,"notification":false},"package_delivery":{"enabled":false,"mode":"none","record":null,"notification":false},"package_pickup":{"enabled":false,"mode":"none","record":null,"notification":false}},"threshold":{"loitering":10},"triggers":[]},"cv_paid_features":{"baby_cry":true,"car_alarm":true,"co2_smoke_alarm":true,"dog_bark":true,"general_sound":true,"glass_break":true,"human":true,"loitering":true,"motion":true,"moving_vehicle":true,"other_motion":true,"package_delivery":true,"package_pickup":true,"cv_triggers":true},"other_paid_features":{"alexa_concierge":true,"sheila_cv":true,"sheila_recording":true},"sheila_settings":{"cv_processing_enabled":null,"local_storage_enabled":null},"server_settings":{"ring_media_server_enabled":true,"ring_media_server_host":"rms-us-east-1.rapi.us-east-1.prod.client.cap.ring.devices.a2z.com"},"zone_settings":{"motion":[{"name":"Default Zone","state":"enabled","properties":{"detection_types":["motion"],"style":1},"vertices":[{"x":0.490559,"y":0.467569},{"x":0.615321,"y":0.484613},{"x":0.888218,"y":0.601301},{"x":1,"y":0.588496},{"x":1,"y":1},{"x":0.508731,"y":1},{"x":0,"y":1},{"x":0.004606,"y":0.710962}]}]},"offline_motion_event_settings":{"subscribed":true,"enabled":false,"max_upload_kb":5000,"resolution_p":360,"frequency_after_secs":1,"period_after_secs":30},"lite_24x7":{"subscribed":true,"enabled":true,"frequency_secs":30,"resolution_p":360},"enable_vod":true,"motion_zones":{"enable_audio":false,"active_motion_filter":1,"sensitivity":5,"advanced_object_settings":{"human_detection_confidence":{"day":0.8,"night":0.8},"motion_zone_overlap":{"day":0.2,"night":0.3},"object_time_overlap":{"day":0.2,"night":1.2},"object_size_minimum":{"day":0.04,"night":0.07},"object_size_maximum":{"day":0.7,"night":0.7}},"zone1":{"name":"Default Zone","state":2,"vertex1":{"x":0.490559,"y":0.467569},"vertex2":{"x":0.615321,"y":0.484613},"vertex3":{"x":0.888218,"y":0.601301},"vertex4":{"x":1,"y":0.588496},"vertex5":{"x":1,"y":1},"vertex6":{"x":0.508731,"y":1},"vertex7":{"x":0,"y":1},"vertex8":{"x":0.004606,"y":0.710962}},"zone2":{"name":"Zone 2","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"zone3":{"name":"Zone 3","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"pir_settings":{"sensitivity1":10,"sensitivity2":10,"sensitivity3":10,"zone_mask":7}},"motion_snooze_preset_profile":"low","live_view_preset_profile":"highest","live_view_presets":["low","middle","high","highest"],"motion_snooze_presets":["none","low","medium","high"],"doorbell_volume":11,"chime_settings":{"type":2,"enable":true,"duration":10},"video_settings":{"ignore_zones":null,"birton":null,"brightness":16,"contrast":80,"saturation":48,"ae_level":32,"ae_mode":0,"ae_mask":null,"encryption_enabled":false,"encryption_method":1,"clip_length_min":10,"clip_length_max":120,"auto_clip_length_enabled":false},"motion_announcement":false,"stream_setting":0,"advanced_motion_detection_enabled":false,"advanced_motion_detection_human_only_mode":true,"luma_night_threshold":0,"enable_audio_recording":true,"people_detection_eligible":true,"live_view_disabled":false,"ignore_zones":null,"enable_rich_notifications":true,"rich_notifications_billing_eligible":true,"loitering_threshold":10,"advanced_motion_detection_types":["human"],"motion_detection_enabled":true,"rich_notifications_scene_source":"firmware","stark_enrolled":null,"enable_ir_led":true,"rich_notifica-uuid":false},"features":{"motion_zone_recommendation":false,"motions_enabled":true,"show_recordings":true,"advanced_motion_enabled":false,"people_only_enabled":false,"shadow_correction_enabled":false,"motion_message_enabled":true,"night_vision_enabled":false,"rich_notifications_eligible":true,"show_24x7_lite":true,"show_offline_motion_events":false,"cfes_eligible":true,"sheila_camera_eligible":true,"sheila_camera_processing_eligible":true,"light_schedule_enabled":false},"owned":true,"alerts":{"connection":"online","ota_status":"timeout"},"motion_snooze":null,"stolen":false,"is_sidewalk_gateway":false,"created_at":"2020-02-14T15:30:23Z","shared_at":null,"active_schedule_uuid":null,"health":{"device_type":"stickup_cam_elite","last_update_time":1676675440,"connected":true,"rss_connected":true,"sidewalk_connection":false,"floodlight_on":false,"white_led_on":false,"siren_on":false,"packet_loss":-1,"packet_loss_category":"NA","rssi":-54,"ota_status":"timeout","network_connection_value":"ethernet","ac_power":0,"external_connection":false,"battery_percentage_category":"unknown","battery_voltage_category":"unknown","firmware_version":"11.0.33","rssi_category":"okay","second_battery_percentage_category":"unknown","second_battery_voltage_category":"unknown","firmware_version_status":"Up to Date","stream_resolution":100,"bandwidth_last_time":1676661651,"bandwidth":14999,"status_time":54941300798752,"uptime_sec":1927299,"firmware_avg_bitrate":"2513835","egress_tx_rate":"81.3","video_packets_total":"33544","stream_profile":"1080_avc","iperf_tcp_throughput":"73842 Kbps","fast_ping_hop1_score":"77.454"},"deactivated_at":null,"motion_detection_enabled":true,"camera_location_indoor":false,"facing_window":false,"enable_ir_led":true,"siren_status":{"seconds_remaining":0}},{"description":"Backyard Camera","subscribed":false,"subscribed_motions":false,"battery_life":100,"external_connection":false,"firmware_version":"Up to Date","kind":"stickup_cam_elite","settings":{"cv_settings":{"detection_types":{"human":{"enabled":true,"mode":"edge","record":null,"notification":false},"loitering":{"enabled":false,"mode":"none","record":null,"notification":false},"motion":{"enabled":false,"mode":"none","record":null,"notification":false},"moving_vehicle":{"enabled":false,"mode":"none","record":null,"notification":false},"other_motion":{"enabled":true,"mode":"edge","record":null,"notification":false},"package_delivery":{"enabled":false,"mode":"none","record":null,"notification":false},"package_pickup":{"enabled":false,"mode":"none","record":null,"notification":false}},"threshold":{"loitering":10,"package_delivery":2},"triggers":[]},"cv_paid_features":{"baby_cry":true,"car_alarm":true,"co2_smoke_alarm":true,"dog_bark":true,"general_sound":true,"glass_break":true,"human":true,"loitering":true,"motion":true,"moving_vehicle":true,"other_motion":true,"package_delivery":true,"package_pickup":true,"cv_triggers":true},"other_paid_features":{"alexa_concierge":true,"sheila_cv":true,"sheila_recording":true},"sheila_settings":{"cv_processing_enabled":false,"local_storage_enabled":false},"server_settings":{"ring_media_server_enabled":true,"ring_media_server_host":"rms-us-east-1.rapi.us-east-1.prod.client.cap.ring.devices.a2z.com"},"zone_settings":{"motion":[{"name":"Default Zone","state":"enabled","properties":{"detection_types":["motion"],"style":1},"vertices":[{"x":0.167357,"y":0.322098},{"x":0.465625,"y":0.25419},{"x":1,"y":0.33267},{"x":1,"y":0.706022},{"x":0.899033,"y":1},{"x":0.396985,"y":1},{"x":0.001467,"y":1},{"x":0,"y":0.466868}]}]},"offline_motion_event_settings":{"subscribed":true,"enabled":false,"max_upload_kb":5000,"resolution_p":360,"frequency_after_secs":1,"period_after_secs":30},"lite_24x7":{"subscribed":true,"enabled":true,"frequency_secs":180,"resolution_p":360},"enable_vod":true,"motion_zones":{"enable_audio":false,"active_motion_filter":1,"sensitivity":5,"advanced_object_settings":{"human_detection_confidence":{"day":0.9,"night":0.9},"motion_zone_overlap":{"day":0.3,"night":0.5},"object_time_overlap":{"day":0.5,"night":1.5},"object_size_minimum":{"day":0.05,"night":0.09},"object_size_maximum":{"day":0.6,"night":0.6}},"zone1":{"name":"Default Zone","state":2,"vertex1":{"x":0.167357,"y":0.322098},"vertex2":{"x":0.465625,"y":0.25419},"vertex3":{"x":1,"y":0.33267},"vertex4":{"x":1,"y":0.706022},"vertex5":{"x":0.899033,"y":1},"vertex6":{"x":0.396985,"y":1},"vertex7":{"x":0.001467,"y":1},"vertex8":{"x":0,"y":0.466868}},"zone2":{"name":"Zone 2","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"zone3":{"name":"Zone 3","state":0,"vertex1":{"x":0,"y":0},"vertex2":{"x":0,"y":0},"vertex3":{"x":0,"y":0},"vertex4":{"x":0,"y":0},"vertex5":{"x":0,"y":0},"vertex6":{"x":0,"y":0},"vertex7":{"x":0,"y":0},"vertex8":{"x":0,"y":0}},"pir_settings":{"sensitivity1":10,"sensitivity2":10,"sensitivity3":10,"zone_mask":7}},"motion_snooze_preset_profile":"low","live_view_preset_profile":"highest","live_view_presets":["low","middle","high","highest"],"motion_snooze_presets":["none","low","medium","high"],"doorbell_volume":11,"chime_settings":{"type":2,"enable":true,"duration":10},"video_settings":{"ignore_zones":null,"birton":null,"brightness":16,"contrast":80,"saturation":48,"ae_level":32,"ae_mode":0,"ae_mask":null,"encryption_enabled":false,"encryption_method":1,"clip_length_min":10,"clip_length_max":60,"auto_clip_length_enabled":null},"motion_announcement":false,"stream_setting":0,"advanced_motion_detection_enabled":false,"advanced_motion_detection_human_only_mode":true,"luma_night_threshold":0,"enable_audio_recording":true,"people_detection_eligible":true,"live_view_disabled":false,"ignore_zones":null,"enable_rich_notifications":true,"rich_notifications_billing_eligible":true,"loitering_threshold":10,"advanced_motion_detection_types":["human"],"motion_detection_enabled":true,"rich_notifications_scene_source":"firmware","stark_enrolled":null,"enable_ir_led":true,"rich_notifica-uuid":false},"features":{"motion_zone_recommendation":false,"motions_enabled":true,"show_recordings":true,"advanced_motion_enabled":false,"people_only_enabled":false,"shadow_correction_enabled":false,"motion_message_enabled":true,"night_vision_enabled":false,"rich_notifications_eligible":true,"show_24x7_lite":true,"show_offline_motion_events":false,"cfes_eligible":true,"sheila_camera_eligible":true,"sheila_camera_processing_eligible":true,"light_schedule_enabled":false},"owned":true,"alerts":{"connection":"online","ota_status":"timeout"},"motion_snooze":null,"stolen":false,"is_sidewalk_gateway":false,"created_at":"2020-10-19T18:49:31Z","shared_at":null,"active_schedule_uuid":null,"health":{"device_type":"stickup_cam_elite","last_update_time":1676674742,"connected":true,"rss_connected":true,"sidewalk_connection":false,"floodlight_on":false,"white_led_on":false,"siren_on":false,"packet_loss":-1,"packet_loss_category":"NA","rssi":-41,"ota_status":"timeout","network_connection_value":"ethernet","ac_power":0,"external_connection":false,"battery_percentage_category":"unknown","battery_voltage_category":"unknown","firmware_version":"11.0.24","rssi_category":"okay","second_battery_percentage_category":"unknown","second_battery_voltage_category":"unknown","firmware_version_status":"Up to Date","stream_resolution":100,"bandwidth_last_time":1676659902,"bandwidth":14999,"status_time":54941277949411,"uptime_sec":2577623,"firmware_avg_bitrate":"2543033","egress_tx_rate":"80.3","video_packets_total":"16983","stream_profile":"1080_avc","iperf_tcp_throughput":"74357 Kbps","fast_ping_hop1_score":"75.199"},"deactivated_at":null,"motion_detection_enabled":true,"camera_location_indoor":false,"facing_window":false,"enable_ir_led":true,"siren_status":{"seconds_remaining":0}}],"chimes":[],"devices":[{"adapterType":"none","batteryStatus":"none","categoryId":31,"commStatus":"ok","commandTypes":{"light-mode.set":{"requiresTrust":true}},"deviceFoundTime":1632837369083,"deviceType":"adapter.ringnet","impulseTypes":{"ringnet-metrics.report":{"trusted":true}},"lastCommTime":0,"lastUpdate":1676675311642,"managerId":"ringnet","name":"RingNet Adapter","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"25a41cf0-5f42-uuid","networkConnection":"wlan0","networks":{"wlan0":{"channel":1,"name":"wlan0","rssi":-59,"type":"wifi"}},"pan_rf_security_level":3,"ringNetBridgeId":"A00097975C","version":{"buildNumber":"jenkins-RNET_GITLAB_RELEASE-R57_OPENWRT-BRIDGE_BUILD-VARIANT=release,label=SCM_AWS-6","firmwareVersion":"1.8.57-5","nordicFirmwareVersion":"1.8.57-5","softwareVersion":"185700052"}},{"adapterType":"ringnet","batteryStatus":"none","categoryId":2,"commStatus":"ok","commandTypes":{"external-motion.fault":{"requiresTrust":false},"identify":{"requiresTrust":false},"light-mode.set":{"requiresTrust":false}},"deviceFoundTime":1634321878810,"deviceType":"group.light-group.beams","impulseTypes":{"clear":{"trusted":false},"fault":{"trusted":false},"glow-status.glow":{"trusted":false},"glow-status.off":{"trusted":false},"light-mode.default":{"trusted":false},"light-mode.on":{"trusted":false},"light-mode.snooze":{"trusted":false},"switched.off":{"trusted":false},"switched.on":{"trusted":false}},"lastCommTime":0,"lastUpdate":1676661175641,"managerId":"ringnet","name":"Side","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"26f36931-c4e2-uuid","autoShutoffTime":180,"glowStatus":"off","lastOffSelection":"default","level":0,"lightMode":"default","lightSensorEnabled":false,"motionStatus":"clear","on":false,"onDuration":60},{"adapterType":"ringnet","batteryLevel":100,"batteryStatus":"full","categoryId":2,"commStatus":"ok","commandTypes":{"beams-scheduled-switch":{"requiresTrust":true},"ble.enable":{"requiresTrust":true},"brightness-test":{"requiresTrust":true},"firmware-update.initiate":{"requiresTrust":true},"identify":{"requiresTrust":true},"light-mode.set":{"requiresTrust":true}},"deviceFoundTime":1634321879269,"deviceType":"switch.multilevel.beams","doorbotId":89352153,"firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"impulseTypes":{"clear":{"trusted":true},"comm.offline":{"trusted":true},"comm.online":{"trusted":true},"fault":{"trusted":true},"firmware-update.canceled":{"trusted":true},"firmware-update.failed":{"trusted":true},"firmware-update.started":{"trusted":true},"firmware-update.succeeded":{"trusted":true},"light-mode.default":{"trusted":true},"light-mode.on":{"trusted":true},"reboot.uptime":{"trusted":true},"switched.off":{"trusted":true},"switched.on":{"trusted":true}},"lastCommTime":1676678796912,"lastUpdate":1676678796924,"managerId":"ringnet","name":"Side Solar Floodlight","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"87b760f7-6dfb-uuid","autoShutoffTime":180,"batteries":[{"level":100,"status":"full","voltage":3893},{"level":100,"status":"full","voltage":3856}],"cpuTemperature":12,"duskToDawnMode":"not-supported","glowStatus":"off","level":0.5019608,"lightMode":"default","lightSensorEnabled":true,"lightSensorThreshold":80,"lightSensorThresholdDefault":80,"motionSensorEnabled":true,"motionStatus":"clear","on":false,"onDuration":60,"sensitivity":127,"sensitivityMin":255},{"adapterType":"ringnet","batteryLevel":62,"batteryStatus":"ok","categoryId":5,"commStatus":"ok","commandTypes":{"ble.enable":{"requiresTrust":true},"firmware-update.initiate":{"requiresTrust":true}},"deviceFoundTime":1652731806494,"deviceType":"motion-sensor.beams","doorbotId":134330370,"firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"impulseTypes":{"clear":{"trusted":true},"comm.offline":{"trusted":true},"comm.online":{"trusted":true},"fault":{"trusted":true},"fault.acknowledged":{"trusted":true},"firmware-update.canceled":{"trusted":true},"firmware-update.failed":{"trusted":true},"firmware-update.started":{"trusted":true},"firmware-update.succeeded":{"trusted":true},"reboot.uptime":{"trusted":true}},"lastCommTime":1676678910988,"lastUpdate":1676678911004,"managerId":"ringnet","name":"Mailbox Sensor","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":[],"tamperStatus":"ok","zid":"2c0f3dca-50c4-uuid","antennaSwitch":"external","batteries":[{"level":62,"status":"ok","voltage":3870}],"cpuTemperature":13,"duskToDawnMode":"not-supported","lastMotionFaultChecked":false,"lastMotionFaultTimestamp":1676585543507,"lightSensorEnabled":true,"lightSensorThreshold":17,"lightSensorThresholdDefault":80,"motionSensorEnabled":true,"motionStatus":"clear","sensitivity":127,"sensitivityMin":255},{"adapterType":"zigbee","batteryStatus":"none","categoryId":29,"commStatus":"ok","commandTypes":{"reset-chip":{"requiresTrust":false},"reset-network":{"requiresTrust":false}},"deviceFoundTime":1602800072658,"deviceType":"adapter.zigbee","lastCommTime":0,"lastUpdate":1608269761443,"managerId":"zigbee","name":"ZigBee onboard adapter","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":["hidden","unremovable"],"tamperStatus":"ok","zid":"3a374512-cd7f-uuid"},{"adapterType":"none","batteryStatus":"none","categoryId":22,"commStatus":"ok","commandTypes":{"monitored-sensor-reporting.disable":{"requiresTrust":true},"monitored-sensor-reporting.enable":{"requiresTrust":true},"security-panel.add-mode":{"requiresTrust":true},"security-panel.bypass.temporary.add":{"requiresTrust":true},"security-panel.bypass.temporary.remove":{"requiresTrust":true},"security-panel.duress-test-mode.start":{"requiresTrust":true},"security-panel.remove-reminders":{"requiresTrust":true},"security-panel.remove-temporary-bypass":{"requiresTrust":true},"security-panel.sound-siren":{"requiresTrust":true},"security-panel.switch-mode":{"requiresTrust":true},"security-panel.user-verified-alarm":{"requiresTrust":true},"silent-exit.disable":{"requiresTrust":true},"silent-exit.enable":{"requiresTrust":true},"siren-test.start":{"requiresTrust":true},"siren-test.stop":{"requiresTrust":true}},"deviceFoundTime":1602800073318,"deviceType":"security-panel","impulseTypes":{"security-panel.alarming":{"trusted":true},"security-panel.mode-switched.all":{"trusted":true},"security-panel.mode-switched.none":{"trusted":true},"security-panel.mode-switched.some":{"trusted":true}},"lastCommTime":0,"lastUpdate":1676671815344,"managerId":"monitoring","name":"Alarm","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":["requiresTrustedImpulse","hidden","unremovable"],"tamperStatus":"ok","zid":"4a540d76-5606-uuid","bridges":{"4c080373-dee8-uuid":{"bypassed":false}},"bypasses":[],"chirps":{"394e921b-7b97-uuid":{"type":"navi"},"4f35fbf8-6593-uuid":{"type":"none"},"5385a76d-76d6-uuid":{"type":"navi"},"5414da16-f8c7-uuid":{"type":"none"},"55e8c7b5-61e4-uuid":{"type":"navi"},"8b7f211f-4508-uuid":{"type":"navi"},"a48c1ad7-6a36-uuid":{"type":"navi"},"a5f58c96-4afc-uuid":{"type":"navi"},"b6c54775-dce3-uuid":{"type":"navi"},"cb700894-3d9e-uuid":{"type":"navi"}},"devices":{"394e921b-7b97-uuid":{"bypassed":false,"modes":{"all":{"delayType":"entry-delay","exitDelayType":"exit-delay"},"some":{"delayType":"entry-delay","exitDelayType":"exit-delay"}}},"4f35fbf8-6593-uuid":{"bypassed":false,"modes":{"all":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"},"some":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"}},"sensorReporting":"monitored"},"5385a76d-76d6-uuid":{"bypassed":false,"modes":{"all":{"delayType":"entry-delay","exitDelayType":"exit-delay"},"some":{"delayType":"entry-delay","exitDelayType":"exit-delay"}}},"5414da16-f8c7-uuid":{"bypassed":false,"modes":{"all":{"delayType":"auto-delay","exitDelayType":"auto-delay"}}},"55e8c7b5-61e4-uuid":{"bypassed":false,"modes":{"all":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"},"some":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"}}},"8b7f211f-4508-uuid":{"bypassed":false,"modes":{"all":{"delayType":"entry-delay","exitDelayType":"exit-delay"},"some":{"delayType":"entry-delay","exitDelayType":"exit-delay"}}},"a48c1ad7-6a36-uuid":{"bypassed":false,"modes":{"all":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"},"some":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"}}},"a5f58c96-4afc-uuid":{"bypassed":false,"modes":{"all":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"},"some":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"}}},"b6c54775-dce3-uuid":{"bypassed":false,"modes":{"all":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"},"some":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"}}},"cb700894-3d9e-uuid":{"bypassed":false,"modes":{"all":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"},"some":{"delayType":"instant-alarm","exitDelayType":"instant-alarm"}}}},"instantAlarms":{"baa22e5d-1668-uuid":{"__placeholder":true}},"mode":"none","modes":{"all":{"chirpsEnabled":true,"editable":true,"entryDelay":60,"removable":false,"transitionDelay":60},"none":{"chirpsEnabled":true,"editable":false,"entryDelay":0,"removable":false,"transitionDelay":0},"some":{"chirpsEnabled":true,"editable":true,"entryDelay":60,"removable":false,"transitionDelay":0}},"reminderInfo":{},"siren":{"state":"off"},"supportedAlarmTypes":["co-alarm","burglar-alarm","fire-alarm"],"triggerDevices":{"8e2977c5-78d7-uuid":{"locked.by-keypad.access-code":{"enabled":true,"mode":"all"},"locked.by-one-touch":{"enabled":false,"mode":"all"},"unlocked.by-keypad.access-code":{"enabled":true,"mode":"none"}}},"troubleSounds":{"enabled":true}},{"adapterType":"none","batteryStatus":"none","categoryId":29,"commStatus":"ok","commandTypes":{"vault.add-invited-user":{"requiresTrust":true},"vault.add-user":{"requiresTrust":true},"vault.edit-invited-user":{"requiresTrust":true},"vault.edit-user":{"requiresTrust":true},"vault.manage-duress-code":{"requiresTrust":true},"vault.remove-duress-code":{"requiresTrust":true},"vault.remove-invited-user":{"requiresTrust":true},"vault.remove-user":{"requiresTrust":true},"vault.sync-code-to-device":{"requiresTrust":true}},"deviceFoundTime":1602800073764,"deviceType":"access-code.vault","lastCommTime":0,"lastUpdate":1670947619453,"managerId":"vault","name":"Code Vault","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":["hidden","unremovable"],"tamperStatus":"ok","zid":"b56922e4-d135-uuid","codeLengthMax":6,"codeLengthMin":4,"codeType":"numeric","invitedUserCodes":{},"numCodes":255},{"adapterType":"none","batteryStatus":"none","categoryId":29,"commStatus":"ok","commandTypes":{"security-panel.create-user-schedule":{"requiresTrust":true},"security-panel.delete-user-schedule":{"requiresTrust":true},"security-panel.disable-user":{"requiresTrust":true},"security-panel.enable-user":{"requiresTrust":true},"security-panel.update-user-schedule":{"requiresTrust":true}},"deviceFoundTime":1602800073929,"deviceType":"access-code","lastCommTime":0,"lastUpdate":1675948146412,"managerId":"monitoring","name":"Security Access Code","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":["hidden","unremovable"],"tamperStatus":"ok","zid":"cf41891a-dee9-uuid","codeLengthMax":6,"codeLengthMin":4,"codeType":"numeric","numCodes":255},{"acStatus":"ok","adapterType":"none","batteryStatus":"charging","categoryId":31,"commStatus":"ok","commandTypes":{"hub.action":{"requiresTrust":false},"hub.backup":{"requiresTrust":false},"hub.check-cellular":{"requiresTrust":false},"hub.force-broadband":{"requiresTrust":false},"hub.force-cell":{"requiresTrust":false},"hub.reboot":{"requiresTrust":false},"hub.reset-system":{"requiresTrust":false},"hub.restore":{"requiresTrust":false},"hub.scan-cell":{"requiresTrust":false},"locale.get-supported":{"requiresTrust":false},"locale.set":{"requiresTrust":false}},"deviceFoundTime":1602800074422,"deviceType":"hub.redsky","lastCommTime":0,"lastUpdate":1676659144319,"managerId":"redsky","name":"Base Station","placement":"unassigned","pollInterval":0,"roomId":11,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":["unremovable"],"tamperStatus":"ok","zid":"7ab5ce1d-e862-uuid","APN":"ringsol-prod01.com.attz","batteryBackup":"charging","brightness":0.25,"cellModemIssue":"none","hasSubscription":true,"lastNetworkLatencyEvent":1645640100009,"locale":"en-us","networkConnection":"eth0","networks":{"eth0":{"dns":["192.168.4.1","1.1.1.1","1.0.0.1"],"gateway":"192.168.4.1","interface":"eth0","interfaceStatus":"active","ipAddress":"192.168.4.49","name":"Wired","networkMask":"255.255.252.0","type":"ethernet"},"ppp0":{"cellConnectionType":"CAT-M","gateway":"10.64.64.64","interface":"ppp0","interfaceStatus":"inactive","ipAddress":"10.182.28.88","name":"AT&T","networkMask":"255.255.255.255","provider":"att","rsrp":-102,"rsrq":-14,"rssi":-70,"signalQuality":"poor","signalStrength":"three","sinr":8,"type":"cellular"}},"platform":{"hwregion":"U","product":"AV2"},"powerSource":"ac","version":{"buildNumber":"9","softwareVersion":"1.56.0"},"volume":0.7323369},{"adapterType":"zwave","batteryStatus":"none","categoryId":29,"commStatus":"ok","commandTypes":{"force-remove-history.clear":{"requiresTrust":false},"force-remove-history.get":{"requiresTrust":false},"kitting.start":{"requiresTrust":false},"make-device-forget-network.start":{"requiresTrust":false},"make-device-forget-network.stop":{"requiresTrust":false},"orphaned-nodes.clean":{"requiresTrust":false},"provide-info.dsk":{"requiresTrust":false},"recycle-device":{"requiresTrust":false},"replace-failed.start":{"requiresTrust":false},"replace-failed.stop":{"requiresTrust":false},"reset-network":{"requiresTrust":false},"rssi-debug-polling.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false},"zwave-network.rebuild":{"requiresTrust":false},"zwave-network.revert":{"requiresTrust":false}},"deviceFoundTime":1602800092272,"deviceType":"adapter.zwave","lastCommTime":0,"lastUpdate":1676676069942,"managerId":"zwave","name":"Z-Wave Adapter","placement":"unassigned","pollInterval":0,"roomId":1,"setupByPluginStatus":"complete","setupByUserStatus":"unset","subCategoryId":0,"tags":["unremovable","hidden"],"tamperStatus":"ok","zid":"8110e172-8c92-uuid","forceRemoveHistoryCount":0,"network":{"lastResetTimestamp":1676676069901,"nodes":{"7":{"linkStatistics":{"applicationMessagesReceived":0,"averageTransmissionTimeMs":0,"routeChanges":0,"transmissionCount":0,"transmissionErrorCount":0},"neighborUpdateTs":1602886768495,"neighbors":{"1":{"repeater":true},"11":{"repeater":false},"12":{"repeater":false},"13":{"repeater":false},"14":{"repeater":false},"15":{"repeater":true},"16":{"repeater":false},"17":{"repeater":false}},"timestamp":1676676069891,"zid":"886fff03-4d02-uuid"},"11":{"linkStatistics":{"applicationMessagesReceived":0,"averageTransmissionTimeMs":0,"routeChanges":0,"transmissionCount":0,"transmissionErrorCount":0},"neighborUpdateTs":1602957929484,"neighbors":{"1":{"repeater":true},"7":{"repeater":false},"12":{"repeater":false},"13":{"repeater":false},"15":{"repeater":true},"16":{"repeater":false}},"timestamp":1676676069891,"zid":"8e2977c5-78d7-uuid"},"12":{"linkStatistics":{"applicationMessagesReceived":8,"averageTransmissionTimeMs":2,"routeChanges":0,"transmissionCount":8,"transmissionErrorCount":0},"neighborUpdateTs":1604096991119,"neighbors":{"1":{"repeater":true},"7":{"repeater":false},"11":{"repeater":false}},"timestamp":1676676069891,"zid":"4c080373-dee8-uuid"},"13":{"linkStatistics":{"applicationMessagesReceived":1,"averageTransmissionTimeMs":1,"routeChanges":0,"transmissionCount":1,"transmissionErrorCount":0},"neighborUpdateTs":1605036464819,"neighbors":{"1":{"repeater":true},"7":{"repeater":false},"11":{"repeater":false}},"timestamp":1676676069891,"zid":"baa22e5d-1668-uuid"},"14":{"linkStatistics":{"applicationMessagesReceived":24,"averageTransmissionTimeMs":7,"routeChanges":4,"transmissionCount":24,"transmissionErrorCount":0},"neighborUpdateTs":1607537151271,"neighbors":{"1":{"repeater":true},"7":{"repeater":false},"15":{"repeater":true},"16":{"repeater":false},"17":{"repeater":false}},"timestamp":1676676069891,"zid":"576ddc7c-2b11-uuid"},"15":{"linkStatistics":{"applicationMessagesReceived":0,"averageTransmissionTimeMs":0,"routeChanges":0,"transmissionCount":0,"transmissionErrorCount":0},"neighborUpdateTs":1636845189172,"neighbors":{"1":{"repeater":true},"7":{"repeater":false},"11":{"repeater":false},"14":{"repeater":false},"16":{"repeater":false},"17":{"repeater":false}},"timestamp":1676676069891,"zid":"fede6b90-71b4-uuid"},"16":{"linkStatistics":{"applicationMessagesReceived":15,"averageTransmissionTimeMs":2,"routeChanges":0,"transmissionCount":14,"transmissionErrorCount":0},"neighborUpdateTs":1644195946151,"neighbors":{"1":{"repeater":true},"7":{"repeater":false},"11":{"repeater":false},"14":{"repeater":false},"15":{"repeater":true},"17":{"repeater":false}},"timestamp":1676676069891,"zid":"5414da16-f8c7-uuid"},"17":{"linkStatistics":{"applicationMessagesReceived":1,"averageTransmissionTimeMs":2,"routeChanges":0,"transmissionCount":1,"transmissionErrorCount":0},"neighborUpdateTs":1673487337734,"neighbors":{"7":{"repeater":false},"14":{"repeater":false},"15":{"repeater":true},"16":{"repeater":false}},"timestamp":1676676069891,"zid":"4f35fbf8-6593-uuid"}}},"orphanedNodeIds":[],"reportedGatewayStatuses":[],"systemSleep":"normal"},{"acStatus":"error","adapterType":"zwave","batteryLevel":70,"batteryStatus":"ok","categoryId":33,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"led-indicator-keypad.set":{"requiresTrust":false},"locale.get-supported":{"requiresTrust":false},"locale.set":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"deviceFoundTime":1602800117202,"deviceType":"security-keypad","firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"lastCommTime":1676676586253,"lastUpdate":1676676586360,"linkQuality":"ok","managerId":"zwave","manufacturerName":"Ring","name":"Entryway Keypad","placement":"unassigned","pollInterval":0,"roomId":7,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["scanned","kitted"],"tamperStatus":"ok","zid":"886fff03-4d02-uuid","brightness":1,"chirps":"disabled","locale":"en-us","modeIndicator":"proximity","powerSave":"off","volume":0.4334239},{"adapterType":"zwave","batteryLevel":70,"batteryStatus":"ok","categoryId":10,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"lock.lock":{"requiresTrust":false},"lock.unlock":{"requiresTrust":true},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"componentDevices":[{"rel":"0:access-code","zid":"9014ee35-18c5-uuid"}],"deviceFoundTime":1602871524542,"deviceType":"lock","impulseTypes":{"error.lock.jammed":{"trusted":false},"locked.by-auto-lock":{"trusted":false},"locked.by-keypad.access-code":{"trusted":false},"locked.by-manual":{"trusted":false},"locked.by-one-touch":{"trusted":false},"unlocked.by-keypad.access-code":{"trusted":false},"unlocked.by-manual":{"trusted":false}},"lastCommTime":1676671814768,"lastUpdate":1676671815073,"linkQuality":"bad","managerId":"zwave","manufacturerName":"Kwikset","name":"Front Entry Door","placement":"unassigned","pollInterval":43200,"roomId":10,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["security-warning.accepted"],"tamperStatus":"ok","zid":"8e2977c5-78d7-uuid","locked":"unlocked"},{"adapterType":"zwave","batteryStatus":"none","categoryId":29,"commStatus":"ok","commandTypes":{"access-code.remove":{"requiresTrust":false},"access-code.remove.all":{"requiresTrust":false}},"deviceFoundTime":1602871524893,"deviceType":"access-code","lastCommTime":1602871524580,"lastUpdate":1670947619415,"managerId":"zwave","name":"Access Code","parentZid":"8e2977c5-78d7-uuid","placement":"unassigned","pollInterval":0,"relToParentZid":"0:access-code","roomId":10,"rootDevice":"8e2977c5-78d7-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["hidden"],"tamperStatus":"ok","zid":"9014ee35-18c5-uuid","codeLengthMax":8,"codeLengthMin":4,"codeType":"numeric","numCodes":30},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"componentDevices":[{"rel":"4","zid":"b6c54775-dce3-uuid"},{"rel":"8","zid":"55e8c7b5-61e4-uuid"},{"rel":"3","zid":"5385a76d-76d6-uuid"},{"rel":"7","zid":"a48c1ad7-6a36-uuid"},{"rel":"1","zid":"394e921b-7b97-uuid"},{"rel":"5","zid":"a5f58c96-4afc-uuid"},{"rel":"6","zid":"cb700894-3d9e-uuid"},{"rel":"2","zid":"8b7f211f-4508-uuid"}],"deviceFoundTime":1604001614754,"deviceType":"bridge.flatline","firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"impulseTypes":{"comm.ping.received":{"trusted":false},"tampered":{"trusted":true},"tampered-cleared":{"trusted":true}},"lastCommTime":1676676578543,"lastUpdate":1676676578679,"linkQuality":"ok","managerId":"zwave","manufacturerName":"Ring","name":"Retrofit Alarm Kit 39676","nextExpectedWakeup":1676704147506,"placement":"unassigned","pollInterval":43200,"roomId":9,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"4c080373-dee8-uuid"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001614993,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1675022899932,"managerId":"zwave","name":"Living Room Windows","parentZid":"4c080373-dee8-uuid","placement":"window","pollInterval":0,"relToParentZid":"4","roomId":2,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":2,"tags":["sleepy","kitted","scanned"],"tamperStatus":"ok","zid":"b6c54775-dce3-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001615438,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1665190152328,"managerId":"zwave","name":"Olivia’s Bedroom Window","parentZid":"4c080373-dee8-uuid","placement":"window","pollInterval":0,"relToParentZid":"8","roomId":9,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":2,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"55e8c7b5-61e4-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001615731,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1676674709399,"managerId":"zwave","name":"Back Door","parentZid":"4c080373-dee8-uuid","placement":"main-door","pollInterval":0,"relToParentZid":"3","roomId":3,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":1,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"5385a76d-76d6-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001616158,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1665190152763,"managerId":"zwave","name":"Master Bedroom Windows","parentZid":"4c080373-dee8-uuid","placement":"window","pollInterval":0,"relToParentZid":"7","roomId":5,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":2,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"a48c1ad7-6a36-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001616547,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1676674381908,"managerId":"zwave","name":"Front Door","parentZid":"4c080373-dee8-uuid","placement":"main-door","pollInterval":0,"relToParentZid":"1","roomId":10,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":1,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"394e921b-7b97-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001616907,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1665190153117,"managerId":"zwave","name":"Office Windows","parentZid":"4c080373-dee8-uuid","placement":"window","pollInterval":0,"relToParentZid":"5","roomId":8,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":2,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"a5f58c96-4afc-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001617153,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1665190153284,"managerId":"zwave","name":"Guest Bedroom Window","parentZid":"4c080373-dee8-uuid","placement":"window","pollInterval":0,"relToParentZid":"6","roomId":14,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":2,"tags":["sleepy","kitted","scanned"],"tamperStatus":"ok","zid":"cb700894-3d9e-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection.disable":{"requiresTrust":false}},"deviceFoundTime":1604001617410,"deviceType":"sensor.zone","impulseTypes":{"clear":{"trusted":true},"fault":{"trusted":true}},"lastCommTime":0,"lastUpdate":1676676581758,"managerId":"zwave","name":"Garage Door","parentZid":"4c080373-dee8-uuid","placement":"main-door","pollInterval":0,"relToParentZid":"2","roomId":7,"rootDevice":"4c080373-dee8-uuid","setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":1,"tags":["sleepy","kitted","scanned"],"tamperStatus":"ok","zid":"8b7f211f-4508-uuid","faulted":false,"status":"enabled"},{"adapterType":"zwave","batteryLevel":99,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"detection-test-mode.cancel":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"deviceFoundTime":1604949750832,"deviceType":"listener.smoke-co","firmwareUpdate":{"eligibility":"ineligible","state":"up-to-date"},"impulseTypes":{"comm.ping.received":{"trusted":false},"listener-activated.co":{"trusted":true},"listener-activated.smoke":{"trusted":true},"listener-deactivated.co":{"trusted":true},"listener-deactivated.smoke":{"trusted":true},"tampered":{"trusted":true},"tampered-cleared":{"trusted":true}},"lastCommTime":1676674936443,"lastUpdate":1676674936531,"linkQuality":"ok","managerId":"zwave","manufacturerName":"Ring","name":"Smoke/CO Listener Foyer","nextExpectedWakeup":1676702108920,"placement":"unassigned","pollInterval":43200,"roomId":10,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["sleepy","scanned","kitted"],"tamperStatus":"ok","zid":"baa22e5d-1668-uuid","co":{"alarmStatus":"inactive","enabled":true,"enabledTimeMs":1604949925800},"smoke":{"alarmStatus":"inactive","enabled":true,"enabledTimeMs":1604949919015},"testMode":false},{"acStatus":"error","adapterType":"zwave","batteryLevel":45,"batteryStatus":"ok","categoryId":33,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"led-indicator-keypad.set":{"requiresTrust":false},"locale.get-supported":{"requiresTrust":false},"locale.set":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"deviceFoundTime":1607450651123,"deviceType":"security-keypad","firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"lastCommTime":1676677530944,"lastUpdate":1676677530990,"linkQuality":"ok","managerId":"zwave","manufacturerName":"Ring","name":"Backdoor keypad","placement":"unassigned","pollInterval":0,"roomId":3,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["kitted","scanned"],"tamperStatus":"ok","zid":"576ddc7c-2b11-uuid","brightness":1,"chirps":"enabled","locale":"en-us","modeIndicator":"proximity","powerSave":"off","volume":0.7},{"acStatus":"ok","adapterType":"zwave","batteryLevel":100,"batteryStatus":"charged","categoryId":32,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"deviceFoundTime":1636758742315,"deviceType":"range-extender.zwave","firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"impulseTypes":{"comm.ping.received":{"trusted":false}},"lastCommTime":1676676092445,"lastUpdate":1676676092668,"linkQuality":"bad","managerId":"zwave","manufacturerName":"Ring","name":"Range Extender 31113","placement":"unassigned","pollInterval":43200,"roomId":10,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["kitted","scanned"],"tamperStatus":"ok","zid":"fede6b90-71b4-uuid"},{"adapterType":"zwave","batteryLevel":79,"batteryStatus":"ok","categoryId":5,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"detection-test-mode.stop":{"requiresTrust":false},"led-indicator-sensor.set":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"deviceFoundTime":1644109520917,"deviceType":"sensor.motion","firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"impulseTypes":{"clear":{"trusted":true},"comm.ping.received":{"trusted":false},"fault":{"trusted":true},"tampered":{"trusted":true},"tampered-cleared":{"trusted":true}},"lastCommTime":1676677587124,"lastUpdate":1676677587171,"linkQuality":"ok","managerId":"zwave","manufacturerName":"Ring","name":"Living Room Motion Sensor","placement":"room","pollInterval":0,"roomId":2,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":4,"tags":["kitted","scanned"],"tamperStatus":"ok","zid":"5414da16-f8c7-uuid","faulted":false,"ledIndicatorMode":"fault","sensitivity":1,"sensitivityMin":3,"testMode":"inactive"},{"adapterType":"zwave","batteryLevel":100,"batteryStatus":"full","categoryId":5,"commStatus":"ok","commandTypes":{"communication-poll":{"requiresTrust":false},"detection-test-mode.start":{"requiresTrust":false},"reconfigure.start":{"requiresTrust":false},"update-node-neighbors.start":{"requiresTrust":false}},"deviceFoundTime":1673400931774,"deviceType":"sensor.glassbreak","firmwareUpdate":{"eligibility":"eligible","state":"up-to-date"},"impulseTypes":{"clear":{"trusted":true},"comm.ping.received":{"trusted":false},"fault":{"trusted":true},"tampered":{"trusted":true},"tampered-cleared":{"trusted":true}},"lastCommTime":1676677001733,"lastUpdate":1676677001821,"linkQuality":"ok","managerId":"zwave","manufacturerName":"Ring","name":"Living Room Glass Break","placement":"unassigned","pollInterval":0,"roomId":4,"setupByPluginStatus":"complete","setupByUserStatus":"complete","subCategoryId":0,"tags":["kitted","scanned"],"tamperStatus":"ok","zid":"4f35fbf8-6593-uuid","faulted":false,"sensorReportingState":"inactive","testMode":"inactive"}]}],"amazonKeyLocks":[]}

@johntous johntous added the enhancement New feature or request label Feb 18, 2023
@tsightler
Copy link
Collaborator

I don't see a Car Cam in this discovery information and, based on that, I'm going to guess that it is a different enough device that it has an API different from the standard security cameras with its own endpoints which will need to be discovered. I'm guessing this will not be something that happens quickly.

@johnrotellini
Copy link

johnrotellini commented Mar 7, 2023

Called in to ask an unrelated car cam question with Ring Support - as part of that conversation, the support rep queried their car cam specific engineering team who mentioned that, as car cam is utilizing HEVC as it’s codec that it currently isn’t available for viewing on ring.com along with a couple of other typical ring features.

They did mention that is in the process of being changed and should release in the near future.

As for API - it sounds like you’re right. Hopefully some headway comes sooner rather than later for more mainstream ring functionality so this can get introduced into the HOOVS/Homebridge ecosystem.

Thanks for your work!

@tsightler
Copy link
Collaborator

HEVC isn't such a huge issue, but determining the required APIs will require someone with access to a car cam (either shared or whatever) to reverse engineer with MITM proxy and Ring app to discover the endpoints, etc. My guess it, it's similar, but clearly not identical.

@tsightler
Copy link
Collaborator

If anyone out there is interested in sharing a Ring car cam with my account, I'm open to taking a look at it to see if it can be added easily or not. I would probably need access for a few weeks, so I get that is quite an intrusion, but just throwing it out there in case someone is open to it.

@englishfox90
Copy link

I have a ring carcam if you want access. My car is in for maintenance for a few days but once I have it back I can give you access to test etc..

@tsightler
Copy link
Collaborator

Thanks, feel free to reach out to me directly using this same username at Gmail when you are ready and we can coordinate. I'd prefer to keep access for as short of a period of time as possible. I'm told that Carcam uses HEVC mode only, which is something I'm currently working on thanks to another user, but, worst case I can capture a bunch of data from the Ring app and web console and get some idea of what it might take to get this working.

@iReadTOS
Copy link

It’s been some time, how is the progress?

@tsightler
Copy link
Collaborator

tsightler commented Aug 14, 2023

Not a lot of progress yet. A user has graciously allowed me access to one of their cameras as of last week, but I was out of town.
I've started early efforts to understand how the camera is presented in the API. I now understand how the API returns the device in the list (similar to onvif cameras it is categorized as "other").

The event and streaming API appear to be the same as other cameras, although there are different notifications and event types vs standard Ring cameras, and events have both front and rear recordings, live views allowing switching between front/rear cameras, which I'm not exactly sure how to handle (maybe separate cameras?), etc. It will take some time to work through all of the features, first step is to just get it into the API, then Homebridge support could come later.

Unfortuantely, I'm travelling a lot for the next couple of months, so I'm not sure how much time I will have to work on this. For users that have a Car Cam, what are the most important features you would want to see implemented?

@englishfox90
Copy link

englishfox90 commented Aug 14, 2023 via email

@tsightler
Copy link
Collaborator

tsightler commented Aug 21, 2023

An update on finding so far for Ring Car Cam:

During discovery the device is included in "other", similar to ONVIF cameras. The device kind is "rccs_1p_jaws".

Car Cam includes two camera sensors, both front and rear facing. The camera records and streams HEVC mode exlusively, even the new streaming API that allows other HEVC cameras to fall back to H264/AVC does not appear to work for Car Cam. This is reinforced by the fact that Car Cam is not viewable in browsers other than Safari, Chrome simply says "Your browser does not support modern codecs needed to play back video from this device".

Live streaming with HEVC works, but there's some additional challenges. As there are two camera sensors, the Ring app provides a way to switch between them when streaming. The Ring app appears to only allow this while the stream is active and it seems like they are negotiating a WebRTC datachannel and using that to send commands to switch the active sensor, but, as this communications channel is encrypted via DTLS, I haven't managed to figure out the commands yet.

Snapshot functions seem to work similar to other cameras, using the same API, so that part works fine. It seems like snapshots are always taken of the rear facing camrea. In the app there are times when it shows the front facing camera as a snapshot, but this seems to be only right after performing a live view and switching the view to that camera, but I'm still researching this part. Also, the Ring app only takes snapshots from the Car Cam every 15 minutes, I guess to prevent more battery drain.

Recorded videos can be either stored on the device or, if there is a subscription plan, also stored in the cloud. When stored on the device the recordings appear to contain both the front and rear video tracks. Playing back recording directly stored on the device uses WebRTC with the same API as the live stream, but with a slightly different set of commands. I'm guessing that recorded videos stored in the cloud will be accessed similar to other camera recordings, but this is just a guess at this

Notifications are the same as other camers although there are new notifiation event types such as "driving", "traffic stop" and "unplugged" which will need to be implemented.

Getting the full detail of events seems to require using the newer unified event management API vs the one currently implemented in ring-client-api. It's not that different, but includes data such as links to recordings, etc.

An API is also available to display the current location of the device/car, which I think might be useful.

Current thoughts on support (@dgreif I'd really appreciate your opinion on these):

  1. I believe Car Cam should be its own type, similar to ONVIF cameras

  2. For ring-client-api streaming will be different enough that I think it makes sense to not try to merge it with existing code. It could be done, but I think it would make the code less readable (I may change my mind when I start coding in earnest). My current thought is to split the code into three parts:
    ring-camera-base.ts - common functions, like snapshots and event management
    ring-camera.ts - device specific functions for standard cameras
    ring-carcam.ts - device specific functions for CarCam

  3. I'm not 100% sure what to do with the HEVC issue. I will test if Homekit can play back HEVC video (there's some hints that HKSV supports it, so maybe?), however, if not, the only option will be to transcode it.

  4. Assuming I figure out how to switch camera views, I'm not sure how to handle the two video streams. Would it be better to have two virtual cameras, a front and rear facing camera, or to use some type of toggle approach similar to the Ring app with an external switch?

Once I can get some basic support in the API I think adding it to homebridge-ring itself will be straighforward.

@nruffing
Copy link

Any update on this? I would be happy to help and contribute/collaborate on this.

I do have a car cam and I can say that I would agree that it should be treated as a separate device type. I would expect there is a chance that the differences diverge even more in the future. The use cases and required tech are just different.

From a user's point of view I actually don't like how it is one camera with a toggle. I would much rather have it just display as two cameras but that might also be a design choice to not allow streaming of both at the same time. The car cams are communicating over a 4G connection most of the time, unless they are in the driveway/garage and in wifi range ( but I already have another Ring cam pointed at it so ¯_(ツ)_/¯ ).

The car cam also has a lot of design decisions made to optimize battery drain. However, there are a couple useful features that could come of that.

  1. It has a voltage reading of the car's battery. That would be useful to have as a device.
  2. There is a battery use setting to change between low, medium and high battery usage. This is basically how much the Ring will drain the car's battery before turning itself off. It would be very useful to be able to quickly toggle this settings from the home app. I work from home so I will leave it on low with the privacy door closed when its in the driveway but then if I go somewhere and leave it in a parking lot I will open the privacy cover and change it to high.

@tsightler
Copy link
Collaborator

I spent some time with this as a user was gracious enough to share their Cam Cam with me for the last few months. I made some good progress initially, things like push notifications are straightforward as they are no different than other cams, other than having some different events and using different names (I guess "motion" is "disturbance" for a Car Cam), but there are other differences like how events including links to video from both cameras, and determining if a recording is on the camera vs uploaded to the cloud, and of course then dealing with the HEVC issues, which requires transcoding (I could not get Homekit to work with HEVC despite my best efforts).

Unfortunately, my work load over the last months has increased dramatically and I had much less free time than expected, so I was just unable to get all of this to a workable state, everything I had done was mostly just hacking for discovery purposes and not really put together in a way that I would submit it. I'm not sure when I will have the time to get back to it.

The only thing I could never figure out how to deal with is the dual image sensors. It actually seems like there is a single HEVC stream with separate tracks for each camera sensor (maybe HEVC-MV), that's how the switch happens so quickly which you choose to switch between front and rear. When you switch between front and rear views in the app, it seems to just be switching between the two tracks.

This is also true when you play back recordings directly from the car cam rather than those that are uploaded to the cloud. On the other hand, the cloud recordings seem to split the steams into to separate recordings. But this is where I ran out of time and haven't been able to get back to it.

@dhruvb14
Copy link

dhruvb14 commented Feb 3, 2024

I spent some time with this as a user was gracious enough to share their Cam Cam with me for the last few months. I made some good progress initially, things like push notifications are straightforward as they are no different than other cams, other than having some different events and using different names (I guess "motion" is "disturbance" for a Car Cam), but there are other differences like how events including links to video from both cameras, and determining if a recording is on the camera vs uploaded to the cloud, and of course then dealing with the HEVC issues, which requires transcoding (I could not get Homekit to work with HEVC despite my best efforts).

Unfortunately, my work load over the last months has increased dramatically and I had much less free time than expected, so I was just unable to get all of this to a workable state, everything I had done was mostly just hacking for discovery purposes and not really put together in a way that I would submit it. I'm not sure when I will have the time to get back to it.

The only thing I could never figure out how to deal with is the dual image sensors. It actually seems like there is a single HEVC stream with separate tracks for each camera sensor (maybe HEVC-MV), that's how the switch happens so quickly which you choose to switch between front and rear. When you switch between front and rear views in the app, it seems to just be switching between the two tracks.

This is also true when you play back recordings directly from the car cam rather than those that are uploaded to the cloud. On the other hand, the cloud recordings seem to split the steams into to separate recordings. But this is where I ran out of time and haven't been able to get back to it.

Do you have a Branch sitting somewhere you would be willing to share so others can attempt to add to this and help?

@tsightler
Copy link
Collaborator

Not really because, as I said, it was mostly just hacking. I was modifying the generated JS directly vs making changes in the upstream code. I will try to find time in the next few weeks to put at least the discovery portions into a branch as, once that's there, at least some functions are available.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

7 participants