homebridge-config-ui-x 5.12.1-beta.2 → 5.12.1-beta.4

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 (176) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/package.json +7 -7
  3. package/public/chunk-2FKL7WTN.js +1 -0
  4. package/public/chunk-3B3NAPXD.js +1 -0
  5. package/public/chunk-3BODPB3K.js +1 -0
  6. package/public/chunk-3BOXIXZY.js +1 -0
  7. package/public/chunk-3NHWMCB7.js +1 -0
  8. package/public/chunk-3YXAYQFV.js +1 -0
  9. package/public/chunk-4BX7KSQH.js +1 -0
  10. package/public/{chunk-TEU5YY42.js → chunk-4G3SMV26.js} +1 -1
  11. package/public/chunk-5A2G7KDR.js +1 -0
  12. package/public/{chunk-Z6WBGM7E.js → chunk-5GOLEPOT.js} +1 -1
  13. package/public/{chunk-G53OXLP6.js → chunk-5QQ2XMII.js} +1 -1
  14. package/public/chunk-65AW3ZMH.js +1 -0
  15. package/public/chunk-6KHLSYCO.js +1 -0
  16. package/public/chunk-7GUHWJ4X.js +1 -0
  17. package/public/chunk-7JD74YRM.js +1 -0
  18. package/public/{chunk-FKOFLPTH.js → chunk-7SWRANGJ.js} +1 -1
  19. package/public/{chunk-DDJZVSZF.js → chunk-A7MBTNVM.js} +1 -1
  20. package/public/{chunk-VOS6USVC.js → chunk-A7OA7EDC.js} +1 -1
  21. package/public/chunk-AHIRH7NQ.js +1 -0
  22. package/public/chunk-AJNVPC3P.js +1 -0
  23. package/public/{chunk-UCN23NIX.js → chunk-ALOGQFKU.js} +2 -2
  24. package/public/{chunk-QMG4EHL7.js → chunk-AMSZTHK7.js} +1 -1
  25. package/public/{chunk-E6JKJ4SR.js → chunk-ASKLCERP.js} +1 -1
  26. package/public/chunk-AST2OLG2.js +1 -0
  27. package/public/{chunk-ZDKU7C7X.js → chunk-AUCDLTKK.js} +1 -1
  28. package/public/chunk-AZLCZPTC.js +1 -0
  29. package/public/chunk-B23NNBW7.js +2 -0
  30. package/public/chunk-BJV2F6QZ.js +1 -0
  31. package/public/chunk-BUZBTHD2.js +1 -0
  32. package/public/{chunk-GTDQP2AN.js → chunk-C64AHVUO.js} +1 -1
  33. package/public/{chunk-PUHVTSJH.js → chunk-CH4W3VJQ.js} +1 -1
  34. package/public/chunk-CXSRVC7V.js +1 -0
  35. package/public/{chunk-MBM625YK.js → chunk-D4MLVPZP.js} +1 -1
  36. package/public/chunk-DCBZUBGA.js +1 -0
  37. package/public/chunk-DJGU4NTG.js +1 -0
  38. package/public/chunk-DOJGHPYJ.js +1 -0
  39. package/public/chunk-DQVHBQLA.js +1 -0
  40. package/public/chunk-DUPASTS2.js +1 -0
  41. package/public/{chunk-XW47YBLS.js → chunk-DW4GVDBD.js} +1 -1
  42. package/public/chunk-E55EDX5Y.js +1 -0
  43. package/public/{chunk-LJ2TL6FU.js → chunk-EFYVUQZK.js} +1 -1
  44. package/public/{chunk-ET2AGGLD.js → chunk-EQBPB35I.js} +1 -1
  45. package/public/chunk-F2HGBWZZ.js +1 -0
  46. package/public/chunk-F5MBSCH4.js +4 -0
  47. package/public/{chunk-WR3QTFHE.js → chunk-FHRZH5HG.js} +1 -1
  48. package/public/chunk-FLCYKKEZ.js +1 -0
  49. package/public/{chunk-AKBDMFNY.js → chunk-FNRDBHYN.js} +1 -1
  50. package/public/chunk-GYM2PPGX.js +1 -0
  51. package/public/chunk-HBK7LF6W.js +1 -0
  52. package/public/{chunk-TS4TGXTB.js → chunk-HH2FDI7W.js} +1 -1
  53. package/public/{chunk-DPOOINVO.js → chunk-HMF2EYMY.js} +1 -1
  54. package/public/{chunk-NJRKOKSU.js → chunk-IHAA5URA.js} +1 -1
  55. package/public/{chunk-VXY7XPAX.js → chunk-IL3A5BIS.js} +1 -1
  56. package/public/chunk-IXMOGLOS.js +1 -0
  57. package/public/chunk-J56ZFHCF.js +1 -0
  58. package/public/{chunk-PXHERBFM.js → chunk-K3WEJJSS.js} +1 -1
  59. package/public/{chunk-M4AG6QQU.js → chunk-KCDMHC2Q.js} +1 -1
  60. package/public/chunk-KDXP3F5S.js +1 -0
  61. package/public/{chunk-MOJIJ4KI.js → chunk-KEESKHLN.js} +1 -1
  62. package/public/{chunk-U6VZTQOE.js → chunk-KQSZ6SGH.js} +1 -1
  63. package/public/chunk-KYBKIBTT.js +1 -0
  64. package/public/{chunk-7ZXYLVBT.js → chunk-LF27VVUY.js} +1 -1
  65. package/public/chunk-LINXSUG2.js +1 -0
  66. package/public/{chunk-N2C63RVR.js → chunk-LMPJJK5P.js} +1 -1
  67. package/public/chunk-LPJ4GDP3.js +1 -0
  68. package/public/chunk-LPWY3RKY.js +1 -0
  69. package/public/chunk-LR2GN2Y2.js +1 -0
  70. package/public/{chunk-CELBAHUT.js → chunk-M5HSZY2K.js} +1 -1
  71. package/public/chunk-MUHHYXFN.js +1 -0
  72. package/public/chunk-N6F32H34.js +1 -0
  73. package/public/chunk-NPABPWX3.js +1 -0
  74. package/public/chunk-NTQWCIIF.js +1 -0
  75. package/public/{chunk-6BJX5CLA.js → chunk-OTMZDL7S.js} +1 -1
  76. package/public/chunk-OU66C3M2.js +1 -0
  77. package/public/chunk-P67JXXO4.js +1 -0
  78. package/public/chunk-PTJ3UZME.js +1 -0
  79. package/public/{chunk-L4IWIWT2.js → chunk-Q3NZLPIF.js} +1 -1
  80. package/public/chunk-Q5X66PGK.js +1 -0
  81. package/public/chunk-QGJKMFM5.js +1 -0
  82. package/public/chunk-QNOVJEHS.js +68 -0
  83. package/public/chunk-QSXJHCTT.js +1 -0
  84. package/public/{chunk-DYMBIGE6.js → chunk-RDHUW73W.js} +1 -1
  85. package/public/{chunk-H7VV626G.js → chunk-RRPHHKF2.js} +1 -1
  86. package/public/{chunk-LBHYTPQT.js → chunk-SH2LIQC2.js} +12 -12
  87. package/public/{chunk-RB55HUXA.js → chunk-SHUCVS7I.js} +1 -1
  88. package/public/{chunk-YTS2HZ4E.js → chunk-STRIQHMU.js} +1 -1
  89. package/public/{chunk-ZKWE65PF.js → chunk-T4UELVH7.js} +1 -1
  90. package/public/{chunk-UZAMPJXO.js → chunk-TKVKJ7BH.js} +1 -1
  91. package/public/chunk-TR77UVYU.js +1 -0
  92. package/public/{chunk-KJCR3URD.js → chunk-TTY6CFWI.js} +1 -1
  93. package/public/{chunk-SWNRIKJQ.js → chunk-U5MVAF2Z.js} +1 -1
  94. package/public/{chunk-O4N7TQYF.js → chunk-UHG23NUX.js} +1 -1
  95. package/public/{chunk-WBOY7NZ2.js → chunk-UOW2U4BJ.js} +1 -1
  96. package/public/{chunk-XAUQZEVR.js → chunk-UP6OS2GK.js} +1 -1
  97. package/public/chunk-UPP5DT2A.js +1 -0
  98. package/public/{chunk-4MY4WY4Y.js → chunk-UUTQE5VH.js} +1 -1
  99. package/public/{chunk-NXZQXLGL.js → chunk-UVWXUC5Y.js} +1 -1
  100. package/public/{chunk-NIIKMOHL.js → chunk-V2JVDEX6.js} +1 -1
  101. package/public/chunk-V45KU64F.js +1 -0
  102. package/public/{chunk-BOC4GPPW.js → chunk-VCWYDWAJ.js} +1 -1
  103. package/public/chunk-VV4LXPCS.js +1 -0
  104. package/public/{chunk-XGVNG2RP.js → chunk-W2KCSDQF.js} +1 -1
  105. package/public/{chunk-4KYVVTGG.js → chunk-WE4CGPHP.js} +1 -1
  106. package/public/{chunk-YCP75D2G.js → chunk-X66UFY6K.js} +1 -1
  107. package/public/chunk-XTQWZF3J.js +1 -0
  108. package/public/chunk-XYVW562Y.js +1 -0
  109. package/public/{chunk-AG63JY5Y.js → chunk-Y7OC2MBV.js} +1 -1
  110. package/public/chunk-YCASP3MF.js +1 -0
  111. package/public/chunk-YDYBCBXX.js +1 -0
  112. package/public/{chunk-2HVLTYRG.js → chunk-YPN7FV6O.js} +1 -1
  113. package/public/chunk-Z2RGI4BU.js +1 -0
  114. package/public/chunk-ZPKMGNNM.js +1 -0
  115. package/public/index.html +1 -1
  116. package/public/{main-E4NWGQN5.js → main-ZCE52DX6.js} +1 -1
  117. package/public/chunk-2OYRXBN2.js +0 -1
  118. package/public/chunk-2RZGQOIV.js +0 -1
  119. package/public/chunk-2TYRSR7L.js +0 -1
  120. package/public/chunk-2ZONQRJY.js +0 -1
  121. package/public/chunk-346MBK4E.js +0 -2
  122. package/public/chunk-3SEP5DLZ.js +0 -1
  123. package/public/chunk-3Z2ANIU6.js +0 -1
  124. package/public/chunk-3ZAUWVFS.js +0 -1
  125. package/public/chunk-4SYWCOWD.js +0 -1
  126. package/public/chunk-5BNEKASD.js +0 -1
  127. package/public/chunk-5GLW5TDA.js +0 -1
  128. package/public/chunk-5RBSEAWH.js +0 -1
  129. package/public/chunk-6J2OZXHX.js +0 -1
  130. package/public/chunk-6JD6QYDM.js +0 -1
  131. package/public/chunk-6PJ56ZYO.js +0 -1
  132. package/public/chunk-6TVBUEIO.js +0 -1
  133. package/public/chunk-725QXWIS.js +0 -1
  134. package/public/chunk-7UVP7RXM.js +0 -1
  135. package/public/chunk-AMYBOLIJ.js +0 -1
  136. package/public/chunk-AVNUTXZU.js +0 -1
  137. package/public/chunk-B7HJCRSF.js +0 -1
  138. package/public/chunk-B7M44SMZ.js +0 -1
  139. package/public/chunk-DIANFPJO.js +0 -1
  140. package/public/chunk-DIV6SBSA.js +0 -1
  141. package/public/chunk-EGSAGFD6.js +0 -1
  142. package/public/chunk-ELBRHYEQ.js +0 -1
  143. package/public/chunk-FE2B7I65.js +0 -1
  144. package/public/chunk-GTYX4TNN.js +0 -68
  145. package/public/chunk-GUGASWDS.js +0 -1
  146. package/public/chunk-HBKEAKUY.js +0 -1
  147. package/public/chunk-HPMVQQCQ.js +0 -1
  148. package/public/chunk-HYXVTKH5.js +0 -1
  149. package/public/chunk-IEA4TRJP.js +0 -1
  150. package/public/chunk-KII4A2TO.js +0 -1
  151. package/public/chunk-LHNLN7G4.js +0 -1
  152. package/public/chunk-MQYFARVS.js +0 -1
  153. package/public/chunk-N5RLFJCF.js +0 -1
  154. package/public/chunk-NE5TKDBZ.js +0 -1
  155. package/public/chunk-OEMJNAOZ.js +0 -1
  156. package/public/chunk-OKDYJSK3.js +0 -1
  157. package/public/chunk-OMS2DGGK.js +0 -1
  158. package/public/chunk-OXW7WUD2.js +0 -1
  159. package/public/chunk-OYAUZ7WO.js +0 -1
  160. package/public/chunk-P36LCHFC.js +0 -1
  161. package/public/chunk-P46NZURT.js +0 -1
  162. package/public/chunk-PQBOVKF6.js +0 -1
  163. package/public/chunk-STYJ7GX2.js +0 -1
  164. package/public/chunk-T5HDXHUI.js +0 -1
  165. package/public/chunk-TJM4IBUQ.js +0 -1
  166. package/public/chunk-TKQVPB3N.js +0 -1
  167. package/public/chunk-TNHQCJ4K.js +0 -1
  168. package/public/chunk-UQ6A4TOF.js +0 -1
  169. package/public/chunk-UX5CFJ7O.js +0 -4
  170. package/public/chunk-W4IPMDNP.js +0 -1
  171. package/public/chunk-XO4RLEIC.js +0 -1
  172. package/public/chunk-XYOWFUTO.js +0 -1
  173. package/public/chunk-Z5ETX2UJ.js +0 -1
  174. package/public/chunk-ZO7KUAS7.js +0 -1
  175. package/public/chunk-ZSOLIIEA.js +0 -1
  176. package/public/chunk-ZTOOYWTR.js +0 -1
