@homebridge-plugins/homebridge-eufy-security 5.0.0-beta.3 → 5.0.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/config.schema.json +48 -0
  2. package/dist/account/temporary-authentication.js +3 -1
  3. package/dist/account/temporary-authentication.js.map +1 -1
  4. package/dist/configuration.js +44 -2
  5. package/dist/configuration.js.map +1 -1
  6. package/dist/device/member-evidence.js +10 -3
  7. package/dist/device/member-evidence.js.map +1 -1
  8. package/dist/device/snapshot.js +1 -1
  9. package/dist/device/snapshot.js.map +1 -1
  10. package/dist/diagnostics.js +694 -83
  11. package/dist/diagnostics.js.map +1 -1
  12. package/dist/homekit/adapters/camera-streaming.js +56 -27
  13. package/dist/homekit/adapters/camera-streaming.js.map +1 -1
  14. package/dist/homekit/adapters/lock.js +45 -16
  15. package/dist/homekit/adapters/lock.js.map +1 -1
  16. package/dist/homekit/adapters/motion.js +1 -1
  17. package/dist/homekit/adapters/motion.js.map +1 -1
  18. package/dist/homekit/adapters/package-sensor.js +63 -0
  19. package/dist/homekit/adapters/package-sensor.js.map +1 -0
  20. package/dist/homekit/adapters/registry.js +2 -0
  21. package/dist/homekit/adapters/registry.js.map +1 -1
  22. package/dist/homekit/adapters/security-system.js +101 -45
  23. package/dist/homekit/adapters/security-system.js.map +1 -1
  24. package/dist/homekit/coverage-matrix.js +1 -3
  25. package/dist/homekit/coverage-matrix.js.map +1 -1
  26. package/dist/homekit/reconciler.js +21 -5
  27. package/dist/homekit/reconciler.js.map +1 -1
  28. package/dist/media/last-successful-image.js +5 -3
  29. package/dist/media/last-successful-image.js.map +1 -1
  30. package/dist/media/live-stream.js +200 -84
  31. package/dist/media/live-stream.js.map +1 -1
  32. package/dist/media/recording.js +11 -5
  33. package/dist/media/recording.js.map +1 -1
  34. package/dist/media/snapshot.js +21 -8
  35. package/dist/media/snapshot.js.map +1 -1
  36. package/dist/media/station-live-sessions.js +47 -43
  37. package/dist/media/station-live-sessions.js.map +1 -1
  38. package/dist/platform.js +27 -7
  39. package/dist/platform.js.map +1 -1
  40. package/dist/runtime/channel.js +116 -4
  41. package/dist/runtime/channel.js.map +1 -1
  42. package/dist/runtime/device-settings.js +88 -0
  43. package/dist/runtime/device-settings.js.map +1 -0
  44. package/dist/runtime/owner.js +12 -0
  45. package/dist/runtime/owner.js.map +1 -1
  46. package/dist/runtime/sdk-client.js +19 -4
  47. package/dist/runtime/sdk-client.js.map +1 -1
  48. package/dist/ui/dashboard.js +32 -14
  49. package/dist/ui/dashboard.js.map +1 -1
  50. package/dist/ui/runtime-channel-client.js +64 -1
  51. package/dist/ui/runtime-channel-client.js.map +1 -1
  52. package/dist/ui/server.js +64 -5
  53. package/dist/ui/server.js.map +1 -1
  54. package/homebridge-ui/public/app.css +359 -88
  55. package/homebridge-ui/public/assets/icons/battery_0.svg +1 -0
  56. package/homebridge-ui/public/assets/icons/battery_1.svg +1 -0
  57. package/homebridge-ui/public/assets/icons/battery_2.svg +1 -0
  58. package/homebridge-ui/public/assets/icons/battery_3.svg +1 -0
  59. package/homebridge-ui/public/assets/icons/battery_4.svg +1 -0
  60. package/homebridge-ui/public/assets/icons/battery_5.svg +1 -0
  61. package/homebridge-ui/public/assets/icons/battery_6.svg +1 -0
  62. package/homebridge-ui/public/assets/icons/battery_full.svg +1 -0
  63. package/homebridge-ui/public/assets/icons/contact_support.svg +1 -0
  64. package/homebridge-ui/public/assets/icons/delete.svg +1 -0
  65. package/homebridge-ui/public/assets/icons/download.svg +1 -0
  66. package/homebridge-ui/public/assets/icons/extension_off.svg +1 -0
  67. package/homebridge-ui/public/assets/icons/info.svg +1 -0
  68. package/homebridge-ui/public/assets/icons/key_off.svg +1 -0
  69. package/homebridge-ui/public/assets/icons/keyboard_arrow_left.svg +1 -0
  70. package/homebridge-ui/public/assets/icons/keyboard_arrow_right.svg +1 -0
  71. package/homebridge-ui/public/assets/icons/keyboard_double_arrow_left.svg +1 -0
  72. package/homebridge-ui/public/assets/icons/keyboard_double_arrow_right.svg +1 -0
  73. package/homebridge-ui/public/assets/icons/movie_off.svg +1 -0
  74. package/homebridge-ui/public/assets/icons/refresh.svg +1 -0
  75. package/homebridge-ui/public/assets/icons/satellite_alt.svg +1 -0
  76. package/homebridge-ui/public/assets/icons/search_off.svg +1 -0
  77. package/homebridge-ui/public/assets/icons/sensors_off.svg +1 -0
  78. package/homebridge-ui/public/assets/icons/settings_photo_camera.svg +1 -0
  79. package/homebridge-ui/public/assets/icons/solar_power.svg +1 -0
  80. package/homebridge-ui/public/assets/icons/videocam_off.svg +1 -0
  81. package/homebridge-ui/public/i18n/en.json +119 -78
  82. package/homebridge-ui/public/i18n/fr.json +119 -78
  83. package/homebridge-ui/public/index.html +115 -106
  84. package/homebridge-ui/public/js/app.js +350 -358
  85. package/homebridge-ui/public/js/dashboard.js +139 -10
  86. package/homebridge-ui/public/js/profile-wizard.js +17 -54
  87. package/i18n/runtime/en.json +8 -3
  88. package/package.json +9 -6
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M280-80q-83 0-141.5-58.5T80-280q0-83 58.5-141.5T280-480q83 0 141.5 58.5T480-280q0 83-58.5 141.5T280-80Zm544-40L568-376q-12-13-25.5-26.5T516-428q38-24 61-64t23-88q0-75-52.5-127.5T420-760q-75 0-127.5 52.5T240-580q0 6 .5 11.5T242-557q-18 2-39.5 8T164-535q-2-11-3-22t-1-23q0-109 75.5-184.5T420-840q109 0 184.5 75.5T680-580q0 43-13.5 81.5T629-428l251 252-56 56Zm-615-61 71-71 70 71 29-28-71-71 71-71-28-28-71 71-71-71-28 28 71 71-71 71 28 28Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M791-55 325-521q-2 10-3.5 20t-1.5 21q0 33 12.5 62t34.5 51l-57 57q-32-33-51-76.5T240-480q0-28 6-54t17-49l-59-59q-21 36-32.5 76.5T160-480q0 67 25 125t69 101l-57 57q-54-55-85.5-127.5T80-480q0-62 17.5-117T146-700l-91-91 57-57 736 736-57 57Zm23-205-58-58q21-36 32.5-76.5T800-480q0-67-25-125t-69-101l57-57q54 54 85.5 126.5T880-480q0 61-17.5 116.5T814-260ZM697-377l-62-62q2-10 3.5-20t1.5-21q0-33-12.5-62T593-593l57-57q32 32 51 75.5t19 94.5q0 28-6 54t-17 49Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M580-80q-25 0-42.5-17.5T520-140v-200q0-25 17.5-42.5T580-400h60l40-40h80l40 40h60q25 0 42.5 17.5T920-340v200q0 25-17.5 42.5T860-80H580Zm140-80q33 0 56.5-23.5T800-240q0-33-23.5-56.5T720-320q-33 0-56.5 23.5T640-240q0 33 23.5 56.5T720-160ZM480-480Zm2-140q-58 0-99 41t-41 99q0 48 27 84t71 50v-90q-8-8-13-20.5t-5-23.5q0-25 17.5-42.5T482-540q14 0 25 5.5t19 14.5h90q-13-44-49.5-72T482-620ZM370-80l-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-85 65H696q-1-5-2-10.5t-3-10.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q24 25 54 42t65 22v184h-70Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="m80-80 80-400h640l80 400H80Zm40-720v-80h120v80H120Zm58 640h262v-80H194l-16 80Zm67-427-57-56 85-85 57 56-85 85Zm-35 267h230v-80H226l-16 80Zm270-360q-83 0-141.5-58.5T280-880h80q0 50 35 85t85 35q50 0 85-35t35-85h80q0 83-58.5 141.5T480-680Zm0-200Zm-40 360v-120h80v120h-80Zm80 360h262l-16-80H520v80Zm0-160h230l-16-80H520v80Zm195-267-84-85 56-56 85 84-57 57Zm5-213v-80h120v80H720Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#1f1f1f"><path d="M880-260 720-420v67l-80-80v-287H353l-80-80h367q33 0 56.5 23.5T720-720v180l160-160v440ZM822-26 26-822l56-56L878-82l-56 56ZM498-575ZM382-464ZM160-800l80 80h-80v480h480v-80l80 80q0 33-23.5 56.5T640-160H160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800Z"/></svg>
@@ -9,9 +9,17 @@
9
9
  "advancedEyebrow": "Configuration",