@@ -1 +1 @@
1
- import{e as i}from"./chunk-DDJZVSZF.js";import{C as c,F as s,I as m}from"./chunk-346MBK4E.js";import{aa as r}from"./chunk-UX5CFJ7O.js";import{h as p}from"./chunk-B4AJQJMI.js";var h=()=>p(null,null,function*(){let t=r(m),o=r(i),a=r(s),e=r(c);try{return yield t.get("/platform-tools/docker/startup-script")}catch(n){console.error(n),a.error(n.message,e.instant("toast.title_error")),o.navigate(["/"]);return}});var R=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"startup-script",loadComponent:()=>import("./chunk-Z6WBGM7E.js").then(t=>t.StartupScriptComponent),resolve:{startupScript:h}},{path:"restart-container",loadComponent:()=>import("./chunk-N2C63RVR.js").then(t=>t.ContainerRestartComponent)}]},{path:"linux",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-MBM625YK.js").then(t=>t.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-E6JKJ4SR.js").then(t=>t.ShutdownLinuxComponent)}]},{path:"terminal",loadComponent:()=>import("./chunk-XGVNG2RP.js").then(t=>t.TerminalComponent),canDeactivate:[(t,o,a,e)=>t.canDeactivate?t.canDeactivate(e?.url):!0]}];export{R as PLATFORM_TOOLS_ROUTES};
1
+ import{e as i}from"./chunk-A7MBTNVM.js";import{C as c,F as s,I as m}from"./chunk-B23NNBW7.js";import{aa as r}from"./chunk-F5MBSCH4.js";import{h as p}from"./chunk-B4AJQJMI.js";var h=()=>p(null,null,function*(){let t=r(m),o=r(i),a=r(s),e=r(c);try{return yield t.get("/platform-tools/docker/startup-script")}catch(n){console.error(n),a.error(n.message,e.instant("toast.title_error")),o.navigate(["/"]);return}});var R=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"startup-script",loadComponent:()=>import("./chunk-5GOLEPOT.js").then(t=>t.StartupScriptComponent),resolve:{startupScript:h}},{path:"restart-container",loadComponent:()=>import("./chunk-LMPJJK5P.js").then(t=>t.ContainerRestartComponent)}]},{path:"linux",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-D4MLVPZP.js").then(t=>t.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-ASKLCERP.js").then(t=>t.ShutdownLinuxComponent)}]},{path:"terminal",loadComponent:()=>import("./chunk-W2KCSDQF.js").then(t=>t.TerminalComponent),canDeactivate:[(t,o,a,e)=>t.canDeactivate?t.canDeactivate(e?.url):!0]}];export{R as PLATFORM_TOOLS_ROUTES};
@@ -1 +1 @@
1
- import{b as P}from"./chunk-VXY7XPAX.js";import{C as F,D as T,H as w}from"./chunk-346MBK4E.js";import{Ab as g,Dc as i,Ec as n,Jb as t,Kb as a,Lb as p,Sb as y,Va as B,Yb as f,Za as e,Zb as C,aa as v,jc as h,kc as r,lc as m,mc as d,nb as I,sa as k,yb as l,yc as x,zb as b}from"./chunk-UX5CFJ7O.js";import{a as S,b as _}from"./chunk-B4AJQJMI.js";var $=(o,E)=>({"fa-chevron-down":o,"fa-chevron-right":E});function M(o,E){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),d(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),l("aria-label",n(10,16,"support.links.documentation")),e(5),d(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),l("aria-label",n(21,22,"support.links.issue")),e(5),d(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),l("aria-label",n(32,28,"support.links.discord")),e(5),d(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),l("aria-label",n(43,34,"support.links.reddit")))}function j(o,E){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let u=C();e(3),d(" ",n(4,16,"support.dev.item_swagger")),e(4),m(n(8,18,"support.dev.item_swagger_sub")),e(2),y("href",u.swaggerUrl,B),l("aria-label",n(10,20,"support.dev.item_swagger")),e(5),d(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),l("aria-label",n(21,26,"support.dev.api")),e(5),d(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),l("aria-label",n(32,32,"support.dev.api_hap")),e(5),d(" ",n(37,34,"support.dev.template")),e(4),m(n(41,36,"support.dev.template_sub")),e(2),l("aria-label",n(43,38,"support.dev.template")),e(5),d(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),l("aria-label",n(54,44,"support.dev.verified"))}}var A=(()=>{class o{$settings=v(P);$translate=v(F);showFields=k({general:!0,dev:!0});swaggerEndpoint="/swagger";ngOnInit(){let u=this.$translate.instant("support.title");this.$settings.setPageTitle(u)}get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields.update(c=>_(S({},c),{[u]:!c[u]}))}static \u0275fac=function(c){return new(c||o)};static \u0275cmp=I({type:o,selectors:[["ng-component"]],decls:18,vars:25,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,s){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),f("click",function(){return s.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),b(10,M,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),f("click",function(){return s.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),b(17,j,56,46,"ul",8),a()),c&2&&(e(2),m(n(3,13,"support.title")),e(3),l("aria-expanded",s.showFields().general?"true":"false")("aria-controls","fieldsGeneral"),e(2),h(x(19,$,s.showFields().general,!s.showFields().general)),e(),d(" ",n(9,15,"support.links.title")," "),e(2),g(s.showFields().general?10:-1),e(2),l("aria-expanded",s.showFields().dev?"true":"false")("aria-controls","fieldsDev"),e(2),h(x(22,$,s.showFields().dev,!s.showFields().dev)),e(),d(" ",n(16,17,"support.dev.title")," "),e(2),g(s.showFields().dev?17:-1))},dependencies:[T],encapsulation:2})}return o})();export{A as SupportComponent};
1
+ import{b as P}from"./chunk-IL3A5BIS.js";import{C as F,D as T,H as w}from"./chunk-B23NNBW7.js";import{Ab as g,Dc as i,Ec as n,Jb as t,Kb as a,Lb as p,Sb as y,Va as B,Yb as f,Za as e,Zb as C,aa as v,jc as h,kc as r,lc as m,mc as d,nb as I,sa as k,yb as l,yc as x,zb as b}from"./chunk-F5MBSCH4.js";import{a as S,b as _}from"./chunk-B4AJQJMI.js";var $=(o,E)=>({"fa-chevron-down":o,"fa-chevron-right":E});function M(o,E){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),d(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),l("aria-label",n(10,16,"support.links.documentation")),e(5),d(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),l("aria-label",n(21,22,"support.links.issue")),e(5),d(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),l("aria-label",n(32,28,"support.links.discord")),e(5),d(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),l("aria-label",n(43,34,"support.links.reddit")))}function j(o,E){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let u=C();e(3),d(" ",n(4,16,"support.dev.item_swagger")),e(4),m(n(8,18,"support.dev.item_swagger_sub")),e(2),y("href",u.swaggerUrl,B),l("aria-label",n(10,20,"support.dev.item_swagger")),e(5),d(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),l("aria-label",n(21,26,"support.dev.api")),e(5),d(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),l("aria-label",n(32,32,"support.dev.api_hap")),e(5),d(" ",n(37,34,"support.dev.template")),e(4),m(n(41,36,"support.dev.template_sub")),e(2),l("aria-label",n(43,38,"support.dev.template")),e(5),d(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),l("aria-label",n(54,44,"support.dev.verified"))}}var A=(()=>{class o{$settings=v(P);$translate=v(F);showFields=k({general:!0,dev:!0});swaggerEndpoint="/swagger";ngOnInit(){let u=this.$translate.instant("support.title");this.$settings.setPageTitle(u)}get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields.update(c=>_(S({},c),{[u]:!c[u]}))}static \u0275fac=function(c){return new(c||o)};static \u0275cmp=I({type:o,selectors:[["ng-component"]],decls:18,vars:25,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,s){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),f("click",function(){return s.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),b(10,M,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),f("click",function(){return s.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),b(17,j,56,46,"ul",8),a()),c&2&&(e(2),m(n(3,13,"support.title")),e(3),l("aria-expanded",s.showFields().general?"true":"false")("aria-controls","fieldsGeneral"),e(2),h(x(19,$,s.showFields().general,!s.showFields().general)),e(),d(" ",n(9,15,"support.links.title")," "),e(2),g(s.showFields().general?10:-1),e(2),l("aria-expanded",s.showFields().dev?"true":"false")("aria-controls","fieldsDev"),e(2),h(x(22,$,s.showFields().dev,!s.showFields().dev)),e(),d(" ",n(16,17,"support.dev.title")," "),e(2),g(s.showFields().dev?17:-1))},dependencies:[T],encapsulation:2})}return o})();export{A as SupportComponent};
@@ -1 +1 @@
1
- import{a as d}from"./chunk-H7F7H5MW.js";import{C as n,F as c,I as p}from"./chunk-346MBK4E.js";import{X as r,aa as a}from"./chunk-UX5CFJ7O.js";import{g as b,h as s}from"./chunk-B4AJQJMI.js";var m=b(d(),1);var v=(()=>{class e{$api=a(p);$toastr=a(c);$translate=a(n);downloadBackup(){return s(this,null,function*(){let t=yield this.$api.get("/backup/download",{observe:"response",responseType:"blob"}),i=t.headers.get("File-Name")||"homebridge-backup.tar.gz",o=t.body.size;if(o>globalThis.backup.maxBackupSize){let l=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(o/1048576).toFixed(1)}MB`});this.$toastr.warning(l,this.$translate.instant("toast.title_warning"))}(0,m.saveAs)(t.body,i)})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=r({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{v as a};
1
+ import{a as d}from"./chunk-H7F7H5MW.js";import{C as n,F as c,I as p}from"./chunk-B23NNBW7.js";import{X as r,aa as a}from"./chunk-F5MBSCH4.js";import{g as b,h as s}from"./chunk-B4AJQJMI.js";var m=b(d(),1);var v=(()=>{class e{$api=a(p);$toastr=a(c);$translate=a(n);downloadBackup(){return s(this,null,function*(){let t=yield this.$api.get("/backup/download",{observe:"response",responseType:"blob"}),i=t.headers.get("File-Name")||"homebridge-backup.tar.gz",o=t.body.size;if(o>globalThis.backup.maxBackupSize){let l=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(o/1048576).toFixed(1)}MB`});this.$toastr.warning(l,this.$translate.instant("toast.title_warning"))}(0,m.saveAs)(t.body,i)})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=r({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{v as a};
@@ -1 +1 @@
1
- import{b as $}from"./chunk-VXY7XPAX.js";import{H as h,I as S,v as j}from"./chunk-346MBK4E.js";import{$ as c,X as l,Y as v,_ as y,aa as f,i as u,la as I,n as g,o as k,ob as E,q as m,t as T}from"./chunk-UX5CFJ7O.js";import{h as a}from"./chunk-B4AJQJMI.js";var w=new y("JWT_OPTIONS"),p=(()=>{class o{constructor(e=null){this.tokenGetter=e&&e.tokenGetter||function(){}}urlBase64Decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:{t+="==";break}case 3:{t+="=";break}default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)}b64decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="";if(e=String(e).replace(/=+$/,""),e.length%4===1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(let r=0,s,n,D=0;n=e.charAt(D++);~n&&(s=r%4?s*64+n:n,r++%4)?i+=String.fromCharCode(255&s>>(-2*r&6)):0)n=t.indexOf(n);return i}b64DecodeUnicode(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join(""))}decodeToken(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._decodeToken(t)):this._decodeToken(e)}_decodeToken(e){if(!e||e==="")return null;let t=e.split(".");if(t.length!==3)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");let i=this.urlBase64Decode(t[1]);if(!i)throw new Error("Cannot decode the token.");return JSON.parse(i)}getTokenExpirationDate(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._getTokenExpirationDate(t)):this._getTokenExpirationDate(e)}_getTokenExpirationDate(e){let t;if(t=this.decodeToken(e),!t||!t.hasOwnProperty("exp"))return null;let i=new Date(0);return i.setUTCSeconds(t.exp),i}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(i=>this._isTokenExpired(i,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let i=this.getTokenExpirationDate(e);return t=t||0,i===null?!1:!(i.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return o.\u0275fac=function(e){return new(e||o)(c(w))},o.\u0275prov=l({token:o,factory:o.\u0275fac}),o})(),x=o=>o instanceof Promise?T(()=>o):u(o),b=(()=>{class o{constructor(e,t,i){this.jwtHelper=t,this.document=i,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||e.authScheme===""?e.authScheme:"Bearer ",this.allowedDomains=e.allowedDomains||[],this.disallowedRoutes=e.disallowedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}isAllowedDomain(e){let t=new URL(e.url,this.document.location.origin);if(t.host===this.document.location.host)return!0;let i=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(r=>typeof r=="string"?r===i:r instanceof RegExp?r.test(i):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(i=>{if(typeof i=="string"){let r=new URL(i,this.document.location.origin);return r.hostname===t.hostname&&r.pathname===t.pathname}return i instanceof RegExp?i.test(e.url):!1})>-1}handleInterception(e,t,i){let r=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=u(!1);return this.skipWhenExpired&&(s=e?x(this.jwtHelper.isTokenExpired(e)):u(!0)),e?s.pipe(k(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${r}${e}`}})),m(n=>i.handle(n))):i.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let i=this.tokenGetter(e);return x(i).pipe(m(r=>this.handleInterception(r,e,t)))}}return o.\u0275fac=function(e){return new(e||o)(c(w),c(p),c(I))},o.\u0275prov=l({token:o,factory:o.\u0275fac}),o})(),U=(()=>{class o{constructor(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}static forRoot(e){return{ngModule:o,providers:[{provide:j,useClass:b,multi:!0},e.jwtOptionsProvider||{provide:w,useValue:e.config},p]}}}return o.\u0275fac=function(e){return new(e||o)(c(o,12))},o.\u0275mod=E({type:o}),o.\u0275inj=v({}),o})();var X=(()=>{class o{$api=f(S);$jwtHelper=f(p);$settings=f($);token;user={};logoutTimer;lastRefreshTime=Date.now();isRefreshing=!1;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield this.$api.post("/auth/login",e);if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(h.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield this.$api.post("/auth/noauth",{});if(this.validateToken(e.access_token))window.localStorage.setItem(h.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,clearTimeout(this.logoutTimer),window.localStorage.removeItem(h.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield g(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(h.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){if(!this.token||this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){console.warn("Token expired on client side, logging out immediately"),this.logout();return}try{return yield this.$api.get("/auth/check")}catch(e){throw e.status===401&&(console.warn("Current token is not valid on server"),this.logout()),e}})}isLoggedIn(){return this.$settings.env.instanceId!==this.user.instanceId?(console.error("Token does not match instance"),!1):this.user&&this.token&&!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)}validateToken(e){try{return this.$jwtHelper.isTokenExpired(e,this.$settings.serverTimeOffset)&&this.logout(),this.user=this.$jwtHelper.decodeToken(e),this.token=e,this.setLogoutTimer(),!0}catch{return window.localStorage.removeItem(h.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let e=this.$settings.sessionTimeout*1e3;e<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),e))}}checkAndRefreshIfNeeded(){return a(this,null,function*(){if(!this.$settings.formAuth||!this.$settings.sessionTimeoutInactivityBased||!this.token||!this.isLoggedIn()||this.isRefreshing)return;let t=Date.now()-this.lastRefreshTime,r=this.$settings.sessionTimeout*1e3*.7;if(t>r)try{yield this.refreshSession()}catch(s){console.error("Failed to refresh session:",s)}})}refreshSession(){return a(this,null,function*(){if(!this.isRefreshing){this.isRefreshing=!0;try{let e=yield this.$api.post("/auth/refresh",{});e.access_token&&(this.token=e.access_token,window.localStorage.setItem(h.jwt.tokenKey,e.access_token),this.lastRefreshTime=Date.now(),this.setLogoutTimer())}finally{this.isRefreshing=!1}}})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=l({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();export{U as a,X as b};
1
+ import{b as $}from"./chunk-IL3A5BIS.js";import{H as h,I as S,v as j}from"./chunk-B23NNBW7.js";import{$ as c,X as l,Y as v,_ as y,aa as f,i as u,la as I,n as g,o as k,ob as E,q as m,t as T}from"./chunk-F5MBSCH4.js";import{h as a}from"./chunk-B4AJQJMI.js";var w=new y("JWT_OPTIONS"),p=(()=>{class o{constructor(e=null){this.tokenGetter=e&&e.tokenGetter||function(){}}urlBase64Decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:{t+="==";break}case 3:{t+="=";break}default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)}b64decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="";if(e=String(e).replace(/=+$/,""),e.length%4===1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(let r=0,s,n,D=0;n=e.charAt(D++);~n&&(s=r%4?s*64+n:n,r++%4)?i+=String.fromCharCode(255&s>>(-2*r&6)):0)n=t.indexOf(n);return i}b64DecodeUnicode(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join(""))}decodeToken(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._decodeToken(t)):this._decodeToken(e)}_decodeToken(e){if(!e||e==="")return null;let t=e.split(".");if(t.length!==3)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");let i=this.urlBase64Decode(t[1]);if(!i)throw new Error("Cannot decode the token.");return JSON.parse(i)}getTokenExpirationDate(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._getTokenExpirationDate(t)):this._getTokenExpirationDate(e)}_getTokenExpirationDate(e){let t;if(t=this.decodeToken(e),!t||!t.hasOwnProperty("exp"))return null;let i=new Date(0);return i.setUTCSeconds(t.exp),i}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(i=>this._isTokenExpired(i,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let i=this.getTokenExpirationDate(e);return t=t||0,i===null?!1:!(i.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return o.\u0275fac=function(e){return new(e||o)(c(w))},o.\u0275prov=l({token:o,factory:o.\u0275fac}),o})(),x=o=>o instanceof Promise?T(()=>o):u(o),b=(()=>{class o{constructor(e,t,i){this.jwtHelper=t,this.document=i,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||e.authScheme===""?e.authScheme:"Bearer ",this.allowedDomains=e.allowedDomains||[],this.disallowedRoutes=e.disallowedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}isAllowedDomain(e){let t=new URL(e.url,this.document.location.origin);if(t.host===this.document.location.host)return!0;let i=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(r=>typeof r=="string"?r===i:r instanceof RegExp?r.test(i):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(i=>{if(typeof i=="string"){let r=new URL(i,this.document.location.origin);return r.hostname===t.hostname&&r.pathname===t.pathname}return i instanceof RegExp?i.test(e.url):!1})>-1}handleInterception(e,t,i){let r=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=u(!1);return this.skipWhenExpired&&(s=e?x(this.jwtHelper.isTokenExpired(e)):u(!0)),e?s.pipe(k(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${r}${e}`}})),m(n=>i.handle(n))):i.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let i=this.tokenGetter(e);return x(i).pipe(m(r=>this.handleInterception(r,e,t)))}}return o.\u0275fac=function(e){return new(e||o)(c(w),c(p),c(I))},o.\u0275prov=l({token:o,factory:o.\u0275fac}),o})(),U=(()=>{class o{constructor(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}static forRoot(e){return{ngModule:o,providers:[{provide:j,useClass:b,multi:!0},e.jwtOptionsProvider||{provide:w,useValue:e.config},p]}}}return o.\u0275fac=function(e){return new(e||o)(c(o,12))},o.\u0275mod=E({type:o}),o.\u0275inj=v({}),o})();var X=(()=>{class o{$api=f(S);$jwtHelper=f(p);$settings=f($);token;user={};logoutTimer;lastRefreshTime=Date.now();isRefreshing=!1;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield this.$api.post("/auth/login",e);if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(h.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield this.$api.post("/auth/noauth",{});if(this.validateToken(e.access_token))window.localStorage.setItem(h.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,clearTimeout(this.logoutTimer),window.localStorage.removeItem(h.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield g(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(h.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){if(!this.token||this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){console.warn("Token expired on client side, logging out immediately"),this.logout();return}try{return yield this.$api.get("/auth/check")}catch(e){throw e.status===401&&(console.warn("Current token is not valid on server"),this.logout()),e}})}isLoggedIn(){return this.$settings.env.instanceId!==this.user.instanceId?(console.error("Token does not match instance"),!1):this.user&&this.token&&!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)}validateToken(e){try{return this.$jwtHelper.isTokenExpired(e,this.$settings.serverTimeOffset)&&this.logout(),this.user=this.$jwtHelper.decodeToken(e),this.token=e,this.setLogoutTimer(),!0}catch{return window.localStorage.removeItem(h.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let e=this.$settings.sessionTimeout*1e3;e<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),e))}}checkAndRefreshIfNeeded(){return a(this,null,function*(){if(!this.$settings.formAuth||!this.$settings.sessionTimeoutInactivityBased||!this.token||!this.isLoggedIn()||this.isRefreshing)return;let t=Date.now()-this.lastRefreshTime,r=this.$settings.sessionTimeout*1e3*.7;if(t>r)try{yield this.refreshSession()}catch(s){console.error("Failed to refresh session:",s)}})}refreshSession(){return a(this,null,function*(){if(!this.isRefreshing){this.isRefreshing=!0;try{let e=yield this.$api.post("/auth/refresh",{});e.access_token&&(this.token=e.access_token,window.localStorage.setItem(h.jwt.tokenKey,e.access_token),this.lastRefreshTime=Date.now(),this.setLogoutTimer())}finally{this.isRefreshing=!1}}})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=l({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();export{U as a,X as b};
@@ -0,0 +1 @@
1
+ import{e}from"./chunk-B4AJQJMI.js";var o=e((a,i)=>{i.exports={"accessories.accessory_info":"Informazioni accessorio","accessories.bridge_ip":"IP del Bridge","accessories.bridge_port":"Porta del Bridge","accessories.button_add_room":"Aggiungi stanza","accessories.button_delete_room":"Delete Room","accessories.button_edit_room":"Edit Room","accessories.button_hidden_hide":"Nascondi nascosti","accessories.button_hidden_show":"Mostra nascosti","accessories.button_remove":"Rimuovi dalla cache","accessories.control.adaptive_lighting":"Illuminazione adattiva","accessories.control.adaptive_lighting_note":"Alcuni plugin potrebbero riattivare automaticamente l'illuminazione adattiva quando si modifica questa impostazione.","accessories.control.auto":"Automatico","accessories.control.away":"Assente","accessories.control.battery_charged":"Batteria carica","accessories.control.battery_charging":"In ricarica","accessories.control.battery_low":"Batteria scarica","accessories.control.battery_notchargeable":"Non ricaricabile","accessories.control.battery_notcharging":"Non in carica","accessories.control.brightness":"Luminosit\xE0","accessories.control.cleaning":"Cleaning","accessories.control.closed":"Chiuso","accessories.control.closing":"In chiusura","accessories.control.color_temperature":"Temperatura colore","accessories.control.cool":"Freddo","accessories.control.current":"Attuale","accessories.control.default_room":"Stanza predefinita","accessories.control.dehumidify":"Deumidifica","accessories.control.detected":"Rilevato","accessories.control.direction_control":"Controllo Direzione","accessories.control.drag_here":"Trascina qui","accessories.control.filter_level":"Vita filtro","accessories.control.heat":"Caldo","accessories.control.home":"Casa","accessories.control.hue":"Tonalit\xE0","accessories.control.humidify":"Umidifica","accessories.control.idle":"Inattivo","accessories.control.input":"Elenco input","accessories.control.input_control":"Controllo input","accessories.control.jammed":"Inceppato","accessories.control.lock_auto":"Timer blocco automatico","accessories.control.locked":"Chiuso","accessories.control.manual":"Manuale","accessories.control.media_control":"Controllo media","accessories.control.microphone":"Microfono","accessories.control.mode":"Modalit\xE0","accessories.control.mode_control":"Controllo modalit\xE0","accessories.control.mute":"Muto","accessories.control.mute_control":"Controllo muto","accessories.control.night":"Notte","accessories.control.no_data":"Nessun dato","accessories.control.not_detected":"Non rilevato","accessories.control.not_mute":"Acceso","accessories.control.obstructed":"Ostruito","accessories.control.off":"Spento","accessories.control.on":"Acceso","accessories.control.open":"Aperto","accessories.control.opening":"In apertura","accessories.control.pause":"Pausa","accessories.control.paused":"Paused","accessories.control.play":"Riproduci","accessories.control.ready":"Ready","accessories.control.replace":"Sostituisci","accessories.control.rotation_c_clockwise":"Antiorario","accessories.control.rotation_clockwise":"Orario","accessories.control.rotation_direction":"Direzione rotazione","accessories.control.rotation_speed":"Velocit\xE0 di rotazione","accessories.control.running":"In esecuzione","accessories.control.saturation":"Saturazione","accessories.control.set_duration":"Imposta durata","accessories.control.speaker":"Altoparlante","accessories.control.speaker_volume":"Volume","accessories.control.state_control":"Controllo stato","accessories.control.stateless":"Senza stato","accessories.control.stop":"Stop","accessories.control.stopped":"Fermato","accessories.control.target":"Obiettivo","accessories.control.target_auto":"Obiettivo automatico","accessories.control.threshold_auto":"Soglia automatica","accessories.control.triggered":"Azionato","accessories.control.unknown":"Sconosciuto","accessories.control.unlocked":"Sbloccato","accessories.control_disabled":"Controllo degli accessori disabilitato","accessories.core.air_purifier":"Purificatore d'aria","accessories.core.air_quality_sensor":"Sensore qualit\xE0 dell'aria","accessories.core.battery":"Batteria","accessories.core.carbon_dioxide_sensor":"Sensore anidride carbonica","accessories.core.carbon_monoxide_sensor":"Sensore monossido di carbonio","accessories.core.contact_sensor":"Sensore di contatto","accessories.core.cooler":"Condizionatore","accessories.core.dehumidifier":"Deumidificatore","accessories.core.door":"Porta","accessories.core.doorbell":"Campanello","accessories.core.fan":"Ventilatore","accessories.core.faucet_valve":"Valvola rubinetto","accessories.core.filter_maintenance":"Manutenzione filtro","accessories.core.garage_door_opener":"Aprigarage","accessories.core.generic_valve":"Valvola","accessories.core.heater":"Riscaldamento","accessories.core.heater_cooler":"Riscaldamento/Condizionatore","accessories.core.humidifier":"Umidificatore","accessories.core.humidifier_dehumidifier":"Umidificatore/Deumidificatore","accessories.core.humidity_sensor":"Sensore di umidit\xE0","accessories.core.irrigation_system":"Sistema di irrigazione","accessories.core.irrigation_valve":"Valvola","accessories.core.leak_sensor":"Sensore perdite","accessories.core.light_sensor":"Sensore di luce","accessories.core.lightbulb":"Lampadina","accessories.core.lock_mechanism":"Meccanismo serratura","accessories.core.microphone":"Microfono","accessories.core.motion_sensor":"Sensore di movimento","accessories.core.occupancy_sensor":"Sensore di presenza","accessories.core.on_off_light":"Lightbulb","accessories.core.on_off_light_switch":"Switch","accessories.core.on_off_plug_in_unit":"Outlet","accessories.core.outlet":"Presa","accessories.core.robot_vacuum":"Robot aspirapolvere","accessories.core.robotic_vacuum_cleaner":"Robot Vacuum","accessories.core.security_system":"Sistema di sicurezza","accessories.core.shower_head_valve":"Valvola","accessories.core.smoke_sensor":"Sensore di fumo","accessories.core.speaker":"Altoparlante","accessories.core.stateless_programmable_switch":"Interruttore programmabile senza stato","accessories.core.switch":"Interruttore","accessories.core.television":"Televisione","accessories.core.temperature_sensor":"Sensore di temperatura","accessories.core.thermostat":"Termostato","accessories.core.valve":"Valvola","accessories.core.washing_machine":"Lavatrice","accessories.core.window":"Finestra","accessories.core.window_covering":"Copertura finestra","accessories.custom_name":"Nome personalizzato","accessories.custom_type":"Tipo personalizzato","accessories.delete_room_move_accessories":"Any accessories in this room will be moved to {{roomName}}.","accessories.delete_room_new_default":"{{roomName}} will become the new default room.","accessories.hide_this_accessory":"Nascondi accessorio","accessories.message_must_use_insecure_mode":"Per controllare i tuoi accessori devi avviare Homebridge in modalit\xE0 non sicura {{ link }}.","accessories.name":"Nome","accessories.no_plugins.message_1":"Gli accessori sono creati e gestiti dai plugin di Homebridge.","accessories.no_plugins.message_2":"Puoi trovare e installare i plugin dalla pagina dei plugin.","accessories.no_plugins.title":"Nessun plugin installato","accessories.only_ui":"Queste impostazioni sono solo per l'interfaccia utente di Homebridge e <strong>non si rifletteranno in HomeKit</strong>.","accessories.only_ui_2":"Queste opzioni sono uniche per il tuo account Homebridge UI.","accessories.plugin":"Plugin","accessories.room_name":"Nome stanza","accessories.service":"Servizio","accessories.service_info":"Informazioni servizio","accessories.settings_link":"Puoi accedere alle Impostazioni di Homebridge in qualsiasi momento dall'icona dell'ingranaggio nel menu laterale.","accessories.show_on_dashboard":"Mostra widget nella dashboard","accessories.support.acc_1":"Gli accessori potrebbero impiegare alcuni minuti per apparire in questa schermata dopo un riavvio di Homebridge o dopo essere stati aggiunti. Se gli accessori mancano costantemente, prova a cambiare l'annunciatore mDNS nelle impostazioni.","accessories.support.acc_2":"Puoi cambiare il tipo di alcuni accessori nell'interfaccia utente (mostrare un interruttore come riscaldamento, per esempio). Puoi farlo cliccando sulle tre barre che appaiono nell'angolo in alto a destra della scheda dell'accessorio passandoci sopra con il mouse. Un'opzione 'Tipo personalizzato' apparir\xE0 se l'accessorio supporta questa funzione. Nota che questo non cambier\xE0 l'accessorio in HomeKit (solo un plugin pu\xF2 farlo).","accessories.support.rooms_1":"Le stanze create qui non appariranno in HomeKit, servono solo per organizzare gli accessori in Homebridge UI.","accessories.support.rooms_2":"You can rename or delete a room by clicking the cog icon next to its name when the layout is unlocked.","accessories.support.rooms_3":"You must have at least one room, and exactly one default room, which is where new accessories will go.","accessories.title_rooms":"Stanze","accessories.unique_id":"Unique ID","backup.backup_delete_failed":"Eliminazione del backup fallita. Vedi i log per i dettagli.","backup.backup_download_failed":"Scaricamento del backup fallito","backup.backup_exceeds_max_size":"Il backup ({{ backupSize }}) supera la dimensione massima del file di ripristino di {{ maxBackupSizeText }}","backup.backup_help_one":"Scarica un archivio di backup del tuo ambiente Homebridge. Questo salver\xE0 tutto il contenuto della directory Homebridge che successivamente potr\xE0 essere ripristinato su qualunque piattaforma supportata da Homebridge UI.","backup.backup_help_two":"I plugin non installati da npm, o plugin installati direttamente da GitHub non verranno salvati o ripristinati.","backup.backup_now":"Esegui backup ora","backup.backup_now_desc":"Genera e scarica un file di backup aggiornato.","backup.backup_now_save_desc":"Genera un file di backup aggiornato nella tua directory di archiviazione dei backup.","backup.backup_restored":"Archivio di backup ripristinato","backup.backup_warning":"Gli archivi di backup contengono informazioni sensibili e non dovrebbero essere condivisi con altre persone.","backup.files_auto":"File di backup salvati","backup.label_extracting":"Estrazione archivio","backup.label_uploading":"Caricamento in corso\u2026","backup.load_error":"Impossibile caricare il backup della configurazione.","backup.restore_failed":"Ripristino fallito","backup.restore_help_one":"Ripristina un archivio di backup precedentemente creato con Homebridge UI. La tua configurazione di Homebridge, gli accessori, gli abbinamenti di HomeKit e gli account utente di Homebridge UI saranno ripristinati. I plugin Homebridge che erano stati installati verranno scaricati da npm.","backup.restore_help_two":"Dopo il ripristino sar\xE0 necessario autenticarsi con Homebridge UI usando le credenziali contenute nel backup ripristinato.","backup.restore_max_size":"Puoi ripristinare un archivio di backup di dimensioni fino a {{ maxBackupSizeText }}.","backup.restore_now":"Ripristina ora","backup.restore_now_desc":"Ripristina da un file di backup scaricato in precedenza.","backup.restore_warning":"Ripristinare un backup sovrascriver\xE0 irreversibilmente l'attuale configurazione di Homebridge.","backup.scheduled_backup_disabled":"I backup programmati sono stati disabilitati tramite la configurazione.","backup.scheduled_backup_time":"Un backup completo di questa istanza di Homebridge verr\xE0 automaticamente creato ogni giorno alle ore {{ backupTime }} e conservato per {{ dayCount }} giorni.","backup.settings_enable":"Abilita Backup Automatici","backup.settings_path":"Percorso Salvataggio Backup","backup.settings_path_desc":"Se stai modificando questo percorso rispetto a quello predefinito, assicurati che la directory esista e sia scrivibile dall'utente Homebridge.","backup.settings_title":"Impostazioni Backup","backup.title_backup":"Backup e Ripristino","child_bridge.about":"Homebridge permette di eseguire i plugin delle piattaforme o degli accessori all'intero di un bridge figlio isolato dall'istanza principale {{ link }}. Questo pu\xF2 migliorare la reattivit\xE0 e la stabilit\xE0 di Homebridge.","child_bridge.bridge_connect":"Collega a HomeKit","child_bridge.bridge_settings":"Impostazioni del bridge","child_bridge.bridges":"Bridge","child_bridge.bridges_paired":"Ogni piattaforma o accessorio eseguito in un bridge figlio dovr\xE0 essere abbinato separatamente a HomeKit.","child_bridge.bridges_paired_2":"Se configuri un bridge figlio ora e lo disabiliti in seguito, tutti gli accessori su questo bridge verranno rimossi e ricreati sul bridge principale di Homebridge.","child_bridge.config.accessory":"Accessorio","child_bridge.config.debug":"Modalit\xE0 Debug","child_bridge.config.enable_hap":"Enable HAP","child_bridge.config.firmware":"Versione Firmware","child_bridge.config.hide_pairing_alert":"Nascondi avviso di abbinamento","child_bridge.config.manufacturer":"Produttore","child_bridge.config.matter_note_1":"Plugins must be updated by the developer to support Matter accessories. There is no use in enabling Matter here unless you definitely know the plugin supports it.","child_bridge.config.matter_note_2":"Remember that the Matter integration is experimental and may not work perfectly with all accessories or setups.","child_bridge.config.model":"Modello","child_bridge.config.name":"Nome","child_bridge.config.or_link":"Collega bridge esistente","child_bridge.config.platform":"Piattaforma","child_bridge.config.port":"Porta","child_bridge.config.prevent":"Impossibile disabilitare un bridge figlio con accessori collegati.","child_bridge.config.select_existing":"Seleziona un bridge esistente...","child_bridge.config.use":"Usa bridge figlio","child_bridge.confirm_delete_1":"I seguenti bridge figli verranno rimossi.","child_bridge.confirm_delete_2":"Dovrai rimuovere manualmente i bridge abbinati dall'app Casa. Tutti gli accessori verranno rimossi e ricreati sul bridge principale di Homebridge.","child_bridge.must_configure_plugin":"\xC8 necessario configurare questo plugin prima di poter gestire le impostazioni del suo bridge.","child_bridge.reset_accessories":"Reset Accessori","child_bridge.restart":"Riavvia Bridge Figlio","child_bridge.restart_plural":"Riavvia Bridge Figli","child_bridge.return_to_pair":"Ritorna a questa videata dopo il riavvio di Homebridge per visualizzare il codice QR di abbinamento.","child_bridge.setup":"Configura Bridge Figlio","child_bridge.start":"Avvia Bridge Figlio","child_bridge.start_plural":"Avvia Bridge Figli","child_bridge.stop":"Ferma Bridge Figlio","child_bridge.stop_plural":"Ferma Bridge Figli","common.labels.beta":"beta","common.labels.disabled":"Disabled","common.labels.enabled":"Enabled","common.labels.no_confirmation":"Non c'\xE8 nessuna richiesta di conferma cliccando il pulsante, l'azione verr\xE0 eseguita immediatamente.","common.phrases.are_you_sure":"Sei sicuro di voler continuare?","common.phrases.support":"Pensi che ci sia qualcosa di utile che potremmo aggiungere qui? Faccelo sapere su {{ github }} o {{ discord }}!","config.config_accessory_must_be_array":"gli accessori devono essere tra []","config.config_bridge_missing":"Impostazioni del bridge mancanti","config.config_invalid_json":"JSON non valido","config.config_platform_must_be_array":"le piattaforme devono essere tra []","config.config_saved":"Configurazione Salvata","config.config_username_error":"Il nome del bridge deve essere composto da 6 paia di caratteri esadecimali (A-F 0-9) separate dal carattere due punti (XX:XX:XX:XX:XX:XX)","config.error_blocks_objects":"Tutti i blocchi {{ type }} devono essere oggetti.","config.error_blocks_type":"Tutti i blocchi {{ type }} devono contenere l'attributo {{ type }}.","config.error_string_array":"Ogni elemento nell'array {{ key }} deve essere una stringa.","config.error_string_type":"L'attributo {{ type }} deve essere una stringa.","config.failed_to_save_config":"Configurazione non salvata","config.hide_hap_pairing":"Nascondi avviso abbinamento HAP","config.hide_matter_pairing":"Hide Matter Pairing Alert","config.hide_plugin_updates":"Nascondi aggiornamenti plugin per","config.no_restart":"Non \xE8 necessario riavviare poich\xE9 non sono state apportate modifiche alla configurazione di Homebridge.","config.restore.confirm":"Clicca Salva per recuperare questo backup","config.restore.copy_to_editor":"Copia nell'editor","config.restore.download":"Scarica la tua configurazione attuale come file JSON.","config.restore.help_1":"Viene creato un backup del tuo file di configurazione ogni volta che viene aggiornato dalle azioni eseguite in Homebridge UI.","config.restore.help_2":"Puoi ripristinare una versione precedente del tuo file di configurazione selezionandola dall'elenco sottostante. Potrai confrontare questa versione con la tua configurazione attuale prima di decidere se ripristinarla.","config.restore.title":"Backup e Ripristino File di Configurazione","config.restore.toast_backups_deleted":"Backup eliminati","config.restore.view_inline":"Vista in linea","config.restore.view_side_by_side":"Vista affiancata","config.title_backup_loaded":"Backup caricato","form.button_allow":"Consenti","form.button_back":"Indietro","form.button_cancel":"Annulla","form.button_close":"Chiudi","form.button_continue":"Continua","form.button_delete":"Elimina","form.button_delete_all":"Cancella tutto","form.button_download":"Scarica","form.button_edit":"Modifica","form.button_lock":"Blocca","form.button_more_info":"Maggiori info","form.button_remove":"Rimuovi","form.button_reset":"Reset","form.button_restore":"Ripristina","form.button_save":"Salva","form.button_show":"Mostra","form.button_unlock":"Sblocca","form.button_unpair":"Rimuovi abbinamento","form.label.changes_kept":"Nota che le selezioni/modifiche esistenti vengono mantenute quando si passa da un elemento all'altro.","form.label_invalid":"Convalida della configurazione fallita - puoi comunque salvare le tue modifiche.","form.label_invalid_strict":"Convalida della configurazione fallita - per favore controlla il modulo prima di salvare.","form.label_valid":"Convalida della configurazione superata.","form.optional":"Opzionale","form.search":"Cerca...","form.select.auto":"Automatico (Usa impostazioni browser)","login.invalid_code":"Il codice inserito non \xE8 corretto o \xE8 scaduto","login.invalid_credentials":"Utente o password non validi","login.invalid_credentials_2":"Se perdi l'accesso, elimina il file <code>auth.json</code> nella tua directory di archiviazione di Homebridge e riavvia Homebridge. Quindi aggiorna questa pagina per configurare un nuovo account amministratore. Le impostazioni di Homebridge/UI rimarranno invariate, ad eccezione degli account utente dell'interfaccia. L'unico account utente sar\xE0 l'account amministratore che stai configurando ora.","login.invalid_password":"Password non valida","login.label_2fa_code":"Codice di autenticazione a 2 fattori","logs.download.error":"Impossibile scaricare il file di log.","logs.download_warning":"I file dei log di Homebridge potrebbero contenere informazioni personali, password o chiavi di accesso. Per piacere convalida il file dei log e rimuovi qualunque informazione riservata prima di condividerlo con terzi.","logs.log_file_truncated":"File di log troncato.","logs.placeholder_search_logs":"Search logs (min. 3 characters)...","logs.title_download_log_file":"Scarica i log","logs.title_truncate_log_file":"Tronca il file di log","logs.truncate.error":"Impossibile troncare il file di log.","logs.truncate_log_warning":"Questa operazione canceller\xE0 irreversibilmente i tuoi log di Homebridge. Sei sicuro di voler continuare?","matter_bridge.config.use":"Enable Matter","menu.config_json_editor":"Config JSON","menu.docker.restart_container":"Riavvia Container","menu.docker.startup_script":"Avvia script","menu.docker.terminal":"Terminale","menu.hbrestart.confirm_hb":"Riavvia Homebridge","menu.hbrestart.confirm_ui":"Riavvia Servizio HB e UI","menu.hbrestart.title":"Riavvia Homebridge","menu.label_accessories":"Accessori","menu.label_plugins":"Plugin","menu.label_settings":"Impostazioni","menu.label_status":"Stato","menu.linux.label_logs":"Log","menu.linux.label_restart_server":"Riavvia sistema","menu.linux.label_shutdown_modal":"Sei sicuro di voler arrestare il sistema operativo? Dovrai avere accesso fisico per riaccenderlo.","menu.linux.label_shutdown_server":"Arresta sistema","menu.linux.label_terminal":"Terminale","menu.reload":"Ricarica","menu.restart.title":"Opzioni alimentazione","menu.settings.title":"Impostazioni","menu.tooltip_logout":"Scollegati","menu.tooltip_restart":"Riavvia","menu.tooltip_user_accounts":"Account utente","menu.tooltip_view_logs":"Mostra i log","platform.docker.container_restarted":"Container Docker riavviato","platform.docker.must_use_hashbang":"Lo script deve usare l'hashbang #!/bin/sh.","platform.docker.restart_required":"\xC8 necessario riavviare docker affinch\xE9 le modifiche abbiano effetto.","platform.docker.run_with_restart":"Accertati di aver avviato il container Docker in modalit\xE0 {{ command }}","platform.docker.script_help":"Questo script verr\xE0 eseguito ogni volta che docker viene avviato. Puoi usarlo per installare eventuali pacchetti aggiuntivi necessari ai tuoi plugin come ffmpeg o libpcap-dev.","platform.docker.script_saved":"Script di avvio salvato","platform.docker.server_long_time":"Il riavvio richiede troppo tempo. Prova a riavviare Docker manualmente.","platform.docker.title_restarting":"Riavvio container Docker","platform.linux.long_time":"Il riavvio del sistema sta richiedendo molto tempo. Potrebbe essere necessario avviare manualmente il sistema.","platform.linux.restart":"Attendi, questa pagina verr\xE0 reindirizzata automaticamente quando Homebridge sar\xE0 di nuovo online.","platform.linux.restarting_server":"Riavvio del sistema","platform.linux.server_restart_error":"Si \xE8 verificato un errore durante l'invio del comando di riavvio al sistema","platform.linux.server_restarted":"Sistema riavviato","platform.linux.server_taking_long_time":"Il sistema impiega molto tempo per tornare online","platform.linux.server_will_power_down":"Il sistema si spegner\xE0 a breve.","platform.linux.shutting_down_server":"Arresto del sistema","platform.terminal.terminate_message_1":"Lasciando questa pagina terminerai la sessione corrente: tutti i processi in primo piano verranno terminati.","platform.terminal.terminate_message_2":"Per evitare questo avviso, abilita la <strong>Persistenza della Sessione del Terminale</strong> dalla pagina delle impostazioni.","platform.terminal.terminate_title":"Terminazione sessione","platform.terminal.terminate_unload":"La tua sessione del terminale verr\xE0 terminata. Abilita la Persistenza della Sessione del Terminale nelle Impostazioni per evitare che ci\xF2 accada.","platform.version.restart_required":"Homebridge UI v{{ uiVersion }} \xE8 stato installato, ma la versione in esecuzione del suo servizio \xE8 la v{{ serverVersion }}.","platform.version.service_restart_required":"\xC8 necessario riavviare il servizio","plugins.bridge.action_error":"Impossibile {{ action }} bridge figlio/i.","plugins.bridge.name_error":"Il nome del bridge deve iniziare e finire con una lettera o un numero e pu\xF2 contenere solo lettere, numeri, spazi e apostrofi.","plugins.bridge.port_error":"La porta {{ type }} deve essere un numero intero tra 1025 e 65533, escludendo 5353, 8080, 8443 e qualsiasi altra porta gi\xE0 configurata.","plugins.button_homepage":"Homepage plugin","plugins.button_set_up":"Configura","plugins.button_settings":"Impostazioni","plugins.button_uninstall":"Disinstalla","plugins.button_update":"Aggiorna","plugins.compat.hb_node_too_low":"{{ packageName }} v{{ latestVersion }} richiede Node.js v{{ minVersion }} o successivo. Stai attualmente eseguendo Node.js {{ installedVersion }}.","plugins.compat.hb_too_low":"Il plugin {{ pluginName }} raccomanda l'esecuzione su Homebridge v{{ minVersion }} o successivo. Stai attualmente eseguendo Homebridge v{{ installedVersion }}.","plugins.compat.node_first":"Per piacere aggiornare Node.js prima di aggiornare {{ packageName }}.","plugins.compat.node_link":"Come aggiornare Node.js","plugins.compat.node_too_low":"Il plugin {{ pluginName }} raccomanda l'esecuzione su Node.js v{{ minVersion }} o successivo. Stai attualmente eseguendo Node.js {{ installedVersion }}.","plugins.compat.title":"Convalida compatibilit\xE0","plugins.config.load_error":"Impossibile caricare la configurazione del plugin.","plugins.config.must_be_array":"La configurazione del plugin deve essere un array.","plugins.config.must_be_array_objects":"La configurazione del plugin deve essere un array di oggetti.","plugins.config.must_be_object":"Il blocco di configurazione deve essere un oggetto.","plugins.config.name_property":`L'accessorio deve avere un attributo "name" valido`,"plugins.config.please_fix":"Correggi gli errori di convalida prima di aggiungere un nuovo blocco.","plugins.disable.error":"Impossibile disabilitare il plugin.","plugins.donate.message_1":"Man mano che pi\xF9 utenti installano i loro plugin tramite Homebridge UI, \xE8 meno probabile che visitino la pagina GitHub del progetto dove verrebbero tipicamente mostrati i modi per supportare uno sviluppatore.","plugins.donate.message_2":"Aggiungere link per le donazioni direttamente in Homebridge UI assicura che gli utenti sappiano come supportare gli sviluppatori di Homebridge se desiderano farlo.","plugins.donate.tile_donate_to":"Dona a {{ author }}","plugins.enable.error":"Impossibile abilitare il plugin.","plugins.manage.all_versions":"Tutte le versioni","plugins.manage.backup":"Scaricare un backup prima dell'aggiornamento?","plugins.manage.changelog":"Changelog completo","plugins.manage.changelog_none":"Impossibile recuperare il changelog, forse questo plugin non fornisce un file <code>CHANGELOG.md</code>.","plugins.manage.child_bridge_restart":"Bridge figlio riavviato con successo.","plugins.manage.child_bridge_restart_failed":"Riavvio del plugin fallito, per favore riavvia Homebridge manualmente.","plugins.manage.confirm_disable":"Sei sicuro di voler disabilitare {{ pluginName }}?","plugins.manage.confirm_disable_accessory_1":"Tutti gli accessori esposti da questo plugin verranno rimossi dalla schermata degli accessori di Homebridge UI e rimossi da HomeKit.","plugins.manage.confirm_disable_accessory_2":"Quando riabiliti il plugin, gli accessori riappariranno in Homebridge UI e HomeKit. Gli accessori perderanno i loro dati HomeKit (come scene e automazioni correlate).","plugins.manage.confirm_disable_platform_1":"Tutti gli accessori esposti da questo plugin verranno rimossi dalla schermata degli accessori di Homebridge UI ma rimarranno in HomeKit con l'etichetta 'Nessuna risposta'.","plugins.manage.confirm_disable_platform_2":"Quando riabiliti il plugin, gli accessori riappariranno in Homebridge UI e diventeranno nuovamente controllabili in HomeKit. Gli accessori non perderanno i loro dati HomeKit (come scene e automazioni correlate).","plugins.manage.confirm_disable_setting":"La tua impostazione per {{ setting }} \xE8 attualmente {{ value }}, quindi:","plugins.manage.confirm_enable":"Sei sicuro di voler attivare {{ pluginName }}?","plugins.manage.disable":"Disattiva","plugins.manage.enable":"Attiva","plugins.manage.hb_restart":"Homebridge e l'interfaccia utente si riavvieranno automaticamente dopo qualsiasi cambio di versione.","plugins.manage.hide_updates":"Disabilita notifiche aggiornamento","plugins.manage.hide_updates_desc":"Se non vuoi vedere le notifiche di aggiornamento per questo plugin, puoi disattivarle qui.","plugins.manage.information":"Informazioni plugin","plugins.manage.install":"Installa","plugins.manage.installed":"Installato","plugins.manage.json_config":"Configurazione JSON","plugins.manage.manage_version":"Installa la versione precedente","plugins.manage.manual_update_command":"Per aggiornare il pacchetto, apri un prompt dei comandi Node.js come Amministratore ed esegui i seguenti comandi:","plugins.manage.more_info":"Maggiori informazioni sui plugin scoped {{ scopedLink }} e verificati {{ verifiedLink }}.","plugins.manage.notes":"Note di rilascio","plugins.manage.notes_beta_1":"Grazie per aver aiutato a migliorare {{ pluginName }} testando una versione pre-rilascio.","plugins.manage.notes_beta_2":"Puoi usare Homebridge UI per tornare alla versione stabile in qualsiasi momento.","plugins.manage.notes_beta_3":"Ricorda che questa \xE8 una versione pre-rilascio e segnala eventuali problemi alla pagina del repository GitHub del plugin.","plugins.manage.notes_latest":"Le note di rilascio vengono mostrate solo quando si aggiorna all'ultima versione.","plugins.manage.notes_none":"Impossibile recuperare le note di rilascio, forse questa versione non ha una release su GitHub.","plugins.manage.online_updates":"Gli aggiornamenti in linea non sono supportati su Windows. Sar\xE0 necessario aggiornare manualmente Homebridge UI dopo aver fermato il servizio Homebridge.","plugins.manage.plugin_logs":"Log del plugin","plugins.manage.scoped.error":"Si \xE8 verificato un errore. Puoi scaricare i log qui sotto.","plugins.manage.scoped.info_1":"I plugin 'scoped' di Homebridge hanno nomi che iniziano con {{ prefix }}.","plugins.manage.scoped.info_2":"Per maggiori informazioni sui plugin scoped e perch\xE9 passare ad essi, vedi la pagina wiki {{ link }}.","plugins.manage.scoped.process":"Questo processo non influenzer\xE0 i tuoi accessori Homebridge/HomeKit. Non potrai annullare il processo una volta iniziato. Esso:","plugins.manage.scoped.switch":"Passa al plugin Scoped","plugins.manage.scoped.windows":'Gli aggiornamenti online non sono supportati su Windows. Dovrai installare il nuovo plugin e disinstallare il vecchio plugin manualmente. <span class="fw-bold">Non</span> dovresti riavviare Homebridge finch\xE9 entrambi i passaggi non sono completati.',"plugins.manage.scoped_message":"I plugin scoped migliorano l'affidabilit\xE0 a lungo termine e garantiscono una manutenzione coerente combinando la supervisione centralizzata del team di Homebridge con il coinvolgimento continuo del manutentore originale.","plugins.manage.scoped_subtitle":"Questo plugin \xE8 scoped e verificato.","plugins.manage.select_version":"Scegli la versione da installare","plugins.manage.support_donate":"{{ iconHeart }} Love this plugin? A small donation can help the developer keep improving it for everyone! {{ link }}","plugins.manage.support_github":"You can show your support by giving this plugin a {{ iconStar }} (or the release a {{ iconThumbsUp }}) on GitHub!","plugins.manage.support_kofi":"{{ iconCoffee }} Enjoying this plugin? Treat the developer a coffee to say thanks and help keep it maintained! {{ link }}","plugins.manage.uninstall":"Disinstalla","plugins.manage.uninstalled":"Disinstallato","plugins.manage.unverified_message":"I plugin Homebridge non verificati indicano che non sono stati sottoposti al processo di revisione da parte del team del progetto Homebridge. La mancanza di convalida non implica necessariamente inefficacia o problemi di sicurezza. Gli autori potrebbero aver scelto di non cercare la convalida per vari motivi.","plugins.manage.unverified_subtitle":"Questo plugin non \xE8 verificato.","plugins.manage.update":"Aggiorna","plugins.manage.updated":"Aggiornato","plugins.manage.verified_message":"I plugin Homebridge contrassegnati come verificati sono stati revisionati dal team del progetto Homebridge per garantire che soddisfino vari requisiti che incoraggiano le migliori pratiche e un'esperienza utente senza problemi.","plugins.manage.verified_subtitle":"Questo plugin \xE8 verificato.","plugins.placeholder_search_first":"Usa la barra di ricerca qui sopra per trovare il tuo primo plugin","plugins.placeholder_search_none":"Nessun risultato trovato","plugins.placeholder_search_plugin":"Cerca plugin da installare\u2026","plugins.settings.custom.download_dump_file":"Download Dump File","plugins.settings.custom.homebridge-gsh.label_account_linked":"Account collegato","plugins.settings.custom.homebridge-gsh.label_link_account":"Collega account","plugins.settings.custom.homebridge-gsh.message_about":"Il plugin Homebridge Google Smart Home permette di controllare gli accessori Homebridge da un altoparlante intelligente Google Home abilitato o dall'applicazione Google Home.","plugins.settings.custom.homebridge-gsh.message_account_link_required":"L'attivazione di questa funzione richiede l'accesso con un account Google or GitHub; assicurarsi di usare lo stesso account quanto si aggiunge l'azione Homebridge nell'applicazione Google Home.","plugins.settings.custom.homebridge-gsh.message_homebridge_restart_required":"Homebridge deve essere riavviato affinch\xE9 le modifiche abbiano effetto.","plugins.settings.deconz.dump_no_exist":"Il file dump di Homebridge deCONZ non esiste ancora.","plugins.settings.hue.dump_no_exist":"Il file dump di Homebridge Hue non esiste ancora.","plugins.settings.label_open_config_editor":"Apri l'editor della configurazione","plugins.settings.message_consult_documentation":"Per piacere consulta la documentazione del plugin per sapere come configurarlo correttamente.","plugins.settings.message_manual_config_required":"Questo plugin deve essere configurato manualmente usando l'editor della configurazione di Homebridge UI X.","plugins.settings.plugin_config_saved":"Configurazione dei plugin salvata","plugins.settings.restart_required":"Riavvia Homebridge per applicare le modifiche.","plugins.stats":"Statistiche plugin","plugins.stats_note":"I plugin non possono essere installati da questa pagina, questa \xE8 fornita solo per interesse.","plugins.status_installed":"Installato","plugins.support.list_1":"I plugin di Homebridge sono i mattoni di Homebridge, permettendoti di aggiungere il supporto per nuovi accessori e piattaforme. I plugin aggiungono il supporto per luci intelligenti, telecamere, TV, ecc., per marchi che non supportano nativamente HomeKit. Ad esempio, per portare i tuoi campanelli e telecamere Ring in HomeKit, puoi installare il plugin <code>homebridge-ring</code>.","plugins.support.list_2":"I plugin di Homebridge sono creati da contributori pubblici nella comunit\xE0 di Homebridge e non sono tipicamente associati ai manutentori di Homebridge, n\xE9 ai produttori degli accessori stessi. Se hai una domanda su un plugin specifico, dovresti farlo sapere allo sviluppatore del plugin tramite la pagina GitHub del plugin.","plugins.support.list_3":"Attualmente ci sono oltre 4.700 plugin disponibili per Homebridge, quindi dovresti essere in grado di trovare plugin adatti alle tue esigenze. Se sei uno sviluppatore Javascript/TypeScript (o vuoi cogliere l'occasione per imparare), puoi anche creare il tuo plugin e condividerlo con la comunit\xE0 di Homebridge. Dai un'occhiata alla sezione Supporto per alcuni link utili per iniziare.","plugins.support.list_4":"Alcuni plugin ti permettono di creare accessori 'virtuali/fittizi', che sono accessori che non hanno una controparte fisica. Questi possono essere usati per creare accessori virtuali in HomeKit, come interruttori virtuali, luci o sensori. Prova a cercare <code>dummy</code> o <code>virtual</code> nella barra di ricerca per trovare alcuni esempi.","plugins.toast_failed_to_load_plugin_schema":"Impossibile caricare lo schema di configurazione del plugin.","plugins.toast_failed_to_load_plugins":"Impossibile caricare i plugin","plugins.toast_failed_to_search_plugins":"Failed to search plugins","plugins.uninstall_remove_child_bridge":"Rimuovere il bridge figlio del plugin?","plugins.uninstall_remove_child_bridges":"Rimuovere {{ count }} bridge figli del plugin?","plugins.uninstall_remove_config_required":"Se si sta disinstallando definitivamente questo plugin, assicurarsi di rimuovere la configurazione di questo plugin da config.json prima di riavviare Homebridge.","plugins.uninstall_remove_confirmation":"Sei sicuro di vole disinstallare {{ pluginName }}?","plugins.uninstall_remove_plugin_config":"Rimuovere la configurazione del plugin?","plugins.uninstall_warn_1":"Quando si rimuove un bridge figlio, tutti gli accessori pubblicati da questo bridge verranno rimossi dalla cache di Homebridge.","plugins.uninstall_warn_2":"Gli accessori diventeranno obsoleti in HomeKit (mostrando nessuna risposta). Per rimuoverli, dovrai rimuovere manualmente questo bridge da HomeKit. Puoi farlo nell'app Casa dalla sezione Impostazioni abitazione.","reset.accessory_all.desc":"Rimuovi tutti gli accessori dalla cache.","reset.accessory_all.list_1":"Cliccando sul pulsante di rimozione qui sotto, Homebridge si riavvier\xE0 e tutti i tuoi accessori esistenti verranno rimossi da Homebridge e HomeKit.","reset.accessory_all.list_2":"Tutti i dati associati di HomeKit verranno rimossi, inclusi le associazioni alle stanze, le scene e le automazioni che questo accessorio utilizza.","reset.accessory_all.list_3":"Dopo il riavvio di Homebridge, i tuoi plugin aggiungeranno nuovamente gli accessori come se il plugin fosse installato per la prima volta.","reset.accessory_all.title":"Rimuovi tutti gli accessori","reset.accessory_ind.bridge":"Bridge","reset.accessory_ind.desc":"Rimuovi singoli accessori dalla cache.","reset.accessory_ind.done":"Rimozione degli accessori dalla cache completata, controlla il log per conferme e/o errori.","reset.accessory_ind.fail":"Impossibile rimuovere gli accessori dalla cache, controlla il log per gli errori.","reset.accessory_ind.list_1":"Alcuni plugin non puliscono correttamente dopo la rimozione. Se hai accessori obsoleti, puoi rimuoverli dalla cache. Questa funzione pu\xF2 essere utilizzata anche per resettare un accessorio esistente in HomeKit.","reset.accessory_ind.list_2":"Gli accessori verranno rimossi da Homebridge e HomeKit, insieme alle relative associazioni alle stanze, scene e automazioni.","reset.accessory_ind.list_3":"Dopo il riavvio di Homebridge, i tuoi plugin aggiungeranno nuovamente gli accessori rimossi come se il plugin fosse installato per la prima volta.","reset.accessory_ind.title":"Rimuovi singoli accessori","reset.accessory_ind.unknown":"Nome sconosciuto","reset.accessory_reset":"Ripristino accessorio Homebridge","reset.action_is_irreversible":"Questa azione \xE8 irreversibile. Leggi attentamente prima di procedere.","reset.bridge_accessories.desc":"Rimuovi dalla cache tutti gli accessori pubblicati da un bridge figlio.","reset.bridge_accessories.empty":"Non hai bridge da cui rimuovere accessori.","reset.bridge_accessories.list_1":"Questa funzione pu\xF2 essere utilizzata per resettare gli accessori esistenti di un plugin in HomeKit. Verranno rimossi da Homebridge e HomeKit, e poi riaggiunti dal plugin come nuovi accessori.","reset.bridge_accessories.list_2":"I dettagli di abbinamento e lo stato del bridge figlio rimarranno invariati.","reset.bridge_accessories.title":"Rimuovi accessori bridge","reset.bridge_all.desc":"Resetta tutti i bridge rimuovendoli dalla cache. Questo include il bridge principale di Homebridge, i bridge figli e i bridge per accessori esterni.","reset.bridge_all.list_1":"Questo reimposter\xE0 il bridge Homebridge, tutti i bridge figli e i bridge per accessori esterni da HomeKit.","reset.bridge_all.list_2":"Nota che i tuoi accessori continueranno a mostrare 'nessuna risposta' in HomeKit, finch\xE9 i bridge non verranno rimossi manualmente da HomeKit. Puoi farlo nell'app Casa, accedendo a Impostazioni abitazione -> Hub e bridge -> {Bridge} -> Rimuovi bridge dall'abitazione.","reset.bridge_all.list_3":"Tutti i tuoi accessori, scene e automazioni Homebridge in HomeKit dovranno essere riconfigurati dopo la disassociazione.","reset.bridge_all.list_4":"Il pin per abbinare il tuo bridge Homebridge a HomeKit verr\xE0 cambiato. Puoi vedere i nuovi valori nella tua configurazione di Homebridge dopo la disassociazione.","reset.bridge_all.title":"Resetta tutti i bridge","reset.bridge_ind.desc":"Resetta un singolo bridge rimuovendolo dalla cache. Questo pu\xF2 essere un bridge figlio o un bridge per un accessorio esterno come una telecamera o una TV.","reset.bridge_ind.desc_child_active":"Homebridge ha rilevato che questi bridge figli sono in uso. Una volta rimossi, i loro accessori verranno rimossi dalla cache di Homebridge. Se abbinati a HomeKit, gli accessori del bridge mostreranno 'Nessuna risposta', e il bridge dovr\xE0 essere rimosso tramite l'app Casa. Le informazioni di abbinamento del bridge figlio verranno cambiate. Una volta riavviato Homebridge, il plugin creer\xE0 il nuovo bridge figlio e gli accessori. Il nuovo bridge dovr\xE0 essere riabbinato a HomeKit. Puoi visualizzare le nuove informazioni di abbinamento dalla pagina delle impostazioni del bridge del plugin corrispondente.","reset.bridge_ind.desc_child_stale":"Homebridge ha rilevato che questi bridge non sono in uso, ma ricontrolla prima di eliminare. Potrebbero essere residui di plugin precedentemente disinstallati. Se abbinati a HomeKit, gli accessori mostreranno 'Nessuna risposta', e il bridge dovr\xE0 essere rimosso tramite l'app Casa.","reset.bridge_ind.desc_non_child":"Homebridge ha rilevato che questi bridge sono in uso. Puoi rimuoverli dalla cache, ma probabilmente verranno riaggiunti dal plugin al riavvio di Homebridge. Le informazioni di abbinamento rimarranno invariate.","reset.bridge_ind.done":"Reset dei bridge completata, controlla il log per conferme e/o errori.","reset.bridge_ind.fail":"Impossibile resettare i bridge, controlla il log per gli errori.","reset.bridge_ind.head_child_active":"Bridge figli attivi","reset.bridge_ind.head_child_stale":"Bridge figli obsoleti","reset.bridge_ind.head_non_child":"Bridge non figli","reset.bridge_ind.title":"Resetta singoli bridge","reset.bridges.desc":"Se hai problemi ad abbinare Homebridge, un accessorio esterno o un bridge figlio a HomeKit, potresti dover rimuovere l'abbinamento da HomeKit per ricominciare.","reset.bridges.empty":"Non hai bridge da disabbinare da HomeKit.","reset.bridges.title":"Bridge","reset.clear_cache_single.list_3":"Quando si rimuove un accessorio dalla cache, tutti i suoi dati associati di HomeKit verranno rimossi. Questo include qualsiasi scena e automazione associata che utilizza questo accessorio.","reset.delete_success":"Riavvio Homebridge e cancellazione della cache degli accessori in corso.","reset.error_message":"Impossibile caricare la cache degli accessori. Potresti non avere accessori nella cache.","reset.failed_to_reset":"Impossibile ripristinare Homebridge. Controlla i log.","reset.force_restart_hb_help_text":"Usa questa azione per forzare il servizio hb-service a eseguire un riavvio completo.","reset.no_accessories":"Non hai accessori nella cache da rimuovere.","restart.child_bridge_list":"Riavvia questi bridge figli affinch\xE9 le modifiche abbiano effetto:","restart.child_bridges":"Riavvia i bridge figli del plugin affinch\xE9 le modifiche abbiano effetto.","restart.label_restart_command_executed":"Riavvio richiesto","restart.please_wait_while_server_restarts":"Attendi, questa pagina verr\xE0 reindirizzata automaticamente quando il sistema sar\xE0 di nuovo online.","restart.server_is_taking_long_time_to_restart":"Il riavvio del sistema richiede molto tempo. Potrebbe essere necessario riavviare manualmente Homebridge.","restart.service_ready":"Riavvio server Homebridge","restart.title_restart":"Riavvio Homebridge","restart.toast_server_restart_error":"Si \xE8 verificato un errore durante l'invio del comando di riavvio al sistema","restart.toast_server_restart_timeout":"Il sistema impiega molto tempo per tornare online","restart.toast_server_restarted":"Sistema riavviato","restart.ui_online":"Riavvio Homebridge UI","rpi.throttled.currently_message":"Questo Raspberry Pi segnala che la sua tensione di alimentazione \xE8 bassa; verificare che sia collegato a un'alimentazione adeguata. Una tensione di alimentazione bassa pu\xF2 causare l'instabilit\xE0 del sistema e la corruzione della scheda SD.","rpi.throttled.previously_message":"Questo Raspberry Pi ha segnalato un calo della tensione di alimentazione dall'ultimo riavvio; verificare che sia collegato a un'alimentazione adeguata.","rpi.throttled.undervoltage_title":"Calo di Tensione","settings.accessory.debug":"Modalit\xE0 Debug accessorio","settings.accessory.debug_desc":"Se abilitato, l'interfaccia utente di Homebridge registrer\xE0 messaggi di livello debug nella console.","settings.cache.desc":"Homebridge mantiene gli accessori nella cache in modo che non vengano rimossi e riaggiunti a HomeKit ogni volta che Homebridge si riavvia. A volte questa cache pu\xF2 perdere la sincronizzazione con gli accessori reali in Homebridge.","settings.changes.saved":"Le tue modifiche sono state salvate e richiedono un riavvio per avere effetto.","settings.datetime.incorrect":"La data e l'ora sul tuo server Homebridge sembrano non essere corrette. Questo potrebbe causare problemi inaspettati. Clicca qui per maggiori informazioni.","settings.display.blue":"Blu","settings.display.bluegrey":"Blu Grigio","settings.display.brown":"Marrone","settings.display.cyan":"Ciano","settings.display.dark":"Scuro","settings.display.deep_purple":"Viola profondo","settings.display.green":"Verde","settings.display.grey":"Grigio","settings.display.indigo":"Indaco","settings.display.lang":"Lingua","settings.display.light":"Chiaro","settings.display.lighting_mode":"Modalit\xE0 illuminazione","settings.display.menu_default":"Predefinito","settings.display.menu_freeze":"Mantieni chiuso (su desktop)","settings.display.menu_mode":"Modalit\xE0 menu","settings.display.orange":"Arancione","settings.display.pink":"Rosa","settings.display.purple":"Viola","settings.display.red":"Rosso","settings.display.show_betas":"Preferisci versioni beta","settings.display.teal":"Verde acqua","settings.display.temp_units":"Unit\xE0 temperatura","settings.display.temp_units.c":"Celsius (\xB0C)","settings.display.temp_units.f":"Fahrenheit (\xB0F)","settings.display.theme":"Tema","settings.display.wallpaper":"Sfondo","settings.display.wallpaper_intro":"Carica uno sfondo per la tua interfaccia Homebridge. Questo viene attualmente mostrato nella schermata di login.","settings.display.wallpaper_rule":"Puoi scegliere un file immagine fino a {{ maxFileSizeText }}.","settings.display.wallpaper_rule2":"Dovrai cliccare su Salva per caricare lo sfondo nella tua directory di archiviazione di Homebridge.","settings.display.wallpaper_success":"Lo sfondo \xE8 stato aggiornato con successo.","settings.general.title_display":"Display","settings.general.title_general":"Generale","settings.linux.restart":"Comando di riavvio","settings.linux.restart_desc":"Se non viene impostato alcun comando di riavvio, il processo terminer\xE0 con un codice di uscita non zero.","settings.linux.shutdown":"Comando di arresto","settings.linux.shutdown_desc":"Se non viene impostato alcun comando di arresto, il processo terminer\xE0 con un codice di uscita non zero.","settings.linux.temp":"Percorso file temperatura","settings.linux.temp_desc":"Se stai eseguendo Homebridge su un Raspberry Pi, puoi inserire qui il percorso del file della temperatura del sistema operativo. Questo visualizzer\xE0 la temperatura attuale sulla pagina di stato dell'interfaccia utente.","settings.matter.desc":"Enables Matter accessories on the main bridge. If only using Matter with child bridges, this setting does not need to be enabled - child bridges have independent Matter settings in their plugin bridge settings.","settings.matter.enabled_desc":"Whether to start a Matter instance and allow plugins to expose Matter accessories.","settings.matter.port":"Port","settings.matter.port_desc":"This must be between 1025 and 65533, and unique to any other configured port.","settings.matter.title":"Matter Settings","settings.mdns_advertiser":"Annunciatore mDNS","settings.mdns_advertiser_exp":"sperimentale","settings.mdns_advertiser_help":"Se stai avendo problemi a collegarti a Homebridge, prova a utilizzare un altro annunciatore mDNS.","settings.mdns_advertiser_not_connected":"Non connesso","settings.mdns_advertiser_rec":"raccomandato","settings.name":"Nome Homebridge","settings.network.hb_package":"Percorso modulo Homebridge","settings.network.hb_package_desc":"Se hai pi\xF9 versioni di Homebridge installate, puoi specificare qui il percorso della versione che vuoi utilizzare.","settings.network.host":"Indirizzo IP Host","settings.network.host_desc":"L'indirizzo IP host su cui ascoltare. Nella maggior parte dei casi sar\xE0 <code>::</code> o <code>0.0.0.0</code>.","settings.network.mdns_advertise":"Annuncia via mDNS","settings.network.mdns_advertise_help":"Abilita gli annunci mDNS (usando Bonjour) per la tua interfaccia Homebridge, rendendola scopribile come servizio HTTP sulla tua rete locale.","settings.network.message_network_interface":"Se nessuna interfaccia di rete \xE8 selezionata, Homebridge sceglier\xE0 automaticamente su quali annunciarsi.","settings.network.port_end":"Porta finale","settings.network.port_end_desc":"Controlla la fine dell'intervallo di porte su cui dovrebbero essere eseguiti gli accessori separati (come telecamere o televisioni). Questo deve essere tra 1025 e 65533, e maggiore della porta iniziale qui sopra.","settings.network.port_hb":"Porta Homebridge","settings.network.port_hb_desc":"Il numero di porta su cui eseguire il bridge Homebridge. Questo deve essere tra 1025 e 65533, e non dovrebbe essere lo stesso della porta dell'interfaccia utente di Homebridge.","settings.network.port_start":"Porta iniziale","settings.network.port_start_desc":"Controlla l'inizio dell'intervallo di porte su cui dovrebbero essere eseguiti gli accessori separati (come telecamere o televisioni). Questo deve essere tra 1025 e 65533, e minore della porta finale qui sotto.","settings.network.port_ui":"Porta UI","settings.network.port_ui_desc":"Il numero di porta su cui eseguire l'interfaccia utente di Homebridge.","settings.network.proxy":"Hostname Reverse Proxy","settings.network.proxy_desc":"Quando si esegue dietro un reverse proxy potresti dover inserire l'hostname che usi per accedere all'interfaccia utente.","settings.network.title_network":"Rete","settings.network.title_network_interfaces":"Interfacce di rete","settings.network.title_security":"Sicurezza","settings.network.title_terminal":"Log e Terminale","settings.network.webroot":"Webroot Path","settings.network.webroot_desc":"This can be configured if you want to access the Homebridge UI under a specific URL path.","settings.reset_bridge.error":"Impossibile resettare il bridge.","settings.security.auth":"Autenticazione","settings.security.auth_desc":"Se abilitare l'autenticazione per l'interfaccia utente di Homebridge con nome utente e password.","settings.security.cert":"Percorso certificato","settings.security.https":"Abilita HTTPS","settings.security.https_configure":"Configure HTTPS Settings","settings.security.https_desc":"Enable HTTPS using an auto-generated self-signed certificate or by providing your own certificate files.","settings.security.https_enable":"Enable HTTPS","settings.security.https_enable_desc":"Secure your Homebridge web interface with HTTPS / SSL encryption.","settings.security.https_raspbian":"HTTPS \xE8 gi\xE0 abilitato di default quando si esegue l'immagine Homebridge Raspbian {{ link }}.","settings.security.key":"Percorso chiave privata","settings.security.pass":"Passphrase certificato PKCS#12","settings.security.pass_optional":"Optional - only required if your certificate is password protected","settings.security.pfx":"Percorso certificato PKCS#12","settings.security.selfsigned_hostnames":"Certificate Hostnames","settings.security.selfsigned_hostnames_desc":"Comma-separated list of hostnames or IP addresses to include in the certificate (e.g., localhost, 127.0.0.1, homebridge.local, 192.168.1.100)","settings.security.ssl_mode_keycert":"Upload Certificate Files","settings.security.ssl_mode_keycert_desc":"Upload your own private key and certificate files.","settings.security.ssl_mode_off":"Disable HTTPS","settings.security.ssl_mode_off_desc":"Turn off SSL encryption.","settings.security.ssl_mode_pfx":"Upload PFX Certificate","settings.security.ssl_mode_pfx_desc":"Upload a PKCS#12 (.pfx or .p12) certificate file.","settings.security.ssl_mode_selfsigned":"Self-Signed Certificate","settings.security.ssl_mode_selfsigned_desc":"Automatically generate a self-signed certificate.","settings.security.ui_control":"Liste controllo accessori","settings.security.ui_control_desc":"Definisci quali bridge e accessori collegati possono essere controllati o bloccati dall'interfaccia utente di Homebridge.","settings.security.ui_control_desc_2":"Permetti all'interfaccia utente di controllare gli accessori su un bridge attivando l'interruttore qui sotto.","settings.service.debug_tooltip":"Alcuni plugin richiedono di impostare la variabile d'ambiente DEBUG {{ link }} per abilitare i log di livello debug.","settings.service.node_tooltip":"Opzioni runtime Node.js per questo processo. Questo dovrebbe essere lasciato vuoto a meno che tu non sappia cosa stai facendo.","settings.startup.debug":"Modalit\xE0 Debug Homebridge","settings.startup.debug_desc_v1":"Abilita questo se hai bisogno che Homebridge produca log pi\xF9 dettagliati. Questa impostazione si applica al bridge principale di Homebridge cos\xEC come a tutti i bridge figli. Alcuni plugin potrebbero anche aderire a questa impostazione e produrre log pi\xF9 dettagliati.","settings.startup.debug_desc_v2":"Abilita questo se hai bisogno che Homebridge produca log pi\xF9 dettagliati. Questa impostazione si applica al bridge principale di Homebridge. L'impostazione per i bridge figli pu\xF2 essere trovata nella configurazione del bridge figlio dalla pagina dei plugin. Alcuni plugin potrebbero anche aderire a questa impostazione e produrre log pi\xF9 dettagliati.","settings.startup.insecure":"Abilita controllo accessori UI","settings.startup.insecure_desc":"Per controllare i tuoi accessori tramite l'interfaccia utente di Homebridge devi eseguire Homebridge in modalit\xE0 non sicura (insecure mode).","settings.startup.keep_accessories":"Mantieni accessori dei plugin disinstallati","settings.startup.keep_accessories_desc":"Se abilitato, gli accessori dei plugin di piattaforma rimarranno nella cache anche dopo che il plugin \xE8 stato disinstallato. Questo pu\xF2 essere utile se pianifichi di reinstallare il plugin in seguito.","settings.startup.metrics":"Abilita monitoraggio metriche server","settings.startup.metrics_desc":"Quando abilitato, l'interfaccia utente di Homebridge raccoglier\xE0 e mostrer\xE0 le statistiche di CPU e memoria sulla pagina di stato.","settings.startup.scheduled_restart":"Cron riavvio programmato","settings.startup.scheduled_restart_desc":"Pianifica riavvii automatici relativi al tuo fuso orario usando un'espressione cron. Lascia vuoto per disabilitare. Crea un'espressione cron {{ link }}.","settings.startup.scheduled_restart_desc_2":"Puoi applicare questa impostazione per bridge figlio dalla configurazione bridge del plugin.","settings.startup.session":"Timeout sessione","settings.startup.session_days":"giorni","settings.startup.session_desc":"Il numero di secondi prima che un utente venga disconnesso dall'interfaccia utente. Predefinito a 8 ore.","settings.startup.session_hours":"ore","settings.startup.session_inactivity_based":"Aggiornamento sessione basato su inattivit\xE0","settings.startup.session_inactivity_based_desc":"Quando abilitato, la sessione si aggiorner\xE0 automaticamente durante la navigazione per prevenire il logout durante l'uso attivo.","settings.startup.session_minutes":"minuti","settings.terminal.buffer_size":"Dimensione buffer caratteri terminale","settings.terminal.buffer_size_help":"Quantit\xE0 di output del terminale da preservare per le sessioni persistenti. Valori pi\xF9 alti usano pi\xF9 memoria.","settings.terminal.log_max":"Dimensione max log","settings.terminal.log_max_desc":"La dimensione massima del log (bytes). Imposta a -1 per disabilitare il troncamento del log.","settings.terminal.log_truncate":"Dimensione troncamento log","settings.terminal.log_truncate_desc":"La dimensione (bytes) a cui troncare il log una volta che supera la dimensione massima specificata sopra.","settings.terminal.persistence":"Persistenza sessione terminale","settings.terminal.persistence_confirm_message":"Disabilitare la Persistenza della Sessione del Terminale terminer\xE0 la tua sessione attuale del terminale.","settings.terminal.persistence_confirm_title":"Disabilita persistenza sessione terminale","settings.terminal.persistence_help":"Quando abilitato, le sessioni del terminale persisteranno quando si naviga altrove e potranno essere riprese tornando alla pagina del terminale (o widget pagina di stato). Le sessioni del terminale sono condivise tra gli utenti amministratori di Homebridge UI.","settings.terminal.warning":"Nascondi avviso terminazione terminale","settings.terminal.warning_help":"Quando abilitato, la finestra di avviso non verr\xE0 mostrata prima di terminare le sessioni del terminale non persistenti.","settings.title_startup_options":"Opzioni di avvio","settings.unpair_bridge.load_error":"Impossibile caricare i bridge abbinati.","settings.warning_pwa":"Questa impostazione non pu\xF2 essere cambiata quando si accede all'interfaccia utente da una PWA: utilizza un browser normale.","settings.warning_webroot":"Homebridge does not have write access to the served <code>index.html</code> file. To set up a webroot, please fix this issue and restart the Homebridge service.","setup.button_get_started":"Inizia","setup.create_account":"Crea un account utente","setup.intro":"Se stai configurando per la prima volta, o se hai solo bisogno di resettare la password per la tua configurazione esistente di Homebridge, allora scegli <strong>Inizia</strong>.","setup.welcome_to_homebridge":"Benvenuto in Homebridge",setup_wizard_complete:"Ripristino completato!",setup_wizard_complete_title:"Congratulazioni!",setup_wizard_completed:"La procedura di configurazione \xE8 stata completata ed \xE8 ora possibile iniziare a utilizzare Homebridge.",setup_wizard_create_info:"Una volta che Homebridge \xE8 configurato, puoi impostare la 2FA sul tuo account, o disabilitare del tutto la necessit\xE0 di autenticazione.",setup_wizard_page_title:"Configura Homebridge",setup_wizard_restore:"Ripristina da Backup",setup_wizard_restoring:"Ripristino backup in corso...",setup_wizard_starting:"Avvio Homebridge...","status.code_scan":"Scansiona per aggiungere a HomeKit","status.cpu.load":"Carico della CPU","status.cpu.temp":"Temperatura","status.cpu.title_cpu":"CPU","status.credits.plugins_thanks":"I plugin di Homebridge sono creati da fantastici sviluppatori nella comunit\xE0 di Homebridge.","status.credits.supporters":"Sostenitori","status.credits.title":"Crediti","status.credits.translations":"Traduzioni","status.credits.translations_thanks":"Le traduzioni di Homebridge UI sono fornite dalla comunit\xE0, con un ringraziamento speciale a:","status.homebridge.checking":"Verifico aggiornamenti\u2026","status.homebridge.up_to_date":"Aggiornato","status.memory.label_available":"Libera","status.memory.label_total":"Totale","status.memory.title_memory":"Memoria","status.network.received_per_second":"Ricevuti","status.network.sent_per_second":"Inviati","status.network.title_network":"Attivit\xE0 di rete","status.readiness.node_no":"La tua versione di Node.js non \xE8 compatibile con {{ app }}.","status.readiness.node_yes":"La tua versione di Node.js \xE8 compatibile con {{ app }}.","status.readiness.title":"Prontezza {{ app }}","status.services.label_not_enabled":"Not Enabled","status.services.label_not_running":"Non in esecuzione","status.services.label_running":"In esecuzione","status.services.updates":"Informazioni aggiornamento","status.uptime.title_uptime":"Avviato da","status.widget.accessories.choose_accessories":"Scegli gli accessori da mostrare in questo widget dalla scheda Accessori.","status.widget.account_1":"Il layout del widget \xE8 condiviso tra tutti gli utenti di Homebridge UI.","status.widget.account_2":"Gli utenti amministratori possono modificare il layout, mentre gli utenti non amministratori non possono apportare modifiche.","status.widget.add.label_pairing_code":"Codice di abbinamento","status.widget.add.matter_pairing_code":"Matter Pairing Code","status.widget.bridge.restart_error":"Impossibile riavviare il bridge figlio.","status.widget.clock":"Orologio","status.widget.clock_dateformat":"Formato della data","status.widget.clock_timeformat":"Formato dell'orario","status.widget.expand_docker":"Espandi informazioni container Docker","status.widget.font_size":"Dimensione dei caratteri","status.widget.font_weight":"Stile dei caratteri","status.widget.hide_node_info":"Nascondi aggiornamenti Node.js","status.widget.hide_npm":"Mostra versione npm","status.widget.hide_on_mobile":"Nascondi nella vista compatta (schermi dei cellulari)","status.widget.homebridge_logs":"Log di Homebridge","status.widget.info":"Informazioni di sistema","status.widget.info.arch":"Arch.","status.widget.info.config_path":"Percorso configurazione","status.widget.info.docker":"Docker","status.widget.info.docker_update_message":"L'aggiornamento del container Docker richiede di scaricare manualmente l'ultima immagine e riavviare il container. Homebridge non esegue questa operazione automaticamente. Fai riferimento alla documentazione della tua immagine Docker per le istruzioni di aggiornamento.","status.widget.info.docker_update_title":"Aggiornamento container Docker","status.widget.info.hostname":"Nome host","status.widget.info.ipv4":"IPv4","status.widget.info.ipv6":"IPv6","status.widget.info.no":"No","status.widget.info.node_major":"Versioni principali Node.js","status.widget.info.node_next_no":"La tua architettura attuale ({{ architecture }}) \xE8 a 32 bit, che non \xE8 supportata. Dovrai migrare a un sistema a 64 bit. Per favore usa Node.js v22, che supporteremo fino ad Aprile 2027.","status.widget.info.node_next_yes":"La tua architettura attuale ({{ architecture }}) supporta Node.js v24, quindi puoi aggiornare quando sei pronto.","status.widget.info.node_unsupp":"Non supportato","status.widget.info.node_unsupp_message":"Stai eseguendo una versione di Node.js che non \xE8 ufficialmente supportata da Homebridge. Dovresti considerare di passare a una versione supportata.","status.widget.info.node_update_message":"Homebridge richiede che Node.js sia installato sul tuo sistema per funzionare. Di tanto in tanto, dovrai aggiornare il runtime Node.js per abilitare il supporto per nuove funzionalit\xE0. Homebridge (e i plugin verificati) supportano tutte le attuali versioni Active e Maintenance LTS di Node.js.","status.widget.info.node_update_message_2":"Per gli utenti Docker/Synology, la versione di Node.js \xE8 gestita dall'immagine Docker o dal pacchetto Synology. Puoi nascondere le informazioni sull'aggiornamento di Node.js usando le impostazioni del widget.","status.widget.info.nodejs_path":"Percorso Node.js","status.widget.info.os":"Sistema operativo","status.widget.info.plugin_path":"Percorso plugin","status.widget.info.service_user":"Utente","status.widget.info.storage_path":"Percorso salvataggio","status.widget.info.synology_package":"Pacchetto Synology","status.widget.info.timezone":"Fuso orario","status.widget.info.yes":"S\xEC","status.widget.network.history_items":"Elementi cronologia","status.widget.network.items":"elementi","status.widget.network.network_interface":"Interfaccia di rete","status.widget.network.none_selected":"Utilizzando l'impostazione predefinita","status.widget.network.refresh_interval":"Intervallo aggiornamento","status.widget.network.seconds":"secondi","status.widget.qr_paired":"Abbinato","status.widget.qr_unpaired":"No abbinato","status.widget.reset":"Reset your status page layout to the default widget arrangement. This will overwrite your current layout.","status.widget.show_hide":"Mostra/Nascondi Widget","status.widget.title_manage_widget":"Gestisci widget","status.widget.update_node_no":"{{ pluginName }} non \xE8 compatibile con Node {{ nodeVersion }}.","status.widget.update_node_unknown":"Lo sviluppatore di {{ pluginName }} non ha specificato la compatibilit\xE0 con la versione di Node.","status.widget.update_node_yes":"{{ pluginName }} \xE8 compatibile con Node {{ nodeVersion }}.","status.widget.uptime.label_process":"Processo","status.widget.uptime.label_server":"Sistema","status.widget.weather.label_config_required_help":"Seleziona la tua citt\xE0 nelle impostazioni del widget.","status.widget.weather.label_search_for_your_city":"Cerca la tua citt\xE0:","status.widget.weather.title_weather":"Meteo","support.dev.api":"API Homebridge","support.dev.api_hap":"API HAP-NodeJS","support.dev.api_hap_sub":"HAP-NodeJS \xE8 un'implementazione del server accessori HomeKit come specificato nel protocollo accessori HomeKit (HAP), che \xE8 definito da Apple come parte del framework HomeKit.","support.dev.api_sub":"Homebridge \xE8 un server Node.js leggero che puoi eseguire sulla tua rete domestica per emulare il protocollo accessori HomeKit (HAP).","support.dev.item_swagger":"Documentazione Swagger","support.dev.item_swagger_sub":"L'API REST di Homebridge ti permette di interagire con il tuo server Homebridge usando richieste HTTP.","support.dev.template":"Repo Template Plugin","support.dev.template_sub":"Un template per plugin Homebridge che pu\xF2 essere usato come base per aiutarti a iniziare a sviluppare il tuo plugin.","support.dev.title":"Sviluppatori","support.dev.verified":"Verificato da Homebridge","support.dev.verified_sub":"Il programma Verified By Homebridge permette agli sviluppatori di plugin di far revisionare e approvare i propri plugin dal team del progetto Homebridge.","support.links.discord":"Server Discord","support.links.discord_sub":"Unisciti al server di chat Discord di Homebridge per chattare con altri utenti e sviluppatori.","support.links.documentation":"Documentazione","support.links.documentation_sub":"La documentazione di Homebridge fornisce una ricchezza di informazioni su come iniziare con Homebridge e la risoluzione dei problemi comuni.","support.links.issue":"Segnala un problema","support.links.issue_sub":"Se stai riscontrando un problema con Homebridge, per favore apri una nuova issue su GitHub. Questo non dovrebbe essere usato per problemi con specifici plugin.","support.links.reddit":"Community Reddit","support.links.reddit_sub":"Il subreddit di Homebridge \xE8 un ottimo posto per condividere la tua configurazione di Homebridge e chiedere aiuto.","support.links.title":"Link utili","support.title":"Supporto","toast.no_auth":"Solo gli amministratori possono accedere alla pagina richiesta.","toast.title_error":"Errore","toast.title_success":"Completato","toast.title_warning":"Attenzione","users.button_add_user":"Aggiungi utente","users.label_admin_user":"Utente amministratore?","users.label_confirm_password":"Conferma password","users.label_full_name":"Nome completo","users.label_new_password":"Nuova password","users.label_password":"Password","users.label_username":"Utente","users.setup_2fa":"Configura l'autenticazione a 2 fattori","users.setup_2fa_activate_error":"Si \xE8 verificato un errore attivando la 2FA","users.setup_2fa_cannot_setup_2fa":"Impossibile configurare l'autenticazione a 2 fattori","users.setup_2fa_disable":"Disattiva l'autenticazione a 2 fattori","users.setup_2fa_disable_current_password":"Inserisci la tua password per disattivare l'autenticazione a 2 fattori:","users.setup_2fa_enable":"Attiva l'autenticazione a 2 fattori","users.setup_2fa_enable_error":"Si \xE8 verificato un errore configurando la 2FA","users.setup_2fa_enter_code":"Inserisci il codice dalla tua app di autenticazione:","users.setup_2fa_scan_qr_code":"Acquisisci questo codice QR con la tua app di autenticazione:","users.setup_2fa_scan_qr_manual":"Se non puoi scansionare il codice QR, puoi inserire la seguente chiave segreta manualmente:","users.setup_2fa_server_time_out":"L'orologio del tuo server \xE8 sbagliato di {{ timeDiffError }} ms. L'errore massimo ammesso \xE8 +/-5000 ms.","users.setup_2fa_warning":"Per il suo corretto funzionamento l'autenticazione a 2 fattori richiede che il tuo server Homebridge abbia un orario molto preciso. Se il tuo server non pu\xF2 mantenere preciso il suo orologio l'autenticazione a 2 fattori non dovrebbe essere attivata, pena il rischio di rimanere chiusi fuori dall'interfaccia di Homebridge.","users.support.acc_1":"Ci sono due tipi di utenti che possono accedere all'interfaccia utente di Homebridge: amministratori e utenti non amministratori. Gli amministratori possono accedere e controllare tutto ci\xF2 che \xE8 disponibile nell'interfaccia. Gli utenti non amministratori hanno una visualizzazione di sola lettura delle seguenti pagine:","users.support.acc_2":"La 2FA pu\xF2 essere configurata solo sugli account amministratore, e devono farlo tramite la pagina utenti accedendo come se stessi.","users.support.control":"pu\xF2 essere controllato","users.title_add_user":"Aggiungi utente","users.title_edit_user":"Modifica utente","users.title_users":"Utenti"}});export{o as a};