10
10
  "advancedFfmpegHelp": "Leave blank to use the FFmpeg executable bundled with the plugin.",
11
11
  "advancedFfmpegLabel": "Custom FFmpeg path",
12
+ "advancedLiveVideoPassthroughHelp": "Turn this on if live view never shows, or if the log says FFmpeg stopped before sending video. Live video from cameras that record H.264 is then sent as the camera recorded it, as version 4 did, instead of being converted to what the Home app asked for.",
13
+ "advancedLiveVideoPassthroughLabel": "Send camera video unchanged",
14
+ "advancedHdLiveVideoHelp": "Turn this on if live view in the Home app looks blurry. Cameras then offer the Home app only 720p and 1080p, also on mobile data and in the camera grid, which uses more data.",
15
+ "advancedHdLiveVideoLabel": "Always HD live video",
16
+ "advancedIgnoreHomeBitRateHelp": "Turn this on if live video looks sharp for a few seconds, then blurry or blocky. Video is then converted at a constant quality close to the camera’s own, instead of the low bit rate the Home app asks for, which uses more network bandwidth.",
17
+ "advancedIgnoreHomeBitRateLabel": "Ignore the Home app’s bit rate limit",
12
18
  "advancedPollingHelp": "Use 0 to disable scheduled polling. The default is 10 minutes.",
13
19
  "advancedPollingInvalid": "Enter a whole number of minutes greater than or equal to zero.",
14
20
  "advancedPollingLabel": "Polling interval in minutes",
21
+ "advancedSmallVideoPacketsHelp": "Turn this on if the Home app keeps loading a camera but never shows the live picture. Live video is then sent in smaller network packets, as version 4 did.",
22
+ "advancedSmallVideoPacketsLabel": "Smaller live video packets",
15
23
  "advancedSaveFailed": "The advanced setting could not be saved. Try again.",
16
24
  "advancedSummary": "Change infrequent host-level options. Save the Homebridge configuration when finished.",
17
25
  "advancedTitle": "Advanced settings",
@@ -28,10 +36,21 @@
28
36
  "advancedWarmUpLabel": "Warm up camera connections",
29
37
  "advancedWarmUpRemove": "Stop warming up the selected events",
30
38
  "advancedWarmUpRemoveAll": "Stop warming up every event",
31
- "authBlocked": "Stop the active Homebridge Eufy connection before authenticating, then try again.",
39
+ "armingModesHelp": "Four HomeKit states, nine station modes. Pick what each state sets; leave one empty to keep it out of HomeKit. Night has no default.",
40
+ "armingSlotAway": "Away",
41
+ "armingSlotHome": "Home",
42
+ "armingSlotNight": "Night",
43
+ "armingSlotOff": "Off",
44
+ "attentionChooseAnother": "Diagnose a different problem",
45
+ "attentionDiagnose": "Diagnose the problem shown",
46
+ "attentionUnreachableSummary": "Homebridge Eufy cannot reach this device, so HomeKit shows it as not responding. Check that it has power and a connection, then diagnose it if it stays unreachable.",
47
+ "attentionUnreachableTitle": "{device} is unreachable",
48
+ "authCommitFailed": "Signed in, but the session could not be saved. Restart Homebridge and sign in again.",
32
49
  "authFailed": "Authentication failed. Check the account details and try again.",
50
+ "authPluginRunning": "Homebridge Eufy is using the account connection right now. Restart Homebridge, then sign in again.",
33
51
  "authReady": "Authenticate your guest account",
34
- "authSuccess": "Authentication succeeded. Restart Homebridge to start the new account connection.",
52
+ "authSaveFailed": "Signed in, but the settings could not be saved. Press Save.",
53
+ "authSuccess": "Authentication succeeded. Press Save below, then let Homebridge restart to start the new account connection.",
35
54
  "authSummary": "This temporary connection stays in the setup window and closes before your account is saved.",
36
55
  "authTimedOut": "Authentication timed out. Start again to create a fresh connection.",
37
56
  "authenticate": "Authenticate",
@@ -39,6 +58,7 @@
39
58
  "brand": "Homebridge Eufy",
40
59
  "cameraOwnArming": "This camera also appears as its own security system. It works without a HomeBase, so it keeps its own arming state rather than following one — which is why each standalone camera shows a separate security system in the Home app.",
41
60
  "captchaLabel": "Captcha answer",
61
+ "captchaRetry": "That answer was not accepted. Enter the new captcha.",
42
62
  "categoryClean": "Clean",
43
63
  "categoryLife": "Life",
44
64
  "categorySecurity": "Security",
@@ -46,13 +66,15 @@
46
66
  "closeDetails": "Close device details",
47
67
  "closeDiagnostics": "Back to devices",
48
68
  "continueAuthentication": "Continue",
69
+ "countryInvalid": "Enter a two-letter country code, such as US or FR.",
49
70
  "countryLabel": "Country code",
50
71
  "dashboardActionsLabel": "Dashboard actions",
51
72
  "dashboardAuthenticationRequiredSummary": "The saved account needs authentication before devices can reconnect.",
52
73
  "dashboardAuthenticationRequiredTitle": "Authentication required",
53
74
  "dashboardDegradedSummary": "Showing the last complete discovery while the connection recovers.",
54
75
  "dashboardDegradedTitle": "Devices from the last complete discovery",
55
- "dashboardDiagnose": "Run diagnostics",
76
+ "dashboardFailedSummary": "Homebridge Eufy stopped on an error. Restart Homebridge.",
77
+ "dashboardFailedTitle": "Homebridge Eufy stopped",
56
78
  "dashboardIncompleteSummary": "Device discovery is incomplete. Existing device information is retained until a complete discovery replaces it.",
57
79
  "dashboardIncompleteTitle": "Discovery is incomplete",
58
80
  "dashboardMissingSummary": "No device snapshot is available yet. Start or restart Homebridge to discover devices.",
@@ -62,10 +84,12 @@
62
84
  "dashboardPageTitle": "Your Eufy devices",
63
85
  "dashboardReadySummary": "These devices came from the latest complete discovery.",
64
86
  "dashboardReadyTitle": "Discovered devices",
65
- "dashboardRestartRequiredSummary": "These devices were found for the account you just signed in to. Restart Homebridge to connect them.",
87
+ "dashboardRestartRequiredSummary": "These devices were found for the account you just signed in to. Press Save below, then let Homebridge restart to connect them.",
66
88
  "dashboardRestartRequiredTitle": "Devices found",
67
89
  "dashboardStaleSummary": "The saved device snapshot is no longer current. Restart Homebridge to refresh its status.",
68
90
  "dashboardStaleTitle": "Device status is stale",
91
+ "dashboardUnreachableSummary": "The settings service did not answer. Reload this page.",
92
+ "dashboardUnreachableTitle": "Settings did not load",
69
93
  "deviceBattery": "Battery {level}%",
70
94
  "deviceStatusHidden": "Hidden from HomeKit",
71
95
  "deviceStatusOnline": "Online",
@@ -76,94 +100,48 @@
76
100
  "diagnosticNoAction": "Nothing is wrong with your setup and there is nothing here to fix. It will appear in HomeKit once its main function has a representation verified against real hardware, so reporting it only helps if you can assist with that.",
77
101
  "diagnosticOnly": "Diagnostic only",
78
102
  "diagnosticsActionLabel": "What to do",
79
- "diagnosticsArchiveCoverageGap": "{classes}: evidence older than {retainedFrom} was dropped at the archive limit, so those classes do not reach the start of the reproduction you marked. Reproduce the fault again over a shorter interval.",
80
- "diagnosticsArchiveExcluded": "Always excluded:",
81
- "diagnosticsArchiveExpires": "expires {expiresAt}",
82
- "diagnosticsArchiveExport": "Download encrypted archive",
83
- "diagnosticsArchiveFields": "fields:",
84
- "diagnosticsArchiveMode": "mode:",
85
- "diagnosticsArchiveReview": "Review archive manifest",
86
- "diagnosticsArchiveReviewConfirm": "I reviewed this manifest and want to create this encrypted archive.",
87
- "diagnosticsArchiveReviewIntro": "Review the evidence classes and permanent exclusions before creating an encrypted local download. Nothing is uploaded.",
88
- "diagnosticsArchiveTruncated": "newest records retained at the archive limit",
89
- "diagnosticsAuthorize": "Start diagnostics session",
90
- "diagnosticsAuthorized": "Ready to collect. Start when you are ready.",
91
- "diagnosticsBackToQuestions": "Back to questions",
92
- "diagnosticsBeforeLabel": "Before you start",
93
- "diagnosticsBestMatch": "Best match",
94
- "diagnosticsChangeAnswers": "Change answers",
95
- "diagnosticsChooseDirectly": "Choose a profile directly",
96
- "diagnosticsCollectingFinishHere": "Debug diagnostics — collection is active. Finish here.",
97
- "diagnosticsComplete": "Collection complete.",
98
- "diagnosticsContinue": "Continue",
103
+ "diagnosticsArchiveDownloaded": "Diagnostics file downloaded.",
104
+ "diagnosticsArchiveHandoff": "Your browser should have saved {filename}, usually in Downloads. On the GitHub issue, write when the problem happens, what you expected, and whether it happened during this capture. Drag the file into the Diagnostics Archive box without renaming it, and check that its name appears there before submitting.",
105
+ "diagnosticsArchiveExport": "Download the diagnostics file",
106
+ "diagnosticsAttention": "Diagnostics — a problem was detected",
107
+ "diagnosticsCancel": "Cancel",
108
+ "diagnosticsCaptureKeepsRunning": "You can close this page; the capture keeps running and stops on its own on {time}.",
109
+ "diagnosticsCaptureTimedOut": "The capture stopped after 72 hours. Download what was captured.",
110
+ "diagnosticsCapturing": "Capturing",
111
+ "diagnosticsCollectingFinishHere": "Diagnostics — a capture is running. Finish it here.",
99
112
  "diagnosticsControlAction": "Use the control once, wait for the device to settle, then finish when the wrong state is visible.",
100
- "diagnosticsControlBefore": "Choose one control and make sure it is safe to operate.",
101
113
  "diagnosticsControlSummary": "Checks what happens when a HomeKit control and the device disagree.",
102
- "diagnosticsDashboardAction": "Repeat the navigation, setting change, or save attempt once, then reopen Debug diagnostics from the bug icon to finish collecting.",
103
- "diagnosticsDashboardBefore": "Open the screen where the problem occurs. Do not enter passwords or verification codes while collecting.",
114
+ "diagnosticsDashboardAction": "Repeat the navigation, setting change, or save attempt once, then reopen Diagnostics from the bug icon to finish the capture.",
104
115
  "diagnosticsDashboardSummary": "Tracks a problem in the dashboard, login, or setup screens.",
105
116
  "diagnosticsDevicesAction": "Refresh the devices or reopen the affected tile, then finish when the problem appears.",
106
- "diagnosticsDevicesBefore": "Note which accessory is missing, duplicated, or shown as the wrong type.",
107
117
  "diagnosticsDevicesSummary": "Checks why a HomeKit accessory is missing, duplicated, or shown as the wrong type.",
108
- "diagnosticsEndReproduction": "Issue happened: end reproduction",
109
- "diagnosticsEvidenceReady": "Collection complete.",
110
- "diagnosticsExpired": "The previous collection session has ended. Start a new one when needed.",
118
+ "diagnosticsDownloadAgain": "Download it again",
119
+ "diagnosticsEvidenceReady": "Capture finished.",
120
+ "diagnosticsExistingIssue": "Attach it to my existing GitHub issue",
111
121
  "diagnosticsEyebrow": "Support",
112
122
  "diagnosticsFailed": "The diagnostics request failed. Try again.",
113
- "diagnosticsFrequencyBack": "Back",
114
- "diagnosticsInactive": "Choose an issue profile to begin. Nothing is uploaded automatically.",
115
- "diagnosticsIntermittentAuthorized": "Ready to wait for the next occurrence.",
116
- "diagnosticsIntermittentIssueHappened": "The issue happened",
117
- "diagnosticsIntermittentReadyGuidance": "Start waiting when you are ready. Collection can stay active until the problem next occurs.",
118
- "diagnosticsIntermittentReproducing": "Collection is waiting for the issue to happen.",
119
- "diagnosticsIntermittentStartWaiting": "Start waiting",
120
- "diagnosticsIntermittentWaitingGuidance": "Collection is waiting. Return here and finish when the issue happens.",
121
- "diagnosticsLiveAction": "Open the live view, request one snapshot, or try talkback once, then finish when the result is visible.",
122
- "diagnosticsLiveBefore": "Choose one camera and one action to try. Video and talkback audio are never included.",
123
+ "diagnosticsLiveAction": "In the Home app, open the live view, request one snapshot, or try talkback once. If the image stays black or the problem shows, come back here and press finish. If it works, leave the capture running and try again when the problem returns.",
123
124
  "diagnosticsLiveSummary": "Checks one live view, snapshot, or talkback problem.",
124
- "diagnosticsMissingEvidence": "Collection complete. Some diagnostic details were unavailable, but you can still continue.",
125
- "diagnosticsModeIntermittent": "intermittent",
126
- "diagnosticsModeIntermittentSummary": "Collection can wait for the next occurrence.",
127
- "diagnosticsModeNow": "reproduce now",
128
- "diagnosticsModeNowSummary": "Collection will cover one reproduction now.",
129
- "diagnosticsNo": "No",
130
- "diagnosticsNowFinish": "Finish when issue reproduced",
131
- "diagnosticsOpenIssue": "Prepare GitHub issue",
132
- "diagnosticsOtherAction": "Try to make the problem happen once, note what you see, and finish promptly.",
133
- "diagnosticsOtherBefore": "Focus on one action if possible. Avoid passwords and unrelated personal information.",
134
- "diagnosticsOtherSummary": "Collects details for a problem that does not fit another choice.",
135
- "diagnosticsPrivacy": "Nothing is uploaded. Passwords, private account data, and camera media are never included.",
136
- "diagnosticsProfileChanged": "Start a new diagnostics session to use this profile.",
125
+ "diagnosticsMissingEvidence": "Some details could not be captured. You can still download the diagnostics file.",
126
+ "diagnosticsNowFinish": "It happened — finish",
127
+ "diagnosticsOpenIssue": "Open a new GitHub issue",
128
+ "diagnosticsOtherAction": "Try to make the problem happen and note what you see. Once it has happened, come back here and press finish; until then, leave the capture running.",
129
+ "diagnosticsOtherSummary": "Captures details for a problem that does not fit another choice.",
130
+ "diagnosticsPrivacy": "Reporting a problem needs a GitHub account. Nothing is uploaded: the diagnostics file is encrypted, stays on your computer until you attach it to a GitHub issue yourself, and never includes passwords, private account data, or camera media.",
137
131
  "diagnosticsProfileControl": "Control or state mismatch",
138
132
  "diagnosticsProfileDashboard": "Dashboard or setup interface",
139
133
  "diagnosticsProfileDevices": "Missing or incorrect device",
140
- "diagnosticsProfileLabel": "Issue profile",
141
- "diagnosticsProfileLiveMedia": "Live video, snapshot, or talkback",
142
- "diagnosticsProfileOther": "Other issue",
143
- "diagnosticsProfileRecording": "HomeKit Secure Video recording",
134
+ "diagnosticsProfileLiveMedia": "Black screen or live video problem",
135
+ "diagnosticsProfileOther": "Something else",
136
+ "diagnosticsProfileRecording": "Missing or unplayable event recording",
144
137
  "diagnosticsProfileStartup": "Startup or authentication",
145
- "diagnosticsQuestionControl": "Does a HomeKit control disagree with the actual device state?",
146
- "diagnosticsQuestionDashboard": "Is the problem in the dashboard, login, or setup screens?",
147
- "diagnosticsQuestionDevices": "Is an accessory missing, duplicated, or shown as the wrong type in HomeKit?",
148
- "diagnosticsQuestionLiveMedia": "Is the problem with live video, a snapshot, or talkback?",
149
- "diagnosticsQuestionRecording": "Is a HomeKit Secure Video recording missing or unplayable?",
150
- "diagnosticsQuestionReproduceNow": "Can you reproduce the problem now?",
151
- "diagnosticsQuestionStartup": "Is this a startup or sign-in problem?",
152
- "diagnosticsReauthorize": "Start a new diagnostics session",
153
- "diagnosticsRecordingAction": "Trigger one event that should be recorded, wait for the recording to appear, then finish.",
154
- "diagnosticsRecordingBefore": "Confirm HomeKit Secure Video is enabled and note roughly when the event happens. Recordings are never included.",
138
+ "diagnosticsRecordingAction": "Trigger one event that should be recorded and wait a few minutes. If the recording is missing or will not play, come back here and press finish. If it plays, leave the capture running and try again when the problem returns.",
155
139
  "diagnosticsRecordingSummary": "Checks one missing or unplayable HomeKit Secure Video recording.",
156
- "diagnosticsReproducing": "Collection is active. Reproduce the problem, then finish.",
157
- "diagnosticsStartAnother": "Start another diagnostics session",
158
- "diagnosticsStartRecording": "Start recording",
159
- "diagnosticsStartReproduction": "Start reproduction",
140
+ "diagnosticsStartAnother": "Start another capture",
160
141
  "diagnosticsStartupAction": "Restart Homebridge or repeat the failed sign-in step, then return here and finish.",
161
- "diagnosticsStartupBefore": "Start collecting before a restart. Never share a password, captcha answer, or verification code.",
162
142
  "diagnosticsStartupSummary": "Checks a Homebridge startup, connection, or sign-in problem.",
163
- "diagnosticsSummary": "Choose the problem, then collect what happens while it occurs.",
164
- "diagnosticsTitle": "Guided diagnostics",
165
- "diagnosticsUseProfile": "Use this profile",
166
- "diagnosticsYes": "Yes",
143
+ "diagnosticsTilesHeading": "What is going wrong?",
144
+ "diagnosticsTitle": "Diagnostics",
167
145
  "firstSetupAcknowledgement": "I have created a dedicated guest account and shared my Eufy home and devices with it.",
168
146
  "firstSetupContinue": "Continue",
169
147
  "firstSetupEyebrow": "First-time setup",
@@ -175,16 +153,78 @@
175
153
  "legacyEyebrow": "V5 migration",
176
154
  "legacySummary": "These V4 settings were intentionally discarded. They were not migrated or executed.",
177
155
  "legacyTitle": "Review discarded V4 settings",
156
+ "log.action.allowBatteryCooling": "Allow the device battery to return to a safe temperature.",
157
+ "log.action.checkCameraControl": "Check the camera in the Eufy app; this control is unavailable until it reports its state.",
158
+ "log.action.checkCameraRecording": "Check that HomeKit Secure Video is set up for this camera and that it reports motion.",
159
+ "log.action.checkCameraSnapshot": "Check that the camera is reachable and can produce an image, then open the camera again.",
160
+ "log.action.checkFfmpegPath": "FFmpeg could not be started; check the custom FFmpeg path in Advanced settings.",
161
+ "log.action.checkNetwork": "Check network access and Eufy service availability.",
162
+ "log.action.checkPhysicalArmingMode": "Check the physical security-system mode before retrying.",
163
+ "log.action.checkPhysicalLight": "Check the physical smart-light state before retrying.",
164
+ "log.action.checkPhysicalLock": "Check the physical lock state before retrying.",
165
+ "log.action.checkStation": "Check that the station or HomeBase this camera uses is powered and online, and network access between Homebridge and it, then open live view again.",
166
+ "log.action.controlTimedOut": "The device did not answer in time; use the Eufy app for this control, and attach a diagnostics file to your issue if it keeps happening.",
167
+ "log.action.enableCamera": "Turn the camera on in the Eufy app, then open live view again.",
168
+ "log.action.mapArmingMode": "Assign this mode to a HomeKit state under HomeKit guard modes in the device’s settings.",
169
+ "log.action.reduceConcurrentMedia": "Open live view again; if it keeps happening, close a camera already open or raise Cameras streaming at once in Advanced settings.",
170
+ "log.action.retryArming": "Retry the security-system control manually.",
171
+ "log.action.retryCameraControl": "Try the control again; the camera did not confirm the change.",
172
+ "log.action.retryLight": "Retry the smart-light control manually.",
173
+ "log.action.retryLiveView": "Open live view again, and check network access between Homebridge and the camera.",
174
+ "log.action.retryLock": "Retry the lock control manually.",
175
+ "log.action.retryRecording": "No action is needed; recording is attempted again on the next trigger.",
176
+ "log.action.retryTalkback": "Close and reopen the camera, then try speaking again.",
177
+ "log.action.trySmallVideoPackets": "If the live view never shows in the Home app, turn on Smaller live video packets in Advanced settings in the Homebridge Eufy dashboard.",
178
+ "log.action.setFfmpegPath": "Set a custom FFmpeg path in Advanced settings.",
179
+ "log.homekit.armingCapabilityUnavailable": "Security-system information is unavailable",
180
+ "log.homekit.armingOperationFailed": "A security-system control failed",
181
+ "log.homekit.armingReconciliationExpired": "A security system did not confirm the requested mode",
182
+ "log.homekit.batteryCapabilityUnavailable": "Battery information is unavailable",
183
+ "log.homekit.batteryTemperatureAlert": "A device reported a battery temperature alert",
184
+ "log.homekit.cameraControlOperationFailed": "A camera control did not take effect",
185
+ "log.homekit.cameraControlsCapabilityUnavailable": "A camera control is unavailable",
186
+ "log.homekit.cameraLiveSessionFailed": "A live view ended without video",
187
+ "log.homekit.cameraLiveSessionRefused": "Live view is unavailable because the camera is turned off",
188
+ "log.homekit.cameraMediaAtCapacity": "Live view was refused because this host had reached its configured limit of cameras streaming at once",
189
+ "log.homekit.cameraRecordingFailed": "A HomeKit Secure Video recording did not complete",
190
+ "log.homekit.cameraRecordingRefused": "HomeKit Secure Video recording is unavailable because the camera is turned off",
191
+ "log.homekit.cameraRecordingUnavailable": "HomeKit Secure Video recording is unavailable for this camera",
192
+ "log.homekit.cameraSnapshotCapabilityUnavailable": "Camera snapshots are unavailable",
193
+ "log.homekit.cameraSnapshotUnavailable": "A camera image is unavailable, so a placeholder is shown",
194
+ "log.homekit.cameraStreamingCapabilityUnavailable": "Camera live view is unavailable",
195
+ "log.homekit.cameraTalkbackFailed": "Camera talkback stopped unexpectedly",
196
+ "log.homekit.cameraTalkbackUnavailable": "Camera talkback is unavailable",
197
+ "log.homekit.contactCapabilityUnavailable": "Contact sensor information is unavailable",
198
+ "log.homekit.invalidBatteryObservation": "A battery reading is invalid",
199
+ "log.homekit.invalidCameraControlObservation": "A camera control state could not be read",
200
+ "log.homekit.invalidContactObservation": "A contact sensor reading is invalid",
201
+ "log.homekit.invalidLightObservation": "A smart-light reading is invalid",
202
+ "log.homekit.invalidSirenObservation": "A siren reading is invalid",
203
+ "log.homekit.lightCapabilityUnavailable": "Smart-light information is unavailable",
204
+ "log.homekit.lightOperationFailed": "A smart-light control failed",
205
+ "log.homekit.lightReconciliationExpired": "A smart-light did not confirm the requested state",
206
+ "log.homekit.lockCapabilityUnavailable": "Lock control is unavailable",
207
+ "log.homekit.lockOperationFailed": "A lock control failed",
208
+ "log.homekit.lockReconciliationExpired": "A lock did not confirm the requested target",
209
+ "log.homekit.sirenCapabilityUnavailable": "Siren information is unavailable",
210
+ "log.homekit.unsupportedArmingMode": "A security system reported a mode Apple Home cannot represent",
211
+ "log.homekit.unusableLockAnnouncement": "A lock reported something this plugin cannot read, so its state is shown as unknown",
212
+ "log.runtime.transportDegraded": "The Eufy connection is degraded",
178
213
  "menuAdvanced": "Advanced settings",
179
- "menuDiagnostics": "Debug diagnostics",
214
+ "menuDiagnostics": "Diagnostics",
180
215
  "menuRelogin": "Relogin or replace account",
181
216
  "oneAccountSession": "One account session at a time",
182
217
  "pageTitle": "Connect your Eufy account",
183
218
  "passwordLabel": "Password",
219
+ "preferenceArmingModes": "HomeKit guard modes",
184
220
  "preferenceAudio": "HomeKit audio",
221
+ "preferenceSecuritySystem": "HomeKit security system",
185
222
  "preferenceRepresented": "Expose in HomeKit",
186
223
  "preferenceSaveFailed": "The preference could not be saved. Try again.",
187
224
  "preferenceSnapshotMode": "Snapshot mode",
225
+ "reauthAction": "Sign in again",
226
+ "reauthSummary": "Homebridge Eufy can no longer use the saved Eufy session, so your devices are not updating in HomeKit. Sign in again to reconnect them.",
227
+ "reauthTitle": "Sign-in needed",
188
228
  "representationLabel": "Exposed as:",
189
229
  "serviceCamera": "Camera",
190
230
  "serviceCameraSwitches": "Camera switches",
@@ -208,6 +248,7 @@
208
248
  "stepDiscover": "Discover",
209
249
  "trustedDeviceLabel": "Trusted-device name",
210
250
  "twoFactorLabel": "Verification code",
251
+ "twoFactorSent": "Eufy has sent you a verification code. Enter it below.",
211
252
  "updatePendingAction": "Restart now",
212
253
  "updatePendingBusy": "Restarting…",
213
254
  "updatePendingFailed": "The restart could not be started. Restart Homebridge to use the installed version.",