@fastybird/smart-panel-admin 1.1.0-alpha.23 → 1.1.0-alpha.24

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 (30) hide show
  1. package/dist/assets/{components-C6FJiE03.js → components-B3dt4nk8.js} +1 -1
  2. package/dist/assets/{components-CdkL0Ewn.js → components-Bbveri_5.js} +1 -1
  3. package/dist/assets/{components-B3yYDfC4.js → components-D8R4QAAp.js} +1 -1
  4. package/dist/assets/{devices-IlaQG2LV.js → devices-Dnek0vw6.js} +2 -2
  5. package/dist/assets/{index-BVREq2nd.js → index-f7jPostC.js} +4 -4
  6. package/dist/assets/{system-rlhR7_nd.js → system-D7xRaFCY.js} +2 -2
  7. package/dist/assets/{view-channel-CSktVtts.js → view-channel-C__G2w5c.js} +1 -1
  8. package/dist/assets/{view-channel-add-BWb4ppJf.js → view-channel-add-qkJOyzjo.js} +1 -1
  9. package/dist/assets/{view-channel-edit-D159uk9-.js → view-channel-edit-BbJVMFcx.js} +1 -1
  10. package/dist/assets/{view-channel-property-add-DOybYVh0.js → view-channel-property-add-B5FzmyG8.js} +1 -1
  11. package/dist/assets/{view-channel-property-edit-CFc2Vnzv.js → view-channel-property-edit-u8L_g5sR.js} +1 -1
  12. package/dist/assets/{view-channels-AS3knRld.js → view-channels-DDf57QKp.js} +1 -1
  13. package/dist/assets/{view-device-DkwhMqXA.js → view-device-DY59nE9X.js} +1 -1
  14. package/dist/assets/{view-device-add-BwvKXeNg.js → view-device-add-ConY6A3O.js} +1 -1
  15. package/dist/assets/{view-device-control-ByIYrYt9.js → view-device-control-pOn2Kk1U.js} +1 -1
  16. package/dist/assets/{view-device-edit-BJ8fxgI9.js → view-device-edit-DlTT1pdp.js} +1 -1
  17. package/dist/assets/{view-devices-BHXq9zZL.js → view-devices-DmY7N3yg.js} +1 -1
  18. package/dist/assets/{view-devices-wizard-CQXTWVTC.js → view-devices-wizard-CpBPvjQG.js} +1 -1
  19. package/dist/assets/{view-extension-detail-D1jXnUYs.js → view-extension-detail-TRvrjSCb.js} +1 -1
  20. package/dist/assets/{view-extensions-Cy9Re3EP.js → view-extensions-C67XXb4X.js} +1 -1
  21. package/dist/assets/{view-simulator-device-wizard-CWSyc6WX.js → view-simulator-device-wizard-Bvj_uV87.js} +1 -1
  22. package/dist/assets/{view-stats-BovDkYMk.js → view-stats-C-RhbOOT.js} +1 -1
  23. package/dist/assets/{view-system-backups-Ce8rZ12S.js → view-system-backups-Dn7WIH0p.js} +1 -1
  24. package/dist/assets/{view-system-info-BJOtF-OQ.js → view-system-info-BecUpWQE.js} +1 -1
  25. package/dist/assets/{view-system-log-detail-DkpeB9WW.js → view-system-log-detail-B5VUAaD0.js} +1 -1
  26. package/dist/assets/{view-system-logs-D6HZdsbU.js → view-system-logs-C3SdRx0C.js} +1 -1
  27. package/dist/assets/{view-virtual-device-wizard-B5EXPwyA.js → view-virtual-device-wizard-DTlLsrHz.js} +1 -1
  28. package/dist/assets/{weather-Dakg0o-Y.js → weather-DCUJZaiX.js} +1 -1
  29. package/dist/index.html +6 -6
  30. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/view-devices-BHXq9zZL.js","assets/rolldown-runtime-QTnfLwEv.js","assets/icon-with-child-CgZMNB3F.js","assets/icon-with-child-1Kb-D21P.css","assets/vue-meta.esm-browser.min-C5z7o_np.js","assets/common-D4Z2wgrj.js","assets/common-BI15rKA4.css","assets/card-C50YgvLJ.js","assets/dialog-4clb5GeY.js","assets/use-dialog-Dy1ldJel.js","assets/drawer-Dnlv6Zc7.js","assets/components-C6FJiE03.js","assets/table-CeNNpGH7.js","assets/_baseClone-BRvt9rE2.js","assets/checkbox-CtqO8Xm5.js","assets/omit-Dl8Tg7dR.js","assets/form-Wa6uIXea.js","assets/skeleton-DkyCzTs7.js","assets/alert-I-oSc4A8.js","assets/input-number-Cqu-p2BC.js","assets/select-CTZp3DyT.js","assets/clamp-_tCsf9IO.js","assets/radio-DvF3ArlX.js","assets/collapse-hdC45R5w.js","assets/link-mE1gaRBg.js","assets/pagination-BFOA9Lqt.js","assets/components-CdkL0Ewn.js","assets/descriptions-BHa0Pjk7.js","assets/col-CQn4VXnk.js","assets/tabs-CXWSFwGj.js","assets/use-ordered-children-DEKYVxDi.js","assets/directive-D42ORGRu.js","assets/config-DAgVgX46.js","assets/useModules-C_VhvJHC.js","assets/dist-DJgPCOr0.js","assets/config.constants-17QBQ_kF.js","assets/usePlugins-CLZiBdYY.js","assets/usePlugin-CQedVYWO.js","assets/useConfigModule-CJHOZRLY.js","assets/useModule-BzC-HPHF.js","assets/useNumberFormat-BR5R6xq8.js","assets/auth.constants-BM6DNCoE.js","assets/system.constants-BvSIFqdm.js","assets/composables-Cpk78oG1.js","assets/keys-CIqUg3Jv.js","assets/keys-BMDz3FOI.js","assets/weather.constants-_S0I_w_Q.js","assets/devices.constants-DHQemX04.js","assets/components-CIxy4TbQ.css","assets/slider-CaVuBQD9.js","assets/steps-DuddYjrb.js","assets/components-ChpIwZ2c.js","assets/useSpaces-CPYe_mwZ.js","assets/composables-D2O7i4W5.js","assets/keys-DExX7OfU.js","assets/keys-DMEIfK2a.js","assets/components-DQG8YRnR.css","assets/composables-2NuyfNXO.js","assets/schemas.utils-fK_cgNcT.js","assets/useDevicesPlugins-DEYJEOHX.js","assets/logs-entries.transformers-Bp2zoFAY.js","assets/system.exceptions-BOq4IhGI.js","assets/system-rlhR7_nd.js","assets/components-CcNFsBLM.css","assets/view-devices-BV3p7TrL.css","assets/view-device-add-BwvKXeNg.js","assets/useUuid-D7PWqngt.js","assets/common.constants-C6QiEtuS.js","assets/view-devices-wizard-CQXTWVTC.js","assets/view-device-edit-BJ8fxgI9.js","assets/view-device-DkwhMqXA.js","assets/devices-virtual.constants-D0L6zhgQ.js","assets/view-device-TJjGoba6.css","assets/view-device-control-ByIYrYt9.js","assets/view-channel-add-BWb4ppJf.js","assets/view-channel-edit-D159uk9-.js","assets/view-channel-property-add-DOybYVh0.js","assets/view-channel-property-edit-CFc2Vnzv.js","assets/view-channels-AS3knRld.js","assets/view-channel-CSktVtts.js"])))=>i.map(i=>d[i]);
2
- import{Si as e,i as t,n}from"./icon-with-child-CgZMNB3F.js";import{G as r,In as i,T as a,Vt as o,Zn as s,_ as c,_t as l,an as u,at as d,bt as f,c as p,ca as m,cn as h,ct as g,dt as _,f as v,ft as y,gt as b,ht as x,in as S,kn as ee,ln as C,m as w,nn as T,o as E,on as D,ot as O,pt as k,r as A,rn as j,sn as M,st as N,t as P,u as F,w as te,x as ne,xt as re,y as I,yt as L}from"./common-D4Z2wgrj.js";import"./components-C6FJiE03.js";import{_ as ie,h as ae}from"./config-DAgVgX46.js";import{r as oe}from"./useModules-C_VhvJHC.js";import{t as se}from"./first-load.utils-Dp_L_7Dk.js";import{a as ce,i as le,n as ue,o as de,r as R,s as fe,t as pe}from"./keys-DMEIfK2a.js";import{t as z}from"./types-gvL9TxC-.js";import{i as B,n as me,o as V,r as H}from"./devices.constants-DHQemX04.js";import{B as he,H as U,U as W,V as ge,W as G}from"./composables-2NuyfNXO.js";import{t as _e}from"./useDevicesPlugins-DEYJEOHX.js";var K=v(),ve={"cs-CZ":{menu:{title:`Zařízení`},meta:{devices:{list:{title:`Seznam zařízení`},edit:{title:`Upravit zařízení: {device}`},add:{title:`Přidat zařízení`},detail:{title:`Zařízení: {device}`},control:{title:`Ovládání zařízení: {device}`}},channels:{list:{title:`Seznam kanálů`},edit:{title:`Upravit kanál: {channel}`},add:{title:`Přidat kanál`},detail:{title:`Kanál: {channel}`}},channelsProperties:{edit:{title:`Upravit vlastnost kanálu: {property}`},add:{title:`Přidat vlastnost kanálu`}}},breadcrumbs:{devices:{list:`zařízení`,add:`přidat zařízení`,edit:`upravit zařízení`,detail:`zařízení: {device}`,control:`ovládání: {device}`},channels:{list:`kanály`,add:`přidat kanál`,edit:`upravit kanál`,detail:`kanál: {channel}`},channelsProperties:{add:`přidat vlastnost kanálu`,edit:`upravit vlastnost kanálu`}},headings:{devices:{list:`Zařízení`,add:`Přidat zařízení`,edit:`Upravit zařízení`,detail:`Zařízení: {device}`,control:`Ovládání: {device}`,remove:`Odebrat zařízení?`,bulkRemove:`Odebrat zařízení?`,bulkEnable:`Povolit zařízení?`,bulkDisable:`Zakázat zařízení?`,adjustFilters:`Filtrovat zařízení`,selectPlugin:`Vyžadován plugin zařízení`,selectWizardPlugin:`Vybrat průvodce zařízením`},channels:{list:`Kanály`,add:`Přidat kanál`,edit:`Upravit kanál`,detail:`Kanál: {channel}`,remove:`Odebrat kanál?`,adjustFilters:`Filtrovat kanály`,selectPlugin:`Vyžadován plugin kanálu`},channelsProperties:{add:`Přidat vlastnost kanálu`,edit:`Upravit vlastnost kanálu`,remove:`Odebrat vlastnost kanálu?`,adjustFilters:`Filtrovat vlastnosti`},misc:{discard:`Zahodit změny?`}},subHeadings:{devices:{list:`Správa zařízení Smart panelu`,add:`Přidat nové zařízení Smart panelu`,edit:`Upravit zařízení Smart panelu`,detail:`Správa zařízení Smart panelu`,control:`Ovládání zařízení Smart panelu`,adjustFilters:`Upravit filtry zobrazení`},channels:{list:`Správa kanálů zařízení Smart panelu`,add:`Přidat nový kanál zařízení Smart panelu`,edit:`Upravit kanál zařízení Smart panelu`,detail:`Správa kanálu zařízení Smart panelu`,adjustFilters:`Upravit filtry zobrazení`},channelsProperties:{add:`Přidat novou vlastnost kanálu Smart panelu`,edit:`Upravit vlastnost kanálu Smart panelu`,adjustFilters:`Upravit filtry zobrazení`}},messages:{devices:{notFound:`Zařízení, které hledáte, neexistuje nebo bylo odebráno.`,created:`Nové zařízení bylo úspěšně přidáno.`,notCreated:`Něco se pokazilo. Zařízení se nepodařilo vytvořit.`,edited:`Změny uloženy! Zařízení: {device} bylo aktualizováno.`,notEdited:`Něco se pokazilo. Aktualizace zařízení nebyla úspěšná.`,removed:`Zařízení: {device} bylo úspěšně odebráno.`,removeCanceled:`Odebrání zařízení: {device} bylo zrušeno.`,notRemoved:`Něco se pokazilo a zařízení: {device} nebylo odebráno.`,deletedWhileEditing:`Toto zařízení bylo smazáno a již není dostupné.`,bulkRemoved:`{count} zařízení bylo úspěšně odebráno.`,bulkRemoveFailed:`Nepodařilo se odebrat {count} zařízení.`,bulkRemoveCanceled:`Hromadné odebrání zařízení bylo zrušeno.`,bulkEnabled:`{count} zařízení bylo úspěšně povoleno.`,bulkEnableFailed:`Nepodařilo se povolit {count} zařízení.`,bulkEnableCanceled:`Hromadné povolení zařízení bylo zrušeno.`,bulkDisabled:`{count} zařízení bylo úspěšně zakázáno.`,bulkDisableFailed:`Nepodařilo se zakázat {count} zařízení.`,bulkDisableCanceled:`Hromadné zakázání zařízení bylo zrušeno.`,notLoaded:`Nepodařilo se načíst zařízení. Zkuste to prosím později.`,unhidden:`Zařízení {device} je opět viditelné`,notUnhidden:`Zařízení {device} se nepodařilo zobrazit`,hiddenNotLoaded:`Skryté zařízení se nepodařilo načíst. Zkuste to prosím později.`},channels:{notFound:`Kanál, který hledáte, neexistuje nebo byl odebrán.`,notLoaded:`Nepodařilo se načíst kanál. Zkuste to prosím později.`,notLoadedForDevice:`Nepodařilo se načíst kanály pro toto zařízení.`,created:`Nový kanál byl úspěšně přidán.`,notCreated:`Něco se pokazilo. Kanál se nepodařilo vytvořit.`,edited:`Změny uloženy! Kanál: {channel} byl aktualizován.`,notEdited:`Něco se pokazilo. Aktualizace kanálu nebyla úspěšná.`,removed:`Kanál: {channel} byl úspěšně odebrán.`,removeCanceled:`Odebrání kanálu: {channel} bylo zrušeno.`,notRemoved:`Něco se pokazilo a kanál: {channel} nebyl odebrán.`,noMoreAllowed:`Všechny povinné a volitelné kanály jsou přiřazeny k zařízení. Žádné další nelze přidat.`,deletedWhileEditing:`Tento kanál byl smazán a již není dostupný.`},channelsProperties:{notFound:`Vlastnost kanálu, kterou hledáte, neexistuje nebo byla odebrána.`,notLoadedForChannel:`Nepodařilo se načíst vlastnosti pro tento kanál.`,created:`Nová vlastnost kanálu byla úspěšně přidána.`,notCreated:`Něco se pokazilo. Vlastnost kanálu se nepodařilo vytvořit.`,edited:`Změny uloženy! Vlastnost kanálu: {property} byla aktualizována.`,notEdited:`Něco se pokazilo. Aktualizace vlastnosti kanálu nebyla úspěšná.`,removed:`Vlastnost kanálu: {property} byla úspěšně odebrána.`,removeCanceled:`Odebrání vlastnosti kanálu: {property} bylo zrušeno.`,notRemoved:`Něco se pokazilo a vlastnost kanálu: {property} nebyla odebrána.`,noMoreAllowed:`Všechny povinné a volitelné vlastnosti jsou přiřazeny ke kanálu. Žádné další nelze přidat.`,deletedWhileEditing:`Tato vlastnost kanálu byla smazána a již není dostupná.`},misc:{requestError:`Něco se pokazilo, zkuste to prosím později.`}},texts:JSON.parse(`{"devices":{"noDevices":"Nemáte nakonfigurované žádné zařízení","noFilteredDevices":"Nebyly nalezeny žádné zařízení odpovídající aktivním kritériím filtru","loadingDevices":"Načítání zařízení...","loadingDevice":"Načítání zařízení...","confirmRemove":"Opravdu chcete odebrat zařízení: {device}? Tuto akci nelze vrátit zpět.","confirmBulkRemove":"Opravdu chcete odebrat {count} zařízení? Tuto akci nelze vrátit zpět.","confirmBulkEnable":"Opravdu chcete povolit {count} zařízení?","confirmBulkDisable":"Opravdu chcete zakázat {count} zařízení?","description":{"generic":"","air_conditioner":"Zařízení Klimatizace představuje chladicí systém s doplňkovými funkcemi pro monitorování prostředí a správu energie.","air_dehumidifier":"Zařízení Odvlhčovač vzduchu představuje systém určený ke snižování vlhkosti v prostředí s doplňkovými možnostmi monitorování a ovládání.","air_humidifier":"Zařízení Zvlhčovač vzduchu představuje systém určený ke zvyšování vlhkosti v prostředí s doplňkovými možnostmi monitorování a ovládání.","air_purifier":"Zařízení Čistička vzduchu představuje systém určený ke zlepšování kvality vnitřního vzduchu odstraňováním znečišťujících látek a monitorováním podmínek prostředí.","alarm":"","av_receiver":"Zařízení AV přijímač představuje receiver/zesilovač domácího kina s přepínáním vstupů a ovládáním reproduktorových výstupů.","camera":"Zařízení Kamera představuje sledovací nebo monitorovací systém určený pro zachycování videa a obrazu s doplňkovými funkcemi pro monitorování prostředí a interakci.","doorbell":"Zařízení Zvonek představuje chytrý zvonkový systém poskytující video, zvuk a doplňkové monitorovací funkce pro zvýšenou bezpečnost domácnosti.","door":"Zařízení Dveře představuje automatizované nebo monitorované dveře, jako jsou garážová vrata, vstupní dveře nebo jiné typy dveří, s doplňkovými funkcemi pro zabezpečení a sledování prostředí.","fan":"Zařízení Ventilátor představuje samostatný nebo integrovaný ventilátorový systém s funkcemi pro ovládání rychlosti, nastavení směru a monitorování energie.","game_console":"Zařízení Herní konzole představuje herní konzoli, kterou lze ovládat z hlediska základního stavu napájení/aktivity a přehrávání médií, pokud je podporováno.","heating_unit":"Zařízení Topná jednotka představuje prostorový nebo pokojový topný systém určený k ovládání a monitorování teploty prostředí s volitelnými funkcemi pro správu energie a vlhkosti.","lighting":"Zařízení Osvětlení představuje osvětlovací systém určený k poskytování iluminace s volitelnými funkcemi pro sledování energie, ovládání jasu a adaptivní osvětlení na základě okolních podmínek.","lock":"Zařízení Zámek představuje elektronický nebo chytrý zamykací systém poskytující ovládání a monitorování přístupových bodů, jako jsou dveře nebo brány.","media":"Zařízení Média představuje multimediální systém schopný přehrávat, nahrávat nebo spravovat audio a video obsah.","outlet":"Zařízení Zásuvka představuje elektrickou zásuvku s pokročilými funkcemi monitorování a ovládání, umožňující vzdálené ovládání a sledování energie. Podporuje jednu nebo více zásuvek pro flexibilní správu napájení.","projector":"Zařízení Projektor představuje projekční displej, který lze zapínat/vypínat a přepínat mezi vstupními zdroji.","pump":"Zařízení Čerpadlo představuje vodní nebo kapalinové čerpadlo s funkcemi pro ovládání průtoku, monitorování a sledování energie.","robot_vacuum":"Zařízení Robotický vysavač představuje autonomní čisticí zařízení se schopnostmi sledování energie a monitorování provozu.","sensor":"Zařízení Senzor představuje univerzální monitorovací jednotku schopnou sledovat různé parametry prostředí a bezpečnosti.","set_top_box":"Zařízení Set-top box představuje mediální zařízení připojené k TV (streamovací box, IPTV box nebo HDMI stick) poskytující ovládání přehrávání a volitelný výběr zdroje.","speaker":"Zařízení Reproduktor představuje zvukový výstupní systém schopný produkovat zvuk a potenciálně podporující přehrávání médií a vstupní funkce.","sprinkler":"Zařízení Zavlažovač představuje zavlažovací systém určený k ovládání průtoku vody a monitorování podmínek prostředí pro optimalizaci zalévání.","streaming_service":"Zařízení Streamovací služba představuje cloudový přehrávač médií (např. Spotify), který poskytuje ovládání přehrávání a metadata bez fyzického stavu napájení.","switcher":"Zařízení Spínač představuje ovladatelnou zásuvku nebo spínač, který může přepínat napájení připojených zařízení a monitorovat spotřebu energie. Podporuje více zásuvek pro ovládání napájení.","television":"Zařízení Televize představuje chytrou TV nebo podobné mediální zařízení, které lze ovládat a monitorovat z hlediska zvukové a zobrazovací funkcionality.","thermostat":"Zařízení Termostat představuje systém řízení klimatu, který monitoruje a upravuje teplotu a související parametry prostředí.","valve":"Zařízení Ventil představuje ovladatelný ventil používaný pro řízení průtoku kapalin nebo plynů v různých systémech.","water_heater":"Zařízení Ohřívač vody představuje systém ohřevu vody určený k zahřívání a udržování teploty vody s volitelnými funkcemi pro monitorování energie a detekci úniku.","window_covering":"Zařízení Okenní krytina představuje automatizované okenní prvky, jako jsou žaluzie, rolety nebo záclony."},"selectPlugin":"Pro vytvoření nového zařízení vyberte prosím kompatibilní plugin ze seznamu. Pluginy poskytují potřebné konfigurační možnosti pro konkrétní typ zařízení.","noWizardForDevicePlugin":"Plugin zařízení „{type}\\" neposkytuje průvodce nastavením.","noChannels":"Toto zařízení zatím nemá žádné kanály. Kanály definují vstupy nebo výstupy zařízení. Vytvořte nový kanál pro zahájení interakce s tímto zařízením.","category":"Kategorie","channelsCount":"Žádné kanály nakonfigurovány | Jeden kanál nakonfigurován | {count} kanálů nakonfigurováno","alertsCount":"Žádné výstrahy detekovány | Jedna výstraha detekována | {count} výstrah detekováno","channels":"Kanály","alerts":"Výstrahy","status":"Stav","validation":"Validace","noControllableProperties":"Toto zařízení nemá žádné ovladatelné vlastnosti. Vlastnosti musí mít oprávnění pro čtení a zápis nebo pouze pro zápis, aby je bylo možné ovládat.","logs":{"title":"Protokoly zařízení","noLogs":"Žádné protokoly nejsou k dispozici","noLogsDescription":"Pro toto zařízení zatím nebyly zaznamenány žádné protokoly","noMessage":"(žádná zpráva)","noMoreEntries":"Žádné další záznamy protokolu","detail":"Podrobnosti protokolu"}},"channels":{"noChannels":"Nemáte nakonfigurovaný žádný kanál zařízení","noFilteredChannels":"Nebyly nalezeny žádné kanály odpovídající aktivním kritériím filtru","loadingChannels":"Načítání kanálů...","loadingChannel":"Načítání kanálu...","confirmRemove":"Opravdu chcete odebrat kanál: {channel}? Tuto akci nelze vrátit zpět.","description":{"generic":"","air_particulate":"Monitoruje koncentraci pevných částic (např. PM2.5 a PM10) ve vzduchu a poskytuje přehled o kvalitě ovzduší a úrovni znečištění.","air_quality":"Monitoruje celkovou kvalitu vzduchu pomocí indexu (0-500) nebo ukazatele úrovně a poskytuje zjednodušené hodnocení vnitřních podmínek ovzduší.","alarm":"","battery":"Hlásí stav baterie zařízení včetně úrovně nabití, stavu nabíjení a provozního stavu.","camera":"Poskytuje video a obrazové datové proudy ze sledovacích nebo monitorovacích kamer. Tento kanál podporuje konfiguraci a ovládání kamerových zařízení, jako jsou bezpečnostní kamery nebo chůvičky.","carbon_dioxide":"Monitoruje hladiny CO₂ v prostředí pro sledování kvality vzduchu a účinnosti větrání.","carbon_monoxide":"Detekuje přítomnost oxidu uhelnatého (CO) pro zajištění bezpečnosti v uzavřených prostorech.","contact":"Sleduje otevřený nebo zavřený stav kontaktního bodu, jako jsou dveře, okno nebo skříňka.","cooler":"Ovládá zařízení, která snižují teplotu vzduchu nebo kapalin, jako jsou klimatizace nebo chladicí systémy.","dehumidifier":"Ovládá odvlhčovací zařízení a řídí snižování vlhkosti s funkcemi jako cílová vlhkost, provozní režimy a monitorování zásobníku vody.","device_information":"Tento kanál poskytuje metadata o zařízení včetně údajů o výrobci, informací o modelu a provozních stavech.","doorbell":"Představuje chytré zvonky a poskytuje funkce jako detekce stisku tlačítka a volitelná integrace kamery.","door":"Spravuje stavy otevření/zavření dveří včetně garážových vrat a vstupních dveří.","electrical_energy":"Měří kumulativní spotřebu energie v čase v kilowatthodinách (kWh).","electrical_generation":"Hlásí produkci energie z fotovoltaických (PV) nebo jiných zdrojů a sleduje kumulativní vyrobenou energii v kWh.","electrical_power":"Hlásí okamžité výkonové metriky jako napětí, proud, výkon a frekvenci pro monitorování a diagnostiku v reálném čase.","fan":"Ovládá ventilátorová zařízení včetně rychlosti, oscilace a režimů pro cirkulaci vzduchu.","filter":"Monitoruje stav a zbývající životnost vzduchových nebo vodních filtrů a indikuje potřebu výměny.","flow":"Monitoruje průtok kapalin nebo vzduchu, obvykle měřený v kubických metrech za hodinu (m³/h).","gas":"Detekuje přítomnost zemního plynu nebo jiných hořlavých plynů pro zajištění bezpečnosti v uzavřených prostorech.","heater":"Spravuje topná zařízení a umožňuje ovládání nastavení teploty a režimů.","humidifier":"Ovládá zvlhčovací zařízení a řídí zvyšování vlhkosti s funkcemi jako cílová vlhkost, ovládání úrovně mlhy a monitorování zásobníku vody.","humidity":"Měří relativní vlhkost v prostředí vyjádřenou v procentech.","illuminance":"Detekuje úrovně okolního osvětlení, obvykle měřené v luxech, pro monitorování jasu v prostoru.","leak":"Identifikuje přítomnost vody nebo jiných kapalin pro detekci úniků a prevenci škod.","light":"Ovládá osvětlovací zařízení s podporou jasu, teploty barev a nastavení barev.","lock":"Spravuje stav zamčení/odemčení fyzických zámků pro dveře, trezory nebo jiné zabezpečené oblasti.","media_input":"Spravuje vstupní zdroje multimediálních zařízení jako televizory, projektory nebo audio přijímače.","media_playback":"Poskytuje ovládání přehrávání pro multimediální zařízení, bez ovládání hlasitosti (to je řešeno kanály Reproduktor a Mikrofon).","microphone":"Představuje zvukové vstupní zařízení, hlásí aktivitu nebo zachycuje zvuk.","motion":"Detekuje pohyb v oblasti pro spuštění výstrah nebo automatizaci reakcí.","nitrogen_dioxide":"Monitoruje koncentraci NO₂ ve vzduchu, často používaný v environmentálním a průmyslovém monitorování.","occupancy":"Detekuje přítomnost osob v prostoru pro automatizaci nebo účely energetické účinnosti.","outlet":"Ovládá a monitoruje elektrické zásuvky.","ozone":"Měří hladiny ozónu (O₃) ve vzduchu, často používaný při hodnocení kvality životního prostředí.","pressure":"Hlásí hodnoty atmosférického nebo kapalinového tlaku, obvykle měřené v pascalech (kPa).","robot_vacuum":"Ovládá robotické vysavače a poskytuje příkazy pro spuštění, zastavení, dokování a monitorování stavů.","smoke":"Detekuje kouř v prostředí a spouští alarmy nebo výstrahy pro bezpečnost.","speaker":"Ovládá reproduktorová zařízení včetně hlasitosti, stavu ztlumení a režimů zvukového výstupu.","sulphur_dioxide":"Měří hladiny oxidu siřičitého (SO₂) ve vzduchu pro environmentální monitorování.","switcher":"Představuje binární spínače pro ovládání zařízení jako světla, ventilátory nebo spotřebiče.","television":"Poskytuje ovládání televizorů včetně vstupního zdroje, jasu a stavu napájení.","projector":"Poskytuje ovládání projektorů včetně napájení, vstupního zdroje, jasu a dálkových tlačítek.","temperature":"Měří aktuální teplotu v prostředí vyjádřenou ve stupních Celsia.","thermostat":"Spravuje systémy řízení klimatu a umožňuje nastavení topení, chlazení a ventilátoru.","valve":"Ovládá ventily pro kapaliny nebo plyny a řídí stavy otevření/zavření nebo průtok.","volatile_organic_compounds":"Monitoruje koncentraci těkavých organických sloučenin (VOC) ve vzduchu pro sledování znečištění nebo kvality vzduchu.","window_covering":"Ovládá okenní krytiny jako žaluzie, záclony a rolety včetně nastavení polohy a náklonu."},"selectPlugin":"Pro vytvoření nového kanálu vyberte prosím kompatibilní plugin ze seznamu. Pluginy poskytují potřebné konfigurační možnosti pro konkrétní typ kanálu."},"channelsProperties":{"noProperties":"Nemáte nakonfigurovanou žádnou vlastnost kanálu","noFilteredProperties":"Nebyly nalezeny žádné vlastnosti kanálů odpovídající aktivním kritériím filtru","loadingProperties":"Načítání vlastností kanálů...","loadingProperty":"Načítání vlastnosti kanálu...","loadingChannels":"Načítání kanálů...","loadingChannel":"Načítání kanálu...","confirmRemove":"Opravdu chcete odebrat vlastnost kanálu: {property}? Tuto akci nelze vrátit zpět.","dataTypes":{"char":"8bitové celé číslo se znaménkem (-128 až 127).","uchar":"8bitové celé číslo bez znaménka (0 až 255).","short":"16bitové celé číslo se znaménkem (-32 768 až 32 767).","ushort":"16bitové celé číslo bez znaménka (0 až 65 535).","int":"32bitové celé číslo se znaménkem (-2 147 483 648 až 2 147 483 647).","uint":"32bitové celé číslo bez znaménka (0 až 4 294 967 295).","float":"Číslo s plovoucí desetinnou čárkou (např. 3,14, -0,001).","bool":"Logická hodnota: pravda nebo nepravda.","string":"Sekvence znaků (např. \\"hello\\").","enum":"Výčtová hodnota vybraná z předdefinované množiny.","unknown":"Neznámý nebo nespecifikovaný datový typ."},"editValue":"Ruční změna této hodnoty je povolena, ale může být automaticky přepsána, pokud je tato vlastnost mapována na zařízení. Používejte s opatrností."},"misc":{"notSet":"Nenastaveno","noValuesProvided":"Žádné hodnoty nebyly zadány","confirmDiscard":"Máte neuložené změny. Opravdu je chcete zahodit?"}}`),fields:{devices:{search:{placeholder:`Hledat zařízení...`},plugin:{title:`Plugin zařízení`,placeholder:`Vyberte plugin zařízení`},state:{title:`Stav`,placeholder:`Vyberte stav`},showHidden:{title:`Zobrazit skryté`},id:{title:`Interní identifikátor`,placeholder:`ID zařízení`},identifier:{title:`Systémový identifikátor`,placeholder:`Systémový identifikátor zařízení`},category:{title:`Kategorie`,placeholder:`Kategorie zařízení`,description:`O kategorii`,validation:{required:`Vyberte prosím kategorii zařízení`}},name:{title:`Název`,placeholder:`Název zařízení`,validation:{required:`Vyplňte prosím název zařízení`}},description:{title:`Popis`,placeholder:`Popis zařízení`},enabled:{title:`Povoleno`,placeholder:`Povolit nebo zakázat zařízení`},room:{title:`Místnost`,placeholder:`Vyberte místnost (volitelné)`,hint:`Přiřaďte toto zařízení k fyzické místnosti`},zones:{title:`Zóny`,placeholder:`Vyberte zóny (volitelné)`,hint:`Přiřaďte toto zařízení k logickým zónám (např. Zabezpečení, Venkovní). Členství v zóně patra je odvozeno z přiřazení místnosti.`},validation:{title:`Validace`}},channels:{search:{placeholder:`Hledat kanály...`},plugin:{title:`Plugin kanálu`,placeholder:`Vyberte plugin kanálu`},device:{title:`Zařízení`,placeholder:`Zařízení kanálu`,description:`O zařízení`,validation:{required:`Vyberte prosím zařízení kanálu`}},id:{title:`Interní identifikátor`,placeholder:`ID kanálu`},category:{title:`Kategorie`,placeholder:`Kategorie kanálu`,description:`O kategorii`,validation:{required:`Vyberte prosím kategorii kanálu`}},name:{title:`Název`,placeholder:`Název kanálu`,validation:{required:`Vyplňte prosím název kanálu`}},description:{title:`Popis`,placeholder:`Popis kanálu`}},channelsProperties:{search:{placeholder:`Hledat vlastnosti...`},channel:{title:`Kanál`,placeholder:`Kanál vlastnosti kanálu`,description:`O kanálu`,validation:{required:`Vyberte prosím kanál vlastnosti kanálu`}},id:{title:`Interní identifikátor`,placeholder:`ID vlastnosti kanálu`},category:{title:`Kategorie`,placeholder:`Kategorie vlastnosti kanálu`,description:`O kategorii`,validation:{required:`Vyberte prosím kategorii vlastnosti kanálu`}},name:{title:`Název`,placeholder:`Název vlastnosti kanálu`},permissions:{title:`Oprávnění`,placeholder:`Oprávnění pro čtení a zápis vlastnosti kanálu`,validation:{required:`Vyberte prosím oprávnění vlastnosti kanálu`}},dataType:{title:`Datový typ`,placeholder:`Datový typ hodnoty vlastnosti kanálu`,validation:{required:`Vyberte prosím datový typ vlastnosti kanálu`}},unit:{title:`Jednotka`,placeholder:`Jednotka vlastnosti kanálu`},format:{title:{enum:`Povolené hodnoty`,min:`Minimální hodnota`,max:`Maximální hodnota`},placeholder:{enum:`Seznam povolených hodnot`,min:`Minimální povolená hodnota`,max:`Maximální povolená hodnota`},validation:{required:{enum:`Vyplňte prosím seznam povolených hodnot vlastnosti kanálu`}}},invalid:{title:`Neplatná hodnota`,placeholder:`Neplatná hodnota vlastnosti kanálu`},step:{title:`Hodnota kroku`,placeholder:`Hodnota kroku vlastnosti kanálu`},enterValue:{title:`Zadejte hodnotu`},value:{title:`Hodnota`,placeholder:`Aktuální hodnota vlastnosti kanálu`}}},table:{devices:{columns:{name:{title:`Název`},type:{title:`Typ`},state:{title:`Stav`},category:{title:`Kategorie`},enabled:{title:`Povoleno`,values:{enabled:`Povoleno`,disabled:`Zakázáno`}},validation:{title:`Validace`}}},channels:{columns:{name:{title:`Název`},device:{title:`Zařízení`},category:{title:`Kategorie`}}},channelsProperties:{columns:{name:{title:`Název`},channel:{title:`Kanál`},category:{title:`Kategorie`},permissions:{title:`Oprávnění`},dataType:{title:`Datový typ`,type:{enum:`Informace o výčtové hodnotě`,numeric:`Informace o číselné hodnotě`}},value:{title:`Hodnota`}}}},filters:{devices:{types:{title:`Filtrovat podle typu zařízení`},states:{title:`Filtrovat podle stavu připojení`},enabled:{title:`Filtrovat podle stavu zařízení`,placeholder:`Vyberte stav zařízení`,values:{enabled:`Povoleno`,disabled:`Zakázáno`,all:`Vše`}},category:{title:`Filtrovat podle kategorie zařízení`,placeholder:`Vyberte jednu nebo více`},validation:{title:`Filtrovat podle stavu validace`}},channels:{category:{title:`Filtrovat podle kategorie kanálu`,placeholder:`Vyberte jednu nebo více`}},channelsProperties:{category:{title:`Filtrovat podle kategorie vlastnosti`,placeholder:`Vyberte jednu nebo více`},dataType:{title:`Filtrovat podle datového typu vlastnosti`},permission:{title:`Filtrovat podle oprávnění vlastnosti`}}},buttons:{add:{title:`Přidat`},wizard:{title:`Průvodce`},edit:{title:`Upravit`},detail:{title:`Detail`},discard:{title:`Zahodit`},cancel:{title:`Zrušit`},close:{title:`Zavřít`},save:{title:`Uložit`},change:{title:`Změnit`},remove:{title:`Odebrat`},resetFilters:{title:`Resetovat filtry`},yes:{title:`Ano`},no:{title:`Ne`},reset:{title:`Resetovat`},addChannel:{title:`Přidat kanál`},addProperty:{title:`Přidat vlastnost`},control:{title:`Ovládat`},refresh:{title:`Obnovit`},loadMore:{title:`Načíst více`},viewLogs:{title:`Zobrazit protokoly`},back:{title:`Zpět`}},labels:{liveTail:`Živý přenos`,paused:`Pozastaveno`,overview:`Přehled`,validation:`Validace`,logs:`Protokoly`},states:{online:`Online`,offline:`Offline`,all:`Vše`,connected:`Připojeno`,disconnected:`Odpojeno`,init:`Inicializováno`,ready:`Připraveno`,running:`Běží`,sleeping:`Spí`,stopped:`Zastaveno`,lost:`Ztraceno`,alert:`Výstraha`,unknown:`Neznámý`},permissions:{ro:`Pouze pro čtení`,rw:`Čtení a zápis`,wo:`Pouze pro zápis`,ev:`Událost`},dataTypes:{char:`Znak`,uchar:`Neznaménkový znak`,short:`Krátké celé číslo`,ushort:`Neznaménkové krátké celé číslo`,int:`Celé číslo`,uint:`Neznaménkové celé číslo`,float:`Desetinné číslo`,bool:`Logická hodnota`,string:`Řetězec`,enum:`Výčet`,unknown:`Neznámý`},categories:{devices:{generic:`Obecné`,air_conditioner:`Klimatizace`,air_dehumidifier:`Odvlhčovač vzduchu`,air_humidifier:`Zvlhčovač vzduchu`,air_purifier:`Čistička vzduchu`,alarm:`Poplach`,av_receiver:`AV přijímač`,camera:`Kamera`,door:`Dveře`,doorbell:`Zvonek`,fan:`Ventilátor`,game_console:`Herní konzole`,heating_unit:`Topná jednotka`,lighting:`Osvětlení`,lock:`Zámek`,media:`Média`,outlet:`Zásuvka`,projector:`Projektor`,pump:`Čerpadlo`,robot_vacuum:`Robotický vysavač`,sensor:`Senzor`,set_top_box:`Set-top box`,speaker:`Reproduktor`,sprinkler:`Zavlažovač`,streaming_service:`Streamovací služba`,switcher:`Spínač`,television:`Televize`,terminal:`Terminál`,thermostat:`Termostat`,valve:`Ventil`,water_heater:`Ohřívač vody`,window_covering:`Okenní krytina`,input_controller:`Vstupní ovladač`},channels:{generic:`Obecný`,accelerometer:`Akcelerometr`,air_particulate:`Pevné částice ve vzduchu`,air_quality:`Kvalita vzduchu`,alarm:`Poplach`,battery:`Baterie`,button:`Tlačítko`,buzzer:`Bzučák`,camera:`Kamera`,carbon_dioxide:`Oxid uhličitý`,carbon_monoxide:`Oxid uhelnatý`,contact:`Kontakt`,cooler:`Chladič`,dehumidifier:`Odvlhčovač`,device_information:`Informace o zařízení`,door:`Dveře`,doorbell:`Zvonek`,electrical_energy:`Elektrická energie`,electrical_generation:`Výroba elektřiny`,electrical_power:`Elektrický výkon`,fan:`Ventilátor`,filter:`Filtr`,flow:`Průtok`,gas:`Plyn`,heater:`Topení`,humidifier:`Zvlhčovač`,humidity:`Vlhkost`,illuminance:`Osvětlení`,indicator:`Indikátor`,leak:`Únik`,light:`Světlo`,lock:`Zámek`,media_input:`Mediální vstup`,media_playback:`Přehrávání médií`,microphone:`Mikrofon`,motion:`Pohyb`,nitrogen_dioxide:`Oxid dusičitý`,occupancy:`Obsazenost`,outlet:`Zásuvka`,ozone:`Ozón`,pressure:`Tlak`,robot_vacuum:`Robotický vysavač`,smoke:`Kouř`,speaker:`Reproduktor`,sulphur_dioxide:`Oxid siřičitý`,switcher:`Spínač`,television:`Televize`,projector:`Projektor`,temperature:`Teplota`,thermostat:`Termostat`,valve:`Ventil`,volatile_organic_compounds:`Těkavé organické sloučeniny`,window_covering:`Okenní krytina`,analog_input:`Analogový vstup`,binary_input:`Binární vstup`},channelsProperties:{generic:`Obecná`,acceleration_x:`Zrychlení X`,acceleration_y:`Zrychlení Y`,acceleration_z:`Zrychlení Z`,active:`Aktivní`,alarm_state:`Stav alarmu`,album:`Album`,angle:`Úhel`,aqi:`AQI (index kvality ovzduší)`,artist:`Interpret`,artwork_url:`URL obalu`,average_power:`Průměrný výkon`,balance:`Vyvážení`,bass:`Basy`,brightness:`Jas`,change_needed:`Vyžadována výměna`,child_lock:`Dětský zámek`,color_blue:`Modrá barva`,color_green:`Zelená barva`,color_red:`Červená barva`,color_temperature:`Teplota barev`,color_white:`Bílá barva`,command:`Příkaz`,connection_type:`Typ připojení`,consumption:`Spotřeba`,current:`Proud`,concentration:`Koncentrace`,defrost_active:`Odmrazování aktivní`,detected:`Detekováno`,direction:`Směr`,distance:`Vzdálenost`,duration:`Doba trvání`,event:`Událost`,fault:`Porucha`,fault_description:`Popis poruchy`,firmware_revision:`Revize firmwaru`,frequency:`Frekvence`,grid_export:`Dodávka do sítě`,grid_import:`Odběr ze sítě`,hardware_revision:`Revize hardwaru`,hue:`Odstín`,humidity:`Vlhkost`,illuminance:`Osvětlení`,in_use:`Používáno`,infrared:`Infračervený`,last_event:`Poslední událost`,level:`Úroveň`,life_remaining:`Zbývající životnost`,link_quality:`Kvalita spojení`,locked:`Zamčeno`,manufacturer:`Výrobce`,media_type:`Typ média`,mist_level:`Úroveň mlhy`,model:`Model`,mode:`Režim`,mute:`Ztlumení`,natural_breeze:`Přirozený vánek`,obstruction:`Překážka`,on:`Zapnuto`,orientation:`Orientace`,over_current:`Nadproud`,over_voltage:`Přepětí`,over_power:`Přetížení`,pan:`Otáčení`,peak_level:`Špičková úroveň`,percentage:`Procento`,position:`Poloha`,power:`Výkon`,pressure:`Tlak`,production:`Produkce`,rate:`Průtok`,remaining:`Zbývající`,repeat:`Opakování`,reset:`Resetovat`,remote_key:`Dálkové tlačítko`,saturation:`Sytost`,serial_number:`Sériové číslo`,shuffle:`Náhodné přehrávání`,siren:`Siréna`,source:`Zdroj`,source_label:`Popis zdroje`,speed:`Rychlost`,state:`Stav`,status:`Stav`,swing:`Oscilace`,tampered:`Narušeno`,temperature:`Teplota`,tilt:`Náklon`,timer:`Časovač`,track:`Skladba`,treble:`Výšky`,triggered:`Spuštěno`,type:`Typ`,units:`Jednotky`,voltage:`Napětí`,volume:`Hlasitost`,warm_mist:`Teplá mlha`,water_tank_empty:`Zásobník vody prázdný`,water_tank_full:`Zásobník vody plný`,water_tank_level:`Hladina zásobníku vody`,zoom:`Přiblížení`,unit:`Jednotka`,value:`Hodnota`}},hidden:{badge:`Skryté`,by:{system:`Systém`,user:`Uživatel`},hint:{system:`Skryto automaticky, protože jej nahradilo virtuální zařízení. Znovu se zobrazí, jakmile bude toto virtuální zařízení smazáno.`,user:`Skryto operátorem. Zůstane skryté, dokud jej někdo znovu nezobrazí.`},unhide:`Zobrazit`},validation:{status:{valid:`Platné`,invalid:`Neplatné`,unknown:`Neznámé`},filter:{valid:`Platné`,invalid:`Neplatné`,all:`Vše`},errors:`chyby`,warnings:`varování`,issuesTitle:`Problémy validace`,severity:{error:`Chyba`,warning:`Varování`},table:{severity:`Závažnost`,type:`Typ`,message:`Zpráva`,channel:`Kanál`},issueTypes:{missing_channel:`Chybějící kanál`,missing_property:`Chybějící vlastnost`,invalid_data_type:`Neplatný datový typ`,invalid_permissions:`Neplatná oprávnění`,invalid_format:`Neplatný formát`,unknown_channel:`Neznámý kanál`,duplicate_channel:`Duplicitní kanál`,constraint_one_of_violation:`Porušení omezení (jeden z)`,constraint_one_or_more_of_violation:`Porušení omezení (jeden nebo více z)`,constraint_mutually_exclusive_violation:`Porušení omezení (vzájemně vylučující)`}},wizard:{steps:{discover:`Vyhledávání`,confirm:`Potvrzení`,results:`Výsledky`},actions:{cancel:`Zrušit`,back:`Zpět`,next:`Další`,adopt:`Přidat zařízení`,addMore:`Přidat další`,done:`Hotovo`},statuses:{checking:`Ověřování`,ready:`Připraveno`,needs_credentials:`Vyžaduje přihlašovací údaje`,already_registered:`Již přidáno`,unsupported:`Nepodporováno`,failed:`Selhalo`,willCreate:`Bude vytvořeno`,willUpdate:`Bude aktualizováno`,created:`Vytvořeno`,updated:`Aktualizováno`,skipped:`Beze změn`},columns:{name:`Název`,status:`Stav`,category:`Kategorie`,change:`Akce`,error:`Chyba`},totals:{found:`Nalezeno: {count}`,adoptable:`Lze přidat: {count}`,alreadyAdded:`Již přidáno: {count}`,unsupported:`Nepodporováno: {count}`,visible:`Zobrazeno: {count}`},texts:{loading:`Načítání vyhledávací relace...`,empty:`Zatím nebyla nalezena žádná zařízení`,noSelection:`Nebyla vybrána žádná zařízení`,resultsSuccess:`Všechna vybraná zařízení byla úspěšně přidána`,resultsFailed:`Některá zařízení se nepodařilo přidat`}},diagnostics:{title:`Diagnostika hardwarových vstupů`,capabilitiesTitle:`Možnosti vstupu`,supportedInteractions:`Podporované interakce`,noDiscreteEvents:`Kontinuální / analogový vstup (žádné diskrétní události)`,noCapabilities:`Nejsou k dispozici žádné možnosti vstupu`,liveEventsTitle:`Živé události`,clearEvents:`Vymazat`,noOccurrences:`Zatím nebyly přijaty žádné události`,columnEvent:`Událost`,columnNativeType:`Nativní typ`,columnTimestamp:`Čas přijetí`,columnData:`Data`}},"de-DE":{menu:{title:`Geräte`},meta:{devices:{list:{title:`Geräte auflisten`},edit:{title:`Gerät bearbeiten: {device}`},add:{title:`Gerät hinzufügen`},detail:{title:`Gerät: {device}`},control:{title:`Gerät steuern: {device}`}},channels:{list:{title:`Kanäle auflisten`},edit:{title:`Kanal bearbeiten: {channel}`},add:{title:`Kanal hinzufügen`},detail:{title:`Kanal: {channel}`}},channelsProperties:{edit:{title:`Kanaleigenschaft bearbeiten: {property}`},add:{title:`Kanaleigenschaft hinzufügen`}}},breadcrumbs:{devices:{list:`Geräte`,add:`Gerät hinzufügen`,edit:`Gerät bearbeiten`,detail:`Gerät: {device}`,control:`Steuerung: {device}`},channels:{list:`Kanäle`,add:`Kanal hinzufügen`,edit:`Kanal bearbeiten`,detail:`Kanal: {channel}`},channelsProperties:{add:`Kanaleigenschaft hinzufügen`,edit:`Kanaleigenschaft bearbeiten`}},headings:{devices:{list:`Geräte`,add:`Gerät hinzufügen`,edit:`Gerät bearbeiten`,detail:`Gerät: {device}`,control:`Steuerung: {device}`,remove:`Gerät entfernen?`,bulkRemove:`Geräte entfernen?`,bulkEnable:`Geräte aktivieren?`,bulkDisable:`Geräte deaktivieren?`,adjustFilters:`Geräte filtern`,selectPlugin:`Geräte-Plugin erforderlich`,selectWizardPlugin:`Geräteassistent auswählen`},channels:{list:`Kanäle`,add:`Kanal hinzufügen`,edit:`Kanal bearbeiten`,detail:`Kanal: {channel}`,remove:`Kanal entfernen?`,adjustFilters:`Kanäle filtern`,selectPlugin:`Kanal-Plugin erforderlich`},channelsProperties:{add:`Kanaleigenschaft hinzufügen`,edit:`Kanaleigenschaft bearbeiten`,remove:`Kanaleigenschaft entfernen?`,adjustFilters:`Eigenschaften filtern`},misc:{discard:`Änderungen verwerfen?`}},subHeadings:{devices:{list:`Smart Panel Geräte verwalten`,add:`Neues Smart Panel Gerät hinzufügen`,edit:`Smart Panel Gerät bearbeiten`,detail:`Smart Panel Gerät verwalten`,control:`Smart Panel Gerät steuern`,adjustFilters:`Anzeigefilter anpassen`},channels:{list:`Smart Panel Gerätekanäle verwalten`,add:`Neuen Smart Panel Gerätekanal hinzufügen`,edit:`Smart Panel Gerätekanal bearbeiten`,detail:`Smart Panel Gerätekanal verwalten`,adjustFilters:`Anzeigefilter anpassen`},channelsProperties:{add:`Neue Smart Panel Kanaleigenschaft hinzufügen`,edit:`Smart Panel Kanaleigenschaft bearbeiten`,adjustFilters:`Anzeigefilter anpassen`}},messages:{devices:{notFound:`Das gesuchte Gerät existiert nicht oder wurde entfernt.`,created:`Neues Gerät erfolgreich hinzugefügt.`,notCreated:`Etwas ist schiefgelaufen. Das Gerät konnte nicht erstellt werden.`,edited:`Änderungen gespeichert! Das Gerät: {device} wurde aktualisiert.`,notEdited:`Etwas ist schiefgelaufen. Die Geräteaktualisierung war nicht erfolgreich.`,removed:`Das Gerät: {device} wurde erfolgreich entfernt.`,removeCanceled:`Entfernung von Gerät: {device} wurde abgebrochen.`,notRemoved:`Etwas ist schiefgelaufen, das Gerät: {device} wurde nicht entfernt.`,deletedWhileEditing:`Dieses Gerät wurde gelöscht und ist nicht mehr verfügbar.`,bulkRemoved:`{count} Geräte wurden erfolgreich entfernt.`,bulkRemoveFailed:`Entfernung von {count} Geräten fehlgeschlagen.`,bulkRemoveCanceled:`Massenentfernung von Geräten wurde abgebrochen.`,bulkEnabled:`{count} Geräte wurden erfolgreich aktiviert.`,bulkEnableFailed:`Aktivierung von {count} Geräten fehlgeschlagen.`,bulkEnableCanceled:`Massenaktivierung von Geräten wurde abgebrochen.`,bulkDisabled:`{count} Geräte wurden erfolgreich deaktiviert.`,bulkDisableFailed:`Deaktivierung von {count} Geräten fehlgeschlagen.`,bulkDisableCanceled:`Massendeaktivierung von Geräten wurde abgebrochen.`,notLoaded:`Gerät konnte nicht geladen werden. Bitte versuchen Sie es später erneut.`,unhidden:`Gerät {device} ist wieder sichtbar`,notUnhidden:`Gerät {device} konnte nicht eingeblendet werden`,hiddenNotLoaded:`Die ausgeblendeten Geräte konnten nicht geladen werden. Bitte versuchen Sie es später erneut.`},channels:{notFound:`Der gesuchte Kanal existiert nicht oder wurde entfernt.`,notLoaded:`Kanal konnte nicht geladen werden. Bitte versuchen Sie es später erneut.`,notLoadedForDevice:`Kanäle für dieses Gerät konnten nicht geladen werden.`,created:`Neuer Kanal erfolgreich hinzugefügt.`,notCreated:`Etwas ist schiefgelaufen. Der Kanal konnte nicht erstellt werden.`,edited:`Änderungen gespeichert! Der Kanal: {channel} wurde aktualisiert.`,notEdited:`Etwas ist schiefgelaufen. Die Kanalaktualisierung war nicht erfolgreich.`,removed:`Der Kanal: {channel} wurde erfolgreich entfernt.`,removeCanceled:`Entfernung von Kanal: {channel} wurde abgebrochen.`,notRemoved:`Etwas ist schiefgelaufen, der Kanal: {channel} wurde nicht entfernt.`,noMoreAllowed:`Alle erforderlichen und optionalen Kanäle sind dem Gerät zugewiesen. Keine weiteren können hinzugefügt werden.`,deletedWhileEditing:`Dieser Kanal wurde gelöscht und ist nicht mehr verfügbar.`},channelsProperties:{notFound:`Die gesuchte Kanaleigenschaft existiert nicht oder wurde entfernt.`,notLoadedForChannel:`Eigenschaften für diesen Kanal konnten nicht geladen werden.`,created:`Neue Kanaleigenschaft erfolgreich hinzugefügt.`,notCreated:`Etwas ist schiefgelaufen. Die Kanaleigenschaft konnte nicht erstellt werden.`,edited:`Änderungen gespeichert! Die Kanaleigenschaft: {property} wurde aktualisiert.`,notEdited:`Etwas ist schiefgelaufen. Die Aktualisierung der Kanaleigenschaft war nicht erfolgreich.`,removed:`Die Kanaleigenschaft: {property} wurde erfolgreich entfernt.`,removeCanceled:`Entfernung von Kanaleigenschaft: {property} wurde abgebrochen.`,notRemoved:`Etwas ist schiefgelaufen, die Kanaleigenschaft: {property} wurde nicht entfernt.`,noMoreAllowed:`Alle erforderlichen und optionalen Eigenschaften sind dem Kanal zugewiesen. Keine weiteren können hinzugefügt werden.`,deletedWhileEditing:`Diese Kanaleigenschaft wurde gelöscht und ist nicht mehr verfügbar.`},misc:{requestError:`Etwas ist schiefgelaufen, bitte versuchen Sie es später erneut.`}},texts:JSON.parse(`{"devices":{"noDevices":"Sie haben noch keine Geräte konfiguriert","noFilteredDevices":"Keine Geräte gefunden, die den aktiven Filterkriterien entsprechen","loadingDevices":"Geräte werden geladen...","loadingDevice":"Gerät wird geladen...","confirmRemove":"Sind Sie sicher, dass Sie das Gerät: {device} entfernen möchten? Dies kann nicht rückgängig gemacht werden.","confirmBulkRemove":"Sind Sie sicher, dass Sie {count} Geräte entfernen möchten? Dies kann nicht rückgängig gemacht werden.","confirmBulkEnable":"Sind Sie sicher, dass Sie {count} Geräte aktivieren möchten?","confirmBulkDisable":"Sind Sie sicher, dass Sie {count} Geräte deaktivieren möchten?","description":{"generic":"","air_conditioner":"Das Klimagerät stellt ein Kühlsystem mit zusätzlichen Funktionen für die Umweltüberwachung und das Energiemanagement dar.","air_dehumidifier":"Das Luftentfeuchtergerät stellt ein System dar, das entwickelt wurde, um die Luftfeuchtigkeit in der Umgebung zu reduzieren und gleichzeitig zusätzliche Überwachungs- und Steuerungsfunktionen bereitzustellen.","air_humidifier":"Das Luftbefeuchtergerät stellt ein System dar, das entwickelt wurde, um die Luftfeuchtigkeit in der Umgebung zu erhöhen und gleichzeitig zusätzliche Überwachungs- und Steuerungsfunktionen bereitzustellen.","air_purifier":"Das Luftreinigungsgerät stellt ein System dar, das entwickelt wurde, um die Luftqualität in Innenräumen zu verbessern, indem Verunreinigungen entfernt und die Umgebungsbedingungen überwacht werden.","alarm":"","av_receiver":"Das AV-Receiver-Gerät stellt einen Heimkino-Receiver/-Verstärker mit Eingangsumschaltung und Lautsprecherausgangssteuerung dar.","camera":"Das Kameragerät stellt ein Überwachungs- oder Überwachungssystem dar, das für die Video- und Bildaufnahme mit zusätzlichen Funktionen für die Umgebungsüberwachung und -interaktion entwickelt wurde.","doorbell":"Das Türklingelgerät stellt ein intelligentes Türklingelsystem dar, das Video-, Audio- und zusätzliche Überwachungsfunktionen für eine verbesserte Sicherheit zu Hause bietet.","door":"Die Türvorrichtung stellt automatisierte oder überwachte Türen dar, wie Garagentore, Eingangstüren oder andere Arten von Türen, mit zusätzlichen Funktionen für Sicherheit und Umweltbewusstsein.","fan":"Das Lüftergerät stellt ein eigenständiges oder integriertes Lüftersystem mit Funktionen zur Drehzahlregelung, Richtungsanpassung und Energieüberwachung dar.","game_console":"Das Spielkonsolengerät stellt eine Spielkonsole dar, die für den grundlegenden Energie-/Aktivitätsstatus und die Medienwiedergabe gesteuert werden kann, wo dies unterstützt wird.","heating_unit":"Das Heizgerät stellt ein Raum- oder Raumheizungssystem dar, das zur Steuerung und Überwachung der Umgebungstemperatur mit optionalen Funktionen für das Energie- und Feuchtigkeitsmanagement entwickelt wurde.","lighting":"Die Beleuchtungsvorrichtung stellt ein Beleuchtungssystem dar, das entwickelt wurde, um eine Beleuchtung mit optionalen Funktionen zur Energieverfolgung, Helligkeitssteuerung und adaptiven Beleuchtung auf der Grundlage von Umgebungsbedingungen bereitzustellen.","lock":"Die Verriegelungsvorrichtung stellt ein elektronisches oder intelligentes Schließsystem dar, das die Steuerung und Überwachung von Zugangspunkten wie Türen oder Toren ermöglicht.","media":"Das Mediengerät stellt ein Multimediasystem dar, das in der Lage ist, Audio- und Videoinhalte abzuspielen, aufzuzeichnen oder zu verwalten.","outlet":"Das Steckdosengerät stellt eine Steckdose mit erweiterten Überwachungs- und Steuerungsfunktionen dar, die eine Fernbedienung und Energieverfolgung ermöglichen. Es unterstützt einzelne oder mehrere Steckdosen für flexibles Energiemanagement.","projector":"Das Projektorgerät stellt ein Videoprojektionsdisplay dar, das ein-/ausgeschaltet und zwischen den Eingangsquellen umgeschaltet werden kann.","pump":"Das Pumpengerät stellt eine Wasser- oder Flüssigkeitspumpe mit Funktionen zur Flusssteuerung, Überwachung und Energieverfolgung dar.","robot_vacuum":"Das Saugrobotergerät stellt ein autonomes Reinigungsgerät mit Funktionen zur Energieverfolgung und Betriebsüberwachung dar.","sensor":"Die Sensorvorrichtung stellt eine vielseitige Überwachungseinheit dar, die in der Lage ist, verschiedene Umwelt- und Sicherheitsparameter zu verfolgen.","set_top_box":"Das Set-Top-Box-Gerät stellt ein mit dem Fernseher verbundenes Mediengerät (Streaming-Box, IPTV-Box oder HDMI-Stick) dar, das die Wiedergabesteuerung und optionale Quellenauswahl ermöglicht.","speaker":"Das Lautsprechergerät stellt ein Audioausgabesystem dar, das in der Lage ist, Ton zu erzeugen und möglicherweise die Medienwiedergabe und Eingabefunktionalität zu unterstützen.","sprinkler":"Die Sprinklervorrichtung stellt ein Bewässerungssystem dar, das entwickelt wurde, um den Wasserfluss zu steuern und die Umgebungsbedingungen zu überwachen, um die Bewässerung zu optimieren.","streaming_service":"Das Streaming Service-Gerät stellt einen Cloud-basierten Mediaplayer (z. B. Spotify) dar, der die Wiedergabesteuerung und Metadaten ohne physischen Leistungszustand bereitstellt.","switcher":"Das Schaltgerät stellt eine steuerbare Steckdose oder einen Schalter dar, der die Stromversorgung zu den angeschlossenen Geräten umschalten und den Energieverbrauch überwachen kann. Es unterstützt mehrere Steckdosen für die Leistungssteuerung.","television":"Das Fernsehgerät stellt ein Smart-TV oder ein ähnliches Mediengerät dar, das hinsichtlich seiner Audio- und Anzeigefunktionalität gesteuert und überwacht werden kann.","thermostat":"Das Thermostatgerät stellt ein Klimatisierungssystem dar, das die Temperatur und die damit verbundenen Umweltfaktoren überwacht und einstellt.","valve":"Die Ventilvorrichtung stellt ein steuerbares Ventil dar, das zur Steuerung des Durchflusses von Flüssigkeiten oder Gasen in verschiedenen Systemen verwendet wird.","water_heater":"Das Wassererwärmungsgerät stellt ein Wassererwärmungssystem dar, das zum Erwärmen und Aufrechterhalten der Wassertemperatur entwickelt wurde, mit optionalen Funktionen zur Energieüberwachung und Leckerkennung.","window_covering":"Die Fensterabdeckvorrichtung stellt automatisierte Fensterbehandlungen wie Jalousien, Jalousien oder Vorhänge dar."},"selectPlugin":"Um ein neues Gerät zu erstellen, wählen Sie bitte ein kompatibles Plugin aus der Liste. Plugins bieten die notwendigen Konfigurationsoptionen für bestimmte Gerätetypen.","noWizardForDevicePlugin":"Das Geräte-Plugin „{type}\\" stellt keinen Einrichtungsassistenten bereit.","noChannels":"Dieses Gerät hat noch keine Kanäle. Kanäle definieren die Ein- oder Ausgänge eines Geräts. Erstellen Sie einen neuen Kanal, um mit diesem Gerät zu interagieren.","category":"Kategorie","channelsCount":"Keine Kanäle konfiguriert | Ein Kanal konfiguriert | {count} Kanäle konfiguriert","alertsCount":"Keine Warnungen erkannt | Eine Warnung erkannt | {count} Warnungen erkannt","channels":"Kanäle","alerts":"Warnungen","status":"Status","validation":"Validierung","noControllableProperties":"Dieses Gerät hat keine steuerbaren Eigenschaften. Eigenschaften müssen Lese-Schreib- oder Nur-Schreib-Berechtigungen haben, um gesteuert zu werden.","logs":{"title":"Geräteprotokolle","noLogs":"Keine Protokolle verfügbar","noLogsDescription":"Für dieses Gerät wurden noch keine Protokolle aufgezeichnet","noMessage":"(keine Nachricht)","noMoreEntries":"Keine weiteren Protokolleinträge","detail":"Protokoll-Details"}},"channels":{"noChannels":"Sie haben noch keine Gerätekanäle konfiguriert","noFilteredChannels":"Keine Kanäle gefunden, die den aktiven Filterkriterien entsprechen","loadingChannels":"Kanäle werden geladen...","loadingChannel":"Kanal wird geladen...","confirmRemove":"Sind Sie sicher, dass Sie den Kanal: {channel} entfernen möchten? Dies kann nicht rückgängig gemacht werden.","description":{"generic":"","air_particulate":"Überwacht die Konzentration von Feinstaub (z. B. PM2,5 und PM10) in der Luft und bietet Einblicke in die Luftqualität und den Verschmutzungsgrad.","air_quality":"Überwacht die Gesamtluftqualität mithilfe eines Index (0-500) oder einer Füllstandsanzeige, die eine vereinfachte Bewertung der Innenraumluftbedingungen ermöglicht.","alarm":"","battery":"Zeigt den Status des Akkus eines Geräts an, einschließlich Füllstand, Ladezustand und Betriebszustand.","camera":"Bietet Video- und Bilddatenströme von Überwachungs- oder Überwachungskameras. Dieser Kanal unterstützt die Konfiguration und Steuerung von Kamerageräten wie Überwachungskameras oder Babysitter-Monitoren.","carbon_dioxide":"Überwacht den CO₂ -Gehalt in der Umgebung, um die Luftqualität und die Belüftungseffizienz zu verfolgen.","carbon_monoxide":"Erkennt das Vorhandensein von Kohlenmonoxid (CO), um die Sicherheit in geschlossenen Räumen zu gewährleisten.","contact":"Verfolgt den offenen oder geschlossenen Zustand eines Kontaktpunkts, z. B. einer Tür, eines Fensters oder eines Schranks.","cooler":"Steuert Geräte, die Luft- oder Flüssigkeitstemperaturen senken, wie Klimaanlagen oder Kühlsysteme.","dehumidifier":"Steuert Entfeuchtergeräte und verwaltet die Feuchtigkeitsreduzierung mit Funktionen wie Zielfeuchtigkeit, Betriebsmodi und Wassertanküberwachung.","device_information":"Dieser Kanal bietet Metadaten über das Gerät, einschließlich Herstellerdetails, Modellinformationen und Betriebsstatus.","doorbell":"Stellt intelligente Türklingeln dar und bietet Funktionen wie Tastendruckerkennung und optionale Kameraintegration.","door":"Verwaltet die Öffnungs-/Schließzustände von Türen, einschließlich Garagen- und Eingangstüren.","electrical_energy":"Misst den kumulierten Energieverbrauch über die Zeit in Kilowattstunden (kWh).","electrical_generation":"Meldet die Energieerzeugung aus einer Photovoltaik (PV) oder einer anderen Erzeugungsquelle und verfolgt die in kWh erzeugte kumulierte Energie.","electrical_power":"Meldet momentane Leistungsmetriken wie Spannung, Strom, Leistung und Frequenz für Echtzeitüberwachung und -diagnose.","fan":"Steuert Lüftergeräte, einschließlich Geschwindigkeit, Oszillation und Modi für die Luftzirkulation.","filter":"Überwacht den Status und die verbleibende Lebensdauer von Luft- oder Wasserfiltern und zeigt an, wann ein Austausch erforderlich ist.","flow":"Überwacht die Geschwindigkeit des Flüssigkeits- oder Luftstroms, typischerweise gemessen in Kubikmetern pro Stunde (m³/h).","gas":"Erkennt das Vorhandensein von Erdgas oder anderen brennbaren Gasen, um die Sicherheit in geschlossenen Räumen zu gewährleisten.","heater":"Verwaltet Heizgeräte und ermöglicht die Steuerung von Temperatureinstellungen und -modi.","humidifier":"Steuert Befeuchtergeräte und steuert den Feuchtigkeitsanstieg mit Funktionen wie Sollfeuchtigkeit, Nebelspiegelregelung und Wassertanküberwachung.","humidity":"Misst die relative Luftfeuchtigkeit in der Umgebung, angegeben als Prozentsatz.","illuminance":"Erfasst Umgebungslichtpegel, die typischerweise in Lux gemessen werden, um die Helligkeit in einem Raum zu überwachen.","leak":"Identifiziert das Vorhandensein von Wasser oder anderen Flüssigkeiten, um Lecks zu erkennen und Schäden zu vermeiden.","light":"Steuert Beleuchtungsgeräte und unterstützt Helligkeit, Farbtemperatur und Farbanpassungen.","lock":"Verwaltet den verriegelten/entriegelten Zustand von physischen Schlössern für Türen, Tresore oder andere sichere Bereiche.","media_input":"Verwaltet die Eingangsquellen von Multimedia-Geräten wie Fernsehern, Projektoren oder Audioempfängern.","media_playback":"Bietet Wiedergabesteuerungen für Multimedia-Geräte, mit Ausnahme der Lautstärkeregelung (über Lautsprecher- und Mikrofonkanäle).","microphone":"Stellt Audioeingabegeräte dar, meldet Aktivitäten oder nimmt Geräusche auf.","motion":"Erkennt Bewegungen in einem Bereich, um Warnungen auszulösen oder Reaktionen zu automatisieren.","nitrogen_dioxide":"Überwacht die NO₂ -Konzentration in der Luft, die häufig in der Umwelt- und Industrieüberwachung verwendet wird.","occupancy":"Erkennt die Anwesenheit von Personen in einem Raum zu Automatisierungs- oder Energieeffizienzzwecken.","outlet":"Steuert und überwacht Steckdosen.","ozone":"Misst den Ozongehalt (O₃) in der Luft, der häufig in Umweltqualitätsbewertungen verwendet wird.","pressure":"Gibt atmosphärische oder Flüssigkeitsdruckwerte an, die typischerweise in Pascal (kPa) gemessen werden.","robot_vacuum":"Steuert Saugroboter und bietet Befehle für Start-, Stopp-, Andock- und Überwachungszustände.","smoke":"Erkennt Rauch in der Umgebung und löst Alarme oder Warnungen zur Sicherheit aus.","speaker":"Steuert Lautsprechergeräte, einschließlich Lautstärke, Stummschaltung und Audioausgabemodi.","sulphur_dioxide":"Misst den Schwefeldioxidgehalt (SO₂) in der Luft zur Umweltüberwachung.","switcher":"Stellt Binärschalter zur Steuerung von Geräten wie Lichtern, Lüftern oder Geräten dar.","television":"Bietet Steuerung für Fernseher, einschließlich Eingangsquelle, Helligkeit und Leistungszustand.","projector":"Bietet Steuerung für Projektoren, einschließlich Strom, Eingangsquelle, Helligkeit und Fernbedienungstasten.","temperature":"Misst die aktuelle Temperatur in einer Umgebung, angegeben in Grad Celsius .","thermostat":"Verwaltet Klimatisierungssysteme und ermöglicht Anpassungen der Heizungs-, Kühlungs- und Lüftereinstellungen.","valve":"Steuert Fluid- oder Gasventile, verwaltet Öffnungs-/Schließzustände oder Durchflussraten.","volatile_organic_compounds":"Überwacht die Konzentration von VOCs in der Luft, um Verschmutzung oder Luftqualität zu verfolgen.","window_covering":"Steuert Abdeckungen wie Jalousien, Vorhänge und Rollläden, einschließlich Positions- und Neigungseinstellungen."},"selectPlugin":"Um einen neuen Kanal zu erstellen, wählen Sie bitte ein kompatibles Plugin aus der Liste. Plugins bieten die notwendigen Konfigurationsoptionen für bestimmte Kanaltypen."},"channelsProperties":{"noProperties":"Sie haben noch keine Kanaleigenschaften konfiguriert","noFilteredProperties":"Keine Kanaleigenschaften gefunden, die den aktiven Filterkriterien entsprechen","loadingProperties":"Kanaleigenschaften werden geladen...","loadingProperty":"Kanaleigenschaft wird geladen...","loadingChannels":"Kanäle werden geladen...","loadingChannel":"Kanal wird geladen...","confirmRemove":"Sind Sie sicher, dass Sie die Kanaleigenschaft: {property} entfernen möchten? Dies kann nicht rückgängig gemacht werden.","dataTypes":{"char":"Vorzeichenbehaftete 8-Bit-Ganzzahl (-128 bis 127).","uchar":"Vorzeichenlose 8-Bit-Ganzzahl (0 bis 255).","short":"Vorzeichenbehaftete 16-Bit-Ganzzahl (-32.768 bis 32.767).","ushort":"Vorzeichenlose 16-Bit-Ganzzahl (0 bis 65.535).","int":"Vorzeichenbehaftete 32-Bit-Ganzzahl (-2.147.483.648 bis 2.147.483.647).","uint":"Vorzeichenlose 32-Bit-Ganzzahl (0 bis 4.294.967.295).","float":"Gleitkommazahl (z. B. 3.14, -0.001).","bool":"Boolescher Wert: wahr oder falsch.","string":"Eine Zeichenfolge (z. B. „Hallo“).","enum":"Aufzählungswert, der aus einem vordefinierten Satz ausgewählt wurde.","unknown":"Unbekannter oder nicht spezifizierter Datentyp."},"editValue":"Das manuelle Ändern dieses Werts ist erlaubt, aber er kann automatisch überschrieben werden, wenn diese Eigenschaft einem Gerät zugeordnet ist. Mit Vorsicht verwenden."},"misc":{"notSet":"Nicht gesetzt","noValuesProvided":"Keine Werte angegeben","confirmDiscard":"Sie haben ungespeicherte Änderungen. Möchten Sie diese wirklich verwerfen?"}}`),fields:{devices:{search:{placeholder:`Geräte suchen...`},plugin:{title:`Geräte-Plugin`,placeholder:`Geräte-Plugin auswählen`},state:{title:`Status`,placeholder:`Status auswählen`},showHidden:{title:`Ausgeblendete anzeigen`},id:{title:`Interner Bezeichner`,placeholder:`Geräte-ID`},identifier:{title:`Systembezeichner`,placeholder:`Geräte-Systembezeichner`},category:{title:`Kategorie`,placeholder:`Gerätekategorie`,description:`Über Kategorie`,validation:{required:`Bitte wählen Sie eine Gerätekategorie`}},name:{title:`Name`,placeholder:`Gerätename`,validation:{required:`Bitte geben Sie den Gerätenamen ein`}},description:{title:`Beschreibung`,placeholder:`Gerätebeschreibung`},enabled:{title:`Aktiviert`,placeholder:`Gerät aktivieren oder deaktivieren`},room:{title:`Raum`,placeholder:`Raum auswählen (optional)`,hint:`Weisen Sie dieses Gerät einem physischen Raum zu`},zones:{title:`Zonen`,placeholder:`Zonen auswählen (optional)`,hint:`Weisen Sie dieses Gerät logischen Zonen zu (z.B. Sicherheit, Außenbereich). Die Etagenzonenmitgliedschaft wird aus der Raumzuweisung abgeleitet.`},validation:{title:`Validierung`}},channels:{search:{placeholder:`Kanäle suchen...`},plugin:{title:`Kanal-Plugin`,placeholder:`Kanal-Plugin auswählen`},device:{title:`Gerät`,placeholder:`Kanalgerät`,description:`Über Gerät`,validation:{required:`Bitte wählen Sie ein Kanalgerät`}},id:{title:`Interner Bezeichner`,placeholder:`Kanal-ID`},category:{title:`Kategorie`,placeholder:`Kanalkategorie`,description:`Über Kategorie`,validation:{required:`Bitte wählen Sie eine Kanalkategorie`}},name:{title:`Name`,placeholder:`Kanalname`,validation:{required:`Bitte geben Sie den Kanalnamen ein`}},description:{title:`Beschreibung`,placeholder:`Kanalbeschreibung`}},channelsProperties:{search:{placeholder:`Eigenschaften suchen...`},channel:{title:`Kanal`,placeholder:`Kanaleigenschafts-Kanal`,description:`Über Kanal`,validation:{required:`Bitte wählen Sie einen Kanaleigenschafts-Kanal`}},id:{title:`Interner Bezeichner`,placeholder:`Kanaleigenschafts-ID`},category:{title:`Kategorie`,placeholder:`Kanaleigenschafts-Kategorie`,description:`Über Kategorie`,validation:{required:`Bitte wählen Sie eine Kanaleigenschafts-Kategorie`}},name:{title:`Name`,placeholder:`Kanaleigenschafts-Name`},permissions:{title:`Berechtigungen`,placeholder:`Kanaleigenschafts-Lese- & Schreibberechtigungen`,validation:{required:`Bitte wählen Sie Kanaleigenschafts-Berechtigungen`}},dataType:{title:`Datentyp`,placeholder:`Wertdatentyp der Kanaleigenschaft`,validation:{required:`Bitte wählen Sie einen Kanaleigenschafts-Datentyp`}},unit:{title:`Einheit`,placeholder:`Kanaleigenschafts-Einheit`},format:{title:{enum:`Erlaubte Werte`,min:`Minimalwert`,max:`Maximalwert`},placeholder:{enum:`Liste erlaubter Werte`,min:`Minimal erlaubter Wert`,max:`Maximal erlaubter Wert`},validation:{required:{enum:`Bitte geben Sie die Liste erlaubter Werte der Kanaleigenschaft ein`}}},invalid:{title:`Ungültiger Wert`,placeholder:`Ungültiger Wert der Kanaleigenschaft`},step:{title:`Schrittwert`,placeholder:`Schrittwert der Kanaleigenschaft`},enterValue:{title:`Wert eingeben`},value:{title:`Wert`,placeholder:`Aktueller Wert der Kanaleigenschaft`}}},table:{devices:{columns:{name:{title:`Name`},type:{title:`Typ`},state:{title:`Status`},category:{title:`Kategorie`},enabled:{title:`Aktiviert`,values:{enabled:`Aktiviert`,disabled:`Deaktiviert`}},validation:{title:`Validierung`}}},channels:{columns:{name:{title:`Name`},device:{title:`Gerät`},category:{title:`Kategorie`}}},channelsProperties:{columns:{name:{title:`Name`},channel:{title:`Kanal`},category:{title:`Kategorie`},permissions:{title:`Berechtigungen`},dataType:{title:`Datentyp`,type:{enum:`Enum-Wert-Info`,numeric:`Numerische Wert-Info`}},value:{title:`Wert`}}}},filters:{devices:{types:{title:`Nach Gerätetyp filtern`},states:{title:`Nach Verbindungsstatus filtern`},enabled:{title:`Nach Gerätestatus filtern`,placeholder:`Gerätestatus auswählen`,values:{enabled:`Aktiviert`,disabled:`Deaktiviert`,all:`Alle`}},category:{title:`Nach Gerätekategorie filtern`,placeholder:`Eine oder mehrere auswählen`},validation:{title:`Nach Validierungsstatus filtern`}},channels:{category:{title:`Nach Kanalkategorie filtern`,placeholder:`Eine oder mehrere auswählen`}},channelsProperties:{category:{title:`Nach Eigenschaftskategorie filtern`,placeholder:`Eine oder mehrere auswählen`},dataType:{title:`Nach Eigenschafts-Datentyp filtern`},permission:{title:`Nach Eigenschaftsberechtigung filtern`}}},buttons:{add:{title:`Hinzufügen`},wizard:{title:`Assistent`},edit:{title:`Bearbeiten`},detail:{title:`Details`},discard:{title:`Verwerfen`},cancel:{title:`Abbrechen`},close:{title:`Schließen`},save:{title:`Speichern`},change:{title:`Ändern`},remove:{title:`Entfernen`},resetFilters:{title:`Filter zurücksetzen`},yes:{title:`Ja`},no:{title:`Nein`},reset:{title:`Zurücksetzen`},addChannel:{title:`Kanal hinzufügen`},addProperty:{title:`Eigenschaft hinzufügen`},control:{title:`Steuern`},refresh:{title:`Aktualisieren`},loadMore:{title:`Mehr laden`},viewLogs:{title:`Protokolle anzeigen`},back:{title:`Zurück`}},labels:{liveTail:`Live-Verfolgung`,paused:`Pausiert`,overview:`Übersicht`,validation:`Validierung`,logs:`Protokolle`},states:{online:`Online`,offline:`Offline`,all:`Alle`,connected:`Verbunden`,disconnected:`Getrennt`,init:`Initialisiert`,ready:`Bereit`,running:`Aktiv`,sleeping:`Ruhezustand`,stopped:`Gestoppt`,lost:`Verloren`,alert:`Alarm`,unknown:`Unbekannt`},permissions:{ro:`Nur lesen`,rw:`Lesen & Schreiben`,wo:`Nur schreiben`,ev:`Ereignis`},dataTypes:{char:`Zeichen`,uchar:`Vorzeichenloses Zeichen`,short:`Kurze ganze Zahl`,ushort:`Vorzeichenlose kurze Ganzzahl`,int:`Ganzzahl`,uint:`Vorzeichenlose Ganzzahl`,float:`Fließkommazahl`,bool:`Boolescher Wert`,string:`Zeichenkette`,enum:`Aufzählung`,unknown:`Unbekannt`},categories:{devices:{generic:`Generisch`,air_conditioner:`Klimaanlage`,air_dehumidifier:`Luftentfeuchter`,air_humidifier:`Luftbefeuchter`,air_purifier:`Luftreiniger`,alarm:`Alarm`,av_receiver:`AV-Receiver`,camera:`Kamera`,door:`Tür`,doorbell:`Türklingel`,fan:`Ventilator`,game_console:`Spielkonsole`,heating_unit:`Heizgerät`,lighting:`Beleuchtung`,lock:`Schloss`,media:`Medien`,outlet:`Steckdose`,projector:`Projektor`,pump:`Pumpe`,robot_vacuum:`Saugroboter`,sensor:`Sensor`,set_top_box:`Set-Top-Box`,speaker:`Lautsprecher`,sprinkler:`Sprinkler`,streaming_service:`Streaming-Dienst`,switcher:`Schalter`,television:`Fernseher`,terminal:`Terminal`,thermostat:`Thermostat`,valve:`Ventil`,water_heater:`Warmwasserbereiter`,window_covering:`Jalousie/Rollladen`,input_controller:`Eingangssteuerung`},channels:{generic:`Generisch`,accelerometer:`Beschleunigungssensor`,air_particulate:`Feinstaub`,air_quality:`Luftqualität`,alarm:`Alarm`,battery:`Batterie`,button:`Taster`,buzzer:`Summer`,camera:`Kamera`,carbon_dioxide:`Kohlendioxid`,carbon_monoxide:`Kohlenmonoxid`,contact:`Kontakt`,cooler:`Kühler`,dehumidifier:`Entfeuchter`,device_information:`Geräteinformationen`,door:`Tür`,doorbell:`Türklingel`,electrical_energy:`Elektrische Energie`,electrical_generation:`Stromerzeugung`,electrical_power:`Elektrische Leistung`,fan:`Ventilator`,filter:`Filter`,flow:`Durchfluss`,gas:`Gas`,heater:`Heizung`,humidifier:`Befeuchter`,humidity:`Luftfeuchtigkeit`,illuminance:`Beleuchtungsstärke`,indicator:`Statusanzeige`,leak:`Leckage`,light:`Licht`,lock:`Schloss`,media_input:`Medieneingang`,media_playback:`Medienwiedergabe`,microphone:`Mikrofon`,motion:`Bewegung`,nitrogen_dioxide:`Stickstoffdioxid`,occupancy:`Belegung`,outlet:`Steckdose`,ozone:`Ozon`,pressure:`Druck`,robot_vacuum:`Saugroboter`,smoke:`Rauch`,speaker:`Lautsprecher`,sulphur_dioxide:`Schwefeldioxid`,switcher:`Schalter`,television:`Fernseher`,projector:`Projektor`,temperature:`Temperatur`,thermostat:`Thermostat`,valve:`Ventil`,volatile_organic_compounds:`Flüchtige organische Verbindungen`,window_covering:`Jalousie/Rollladen`,analog_input:`Analoger Eingang`,binary_input:`Binärer Eingang`},channelsProperties:{generic:`Generisch`,acceleration_x:`Beschleunigung X`,acceleration_y:`Beschleunigung Y`,acceleration_z:`Beschleunigung Z`,active:`Aktiv`,alarm_state:`Alarmzustand`,album:`Album`,angle:`Winkel`,aqi:`AQI (Luftqualitätsindex)`,artist:`Künstler`,artwork_url:`Kunstwerk-URL`,average_power:`Durchschnittliche Leistung`,balance:`Gleichgewicht`,bass:`Bass`,brightness:`Helligkeit`,change_needed:`Veränderung nötig`,child_lock:`Kindersicherung`,color_blue:`Farbe blau`,color_green:`Farbe grün`,color_red:`Farbe rot`,color_temperature:`Farbtemperatur`,color_white:`Farbe weiß`,command:`Befehl`,connection_type:`Verbindungstyp`,consumption:`Verbrauch`,current:`Aktuell`,concentration:`Konzentration`,defrost_active:`Abtauung aktiv`,detected:`Erkannt`,direction:`Richtung`,distance:`Distanz`,duration:`Dauer`,event:`Ereignis`,fault:`Fehler`,fault_description:`Fehlerbeschreibung`,firmware_revision:`Firmware-Revision`,frequency:`Frequenz`,grid_export:`Rasterexport`,grid_import:`Grid-Import`,hardware_revision:`Hardware-Revision`,hue:`Farbton`,humidity:`Luftfeuchtigkeit`,illuminance:`Beleuchtungsstärke`,in_use:`Im Einsatz`,infrared:`Infrarot`,last_event:`Letzte Veranstaltung`,level:`Ebene`,life_remaining:`Das verbleibende Leben`,link_quality:`Linkqualität`,locked:`Gesperrt`,manufacturer:`Hersteller`,media_type:`Medientyp`,mist_level:`Nebelgrad`,model:`Modell`,mode:`Modus`,mute:`Stumm`,natural_breeze:`Natürliche Brise`,obstruction:`Obstruktion`,on:`On`,orientation:`Orientierung`,over_current:`Überstrom`,over_voltage:`Überspannung`,over_power:`Übermacht`,pan:`Pfanne`,peak_level:`Spitzenniveau`,percentage:`Prozentsatz`,position:`Position`,power:`Leistung`,pressure:`Druck`,production:`Produktion`,rate:`Rate`,remaining:`Übrig`,repeat:`Wiederholen`,reset:`Zurücksetzen`,remote_key:`Fernbedienungsschlüssel`,saturation:`Sättigung`,serial_number:`Seriennummer`,shuffle:`Shuffle`,siren:`Sirene`,source:`Quelle`,source_label:`Quellenbezeichnung`,speed:`Geschwindigkeit`,state:`Zustand`,status:`Status`,swing:`Swing`,tampered:`Manipuliert`,temperature:`Temperatur`,tilt:`Neigung`,timer:`Timer`,track:`Schiene`,treble:`Verdreifachen`,triggered:`Ausgelöst`,type:`Typ`,units:`Einheiten`,voltage:`Stromspannung`,volume:`Volumen`,warm_mist:`Warmer Nebel`,water_tank_empty:`Wassertank leer`,water_tank_full:`Wassertank voll`,water_tank_level:`Füllstand des Wassertanks`,zoom:`Zoom`,unit:`Einheit`,value:`Wert`}},hidden:{badge:`Ausgeblendet`,by:{system:`System`,user:`Benutzer`},hint:{system:`Automatisch ausgeblendet, weil ein virtuelles Gerät es ersetzt hat. Erscheint wieder, sobald dieses virtuelle Gerät gelöscht wird.`,user:`Von einem Bediener ausgeblendet. Bleibt ausgeblendet, bis es jemand wieder einblendet.`},unhide:`Einblenden`},validation:{status:{valid:`Gültig`,invalid:`Ungültig`,unknown:`Unbekannt`},filter:{valid:`Gültig`,invalid:`Ungültig`,all:`Alle`},errors:`Fehler`,warnings:`Warnungen`,issuesTitle:`Validierungsprobleme`,severity:{error:`Fehler`,warning:`Warnung`},table:{severity:`Schweregrad`,type:`Typ`,message:`Nachricht`,channel:`Kanal`},issueTypes:{missing_channel:`Fehlender Kanal`,missing_property:`Fehlende Eigenschaft`,invalid_data_type:`Ungültiger Datentyp`,invalid_permissions:`Ungültige Berechtigungen`,invalid_format:`Ungültiges Format`,unknown_channel:`Unbekannter Kanal`,duplicate_channel:`Doppelter Kanal`,constraint_one_of_violation:`Bedingungsverletzung (einer von)`,constraint_one_or_more_of_violation:`Bedingungsverletzung (einer oder mehr von)`,constraint_mutually_exclusive_violation:`Bedingungsverletzung (gegenseitig ausschließend)`}},wizard:{steps:{discover:`Suche`,confirm:`Bestätigung`,results:`Ergebnisse`},actions:{cancel:`Abbrechen`,back:`Zurück`,next:`Weiter`,adopt:`Geräte hinzufügen`,addMore:`Weitere hinzufügen`,done:`Fertig`},statuses:{checking:`Wird geprüft`,ready:`Bereit`,needs_credentials:`Anmeldedaten erforderlich`,already_registered:`Bereits hinzugefügt`,unsupported:`Nicht unterstützt`,failed:`Fehlgeschlagen`,willCreate:`Wird erstellt`,willUpdate:`Wird aktualisiert`,created:`Erstellt`,updated:`Aktualisiert`,skipped:`Keine Änderungen`},columns:{name:`Name`,status:`Status`,category:`Kategorie`,change:`Aktion`,error:`Fehler`},totals:{found:`Gefunden: {count}`,adoptable:`Hinzufügbar: {count}`,alreadyAdded:`Bereits hinzugefügt: {count}`,unsupported:`Nicht unterstützt: {count}`,visible:`Sichtbar: {count}`},texts:{loading:`Suchsitzung wird geladen...`,empty:`Noch keine Geräte gefunden`,noSelection:`Es wurden keine Geräte ausgewählt`,resultsSuccess:`Alle ausgewählten Geräte wurden erfolgreich hinzugefügt`,resultsFailed:`Einige Geräte konnten nicht hinzugefügt werden`}},diagnostics:{title:`Hardware-Eingangsdiagnose`,capabilitiesTitle:`Eingabefunktionen`,supportedInteractions:`Unterstützte Interaktionen`,noDiscreteEvents:`Kontinuierlicher / analoger Eingang (keine diskreten Ereignisse)`,noCapabilities:`Keine Eingabefunktionen verfügbar`,liveEventsTitle:`Live-Ereignisse`,clearEvents:`Löschen`,noOccurrences:`Noch keine Ereignisse empfangen`,columnEvent:`Ereignis`,columnNativeType:`Nativer Typ`,columnTimestamp:`Empfangszeit`,columnData:`Nutzlast`}},"en-US":{menu:{title:`Devices`},meta:{devices:{list:{title:`List devices`},edit:{title:`Edit device: {device}`},add:{title:`Add device`},detail:{title:`Device: {device}`},control:{title:`Control device: {device}`}},channels:{list:{title:`List channels`},edit:{title:`Edit channel: {channel}`},add:{title:`Add channel`},detail:{title:`Channel: {channel}`}},channelsProperties:{edit:{title:`Edit channel property: {property}`},add:{title:`Add channel property`}}},breadcrumbs:{devices:{list:`devices`,add:`add device`,edit:`edit device`,detail:`device: {device}`,control:`control: {device}`},channels:{list:`channels`,add:`add channel`,edit:`edit channel`,detail:`channel: {channel}`},channelsProperties:{add:`add channel property`,edit:`edit channel property`}},headings:{devices:{list:`Devices`,add:`Add device`,edit:`Edit device`,detail:`Device: {device}`,control:`Control: {device}`,remove:`Remove device?`,bulkRemove:`Remove devices?`,bulkEnable:`Enable devices?`,bulkDisable:`Disable devices?`,adjustFilters:`Filter devices`,selectPlugin:`Device plugin required`,selectWizardPlugin:`Select a device wizard`},channels:{list:`Channels`,add:`Add channel`,edit:`Edit channel`,detail:`Channel: {channel}`,remove:`Remove channel?`,adjustFilters:`Filter channels`,selectPlugin:`Channel plugin required`},channelsProperties:{add:`Add channel property`,edit:`Edit channel property`,remove:`Remove channel property?`,adjustFilters:`Filter properties`},misc:{discard:`Discard changes?`}},subHeadings:{devices:{list:`Manage smart panel devices`,add:`Add new smart panel device`,edit:`Edit smart panel device`,detail:`Manage smart panel device`,control:`Control smart panel device`,adjustFilters:`Adjust display filters`},channels:{list:`Manage smart panel devices channels`,add:`Add new smart panel device channel`,edit:`Edit smart panel device channel`,detail:`Manager smart panel device channel`,adjustFilters:`Adjust display filters`},channelsProperties:{add:`Add new smart panel channel property`,edit:`Edit smart panel channel property`,adjustFilters:`Adjust display filters`}},messages:{devices:{notFound:`The device you are looking for doesn’t exist or may have been removed.`,created:`New device added successfully.`,notCreated:`Something went wrong. Unable to create the device.`,edited:`Changes saved! The device: {device} has been updated.`,notEdited:`Something went wrong. Device update was not successful.`,removed:`The device: {device} was successfully removed.`,removeCanceled:`Device: {device} removal has been canceled.`,notRemoved:`Something went wrong, and the device: {device} was not removed.`,deletedWhileEditing:`This device was deleted and is no longer available.`,bulkRemoved:`{count} devices were successfully removed.`,bulkRemoveFailed:`Failed to remove {count} devices.`,bulkRemoveCanceled:`Bulk device removal has been canceled.`,bulkEnabled:`{count} devices were successfully enabled.`,bulkEnableFailed:`Failed to enable {count} devices.`,bulkEnableCanceled:`Bulk device enable has been canceled.`,bulkDisabled:`{count} devices were successfully disabled.`,bulkDisableFailed:`Failed to disable {count} devices.`,bulkDisableCanceled:`Bulk device disable has been canceled.`,notLoaded:`Failed to load device. Please try again later.`,unhidden:`Device {device} is visible again`,notUnhidden:`Device {device} could not be made visible`,hiddenNotLoaded:`Failed to load the hidden devices. Please try again later.`},channels:{notFound:`The channel you are looking for doesn’t exist or may have been removed.`,notLoaded:`Failed to load channel. Please try again later.`,notLoadedForDevice:`Failed to load channels for this device.`,created:`New channel added successfully.`,notCreated:`Something went wrong. Unable to create the channel.`,edited:`Changes saved! The channel: {channel} has been updated.`,notEdited:`Something went wrong. Channel update was not successful.`,removed:`The channel: {channel} was successfully removed.`,removeCanceled:`Channel: {channel} removal has been canceled.`,notRemoved:`Something went wrong, and the channel: {channel} was not removed.`,noMoreAllowed:`All required and optional channels are assigned to the device. No others can be added.`,deletedWhileEditing:`This channel was deleted and is no longer available.`},channelsProperties:{notFound:`The channel property you are looking for doesn’t exist or may have been removed.`,notLoadedForChannel:`Failed to load properties for this channel.`,created:`New channel property added successfully.`,notCreated:`Something went wrong. Unable to create the channel property.`,edited:`Changes saved! The channel property: {property} has been updated.`,notEdited:`Something went wrong. Channel property update was not successful.`,removed:`The channel property: {property} was successfully removed.`,removeCanceled:`Channel property: {property} removal has been canceled.`,notRemoved:`Something went wrong, and the channel property: {property} was not removed.`,noMoreAllowed:`All required and optional properties are assigned to the channel. No others can be added.`,deletedWhileEditing:`This channel property was deleted and is no longer available.`},misc:{requestError:`Something went wrong, please try again later.`}},texts:JSON.parse(`{"devices":{"noDevices":"You don't have configured any device","noFilteredDevices":"No devices found matching the active filter criteria","loadingDevices":"Loading devices...","loadingDevice":"Loading device...","confirmRemove":"Are you sure you want to remove device: {device}? This cannot be reversed.","confirmBulkRemove":"Are you sure you want to remove {count} devices? This cannot be reversed.","confirmBulkEnable":"Are you sure you want to enable {count} devices?","confirmBulkDisable":"Are you sure you want to disable {count} devices?","description":{"generic":"","air_conditioner":"The Air Conditioner device represents a cooling system with additional features for environmental monitoring and energy management.","air_dehumidifier":"The Air Dehumidifier device represents a system designed to reduce humidity levels in the environment while providing additional monitoring and control capabilities.","air_humidifier":"The Air Humidifier device represents a system designed to increase humidity levels in the environment while providing additional monitoring and control capabilities.","air_purifier":"The Air Purifier device represents a system designed to improve indoor air quality by removing contaminants and monitoring environmental conditions.","alarm":"","av_receiver":"The AV Receiver device represents a home theater receiver/amplifier with input switching and speaker output control.","camera":"The Camera device represents a surveillance or monitoring system designed for video and image capturing, with additional features for environmental monitoring and interaction.","doorbell":"The Doorbell device represents a smart doorbell system that provides video, audio, and additional monitoring features for enhanced home security.","door":"The Door device represents automated or monitored doors, such as garage doors, entrance doors, or other types of doors, with additional features for security and environmental awareness.","fan":"The Fan device represents a standalone or integrated fan system with features for speed control, direction adjustment, and energy monitoring.","game_console":"The Game Console device represents a gaming console that can be controlled for basic power/activity state and media playback where supported.","heating_unit":"The Heating Unit device represents a space or room heating system designed to control and monitor environmental temperature, with optional features for energy and humidity management.","lighting":"The Lighting device represents a lighting system designed to provide illumination with optional features for energy tracking, brightness control, and adaptive lighting based on ambient conditions.","lock":"The Lock device represents an electronic or smart locking system, providing control and monitoring of access points such as doors or gates.","media":"The Media device represents a multimedia system capable of playing, recording, or managing audio and video content.","outlet":"The Outlet device represents a power outlet with advanced monitoring and control features, enabling remote operation and energy tracking. It supports single or multiple outlets for flexible power management.","projector":"The Projector device represents a video projection display that can be powered on/off and switched between input sources.","pump":"The Pump device represents a water or fluid pump with functionality for flow control, monitoring, and energy tracking.","robot_vacuum":"The Robot Vacuum device represents an autonomous cleaning device with capabilities for energy tracking and operational monitoring.","sensor":"The Sensor device represents a versatile monitoring unit capable of tracking various environmental and safety parameters.","set_top_box":"The Set-top Box device represents a TV-connected media device (streaming box, IPTV box, or HDMI stick) providing playback control and optional source selection.","speaker":"The Speaker device represents an audio output system capable of producing sound and potentially supporting media playback and input functionality.","sprinkler":"The Sprinkler device represents an irrigation system designed to control water flow and monitor environmental conditions to optimize watering.","streaming_service":"The Streaming Service device represents a cloud-based media player (e.g., Spotify) that provides playback control and metadata without a physical power state.","switcher":"The Switcher device represents a controllable outlet or switch that can toggle the power supply to connected devices and monitor energy usage. It supports multiple outlets for power control.","television":"The Television device represents a smart TV or similar media device that can be controlled and monitored for its audio and display functionality.","thermostat":"The Thermostat device represents a climate control system that monitors and adjusts temperature and related environmental factors.","valve":"The Valve device represents a controllable valve used for managing the flow of liquids or gases in various systems.","water_heater":"The Water Heater device represents a water heating system designed to heat and maintain water temperature, with optional features for energy monitoring and leak detection.","window_covering":"The Window Covering device represents automated window treatments such as blinds, shades, or curtains."},"selectPlugin":"To create a new device, please select a compatible plugin from the list. Plugins provide the necessary configuration options for specific device type.","noWizardForDevicePlugin":"The \\"{type}\\" device plugin does not provide a setup wizard.","noChannels":"This device doesn't have any channels yet. Channels define the inputs or outputs of a device. Create a new channel to start interacting with this device.","category":"Category","channelsCount":"No channels configured | One channel configured | {count} channels configured","alertsCount":"No alerts detected | One alert detected | {count} alerts detected","channels":"Channels","alerts":"Alerts","status":"Status","validation":"Validation","noControllableProperties":"This device has no controllable properties. Properties must have read-write or write-only permissions to be controlled.","logs":{"title":"Device Logs","detail":"Log detail","noLogs":"No logs available","noLogsDescription":"No logs have been recorded for this device yet","noMessage":"(no message)","noMoreEntries":"No more log entries"}},"channels":{"noChannels":"You don't have configured any device channel","noFilteredChannels":"No channels found matching the active filter criteria","loadingChannels":"Loading channels...","loadingChannel":"Loading channel...","confirmRemove":"Are you sure you want to remove channel: {channel}? This cannot be reversed.","description":{"generic":"","air_particulate":"Monitors the concentration of particulate matter (e.g., PM2.5 and PM10) in the air, providing insights into air quality and pollution levels.","air_quality":"Monitors overall air quality using an index (0-500) or level indicator, providing a simplified assessment of indoor air conditions.","alarm":"","battery":"Reports the status of a device's battery, including level, charging state, and operational health.","camera":"Provides video and image data streams from surveillance or monitoring cameras. This channel supports configuration and control of camera devices, such as surveillance cameras or babysitting monitors.","carbon_dioxide":"Monitors CO₂ levels in the environment to track air quality and ventilation efficiency.","carbon_monoxide":"Detects the presence of carbon monoxide (CO) to ensure safety in enclosed spaces.","contact":"Tracks the open or closed state of a contact point, such as a door, window, or cabinet.","cooler":"Controls devices that lower air or liquid temperatures, such as air conditioners or refrigeration systems.","dehumidifier":"Controls dehumidifier devices, managing humidity reduction with features like target humidity, operating modes, and water tank monitoring.","device_information":"This channel provides metadata about the device, including manufacturer details, model information, and operational statuses.","doorbell":"Represents smart doorbells, providing features such as button press detection and optional camera integration.","door":"Manages the open/close states of doors, including garage and entry doors.","electrical_energy":"Measures cumulative energy consumption over time in kilowatt-hours (kWh).","electrical_generation":"Reports energy production from a photovoltaic (PV) or other generation source, tracking cumulative energy generated in kWh.","electrical_power":"Reports instantaneous power metrics such as voltage, current, power, and frequency for real-time monitoring and diagnostics.","fan":"Controls fan devices, including speed, oscillation, and modes for air circulation.","filter":"Monitors the status and remaining life of air or water filters, indicating when replacement is needed.","flow":"Monitors the rate of fluid or air flow, typically measured in cubic meters per hour (m³/h).","gas":"Detects the presence of natural gas or other combustible gases to ensure safety in enclosed spaces.","heater":"Manages heating devices, allowing control of temperature settings and modes.","humidifier":"Controls humidifier devices, managing humidity increase with features like target humidity, mist level control, and water tank monitoring.","humidity":"Measures the relative humidity in the environment, reported as a percentage.","illuminance":"Detects ambient light levels, typically measured in lux, to monitor brightness in a space.","leak":"Identifies the presence of water or other liquids to detect leaks and prevent damage.","light":"Controls lighting devices, supporting brightness, color temperature, and color adjustments.","lock":"Manages the locked/unlocked state of physical locks for doors, safes, or other secure areas.","media_input":"Manages the input sources of multimedia devices like TVs, projectors, or audio receivers.","media_playback":"Provides playback controls for multimedia devices, excluding volume control (handled by Speaker and Microphone channels).","microphone":"Represents audio input devices, reporting activity or capturing sound.","motion":"Detects motion in an area to trigger alerts or automate responses.","nitrogen_dioxide":"Monitors the concentration of NO₂ in the air, often used in environmental and industrial monitoring.","occupancy":"Detects the presence of people in a space for automation or energy efficiency purposes.","outlet":"Controls and monitors electrical outlets.","ozone":"Measures ozone (O₃) levels in the air, often used in environmental quality assessments.","pressure":"Reports atmospheric or liquid pressure values, typically measured in pascals (kPa).","robot_vacuum":"Controls robotic vacuum cleaners, providing commands for start, stop, docking, and monitoring states.","smoke":"Detects smoke in the environment, triggering alarms or alerts for safety.","speaker":"Controls speaker devices, including volume, mute state, and audio output modes.","sulphur_dioxide":"Measures sulphur dioxide (SO₂) levels in the air for environmental monitoring.","switcher":"Represents binary switches to control devices like lights, fans, or appliances.","television":"Provides control for TVs, including input source, brightness, and power state.","projector":"Provides control for projectors, including power, input source, brightness, and remote keys.","temperature":"Measures the current temperature in an environment, reported in degrees Celsius .","thermostat":"Manages climate control systems, allowing adjustments of heating, cooling, and fan settings.","valve":"Controls fluid or gas valves, managing open/close states or flow rates.","volatile_organic_compounds":"Monitors the concentration of VOCs in the air to track pollution or air quality.","window_covering":"Controls coverings like blinds, curtains, and shutters, including position and tilt adjustments."},"selectPlugin":"To create a new channel, please select a compatible plugin from the list. Plugins provide the necessary configuration options for specific channel type."},"channelsProperties":{"noProperties":"You don't have configured any channel property","noFilteredProperties":"No channels properties found matching the active filter criteria","loadingProperties":"Loading channels properties...","loadingProperty":"Loading channel property...","loadingChannels":"Loading channels...","loadingChannel":"Loading channel...","confirmRemove":"Are you sure you want to remove channel property: {property}? This cannot be reversed.","dataTypes":{"char":"Signed 8-bit integer (-128 to 127).","uchar":"Unsigned 8-bit integer (0 to 255).","short":"Signed 16-bit integer (-32,768 to 32,767).","ushort":"Unsigned 16-bit integer (0 to 65,535).","int":"Signed 32-bit integer (-2,147,483,648 to 2,147,483,647).","uint":"Unsigned 32-bit integer (0 to 4,294,967,295).","float":"Floating-point number (e.g., 3.14, -0.001).","bool":"Boolean value: true or false.","string":"A sequence of characters (e.g., \\"hello\\").","enum":"Enumerated value selected from a predefined set.","unknown":"Unknown or unspecified data type."},"editValue":"Changing this value manually is allowed, but it may be automatically overwritten if this property is mapped to a device. Use with caution."},"misc":{"notSet":"Not set","noValuesProvided":"No values provided","confirmDiscard":"You have unsaved changes. Are you sure you want to discard them?"}}`),fields:{devices:{search:{placeholder:`Search devices...`},plugin:{title:`Device plugin`,placeholder:`Select device plugin`},state:{title:`State`,placeholder:`Select state`},showHidden:{title:`Show hidden`},id:{title:`Internal identifier`,placeholder:`Device id`},identifier:{title:`System identifier`,placeholder:`Device system identifier`},category:{title:`Category`,placeholder:`Device category`,description:`About category`,validation:{required:`Please select device category`}},name:{title:`Name`,placeholder:`Device name`,validation:{required:`Please fill in device name`}},description:{title:`Description`,placeholder:`Device description`},enabled:{title:`Enabled`,placeholder:`Enable or disable device`},room:{title:`Room`,placeholder:`Select a room (optional)`,hint:`Assign this device to a physical room location`},zones:{title:`Zones`,placeholder:`Select zones (optional)`,hint:`Assign this device to logical zones (e.g., Security, Outdoor). Floor zone membership is derived from room assignment.`},validation:{title:`Validation`}},channels:{search:{placeholder:`Search channels...`},plugin:{title:`Channel plugin`,placeholder:`Select channel plugin`},device:{title:`Device`,placeholder:`Channel device`,description:`About device`,validation:{required:`Please select channel device`}},id:{title:`Internal identifier`,placeholder:`Channel id`},category:{title:`Category`,placeholder:`Channel category`,description:`About category`,validation:{required:`Please select channel category`}},name:{title:`Name`,placeholder:`Channel name`,validation:{required:`Please fill in channel name`}},description:{title:`Description`,placeholder:`Channel description`}},channelsProperties:{search:{placeholder:`Search properties...`},channel:{title:`Channel`,placeholder:`Channel property channel`,description:`About channel`,validation:{required:`Please select channel property channel`}},id:{title:`Internal identifier`,placeholder:`Channel property id`},category:{title:`Category`,placeholder:`Channel property category`,description:`About category`,validation:{required:`Please select channel property category`}},name:{title:`Name`,placeholder:`Channel property name`},permissions:{title:`Permissions`,placeholder:`Channel property reading & writing permissions`,validation:{required:`Please select channel property permissions`}},dataType:{title:`Data type`,placeholder:`Channel property value data type`,validation:{required:`Please select channel property data type`}},unit:{title:`Unit`,placeholder:`Channel property unit`},format:{title:{enum:`Allowed values`,min:`Minimum value`,max:`Maximum value`},placeholder:{enum:`List of allowed values`,min:`Minimum allowed value`,max:`Maximum allowed value`},validation:{required:{enum:`Please fill in channel property list of allowed values`}}},invalid:{title:`Invalid value`,placeholder:`Channel property invalid value`},step:{title:`Step value`,placeholder:`Channel property step value`},enterValue:{title:`Enter value`},value:{title:`Value`,placeholder:`Channel property actual value`}}},table:{devices:{columns:{name:{title:`Name`},type:{title:`Type`},state:{title:`State`},category:{title:`Category`},enabled:{title:`Enabled`,values:{enabled:`Enabled`,disabled:`Disabled`}},validation:{title:`Validation`}}},channels:{columns:{name:{title:`Name`},device:{title:`Device`},category:{title:`Category`}}},channelsProperties:{columns:{name:{title:`Name`},channel:{title:`Channel`},category:{title:`Category`},permissions:{title:`Permissions`},dataType:{title:`Data type`,type:{enum:`Enum value info`,numeric:`Numeric value info`}},value:{title:`Value`}}}},filters:{devices:{types:{title:`Filter by device type`},states:{title:`Filter by connection state`},enabled:{title:`Filter by device state`,placeholder:`Select device state`,values:{enabled:`Enabled`,disabled:`Disabled`,all:`All`}},category:{title:`Filter by device category`,placeholder:`Select one or more`},validation:{title:`Filter by validation status`}},channels:{category:{title:`Filter by channel category`,placeholder:`Select one or more`}},channelsProperties:{category:{title:`Filter by property category`,placeholder:`Select one or more`},dataType:{title:`Filter by property data type`},permission:{title:`Filter by property permission`}}},buttons:{add:{title:`Add`},wizard:{title:`Wizard`},edit:{title:`Edit`},detail:{title:`Detail`},discard:{title:`Discard`},cancel:{title:`Cancel`},close:{title:`Close`},save:{title:`Save`},change:{title:`Change`},remove:{title:`Remove`},resetFilters:{title:`Reset filters`},yes:{title:`Yes`},no:{title:`No`},reset:{title:`Reset`},addChannel:{title:`Add channel`},addProperty:{title:`Add property`},control:{title:`Control`},refresh:{title:`Refresh`},loadMore:{title:`Load more`},viewLogs:{title:`View logs`},back:{title:`Go back`}},labels:{liveTail:`Live tail`,paused:`Paused`,overview:`Overview`,validation:`Validation`,logs:`Logs`},states:{online:`Online`,offline:`Offline`,all:`All`,connected:`Connected`,disconnected:`Disconnected`,init:`Initialized`,ready:`Ready`,running:`Running`,sleeping:`Sleeping`,stopped:`Stopped`,lost:`Lost`,alert:`Alert`,unknown:`Unknown`},permissions:{ro:`Read only`,rw:`Read & write`,wo:`Write only`,ev:`Event`},dataTypes:{char:`Char`,uchar:`Unsigned char`,short:`Short integer`,ushort:`Unsigned short integer`,int:`Integer`,uint:`Unsigned integer`,float:`Float`,bool:`Boolean`,string:`String`,enum:`Enum`,unknown:`Unknown`},categories:{devices:{generic:`Generic`,air_conditioner:`Air conditioner`,air_dehumidifier:`Air dehumidifier`,air_humidifier:`Air humidifier`,air_purifier:`Air purifier`,alarm:`Alarm`,av_receiver:`AV receiver`,camera:`Camera`,door:`Door`,doorbell:`Doorbell`,fan:`Fan`,game_console:`Game console`,heating_unit:`Heating unit`,lighting:`Lighting`,lock:`Lock`,media:`Media`,outlet:`Outlet`,projector:`Projector`,pump:`Pump`,robot_vacuum:`Robot vacuum`,sensor:`Sensor`,set_top_box:`Set-top box`,speaker:`Speaker`,sprinkler:`Sprinkler`,streaming_service:`Streaming service`,switcher:`Switcher`,television:`Television`,terminal:`Terminal`,thermostat:`Thermostat`,valve:`Valve`,water_heater:`Water heater`,window_covering:`Window covering`,input_controller:`Input controller`},channels:{generic:`Generic`,accelerometer:`Accelerometer`,air_particulate:`Air particulate`,air_quality:`Air quality`,alarm:`Alarm`,battery:`Battery`,button:`Button`,buzzer:`Buzzer`,camera:`Camera`,carbon_dioxide:`Carbon dioxide`,carbon_monoxide:`Carbon monoxide`,contact:`Contact`,cooler:`Cooler`,dehumidifier:`Dehumidifier`,device_information:`Device information`,door:`Door`,doorbell:`Doorbell`,electrical_energy:`Electrical energy`,electrical_generation:`Electrical generation`,electrical_power:`Electrical power`,fan:`Fan`,filter:`Filter`,flow:`Flow`,gas:`Gas`,heater:`Heater`,humidifier:`Humidifier`,humidity:`Humidity`,illuminance:`Illuminance`,indicator:`Indicator`,leak:`Leak`,light:`Light`,lock:`Lock`,media_input:`Media input`,media_playback:`Media playback`,microphone:`Microphone`,motion:`Motion`,nitrogen_dioxide:`Nitrogen dioxide`,occupancy:`Occupancy`,outlet:`Outlet`,ozone:`Ozone`,pressure:`Pressure`,robot_vacuum:`Robot vacuum`,smoke:`Smoke`,speaker:`Speaker`,sulphur_dioxide:`Sulphur dioxide`,switcher:`Switcher`,television:`Television`,projector:`Projector`,temperature:`Temperature`,thermostat:`Thermostat`,valve:`Valve`,volatile_organic_compounds:`Volatile organic compounds`,window_covering:`Window covering`,analog_input:`Analog input`,binary_input:`Binary input`},channelsProperties:{generic:`Generic`,acceleration_x:`Acceleration X`,acceleration_y:`Acceleration Y`,acceleration_z:`Acceleration Z`,active:`Active`,alarm_state:`Alarm state`,album:`Album`,angle:`Angle`,aqi:`AQI`,artist:`Artist`,artwork_url:`Artwork URL`,average_power:`Average power`,balance:`Balance`,bass:`Bass`,brightness:`Brightness`,change_needed:`Change needed`,child_lock:`Child lock`,color_blue:`Color blue`,color_green:`Color green`,color_red:`Color red`,color_temperature:`Color temperature`,color_white:`Color white`,command:`Command`,connection_type:`Connection type`,consumption:`Consumption`,current:`Current`,concentration:`Concentration`,defrost_active:`Defrost active`,detected:`Detected`,direction:`Direction`,distance:`Distance`,duration:`Duration`,event:`Event`,fault:`Fault`,fault_description:`Fault description`,firmware_revision:`Firmware revision`,frequency:`Frequency`,grid_export:`Grid export`,grid_import:`Grid import`,hardware_revision:`Hardware revision`,hue:`Hue`,humidity:`Humidity`,illuminance:`Illuminance`,in_use:`In Use`,infrared:`Infrared`,last_event:`Last event`,level:`Level`,life_remaining:`Life remaining`,link_quality:`Link quality`,locked:`Locked`,manufacturer:`Manufacturer`,media_type:`Media type`,mist_level:`Mist level`,model:`Model`,mode:`Mode`,mute:`Mute`,natural_breeze:`Natural breeze`,obstruction:`Obstruction`,on:`On`,orientation:`Orientation`,over_current:`Over current`,over_voltage:`Over voltage`,over_power:`Over power`,pan:`Pan`,peak_level:`Peak level`,percentage:`Percentage`,position:`Position`,power:`Power`,pressure:`Pressure`,production:`Production`,rate:`Rate`,remaining:`Remaining`,repeat:`Repeat`,reset:`Reset`,remote_key:`Remote key`,saturation:`Saturation`,serial_number:`Serial number`,shuffle:`Shuffle`,siren:`Siren`,source:`Source`,source_label:`Source label`,speed:`Speed`,state:`State`,status:`Status`,swing:`Swing`,tampered:`Tampered`,temperature:`Temperature`,tilt:`Tilt`,timer:`Timer`,track:`Track`,treble:`Treble`,triggered:`Triggered`,type:`Type`,units:`Units`,voltage:`Voltage`,volume:`Volume`,warm_mist:`Warm mist`,water_tank_empty:`Water tank empty`,water_tank_full:`Water tank full`,water_tank_level:`Water tank level`,zoom:`Zoom`,unit:`Unit`,value:`Value`}},hidden:{badge:`Hidden`,by:{system:`System`,user:`User`},hint:{system:`Hidden automatically because a virtual device replaced it. It reappears once that virtual device is deleted.`,user:`Hidden by an operator. It stays hidden until someone unhides it.`},unhide:`Unhide`},validation:{status:{valid:`Valid`,invalid:`Invalid`,unknown:`Unknown`},filter:{valid:`Valid`,invalid:`Invalid`,all:`All`},errors:`errors`,warnings:`warnings`,issuesTitle:`Validation Issues`,severity:{error:`Error`,warning:`Warning`},table:{severity:`Severity`,type:`Type`,message:`Message`,channel:`Channel`},issueTypes:{missing_channel:`Missing channel`,missing_property:`Missing property`,invalid_data_type:`Invalid data type`,invalid_permissions:`Invalid permissions`,invalid_format:`Invalid format`,unknown_channel:`Unknown channel`,duplicate_channel:`Duplicate channel`,constraint_one_of_violation:`Constraint violation (one of)`,constraint_one_or_more_of_violation:`Constraint violation (one or more of)`,constraint_mutually_exclusive_violation:`Constraint violation (mutually exclusive)`}},wizard:{steps:{discover:`Discovery`,confirm:`Confirm`,results:`Results`},actions:{cancel:`Cancel`,back:`Back`,next:`Next`,adopt:`Add devices`,addMore:`Add more`,done:`Done`},statuses:{checking:`Checking`,ready:`Ready`,needs_credentials:`Credentials required`,already_registered:`Already added`,unsupported:`Unsupported`,failed:`Failed`,willCreate:`Will create`,willUpdate:`Will update`,created:`Created`,updated:`Updated`,skipped:`No changes`},columns:{name:`Name`,status:`Status`,category:`Category`,change:`Action`,error:`Error`},totals:{found:`Found: {count}`,adoptable:`Adoptable: {count}`,alreadyAdded:`Already added: {count}`,unsupported:`Unsupported: {count}`,visible:`Visible: {count}`},texts:{loading:`Loading discovery session...`,empty:`No devices found yet`,noSelection:`No devices were selected`,resultsSuccess:`All selected devices were added successfully`,resultsFailed:`Some devices could not be added`}},diagnostics:{title:`Hardware Input Diagnostics`,capabilitiesTitle:`Input Capabilities`,supportedInteractions:`Supported interactions`,noDiscreteEvents:`Continuous / analog input (no discrete interaction events)`,noCapabilities:`No input capabilities available`,liveEventsTitle:`Live Events`,clearEvents:`Clear`,noOccurrences:`No occurrences received yet`,columnEvent:`Event`,columnNativeType:`Native Type`,columnTimestamp:`Received At`,columnData:`Payload`}},"es-ES":{menu:{title:`Dispositivos`},meta:{devices:{list:{title:`Listar dispositivos`},edit:{title:`Editar dispositivo: {device}`},add:{title:`Añadir dispositivo`},detail:{title:`Dispositivo: {device}`},control:{title:`Controlar dispositivo: {device}`}},channels:{list:{title:`Listar canales`},edit:{title:`Editar canal: {channel}`},add:{title:`Añadir canal`},detail:{title:`Canal: {channel}`}},channelsProperties:{edit:{title:`Editar propiedad del canal: {property}`},add:{title:`Añadir propiedad del canal`}}},breadcrumbs:{devices:{list:`dispositivos`,add:`añadir dispositivo`,edit:`editar dispositivo`,detail:`dispositivo: {device}`,control:`controlar: {device}`},channels:{list:`canales`,add:`añadir canal`,edit:`editar canal`,detail:`canal: {channel}`},channelsProperties:{add:`añadir propiedad del canal`,edit:`editar propiedad del canal`}},headings:{devices:{list:`Dispositivos`,add:`Añadir dispositivo`,edit:`Editar dispositivo`,detail:`Dispositivo: {device}`,control:`Controlar: {device}`,remove:`¿Eliminar dispositivo?`,bulkRemove:`¿Eliminar dispositivos?`,bulkEnable:`¿Activar dispositivos?`,bulkDisable:`¿Desactivar dispositivos?`,adjustFilters:`Filtrar dispositivos`,selectPlugin:`Se requiere plugin de dispositivo`,selectWizardPlugin:`Seleccionar asistente de dispositivo`},channels:{list:`Canales`,add:`Añadir canal`,edit:`Editar canal`,detail:`Canal: {channel}`,remove:`¿Eliminar canal?`,adjustFilters:`Filtrar canales`,selectPlugin:`Se requiere plugin de canal`},channelsProperties:{add:`Añadir propiedad del canal`,edit:`Editar propiedad del canal`,remove:`¿Eliminar propiedad del canal?`,adjustFilters:`Filtrar propiedades`},misc:{discard:`¿Descartar cambios?`}},subHeadings:{devices:{list:`Gestionar dispositivos del panel inteligente`,add:`Añadir nuevo dispositivo del panel inteligente`,edit:`Editar dispositivo del panel inteligente`,detail:`Gestionar dispositivo del panel inteligente`,control:`Controlar dispositivo del panel inteligente`,adjustFilters:`Ajustar filtros de visualización`},channels:{list:`Gestionar canales de dispositivos del panel inteligente`,add:`Añadir nuevo canal de dispositivo del panel inteligente`,edit:`Editar canal de dispositivo del panel inteligente`,detail:`Gestionar canal de dispositivo del panel inteligente`,adjustFilters:`Ajustar filtros de visualización`},channelsProperties:{add:`Añadir nueva propiedad de canal del panel inteligente`,edit:`Editar propiedad de canal del panel inteligente`,adjustFilters:`Ajustar filtros de visualización`}},messages:{devices:{notFound:`El dispositivo que busca no existe o pudo haber sido eliminado.`,created:`Nuevo dispositivo añadido correctamente.`,notCreated:`Algo salió mal. No se pudo crear el dispositivo.`,edited:`¡Cambios guardados! El dispositivo: {device} ha sido actualizado.`,notEdited:`Algo salió mal. La actualización del dispositivo no fue exitosa.`,removed:`El dispositivo: {device} fue eliminado correctamente.`,removeCanceled:`La eliminación del dispositivo: {device} ha sido cancelada.`,notRemoved:`Algo salió mal y el dispositivo: {device} no fue eliminado.`,deletedWhileEditing:`Este dispositivo fue eliminado y ya no está disponible.`,bulkRemoved:`{count} dispositivos fueron eliminados correctamente.`,bulkRemoveFailed:`Error al eliminar {count} dispositivos.`,bulkRemoveCanceled:`La eliminación masiva de dispositivos ha sido cancelada.`,bulkEnabled:`{count} dispositivos fueron activados correctamente.`,bulkEnableFailed:`Error al activar {count} dispositivos.`,bulkEnableCanceled:`La activación masiva de dispositivos ha sido cancelada.`,bulkDisabled:`{count} dispositivos fueron desactivados correctamente.`,bulkDisableFailed:`Error al desactivar {count} dispositivos.`,bulkDisableCanceled:`La desactivación masiva de dispositivos ha sido cancelada.`,notLoaded:`Error al cargar el dispositivo. Por favor inténtelo de nuevo más tarde.`,unhidden:`El dispositivo {device} vuelve a ser visible`,notUnhidden:`No se pudo mostrar el dispositivo {device}`,hiddenNotLoaded:`No se han podido cargar los dispositivos ocultos. Inténtalo de nuevo más tarde.`},channels:{notFound:`El canal que busca no existe o pudo haber sido eliminado.`,notLoaded:`Error al cargar el canal. Por favor inténtelo de nuevo más tarde.`,notLoadedForDevice:`Error al cargar los canales de este dispositivo.`,created:`Nuevo canal añadido correctamente.`,notCreated:`Algo salió mal. No se pudo crear el canal.`,edited:`¡Cambios guardados! El canal: {channel} ha sido actualizado.`,notEdited:`Algo salió mal. La actualización del canal no fue exitosa.`,removed:`El canal: {channel} fue eliminado correctamente.`,removeCanceled:`La eliminación del canal: {channel} ha sido cancelada.`,notRemoved:`Algo salió mal y el canal: {channel} no fue eliminado.`,noMoreAllowed:`Todos los canales obligatorios y opcionales están asignados al dispositivo. No se pueden añadir más.`,deletedWhileEditing:`Este canal fue eliminado y ya no está disponible.`},channelsProperties:{notFound:`La propiedad del canal que busca no existe o pudo haber sido eliminada.`,notLoadedForChannel:`Error al cargar las propiedades de este canal.`,created:`Nueva propiedad del canal añadida correctamente.`,notCreated:`Algo salió mal. No se pudo crear la propiedad del canal.`,edited:`¡Cambios guardados! La propiedad del canal: {property} ha sido actualizada.`,notEdited:`Algo salió mal. La actualización de la propiedad del canal no fue exitosa.`,removed:`La propiedad del canal: {property} fue eliminada correctamente.`,removeCanceled:`La eliminación de la propiedad del canal: {property} ha sido cancelada.`,notRemoved:`Algo salió mal y la propiedad del canal: {property} no fue eliminada.`,noMoreAllowed:`Todas las propiedades obligatorias y opcionales están asignadas al canal. No se pueden añadir más.`,deletedWhileEditing:`Esta propiedad del canal fue eliminada y ya no está disponible.`},misc:{requestError:`Algo salió mal, por favor inténtelo de nuevo más tarde.`}},texts:JSON.parse(`{"devices":{"noDevices":"No tiene ningún dispositivo configurado","noFilteredDevices":"No se encontraron dispositivos que coincidan con los criterios de filtro activos","loadingDevices":"Cargando dispositivos...","loadingDevice":"Cargando dispositivo...","confirmRemove":"¿Está seguro de que desea eliminar el dispositivo: {device}? Esto no se puede revertir.","confirmBulkRemove":"¿Está seguro de que desea eliminar {count} dispositivos? Esto no se puede revertir.","confirmBulkEnable":"¿Está seguro de que desea activar {count} dispositivos?","confirmBulkDisable":"¿Está seguro de que desea desactivar {count} dispositivos?","description":{"generic":"","air_conditioner":"El dispositivo Aire Acondicionado representa un sistema de refrigeración con funciones adicionales para la monitorización ambiental y la gestión energética.","air_dehumidifier":"El dispositivo Deshumidificador representa un sistema diseñado para reducir los niveles de humedad en el entorno, proporcionando capacidades adicionales de monitorización y control.","air_humidifier":"El dispositivo Humidificador representa un sistema diseñado para aumentar los niveles de humedad en el entorno, proporcionando capacidades adicionales de monitorización y control.","air_purifier":"El dispositivo Purificador de Aire representa un sistema diseñado para mejorar la calidad del aire interior eliminando contaminantes y monitorizando las condiciones ambientales.","alarm":"","av_receiver":"El dispositivo Receptor AV representa un receptor/amplificador de cine en casa con conmutación de entrada y control de salida de altavoces.","camera":"El dispositivo Cámara representa un sistema de vigilancia o monitorización diseñado para la captura de vídeo e imagen, con funciones adicionales para la monitorización ambiental e interacción.","doorbell":"El dispositivo Timbre representa un sistema de timbre inteligente que proporciona funciones de vídeo, audio y monitorización adicional para mejorar la seguridad del hogar.","door":"El dispositivo Puerta representa puertas automatizadas o monitorizadas, como puertas de garaje, puertas de entrada u otros tipos de puertas, con funciones adicionales de seguridad y percepción ambiental.","fan":"El dispositivo Ventilador representa un sistema de ventilación independiente o integrado con funciones de control de velocidad, ajuste de dirección y monitorización de energía.","game_console":"El dispositivo Consola de Juegos representa una consola de videojuegos que puede controlarse para el estado básico de encendido/actividad y la reproducción multimedia cuando se admite.","heating_unit":"El dispositivo Unidad de Calefacción representa un sistema de calefacción de espacio o habitación diseñado para controlar y monitorizar la temperatura ambiental, con funciones opcionales para la gestión de energía y humedad.","lighting":"El dispositivo Iluminación representa un sistema de iluminación diseñado para proporcionar luz con funciones opcionales de seguimiento de energía, control de brillo e iluminación adaptativa basada en las condiciones ambientales.","lock":"El dispositivo Cerradura representa un sistema de cerradura electrónica o inteligente, proporcionando control y monitorización de puntos de acceso como puertas o portones.","media":"El dispositivo Multimedia representa un sistema multimedia capaz de reproducir, grabar o gestionar contenido de audio y vídeo.","outlet":"El dispositivo Enchufe representa una toma de corriente con funciones avanzadas de monitorización y control, permitiendo la operación remota y el seguimiento de energía. Admite enchufes individuales o múltiples para una gestión flexible de la energía.","projector":"El dispositivo Proyector representa una pantalla de proyección de vídeo que puede encenderse/apagarse y cambiar entre fuentes de entrada.","pump":"El dispositivo Bomba representa una bomba de agua o fluido con funcionalidad de control de flujo, monitorización y seguimiento de energía.","robot_vacuum":"El dispositivo Robot Aspirador representa un dispositivo de limpieza autónomo con capacidades de seguimiento de energía y monitorización operativa.","sensor":"El dispositivo Sensor representa una unidad de monitorización versátil capaz de rastrear diversos parámetros ambientales y de seguridad.","set_top_box":"El dispositivo Decodificador representa un dispositivo multimedia conectado al televisor (caja de streaming, caja IPTV o stick HDMI) que proporciona control de reproducción y selección opcional de fuentes.","speaker":"El dispositivo Altavoz representa un sistema de salida de audio capaz de producir sonido y potencialmente compatible con la reproducción multimedia y funcionalidad de entrada.","sprinkler":"El dispositivo Aspersor representa un sistema de riego diseñado para controlar el flujo de agua y monitorizar las condiciones ambientales para optimizar el riego.","streaming_service":"El dispositivo Servicio de Streaming representa un reproductor multimedia basado en la nube (por ejemplo, Spotify) que proporciona control de reproducción y metadatos sin un estado de encendido físico.","switcher":"El dispositivo Interruptor representa una toma o interruptor controlable que puede activar o desactivar el suministro eléctrico a los dispositivos conectados y monitorizar el consumo de energía. Admite múltiples tomas para el control de energía.","television":"El dispositivo Televisión representa un televisor inteligente o dispositivo multimedia similar que puede controlarse y monitorizarse en cuanto a su funcionalidad de audio y pantalla.","thermostat":"El dispositivo Termostato representa un sistema de control climático que monitoriza y ajusta la temperatura y los factores ambientales relacionados.","valve":"El dispositivo Válvula representa una válvula controlable utilizada para gestionar el flujo de líquidos o gases en diversos sistemas.","water_heater":"El dispositivo Calentador de Agua representa un sistema de calentamiento de agua diseñado para calentar y mantener la temperatura del agua, con funciones opcionales de monitorización de energía y detección de fugas.","window_covering":"El dispositivo Cubierta de Ventana representa tratamientos automatizados de ventanas como persianas, estores o cortinas."},"selectPlugin":"Para crear un nuevo dispositivo, por favor seleccione un plugin compatible de la lista. Los plugins proporcionan las opciones de configuración necesarias para tipos de dispositivo específicos.","noWizardForDevicePlugin":"El plugin de dispositivo «{type}» no proporciona un asistente de configuración.","noChannels":"Este dispositivo aún no tiene canales. Los canales definen las entradas o salidas de un dispositivo. Cree un nuevo canal para comenzar a interactuar con este dispositivo.","category":"Categoría","channelsCount":"Sin canales configurados | Un canal configurado | {count} canales configurados","alertsCount":"Sin alertas detectadas | Una alerta detectada | {count} alertas detectadas","channels":"Canales","alerts":"Alertas","status":"Estado","validation":"Validación","noControllableProperties":"Este dispositivo no tiene propiedades controlables. Las propiedades deben tener permisos de lectura-escritura o solo escritura para poder ser controladas.","logs":{"title":"Registros del dispositivo","noLogs":"Sin registros disponibles","noLogsDescription":"Aún no se han registrado entradas para este dispositivo","noMessage":"(sin mensaje)","noMoreEntries":"No hay más entradas de registro","detail":"Detalles del registro"}},"channels":{"noChannels":"No tiene ningún canal de dispositivo configurado","noFilteredChannels":"No se encontraron canales que coincidan con los criterios de filtro activos","loadingChannels":"Cargando canales...","loadingChannel":"Cargando canal...","confirmRemove":"¿Está seguro de que desea eliminar el canal: {channel}? Esto no se puede revertir.","description":{"generic":"","air_particulate":"Monitoriza la concentración de partículas en suspensión (por ejemplo, PM2.5 y PM10) en el aire, proporcionando información sobre la calidad del aire y los niveles de contaminación.","air_quality":"Monitoriza la calidad general del aire mediante un índice (0-500) o indicador de nivel, proporcionando una evaluación simplificada de las condiciones del aire interior.","alarm":"","battery":"Informa sobre el estado de la batería de un dispositivo, incluyendo nivel, estado de carga y estado operativo.","camera":"Proporciona flujos de datos de vídeo e imagen de cámaras de vigilancia o monitorización. Este canal admite la configuración y control de dispositivos de cámara, como cámaras de vigilancia o monitores para bebés.","carbon_dioxide":"Monitoriza los niveles de CO₂ en el entorno para seguir la calidad del aire y la eficiencia de la ventilación.","carbon_monoxide":"Detecta la presencia de monóxido de carbono (CO) para garantizar la seguridad en espacios cerrados.","contact":"Rastrea el estado abierto o cerrado de un punto de contacto, como una puerta, ventana o armario.","cooler":"Controla dispositivos que reducen la temperatura del aire o de líquidos, como aires acondicionados o sistemas de refrigeración.","dehumidifier":"Controla dispositivos deshumidificadores, gestionando la reducción de humedad con funciones como humedad objetivo, modos de operación y monitorización del depósito de agua.","device_information":"Este canal proporciona metadatos sobre el dispositivo, incluyendo detalles del fabricante, información del modelo y estados operativos.","doorbell":"Representa timbres inteligentes, proporcionando funciones como detección de pulsación de botón e integración opcional con cámara.","door":"Gestiona los estados de apertura/cierre de puertas, incluyendo puertas de garaje y de entrada.","electrical_energy":"Mide el consumo acumulado de energía a lo largo del tiempo en kilovatios-hora (kWh).","electrical_generation":"Informa sobre la producción de energía de una fuente fotovoltaica (PV) u otra fuente de generación, rastreando la energía acumulada generada en kWh.","electrical_power":"Informa sobre métricas instantáneas de potencia como voltaje, corriente, potencia y frecuencia para monitorización y diagnóstico en tiempo real.","fan":"Controla dispositivos de ventilación, incluyendo velocidad, oscilación y modos de circulación de aire.","filter":"Monitoriza el estado y la vida útil restante de filtros de aire o agua, indicando cuándo se necesita reemplazo.","flow":"Monitoriza la tasa de flujo de fluido o aire, normalmente medida en metros cúbicos por hora (m³/h).","gas":"Detecta la presencia de gas natural u otros gases combustibles para garantizar la seguridad en espacios cerrados.","heater":"Gestiona dispositivos de calefacción, permitiendo el control de ajustes de temperatura y modos.","humidifier":"Controla dispositivos humidificadores, gestionando el aumento de humedad con funciones como humedad objetivo, control del nivel de vapor y monitorización del depósito de agua.","humidity":"Mide la humedad relativa en el entorno, expresada como porcentaje.","illuminance":"Detecta los niveles de luz ambiental, normalmente medidos en lux, para monitorizar la luminosidad de un espacio.","leak":"Identifica la presencia de agua u otros líquidos para detectar fugas y prevenir daños.","light":"Controla dispositivos de iluminación, admitiendo ajustes de brillo, temperatura de color y color.","lock":"Gestiona el estado de bloqueo/desbloqueo de cerraduras físicas para puertas, cajas fuertes u otras áreas seguras.","media_input":"Gestiona las fuentes de entrada de dispositivos multimedia como televisores, proyectores o receptores de audio.","media_playback":"Proporciona controles de reproducción para dispositivos multimedia, excluyendo el control de volumen (gestionado por los canales de Altavoz y Micrófono).","microphone":"Representa dispositivos de entrada de audio, informando sobre actividad o capturando sonido.","motion":"Detecta movimiento en un área para activar alertas o automatizar respuestas.","nitrogen_dioxide":"Monitoriza la concentración de NO₂ en el aire, utilizado frecuentemente en monitorización ambiental e industrial.","occupancy":"Detecta la presencia de personas en un espacio para automatización o eficiencia energética.","outlet":"Controla y monitoriza enchufes eléctricos.","ozone":"Mide los niveles de ozono (O₃) en el aire, utilizado frecuentemente en evaluaciones de calidad ambiental.","pressure":"Informa sobre valores de presión atmosférica o de líquidos, normalmente medidos en pascales (kPa).","robot_vacuum":"Controla aspiradoras robóticas, proporcionando comandos de inicio, parada, acoplamiento y monitorización de estados.","smoke":"Detecta humo en el entorno, activando alarmas o alertas de seguridad.","speaker":"Controla dispositivos de altavoz, incluyendo volumen, estado de silencio y modos de salida de audio.","sulphur_dioxide":"Mide los niveles de dióxido de azufre (SO₂) en el aire para monitorización ambiental.","switcher":"Representa interruptores binarios para controlar dispositivos como luces, ventiladores o electrodomésticos.","television":"Proporciona control para televisores, incluyendo fuente de entrada, brillo y estado de encendido.","projector":"Proporciona control para proyectores, incluyendo encendido, fuente de entrada, brillo y teclas de control remoto.","temperature":"Mide la temperatura actual en un entorno, expresada en grados Celsius.","thermostat":"Gestiona sistemas de control climático, permitiendo ajustes de calefacción, refrigeración y ventilación.","valve":"Controla válvulas de fluido o gas, gestionando estados de apertura/cierre o tasas de flujo.","volatile_organic_compounds":"Monitoriza la concentración de COV en el aire para rastrear la contaminación o calidad del aire.","window_covering":"Controla cubiertas como persianas, cortinas y estores, incluyendo ajustes de posición e inclinación."},"selectPlugin":"Para crear un nuevo canal, por favor seleccione un plugin compatible de la lista. Los plugins proporcionan las opciones de configuración necesarias para tipos de canal específicos."},"channelsProperties":{"noProperties":"No tiene ninguna propiedad de canal configurada","noFilteredProperties":"No se encontraron propiedades de canal que coincidan con los criterios de filtro activos","loadingProperties":"Cargando propiedades de canal...","loadingProperty":"Cargando propiedad del canal...","loadingChannels":"Cargando canales...","loadingChannel":"Cargando canal...","confirmRemove":"¿Está seguro de que desea eliminar la propiedad del canal: {property}? Esto no se puede revertir.","dataTypes":{"char":"Entero con signo de 8 bits (-128 a 127).","uchar":"Entero sin signo de 8 bits (0 a 255).","short":"Entero con signo de 16 bits (-32.768 a 32.767).","ushort":"Entero sin signo de 16 bits (0 a 65.535).","int":"Entero con signo de 32 bits (-2.147.483.648 a 2.147.483.647).","uint":"Entero sin signo de 32 bits (0 a 4.294.967.295).","float":"Número de punto flotante (por ejemplo, 3,14, -0,001).","bool":"Valor booleano: verdadero o falso.","string":"Una secuencia de caracteres (por ejemplo, \\"hola\\").","enum":"Valor enumerado seleccionado de un conjunto predefinido.","unknown":"Tipo de dato desconocido o no especificado."},"editValue":"Se permite cambiar este valor manualmente, pero puede ser sobrescrito automáticamente si esta propiedad está asignada a un dispositivo. Utilice con precaución."},"misc":{"notSet":"No establecido","noValuesProvided":"Sin valores proporcionados","confirmDiscard":"Tiene cambios sin guardar. ¿Está seguro de que desea descartarlos?"}}`),fields:{devices:{search:{placeholder:`Buscar dispositivos...`},plugin:{title:`Plugin de dispositivo`,placeholder:`Seleccionar plugin de dispositivo`},state:{title:`Estado`,placeholder:`Seleccionar estado`},showHidden:{title:`Mostrar ocultos`},id:{title:`Identificador interno`,placeholder:`ID del dispositivo`},identifier:{title:`Identificador del sistema`,placeholder:`Identificador del sistema del dispositivo`},category:{title:`Categoría`,placeholder:`Categoría del dispositivo`,description:`Acerca de la categoría`,validation:{required:`Por favor seleccione la categoría del dispositivo`}},name:{title:`Nombre`,placeholder:`Nombre del dispositivo`,validation:{required:`Por favor ingrese el nombre del dispositivo`}},description:{title:`Descripción`,placeholder:`Descripción del dispositivo`},enabled:{title:`Activado`,placeholder:`Activar o desactivar dispositivo`},room:{title:`Habitación`,placeholder:`Seleccionar una habitación (opcional)`,hint:`Asignar este dispositivo a una ubicación de habitación física`},zones:{title:`Zonas`,placeholder:`Seleccionar zonas (opcional)`,hint:`Asignar este dispositivo a zonas lógicas (por ejemplo, Seguridad, Exterior). La pertenencia a la zona de planta se deriva de la asignación de habitación.`},validation:{title:`Validación`}},channels:{search:{placeholder:`Buscar canales...`},plugin:{title:`Plugin de canal`,placeholder:`Seleccionar plugin de canal`},device:{title:`Dispositivo`,placeholder:`Dispositivo del canal`,description:`Acerca del dispositivo`,validation:{required:`Por favor seleccione el dispositivo del canal`}},id:{title:`Identificador interno`,placeholder:`ID del canal`},category:{title:`Categoría`,placeholder:`Categoría del canal`,description:`Acerca de la categoría`,validation:{required:`Por favor seleccione la categoría del canal`}},name:{title:`Nombre`,placeholder:`Nombre del canal`,validation:{required:`Por favor ingrese el nombre del canal`}},description:{title:`Descripción`,placeholder:`Descripción del canal`}},channelsProperties:{search:{placeholder:`Buscar propiedades...`},channel:{title:`Canal`,placeholder:`Canal de la propiedad`,description:`Acerca del canal`,validation:{required:`Por favor seleccione el canal de la propiedad`}},id:{title:`Identificador interno`,placeholder:`ID de la propiedad del canal`},category:{title:`Categoría`,placeholder:`Categoría de la propiedad del canal`,description:`Acerca de la categoría`,validation:{required:`Por favor seleccione la categoría de la propiedad del canal`}},name:{title:`Nombre`,placeholder:`Nombre de la propiedad del canal`},permissions:{title:`Permisos`,placeholder:`Permisos de lectura y escritura de la propiedad del canal`,validation:{required:`Por favor seleccione los permisos de la propiedad del canal`}},dataType:{title:`Tipo de dato`,placeholder:`Tipo de dato del valor de la propiedad del canal`,validation:{required:`Por favor seleccione el tipo de dato de la propiedad del canal`}},unit:{title:`Unidad`,placeholder:`Unidad de la propiedad del canal`},format:{title:{enum:`Valores permitidos`,min:`Valor mínimo`,max:`Valor máximo`},placeholder:{enum:`Lista de valores permitidos`,min:`Valor mínimo permitido`,max:`Valor máximo permitido`},validation:{required:{enum:`Por favor ingrese la lista de valores permitidos de la propiedad del canal`}}},invalid:{title:`Valor no válido`,placeholder:`Valor no válido de la propiedad del canal`},step:{title:`Valor de paso`,placeholder:`Valor de paso de la propiedad del canal`},enterValue:{title:`Ingrese el valor`},value:{title:`Valor`,placeholder:`Valor actual de la propiedad del canal`}}},table:{devices:{columns:{name:{title:`Nombre`},type:{title:`Tipo`},state:{title:`Estado`},category:{title:`Categoría`},enabled:{title:`Activado`,values:{enabled:`Activado`,disabled:`Desactivado`}},validation:{title:`Validación`}}},channels:{columns:{name:{title:`Nombre`},device:{title:`Dispositivo`},category:{title:`Categoría`}}},channelsProperties:{columns:{name:{title:`Nombre`},channel:{title:`Canal`},category:{title:`Categoría`},permissions:{title:`Permisos`},dataType:{title:`Tipo de dato`,type:{enum:`Información de valor enumerado`,numeric:`Información de valor numérico`}},value:{title:`Valor`}}}},filters:{devices:{types:{title:`Filtrar por tipo de dispositivo`},states:{title:`Filtrar por estado de conexión`},enabled:{title:`Filtrar por estado del dispositivo`,placeholder:`Seleccionar estado del dispositivo`,values:{enabled:`Activado`,disabled:`Desactivado`,all:`Todos`}},category:{title:`Filtrar por categoría de dispositivo`,placeholder:`Seleccionar uno o más`},validation:{title:`Filtrar por estado de validación`}},channels:{category:{title:`Filtrar por categoría de canal`,placeholder:`Seleccionar uno o más`}},channelsProperties:{category:{title:`Filtrar por categoría de propiedad`,placeholder:`Seleccionar uno o más`},dataType:{title:`Filtrar por tipo de dato de propiedad`},permission:{title:`Filtrar por permiso de propiedad`}}},buttons:{add:{title:`Añadir`},wizard:{title:`Asistente`},edit:{title:`Editar`},detail:{title:`Detalle`},discard:{title:`Descartar`},cancel:{title:`Cancelar`},close:{title:`Cerrar`},save:{title:`Guardar`},change:{title:`Cambiar`},remove:{title:`Eliminar`},resetFilters:{title:`Restablecer filtros`},yes:{title:`Sí`},no:{title:`No`},reset:{title:`Restablecer`},addChannel:{title:`Añadir canal`},addProperty:{title:`Añadir propiedad`},control:{title:`Controlar`},refresh:{title:`Actualizar`},loadMore:{title:`Cargar más`},viewLogs:{title:`Ver registros`},back:{title:`Volver`}},labels:{liveTail:`Seguimiento en vivo`,paused:`Pausado`,overview:`Resumen`,validation:`Validación`,logs:`Registros`},states:{online:`En línea`,offline:`Fuera de línea`,all:`Todos`,connected:`Conectado`,disconnected:`Desconectado`,init:`Inicializado`,ready:`Listo`,running:`En ejecución`,sleeping:`En reposo`,stopped:`Detenido`,lost:`Perdido`,alert:`Alerta`,unknown:`Desconocido`},permissions:{ro:`Solo lectura`,rw:`Lectura y escritura`,wo:`Solo escritura`,ev:`Evento`},dataTypes:{char:`Carácter`,uchar:`Carácter sin signo`,short:`Entero corto`,ushort:`Entero corto sin signo`,int:`Entero`,uint:`Entero sin signo`,float:`Número de coma flotante`,bool:`Booleano`,string:`Cadena`,enum:`Enumeración`,unknown:`Desconocido`},categories:{devices:{generic:`Genérico`,air_conditioner:`Aire acondicionado`,air_dehumidifier:`Deshumidificador`,air_humidifier:`Humidificador`,air_purifier:`Purificador de aire`,alarm:`Alarma`,av_receiver:`Receptor AV`,camera:`Cámara`,door:`Puerta`,doorbell:`Timbre`,fan:`Ventilador`,game_console:`Consola de juegos`,heating_unit:`Unidad de calefacción`,lighting:`Iluminación`,lock:`Cerradura`,media:`Multimedia`,outlet:`Enchufe`,projector:`Proyector`,pump:`Bomba`,robot_vacuum:`Robot aspirador`,sensor:`Sensor`,set_top_box:`Decodificador`,speaker:`Altavoz`,sprinkler:`Aspersor`,streaming_service:`Servicio de streaming`,switcher:`Interruptor`,television:`Televisión`,terminal:`Terminal`,thermostat:`Termostato`,valve:`Válvula`,water_heater:`Calentador de agua`,window_covering:`Cubierta de ventana`,input_controller:`Controlador de entrada`},channels:{generic:`Genérico`,accelerometer:`Acelerómetro`,air_particulate:`Partículas en el aire`,air_quality:`Calidad del aire`,alarm:`Alarma`,battery:`Batería`,button:`Botón`,buzzer:`Zumbador`,camera:`Cámara`,carbon_dioxide:`Dióxido de carbono`,carbon_monoxide:`Monóxido de carbono`,contact:`Contacto`,cooler:`Refrigerador`,dehumidifier:`Deshumidificador`,device_information:`Información del dispositivo`,door:`Puerta`,doorbell:`Timbre`,electrical_energy:`Energía eléctrica`,electrical_generation:`Generación eléctrica`,electrical_power:`Potencia eléctrica`,fan:`Ventilador`,filter:`Filtro`,flow:`Flujo`,gas:`Gas`,heater:`Calefactor`,humidifier:`Humidificador`,humidity:`Humedad`,illuminance:`Iluminancia`,indicator:`Indicador`,leak:`Fuga`,light:`Luz`,lock:`Cerradura`,media_input:`Entrada multimedia`,media_playback:`Reproducción multimedia`,microphone:`Micrófono`,motion:`Movimiento`,nitrogen_dioxide:`Dióxido de nitrógeno`,occupancy:`Ocupación`,outlet:`Enchufe`,ozone:`Ozono`,pressure:`Presión`,robot_vacuum:`Robot aspirador`,smoke:`Humo`,speaker:`Altavoz`,sulphur_dioxide:`Dióxido de azufre`,switcher:`Interruptor`,television:`Televisión`,projector:`Proyector`,temperature:`Temperatura`,thermostat:`Termostato`,valve:`Válvula`,volatile_organic_compounds:`Compuestos orgánicos volátiles`,window_covering:`Cubierta de ventana`,analog_input:`Entrada analógica`,binary_input:`Entrada binaria`},channelsProperties:{generic:`Genérico`,acceleration_x:`Aceleración X`,acceleration_y:`Aceleración Y`,acceleration_z:`Aceleración Z`,active:`Activo`,alarm_state:`Estado de alarma`,album:`Álbum`,angle:`Ángulo`,aqi:`AQI (índice de calidad del aire)`,artist:`Artista`,artwork_url:`URL de la portada`,average_power:`Potencia media`,balance:`Balance`,bass:`Graves`,brightness:`Brillo`,change_needed:`Cambio necesario`,child_lock:`Bloqueo infantil`,color_blue:`Color azul`,color_green:`Color verde`,color_red:`Color rojo`,color_temperature:`Temperatura de color`,color_white:`Color blanco`,command:`Comando`,connection_type:`Tipo de conexión`,consumption:`Consumo`,current:`Corriente`,concentration:`Concentración`,defrost_active:`Descongelación activa`,detected:`Detectado`,direction:`Dirección`,distance:`Distancia`,duration:`Duración`,event:`Evento`,fault:`Fallo`,fault_description:`Descripción del fallo`,firmware_revision:`Revisión de firmware`,frequency:`Frecuencia`,grid_export:`Exportación a la red`,grid_import:`Importación de la red`,hardware_revision:`Revisión de hardware`,hue:`Tono`,humidity:`Humedad`,illuminance:`Iluminancia`,in_use:`En uso`,infrared:`Infrarrojo`,last_event:`Último evento`,level:`Nivel`,life_remaining:`Vida útil restante`,link_quality:`Calidad del enlace`,locked:`Bloqueado`,manufacturer:`Fabricante`,media_type:`Tipo de medio`,mist_level:`Nivel de vapor`,model:`Modelo`,mode:`Modo`,mute:`Silencio`,natural_breeze:`Brisa natural`,obstruction:`Obstrucción`,on:`Encendido`,orientation:`Orientación`,over_current:`Sobrecorriente`,over_voltage:`Sobretensión`,over_power:`Sobrepotencia`,pan:`Panorámica`,peak_level:`Nivel máximo`,percentage:`Porcentaje`,position:`Posición`,power:`Potencia`,pressure:`Presión`,production:`Producción`,rate:`Tasa`,remaining:`Restante`,repeat:`Repetir`,reset:`Restablecer`,remote_key:`Tecla remota`,saturation:`Saturación`,serial_number:`Número de serie`,shuffle:`Aleatorio`,siren:`Sirena`,source:`Fuente`,source_label:`Etiqueta de fuente`,speed:`Velocidad`,state:`Estado`,status:`Estado`,swing:`Oscilación`,tampered:`Manipulado`,temperature:`Temperatura`,tilt:`Inclinación`,timer:`Temporizador`,track:`Pista`,treble:`Agudos`,triggered:`Activado`,type:`Tipo`,units:`Unidades`,voltage:`Voltaje`,volume:`Volumen`,warm_mist:`Vapor caliente`,water_tank_empty:`Depósito de agua vacío`,water_tank_full:`Depósito de agua lleno`,water_tank_level:`Nivel del depósito de agua`,zoom:`Zoom`,unit:`Unidad`,value:`Valor`}},hidden:{badge:`Oculto`,by:{system:`Sistema`,user:`Usuario`},hint:{system:`Oculto automáticamente porque un dispositivo virtual lo reemplazó. Volverá a aparecer cuando se elimine ese dispositivo virtual.`,user:`Oculto por un operador. Permanece oculto hasta que alguien lo vuelva a mostrar.`},unhide:`Mostrar`},validation:{status:{valid:`Válido`,invalid:`No válido`,unknown:`Desconocido`},filter:{valid:`Válido`,invalid:`No válido`,all:`Todos`},errors:`errores`,warnings:`advertencias`,issuesTitle:`Problemas de validación`,severity:{error:`Error`,warning:`Advertencia`},table:{severity:`Gravedad`,type:`Tipo`,message:`Mensaje`,channel:`Canal`},issueTypes:{missing_channel:`Canal faltante`,missing_property:`Propiedad faltante`,invalid_data_type:`Tipo de dato no válido`,invalid_permissions:`Permisos no válidos`,invalid_format:`Formato no válido`,unknown_channel:`Canal desconocido`,duplicate_channel:`Canal duplicado`,constraint_one_of_violation:`Violación de restricción (uno de)`,constraint_one_or_more_of_violation:`Violación de restricción (uno o más de)`,constraint_mutually_exclusive_violation:`Violación de restricción (mutuamente excluyente)`}},wizard:{steps:{discover:`Búsqueda`,confirm:`Confirmación`,results:`Resultados`},actions:{cancel:`Cancelar`,back:`Atrás`,next:`Siguiente`,adopt:`Añadir dispositivos`,addMore:`Añadir más`,done:`Hecho`},statuses:{checking:`Comprobando`,ready:`Listo`,needs_credentials:`Credenciales necesarias`,already_registered:`Ya añadido`,unsupported:`No compatible`,failed:`Fallido`,willCreate:`Se creará`,willUpdate:`Se actualizará`,created:`Creado`,updated:`Actualizado`,skipped:`Sin cambios`},columns:{name:`Nombre`,status:`Estado`,category:`Categoría`,change:`Acción`,error:`Error`},totals:{found:`Encontrados: {count}`,adoptable:`Adoptables: {count}`,alreadyAdded:`Ya añadidos: {count}`,unsupported:`No compatibles: {count}`,visible:`Visibles: {count}`},texts:{loading:`Cargando sesión de búsqueda...`,empty:`Todavía no se han encontrado dispositivos`,noSelection:`No se seleccionó ningún dispositivo`,resultsSuccess:`Todos los dispositivos seleccionados se añadieron correctamente`,resultsFailed:`Algunos dispositivos no se pudieron añadir`}},diagnostics:{title:`Diagnóstico de entradas de hardware`,capabilitiesTitle:`Capacidades de entrada`,supportedInteractions:`Interacciones admitidas`,noDiscreteEvents:`Entrada continua / analógica (sin eventos discretos)`,noCapabilities:`No hay capacidades de entrada disponibles`,liveEventsTitle:`Eventos en vivo`,clearEvents:`Borrar`,noOccurrences:`Aún no se han recibido eventos`,columnEvent:`Evento`,columnNativeType:`Tipo nativo`,columnTimestamp:`Recibido a las`,columnData:`Carga útil`}},"pl-PL":{menu:{title:`Urządzenia`},meta:{devices:{list:{title:`Lista urządzeń`},edit:{title:`Edytuj urządzenie: {device}`},add:{title:`Dodaj urządzenie`},detail:{title:`Urządzenie: {device}`},control:{title:`Steruj urządzeniem: {device}`}},channels:{list:{title:`Lista kanałów`},edit:{title:`Edytuj kanał: {channel}`},add:{title:`Dodaj kanał`},detail:{title:`Kanał: {channel}`}},channelsProperties:{edit:{title:`Edytuj właściwość kanału: {property}`},add:{title:`Dodaj właściwość kanału`}}},breadcrumbs:{devices:{list:`urządzenia`,add:`dodaj urządzenie`,edit:`edytuj urządzenie`,detail:`urządzenie: {device}`,control:`sterowanie: {device}`},channels:{list:`kanały`,add:`dodaj kanał`,edit:`edytuj kanał`,detail:`kanał: {channel}`},channelsProperties:{add:`dodaj właściwość kanału`,edit:`edytuj właściwość kanału`}},headings:{devices:{list:`Urządzenia`,add:`Dodaj urządzenie`,edit:`Edytuj urządzenie`,detail:`Urządzenie: {device}`,control:`Sterowanie: {device}`,remove:`Usunąć urządzenie?`,bulkRemove:`Usunąć urządzenia?`,bulkEnable:`Włączyć urządzenia?`,bulkDisable:`Wyłączyć urządzenia?`,adjustFilters:`Filtruj urządzenia`,selectPlugin:`Wymagana wtyczka urządzenia`,selectWizardPlugin:`Wybierz kreator urządzeń`},channels:{list:`Kanały`,add:`Dodaj kanał`,edit:`Edytuj kanał`,detail:`Kanał: {channel}`,remove:`Usunąć kanał?`,adjustFilters:`Filtruj kanały`,selectPlugin:`Wymagana wtyczka kanału`},channelsProperties:{add:`Dodaj właściwość kanału`,edit:`Edytuj właściwość kanału`,remove:`Usunąć właściwość kanału?`,adjustFilters:`Filtruj właściwości`},misc:{discard:`Odrzucić zmiany?`}},subHeadings:{devices:{list:`Zarządzaj urządzeniami smart panelu`,add:`Dodaj nowe urządzenie smart panelu`,edit:`Edytuj urządzenie smart panelu`,detail:`Zarządzaj urządzeniem smart panelu`,control:`Steruj urządzeniem smart panelu`,adjustFilters:`Dostosuj filtry wyświetlania`},channels:{list:`Zarządzaj kanałami urządzeń smart panelu`,add:`Dodaj nowy kanał urządzenia smart panelu`,edit:`Edytuj kanał urządzenia smart panelu`,detail:`Zarządzaj kanałem urządzenia smart panelu`,adjustFilters:`Dostosuj filtry wyświetlania`},channelsProperties:{add:`Dodaj nową właściwość kanału smart panelu`,edit:`Edytuj właściwość kanału smart panelu`,adjustFilters:`Dostosuj filtry wyświetlania`}},messages:{devices:{notFound:`Urządzenie, którego szukasz, nie istnieje lub mogło zostać usunięte.`,created:`Nowe urządzenie zostało pomyślnie dodane.`,notCreated:`Coś poszło nie tak. Nie udało się utworzyć urządzenia.`,edited:`Zmiany zapisane! Urządzenie: {device} zostało zaktualizowane.`,notEdited:`Coś poszło nie tak. Aktualizacja urządzenia nie powiodła się.`,removed:`Urządzenie: {device} zostało pomyślnie usunięte.`,removeCanceled:`Usunięcie urządzenia: {device} zostało anulowane.`,notRemoved:`Coś poszło nie tak i urządzenie: {device} nie zostało usunięte.`,deletedWhileEditing:`To urządzenie zostało usunięte i nie jest już dostępne.`,bulkRemoved:`Pomyślnie usunięto {count} urządzeń.`,bulkRemoveFailed:`Nie udało się usunąć {count} urządzeń.`,bulkRemoveCanceled:`Masowe usuwanie urządzeń zostało anulowane.`,bulkEnabled:`Pomyślnie włączono {count} urządzeń.`,bulkEnableFailed:`Nie udało się włączyć {count} urządzeń.`,bulkEnableCanceled:`Masowe włączanie urządzeń zostało anulowane.`,bulkDisabled:`Pomyślnie wyłączono {count} urządzeń.`,bulkDisableFailed:`Nie udało się wyłączyć {count} urządzeń.`,bulkDisableCanceled:`Masowe wyłączanie urządzeń zostało anulowane.`,notLoaded:`Nie udało się wczytać urządzenia. Spróbuj ponownie później.`,unhidden:`Urządzenie {device} jest znowu widoczne`,notUnhidden:`Nie udało się pokazać urządzenia {device}`,hiddenNotLoaded:`Nie udało się wczytać ukrytych urządzeń. Spróbuj ponownie później.`},channels:{notFound:`Kanał, którego szukasz, nie istnieje lub mógł zostać usunięty.`,notLoaded:`Nie udało się wczytać kanału. Spróbuj ponownie później.`,notLoadedForDevice:`Nie udało się wczytać kanałów dla tego urządzenia.`,created:`Nowy kanał został pomyślnie dodany.`,notCreated:`Coś poszło nie tak. Nie udało się utworzyć kanału.`,edited:`Zmiany zapisane! Kanał: {channel} został zaktualizowany.`,notEdited:`Coś poszło nie tak. Aktualizacja kanału nie powiodła się.`,removed:`Kanał: {channel} został pomyślnie usunięty.`,removeCanceled:`Usunięcie kanału: {channel} zostało anulowane.`,notRemoved:`Coś poszło nie tak i kanał: {channel} nie został usunięty.`,noMoreAllowed:`Wszystkie wymagane i opcjonalne kanały są przypisane do urządzenia. Nie można dodać więcej.`,deletedWhileEditing:`Ten kanał został usunięty i nie jest już dostępny.`},channelsProperties:{notFound:`Właściwość kanału, której szukasz, nie istnieje lub mogła zostać usunięta.`,notLoadedForChannel:`Nie udało się wczytać właściwości dla tego kanału.`,created:`Nowa właściwość kanału została pomyślnie dodana.`,notCreated:`Coś poszło nie tak. Nie udało się utworzyć właściwości kanału.`,edited:`Zmiany zapisane! Właściwość kanału: {property} została zaktualizowana.`,notEdited:`Coś poszło nie tak. Aktualizacja właściwości kanału nie powiodła się.`,removed:`Właściwość kanału: {property} została pomyślnie usunięta.`,removeCanceled:`Usunięcie właściwości kanału: {property} zostało anulowane.`,notRemoved:`Coś poszło nie tak i właściwość kanału: {property} nie została usunięta.`,noMoreAllowed:`Wszystkie wymagane i opcjonalne właściwości są przypisane do kanału. Nie można dodać więcej.`,deletedWhileEditing:`Ta właściwość kanału została usunięta i nie jest już dostępna.`},misc:{requestError:`Coś poszło nie tak, spróbuj ponownie później.`}},texts:JSON.parse(`{"devices":{"noDevices":"Nie masz skonfigurowanych żadnych urządzeń","noFilteredDevices":"Nie znaleziono urządzeń pasujących do aktywnych kryteriów filtra","loadingDevices":"Ładowanie urządzeń...","loadingDevice":"Ładowanie urządzenia...","confirmRemove":"Czy na pewno chcesz usunąć urządzenie: {device}? Tej operacji nie można cofnąć.","confirmBulkRemove":"Czy na pewno chcesz usunąć {count} urządzeń? Tej operacji nie można cofnąć.","confirmBulkEnable":"Czy na pewno chcesz włączyć {count} urządzeń?","confirmBulkDisable":"Czy na pewno chcesz wyłączyć {count} urządzeń?","description":{"generic":"","air_conditioner":"Urządzenie klimatyzacyjne to system chłodzenia z dodatkowymi funkcjami monitorowania środowiska i zarządzania energią.","air_dehumidifier":"Osuszacz powietrza to system zaprojektowany w celu zmniejszenia poziomu wilgotności w środowisku, zapewniając jednocześnie dodatkowe możliwości monitorowania i kontroli.","air_humidifier":"Nawilżacz powietrza to system zaprojektowany w celu zwiększenia poziomu wilgotności w otoczeniu, zapewniając jednocześnie dodatkowe możliwości monitorowania i kontroli.","air_purifier":"Oczyszczacz powietrza to system zaprojektowany w celu poprawy jakości powietrza w pomieszczeniach poprzez usuwanie zanieczyszczeń i monitorowanie warunków środowiskowych.","alarm":"","av_receiver":"Odbiornik AV to amplituner/wzmacniacz kina domowego z przełączaniem wejść i sterowaniem wyjściem głośników.","camera":"Urządzenie Camera to system nadzoru lub monitorowania przeznaczony do przechwytywania wideo i obrazów, z dodatkowymi funkcjami monitorowania środowiska i interakcji.","doorbell":"Urządzenie Doorbell to inteligentny system dzwonka do drzwi, który zapewnia wideo, audio i dodatkowe funkcje monitorowania w celu zwiększenia bezpieczeństwa w domu.","door":"Urządzenie Door reprezentuje zautomatyzowane lub monitorowane drzwi, takie jak bramy garażowe, drzwi wejściowe lub inne typy drzwi, z dodatkowymi funkcjami zapewniającymi bezpieczeństwo i świadomość ekologiczną.","fan":"Urządzenie Wentylator stanowi samodzielny lub zintegrowany system wentylatorów z funkcjami kontroli prędkości, regulacji kierunku i monitorowania energii.","game_console":"Konsola do gier to konsola do gier, którą można sterować pod kątem podstawowego zasilania/stanu aktywności oraz odtwarzania multimediów, jeśli jest to obsługiwane.","heating_unit":"Urządzenie grzewcze to system ogrzewania przestrzeni lub pomieszczenia przeznaczony do kontrolowania i monitorowania temperatury otoczenia, z opcjonalnymi funkcjami zarządzania energią i wilgotnością.","lighting":"Urządzenie oświetleniowe to system oświetleniowy zaprojektowany w celu zapewnienia oświetlenia z opcjonalnymi funkcjami śledzenia energii, kontroli jasności i oświetlenia adaptacyjnego w oparciu o warunki otoczenia.","lock":"Urządzenie Lock reprezentuje elektroniczny lub inteligentny system zamykania, zapewniający kontrolę i monitorowanie punktów dostępu, takich jak drzwi lub bramy.","media":"Urządzenie multimedialne to system multimedialny umożliwiający odtwarzanie, nagrywanie lub zarządzanie treściami audio i wideo.","outlet":"Urządzenie Outlet to gniazdko elektryczne z zaawansowanymi funkcjami monitorowania i sterowania, umożliwiającymi zdalną obsługę i śledzenie zużycia energii. Obsługuje jedno lub wiele gniazdek, co pozwala na elastyczne zarządzanie energią.","projector":"Urządzenie projektora to ekran projekcyjny wideo, który można włączać i wyłączać oraz przełączać pomiędzy źródłami sygnału wejściowego.","pump":"Urządzenie pompy reprezentuje pompę wody lub płynu z funkcją kontroli przepływu, monitorowania i śledzenia energii.","robot_vacuum":"Robot Vacuum to autonomiczne urządzenie czyszczące z możliwością śledzenia energii i monitorowania operacyjnego.","sensor":"Urządzenie Sensor stanowi wszechstronną jednostkę monitorującą zdolną do śledzenia różnych parametrów środowiskowych i bezpieczeństwa.","set_top_box":"Dekoder to urządzenie multimedialne podłączone do telewizora (przystawka do przesyłania strumieniowego, urządzenie IPTV lub pamięć HDMI), umożliwiające sterowanie odtwarzaniem i opcjonalny wybór źródła.","speaker":"Urządzenie głośnikowe reprezentuje system wyjścia audio zdolny do wytwarzania dźwięku i potencjalnie obsługujący funkcje odtwarzania multimediów i wejścia.","sprinkler":"Urządzenie zraszające to system nawadniający przeznaczony do kontrolowania przepływu wody i monitorowania warunków środowiskowych w celu optymalizacji podlewania.","streaming_service":"Urządzenie usługi przesyłania strumieniowego to oparty na chmurze odtwarzacz multimediów (np. Spotify), który zapewnia kontrolę odtwarzania i metadane bez konieczności fizycznego zasilania.","switcher":"Urządzenie Switcher to sterowane gniazdko lub przełącznik, który może przełączać zasilanie podłączonych urządzeń i monitorować zużycie energii. Obsługuje wiele gniazd do kontroli mocy.","television":"Urządzenie telewizyjne to inteligentny telewizor lub podobne urządzenie multimedialne, które można kontrolować i monitorować pod kątem funkcji audio i wyświetlania.","thermostat":"Urządzenie termostatyczne to system kontroli klimatu, który monitoruje i reguluje temperaturę oraz powiązane czynniki środowiskowe.","valve":"Urządzenie Valve to sterowany zawór używany do zarządzania przepływem cieczy lub gazów w różnych systemach.","water_heater":"Urządzenie do podgrzewania wody to system podgrzewania wody przeznaczony do podgrzewania i utrzymywania temperatury wody, z opcjonalnymi funkcjami monitorowania energii i wykrywania wycieków.","window_covering":"Urządzenie do zasłaniania okien reprezentuje zautomatyzowane zabiegi na oknach, takie jak rolety, rolety lub zasłony."},"selectPlugin":"Aby utworzyć nowe urządzenie, wybierz kompatybilną wtyczkę z listy. Wtyczki zapewniają niezbędne opcje konfiguracji dla określonego typu urządzenia.","noWizardForDevicePlugin":"Wtyczka urządzeń „{type}\\" nie udostępnia kreatora konfiguracji.","noChannels":"To urządzenie nie ma jeszcze żadnych kanałów. Kanały definiują wejścia lub wyjścia urządzenia. Utwórz nowy kanał, aby rozpocząć interakcję z tym urządzeniem.","category":"Kategoria","channelsCount":"Brak skonfigurowanych kanałów | Jeden skonfigurowany kanał | {count} skonfigurowanych kanałów","alertsCount":"Brak wykrytych alertów | Jeden wykryty alert | {count} wykrytych alertów","channels":"Kanały","alerts":"Alerty","status":"Status","validation":"Walidacja","noControllableProperties":"To urządzenie nie ma sterowalnych właściwości. Właściwości muszą mieć uprawnienia do odczytu i zapisu lub tylko do zapisu, aby można było nimi sterować.","logs":{"title":"Logi urządzenia","noLogs":"Brak dostępnych logów","noLogsDescription":"Nie zarejestrowano jeszcze żadnych logów dla tego urządzenia","noMessage":"(brak wiadomości)","noMoreEntries":"Brak więcej wpisów w logach","detail":"Szczegóły dziennika"}},"channels":{"noChannels":"Nie masz skonfigurowanych żadnych kanałów urządzeń","noFilteredChannels":"Nie znaleziono kanałów pasujących do aktywnych kryteriów filtra","loadingChannels":"Ładowanie kanałów...","loadingChannel":"Ładowanie kanału...","confirmRemove":"Czy na pewno chcesz usunąć kanał: {channel}? Tej operacji nie można cofnąć.","description":{"generic":"","air_particulate":"Monitoruje stężenie cząstek stałych (np. PM2,5 i PM10) w powietrzu, zapewniając wgląd w jakość powietrza i poziom zanieczyszczeń.","air_quality":"Monitoruje ogólną jakość powietrza za pomocą wskaźnika (0-500) lub wskaźnika poziomu, zapewniając uproszczoną ocenę warunków powietrza w pomieszczeniu.","alarm":"","battery":"Raportuje stan baterii urządzenia, w tym poziom, stan ładowania i stan operacyjny.","camera":"Zapewnia strumienie danych wideo i obrazów z kamer monitorujących lub monitorujących. Kanał ten umożliwia konfigurację i sterowanie urządzeniami kamerowymi, takimi jak kamery monitorujące czy monitory do opieki nad dziećmi.","carbon_dioxide":"Monitoruje poziom CO₂ w środowisku, aby śledzić jakość powietrza i wydajność wentylacji.","carbon_monoxide":"Wykrywa obecność tlenku węgla (CO), aby zapewnić bezpieczeństwo w zamkniętych przestrzeniach.","contact":"Śledzi stan otwarty lub zamknięty punktu kontaktowego, takiego jak drzwi, okno lub szafka.","cooler":"Steruje urządzeniami obniżającymi temperaturę powietrza lub cieczy, takimi jak klimatyzatory lub systemy chłodnicze.","dehumidifier":"Steruje urządzeniami osuszającymi, zarządza redukcją wilgotności za pomocą takich funkcji, jak wilgotność docelowa, tryby pracy i monitorowanie zbiornika wody.","device_information":"Ten kanał udostępnia metadane dotyczące urządzenia, w tym szczegółowe informacje o producencie, informacje o modelu i stany operacyjne.","doorbell":"Reprezentuje inteligentne dzwonki do drzwi, oferując takie funkcje, jak wykrywanie naciśnięcia przycisku i opcjonalna integracja kamery.","door":"Zarządza stanem otwarcia/zamknięcia drzwi, w tym garażowych i wejściowych.","electrical_energy":"Mierzy skumulowane zużycie energii w czasie w kilowatogodzinach (kWh).","electrical_generation":"Raportuje produkcję energii z fotowoltaiki (PV) lub innego źródła wytwarzania, śledząc skumulowaną energię wygenerowaną w kWh.","electrical_power":"Raportuje chwilowe wskaźniki mocy, takie jak napięcie, prąd, moc i częstotliwość, w celu monitorowania i diagnostyki w czasie rzeczywistym.","fan":"Steruje urządzeniami wentylatorowymi, w tym prędkością, oscylacją i trybami cyrkulacji powietrza.","filter":"Monitoruje stan i pozostałą żywotność filtrów powietrza lub wody, wskazując, kiedy konieczna jest ich wymiana.","flow":"Monitoruje natężenie przepływu płynu lub powietrza, zwykle mierzone w metrach sześciennych na godzinę (m³/h).","gas":"Wykrywa obecność gazu ziemnego lub innych gazów palnych, aby zapewnić bezpieczeństwo w zamkniętych przestrzeniach.","heater":"Zarządza urządzeniami grzewczymi, umożliwiając kontrolę ustawień temperatury i trybów.","humidifier":"Steruje urządzeniami nawilżającymi, zarządza wzrostem wilgotności za pomocą takich funkcji, jak wilgotność docelowa, kontrola poziomu mgły i monitorowanie zbiornika wody.","humidity":"Mierzy wilgotność względną w środowisku, wyrażoną w procentach.","illuminance":"Wykrywa poziom światła otoczenia, zwykle mierzony w luksach, w celu monitorowania jasności w pomieszczeniu.","leak":"Identyfikuje obecność wody lub innych cieczy, aby wykryć wycieki i zapobiec uszkodzeniom.","light":"Steruje urządzeniami oświetleniowymi, obsługując jasność, temperaturę barwową i regulację kolorów.","lock":"Zarządza stanem zablokowania/odblokowania fizycznych zamków drzwi, sejfów i innych bezpiecznych obszarów.","media_input":"Zarządza źródłami wejściowymi urządzeń multimedialnych, takich jak telewizory, projektory lub odbiorniki audio.","media_playback":"Zapewnia kontrolę odtwarzania dla urządzeń multimedialnych, z wyjątkiem regulacji głośności (obsługiwanej przez kanały głośnika i mikrofonu).","microphone":"Reprezentuje urządzenia wejściowe audio, zgłaszające aktywność lub przechwytujące dźwięk.","motion":"Wykrywa ruch w obszarze, aby wywołać alerty lub zautomatyzować reakcje.","nitrogen_dioxide":"Monitoruje stężenie NO₂ w powietrzu, często wykorzystywane w monitoringu środowiska i przemysłu.","occupancy":"Wykrywa obecność ludzi w przestrzeni w celach automatyzacji lub efektywności energetycznej.","outlet":"Steruje i monitoruje gniazdka elektryczne.","ozone":"Mierzy poziom ozonu (O₃) w powietrzu, często wykorzystywany w ocenie jakości środowiska.","pressure":"Podaje wartości ciśnienia atmosferycznego lub cieczy, zwykle mierzone w paskalach (kPa).","robot_vacuum":"Steruje odkurzaczami automatycznymi, udostępniając polecenia dotyczące uruchamiania, zatrzymywania, dokowania i monitorowania.","smoke":"Wykrywa dym w otoczeniu, uruchamiając alarmy lub alerty ze względów bezpieczeństwa.","speaker":"Steruje urządzeniami głośnikowymi, w tym głośnością, stanem wyciszenia i trybami wyjścia audio.","sulphur_dioxide":"Mierzy poziom dwutlenku siarki (SO₂) w powietrzu w celu monitorowania środowiska.","switcher":"Reprezentuje przełączniki binarne do sterowania urządzeniami, takimi jak światła, wentylatory lub urządzenia.","television":"Zapewnia kontrolę nad telewizorami, w tym źródłem sygnału wejściowego, jasnością i stanem zasilania.","projector":"Zapewnia kontrolę nad projektorami, w tym zasilaniem, źródłem sygnału wejściowego, jasnością i kluczami zdalnymi.","temperature":"Mierzy aktualną temperaturę otoczenia, podawaną w stopniach Celsjusza.","thermostat":"Zarządza systemami klimatyzacji, umożliwiając regulację ogrzewania, chłodzenia i ustawień wentylatora.","valve":"Steruje zaworami cieczy lub gazu, zarządzając stanami otwarcia/zamknięcia lub natężeniem przepływu.","volatile_organic_compounds":"Monitoruje stężenie LZO w powietrzu, aby śledzić zanieczyszczenie lub jakość powietrza.","window_covering":"Steruje zasłonami, takimi jak żaluzje, zasłony i okiennice, łącznie z regulacją położenia i pochylenia."},"selectPlugin":"Aby utworzyć nowy kanał, wybierz kompatybilną wtyczkę z listy. Wtyczki zapewniają niezbędne opcje konfiguracji dla określonego typu kanału."},"channelsProperties":{"noProperties":"Nie masz skonfigurowanych żadnych właściwości kanału","noFilteredProperties":"Nie znaleziono właściwości kanałów pasujących do aktywnych kryteriów filtra","loadingProperties":"Ładowanie właściwości kanałów...","loadingProperty":"Ładowanie właściwości kanału...","loadingChannels":"Ładowanie kanałów...","loadingChannel":"Ładowanie kanału...","confirmRemove":"Czy na pewno chcesz usunąć właściwość kanału: {property}? Tej operacji nie można cofnąć.","dataTypes":{"char":"8-bitowa liczba całkowita ze znakiem (-128 do 127).","uchar":"8-bitowa liczba całkowita bez znaku (0 do 255).","short":"16-bitowa liczba całkowita ze znakiem (-32 768 do 32 767).","ushort":"16-bitowa liczba całkowita bez znaku (0 do 65 535).","int":"32-bitowa liczba całkowita ze znakiem (-2 147 483 648 do 2 147 483 647).","uint":"32-bitowa liczba całkowita bez znaku (0 do 4 294 967 295).","float":"Liczba zmiennoprzecinkowa (np. 3,14, -0,001).","bool":"Wartość logiczna: prawda lub fałsz.","string":"Sekwencja znaków (np. „cześć”).","enum":"Wartość wyliczona wybrana z predefiniowanego zestawu.","unknown":"Nieznany lub nieokreślony typ danych."},"editValue":"Ręczna zmiana tej wartości jest dozwolona, ale może zostać automatycznie nadpisana, jeśli ta właściwość jest zmapowana na urządzenie. Używaj ostrożnie."},"misc":{"notSet":"Nie ustawiono","noValuesProvided":"Nie podano wartości","confirmDiscard":"Masz niezapisane zmiany. Czy na pewno chcesz je odrzucić?"}}`),fields:{devices:{search:{placeholder:`Szukaj urządzeń...`},plugin:{title:`Wtyczka urządzenia`,placeholder:`Wybierz wtyczkę urządzenia`},state:{title:`Stan`,placeholder:`Wybierz stan`},showHidden:{title:`Pokaż ukryte`},id:{title:`Identyfikator wewnętrzny`,placeholder:`ID urządzenia`},identifier:{title:`Identyfikator systemowy`,placeholder:`Identyfikator systemowy urządzenia`},category:{title:`Kategoria`,placeholder:`Kategoria urządzenia`,description:`O kategorii`,validation:{required:`Proszę wybrać kategorię urządzenia`}},name:{title:`Nazwa`,placeholder:`Nazwa urządzenia`,validation:{required:`Proszę podać nazwę urządzenia`}},description:{title:`Opis`,placeholder:`Opis urządzenia`},enabled:{title:`Włączone`,placeholder:`Włącz lub wyłącz urządzenie`},room:{title:`Pokój`,placeholder:`Wybierz pokój (opcjonalnie)`,hint:`Przypisz to urządzenie do fizycznej lokalizacji pokoju`},zones:{title:`Strefy`,placeholder:`Wybierz strefy (opcjonalnie)`,hint:`Przypisz to urządzenie do logicznych stref (np. Bezpieczeństwo, Na zewnątrz). Członkostwo w strefie piętra wynika z przypisania pokoju.`},validation:{title:`Walidacja`}},channels:{search:{placeholder:`Szukaj kanałów...`},plugin:{title:`Wtyczka kanału`,placeholder:`Wybierz wtyczkę kanału`},device:{title:`Urządzenie`,placeholder:`Urządzenie kanału`,description:`O urządzeniu`,validation:{required:`Proszę wybrać urządzenie kanału`}},id:{title:`Identyfikator wewnętrzny`,placeholder:`ID kanału`},category:{title:`Kategoria`,placeholder:`Kategoria kanału`,description:`O kategorii`,validation:{required:`Proszę wybrać kategorię kanału`}},name:{title:`Nazwa`,placeholder:`Nazwa kanału`,validation:{required:`Proszę podać nazwę kanału`}},description:{title:`Opis`,placeholder:`Opis kanału`}},channelsProperties:{search:{placeholder:`Szukaj właściwości...`},channel:{title:`Kanał`,placeholder:`Kanał właściwości`,description:`O kanale`,validation:{required:`Proszę wybrać kanał właściwości`}},id:{title:`Identyfikator wewnętrzny`,placeholder:`ID właściwości kanału`},category:{title:`Kategoria`,placeholder:`Kategoria właściwości kanału`,description:`O kategorii`,validation:{required:`Proszę wybrać kategorię właściwości kanału`}},name:{title:`Nazwa`,placeholder:`Nazwa właściwości kanału`},permissions:{title:`Uprawnienia`,placeholder:`Uprawnienia do odczytu i zapisu właściwości kanału`,validation:{required:`Proszę wybrać uprawnienia właściwości kanału`}},dataType:{title:`Typ danych`,placeholder:`Typ danych wartości właściwości kanału`,validation:{required:`Proszę wybrać typ danych właściwości kanału`}},unit:{title:`Jednostka`,placeholder:`Jednostka właściwości kanału`},format:{title:{enum:`Dozwolone wartości`,min:`Wartość minimalna`,max:`Wartość maksymalna`},placeholder:{enum:`Lista dozwolonych wartości`,min:`Minimalna dozwolona wartość`,max:`Maksymalna dozwolona wartość`},validation:{required:{enum:`Proszę podać listę dozwolonych wartości właściwości kanału`}}},invalid:{title:`Nieprawidłowa wartość`,placeholder:`Nieprawidłowa wartość właściwości kanału`},step:{title:`Wartość kroku`,placeholder:`Wartość kroku właściwości kanału`},enterValue:{title:`Wprowadź wartość`},value:{title:`Wartość`,placeholder:`Aktualna wartość właściwości kanału`}}},table:{devices:{columns:{name:{title:`Nazwa`},type:{title:`Typ`},state:{title:`Stan`},category:{title:`Kategoria`},enabled:{title:`Włączone`,values:{enabled:`Włączone`,disabled:`Wyłączone`}},validation:{title:`Walidacja`}}},channels:{columns:{name:{title:`Nazwa`},device:{title:`Urządzenie`},category:{title:`Kategoria`}}},channelsProperties:{columns:{name:{title:`Nazwa`},channel:{title:`Kanał`},category:{title:`Kategoria`},permissions:{title:`Uprawnienia`},dataType:{title:`Typ danych`,type:{enum:`Info wartości Enum`,numeric:`Info wartości numerycznej`}},value:{title:`Wartość`}}}},filters:{devices:{types:{title:`Filtruj według typu urządzenia`},states:{title:`Filtruj według stanu połączenia`},enabled:{title:`Filtruj według stanu urządzenia`,placeholder:`Wybierz stan urządzenia`,values:{enabled:`Włączone`,disabled:`Wyłączone`,all:`Wszystkie`}},category:{title:`Filtruj według kategorii urządzenia`,placeholder:`Wybierz jedną lub więcej`},validation:{title:`Filtruj według statusu walidacji`}},channels:{category:{title:`Filtruj według kategorii kanału`,placeholder:`Wybierz jedną lub więcej`}},channelsProperties:{category:{title:`Filtruj według kategorii właściwości`,placeholder:`Wybierz jedną lub więcej`},dataType:{title:`Filtruj według typu danych właściwości`},permission:{title:`Filtruj według uprawnień właściwości`}}},buttons:{add:{title:`Dodaj`},wizard:{title:`Kreator`},edit:{title:`Edytuj`},detail:{title:`Szczegóły`},discard:{title:`Odrzuć`},cancel:{title:`Anuluj`},close:{title:`Zamknij`},save:{title:`Zapisz`},change:{title:`Zmień`},remove:{title:`Usuń`},resetFilters:{title:`Resetuj filtry`},yes:{title:`Tak`},no:{title:`Nie`},reset:{title:`Resetuj`},addChannel:{title:`Dodaj kanał`},addProperty:{title:`Dodaj właściwość`},control:{title:`Sterowanie`},refresh:{title:`Odśwież`},loadMore:{title:`Załaduj więcej`},viewLogs:{title:`Pokaż logi`},back:{title:`Wróć`}},labels:{liveTail:`Podgląd na żywo`,paused:`Wstrzymane`,overview:`Przegląd`,validation:`Walidacja`,logs:`Dzienniki`},states:{online:`W Internecie`,offline:`Nieaktywny`,all:`Wszystkie`,connected:`Połączony`,disconnected:`Rozłączony`,init:`Zainicjalizowany`,ready:`Gotowy`,running:`Działa`,sleeping:`Uśpiony`,stopped:`Zatrzymany`,lost:`Utracony`,alert:`Alarm`,unknown:`Nieznany`},permissions:{ro:`Tylko do odczytu`,rw:`Odczyt i zapis`,wo:`Tylko do zapisu`,ev:`Zdarzenie`},dataTypes:{char:`Znak`,uchar:`Znak bez znaku`,short:`Krótka liczba całkowita`,ushort:`Krótka nieznakowana liczba całkowita`,int:`Liczba całkowita`,uint:`Nieznakowana liczba całkowita`,float:`Liczba zmiennoprzecinkowa`,bool:`Wartość logiczna`,string:`Ciąg znaków`,enum:`Wyliczenie`,unknown:`Nieznany`},categories:{devices:{generic:`Ogólne`,air_conditioner:`Klimatyzator`,air_dehumidifier:`Osuszacz powietrza`,air_humidifier:`Nawilżacz powietrza`,air_purifier:`Oczyszczacz powietrza`,alarm:`Alarm`,av_receiver:`Amplituner AV`,camera:`Kamera`,door:`Drzwi`,doorbell:`Dzwonek`,fan:`Wentylator`,game_console:`Konsola do gier`,heating_unit:`Grzejnik`,lighting:`Oświetlenie`,lock:`Zamek`,media:`Głoska bezdźwięczna`,outlet:`Gniazdko`,projector:`Projektor`,pump:`Pompa`,robot_vacuum:`Robot odkurzający`,sensor:`Czujnik`,set_top_box:`Dekoder`,speaker:`Głośnik`,sprinkler:`Zraszacz`,streaming_service:`Usługa streamingowa`,switcher:`Przełącznik`,television:`Telewizor`,terminal:`Terminal`,thermostat:`Termostat`,valve:`Zawór`,water_heater:`Podgrzewacz wody`,window_covering:`Osłona okienna`,input_controller:`Kontroler wejść`},channels:{generic:`Ogólny`,accelerometer:`Akcelerometr`,air_particulate:`Cząstki w powietrzu`,air_quality:`Jakość powietrza`,alarm:`Alarm`,battery:`Bateria`,button:`Przycisk`,buzzer:`Brzęczyk`,camera:`Kamera`,carbon_dioxide:`Dwutlenek węgla`,carbon_monoxide:`Tlenek węgla`,contact:`Kontakt`,cooler:`Chłodziarka`,dehumidifier:`Osuszacz`,device_information:`Informacje o urządzeniu`,door:`Drzwi`,doorbell:`Dzwonek`,electrical_energy:`Energia elektryczna`,electrical_generation:`Generacja energii`,electrical_power:`Moc elektryczna`,fan:`Wentylator`,filter:`Filtr`,flow:`Przepływ`,gas:`Gaz`,heater:`Grzejnik`,humidifier:`Nawilżacz`,humidity:`Wilgotność`,illuminance:`Natężenie oświetlenia`,indicator:`Wskaźnik`,leak:`Wyciek`,light:`Światło`,lock:`Zamek`,media_input:`Wejście multimedialne`,media_playback:`Odtwarzanie multimediów`,microphone:`Mikrofon`,motion:`Ruch`,nitrogen_dioxide:`Dwutlenek azotu`,occupancy:`Obecność`,outlet:`Gniazdko`,ozone:`Ozon`,pressure:`Ciśnienie`,robot_vacuum:`Robot odkurzający`,smoke:`Dym`,speaker:`Głośnik`,sulphur_dioxide:`Dwutlenek siarki`,switcher:`Przełącznik`,television:`Telewizor`,projector:`Projektor`,temperature:`Temperatura`,thermostat:`Termostat`,valve:`Zawór`,volatile_organic_compounds:`Lotne związki organiczne`,window_covering:`Osłona okienna`,analog_input:`Wejście analogowe`,binary_input:`Wejście binarne`},channelsProperties:{generic:`Ogólny`,acceleration_x:`Przyspieszenie X`,acceleration_y:`Przyspieszenie Y`,acceleration_z:`Przyspieszenie Z`,active:`Aktywny`,alarm_state:`Stan alarmowy`,album:`Album`,angle:`Kąt`,aqi:`AQI (indeks jakości powietrza)`,artist:`Artysta`,artwork_url:`Adres URL grafiki`,average_power:`Średnia moc`,balance:`Balansować`,bass:`Bas`,brightness:`Jasność`,change_needed:`Potrzebna zmiana`,child_lock:`Blokada dziecięca`,color_blue:`Kolor niebieski`,color_green:`Kolor zielony`,color_red:`Zarumienić`,color_temperature:`Temperatura barwowa`,color_white:`Kolor biały`,command:`Rozkaz`,connection_type:`Typ połączenia`,consumption:`Konsumpcja`,current:`Aktualny`,concentration:`Stężenie`,defrost_active:`Odszranianie aktywne`,detected:`Wykryto`,direction:`Kierunek`,distance:`Dystans`,duration:`Czas trwania`,event:`Wydarzenie`,fault:`Wada`,fault_description:`Opis usterki`,firmware_revision:`Wersja oprogramowania sprzętowego`,frequency:`Częstotliwość`,grid_export:`Eksport siatki`,grid_import:`Import siatki`,hardware_revision:`Wersja sprzętu`,hue:`Odcień`,humidity:`Wilgotność`,illuminance:`Natężenie oświetlenia`,in_use:`W użyciu`,infrared:`Podczerwony`,last_event:`Ostatnie wydarzenie`,level:`Poziom`,life_remaining:`Pozostało życie`,link_quality:`Jakość łącza`,locked:`Zamknięty`,manufacturer:`Producent`,media_type:`Typ nośnika`,mist_level:`Poziom mgły`,model:`Model`,mode:`Tryb`,mute:`Niemy`,natural_breeze:`Naturalny powiew`,obstruction:`Przeszkoda`,on:`On`,orientation:`Orientacja`,over_current:`Nadprąd`,over_voltage:`Nadmierne napięcie`,over_power:`Nad władzą`,pan:`Patelnia`,peak_level:`Poziom szczytowy`,percentage:`Procent`,position:`Pozycja`,power:`Moc`,pressure:`Ciśnienie`,production:`Produkcja`,rate:`Wskaźnik`,remaining:`Pozostały`,repeat:`Powtarzać`,reset:`Nastawić`,remote_key:`Klucz zdalny`,saturation:`Nasycenie`,serial_number:`Numer seryjny`,shuffle:`Człapać`,siren:`Syrena`,source:`Źródło`,source_label:`Etykieta źródłowa`,speed:`Prędkość`,state:`Państwo`,status:`Status`,swing:`Huśtać się`,tampered:`Naruszone`,temperature:`Temperatura`,tilt:`Nachylenie`,timer:`Regulator czasowy`,track:`Ścieżka`,treble:`Potroić`,triggered:`Wyzwolono`,type:`Typ`,units:`Jednostki`,voltage:`Woltaż`,volume:`Tom`,warm_mist:`Ciepła mgła`,water_tank_empty:`Zbiornik na wodę pusty`,water_tank_full:`Zbiornik na wodę pełny`,water_tank_level:`Poziom zbiornika wody`,zoom:`Brzęczenie`,unit:`Jednostka`,value:`Wartość`}},hidden:{badge:`Ukryte`,by:{system:`System`,user:`Użytkownik`},hint:{system:`Ukryte automatycznie, ponieważ zastąpiło je urządzenie wirtualne. Pojawi się ponownie po usunięciu tego urządzenia wirtualnego.`,user:`Ukryte przez operatora. Pozostaje ukryte, dopóki ktoś go nie odkryje.`},unhide:`Pokaż`},validation:{status:{valid:`Prawidłowy`,invalid:`Nieprawidłowy`,unknown:`Nieznany`},filter:{valid:`Prawidłowy`,invalid:`Nieprawidłowy`,all:`Wszystkie`},errors:`błędy`,warnings:`ostrzeżenia`,issuesTitle:`Problemy walidacji`,severity:{error:`Błąd`,warning:`Ostrzeżenie`},table:{severity:`Ważność`,type:`Typ`,message:`Wiadomość`,channel:`Kanał`},issueTypes:{missing_channel:`Brakujący kanał`,missing_property:`Brakująca właściwość`,invalid_data_type:`Nieprawidłowy typ danych`,invalid_permissions:`Nieprawidłowe uprawnienia`,invalid_format:`Nieprawidłowy format`,unknown_channel:`Nieznany kanał`,duplicate_channel:`Zduplikowany kanał`,constraint_one_of_violation:`Naruszenie ograniczenia (jeden z)`,constraint_one_or_more_of_violation:`Naruszenie ograniczenia (jeden lub więcej z)`,constraint_mutually_exclusive_violation:`Naruszenie ograniczenia (wzajemne wykluczenie)`}},wizard:{steps:{discover:`Wyszukiwanie`,confirm:`Potwierdzenie`,results:`Wyniki`},actions:{cancel:`Anuluj`,back:`Wstecz`,next:`Dalej`,adopt:`Dodaj urządzenia`,addMore:`Dodaj kolejne`,done:`Zakończ`},statuses:{checking:`Sprawdzanie`,ready:`Gotowe`,needs_credentials:`Wymagane dane logowania`,already_registered:`Już dodane`,unsupported:`Nieobsługiwane`,failed:`Niepowodzenie`,willCreate:`Zostanie utworzone`,willUpdate:`Zostanie zaktualizowane`,created:`Utworzono`,updated:`Zaktualizowano`,skipped:`Bez zmian`},columns:{name:`Nazwa`,status:`Status`,category:`Kategoria`,change:`Akcja`,error:`Błąd`},totals:{found:`Znaleziono: {count}`,adoptable:`Możliwe do dodania: {count}`,alreadyAdded:`Już dodano: {count}`,unsupported:`Nieobsługiwane: {count}`,visible:`Widoczne: {count}`},texts:{loading:`Ładowanie sesji wyszukiwania...`,empty:`Nie znaleziono jeszcze żadnych urządzeń`,noSelection:`Nie wybrano żadnych urządzeń`,resultsSuccess:`Wszystkie wybrane urządzenia zostały pomyślnie dodane`,resultsFailed:`Niektórych urządzeń nie udało się dodać`}},diagnostics:{title:`Diagnostyka wejść sprzętowych`,capabilitiesTitle:`Możliwości wejścia`,supportedInteractions:`Obsługiwane interakcje`,noDiscreteEvents:`Wejście ciągłe / analogowe (brak dyskretnych zdarzeń)`,noCapabilities:`Brak dostępnych możliwości wejścia`,liveEventsTitle:`Zdarzenia na żywo`,clearEvents:`Wyczyść`,noOccurrences:`Nie odebrano jeszcze żadnych zdarzeń`,columnEvent:`Zdarzenie`,columnNativeType:`Typ natywny`,columnTimestamp:`Odebrano o`,columnData:`Dane`}},"sk-SK":{menu:{title:`Zariadenia`},meta:{devices:{list:{title:`Zoznam zariadení`},edit:{title:`Upraviť zariadenie: {device}`},add:{title:`Pridať zariadenie`},detail:{title:`Zariadenie: {device}`},control:{title:`Ovládanie zariadenia: {device}`}},channels:{list:{title:`Zoznam kanálov`},edit:{title:`Upraviť kanál: {channel}`},add:{title:`Pridať kanál`},detail:{title:`Kanál: {channel}`}},channelsProperties:{edit:{title:`Upraviť vlastnosť kanála: {property}`},add:{title:`Pridať vlastnosť kanála`}}},breadcrumbs:{devices:{list:`zariadenia`,add:`pridať zariadenie`,edit:`upraviť zariadenie`,detail:`zariadenie: {device}`,control:`ovládanie: {device}`},channels:{list:`kanály`,add:`pridať kanál`,edit:`upraviť kanál`,detail:`kanál: {channel}`},channelsProperties:{add:`pridať vlastnosť kanála`,edit:`upraviť vlastnosť kanála`}},headings:{devices:{list:`Zariadenia`,add:`Pridať zariadenie`,edit:`Upraviť zariadenie`,detail:`Zariadenie: {device}`,control:`Ovládanie: {device}`,remove:`Odstrániť zariadenie?`,bulkRemove:`Odstrániť zariadenia?`,bulkEnable:`Povoliť zariadenia?`,bulkDisable:`Zakázať zariadenia?`,adjustFilters:`Filtrovať zariadenia`,selectPlugin:`Vyžaduje sa plugin zariadenia`,selectWizardPlugin:`Vybrať sprievodcu zariadením`},channels:{list:`Kanály`,add:`Pridať kanál`,edit:`Upraviť kanál`,detail:`Kanál: {channel}`,remove:`Odstrániť kanál?`,adjustFilters:`Filtrovať kanály`,selectPlugin:`Vyžaduje sa plugin kanála`},channelsProperties:{add:`Pridať vlastnosť kanála`,edit:`Upraviť vlastnosť kanála`,remove:`Odstrániť vlastnosť kanála?`,adjustFilters:`Filtrovať vlastnosti`},misc:{discard:`Zahodiť zmeny?`}},subHeadings:{devices:{list:`Spravujte zariadenia smart panelu`,add:`Pridať nové zariadenie smart panelu`,edit:`Upraviť zariadenie smart panelu`,detail:`Spravovať zariadenie smart panelu`,control:`Ovládať zariadenie smart panelu`,adjustFilters:`Upraviť filtre zobrazenia`},channels:{list:`Spravujte kanály zariadení smart panelu`,add:`Pridať nový kanál zariadenia smart panelu`,edit:`Upraviť kanál zariadenia smart panelu`,detail:`Spravovať kanál zariadenia smart panelu`,adjustFilters:`Upraviť filtre zobrazenia`},channelsProperties:{add:`Pridať novú vlastnosť kanála smart panelu`,edit:`Upraviť vlastnosť kanála smart panelu`,adjustFilters:`Upraviť filtre zobrazenia`}},messages:{devices:{notFound:`Zariadenie, ktoré hľadáte, neexistuje alebo bolo odstránené.`,created:`Nové zariadenie bolo úspešne pridané.`,notCreated:`Niečo sa pokazilo. Nepodarilo sa vytvoriť zariadenie.`,edited:`Zmeny uložené! Zariadenie: {device} bolo aktualizované.`,notEdited:`Niečo sa pokazilo. Aktualizácia zariadenia nebola úspešná.`,removed:`Zariadenie: {device} bolo úspešne odstránené.`,removeCanceled:`Odstránenie zariadenia: {device} bolo zrušené.`,notRemoved:`Niečo sa pokazilo a zariadenie: {device} nebolo odstránené.`,deletedWhileEditing:`Toto zariadenie bolo odstránené a už nie je dostupné.`,bulkRemoved:`{count} zariadení bolo úspešne odstránených.`,bulkRemoveFailed:`Nepodarilo sa odstrániť {count} zariadení.`,bulkRemoveCanceled:`Hromadné odstránenie zariadení bolo zrušené.`,bulkEnabled:`{count} zariadení bolo úspešne povolených.`,bulkEnableFailed:`Nepodarilo sa povoliť {count} zariadení.`,bulkEnableCanceled:`Hromadné povolenie zariadení bolo zrušené.`,bulkDisabled:`{count} zariadení bolo úspešne zakázaných.`,bulkDisableFailed:`Nepodarilo sa zakázať {count} zariadení.`,bulkDisableCanceled:`Hromadné zakázanie zariadení bolo zrušené.`,notLoaded:`Nepodarilo sa načítať zariadenie. Skúste to prosím neskôr.`,unhidden:`Zariadenie {device} je opäť viditeľné`,notUnhidden:`Zariadenie {device} sa nepodarilo zobraziť`,hiddenNotLoaded:`Skryté zariadenia sa nepodarilo načítať. Skúste to prosím neskôr.`},channels:{notFound:`Kanál, ktorý hľadáte, neexistuje alebo bol odstránený.`,notLoaded:`Nepodarilo sa načítať kanál. Skúste to prosím neskôr.`,notLoadedForDevice:`Nepodarilo sa načítať kanály pre toto zariadenie.`,created:`Nový kanál bol úspešne pridaný.`,notCreated:`Niečo sa pokazilo. Nepodarilo sa vytvoriť kanál.`,edited:`Zmeny uložené! Kanál: {channel} bol aktualizovaný.`,notEdited:`Niečo sa pokazilo. Aktualizácia kanála nebola úspešná.`,removed:`Kanál: {channel} bol úspešne odstránený.`,removeCanceled:`Odstránenie kanála: {channel} bolo zrušené.`,notRemoved:`Niečo sa pokazilo a kanál: {channel} nebol odstránený.`,noMoreAllowed:`Všetky požadované a voliteľné kanály sú priradené k zariadeniu. Žiadne ďalšie nie je možné pridať.`,deletedWhileEditing:`Tento kanál bol odstránený a už nie je dostupný.`},channelsProperties:{notFound:`Vlastnosť kanála, ktorú hľadáte, neexistuje alebo bola odstránená.`,notLoadedForChannel:`Nepodarilo sa načítať vlastnosti pre tento kanál.`,created:`Nová vlastnosť kanála bola úspešne pridaná.`,notCreated:`Niečo sa pokazilo. Nepodarilo sa vytvoriť vlastnosť kanála.`,edited:`Zmeny uložené! Vlastnosť kanála: {property} bola aktualizovaná.`,notEdited:`Niečo sa pokazilo. Aktualizácia vlastnosti kanála nebola úspešná.`,removed:`Vlastnosť kanála: {property} bola úspešne odstránená.`,removeCanceled:`Odstránenie vlastnosti kanála: {property} bolo zrušené.`,notRemoved:`Niečo sa pokazilo a vlastnosť kanála: {property} nebola odstránená.`,noMoreAllowed:`Všetky požadované a voliteľné vlastnosti sú priradené ku kanálu. Žiadne ďalšie nie je možné pridať.`,deletedWhileEditing:`Táto vlastnosť kanála bola odstránená a už nie je dostupná.`},misc:{requestError:`Niečo sa pokazilo, skúste to prosím neskôr.`}},texts:JSON.parse(`{"devices":{"noDevices":"Nemáte nakonfigurované žiadne zariadenie","noFilteredDevices":"Neboli nájdené žiadne zariadenia zodpovedajúce aktívnym filtrom","loadingDevices":"Načítavanie zariadení...","loadingDevice":"Načítavanie zariadenia...","confirmRemove":"Naozaj chcete odstrániť zariadenie: {device}? Toto sa nedá vrátiť.","confirmBulkRemove":"Naozaj chcete odstrániť {count} zariadení? Toto sa nedá vrátiť.","confirmBulkEnable":"Naozaj chcete povoliť {count} zariadení?","confirmBulkDisable":"Naozaj chcete zakázať {count} zariadení?","description":{"generic":"","air_conditioner":"Zariadenie Air Conditioner predstavuje chladiaci systém s ďalšími funkciami pre monitorovanie prostredia a energetický manažment.","air_dehumidifier":"Zariadenie Air Dehumidifier predstavuje systém určený na zníženie úrovne vlhkosti v prostredí a zároveň poskytuje ďalšie možnosti monitorovania a kontroly.","air_humidifier":"Zariadenie na zvlhčovanie vzduchu predstavuje systém určený na zvýšenie úrovne vlhkosti v prostredí a zároveň poskytuje ďalšie možnosti monitorovania a kontroly.","air_purifier":"Zariadenie Air Purifier predstavuje systém určený na zlepšenie kvality vzduchu v interiéri odstránením nečistôt a monitorovaním podmienok prostredia.","alarm":"","av_receiver":"Zariadenie AV Receiver predstavuje prijímač/zosilňovač domáceho kina s prepínaním vstupov a ovládaním výstupu reproduktorov.","camera":"Zariadenie Camera predstavuje dohľadový alebo monitorovací systém určený na snímanie videa a obrazu s ďalšími funkciami na monitorovanie prostredia a interakciu.","doorbell":"Zariadenie Doorbell predstavuje inteligentný systém zvončeka, ktorý poskytuje video, audio a ďalšie monitorovacie funkcie pre zvýšenie bezpečnosti domácnosti.","door":"Zariadenie Door predstavuje automatizované alebo monitorované dvere, ako sú garážové brány, vchodové dvere alebo iné typy dverí, s ďalšími funkciami pre bezpečnosť a environmentálne povedomie.","fan":"Zariadenie Ventilátor predstavuje samostatný alebo integrovaný ventilátorový systém s funkciami na ovládanie rýchlosti, nastavenie smeru a monitorovanie energie.","game_console":"Zariadenie Game Console predstavuje hernú konzolu, ktorú možno ovládať pre základný stav napájania/aktivity a prehrávanie médií, ak je to podporované.","heating_unit":"Zariadenie Heating Unit predstavuje systém vykurovania priestorov alebo miestností navrhnutý na riadenie a monitorovanie teploty prostredia s voliteľnými funkciami na riadenie energie a vlhkosti.","lighting":"Osvetľovacie zariadenie predstavuje osvetľovací systém navrhnutý tak, aby poskytoval osvetlenie s voliteľnými funkciami na sledovanie energie, ovládanie jasu a adaptívne osvetlenie na základe okolitých podmienok.","lock":"Zariadenie Lock predstavuje elektronický alebo inteligentný uzamykací systém, ktorý zabezpečuje ovládanie a monitorovanie prístupových bodov, ako sú dvere alebo brány.","media":"Mediálne zariadenie predstavuje multimediálny systém schopný prehrávať, nahrávať alebo spravovať audio a video obsah.","outlet":"Zariadenie Outlet predstavuje elektrickú zásuvku s pokročilými funkciami monitorovania a ovládania, ktoré umožňujú diaľkové ovládanie a sledovanie energie. ","projector":"Projektor predstavuje videoprojekčnú obrazovku, ktorú možno zapnúť/vypnúť a prepínať medzi vstupnými zdrojmi.","pump":"Zariadenie Pump predstavuje vodné alebo kvapalinové čerpadlo s funkcionalitou na riadenie prietoku, monitorovanie a sledovanie energie.","robot_vacuum":"Zariadenie Robot Vacuum predstavuje autonómne čistiace zariadenie s možnosťou sledovania energie a prevádzkového monitorovania.","sensor":"Zariadenie Sensor predstavuje všestrannú monitorovaciu jednotku schopnú sledovať rôzne environmentálne a bezpečnostné parametre.","set_top_box":"Zariadenie Set-top Box predstavuje mediálne zariadenie pripojené k TV (streamovací box, IPTV box alebo HDMI kľúč), ktoré poskytuje ovládanie prehrávania a voliteľný výber zdroja.","speaker":"Reproduktor predstavuje zvukový výstupný systém schopný produkovať zvuk a potenciálne podporuje prehrávanie médií a vstupné funkcie.","sprinkler":"Zariadenie Sprinkler predstavuje zavlažovací systém určený na riadenie prietoku vody a monitorovanie podmienok prostredia na optimalizáciu zavlažovania.","streaming_service":"Zariadenie Streaming Service predstavuje cloudový prehrávač médií (napr. Spotify), ktorý poskytuje ovládanie prehrávania a metadáta bez fyzického stavu napájania.","switcher":"Zariadenie Switcher predstavuje ovládateľnú zásuvku alebo spínač, ktorý dokáže prepínať napájanie pripojených zariadení a monitorovať spotrebu energie. ","television":"Televízne zariadenie predstavuje inteligentný televízor alebo podobné mediálne zariadenie, ktoré je možné ovládať a monitorovať z hľadiska jeho zvukovej a zobrazovacej funkcie.","thermostat":"Zariadenie Thermostat predstavuje systém ovládania klimatizácie, ktorý monitoruje a upravuje teplotu a súvisiace faktory prostredia.","valve":"Zariadenie Valve predstavuje ovládateľný ventil používaný na riadenie prietoku kvapalín alebo plynov v rôznych systémoch.","water_heater":"Zariadenie Water Heater predstavuje systém ohrevu vody určený na ohrev a udržiavanie teploty vody s voliteľnými funkciami na monitorovanie energie a detekciu úniku.","window_covering":"Zariadenie Window Covering predstavuje automatizované úpravy okien, ako sú žalúzie, rolety alebo závesy."},"selectPlugin":"Na vytvorenie nového zariadenia vyberte kompatibilný plugin zo zoznamu. Pluginy poskytujú potrebné konfiguračné možnosti pre konkrétny typ zariadenia.","noWizardForDevicePlugin":"Plugin zariadenia „{type}\\" neposkytuje sprievodcu nastavením.","noChannels":"Toto zariadenie zatiaľ nemá žiadne kanály. Kanály definujú vstupy alebo výstupy zariadenia. Vytvorte nový kanál na začatie interakcie s týmto zariadením.","category":"Kategória","channelsCount":"Žiadne kanály nakonfigurované | Jeden kanál nakonfigurovaný | {count} kanálov nakonfigurovaných","alertsCount":"Žiadne výstrahy zistené | Jedna výstraha zistená | {count} výstrah zistených","channels":"Kanály","alerts":"Výstrahy","status":"Stav","validation":"Validácia","noControllableProperties":"Toto zariadenie nemá žiadne ovládateľné vlastnosti. Vlastnosti musia mať oprávnenia čítanie-zápis alebo iba zápis na ovládanie.","logs":{"title":"Logy zariadenia","noLogs":"Žiadne logy nie sú dostupné","noLogsDescription":"Pre toto zariadenie ešte neboli zaznamenané žiadne logy","noMessage":"(žiadna správa)","noMoreEntries":"Žiadne ďalšie záznamy logov","detail":"Podrobnosti protokolu"}},"channels":{"noChannels":"Nemáte nakonfigurovaný žiadny kanál zariadenia","noFilteredChannels":"Neboli nájdené žiadne kanály zodpovedajúce aktívnym filtrom","loadingChannels":"Načítavanie kanálov...","loadingChannel":"Načítavanie kanála...","confirmRemove":"Naozaj chcete odstrániť kanál: {channel}? Toto sa nedá vrátiť.","description":{"generic":"","air_particulate":"Monitoruje koncentráciu pevných častíc (napr. PM2,5 a PM10) vo vzduchu a poskytuje prehľad o kvalite ovzdušia a úrovniach znečistenia.","air_quality":"Monitoruje celkovú kvalitu vzduchu pomocou indexu (0-500) alebo indikátora úrovne, čím poskytuje zjednodušené hodnotenie podmienok vnútorného vzduchu.","alarm":"","battery":"Hlási stav batérie zariadenia vrátane úrovne, stavu nabíjania a prevádzkového stavu.","camera":"Poskytuje video a obrazové dátové toky z monitorovacích alebo monitorovacích kamier. ","carbon_dioxide":"Monitoruje hladiny CO₂ v prostredí, aby sledoval kvalitu vzduchu a účinnosť vetrania.","carbon_monoxide":"Detekuje prítomnosť oxidu uhoľnatého (CO) na zaistenie bezpečnosti v uzavretých priestoroch.","contact":"Sleduje otvorený alebo zatvorený stav kontaktného bodu, ako sú dvere, okno alebo skrinka.","cooler":"Ovláda zariadenia, ktoré znižujú teplotu vzduchu alebo kvapaliny, ako sú klimatizácie alebo chladiace systémy.","dehumidifier":"Ovláda odvlhčovacie zariadenia, riadi zníženie vlhkosti pomocou funkcií, ako je cieľová vlhkosť, prevádzkové režimy a monitorovanie nádrže na vodu.","device_information":"Tento kanál poskytuje metadáta o zariadení vrátane podrobností o výrobcovi, informácií o modeli a prevádzkových stavoch.","doorbell":"Predstavuje inteligentné zvončeky, ktoré poskytujú funkcie, ako je detekcia stlačenia tlačidla a voliteľná integrácia kamery.","door":"Spravuje stavy otvorenia/zatvorenia dverí, vrátane garážových a vchodových dverí.","electrical_energy":"Meria kumulatívnu spotrebu energie v priebehu času v kilowatthodinách (kWh).","electrical_generation":"Uvádza výrobu energie z fotovoltaického (PV) alebo iného zdroja výroby, pričom sleduje kumulovanú energiu vyrobenú v kWh.","electrical_power":"Hlási metriky okamžitého výkonu, ako je napätie, prúd, výkon a frekvencia pre monitorovanie a diagnostiku v reálnom čase.","fan":"Ovláda zariadenia ventilátora vrátane rýchlosti, oscilácie a režimov cirkulácie vzduchu.","filter":"Monitoruje stav a zostávajúcu životnosť vzduchových alebo vodných filtrov a ukazuje, kedy je potrebná výmena.","flow":"Monitoruje rýchlosť prúdenia tekutiny alebo vzduchu, zvyčajne meranú v metroch kubických za hodinu (m³/h).","gas":"Detekuje prítomnosť zemného plynu alebo iných horľavých plynov na zaistenie bezpečnosti v uzavretých priestoroch.","heater":"Riadi vykurovacie zariadenia, umožňuje ovládanie nastavení teploty a režimov.","humidifier":"Ovláda zariadenia zvlhčovača, riadi zvýšenie vlhkosti pomocou funkcií, ako je cieľová vlhkosť, ovládanie úrovne hmly a monitorovanie nádrže na vodu.","humidity":"Meria relatívnu vlhkosť prostredia, uvádzanú v percentách.","illuminance":"Zisťuje úrovne okolitého svetla, zvyčajne merané v luxoch, na sledovanie jasu v priestore.","leak":"Identifikuje prítomnosť vody alebo iných kvapalín, aby zistila netesnosti a zabránila poškodeniu.","light":"Ovláda osvetľovacie zariadenia, podporuje jas, teplotu farieb a úpravy farieb.","lock":"Spravuje zamknutý/odomknutý stav fyzických zámkov dverí, trezorov alebo iných zabezpečených priestorov.","media_input":"Spravuje vstupné zdroje multimediálnych zariadení, ako sú televízory, projektory alebo audio prijímače.","media_playback":"Poskytuje ovládacie prvky prehrávania pre multimediálne zariadenia, s výnimkou ovládania hlasitosti (riadené kanálmi reproduktorov a mikrofónov).","microphone":"Predstavuje zvukové vstupné zariadenia, hlási aktivitu alebo zachytáva zvuk.","motion":"Detekuje pohyb v oblasti na spustenie výstrah alebo automatizáciu odpovedí.","nitrogen_dioxide":"Monitoruje koncentráciu NO₂ vo vzduchu, často sa používa v environmentálnom a priemyselnom monitorovaní.","occupancy":"Detekuje prítomnosť ľudí v priestore na účely automatizácie alebo energetickej účinnosti.","outlet":"Ovláda a monitoruje elektrické zásuvky.","ozone":"Meria hladiny ozónu (O₃) vo vzduchu, často sa používa pri hodnotení kvality životného prostredia.","pressure":"Uvádza hodnoty atmosférického tlaku alebo tlaku kvapaliny, zvyčajne merané v pascaloch (kPa).","robot_vacuum":"Ovláda robotické vysávače a poskytuje príkazy na spustenie, zastavenie, dokovanie a monitorovanie stavov.","smoke":"Detekuje dym v prostredí, spúšťa alarmy alebo výstrahy pre bezpečnosť.","speaker":"Ovláda reproduktorové zariadenia vrátane hlasitosti, stlmenia a režimov výstupu zvuku.","sulphur_dioxide":"Meria hladiny oxidu siričitého (SO₂) vo vzduchu na monitorovanie životného prostredia.","switcher":"Predstavuje binárne spínače na ovládanie zariadení, ako sú svetlá, ventilátory alebo spotrebiče.","television":"Poskytuje ovládanie televízorov vrátane vstupného zdroja, jasu a stavu napájania.","projector":"Poskytuje ovládanie projektorov vrátane napájania, vstupného zdroja, jasu a diaľkových tlačidiel.","temperature":"Meria aktuálnu teplotu v prostredí, uvádzanú v stupňoch Celzia.","thermostat":"Riadi systémy ovládania klimatizácie, umožňuje úpravy kúrenia, chladenia a nastavenia ventilátora.","valve":"Ovláda kvapalinové alebo plynové ventily, riadi stavy otvorené/zatvorené alebo prietoky.","volatile_organic_compounds":"Monitoruje koncentráciu VOC vo vzduchu na sledovanie znečistenia alebo kvality ovzdušia.","window_covering":"Ovláda kryty, ako sú žalúzie, závesy a žalúzie, vrátane nastavenia polohy a sklonu."},"selectPlugin":"Na vytvorenie nového kanála vyberte kompatibilný plugin zo zoznamu. Pluginy poskytujú potrebné konfiguračné možnosti pre konkrétny typ kanála."},"channelsProperties":{"noProperties":"Nemáte nakonfigurovanú žiadnu vlastnosť kanála","noFilteredProperties":"Neboli nájdené žiadne vlastnosti kanálov zodpovedajúce aktívnym filtrom","loadingProperties":"Načítavanie vlastností kanálov...","loadingProperty":"Načítavanie vlastnosti kanála...","loadingChannels":"Načítavanie kanálov...","loadingChannel":"Načítavanie kanála...","confirmRemove":"Naozaj chcete odstrániť vlastnosť kanála: {property}? Toto sa nedá vrátiť.","dataTypes":{"char":"8-bitové celé číslo so znamienkom (-128 až 127).","uchar":"8-bitové celé číslo bez znamienka (0 až 255).","short":"16-bitové celé číslo so znamienkom (-32 768 až 32 767).","ushort":"16-bitové celé číslo bez znamienka (0 až 65 535).","int":"32-bitové celé číslo so znamienkom (-2 147 483 648 až 2 147 483 647).","uint":"32-bitové celé číslo bez znamienka (0 až 4 294 967 295).","float":"Číslo s pohyblivou rádovou čiarkou (napr. 3,14, -0,001).","bool":"Booleovská hodnota: true alebo false.","string":"Postupnosť znakov (napr. „ahoj“).","enum":"Vyčíslená hodnota vybraná z preddefinovanej množiny.","unknown":"Neznámy alebo nešpecifikovaný typ údajov."},"editValue":"Manuálna zmena tejto hodnoty je povolená, ale môže byť automaticky prepísaná, ak je táto vlastnosť mapovaná na zariadenie. Používajte opatrne."},"misc":{"notSet":"Nie je nastavené","noValuesProvided":"Žiadne hodnoty neboli poskytnuté","confirmDiscard":"Máte neuložené zmeny. Naozaj ich chcete zahodiť?"}}`),fields:{devices:{search:{placeholder:`Vyhľadať zariadenia...`},plugin:{title:`Plugin zariadenia`,placeholder:`Vyberte plugin zariadenia`},state:{title:`Stav`,placeholder:`Vyberte stav`},showHidden:{title:`Zobraziť skryté`},id:{title:`Interný identifikátor`,placeholder:`ID zariadenia`},identifier:{title:`Systémový identifikátor`,placeholder:`Systémový identifikátor zariadenia`},category:{title:`Kategória`,placeholder:`Kategória zariadenia`,description:`O kategórii`,validation:{required:`Prosím vyberte kategóriu zariadenia`}},name:{title:`Názov`,placeholder:`Názov zariadenia`,validation:{required:`Prosím vyplňte názov zariadenia`}},description:{title:`Popis`,placeholder:`Popis zariadenia`},enabled:{title:`Povolené`,placeholder:`Povoliť alebo zakázať zariadenie`},room:{title:`Miestnosť`,placeholder:`Vyberte miestnosť (voliteľné)`,hint:`Priraďte toto zariadenie k fyzickej miestnosti`},zones:{title:`Zóny`,placeholder:`Vyberte zóny (voliteľné)`,hint:`Priraďte toto zariadenie k logickým zónam (napr. Bezpečnosť, Exteriér). Členstvo v zóne poschodia je odvodené z priradenia miestnosti.`},validation:{title:`Validácia`}},channels:{search:{placeholder:`Vyhľadať kanály...`},plugin:{title:`Plugin kanála`,placeholder:`Vyberte plugin kanála`},device:{title:`Zariadenie`,placeholder:`Zariadenie kanála`,description:`O zariadení`,validation:{required:`Prosím vyberte zariadenie kanála`}},id:{title:`Interný identifikátor`,placeholder:`ID kanála`},category:{title:`Kategória`,placeholder:`Kategória kanála`,description:`O kategórii`,validation:{required:`Prosím vyberte kategóriu kanála`}},name:{title:`Názov`,placeholder:`Názov kanála`,validation:{required:`Prosím vyplňte názov kanála`}},description:{title:`Popis`,placeholder:`Popis kanála`}},channelsProperties:{search:{placeholder:`Vyhľadať vlastnosti...`},channel:{title:`Kanál`,placeholder:`Kanál vlastnosti kanála`,description:`O kanáli`,validation:{required:`Prosím vyberte kanál vlastnosti kanála`}},id:{title:`Interný identifikátor`,placeholder:`ID vlastnosti kanála`},category:{title:`Kategória`,placeholder:`Kategória vlastnosti kanála`,description:`O kategórii`,validation:{required:`Prosím vyberte kategóriu vlastnosti kanála`}},name:{title:`Názov`,placeholder:`Názov vlastnosti kanála`},permissions:{title:`Oprávnenia`,placeholder:`Oprávnenia čítania a zápisu vlastnosti kanála`,validation:{required:`Prosím vyberte oprávnenia vlastnosti kanála`}},dataType:{title:`Dátový typ`,placeholder:`Dátový typ hodnoty vlastnosti kanála`,validation:{required:`Prosím vyberte dátový typ vlastnosti kanála`}},unit:{title:`Jednotka`,placeholder:`Jednotka vlastnosti kanála`},format:{title:{enum:`Povolené hodnoty`,min:`Minimálna hodnota`,max:`Maximálna hodnota`},placeholder:{enum:`Zoznam povolených hodnôt`,min:`Minimálna povolená hodnota`,max:`Maximálna povolená hodnota`},validation:{required:{enum:`Prosím vyplňte zoznam povolených hodnôt vlastnosti kanála`}}},invalid:{title:`Neplatná hodnota`,placeholder:`Neplatná hodnota vlastnosti kanála`},step:{title:`Hodnota kroku`,placeholder:`Hodnota kroku vlastnosti kanála`},enterValue:{title:`Zadajte hodnotu`},value:{title:`Hodnota`,placeholder:`Aktuálna hodnota vlastnosti kanála`}}},table:{devices:{columns:{name:{title:`Názov`},type:{title:`Typ`},state:{title:`Stav`},category:{title:`Kategória`},enabled:{title:`Povolené`,values:{enabled:`Povolené`,disabled:`Zakázané`}},validation:{title:`Validácia`}}},channels:{columns:{name:{title:`Názov`},device:{title:`Zariadenie`},category:{title:`Kategória`}}},channelsProperties:{columns:{name:{title:`Názov`},channel:{title:`Kanál`},category:{title:`Kategória`},permissions:{title:`Oprávnenia`},dataType:{title:`Dátový typ`,type:{enum:`Info o enum hodnote`,numeric:`Info o číselnej hodnote`}},value:{title:`Hodnota`}}}},filters:{devices:{types:{title:`Filtrovať podľa typu zariadenia`},states:{title:`Filtrovať podľa stavu pripojenia`},enabled:{title:`Filtrovať podľa stavu zariadenia`,placeholder:`Vyberte stav zariadenia`,values:{enabled:`Povolené`,disabled:`Zakázané`,all:`Všetky`}},category:{title:`Filtrovať podľa kategórie zariadenia`,placeholder:`Vyberte jednu alebo viac`},validation:{title:`Filtrovať podľa stavu validácie`}},channels:{category:{title:`Filtrovať podľa kategórie kanála`,placeholder:`Vyberte jednu alebo viac`}},channelsProperties:{category:{title:`Filtrovať podľa kategórie vlastnosti`,placeholder:`Vyberte jednu alebo viac`},dataType:{title:`Filtrovať podľa dátového typu vlastnosti`},permission:{title:`Filtrovať podľa oprávnenia vlastnosti`}}},buttons:{add:{title:`Pridať`},wizard:{title:`Sprievodca`},edit:{title:`Upraviť`},detail:{title:`Detail`},discard:{title:`Zahodiť`},cancel:{title:`Zrušiť`},close:{title:`Zavrieť`},save:{title:`Uložiť`},change:{title:`Zmeniť`},remove:{title:`Odstrániť`},resetFilters:{title:`Resetovať filtre`},yes:{title:`Áno`},no:{title:`Nie`},reset:{title:`Resetovať`},addChannel:{title:`Pridať kanál`},addProperty:{title:`Pridať vlastnosť`},control:{title:`Ovládať`},refresh:{title:`Obnoviť`},loadMore:{title:`Načítať viac`},viewLogs:{title:`Zobraziť logy`},back:{title:`Späť`}},labels:{liveTail:`Živý prenos`,paused:`Pozastavené`,overview:`Prehľad`,validation:`Validácia`,logs:`Protokoly`},states:{online:`Online`,offline:`Offline`,all:`Všetky`,connected:`Pripojený`,disconnected:`Odpojený`,init:`Inicializovaný`,ready:`Pripravený`,running:`Beží`,sleeping:`Spí`,stopped:`Zastavený`,lost:`Stratený`,alert:`Výstraha`,unknown:`Neznámy`},permissions:{ro:`Iba čítanie`,rw:`Čítanie a zápis`,wo:`Iba zápis`,ev:`Udalosť`},dataTypes:{char:`Znak`,uchar:`Neznamienkový znak`,short:`Krátke celé číslo`,ushort:`Neznamienkové krátke celé číslo`,int:`Celé číslo`,uint:`Neznamienkové celé číslo`,float:`Desatinné číslo`,bool:`Logická hodnota`,string:`Reťazec`,enum:`Výpočet`,unknown:`Neznámy`},categories:{devices:{generic:`Všeobecné`,air_conditioner:`Klimatizácia`,air_dehumidifier:`Odvlhčovač vzduchu`,air_humidifier:`Zvlhčovač vzduchu`,air_purifier:`Čistička vzduchu`,alarm:`Alarm`,av_receiver:`AV prijímač`,camera:`Kamera`,door:`Dvere`,doorbell:`Zvonček`,fan:`Ventilátor`,game_console:`Herná konzola`,heating_unit:`Vykurovacia jednotka`,lighting:`Osvetlenie`,lock:`Zámok`,media:`Médiá`,outlet:`Zásuvka`,projector:`Projektor`,pump:`Čerpadlo`,robot_vacuum:`Robotický vysávač`,sensor:`Senzor`,set_top_box:`Set-top box`,speaker:`Reproduktor`,sprinkler:`Zavlažovač`,streaming_service:`Streamovacia služba`,switcher:`Prepínač`,television:`Televízor`,terminal:`Terminál`,thermostat:`Termostat`,valve:`Ventil`,water_heater:`Ohrievač vody`,window_covering:`Okenné tienenie`,input_controller:`Vstupný ovládač`},channels:{generic:`Všeobecné`,accelerometer:`Akcelerometer`,air_particulate:`Vzduchové častice`,air_quality:`Kvalita vzduchu`,alarm:`Alarm`,battery:`Batéria`,button:`Tlačidlo`,buzzer:`Bzučiak`,camera:`Fotoaparát`,carbon_dioxide:`Oxid uhličitý`,carbon_monoxide:`Oxid uhoľnatý`,contact:`Kontaktovať`,cooler:`Chladič`,dehumidifier:`Odvlhčovač`,device_information:`Informácie o zariadení`,door:`Dvere`,doorbell:`Zvonček`,electrical_energy:`Elektrická energia`,electrical_generation:`Výroba elektriny`,electrical_power:`Elektrická energia`,fan:`Ventilátor`,filter:`Filter`,flow:`Prietok`,gas:`Plyn`,heater:`Ohrievač`,humidifier:`Zvlhčovač`,humidity:`Vlhkosť`,illuminance:`Osvetlenie`,indicator:`Indikátor`,leak:`Netesnosť`,light:`Svetlo`,lock:`Zamknúť`,media_input:`Vstup médií`,media_playback:`Prehrávanie médií`,microphone:`Mikrofón`,motion:`Pohyb`,nitrogen_dioxide:`Oxid dusičitý`,occupancy:`obsadenosť`,outlet:`Outlet`,ozone:`Ozón`,pressure:`Tlak`,robot_vacuum:`Robotický vysávač`,smoke:`Dym`,speaker:`Hovorca`,sulphur_dioxide:`Oxid siričitý`,switcher:`Prepínač`,television:`Televízia`,projector:`Projektor`,temperature:`Teplota`,thermostat:`Termostat`,valve:`Ventil`,volatile_organic_compounds:`Prchavé organické zlúčeniny`,window_covering:`Obloženie okien`,analog_input:`Analógový vstup`,binary_input:`Binárny vstup`},channelsProperties:{generic:`Generic`,acceleration_x:`Zrýchlenie X`,acceleration_y:`Zrýchlenie Y`,acceleration_z:`Zrýchlenie Z`,active:`Aktívne`,alarm_state:`Stav alarmu`,album:`album`,angle:`Uhol`,aqi:`AQI (index kvality ovzdušia)`,artist:`Umelec`,artwork_url:`Adresa URL umeleckého diela`,average_power:`Priemerný výkon`,balance:`Zostatok`,bass:`Bass`,brightness:`Jas`,change_needed:`Potrebná zmena`,child_lock:`Detská poistka`,color_blue:`Farba modrá`,color_green:`Farba zelená`,color_red:`Farba červená`,color_temperature:`Teplota farby`,color_white:`Farba biela`,command:`Príkaz`,connection_type:`Typ pripojenia`,consumption:`Spotreba`,current:`Aktuálne`,concentration:`Koncentrácia`,defrost_active:`Rozmrazovanie aktívne`,detected:`Zistené`,direction:`Smer`,distance:`Vzdialenosť`,duration:`Trvanie`,event:`Udalosť`,fault:`Chyba`,fault_description:`Popis poruchy`,firmware_revision:`Revízia firmvéru`,frequency:`Frekvencia`,grid_export:`Export mriežky`,grid_import:`Import mriežky`,hardware_revision:`Revízia hardvéru`,hue:`Hue`,humidity:`Vlhkosť`,illuminance:`Osvetlenie`,in_use:`Používa sa`,infrared:`Infračervené`,last_event:`Posledná udalosť`,level:`úroveň`,life_remaining:`Zostávajúci život`,link_quality:`Kvalita odkazu`,locked:`Zamknuté`,manufacturer:`Výrobca`,media_type:`Typ média`,mist_level:`Úroveň hmly`,model:`Model`,mode:`Režim`,mute:`Stlmiť`,natural_breeze:`Prirodzený vánok`,obstruction:`Obštrukcia`,on:`On`,orientation:`Orientácia`,over_current:`Nad prúdom`,over_voltage:`Prepätie`,over_power:`Nad mocou`,pan:`Panvica`,peak_level:`Špičková úroveň`,percentage:`Percento`,position:`pozícia`,power:`Sila`,pressure:`Tlak`,production:`Výroba`,rate:`ohodnotiť`,remaining:`Zostávajúce`,repeat:`Opakujte`,reset:`Resetovať`,remote_key:`Diaľkový kľúč`,saturation:`Sýtosť`,serial_number:`Sériové číslo`,shuffle:`Zamiešať`,siren:`Siréna`,source:`Zdroj`,source_label:`Označenie zdroja`,speed:`Rýchlosť`,state:`štátu`,status:`Stav`,swing:`Hojdačka`,tampered:`falšované`,temperature:`Teplota`,tilt:`Nakloniť`,timer:`Časovač`,track:`Sledovať`,treble:`Výšky`,triggered:`Spustené`,type:`Typ`,units:`Jednotky`,voltage:`Napätie`,volume:`Objem`,warm_mist:`Teplá hmla`,water_tank_empty:`Prázdna nádrž na vodu`,water_tank_full:`Nádrž na vodu plná`,water_tank_level:`Úroveň nádrže na vodu`,zoom:`Zoom`,unit:`Jednotka`,value:`Hodnota`}},hidden:{badge:`Skryté`,by:{system:`Systém`,user:`Používateľ`},hint:{system:`Skryté automaticky, pretože ho nahradilo virtuálne zariadenie. Znova sa zobrazí, keď bude toto virtuálne zariadenie odstránené.`,user:`Skryté operátorom. Zostáva skryté, kým ho niekto znova nezobrazí.`},unhide:`Zobraziť`},validation:{status:{valid:`Platný`,invalid:`Neplatný`,unknown:`Neznámy`},filter:{valid:`Platný`,invalid:`Neplatný`,all:`Všetky`},errors:`chyby`,warnings:`varovania`,issuesTitle:`Problémy validácie`,severity:{error:`Chyba`,warning:`Varovanie`},table:{severity:`Závažnosť`,type:`Typ`,message:`Správa`,channel:`Kanál`},issueTypes:{missing_channel:`Chýbajúci kanál`,missing_property:`Chýbajúca vlastnosť`,invalid_data_type:`Neplatný dátový typ`,invalid_permissions:`Neplatné oprávnenia`,invalid_format:`Neplatný formát`,unknown_channel:`Neznámy kanál`,duplicate_channel:`Duplicitný kanál`,constraint_one_of_violation:`Porušenie obmedzenia (jeden z)`,constraint_one_or_more_of_violation:`Porušenie obmedzenia (jeden alebo viac z)`,constraint_mutually_exclusive_violation:`Porušenie obmedzenia (vzájomne vylučujúce)`}},wizard:{steps:{discover:`Vyhľadávanie`,confirm:`Potvrdenie`,results:`Výsledky`},actions:{cancel:`Zrušiť`,back:`Späť`,next:`Ďalej`,adopt:`Pridať zariadenia`,addMore:`Pridať ďalšie`,done:`Hotovo`},statuses:{checking:`Overuje sa`,ready:`Pripravené`,needs_credentials:`Vyžaduje prihlasovacie údaje`,already_registered:`Už pridané`,unsupported:`Nepodporované`,failed:`Zlyhalo`,willCreate:`Bude vytvorené`,willUpdate:`Bude aktualizované`,created:`Vytvorené`,updated:`Aktualizované`,skipped:`Bez zmien`},columns:{name:`Názov`,status:`Stav`,category:`Kategória`,change:`Akcia`,error:`Chyba`},totals:{found:`Nájdené: {count}`,adoptable:`Možno pridať: {count}`,alreadyAdded:`Už pridané: {count}`,unsupported:`Nepodporované: {count}`,visible:`Zobrazené: {count}`},texts:{loading:`Načítavanie relácie vyhľadávania...`,empty:`Zatiaľ neboli nájdené žiadne zariadenia`,noSelection:`Neboli vybrané žiadne zariadenia`,resultsSuccess:`Všetky vybrané zariadenia boli úspešne pridané`,resultsFailed:`Niektoré zariadenia sa nepodarilo pridať`}},diagnostics:{title:`Diagnostika hardvérových vstupov`,capabilitiesTitle:`Možnosti vstupu`,supportedInteractions:`Podporované interakcie`,noDiscreteEvents:`Kontinuálny / analógový vstup (žiadne diskrétne udalosti)`,noCapabilities:`Nie sú k dispozícii žiadne možnosti vstupu`,liveEventsTitle:`Živé udalosti`,clearEvents:`Vymazať`,noOccurrences:`Zatiaľ neboli prijaté žiadne udalosti`,columnEvent:`Udalosť`,columnNativeType:`Natívny typ`,columnTimestamp:`Čas prijatia`,columnData:`Dáta`}}},ye=[{path:`devices`,name:V.DEVICES,component:()=>I(()=>import(`./view-devices-BHXq9zZL.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:()=>r.global.t(`devicesModule.menu.title`),icon:`mdi:devices`,menu:7e3},children:[{path:`add`,name:V.DEVICES_ADD,component:()=>I(()=>import(`./view-device-add-BwvKXeNg.js`),__vite__mapDeps([65,1,2,3,4,5,6,18,11,12,13,14,15,16,17,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new device`,icon:`mdi:add-circle`}},{path:`wizard`,redirect:{name:V.DEVICES}},{path:`wizard/:type`,name:V.DEVICES_WIZARD,component:()=>I(()=>import(`./view-devices-wizard-CQXTWVTC.js`),__vite__mapDeps([68,2,1,3,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Devices Wizard`,icon:`mdi:wizard-hat`}},{path:`:id`,name:V.DEVICES_EDIT,component:()=>I(()=>import(`./view-device-edit-BJ8fxgI9.js`),__vite__mapDeps([69,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit device`,icon:`mdi:pencil-circle`}}]},{path:`device/:id`,name:V.DEVICE,component:()=>I(()=>import(`./view-device-DkwhMqXA.js`),__vite__mapDeps([70,1,2,3,4,5,6,12,13,14,15,18,20,21,7,8,9,10,11,16,17,19,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,71,72])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Device detail`,icon:`mdi:devices`},children:[{path:`edit`,name:V.DEVICE_EDIT,component:()=>I(()=>import(`./view-device-edit-BJ8fxgI9.js`),__vite__mapDeps([69,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit device`,icon:`mdi:pencil-circle`}},{path:`control`,name:V.DEVICE_CONTROL,component:()=>I(()=>import(`./view-device-control-ByIYrYt9.js`),__vite__mapDeps([73,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Control device`,icon:`mdi:tune-variant`}},{path:`channel/add`,name:V.DEVICE_ADD_CHANNEL,component:()=>I(()=>import(`./view-channel-add-BWb4ppJf.js`),__vite__mapDeps([74,1,2,3,4,5,6,18,11,12,13,14,15,16,17,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!1,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel`,icon:`mdi:plus-circle`}},{path:`channel/:channelId`,name:V.DEVICE_EDIT_CHANNEL,component:()=>I(()=>import(`./view-channel-edit-D159uk9-.js`),__vite__mapDeps([75,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({id:e.params.channelId}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel`,icon:`mdi:pencil-circle`}},{path:`channel/:channelId/property/add`,name:V.DEVICE_CHANNEL_ADD_PROPERTY,component:()=>I(()=>import(`./view-channel-property-add-DOybYVh0.js`),__vite__mapDeps([76,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({channelId:e.params.channelId}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel property`,icon:`mdi:plus-circle`}},{path:`channel/:channelId/property/:propertyId`,name:V.DEVICE_CHANNEL_EDIT_PROPERTY,component:()=>I(()=>import(`./view-channel-property-edit-CFc2Vnzv.js`),__vite__mapDeps([77,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({id:e.params.propertyId,channelId:e.params.channelId}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel property`,icon:`mdi:pencil-circle`}}]},{path:`channels`,name:V.CHANNELS,component:()=>I(()=>import(`./view-channels-AS3knRld.js`),__vite__mapDeps([78,1,2,3,4,5,6,10,9,11,12,13,14,15,16,17,18,19,20,21,7,22,23,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Channels`,icon:`mdi:chip`},children:[{path:`add`,name:V.CHANNELS_ADD,component:()=>I(()=>import(`./view-channel-add-BWb4ppJf.js`),__vite__mapDeps([74,1,2,3,4,5,6,18,11,12,13,14,15,16,17,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!1,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel`,icon:`mdi:add-circle`}},{path:`:id`,name:V.CHANNELS_EDIT,component:()=>I(()=>import(`./view-channel-edit-D159uk9-.js`),__vite__mapDeps([75,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel`,icon:`mdi:pencil-circle`}}]},{path:`channel/:id`,name:V.CHANNEL,component:()=>I(()=>import(`./view-channel-CSktVtts.js`),__vite__mapDeps([79,1,2,3,4,5,6,10,9,11,12,13,14,15,16,17,18,19,20,21,7,22,23,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Channel detail`,icon:`mdi:chip`},children:[{path:`edit`,name:V.CHANNEL_EDIT,component:()=>I(()=>import(`./view-channel-edit-D159uk9-.js`),__vite__mapDeps([75,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel`,icon:`mdi:pencil-circle`}},{path:`property/add`,name:V.CHANNEL_ADD_PROPERTY,component:()=>I(()=>import(`./view-channel-property-add-DOybYVh0.js`),__vite__mapDeps([76,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({channelId:e.params.id}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel property`,icon:`mdi:plus-circle`}},{path:`property/:propertyId`,name:V.CHANNEL_EDIT_PROPERTY,component:()=>I(()=>import(`./view-channel-property-edit-CFc2Vnzv.js`),__vite__mapDeps([77,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({id:e.params.propertyId,channelId:e.params.id}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel property`,icon:`mdi:pencil-circle`}}]}],be=m(`devices_module-channel_input_occurrences`,()=>{let t=c(),n=e([]);return{occurrences:n,onEvent:e=>{if(!e||typeof e!=`object`||typeof e.id!=`string`){t.warn(`Received invalid channel input occurrence payload:`,e);return}let r={id:String(e.id),deviceId:String(e.deviceId??e.device_id??``),channelId:String(e.channelId??e.channel_id??``),propertyId:e.propertyId||e.property_id?String(e.propertyId??e.property_id):null,deviceCategory:e.deviceCategory||e.device_category?String(e.deviceCategory??e.device_category):null,channelCategory:e.channelCategory||e.channel_category?String(e.channelCategory??e.channel_category):null,propertyCategory:e.propertyCategory||e.property_category?String(e.propertyCategory??e.property_category):null,event:String(e.event??``),timestamp:String(e.timestamp??new Date().toISOString()),sourceTimestamp:e.sourceTimestamp||e.source_timestamp?String(e.sourceTimestamp??e.source_timestamp):null,sourceOccurrenceId:e.sourceOccurrenceId||e.source_occurrence_id?String(e.sourceOccurrenceId??e.source_occurrence_id):null,nativeEventType:e.nativeEventType||e.native_event_type?String(e.nativeEventType??e.native_event_type):null,data:e.data&&typeof e.data==`object`?e.data:null,integration:e.integration?String(e.integration):null,endpoint:e.endpoint?String(e.endpoint):null,receivedAt:Date.now()};n.value.unshift(r),n.value.length>100&&(n.value=n.value.slice(0,100))},clear:e=>{e?n.value=n.value.filter(t=>t.channelId!==e):n.value=[]},findByChannel:e=>n.value.filter(t=>t.channelId===e),findByDevice:e=>n.value.filter(t=>t.deviceId===e),findLatestForChannel:e=>n.value.find(t=>t.channelId===e)??null}}),xe=e=>be(e),Se=b({id:z,draft:N().default(!1),channel:z,name:L().trim().nonempty(),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(z).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,data:y({})}),b({id:z,data:b({name:L().trim().nonempty()})}),b({id:z.optional(),channelId:z.optional()}),b({id:z,channelId:z}),b({channelId:z});var Ce=b({id:z.optional().default(E()),channelId:z,draft:N().optional().default(!1),data:b({name:L().trim().nonempty()})});b({id:z,channelId:z}),b({id:z,channelId:z});var we=b({id:L().uuid().optional(),channel:L().uuid(),name:L().trim().nonempty()}),Te=b({id:L().uuid(),channel:L().uuid(),name:L().trim().nonempty(),created_at:L().date(),updated_at:L().date().nullable()}),q=e=>{let t=Se.safeParse({id:e.id,channel:e.channel,name:e.name,createdAt:e.created_at,updatedAt:e.updated_at});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received channel control data.`);return t.data},Ee=e=>{let t=we.safeParse({id:e.id,channel:e.channel,name:e.name});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate create channel control request.`);return t.data},De={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},Oe=m(`devices_module-channels_controls`,()=>{let t=w(),r=c(),i=e(De),a=e([]),o=e({}),s=e=>a.value.includes(e),l=e=>i.value.fetching.item.includes(e),u=e=>i.value.fetching.items.includes(e),d=()=>Object.values(o.value),f=e=>Object.values(o.value??{}).filter(t=>t.channel===e),p=e=>o.value[e]??null,m={},h={},g=e=>_({id:e.id,data:q(e.data)}),_=e=>{if(e.id&&o.value&&e.id in o.value){let t=Se.safeParse({...o.value[e.id],...e.data});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert channel control.`);return o.value[t.data.id]=t.data}let t=Se.safeParse({...e.data,id:e.id});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert channel control.`);return o.value=o.value??{},o.value[t.data.id]=t.data},v=e=>{if(o.value){if(e.channelId!==void 0){let t=f(e.channelId);for(let e of t)e.id in(o.value??{})&&delete(o.value??{})[e.id];return}else if(e.id!==void 0){delete o.value[e.id];return}throw new W(`You have to provide at least channel or control id`)}},y=async e=>{let r=m[e.id];if(r)return r;let a=(async()=>{if(i.value.fetching.item.includes(e.id))throw new U(`Already fetching channel control.`);i.value.fetching.item.push(e.id);try{let{data:r,error:i,response:a}=await t.client.GET(`/${n}/${H}/channels/{channelId}/controls/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(r!==void 0){let e=q(r.data);return o.value[e.id]=e,e}let s=`Failed to fetch channel control.`;throw i&&(s=A(i,s)),new U(s,a.status)}finally{i.value.fetching.item=i.value.fetching.item.filter(t=>t!==e.id)}})();m[e.id]=a;try{return await a}finally{delete m[e.id]}};return{semaphore:i,firstLoad:a,data:o,firstLoadFinished:s,getting:l,fetching:u,findAll:d,findForChannel:f,findById:p,onEvent:g,set:_,unset:v,get:y,fetch:async e=>{let r=h[e.channelId];if(r)return r;let s=(async()=>{if(i.value.fetching.items.includes(e.channelId))throw new U(`Already fetching channel controls.`);i.value.fetching.items.push(e.channelId),a.value=a.value.filter(t=>t!==e.channelId),a.value=[...new Set(a.value)];try{let{data:r,error:i,response:s}=await t.client.GET(`/${n}/${H}/channels/{channelId}/controls`,{params:{path:{channelId:e.channelId}}});if(r!==void 0){a.value.push(e.channelId),a.value=[...new Set(a.value)];let t=Object.fromEntries(r.data.map(e=>{let t=q(e);return[t.id,t]}));return o.value={...o.value,...t},Object.values(o.value)}let c=`Failed to fetch channel controls.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.fetching.items=i.value.fetching.items.filter(t=>t!==e.channelId)}})();h[e.channelId]=s;try{return await s}finally{delete h[e.channelId]}},add:async e=>{let a=Ce.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add channel control.`);let s=Se.safeParse({...a.data.data,id:a.data.id,channel:a.data.channelId,draft:a.data.draft,createdAt:new Date});if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to add channel control.`);if(i.value.creating.push(s.data.id),o.value[s.data.id]=s.data,s.data.draft)return i.value.creating=i.value.creating.filter(e=>e!==s.data.id),s.data;try{let{data:r,error:i,response:a}=await t.client.POST(`/${n}/${H}/channels/{channelId}/controls`,{params:{path:{channelId:e.channelId}},body:{data:Ee({...s.data,id:e.id,channel:e.channelId})}});if(r!==void 0&&r.data.id===e.id){let e=q(r.data);return o.value[e.id]=e,e}delete o.value[s.data.id];let c=`Failed to create channel control.`;throw i&&(c=A(i,c)),new U(c,a.status)}finally{i.value.creating=i.value.creating.filter(e=>e!==s.data.id)}},save:async e=>{if(i.value.updating.includes(e.id))throw new W(`ChannelsControls is already being saved.`);if(!(e.id in o.value))throw new W(`Failed to get channel control data to save.`);let a=Se.safeParse(o.value[e.id]);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to save channel control.`);i.value.updating.push(e.id);try{let{data:r,error:i,response:s}=await t.client.POST(`/${n}/${H}/channels/{channelId}/controls`,{params:{path:{channelId:a.data.channel}},body:{data:Ee({...a.data,id:e.id,channel:e.channelId})}});if(r!==void 0&&r.data.id===e.id){let e=q(r.data);return o.value[e.id]=e,e}let c=`Failed to create channel control.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.updating=i.value.updating.filter(t=>t!==e.id)}},remove:async e=>{if(i.value.deleting.includes(e.id))throw new W(`ChannelControl is already being removed.`);if(!Object.keys(o.value).includes(e.id))return!0;i.value.deleting.push(e.id);let r=o.value[e.id];if(delete o.value[e.id],r?.draft)i.value.deleting=i.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/channels/{channelId}/controls/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(i.status===204)return!0;await y({id:e.id,channelId:e.channelId});let a=`Remove channel control failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{i.value.deleting=i.value.deleting.filter(t=>t!==e.id)}return!0}}}),ke=e=>Oe(e),J=b({id:z,draft:N().default(!1),type:L().trim().nonempty(),channel:z,category:k(S).default(S.generic),identifier:L().trim().nonempty().nullable().default(null),name:L().trim().nullable(),permissions:O(k(D)),dataType:k(u),unit:L().nullable().optional().default(null),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:l(e=>e==null?null:typeof e==`object`&&e&&`value`in e?e:{value:e,lastUpdated:null,trend:null},b({value:f([L(),x(),N()]).nullable().default(null),lastUpdated:L().nullable().optional().default(null),trend:k(s).nullable().optional().default(null)}).nullable()).default(null),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(z).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,type:L().trim().nonempty(),data:y({})}),b({id:z,data:b({type:L().trim().nonempty(),category:k(S).default(S.generic),identifier:L().trim().nonempty().nullable(),name:L().trim().nullable(),permissions:O(k(D)),dataType:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:b({value:f([L(),x(),N()]).nullable().default(null),lastUpdated:L().nullable().optional().default(null),trend:k(s).nullable().optional().default(null)}).nullable()})}),b({id:z.optional(),channelId:z.optional()}),b({id:z,channelId:z}),b({channelId:z});var Ae=b({id:z.optional().default(E()),channelId:z,draft:N().optional().default(!1),data:b({type:L().trim().nonempty(),category:k(S).default(S.generic),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable(),permissions:O(k(D)),dataType:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:f([L(),x()]).transform(e=>e===``?void 0:Number(e)).nullable(),value:f([L(),x(),N()]).nullable().optional()})}),je=b({id:z,channelId:z,data:b({type:L().trim().nonempty(),category:k(S).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable().optional(),format:O(f([L(),f([x(),d()])])).nullable().optional(),invalid:f([L(),x(),N()]).nullable().optional(),step:f([L(),x()]).transform(e=>e===``?void 0:Number(e)).nullable(),value:f([L(),x(),N()]).nullable().optional()})});b({id:z,channelId:z}),b({id:z,channelId:z});var Me=b({id:L().uuid().optional(),type:L().trim().nonempty(),category:k(S),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable(),permissions:O(k(D)),data_type:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:f([L(),x(),N()]).nullable()}),Ne=b({type:L().trim().nonempty(),data_type:k(u).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable().optional(),format:O(f([L(),f([x(),d()])])).nullable().optional(),invalid:f([L(),x(),N()]).nullable().optional(),step:x().nullable().optional(),value:f([L(),x(),N()]).nullable().optional()}),Pe=b({id:L().uuid(),type:L().trim().nonempty(),channel:L().uuid(),category:k(S),identifier:L().trim().nonempty().nullable(),name:L().trim().nullable(),permissions:O(k(D)),data_type:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:b({value:f([L(),x(),N()]).nullable().optional(),last_updated:L().nullable().optional(),trend:k(s).nullable().optional()}).nullable().optional(),created_at:L().date(),updated_at:L().date().nullable()}),Y=(e,t)=>{let n=t.safeParse(F(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate received channel property data.`);return n.data},Fe=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate create channel property request.`);return n.data},Ie=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate update channel property request.`);return n.data},Le={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},Re=m(`devices_module-channels_properties`,()=>{let t=w(),r=c(),{getElement:i}=ge(),a=e(Le),o=e([]),s=e({}),l=e=>o.value.includes(e),u=e=>a.value.fetching.item.includes(e),d=e=>a.value.fetching.items.includes(e),f=()=>Object.values(s.value),p=e=>Object.values(s.value??{}).filter(t=>t.channel===e),m=e=>s.value[e]??null,h={},g={},_=(e,t)=>{if(e.id&&s.value&&e.id in s.value){let n=(t?.schemas?.channelPropertySchema||J).safeParse({...s.value[e.id],...e.data});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel property.`);return s.value[n.data.id]=n.data}let n=(t?.schemas?.channelPropertySchema||J).safeParse({...e.data,id:e.id});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel property.`);return s.value=s.value??{},s.value[n.data.id]=n.data},v=e=>{let t=i(e.type);return _({id:e.id,data:Y(e.data,t?.schemas?.channelPropertySchema||J)},t)},y=e=>_(e,i(e.data.type)),b=e=>{if(s.value){if(e.channelId!==void 0){let t=p(e.channelId);for(let e of t)e.id in(s.value??{})&&delete(s.value??{})[e.id];return}else if(e.id!==void 0){delete s.value[e.id];return}throw new W(`You have to provide at least channel or property id`)}},x=async e=>{let r=h[e.id];if(r)return r;let o=(async()=>{if(a.value.fetching.item.includes(e.id))throw new U(`Already fetching channel property.`);a.value.fetching.item.push(e.id);try{let{data:r,error:a,response:o}=await t.client.GET(`/${n}/${H}/channels/{channelId}/properties/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(r!==void 0){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}let c=`Failed to fetch channel property.`;throw a&&(c=A(a,c)),new U(c,o.status)}finally{a.value.fetching.item=a.value.fetching.item.filter(t=>t!==e.id)}})();h[e.id]=o;try{return await o}finally{delete h[e.id]}};return{semaphore:a,firstLoad:o,data:s,firstLoadFinished:l,getting:u,fetching:d,findAll:f,findForChannel:p,findById:m,onEvent:v,set:y,unset:b,get:x,fetch:async e=>{let r=g[e.channelId];if(r)return r;let c=(async()=>{if(a.value.fetching.items.includes(e.channelId))throw new U(`Already fetching properties.`);a.value.fetching.items.push(e.channelId),o.value=o.value.filter(t=>t!==e.channelId),o.value=[...new Set(o.value)];try{let{data:r,error:a,response:c}=await t.client.GET(`/${n}/${H}/channels/{channelId}/properties`,{params:{path:{channelId:e.channelId}}});if(r!==void 0){o.value.push(e.channelId),o.value=[...new Set(o.value)];let t=Object.fromEntries(r.data.map(e=>{let t=Y(e,i(e.type)?.schemas?.channelPropertySchema||J);return[t.id,t]}));return s.value={...s.value,...t},Object.values(s.value)}let l=`Failed to fetch channel properties.`;throw a&&(l=A(a,l)),new U(l,c.status)}finally{a.value.fetching.items=a.value.fetching.items.filter(t=>t!==e.channelId)}})();g[e.channelId]=c;try{return await c}finally{delete g[e.channelId]}},add:async e=>{let o=Ae.safeParse(e);if(!o.success)throw r.error(`Schema validation failed with:`,o.error),new G(`Failed to add property.`);let c=i(e.data.type),l=(c?.schemas?.channelPropertySchema||J).safeParse({...e.data,id:o.data.id,channel:o.data.channelId,draft:o.data.draft,createdAt:new Date});if(!l.success)throw r.error(`Schema validation failed with:`,l.error),new G(`Failed to add channel property.`);if(a.value.creating.push(l.data.id),s.value[l.data.id]=l.data,l.data.draft)return a.value.creating=a.value.creating.filter(e=>e!==l.data.id),l.data;try{let{data:r,error:a,response:o}=await t.client.POST(`/${n}/${H}/channels/{channelId}/properties`,{params:{path:{channelId:e.channelId}},body:{data:Fe({...l.data,value:l.data.value?.value??null},c?.schemas?.channelPropertyCreateReqSchema||Me)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}delete s.value[l.data.id];let u=`Failed to create channel property.`;throw a&&(u=A(a,u)),new U(u,o.status)}finally{a.value.creating=a.value.creating.filter(e=>e!==l.data.id)}},edit:async e=>{if(a.value.updating.includes(e.id))throw new W(`Property is already being updated.`);if(!(e.id in s.value))throw new W(`Failed to get channel property data to update.`);let o=je.safeParse(e);if(!o.success)throw r.error(`Schema validation failed with:`,o.error),new G(`Failed to edit channel property.`);let c=i(e.data.type),l=(c?.schemas?.channelPropertySchema||J).safeParse({...(0,K.omit)(s.value[e.id],`value`),...(0,K.omitBy)(e.data,K.isUndefined)});if(!l.success)throw r.error(`Schema validation failed with:`,l.error),new G(`Failed to edit channel property.`);if(a.value.updating.push(e.id),s.value[l.data.id]=l.data,l.data.draft)return a.value.updating=a.value.updating.filter(e=>e!==l.data.id),l.data;try{let{data:r,error:a,response:o}=await t.client.PATCH(`/${n}/${H}/channels/{channelId}/properties/{id}`,{params:{path:{channelId:e.channelId,id:e.id}},body:{data:Ie({...`value`in e.data?{...l.data,value:l.data.value?.value??null}:(0,K.omit)(l.data,`value`)},c?.schemas?.channelPropertyUpdateReqSchema||Ne)}});if(r!==void 0){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}await x({id:e.id,channelId:e.channelId});let u=`Failed to update channel property.`;throw a&&(u=A(a,u)),new U(u,o.status)}finally{a.value.updating=a.value.updating.filter(t=>t!==e.id)}},save:async e=>{if(a.value.updating.includes(e.id))throw new W(`Property is already being saved.`);let o=s.value[e.id];if(!o)throw new W(`Failed to get channel property data to save.`);let c=i(o.type),l=(c?.schemas?.channelPropertySchema||J).safeParse(o);if(!l.success)throw r.error(`Schema validation failed with:`,l.error),new G(`Failed to save channel property.`);a.value.updating.push(e.id);try{let{data:r,error:a,response:o}=await t.client.POST(`/${n}/${H}/channels/{channelId}/properties`,{params:{path:{channelId:l.data.channel}},body:{data:Fe({...l.data,value:l.data.value?.value??null},c?.schemas?.channelPropertyCreateReqSchema||Me)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}let u=`Failed to create channel property.`;throw a&&(u=A(a,u)),new U(u,o.status)}finally{a.value.updating=a.value.updating.filter(t=>t!==e.id)}},remove:async e=>{if(a.value.deleting.includes(e.id))throw new W(`Property is already being removed.`);if(!Object.keys(s.value).includes(e.id))return!0;a.value.deleting.push(e.id);let r=s.value[e.id];if(delete s.value[e.id],r?.draft)a.value.deleting=a.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/channels/{channelId}/properties/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(i.status===204)return!0;await x({id:e.id,channelId:e.channelId});let a=`Remove property failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{a.value.deleting=a.value.deleting.filter(t=>t!==e.id)}return!0}}}),ze=e=>Re(e),X=b({id:z,draft:N().default(!1),type:L().trim().nonempty(),device:z,category:k(j).default(j.generic),identifier:L().trim().nonempty().nullable().default(null),name:L().trim().nonempty(),description:L().trim().nullable().default(null),parent:L().uuid().nullable().default(null),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(f([z,_(`all`)])).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,type:L().trim().nonempty(),data:y({})}),b({id:z,data:b({type:L().trim().nonempty(),category:k(j).default(j.generic),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()})}),b({id:z.optional(),deviceId:z.optional()}),b({id:z,deviceId:z.optional()}),b({deviceId:z.optional()});var Be=b({id:z.optional().default(E()),deviceId:z,draft:N().optional().default(!1),data:b({type:L().trim().nonempty(),category:k(j).default(j.generic),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()})}),Ve=b({id:z,deviceId:z.optional(),data:b({type:L().trim().nonempty(),category:k(j).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()})});b({id:z,deviceId:z}),b({id:z,deviceId:z.optional()});var He=b({id:L().uuid().optional(),type:L().trim().nonempty(),device:L().uuid(),category:k(j),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional(),controls:O(we).optional(),properties:O(Me).optional()}),Ue=b({type:L().trim().nonempty(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()}),We=b({id:L().uuid(),type:L().trim().nonempty(),device:L().uuid(),category:k(j),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().nullable(),parent:L().uuid().nullable().optional(),created_at:L().date(),updated_at:L().date().nullable(),controls:O(Te),properties:O(Pe)}),Z=(e,t)=>{let n=t.safeParse(F(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate received channel data.`);return n.data},Ge=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate create channel request.`);return n.data},Ke=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate update channel request.`);return n.data},qe={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},Je=m(`devices_module-channels`,()=>{let t=w(),r=c(),{getElement:i}=he(),{getElement:a}=ge(),o=ne(),s=e(qe),l=e([]),u=e({}),d=e=>e==null?l.value.includes(`all`):l.value.includes(e),f=e=>s.value.fetching.item.includes(e),p=e=>e==null?s.value.fetching.items.includes(`all`):s.value.fetching.items.includes(e),m=()=>Object.values(u.value),h=e=>Object.values(u.value??{}).filter(t=>t.device===e),g=e=>u.value[e]??null,_={},v={},y=e=>{let t=i(e.type);return b({id:e.id,data:Z(e.data,t?.schemas?.channelSchema||X)})},b=e=>{let t=i(e.data.type);if(e.id&&u.value&&e.id in u.value){let n=(t?.schemas?.channelSchema||X).safeParse({...u.value[e.id],...e.data});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel.`);return u.value[n.data.id]=n.data}let n=(t?.schemas?.channelSchema||X).safeParse({...e.data,id:e.id});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel.`);return u.value=u.value??{},u.value[n.data.id]=n.data},x=e=>{if(u.value){if(e.deviceId!==void 0){let t=h(e.deviceId);for(let e of t)e.id in(u.value??{})&&delete(u.value??{})[e.id];return}else if(e.id!==void 0){delete u.value[e.id];return}throw new W(`You have to provide at least device or channel id`)}},S=async e=>{let r=_[e.id];if(r)return r;let a=(async()=>{if(s.value.fetching.item.includes(e.id))throw new U(`Already fetching channel.`);s.value.fetching.item.push(e.id);try{let r;r=e.deviceId?await t.client.GET(`/${n}/${H}/devices/{deviceId}/channels/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}}):await t.client.GET(`/${n}/${H}/channels/{id}`,{params:{path:{id:e.id}}});let{data:a,error:o,response:s}=r;if(a!==void 0){let e=i(a.data.type),t=Z(a.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,O(t,a.data.controls),k(t,a.data.properties),t}let c=`Failed to fetch channel.`;throw o&&(c=(e.deviceId,A(o,c))),new U(c,s.status)}finally{s.value.fetching.item=s.value.fetching.item.filter(t=>t!==e.id)}})();_[e.id]=a;try{return await a}finally{delete _[e.id]}},ee=async e=>{let r=e?.deviceId??`all`,a=v[r];if(a)return a;let o=(async()=>{if(s.value.fetching.items.includes(e?.deviceId??`all`))throw new U(`Already fetching channels.`);s.value.fetching.items.push(e?.deviceId??`all`),l.value=l.value.filter(t=>t!==(e?.deviceId??`all`)),l.value=[...new Set(l.value)];try{let r;r=e?.deviceId?await t.client.GET(`/${n}/${H}/devices/{deviceId}/channels`,{params:{path:{deviceId:e.deviceId}}}):await t.client.GET(`/${n}/${H}/channels`);let{data:a,error:o,response:s}=r;if(a!==void 0){e?.deviceId?(l.value.push(e.deviceId),l.value=[...new Set(l.value)]):(l.value.push(`all`),l.value=[...new Set(l.value)]);let t=Object.fromEntries(a.data.map(e=>{let t=Z(e,i(e.type)?.schemas?.channelSchema||X);return O(t,e.controls),k(t,e.properties),[t.id,t]}));return u.value={...u.value,...t},e?.deviceId?h(e.deviceId):Object.values(u.value)}let c=`Failed to fetch channels.`;throw o&&(c=(e?.deviceId,A(o,c))),new U(c,s.status)}finally{s.value.fetching.items=s.value.fetching.items.filter(t=>t!==(e?.deviceId??`all`))}})();v[e?.deviceId??`all`]=o;try{return await o}finally{delete v[e?.deviceId??`all`]}},C=async e=>{let a=Be.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add channel.`);let o=i(e.data.type),c=(o?.schemas?.channelSchema||X).safeParse({...e.data,id:a.data.id,device:a.data.deviceId,draft:a.data.draft,createdAt:new Date});if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to add channel.`);if(s.value.creating.push(c.data.id),u.value[c.data.id]=c.data,c.data.draft)return s.value.creating=s.value.creating.filter(e=>e!==c.data.id),c.data;try{let{data:r,error:a,response:s}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/channels`,{params:{path:{deviceId:e.deviceId}},body:{data:Ge(c.data,o?.schemas?.channelCreateReqSchema||He)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Z(r.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,O(t,r.data.controls),k(t,r.data.properties),t}delete u.value[c.data.id];let l=`Failed to create channel.`;throw a&&(l=A(a,l)),new U(l,s.status)}finally{s.value.creating=s.value.creating.filter(e=>e!==c.data.id)}},T=async e=>{if(s.value.updating.includes(e.id))throw new W(`Channel is already being updated.`);if(!(e.id in u.value))throw new W(`Failed to get channel data to update.`);let a=Ve.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to edit channel.`);let o=i(e.data.type),c=(o?.schemas?.channelSchema||X).safeParse({...u.value[e.id],...(0,K.omitBy)(e.data,K.isUndefined)});if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to edit channel.`);if(s.value.updating.push(e.id),u.value[c.data.id]=c.data,c.data.draft)return s.value.updating=s.value.updating.filter(e=>e!==c.data.id),c.data;try{let r;r=e.deviceId?await t.client.PATCH(`/${n}/${H}/devices/{deviceId}/channels/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}},body:{data:Ke(c.data,o?.schemas?.channelUpdateReqSchema||Ue)}}):await t.client.PATCH(`/${n}/${H}/channels/{id}`,{params:{path:{id:e.id}},body:{data:Ke(c.data,o?.schemas?.channelUpdateReqSchema||Ue)}});let{data:a,error:s,response:l}=r;if(a!==void 0){let e=i(a.data.type),t=Z(a.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,t}await S({id:e.id});let d=`Failed to update channel.`;throw s&&(d=(e.deviceId,A(s,d))),new U(d,l.status)}finally{s.value.updating=s.value.updating.filter(t=>t!==e.id)}},E=async e=>{if(s.value.updating.includes(e.id))throw new W(`Channels is already being saved.`);let a=u.value[e.id];if(!a)throw new W(`Failed to get channel data to save.`);let o=i(a.type),c=(o?.schemas?.channelSchema||X).safeParse(a);if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to save channel.`);s.value.updating.push(e.id);try{let{data:r,error:a,response:s}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/channels`,{params:{path:{deviceId:c.data.device}},body:{data:Ge(c.data,o?.schemas?.channelCreateReqSchema||He)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Z(r.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,O(t,r.data.controls),k(t,r.data.properties),t}let l=`Failed to create channel.`;throw a&&(l=A(a,l)),new U(l,s.status)}finally{s.value.updating=s.value.updating.filter(t=>t!==e.id)}},D=async e=>{if(s.value.deleting.includes(e.id))throw new W(`Channel is already being removed.`);if(!Object.keys(u.value).includes(e.id))return!0;s.value.deleting.push(e.id);let r=u.value[e.id];if(delete u.value[e.id],r?.draft)s.value.deleting=s.value.deleting.filter(t=>t!==e.id);else try{let r;r=e.deviceId?await t.client.DELETE(`/${n}/${H}/devices/{deviceId}/channels/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}}):await t.client.DELETE(`/${n}/${H}/channels/{id}`,{params:{path:{id:e.id}}});let{error:i,response:a}=r;if(a.status===204)return o.getStore(ue).unset({channelId:e.id}),o.getStore(R).unset({channelId:e.id}),!0;await S({id:e.id});let s=`Remove channel failed.`;throw i&&(s=(e.deviceId,A(i,s))),new U(s,a.status)}finally{s.value.deleting=s.value.deleting.filter(t=>t!==e.id)}return!0},O=(e,t)=>{let n=o.getStore(ue);t.forEach(e=>{n.set({id:e.id,data:q(e)})}),se(n.firstLoad,e.id)},k=(e,t)=>{let n=o.getStore(R);t.forEach(e=>{let t=a(e.type);n.set({id:e.id,data:Y(e,t?.schemas?.channelPropertySchema||J)})}),se(n.firstLoad,e.id)};return{semaphore:s,firstLoad:l,data:u,firstLoadFinished:d,getting:f,fetching:p,findAll:m,findForDevice:h,findById:g,onEvent:y,set:b,unset:x,get:S,fetch:ee,add:C,edit:T,save:E,remove:D}}),Ye=e=>Je(e),Xe=b({id:z,draft:N().default(!1),device:z,name:L().trim().nonempty(),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(z).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,data:y({})}),b({id:z,data:b({name:L().trim().nonempty()})}),b({id:z.optional(),deviceId:z.optional()}),b({id:z,deviceId:z}),b({deviceId:z});var Ze=b({id:z.optional().default(E()),deviceId:z,draft:N().optional().default(!1),data:b({name:L().trim().nonempty()})});b({id:z,deviceId:z}),b({id:z,deviceId:z});var Qe=b({id:L().uuid().optional(),device:L().uuid(),name:L().trim().nonempty()}),$e=b({id:L().uuid(),device:L().uuid(),name:L().trim().nonempty(),created_at:L().date(),updated_at:L().date().nullable()}),et=e=>{let t=Xe.safeParse({id:e.id,device:e.device,name:e.name,createdAt:e.created_at,updatedAt:e.updated_at});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received device control data.`);return t.data},tt=e=>{let t=Qe.safeParse({id:e.id,device:e.device,name:e.name});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate create device control request.`);return t.data},nt={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},rt=m(`devices_module-devices_controls`,()=>{let t=w(),r=c(),i=e(nt),a=e([]),o=e({}),s=e=>a.value.includes(e),l=e=>i.value.fetching.item.includes(e),u=e=>i.value.fetching.items.includes(e),d=()=>Object.values(o.value),f=e=>Object.values(o.value??{}).filter(t=>t.device===e),p=e=>o.value[e]??null,m={},h={},g=e=>_({id:e.id,data:et(e.data)}),_=e=>{if(e.id&&o.value&&e.id in o.value){let t=Xe.safeParse({...o.value[e.id],...e.data});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert device control.`);return o.value[t.data.id]=t.data}let t=Xe.safeParse({...e.data,id:e.id});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert device control.`);return o.value=o.value??{},o.value[t.data.id]=t.data},v=e=>{if(o.value){if(e.deviceId!==void 0){let t=f(e.deviceId);for(let e of t)e.id in(o.value??{})&&delete(o.value??{})[e.id];return}else if(e.id!==void 0){delete o.value[e.id];return}throw new W(`You have to provide at least device or control id`)}},y=async e=>{let r=m[e.id];if(r)return r;let a=(async()=>{if(i.value.fetching.item.includes(e.id))throw new U(`Already fetching device control.`);i.value.fetching.item.push(e.id);try{let{data:r,error:i,response:a}=await t.client.GET(`/${n}/${H}/devices/{deviceId}/controls/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}});if(r!==void 0){let e=et(r.data);return o.value[e.id]=e,e}let s=`Failed to fetch device control.`;throw i&&(s=A(i,s)),new U(s,a.status)}finally{i.value.fetching.item=i.value.fetching.item.filter(t=>t!==e.id)}})();m[e.id]=a;try{return await a}finally{delete m[e.id]}};return{semaphore:i,firstLoad:a,data:o,firstLoadFinished:s,getting:l,fetching:u,findAll:d,findForDevice:f,findById:p,onEvent:g,set:_,unset:v,get:y,fetch:async e=>{let r=h[e.deviceId];if(r)return r;let s=(async()=>{if(i.value.fetching.items.includes(e.deviceId))throw new U(`Already fetching device controls.`);i.value.fetching.items.push(e.deviceId),a.value=a.value.filter(t=>t!==e.deviceId),a.value=[...new Set(a.value)];try{let{data:r,error:i,response:s}=await t.client.GET(`/${n}/${H}/devices/{deviceId}/controls`,{params:{path:{deviceId:e.deviceId}}});if(r!==void 0){a.value.push(e.deviceId),a.value=[...new Set(a.value)];let t=Object.fromEntries(r.data.map(e=>{let t=et(e);return[t.id,t]}));return o.value={...o.value,...t},Object.values(o.value)}let c=`Failed to fetch device controls.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.fetching.items=i.value.fetching.items.filter(t=>t!==e.deviceId)}})();h[e.deviceId]=s;try{return await s}finally{delete h[e.deviceId]}},add:async e=>{let a=Ze.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add device control.`);let s=Xe.safeParse({...a.data.data,id:a.data.id,device:a.data.deviceId,draft:a.data.draft,createdAt:new Date});if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to add device control.`);if(i.value.creating.push(s.data.id),o.value[s.data.id]=s.data,s.data.draft)return i.value.creating=i.value.creating.filter(e=>e!==s.data.id),s.data;try{let{data:r,error:i,response:a}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/controls`,{params:{path:{deviceId:e.deviceId}},body:{data:tt({...s.data,id:e.id,device:e.deviceId})}});if(r!==void 0&&r.data.id===e.id){let e=et(r.data);return o.value[e.id]=e,e}delete o.value[s.data.id];let c=`Failed to create device control.`;throw i&&(c=A(i,c)),new U(c,a.status)}finally{i.value.creating=i.value.creating.filter(e=>e!==s.data.id)}},save:async e=>{if(i.value.updating.includes(e.id))throw new W(`DevicesControls is already being saved.`);if(!(e.id in o.value))throw new W(`Failed to get device control data to save.`);let a=Xe.safeParse(o.value[e.id]);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to save device control.`);i.value.updating.push(e.id);try{let{data:r,error:i,response:s}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/controls`,{params:{path:{deviceId:a.data.device}},body:{data:tt({...a.data,id:e.id,device:e.deviceId})}});if(r!==void 0&&r.data.id===e.id){let e=et(r.data);return o.value[e.id]=e,e}let c=`Failed to create device control.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.updating=i.value.updating.filter(t=>t!==e.id)}},remove:async e=>{if(i.value.deleting.includes(e.id))throw new W(`DeviceControl is already being removed.`);if(!Object.keys(o.value).includes(e.id))return!0;i.value.deleting.push(e.id);let r=o.value[e.id];if(delete o.value[e.id],r?.draft)i.value.deleting=i.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/devices/{deviceId}/controls/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}});if(i.status===204)return!0;await y({id:e.id,deviceId:e.deviceId});let a=`Remove device control failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{i.value.deleting=i.value.deleting.filter(t=>t!==e.id)}return!0}}}),it=e=>rt(e),Q=b({id:z,draft:N().default(!1),type:L().trim().nonempty(),category:k(T).default(T.generic),identifier:L().trim().nonempty().nullable().default(null),name:L().trim().nonempty(),description:L().trim().nullable().default(null),enabled:N().default(!0),hidden:N().default(!1),hiddenBy:k(M).nullable().default(null),roomId:L().uuid().nullable().default(null),zoneIds:O(L().uuid()).default([]),status:b({online:N().default(!1),status:k(i).default(i.unknown),lastChanged:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).nullable().default(null)}).default({online:!1,status:i.unknown,lastChanged:null}),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:N().default(!1),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,type:L().trim().nonempty(),data:y({})}),b({id:z,data:b({type:L().trim().nonempty(),category:k(T).default(T.generic),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N(),roomId:L().uuid().nullable().optional(),status:b({online:N(),status:k(i),lastChanged:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).nullable().optional()})}).catchall(re())}),b({id:z}),b({id:z}),b({hidden:k(ee).optional()});var at=b({id:z.optional().default(E()),draft:N().optional().default(!1),data:b({type:L().trim().nonempty(),category:k(T).default(T.generic),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),roomId:L().uuid().nullable().optional()}).catchall(re())}),ot=b({id:z,data:b({type:L().trim().nonempty(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),roomId:L().uuid().nullable().optional()}).catchall(re())});b({id:z}),b({id:z}),b({ids:O(z).nonempty()}),b({ids:O(z).nonempty(),enabled:N()});var st=b({succeeded:O(L()),failed:O(b({id:L(),reason:L()}))});b({id:z,zoneId:L().uuid()}),b({id:z,zoneId:L().uuid()});var ct=b({id:L().uuid().optional(),type:L().trim().nonempty(),category:k(T),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),room_id:L().uuid().nullable().optional(),controls:O(Qe).optional(),channels:O(He).optional()}),lt=b({type:L().trim().nonempty(),category:k(T).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),hidden:N().optional(),hidden_by:k(M).optional(),room_id:L().uuid().nullable().optional()}),ut=b({id:L().uuid(),type:L(),category:k(T),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().nullable(),enabled:N(),hidden:N(),hidden_by:k(M).optional(),room_id:L().uuid().nullable(),zone_ids:O(L().uuid()),status:b({online:N(),status:k(i),last_changed:L().datetime({offset:!0}).nullable().optional()}),created_at:L().date(),updated_at:L().date().nullable(),controls:O($e),channels:O(We)}),$=(e,t)=>{let n=t.safeParse(F(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate received device data.`);return n.data},dt=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate create device request.`);return n.data},ft=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate update device request.`);return n.data},pt={fetching:{items:!1,item:[]},creating:[],updating:[],deleting:[]},mt=m(`devices_module-devices`,()=>{let t=w(),r=c(),{getElement:i}=_e(),{getElement:a}=he(),{getElement:o}=ge(),s=ne(),l=e(pt),u=e(!1),d=e({}),f=()=>u.value,p=e=>l.value.fetching.item.includes(e),m=()=>l.value.fetching.items,h=()=>Object.values(d.value),g=e=>d.value[e]??null,_={},v={},y=0,b=0,x={},S=0,C={},T={},E=(e,{read:t=!1}={})=>(C[e.id]=++S,t||(T[e.id]=C[e.id]),d.value[e.id]=e),D=e=>{C[e]=++S,T[e]=C[e],delete d.value[e]},O=e=>{let t=i(e.type);return k({id:e.id,data:$(e.data,t?.schemas?.deviceSchema||Q)})},k=e=>{let t=i(e.data.type);if(e.id&&d.value&&e.id in d.value){let n=(0,K.omitBy)(e.data,K.isUndefined),i=(t?.schemas?.deviceSchema||Q).safeParse({...d.value[e.id],...n});if(!i.success)throw r.error(`Schema validation failed with:`,i.error),new G(`Failed to insert device.`);return E(i.data)}let n=(t?.schemas?.deviceSchema||Q).safeParse({...e.data,id:e.id});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert device.`);return d.value=d.value??{},E(n.data)},j=e=>{d.value&&D(e.id)},M=async e=>{let r=_[e.id];if(r)return r;let a=(async()=>{if(l.value.fetching.item.includes(e.id))throw new U(`Already fetching device.`);l.value.fetching.item.push(e.id);try{let{data:r,error:a,response:o}=await t.client.GET(`/${n}/${H}/devices/{id}`,{params:{path:{id:e.id}}});if(r!==void 0){let e=i(r.data.type),t=$(r.data,e?.schemas?.deviceSchema||Q);return E(t,{read:!0}),de(t,r.data.controls),fe(t,r.data.channels),t}let s=`Failed to fetch device.`;throw a&&(s=A(a,s)),new U(s,o.status)}finally{l.value.fetching.item=l.value.fetching.item.filter(t=>t!==e.id)}})();_[e.id]=a;try{return await a}finally{delete _[e.id]}},N=async e=>{let r=e?.hidden??`default`;b+=1,x[r]=b;let a=v[r];if(a)return a;y+=1,l.value.fetching.items=!0;let o=S,s=(async()=>{try{let{data:a,error:s,response:c}=await t.client.GET(`/${n}/${H}/devices`,{params:{query:{hidden:e?.hidden??ee.all}}});if(a!==void 0){if(x[r]!==b)return a.data.map(e=>$(e,i(e.type)?.schemas?.deviceSchema||Q));let e={};for(let t of a.data){let n=$(t,i(t.type)?.schemas?.deviceSchema||Q);if((C[n.id]??0)>o){let t=d.value[n.id];t&&(e[n.id]=t);continue}de(n,t.controls),fe(n,t.channels),e[n.id]=n}for(let[t,n]of Object.entries(C))n>o&&!(t in e)&&d.value[t]&&(e[t]=d.value[t]);return d.value=e,u.value=!0,Object.values(d.value)}let l=`Failed to fetch devices.`;throw s&&(l=A(s,l)),new U(l,c.status)}finally{--y,y===0&&(l.value.fetching.items=!1)}})();v[r]=s;try{return await s}finally{delete v[r]}},P=async e=>{let a=at.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add device.`);let o=i(e.data.type),s=(o?.schemas?.deviceSchema||Q).safeParse({...e.data,id:a.data.id,draft:a.data.draft,createdAt:new Date});if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to add device.`);if(l.value.creating.push(s.data.id),E(s.data),s.data.draft)return l.value.creating=l.value.creating.filter(e=>e!==s.data.id),s.data;try{let{data:r,error:a,response:c}=await t.client.POST(`/${n}/${H}/devices`,{body:{data:dt(s.data,o?.schemas?.deviceCreateReqSchema||ct)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=$(r.data,e?.schemas?.deviceSchema||Q);return E(t),de(t,r.data.controls),fe(t,r.data.channels),t}D(s.data.id);let l=`Failed to create device.`;throw a&&(l=A(a,l)),new U(l,c.status)}finally{l.value.creating=l.value.creating.filter(e=>e!==s.data.id)}},F=async e=>{if(l.value.updating.includes(e.id))throw new W(`Device is already being updated.`);if(!(e.id in d.value))throw new W(`Failed to get device data to update.`);let a=ot.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to edit device.`);let o=i(e.data.type),s=(0,K.omitBy)(e.data,K.isUndefined),c=(o?.schemas?.deviceSchema||Q).safeParse({...d.value[e.id],...s});if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to edit device.`);if(l.value.updating.push(e.id),E(c.data),c.data.draft)return l.value.updating=l.value.updating.filter(e=>e!==c.data.id),c.data;try{let r=(0,K.pick)(c.data,Object.keys(s)),{data:a,error:l,response:u}=await t.client.PATCH(`/${n}/${H}/devices/{id}`,{params:{path:{id:e.id}},body:{data:ft(r,o?.schemas?.deviceUpdateReqSchema||lt)}});if(a!==void 0){let e=i(a.data.type),t=$(a.data,e?.schemas?.deviceSchema||Q);return E(t),t}await M({id:e.id});let d=`Failed to update device.`;throw l&&(d=A(l,d)),new U(d,u.status)}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},te=async e=>{if(l.value.updating.includes(e.id))throw new W(`Device is already being saved.`);let a=d.value[e.id];if(!a)throw new W(`Failed to get device data to save.`);let o=i(a.type),s=(o?.schemas?.deviceSchema||Q).safeParse(a);if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to save device.`);l.value.updating.push(e.id);try{let{data:r,error:a,response:c}=await t.client.POST(`/${n}/${H}/devices`,{body:{data:dt(s.data,o?.schemas?.deviceCreateReqSchema||ct)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=$(r.data,e?.schemas?.deviceSchema||Q);return E(t),de(t,r.data.controls),fe(t,r.data.channels),t}let l=`Failed to create device.`;throw a&&(l=A(a,l)),new U(l,c.status)}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},re=async e=>{if(l.value.deleting.includes(e.id))throw new W(`Device is already being removed.`);if(!Object.keys(d.value).includes(e.id))return!0;l.value.deleting.push(e.id);let r=d.value[e.id];if(D(e.id),r?.draft)l.value.deleting=l.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/devices/{id}`,{params:{path:{id:e.id}}});if(i.status===204)return I(e.id),!0;await M({id:e.id});let a=`Remove account failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{l.value.deleting=l.value.deleting.filter(t=>t!==e.id)}return!0},I=e=>{s.getStore(ce).unset({deviceId:e});let t=s.getStore(le),n=s.getStore(ue),r=s.getStore(R);t.findForDevice(e).forEach(e=>{n.unset({channelId:e.id}),r.unset({channelId:e.id})}),t.unset({deviceId:e})},L=async e=>{let r=[],i=[];for(let t of e.ids){let e=d.value[t];e!==void 0&&(e.draft?r:i).push(t)}for(let e of r)D(e),I(e);if(i.length===0)return{succeeded:r,failed:[]};l.value.deleting.push(...i);try{let{data:e,error:a,response:o}=await t.client.POST(`/${n}/${H}/devices/bulk-remove`,{body:{data:{ids:i}}});if(e===void 0||!o.ok){let e=`Remove devices failed.`;throw a&&(e=A(a,e)),new U(e,o.status)}let s=st.parse(e.data);for(let e of s.succeeded)D(e),I(e);return{succeeded:[...r,...s.succeeded],failed:s.failed}}finally{l.value.deleting=l.value.deleting.filter(e=>!i.includes(e))}},ie=async e=>{let r=e.ids.filter(e=>d.value[e]!==void 0&&!d.value[e].draft);if(r.length===0)return{succeeded:[],failed:[]};l.value.updating.push(...r);let i=new Map(r.map(e=>[e,T[e]??0]));try{let{data:a,error:o,response:s}=await t.client.POST(`/${n}/${H}/devices/bulk-update`,{body:{data:{ids:r,enabled:e.enabled}}});if(a===void 0||!s.ok){let e=`Update devices failed.`;throw o&&(e=A(o,e)),new U(e,s.status)}let c=st.parse(a.data);for(let t of c.succeeded){let n=d.value[t];n!==void 0&&(T[t]??0)===i.get(t)&&E({...n,enabled:e.enabled})}return c}finally{l.value.updating=l.value.updating.filter(e=>!r.includes(e))}},ae=async e=>{if(!d.value[e.id])throw new W(`Device [${e.id}] not found.`);l.value.updating.push(e.id);try{let{response:r}=await t.client.POST(`/${n}/${H}/devices/{id}/zones/{zoneId}`,{params:{path:{id:e.id,zoneId:e.zoneId}}});if(!r.ok)throw new U(`Failed to add device to zone.`,r.status);return await M({id:e.id})}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},oe=async e=>{if(!d.value[e.id])throw new W(`Device [${e.id}] not found.`);l.value.updating.push(e.id);try{let{response:r}=await t.client.DELETE(`/${n}/${H}/devices/{id}/zones/{zoneId}`,{params:{path:{id:e.id,zoneId:e.zoneId}}});if(!r.ok)throw new U(`Failed to remove device from zone.`,r.status);return await M({id:e.id})}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},de=(e,t)=>{let n=s.getStore(ce);t.forEach(e=>{n.set({id:e.id,data:et(e)})}),se(n.firstLoad,e.id)},fe=(e,t)=>{let n=s.getStore(le),r=s.getStore(ue),i=s.getStore(R);t.forEach(e=>{let t=a(e.type);n.set({id:e.id,data:Z(e,t?.schemas?.channelSchema||X)}),e.controls.forEach(e=>{r.set({id:e.id,data:q(e)})}),se(r.firstLoad,e.id),e.properties.forEach(e=>{let t=o(e.type);i.set({id:e.id,data:Y(e,t?.schemas?.channelPropertySchema||J)})}),se(i.firstLoad,e.id)}),se(n.firstLoad,e.id)};return{isLoaded:()=>f()||h().length>0,refresh:()=>N({hidden:ee.all}),semaphore:l,firstLoad:u,data:d,firstLoadFinished:f,getting:p,fetching:m,findAll:h,findById:g,onEvent:O,set:k,unset:j,get:M,fetch:N,add:P,edit:F,save:te,remove:re,bulkRemove:L,bulkSetEnabled:ie,addZone:ae,removeZone:oe}}),ht=e=>mt(e),gt=b({type:k(C),severity:k(h),channelCategory:k(j).optional(),channelId:z.nullable().optional(),propertyCategory:k(S).optional(),propertyId:z.nullable().optional(),message:L().trim().nonempty(),expected:L().nullable().optional(),actual:L().nullable().optional()}),_t=b({deviceId:z,deviceIdentifier:L().nullable().optional(),deviceName:L().trim().nonempty(),deviceCategory:k(T),pluginType:L().trim().nonempty(),isValid:N(),issues:O(gt)}),vt=b({summary:b({totalDevices:x().int().nonnegative(),validDevices:x().int().nonnegative(),invalidDevices:x().int().nonnegative(),totalIssues:x().int().nonnegative(),errorCount:x().int().nonnegative(),warningCount:x().int().nonnegative()}),devices:O(_t)});b({fetching:b({items:N().default(!1),item:O(z)})});var yt=b({type:k(C),severity:k(h),channel_category:k(j).optional(),channel_id:L().uuid().nullable().optional(),property_category:k(S).optional(),property_id:L().uuid().nullable().optional(),message:L(),expected:L().nullable().optional(),actual:L().nullable().optional()}),bt=b({device_id:L().uuid(),device_identifier:L().nullable().optional(),device_name:L(),device_category:k(T),plugin_type:L(),is_valid:N(),issues:O(yt)});b({summary:b({total_devices:x(),valid_devices:x(),invalid_devices:x(),total_issues:x(),error_count:x(),warning_count:x()}),devices:O(bt)});var xt=e=>{let t=vt.safeParse(F(e));if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received devices validation data.`);return t.data},St=e=>{let t=_t.safeParse(F(e));if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received device validation result data.`);return t.data},Ct={fetching:{items:!1,item:[]}},wt=e=>{let t=0,n=0;for(let r of e)for(let e of r.issues)e.severity===`error`?t++:n++;return{totalDevices:e.length,validDevices:e.filter(e=>e.isValid).length,invalidDevices:e.filter(e=>!e.isValid).length,totalIssues:t+n,errorCount:t,warningCount:n}},Tt=m(`devices_module-devices_validation`,()=>{let t=w(),r=e(Ct),i=e(!1),a=e(null),o=null,s={},c=()=>i.value,l=()=>r.value.fetching.items,u=e=>r.value.fetching.item.includes(e),d=()=>a.value?.devices??[],f=e=>a.value===null?null:a.value.devices.find(t=>t.deviceId===e)??null,p=async()=>{if(o)return o;let e=(async()=>{if(r.value.fetching.items)throw new U(`Already fetching validation.`);r.value.fetching.items=!0;try{let{data:e,error:r,response:o}=await t.client.GET(`/${n}/${H}/devices/validation`);if(e!==void 0){let t=xt(e.data);return a.value=t,i.value=!0,t}let s=`Failed to fetch devices validation.`;throw r&&(s=A(r,s)),new U(s,o.status)}finally{r.value.fetching.items=!1}})();o=e;try{return await e}finally{o=null}};return{semaphore:r,firstLoad:i,data:a,firstLoadFinished:c,fetching:l,getting:u,findAll:d,findById:f,fetch:p,get:async e=>{let i=s[e.id];if(i)return i;let o=(async()=>{if(r.value.fetching.item.includes(e.id))throw new U(`Already fetching device validation.`);r.value.fetching.item.push(e.id);try{let{data:r,error:i,response:o}=await t.client.GET(`/${n}/${H}/devices/{id}/validation`,{params:{path:{id:e.id}}});if(r!==void 0){let e=St(r.data);if(a.value!==null){let t=a.value.devices.findIndex(t=>t.deviceId===e.deviceId),n;t>=0?(n=[...a.value.devices],n[t]=e):n=[...a.value.devices,e],a.value={summary:wt(n),devices:n}}else{let t=[e];a.value={summary:wt(t),devices:t}}return e}let s=`Failed to fetch device validation.`;throw i&&(s=A(i,s)),new U(s,o.status)}finally{r.value.fetching.item=r.value.fetching.item.filter(t=>t!==e.id)}})();s[e.id]=o;try{return await o}finally{delete s[e.id]}},clear:()=>{a.value=null,i.value=!1},isLoaded:()=>c()||d().length>0,refresh:()=>p()}}),Et=e=>Tt(e),Dt=Symbol(`FB-Module-Devices`),Ot={install:(e,n)=>{let r=ne(e),i=te(e),o=a(e),s=oe(e),c=ae(e);for(let[e,t]of Object.entries(ve)){let r=(0,K.defaultsDeep)(n.i18n.global.getLocaleMessage(e),{devicesModule:t});n.i18n.global.setLocaleMessage(e,r)}let l=ht(n.store);e.provide(de,l),r.addStore(de,l);let u=it(n.store);e.provide(ce,u),r.addStore(ce,u);let d=Ye(n.store);e.provide(le,d),r.addStore(le,d);let f=ke(n.store);e.provide(ue,f),r.addStore(ue,f);let p=ze(n.store);e.provide(R,p),r.addStore(R,p);let m=Et(n.store);e.provide(fe,m),r.addStore(fe,m);let h=xe(n.store);e.provide(pe,h),r.addStore(pe,h),s.addModule(Dt,{type:me,name:`Devices`,description:`Manage your devices, channels, properties, and controls in one place.`,elements:[]}),n.router.getRoutes().find(e=>e.name===t.ROOT)&&ye.forEach(e=>{n.router.addRoute(t.ROOT,e)}),c.register(Dt,()=>ie([l,m])),i.on(`event`,e=>{if(e?.event?.startsWith(`DevicesModule.`)){if(e.event===B.DEVICE_CONNECTION_CHANGED){let t=(0,K.get)(e.payload,`device`);if(t&&typeof t==`object`&&`id`in t&&typeof t.id==`string`){let e=l.findById(t.id);if(e){let n=(0,K.get)(t,`status`);n&&typeof n==`object`&&l.set({id:t.id,data:{...e,status:F(n)}})}}return}if(!(e.payload===null||typeof e.payload!=`object`||!(`id`in e.payload)||typeof e.payload.id!=`string`))switch(e.event){case B.DEVICE_CREATED:case B.DEVICE_UPDATED:l.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.DEVICE_DELETED:l.unset({id:e.payload.id});break;case B.DEVICE_CONTROL_CREATED:u.onEvent({id:e.payload.id,data:e.payload});break;case B.DEVICE_CONTROL_DELETED:u.unset({id:e.payload.id});break;case B.CHANNEL_CREATED:case B.CHANNEL_UPDATED:d.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.CHANNEL_DELETED:d.unset({id:e.payload.id});break;case B.CHANNEL_CONTROL_CREATED:f.onEvent({id:e.payload.id,data:e.payload});break;case B.CHANNEL_CONTROL_DELETED:f.unset({id:e.payload.id});break;case B.CHANNEL_PROPERTY_CREATED:case B.CHANNEL_PROPERTY_UPDATED:case B.CHANNEL_PROPERTY_VALUE_SET:p.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.CHANNEL_PROPERTY_DELETED:p.unset({id:e.payload.id});break;case B.CHANNEL_PROPERTY_SET:p.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.CHANNEL_INPUT_OCCURRENCE:h.onEvent(e.payload);break;default:o.warn(`Unhandled devices module event:`,e.event)}}})}};export{Q as a,We as c,Me as d,Pe as f,Te as g,we as h,ut as i,X as l,Ne as m,$ as n,lt as o,J as p,ct as r,He as s,Ot as t,Ue as u};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/view-devices-DmY7N3yg.js","assets/rolldown-runtime-QTnfLwEv.js","assets/icon-with-child-CgZMNB3F.js","assets/icon-with-child-1Kb-D21P.css","assets/vue-meta.esm-browser.min-C5z7o_np.js","assets/common-D4Z2wgrj.js","assets/common-BI15rKA4.css","assets/card-C50YgvLJ.js","assets/dialog-4clb5GeY.js","assets/use-dialog-Dy1ldJel.js","assets/drawer-Dnlv6Zc7.js","assets/components-B3dt4nk8.js","assets/table-CeNNpGH7.js","assets/_baseClone-BRvt9rE2.js","assets/checkbox-CtqO8Xm5.js","assets/omit-Dl8Tg7dR.js","assets/form-Wa6uIXea.js","assets/skeleton-DkyCzTs7.js","assets/alert-I-oSc4A8.js","assets/input-number-Cqu-p2BC.js","assets/select-CTZp3DyT.js","assets/clamp-_tCsf9IO.js","assets/radio-DvF3ArlX.js","assets/collapse-hdC45R5w.js","assets/link-mE1gaRBg.js","assets/pagination-BFOA9Lqt.js","assets/components-Bbveri_5.js","assets/descriptions-BHa0Pjk7.js","assets/col-CQn4VXnk.js","assets/tabs-CXWSFwGj.js","assets/use-ordered-children-DEKYVxDi.js","assets/directive-D42ORGRu.js","assets/config-DAgVgX46.js","assets/useModules-C_VhvJHC.js","assets/dist-DJgPCOr0.js","assets/config.constants-17QBQ_kF.js","assets/usePlugins-CLZiBdYY.js","assets/usePlugin-CQedVYWO.js","assets/useConfigModule-CJHOZRLY.js","assets/useModule-BzC-HPHF.js","assets/useNumberFormat-BR5R6xq8.js","assets/auth.constants-BM6DNCoE.js","assets/system.constants-BvSIFqdm.js","assets/composables-Cpk78oG1.js","assets/keys-CIqUg3Jv.js","assets/keys-BMDz3FOI.js","assets/weather.constants-_S0I_w_Q.js","assets/devices.constants-DHQemX04.js","assets/components-CIxy4TbQ.css","assets/slider-CaVuBQD9.js","assets/steps-DuddYjrb.js","assets/components-ChpIwZ2c.js","assets/useSpaces-CPYe_mwZ.js","assets/composables-D2O7i4W5.js","assets/keys-DExX7OfU.js","assets/keys-DMEIfK2a.js","assets/components-DQG8YRnR.css","assets/composables-2NuyfNXO.js","assets/schemas.utils-fK_cgNcT.js","assets/useDevicesPlugins-DEYJEOHX.js","assets/logs-entries.transformers-Bp2zoFAY.js","assets/system.exceptions-BOq4IhGI.js","assets/system-D7xRaFCY.js","assets/components-CcNFsBLM.css","assets/view-devices-BV3p7TrL.css","assets/view-device-add-ConY6A3O.js","assets/useUuid-D7PWqngt.js","assets/common.constants-C6QiEtuS.js","assets/view-devices-wizard-CpBPvjQG.js","assets/view-device-edit-DlTT1pdp.js","assets/view-device-DY59nE9X.js","assets/devices-virtual.constants-D0L6zhgQ.js","assets/view-device-TJjGoba6.css","assets/view-device-control-pOn2Kk1U.js","assets/view-channel-add-qkJOyzjo.js","assets/view-channel-edit-BbJVMFcx.js","assets/view-channel-property-add-B5FzmyG8.js","assets/view-channel-property-edit-u8L_g5sR.js","assets/view-channels-DDf57QKp.js","assets/view-channel-C__G2w5c.js"])))=>i.map(i=>d[i]);
2
+ import{Si as e,i as t,n}from"./icon-with-child-CgZMNB3F.js";import{G as r,In as i,T as a,Vt as o,Zn as s,_ as c,_t as l,an as u,at as d,bt as f,c as p,ca as m,cn as h,ct as g,dt as _,f as v,ft as y,gt as b,ht as x,in as S,kn as ee,ln as C,m as w,nn as T,o as E,on as D,ot as O,pt as k,r as A,rn as j,sn as M,st as N,t as P,u as F,w as te,x as ne,xt as re,y as I,yt as L}from"./common-D4Z2wgrj.js";import"./components-B3dt4nk8.js";import{_ as ie,h as ae}from"./config-DAgVgX46.js";import{r as oe}from"./useModules-C_VhvJHC.js";import{t as se}from"./first-load.utils-Dp_L_7Dk.js";import{a as ce,i as le,n as ue,o as de,r as R,s as fe,t as pe}from"./keys-DMEIfK2a.js";import{t as z}from"./types-gvL9TxC-.js";import{i as B,n as me,o as V,r as H}from"./devices.constants-DHQemX04.js";import{B as he,H as U,U as W,V as ge,W as G}from"./composables-2NuyfNXO.js";import{t as _e}from"./useDevicesPlugins-DEYJEOHX.js";var K=v(),ve={"cs-CZ":{menu:{title:`Zařízení`},meta:{devices:{list:{title:`Seznam zařízení`},edit:{title:`Upravit zařízení: {device}`},add:{title:`Přidat zařízení`},detail:{title:`Zařízení: {device}`},control:{title:`Ovládání zařízení: {device}`}},channels:{list:{title:`Seznam kanálů`},edit:{title:`Upravit kanál: {channel}`},add:{title:`Přidat kanál`},detail:{title:`Kanál: {channel}`}},channelsProperties:{edit:{title:`Upravit vlastnost kanálu: {property}`},add:{title:`Přidat vlastnost kanálu`}}},breadcrumbs:{devices:{list:`zařízení`,add:`přidat zařízení`,edit:`upravit zařízení`,detail:`zařízení: {device}`,control:`ovládání: {device}`},channels:{list:`kanály`,add:`přidat kanál`,edit:`upravit kanál`,detail:`kanál: {channel}`},channelsProperties:{add:`přidat vlastnost kanálu`,edit:`upravit vlastnost kanálu`}},headings:{devices:{list:`Zařízení`,add:`Přidat zařízení`,edit:`Upravit zařízení`,detail:`Zařízení: {device}`,control:`Ovládání: {device}`,remove:`Odebrat zařízení?`,bulkRemove:`Odebrat zařízení?`,bulkEnable:`Povolit zařízení?`,bulkDisable:`Zakázat zařízení?`,adjustFilters:`Filtrovat zařízení`,selectPlugin:`Vyžadován plugin zařízení`,selectWizardPlugin:`Vybrat průvodce zařízením`},channels:{list:`Kanály`,add:`Přidat kanál`,edit:`Upravit kanál`,detail:`Kanál: {channel}`,remove:`Odebrat kanál?`,adjustFilters:`Filtrovat kanály`,selectPlugin:`Vyžadován plugin kanálu`},channelsProperties:{add:`Přidat vlastnost kanálu`,edit:`Upravit vlastnost kanálu`,remove:`Odebrat vlastnost kanálu?`,adjustFilters:`Filtrovat vlastnosti`},misc:{discard:`Zahodit změny?`}},subHeadings:{devices:{list:`Správa zařízení Smart panelu`,add:`Přidat nové zařízení Smart panelu`,edit:`Upravit zařízení Smart panelu`,detail:`Správa zařízení Smart panelu`,control:`Ovládání zařízení Smart panelu`,adjustFilters:`Upravit filtry zobrazení`},channels:{list:`Správa kanálů zařízení Smart panelu`,add:`Přidat nový kanál zařízení Smart panelu`,edit:`Upravit kanál zařízení Smart panelu`,detail:`Správa kanálu zařízení Smart panelu`,adjustFilters:`Upravit filtry zobrazení`},channelsProperties:{add:`Přidat novou vlastnost kanálu Smart panelu`,edit:`Upravit vlastnost kanálu Smart panelu`,adjustFilters:`Upravit filtry zobrazení`}},messages:{devices:{notFound:`Zařízení, které hledáte, neexistuje nebo bylo odebráno.`,created:`Nové zařízení bylo úspěšně přidáno.`,notCreated:`Něco se pokazilo. Zařízení se nepodařilo vytvořit.`,edited:`Změny uloženy! Zařízení: {device} bylo aktualizováno.`,notEdited:`Něco se pokazilo. Aktualizace zařízení nebyla úspěšná.`,removed:`Zařízení: {device} bylo úspěšně odebráno.`,removeCanceled:`Odebrání zařízení: {device} bylo zrušeno.`,notRemoved:`Něco se pokazilo a zařízení: {device} nebylo odebráno.`,deletedWhileEditing:`Toto zařízení bylo smazáno a již není dostupné.`,bulkRemoved:`{count} zařízení bylo úspěšně odebráno.`,bulkRemoveFailed:`Nepodařilo se odebrat {count} zařízení.`,bulkRemoveCanceled:`Hromadné odebrání zařízení bylo zrušeno.`,bulkEnabled:`{count} zařízení bylo úspěšně povoleno.`,bulkEnableFailed:`Nepodařilo se povolit {count} zařízení.`,bulkEnableCanceled:`Hromadné povolení zařízení bylo zrušeno.`,bulkDisabled:`{count} zařízení bylo úspěšně zakázáno.`,bulkDisableFailed:`Nepodařilo se zakázat {count} zařízení.`,bulkDisableCanceled:`Hromadné zakázání zařízení bylo zrušeno.`,notLoaded:`Nepodařilo se načíst zařízení. Zkuste to prosím později.`,unhidden:`Zařízení {device} je opět viditelné`,notUnhidden:`Zařízení {device} se nepodařilo zobrazit`,hiddenNotLoaded:`Skryté zařízení se nepodařilo načíst. Zkuste to prosím později.`},channels:{notFound:`Kanál, který hledáte, neexistuje nebo byl odebrán.`,notLoaded:`Nepodařilo se načíst kanál. Zkuste to prosím později.`,notLoadedForDevice:`Nepodařilo se načíst kanály pro toto zařízení.`,created:`Nový kanál byl úspěšně přidán.`,notCreated:`Něco se pokazilo. Kanál se nepodařilo vytvořit.`,edited:`Změny uloženy! Kanál: {channel} byl aktualizován.`,notEdited:`Něco se pokazilo. Aktualizace kanálu nebyla úspěšná.`,removed:`Kanál: {channel} byl úspěšně odebrán.`,removeCanceled:`Odebrání kanálu: {channel} bylo zrušeno.`,notRemoved:`Něco se pokazilo a kanál: {channel} nebyl odebrán.`,noMoreAllowed:`Všechny povinné a volitelné kanály jsou přiřazeny k zařízení. Žádné další nelze přidat.`,deletedWhileEditing:`Tento kanál byl smazán a již není dostupný.`},channelsProperties:{notFound:`Vlastnost kanálu, kterou hledáte, neexistuje nebo byla odebrána.`,notLoadedForChannel:`Nepodařilo se načíst vlastnosti pro tento kanál.`,created:`Nová vlastnost kanálu byla úspěšně přidána.`,notCreated:`Něco se pokazilo. Vlastnost kanálu se nepodařilo vytvořit.`,edited:`Změny uloženy! Vlastnost kanálu: {property} byla aktualizována.`,notEdited:`Něco se pokazilo. Aktualizace vlastnosti kanálu nebyla úspěšná.`,removed:`Vlastnost kanálu: {property} byla úspěšně odebrána.`,removeCanceled:`Odebrání vlastnosti kanálu: {property} bylo zrušeno.`,notRemoved:`Něco se pokazilo a vlastnost kanálu: {property} nebyla odebrána.`,noMoreAllowed:`Všechny povinné a volitelné vlastnosti jsou přiřazeny ke kanálu. Žádné další nelze přidat.`,deletedWhileEditing:`Tato vlastnost kanálu byla smazána a již není dostupná.`},misc:{requestError:`Něco se pokazilo, zkuste to prosím později.`}},texts:JSON.parse(`{"devices":{"noDevices":"Nemáte nakonfigurované žádné zařízení","noFilteredDevices":"Nebyly nalezeny žádné zařízení odpovídající aktivním kritériím filtru","loadingDevices":"Načítání zařízení...","loadingDevice":"Načítání zařízení...","confirmRemove":"Opravdu chcete odebrat zařízení: {device}? Tuto akci nelze vrátit zpět.","confirmBulkRemove":"Opravdu chcete odebrat {count} zařízení? Tuto akci nelze vrátit zpět.","confirmBulkEnable":"Opravdu chcete povolit {count} zařízení?","confirmBulkDisable":"Opravdu chcete zakázat {count} zařízení?","description":{"generic":"","air_conditioner":"Zařízení Klimatizace představuje chladicí systém s doplňkovými funkcemi pro monitorování prostředí a správu energie.","air_dehumidifier":"Zařízení Odvlhčovač vzduchu představuje systém určený ke snižování vlhkosti v prostředí s doplňkovými možnostmi monitorování a ovládání.","air_humidifier":"Zařízení Zvlhčovač vzduchu představuje systém určený ke zvyšování vlhkosti v prostředí s doplňkovými možnostmi monitorování a ovládání.","air_purifier":"Zařízení Čistička vzduchu představuje systém určený ke zlepšování kvality vnitřního vzduchu odstraňováním znečišťujících látek a monitorováním podmínek prostředí.","alarm":"","av_receiver":"Zařízení AV přijímač představuje receiver/zesilovač domácího kina s přepínáním vstupů a ovládáním reproduktorových výstupů.","camera":"Zařízení Kamera představuje sledovací nebo monitorovací systém určený pro zachycování videa a obrazu s doplňkovými funkcemi pro monitorování prostředí a interakci.","doorbell":"Zařízení Zvonek představuje chytrý zvonkový systém poskytující video, zvuk a doplňkové monitorovací funkce pro zvýšenou bezpečnost domácnosti.","door":"Zařízení Dveře představuje automatizované nebo monitorované dveře, jako jsou garážová vrata, vstupní dveře nebo jiné typy dveří, s doplňkovými funkcemi pro zabezpečení a sledování prostředí.","fan":"Zařízení Ventilátor představuje samostatný nebo integrovaný ventilátorový systém s funkcemi pro ovládání rychlosti, nastavení směru a monitorování energie.","game_console":"Zařízení Herní konzole představuje herní konzoli, kterou lze ovládat z hlediska základního stavu napájení/aktivity a přehrávání médií, pokud je podporováno.","heating_unit":"Zařízení Topná jednotka představuje prostorový nebo pokojový topný systém určený k ovládání a monitorování teploty prostředí s volitelnými funkcemi pro správu energie a vlhkosti.","lighting":"Zařízení Osvětlení představuje osvětlovací systém určený k poskytování iluminace s volitelnými funkcemi pro sledování energie, ovládání jasu a adaptivní osvětlení na základě okolních podmínek.","lock":"Zařízení Zámek představuje elektronický nebo chytrý zamykací systém poskytující ovládání a monitorování přístupových bodů, jako jsou dveře nebo brány.","media":"Zařízení Média představuje multimediální systém schopný přehrávat, nahrávat nebo spravovat audio a video obsah.","outlet":"Zařízení Zásuvka představuje elektrickou zásuvku s pokročilými funkcemi monitorování a ovládání, umožňující vzdálené ovládání a sledování energie. Podporuje jednu nebo více zásuvek pro flexibilní správu napájení.","projector":"Zařízení Projektor představuje projekční displej, který lze zapínat/vypínat a přepínat mezi vstupními zdroji.","pump":"Zařízení Čerpadlo představuje vodní nebo kapalinové čerpadlo s funkcemi pro ovládání průtoku, monitorování a sledování energie.","robot_vacuum":"Zařízení Robotický vysavač představuje autonomní čisticí zařízení se schopnostmi sledování energie a monitorování provozu.","sensor":"Zařízení Senzor představuje univerzální monitorovací jednotku schopnou sledovat různé parametry prostředí a bezpečnosti.","set_top_box":"Zařízení Set-top box představuje mediální zařízení připojené k TV (streamovací box, IPTV box nebo HDMI stick) poskytující ovládání přehrávání a volitelný výběr zdroje.","speaker":"Zařízení Reproduktor představuje zvukový výstupní systém schopný produkovat zvuk a potenciálně podporující přehrávání médií a vstupní funkce.","sprinkler":"Zařízení Zavlažovač představuje zavlažovací systém určený k ovládání průtoku vody a monitorování podmínek prostředí pro optimalizaci zalévání.","streaming_service":"Zařízení Streamovací služba představuje cloudový přehrávač médií (např. Spotify), který poskytuje ovládání přehrávání a metadata bez fyzického stavu napájení.","switcher":"Zařízení Spínač představuje ovladatelnou zásuvku nebo spínač, který může přepínat napájení připojených zařízení a monitorovat spotřebu energie. Podporuje více zásuvek pro ovládání napájení.","television":"Zařízení Televize představuje chytrou TV nebo podobné mediální zařízení, které lze ovládat a monitorovat z hlediska zvukové a zobrazovací funkcionality.","thermostat":"Zařízení Termostat představuje systém řízení klimatu, který monitoruje a upravuje teplotu a související parametry prostředí.","valve":"Zařízení Ventil představuje ovladatelný ventil používaný pro řízení průtoku kapalin nebo plynů v různých systémech.","water_heater":"Zařízení Ohřívač vody představuje systém ohřevu vody určený k zahřívání a udržování teploty vody s volitelnými funkcemi pro monitorování energie a detekci úniku.","window_covering":"Zařízení Okenní krytina představuje automatizované okenní prvky, jako jsou žaluzie, rolety nebo záclony."},"selectPlugin":"Pro vytvoření nového zařízení vyberte prosím kompatibilní plugin ze seznamu. Pluginy poskytují potřebné konfigurační možnosti pro konkrétní typ zařízení.","noWizardForDevicePlugin":"Plugin zařízení „{type}\\" neposkytuje průvodce nastavením.","noChannels":"Toto zařízení zatím nemá žádné kanály. Kanály definují vstupy nebo výstupy zařízení. Vytvořte nový kanál pro zahájení interakce s tímto zařízením.","category":"Kategorie","channelsCount":"Žádné kanály nakonfigurovány | Jeden kanál nakonfigurován | {count} kanálů nakonfigurováno","alertsCount":"Žádné výstrahy detekovány | Jedna výstraha detekována | {count} výstrah detekováno","channels":"Kanály","alerts":"Výstrahy","status":"Stav","validation":"Validace","noControllableProperties":"Toto zařízení nemá žádné ovladatelné vlastnosti. Vlastnosti musí mít oprávnění pro čtení a zápis nebo pouze pro zápis, aby je bylo možné ovládat.","logs":{"title":"Protokoly zařízení","noLogs":"Žádné protokoly nejsou k dispozici","noLogsDescription":"Pro toto zařízení zatím nebyly zaznamenány žádné protokoly","noMessage":"(žádná zpráva)","noMoreEntries":"Žádné další záznamy protokolu","detail":"Podrobnosti protokolu"}},"channels":{"noChannels":"Nemáte nakonfigurovaný žádný kanál zařízení","noFilteredChannels":"Nebyly nalezeny žádné kanály odpovídající aktivním kritériím filtru","loadingChannels":"Načítání kanálů...","loadingChannel":"Načítání kanálu...","confirmRemove":"Opravdu chcete odebrat kanál: {channel}? Tuto akci nelze vrátit zpět.","description":{"generic":"","air_particulate":"Monitoruje koncentraci pevných částic (např. PM2.5 a PM10) ve vzduchu a poskytuje přehled o kvalitě ovzduší a úrovni znečištění.","air_quality":"Monitoruje celkovou kvalitu vzduchu pomocí indexu (0-500) nebo ukazatele úrovně a poskytuje zjednodušené hodnocení vnitřních podmínek ovzduší.","alarm":"","battery":"Hlásí stav baterie zařízení včetně úrovně nabití, stavu nabíjení a provozního stavu.","camera":"Poskytuje video a obrazové datové proudy ze sledovacích nebo monitorovacích kamer. Tento kanál podporuje konfiguraci a ovládání kamerových zařízení, jako jsou bezpečnostní kamery nebo chůvičky.","carbon_dioxide":"Monitoruje hladiny CO₂ v prostředí pro sledování kvality vzduchu a účinnosti větrání.","carbon_monoxide":"Detekuje přítomnost oxidu uhelnatého (CO) pro zajištění bezpečnosti v uzavřených prostorech.","contact":"Sleduje otevřený nebo zavřený stav kontaktního bodu, jako jsou dveře, okno nebo skříňka.","cooler":"Ovládá zařízení, která snižují teplotu vzduchu nebo kapalin, jako jsou klimatizace nebo chladicí systémy.","dehumidifier":"Ovládá odvlhčovací zařízení a řídí snižování vlhkosti s funkcemi jako cílová vlhkost, provozní režimy a monitorování zásobníku vody.","device_information":"Tento kanál poskytuje metadata o zařízení včetně údajů o výrobci, informací o modelu a provozních stavech.","doorbell":"Představuje chytré zvonky a poskytuje funkce jako detekce stisku tlačítka a volitelná integrace kamery.","door":"Spravuje stavy otevření/zavření dveří včetně garážových vrat a vstupních dveří.","electrical_energy":"Měří kumulativní spotřebu energie v čase v kilowatthodinách (kWh).","electrical_generation":"Hlásí produkci energie z fotovoltaických (PV) nebo jiných zdrojů a sleduje kumulativní vyrobenou energii v kWh.","electrical_power":"Hlásí okamžité výkonové metriky jako napětí, proud, výkon a frekvenci pro monitorování a diagnostiku v reálném čase.","fan":"Ovládá ventilátorová zařízení včetně rychlosti, oscilace a režimů pro cirkulaci vzduchu.","filter":"Monitoruje stav a zbývající životnost vzduchových nebo vodních filtrů a indikuje potřebu výměny.","flow":"Monitoruje průtok kapalin nebo vzduchu, obvykle měřený v kubických metrech za hodinu (m³/h).","gas":"Detekuje přítomnost zemního plynu nebo jiných hořlavých plynů pro zajištění bezpečnosti v uzavřených prostorech.","heater":"Spravuje topná zařízení a umožňuje ovládání nastavení teploty a režimů.","humidifier":"Ovládá zvlhčovací zařízení a řídí zvyšování vlhkosti s funkcemi jako cílová vlhkost, ovládání úrovně mlhy a monitorování zásobníku vody.","humidity":"Měří relativní vlhkost v prostředí vyjádřenou v procentech.","illuminance":"Detekuje úrovně okolního osvětlení, obvykle měřené v luxech, pro monitorování jasu v prostoru.","leak":"Identifikuje přítomnost vody nebo jiných kapalin pro detekci úniků a prevenci škod.","light":"Ovládá osvětlovací zařízení s podporou jasu, teploty barev a nastavení barev.","lock":"Spravuje stav zamčení/odemčení fyzických zámků pro dveře, trezory nebo jiné zabezpečené oblasti.","media_input":"Spravuje vstupní zdroje multimediálních zařízení jako televizory, projektory nebo audio přijímače.","media_playback":"Poskytuje ovládání přehrávání pro multimediální zařízení, bez ovládání hlasitosti (to je řešeno kanály Reproduktor a Mikrofon).","microphone":"Představuje zvukové vstupní zařízení, hlásí aktivitu nebo zachycuje zvuk.","motion":"Detekuje pohyb v oblasti pro spuštění výstrah nebo automatizaci reakcí.","nitrogen_dioxide":"Monitoruje koncentraci NO₂ ve vzduchu, často používaný v environmentálním a průmyslovém monitorování.","occupancy":"Detekuje přítomnost osob v prostoru pro automatizaci nebo účely energetické účinnosti.","outlet":"Ovládá a monitoruje elektrické zásuvky.","ozone":"Měří hladiny ozónu (O₃) ve vzduchu, často používaný při hodnocení kvality životního prostředí.","pressure":"Hlásí hodnoty atmosférického nebo kapalinového tlaku, obvykle měřené v pascalech (kPa).","robot_vacuum":"Ovládá robotické vysavače a poskytuje příkazy pro spuštění, zastavení, dokování a monitorování stavů.","smoke":"Detekuje kouř v prostředí a spouští alarmy nebo výstrahy pro bezpečnost.","speaker":"Ovládá reproduktorová zařízení včetně hlasitosti, stavu ztlumení a režimů zvukového výstupu.","sulphur_dioxide":"Měří hladiny oxidu siřičitého (SO₂) ve vzduchu pro environmentální monitorování.","switcher":"Představuje binární spínače pro ovládání zařízení jako světla, ventilátory nebo spotřebiče.","television":"Poskytuje ovládání televizorů včetně vstupního zdroje, jasu a stavu napájení.","projector":"Poskytuje ovládání projektorů včetně napájení, vstupního zdroje, jasu a dálkových tlačítek.","temperature":"Měří aktuální teplotu v prostředí vyjádřenou ve stupních Celsia.","thermostat":"Spravuje systémy řízení klimatu a umožňuje nastavení topení, chlazení a ventilátoru.","valve":"Ovládá ventily pro kapaliny nebo plyny a řídí stavy otevření/zavření nebo průtok.","volatile_organic_compounds":"Monitoruje koncentraci těkavých organických sloučenin (VOC) ve vzduchu pro sledování znečištění nebo kvality vzduchu.","window_covering":"Ovládá okenní krytiny jako žaluzie, záclony a rolety včetně nastavení polohy a náklonu."},"selectPlugin":"Pro vytvoření nového kanálu vyberte prosím kompatibilní plugin ze seznamu. Pluginy poskytují potřebné konfigurační možnosti pro konkrétní typ kanálu."},"channelsProperties":{"noProperties":"Nemáte nakonfigurovanou žádnou vlastnost kanálu","noFilteredProperties":"Nebyly nalezeny žádné vlastnosti kanálů odpovídající aktivním kritériím filtru","loadingProperties":"Načítání vlastností kanálů...","loadingProperty":"Načítání vlastnosti kanálu...","loadingChannels":"Načítání kanálů...","loadingChannel":"Načítání kanálu...","confirmRemove":"Opravdu chcete odebrat vlastnost kanálu: {property}? Tuto akci nelze vrátit zpět.","dataTypes":{"char":"8bitové celé číslo se znaménkem (-128 až 127).","uchar":"8bitové celé číslo bez znaménka (0 až 255).","short":"16bitové celé číslo se znaménkem (-32 768 až 32 767).","ushort":"16bitové celé číslo bez znaménka (0 až 65 535).","int":"32bitové celé číslo se znaménkem (-2 147 483 648 až 2 147 483 647).","uint":"32bitové celé číslo bez znaménka (0 až 4 294 967 295).","float":"Číslo s plovoucí desetinnou čárkou (např. 3,14, -0,001).","bool":"Logická hodnota: pravda nebo nepravda.","string":"Sekvence znaků (např. \\"hello\\").","enum":"Výčtová hodnota vybraná z předdefinované množiny.","unknown":"Neznámý nebo nespecifikovaný datový typ."},"editValue":"Ruční změna této hodnoty je povolena, ale může být automaticky přepsána, pokud je tato vlastnost mapována na zařízení. Používejte s opatrností."},"misc":{"notSet":"Nenastaveno","noValuesProvided":"Žádné hodnoty nebyly zadány","confirmDiscard":"Máte neuložené změny. Opravdu je chcete zahodit?"}}`),fields:{devices:{search:{placeholder:`Hledat zařízení...`},plugin:{title:`Plugin zařízení`,placeholder:`Vyberte plugin zařízení`},state:{title:`Stav`,placeholder:`Vyberte stav`},showHidden:{title:`Zobrazit skryté`},id:{title:`Interní identifikátor`,placeholder:`ID zařízení`},identifier:{title:`Systémový identifikátor`,placeholder:`Systémový identifikátor zařízení`},category:{title:`Kategorie`,placeholder:`Kategorie zařízení`,description:`O kategorii`,validation:{required:`Vyberte prosím kategorii zařízení`}},name:{title:`Název`,placeholder:`Název zařízení`,validation:{required:`Vyplňte prosím název zařízení`}},description:{title:`Popis`,placeholder:`Popis zařízení`},enabled:{title:`Povoleno`,placeholder:`Povolit nebo zakázat zařízení`},room:{title:`Místnost`,placeholder:`Vyberte místnost (volitelné)`,hint:`Přiřaďte toto zařízení k fyzické místnosti`},zones:{title:`Zóny`,placeholder:`Vyberte zóny (volitelné)`,hint:`Přiřaďte toto zařízení k logickým zónám (např. Zabezpečení, Venkovní). Členství v zóně patra je odvozeno z přiřazení místnosti.`},validation:{title:`Validace`}},channels:{search:{placeholder:`Hledat kanály...`},plugin:{title:`Plugin kanálu`,placeholder:`Vyberte plugin kanálu`},device:{title:`Zařízení`,placeholder:`Zařízení kanálu`,description:`O zařízení`,validation:{required:`Vyberte prosím zařízení kanálu`}},id:{title:`Interní identifikátor`,placeholder:`ID kanálu`},category:{title:`Kategorie`,placeholder:`Kategorie kanálu`,description:`O kategorii`,validation:{required:`Vyberte prosím kategorii kanálu`}},name:{title:`Název`,placeholder:`Název kanálu`,validation:{required:`Vyplňte prosím název kanálu`}},description:{title:`Popis`,placeholder:`Popis kanálu`}},channelsProperties:{search:{placeholder:`Hledat vlastnosti...`},channel:{title:`Kanál`,placeholder:`Kanál vlastnosti kanálu`,description:`O kanálu`,validation:{required:`Vyberte prosím kanál vlastnosti kanálu`}},id:{title:`Interní identifikátor`,placeholder:`ID vlastnosti kanálu`},category:{title:`Kategorie`,placeholder:`Kategorie vlastnosti kanálu`,description:`O kategorii`,validation:{required:`Vyberte prosím kategorii vlastnosti kanálu`}},name:{title:`Název`,placeholder:`Název vlastnosti kanálu`},permissions:{title:`Oprávnění`,placeholder:`Oprávnění pro čtení a zápis vlastnosti kanálu`,validation:{required:`Vyberte prosím oprávnění vlastnosti kanálu`}},dataType:{title:`Datový typ`,placeholder:`Datový typ hodnoty vlastnosti kanálu`,validation:{required:`Vyberte prosím datový typ vlastnosti kanálu`}},unit:{title:`Jednotka`,placeholder:`Jednotka vlastnosti kanálu`},format:{title:{enum:`Povolené hodnoty`,min:`Minimální hodnota`,max:`Maximální hodnota`},placeholder:{enum:`Seznam povolených hodnot`,min:`Minimální povolená hodnota`,max:`Maximální povolená hodnota`},validation:{required:{enum:`Vyplňte prosím seznam povolených hodnot vlastnosti kanálu`}}},invalid:{title:`Neplatná hodnota`,placeholder:`Neplatná hodnota vlastnosti kanálu`},step:{title:`Hodnota kroku`,placeholder:`Hodnota kroku vlastnosti kanálu`},enterValue:{title:`Zadejte hodnotu`},value:{title:`Hodnota`,placeholder:`Aktuální hodnota vlastnosti kanálu`}}},table:{devices:{columns:{name:{title:`Název`},type:{title:`Typ`},state:{title:`Stav`},category:{title:`Kategorie`},enabled:{title:`Povoleno`,values:{enabled:`Povoleno`,disabled:`Zakázáno`}},validation:{title:`Validace`}}},channels:{columns:{name:{title:`Název`},device:{title:`Zařízení`},category:{title:`Kategorie`}}},channelsProperties:{columns:{name:{title:`Název`},channel:{title:`Kanál`},category:{title:`Kategorie`},permissions:{title:`Oprávnění`},dataType:{title:`Datový typ`,type:{enum:`Informace o výčtové hodnotě`,numeric:`Informace o číselné hodnotě`}},value:{title:`Hodnota`}}}},filters:{devices:{types:{title:`Filtrovat podle typu zařízení`},states:{title:`Filtrovat podle stavu připojení`},enabled:{title:`Filtrovat podle stavu zařízení`,placeholder:`Vyberte stav zařízení`,values:{enabled:`Povoleno`,disabled:`Zakázáno`,all:`Vše`}},category:{title:`Filtrovat podle kategorie zařízení`,placeholder:`Vyberte jednu nebo více`},validation:{title:`Filtrovat podle stavu validace`}},channels:{category:{title:`Filtrovat podle kategorie kanálu`,placeholder:`Vyberte jednu nebo více`}},channelsProperties:{category:{title:`Filtrovat podle kategorie vlastnosti`,placeholder:`Vyberte jednu nebo více`},dataType:{title:`Filtrovat podle datového typu vlastnosti`},permission:{title:`Filtrovat podle oprávnění vlastnosti`}}},buttons:{add:{title:`Přidat`},wizard:{title:`Průvodce`},edit:{title:`Upravit`},detail:{title:`Detail`},discard:{title:`Zahodit`},cancel:{title:`Zrušit`},close:{title:`Zavřít`},save:{title:`Uložit`},change:{title:`Změnit`},remove:{title:`Odebrat`},resetFilters:{title:`Resetovat filtry`},yes:{title:`Ano`},no:{title:`Ne`},reset:{title:`Resetovat`},addChannel:{title:`Přidat kanál`},addProperty:{title:`Přidat vlastnost`},control:{title:`Ovládat`},refresh:{title:`Obnovit`},loadMore:{title:`Načíst více`},viewLogs:{title:`Zobrazit protokoly`},back:{title:`Zpět`}},labels:{liveTail:`Živý přenos`,paused:`Pozastaveno`,overview:`Přehled`,validation:`Validace`,logs:`Protokoly`},states:{online:`Online`,offline:`Offline`,all:`Vše`,connected:`Připojeno`,disconnected:`Odpojeno`,init:`Inicializováno`,ready:`Připraveno`,running:`Běží`,sleeping:`Spí`,stopped:`Zastaveno`,lost:`Ztraceno`,alert:`Výstraha`,unknown:`Neznámý`},permissions:{ro:`Pouze pro čtení`,rw:`Čtení a zápis`,wo:`Pouze pro zápis`,ev:`Událost`},dataTypes:{char:`Znak`,uchar:`Neznaménkový znak`,short:`Krátké celé číslo`,ushort:`Neznaménkové krátké celé číslo`,int:`Celé číslo`,uint:`Neznaménkové celé číslo`,float:`Desetinné číslo`,bool:`Logická hodnota`,string:`Řetězec`,enum:`Výčet`,unknown:`Neznámý`},categories:{devices:{generic:`Obecné`,air_conditioner:`Klimatizace`,air_dehumidifier:`Odvlhčovač vzduchu`,air_humidifier:`Zvlhčovač vzduchu`,air_purifier:`Čistička vzduchu`,alarm:`Poplach`,av_receiver:`AV přijímač`,camera:`Kamera`,door:`Dveře`,doorbell:`Zvonek`,fan:`Ventilátor`,game_console:`Herní konzole`,heating_unit:`Topná jednotka`,lighting:`Osvětlení`,lock:`Zámek`,media:`Média`,outlet:`Zásuvka`,projector:`Projektor`,pump:`Čerpadlo`,robot_vacuum:`Robotický vysavač`,sensor:`Senzor`,set_top_box:`Set-top box`,speaker:`Reproduktor`,sprinkler:`Zavlažovač`,streaming_service:`Streamovací služba`,switcher:`Spínač`,television:`Televize`,terminal:`Terminál`,thermostat:`Termostat`,valve:`Ventil`,water_heater:`Ohřívač vody`,window_covering:`Okenní krytina`,input_controller:`Vstupní ovladač`},channels:{generic:`Obecný`,accelerometer:`Akcelerometr`,air_particulate:`Pevné částice ve vzduchu`,air_quality:`Kvalita vzduchu`,alarm:`Poplach`,battery:`Baterie`,button:`Tlačítko`,buzzer:`Bzučák`,camera:`Kamera`,carbon_dioxide:`Oxid uhličitý`,carbon_monoxide:`Oxid uhelnatý`,contact:`Kontakt`,cooler:`Chladič`,dehumidifier:`Odvlhčovač`,device_information:`Informace o zařízení`,door:`Dveře`,doorbell:`Zvonek`,electrical_energy:`Elektrická energie`,electrical_generation:`Výroba elektřiny`,electrical_power:`Elektrický výkon`,fan:`Ventilátor`,filter:`Filtr`,flow:`Průtok`,gas:`Plyn`,heater:`Topení`,humidifier:`Zvlhčovač`,humidity:`Vlhkost`,illuminance:`Osvětlení`,indicator:`Indikátor`,leak:`Únik`,light:`Světlo`,lock:`Zámek`,media_input:`Mediální vstup`,media_playback:`Přehrávání médií`,microphone:`Mikrofon`,motion:`Pohyb`,nitrogen_dioxide:`Oxid dusičitý`,occupancy:`Obsazenost`,outlet:`Zásuvka`,ozone:`Ozón`,pressure:`Tlak`,robot_vacuum:`Robotický vysavač`,smoke:`Kouř`,speaker:`Reproduktor`,sulphur_dioxide:`Oxid siřičitý`,switcher:`Spínač`,television:`Televize`,projector:`Projektor`,temperature:`Teplota`,thermostat:`Termostat`,valve:`Ventil`,volatile_organic_compounds:`Těkavé organické sloučeniny`,window_covering:`Okenní krytina`,analog_input:`Analogový vstup`,binary_input:`Binární vstup`},channelsProperties:{generic:`Obecná`,acceleration_x:`Zrychlení X`,acceleration_y:`Zrychlení Y`,acceleration_z:`Zrychlení Z`,active:`Aktivní`,alarm_state:`Stav alarmu`,album:`Album`,angle:`Úhel`,aqi:`AQI (index kvality ovzduší)`,artist:`Interpret`,artwork_url:`URL obalu`,average_power:`Průměrný výkon`,balance:`Vyvážení`,bass:`Basy`,brightness:`Jas`,change_needed:`Vyžadována výměna`,child_lock:`Dětský zámek`,color_blue:`Modrá barva`,color_green:`Zelená barva`,color_red:`Červená barva`,color_temperature:`Teplota barev`,color_white:`Bílá barva`,command:`Příkaz`,connection_type:`Typ připojení`,consumption:`Spotřeba`,current:`Proud`,concentration:`Koncentrace`,defrost_active:`Odmrazování aktivní`,detected:`Detekováno`,direction:`Směr`,distance:`Vzdálenost`,duration:`Doba trvání`,event:`Událost`,fault:`Porucha`,fault_description:`Popis poruchy`,firmware_revision:`Revize firmwaru`,frequency:`Frekvence`,grid_export:`Dodávka do sítě`,grid_import:`Odběr ze sítě`,hardware_revision:`Revize hardwaru`,hue:`Odstín`,humidity:`Vlhkost`,illuminance:`Osvětlení`,in_use:`Používáno`,infrared:`Infračervený`,last_event:`Poslední událost`,level:`Úroveň`,life_remaining:`Zbývající životnost`,link_quality:`Kvalita spojení`,locked:`Zamčeno`,manufacturer:`Výrobce`,media_type:`Typ média`,mist_level:`Úroveň mlhy`,model:`Model`,mode:`Režim`,mute:`Ztlumení`,natural_breeze:`Přirozený vánek`,obstruction:`Překážka`,on:`Zapnuto`,orientation:`Orientace`,over_current:`Nadproud`,over_voltage:`Přepětí`,over_power:`Přetížení`,pan:`Otáčení`,peak_level:`Špičková úroveň`,percentage:`Procento`,position:`Poloha`,power:`Výkon`,pressure:`Tlak`,production:`Produkce`,rate:`Průtok`,remaining:`Zbývající`,repeat:`Opakování`,reset:`Resetovat`,remote_key:`Dálkové tlačítko`,saturation:`Sytost`,serial_number:`Sériové číslo`,shuffle:`Náhodné přehrávání`,siren:`Siréna`,source:`Zdroj`,source_label:`Popis zdroje`,speed:`Rychlost`,state:`Stav`,status:`Stav`,swing:`Oscilace`,tampered:`Narušeno`,temperature:`Teplota`,tilt:`Náklon`,timer:`Časovač`,track:`Skladba`,treble:`Výšky`,triggered:`Spuštěno`,type:`Typ`,units:`Jednotky`,voltage:`Napětí`,volume:`Hlasitost`,warm_mist:`Teplá mlha`,water_tank_empty:`Zásobník vody prázdný`,water_tank_full:`Zásobník vody plný`,water_tank_level:`Hladina zásobníku vody`,zoom:`Přiblížení`,unit:`Jednotka`,value:`Hodnota`}},hidden:{badge:`Skryté`,by:{system:`Systém`,user:`Uživatel`},hint:{system:`Skryto automaticky, protože jej nahradilo virtuální zařízení. Znovu se zobrazí, jakmile bude toto virtuální zařízení smazáno.`,user:`Skryto operátorem. Zůstane skryté, dokud jej někdo znovu nezobrazí.`},unhide:`Zobrazit`},validation:{status:{valid:`Platné`,invalid:`Neplatné`,unknown:`Neznámé`},filter:{valid:`Platné`,invalid:`Neplatné`,all:`Vše`},errors:`chyby`,warnings:`varování`,issuesTitle:`Problémy validace`,severity:{error:`Chyba`,warning:`Varování`},table:{severity:`Závažnost`,type:`Typ`,message:`Zpráva`,channel:`Kanál`},issueTypes:{missing_channel:`Chybějící kanál`,missing_property:`Chybějící vlastnost`,invalid_data_type:`Neplatný datový typ`,invalid_permissions:`Neplatná oprávnění`,invalid_format:`Neplatný formát`,unknown_channel:`Neznámý kanál`,duplicate_channel:`Duplicitní kanál`,constraint_one_of_violation:`Porušení omezení (jeden z)`,constraint_one_or_more_of_violation:`Porušení omezení (jeden nebo více z)`,constraint_mutually_exclusive_violation:`Porušení omezení (vzájemně vylučující)`}},wizard:{steps:{discover:`Vyhledávání`,confirm:`Potvrzení`,results:`Výsledky`},actions:{cancel:`Zrušit`,back:`Zpět`,next:`Další`,adopt:`Přidat zařízení`,addMore:`Přidat další`,done:`Hotovo`},statuses:{checking:`Ověřování`,ready:`Připraveno`,needs_credentials:`Vyžaduje přihlašovací údaje`,already_registered:`Již přidáno`,unsupported:`Nepodporováno`,failed:`Selhalo`,willCreate:`Bude vytvořeno`,willUpdate:`Bude aktualizováno`,created:`Vytvořeno`,updated:`Aktualizováno`,skipped:`Beze změn`},columns:{name:`Název`,status:`Stav`,category:`Kategorie`,change:`Akce`,error:`Chyba`},totals:{found:`Nalezeno: {count}`,adoptable:`Lze přidat: {count}`,alreadyAdded:`Již přidáno: {count}`,unsupported:`Nepodporováno: {count}`,visible:`Zobrazeno: {count}`},texts:{loading:`Načítání vyhledávací relace...`,empty:`Zatím nebyla nalezena žádná zařízení`,noSelection:`Nebyla vybrána žádná zařízení`,resultsSuccess:`Všechna vybraná zařízení byla úspěšně přidána`,resultsFailed:`Některá zařízení se nepodařilo přidat`}},diagnostics:{title:`Diagnostika hardwarových vstupů`,capabilitiesTitle:`Možnosti vstupu`,supportedInteractions:`Podporované interakce`,noDiscreteEvents:`Kontinuální / analogový vstup (žádné diskrétní události)`,noCapabilities:`Nejsou k dispozici žádné možnosti vstupu`,liveEventsTitle:`Živé události`,clearEvents:`Vymazat`,noOccurrences:`Zatím nebyly přijaty žádné události`,columnEvent:`Událost`,columnNativeType:`Nativní typ`,columnTimestamp:`Čas přijetí`,columnData:`Data`}},"de-DE":{menu:{title:`Geräte`},meta:{devices:{list:{title:`Geräte auflisten`},edit:{title:`Gerät bearbeiten: {device}`},add:{title:`Gerät hinzufügen`},detail:{title:`Gerät: {device}`},control:{title:`Gerät steuern: {device}`}},channels:{list:{title:`Kanäle auflisten`},edit:{title:`Kanal bearbeiten: {channel}`},add:{title:`Kanal hinzufügen`},detail:{title:`Kanal: {channel}`}},channelsProperties:{edit:{title:`Kanaleigenschaft bearbeiten: {property}`},add:{title:`Kanaleigenschaft hinzufügen`}}},breadcrumbs:{devices:{list:`Geräte`,add:`Gerät hinzufügen`,edit:`Gerät bearbeiten`,detail:`Gerät: {device}`,control:`Steuerung: {device}`},channels:{list:`Kanäle`,add:`Kanal hinzufügen`,edit:`Kanal bearbeiten`,detail:`Kanal: {channel}`},channelsProperties:{add:`Kanaleigenschaft hinzufügen`,edit:`Kanaleigenschaft bearbeiten`}},headings:{devices:{list:`Geräte`,add:`Gerät hinzufügen`,edit:`Gerät bearbeiten`,detail:`Gerät: {device}`,control:`Steuerung: {device}`,remove:`Gerät entfernen?`,bulkRemove:`Geräte entfernen?`,bulkEnable:`Geräte aktivieren?`,bulkDisable:`Geräte deaktivieren?`,adjustFilters:`Geräte filtern`,selectPlugin:`Geräte-Plugin erforderlich`,selectWizardPlugin:`Geräteassistent auswählen`},channels:{list:`Kanäle`,add:`Kanal hinzufügen`,edit:`Kanal bearbeiten`,detail:`Kanal: {channel}`,remove:`Kanal entfernen?`,adjustFilters:`Kanäle filtern`,selectPlugin:`Kanal-Plugin erforderlich`},channelsProperties:{add:`Kanaleigenschaft hinzufügen`,edit:`Kanaleigenschaft bearbeiten`,remove:`Kanaleigenschaft entfernen?`,adjustFilters:`Eigenschaften filtern`},misc:{discard:`Änderungen verwerfen?`}},subHeadings:{devices:{list:`Smart Panel Geräte verwalten`,add:`Neues Smart Panel Gerät hinzufügen`,edit:`Smart Panel Gerät bearbeiten`,detail:`Smart Panel Gerät verwalten`,control:`Smart Panel Gerät steuern`,adjustFilters:`Anzeigefilter anpassen`},channels:{list:`Smart Panel Gerätekanäle verwalten`,add:`Neuen Smart Panel Gerätekanal hinzufügen`,edit:`Smart Panel Gerätekanal bearbeiten`,detail:`Smart Panel Gerätekanal verwalten`,adjustFilters:`Anzeigefilter anpassen`},channelsProperties:{add:`Neue Smart Panel Kanaleigenschaft hinzufügen`,edit:`Smart Panel Kanaleigenschaft bearbeiten`,adjustFilters:`Anzeigefilter anpassen`}},messages:{devices:{notFound:`Das gesuchte Gerät existiert nicht oder wurde entfernt.`,created:`Neues Gerät erfolgreich hinzugefügt.`,notCreated:`Etwas ist schiefgelaufen. Das Gerät konnte nicht erstellt werden.`,edited:`Änderungen gespeichert! Das Gerät: {device} wurde aktualisiert.`,notEdited:`Etwas ist schiefgelaufen. Die Geräteaktualisierung war nicht erfolgreich.`,removed:`Das Gerät: {device} wurde erfolgreich entfernt.`,removeCanceled:`Entfernung von Gerät: {device} wurde abgebrochen.`,notRemoved:`Etwas ist schiefgelaufen, das Gerät: {device} wurde nicht entfernt.`,deletedWhileEditing:`Dieses Gerät wurde gelöscht und ist nicht mehr verfügbar.`,bulkRemoved:`{count} Geräte wurden erfolgreich entfernt.`,bulkRemoveFailed:`Entfernung von {count} Geräten fehlgeschlagen.`,bulkRemoveCanceled:`Massenentfernung von Geräten wurde abgebrochen.`,bulkEnabled:`{count} Geräte wurden erfolgreich aktiviert.`,bulkEnableFailed:`Aktivierung von {count} Geräten fehlgeschlagen.`,bulkEnableCanceled:`Massenaktivierung von Geräten wurde abgebrochen.`,bulkDisabled:`{count} Geräte wurden erfolgreich deaktiviert.`,bulkDisableFailed:`Deaktivierung von {count} Geräten fehlgeschlagen.`,bulkDisableCanceled:`Massendeaktivierung von Geräten wurde abgebrochen.`,notLoaded:`Gerät konnte nicht geladen werden. Bitte versuchen Sie es später erneut.`,unhidden:`Gerät {device} ist wieder sichtbar`,notUnhidden:`Gerät {device} konnte nicht eingeblendet werden`,hiddenNotLoaded:`Die ausgeblendeten Geräte konnten nicht geladen werden. Bitte versuchen Sie es später erneut.`},channels:{notFound:`Der gesuchte Kanal existiert nicht oder wurde entfernt.`,notLoaded:`Kanal konnte nicht geladen werden. Bitte versuchen Sie es später erneut.`,notLoadedForDevice:`Kanäle für dieses Gerät konnten nicht geladen werden.`,created:`Neuer Kanal erfolgreich hinzugefügt.`,notCreated:`Etwas ist schiefgelaufen. Der Kanal konnte nicht erstellt werden.`,edited:`Änderungen gespeichert! Der Kanal: {channel} wurde aktualisiert.`,notEdited:`Etwas ist schiefgelaufen. Die Kanalaktualisierung war nicht erfolgreich.`,removed:`Der Kanal: {channel} wurde erfolgreich entfernt.`,removeCanceled:`Entfernung von Kanal: {channel} wurde abgebrochen.`,notRemoved:`Etwas ist schiefgelaufen, der Kanal: {channel} wurde nicht entfernt.`,noMoreAllowed:`Alle erforderlichen und optionalen Kanäle sind dem Gerät zugewiesen. Keine weiteren können hinzugefügt werden.`,deletedWhileEditing:`Dieser Kanal wurde gelöscht und ist nicht mehr verfügbar.`},channelsProperties:{notFound:`Die gesuchte Kanaleigenschaft existiert nicht oder wurde entfernt.`,notLoadedForChannel:`Eigenschaften für diesen Kanal konnten nicht geladen werden.`,created:`Neue Kanaleigenschaft erfolgreich hinzugefügt.`,notCreated:`Etwas ist schiefgelaufen. Die Kanaleigenschaft konnte nicht erstellt werden.`,edited:`Änderungen gespeichert! Die Kanaleigenschaft: {property} wurde aktualisiert.`,notEdited:`Etwas ist schiefgelaufen. Die Aktualisierung der Kanaleigenschaft war nicht erfolgreich.`,removed:`Die Kanaleigenschaft: {property} wurde erfolgreich entfernt.`,removeCanceled:`Entfernung von Kanaleigenschaft: {property} wurde abgebrochen.`,notRemoved:`Etwas ist schiefgelaufen, die Kanaleigenschaft: {property} wurde nicht entfernt.`,noMoreAllowed:`Alle erforderlichen und optionalen Eigenschaften sind dem Kanal zugewiesen. Keine weiteren können hinzugefügt werden.`,deletedWhileEditing:`Diese Kanaleigenschaft wurde gelöscht und ist nicht mehr verfügbar.`},misc:{requestError:`Etwas ist schiefgelaufen, bitte versuchen Sie es später erneut.`}},texts:JSON.parse(`{"devices":{"noDevices":"Sie haben noch keine Geräte konfiguriert","noFilteredDevices":"Keine Geräte gefunden, die den aktiven Filterkriterien entsprechen","loadingDevices":"Geräte werden geladen...","loadingDevice":"Gerät wird geladen...","confirmRemove":"Sind Sie sicher, dass Sie das Gerät: {device} entfernen möchten? Dies kann nicht rückgängig gemacht werden.","confirmBulkRemove":"Sind Sie sicher, dass Sie {count} Geräte entfernen möchten? Dies kann nicht rückgängig gemacht werden.","confirmBulkEnable":"Sind Sie sicher, dass Sie {count} Geräte aktivieren möchten?","confirmBulkDisable":"Sind Sie sicher, dass Sie {count} Geräte deaktivieren möchten?","description":{"generic":"","air_conditioner":"Das Klimagerät stellt ein Kühlsystem mit zusätzlichen Funktionen für die Umweltüberwachung und das Energiemanagement dar.","air_dehumidifier":"Das Luftentfeuchtergerät stellt ein System dar, das entwickelt wurde, um die Luftfeuchtigkeit in der Umgebung zu reduzieren und gleichzeitig zusätzliche Überwachungs- und Steuerungsfunktionen bereitzustellen.","air_humidifier":"Das Luftbefeuchtergerät stellt ein System dar, das entwickelt wurde, um die Luftfeuchtigkeit in der Umgebung zu erhöhen und gleichzeitig zusätzliche Überwachungs- und Steuerungsfunktionen bereitzustellen.","air_purifier":"Das Luftreinigungsgerät stellt ein System dar, das entwickelt wurde, um die Luftqualität in Innenräumen zu verbessern, indem Verunreinigungen entfernt und die Umgebungsbedingungen überwacht werden.","alarm":"","av_receiver":"Das AV-Receiver-Gerät stellt einen Heimkino-Receiver/-Verstärker mit Eingangsumschaltung und Lautsprecherausgangssteuerung dar.","camera":"Das Kameragerät stellt ein Überwachungs- oder Überwachungssystem dar, das für die Video- und Bildaufnahme mit zusätzlichen Funktionen für die Umgebungsüberwachung und -interaktion entwickelt wurde.","doorbell":"Das Türklingelgerät stellt ein intelligentes Türklingelsystem dar, das Video-, Audio- und zusätzliche Überwachungsfunktionen für eine verbesserte Sicherheit zu Hause bietet.","door":"Die Türvorrichtung stellt automatisierte oder überwachte Türen dar, wie Garagentore, Eingangstüren oder andere Arten von Türen, mit zusätzlichen Funktionen für Sicherheit und Umweltbewusstsein.","fan":"Das Lüftergerät stellt ein eigenständiges oder integriertes Lüftersystem mit Funktionen zur Drehzahlregelung, Richtungsanpassung und Energieüberwachung dar.","game_console":"Das Spielkonsolengerät stellt eine Spielkonsole dar, die für den grundlegenden Energie-/Aktivitätsstatus und die Medienwiedergabe gesteuert werden kann, wo dies unterstützt wird.","heating_unit":"Das Heizgerät stellt ein Raum- oder Raumheizungssystem dar, das zur Steuerung und Überwachung der Umgebungstemperatur mit optionalen Funktionen für das Energie- und Feuchtigkeitsmanagement entwickelt wurde.","lighting":"Die Beleuchtungsvorrichtung stellt ein Beleuchtungssystem dar, das entwickelt wurde, um eine Beleuchtung mit optionalen Funktionen zur Energieverfolgung, Helligkeitssteuerung und adaptiven Beleuchtung auf der Grundlage von Umgebungsbedingungen bereitzustellen.","lock":"Die Verriegelungsvorrichtung stellt ein elektronisches oder intelligentes Schließsystem dar, das die Steuerung und Überwachung von Zugangspunkten wie Türen oder Toren ermöglicht.","media":"Das Mediengerät stellt ein Multimediasystem dar, das in der Lage ist, Audio- und Videoinhalte abzuspielen, aufzuzeichnen oder zu verwalten.","outlet":"Das Steckdosengerät stellt eine Steckdose mit erweiterten Überwachungs- und Steuerungsfunktionen dar, die eine Fernbedienung und Energieverfolgung ermöglichen. Es unterstützt einzelne oder mehrere Steckdosen für flexibles Energiemanagement.","projector":"Das Projektorgerät stellt ein Videoprojektionsdisplay dar, das ein-/ausgeschaltet und zwischen den Eingangsquellen umgeschaltet werden kann.","pump":"Das Pumpengerät stellt eine Wasser- oder Flüssigkeitspumpe mit Funktionen zur Flusssteuerung, Überwachung und Energieverfolgung dar.","robot_vacuum":"Das Saugrobotergerät stellt ein autonomes Reinigungsgerät mit Funktionen zur Energieverfolgung und Betriebsüberwachung dar.","sensor":"Die Sensorvorrichtung stellt eine vielseitige Überwachungseinheit dar, die in der Lage ist, verschiedene Umwelt- und Sicherheitsparameter zu verfolgen.","set_top_box":"Das Set-Top-Box-Gerät stellt ein mit dem Fernseher verbundenes Mediengerät (Streaming-Box, IPTV-Box oder HDMI-Stick) dar, das die Wiedergabesteuerung und optionale Quellenauswahl ermöglicht.","speaker":"Das Lautsprechergerät stellt ein Audioausgabesystem dar, das in der Lage ist, Ton zu erzeugen und möglicherweise die Medienwiedergabe und Eingabefunktionalität zu unterstützen.","sprinkler":"Die Sprinklervorrichtung stellt ein Bewässerungssystem dar, das entwickelt wurde, um den Wasserfluss zu steuern und die Umgebungsbedingungen zu überwachen, um die Bewässerung zu optimieren.","streaming_service":"Das Streaming Service-Gerät stellt einen Cloud-basierten Mediaplayer (z. B. Spotify) dar, der die Wiedergabesteuerung und Metadaten ohne physischen Leistungszustand bereitstellt.","switcher":"Das Schaltgerät stellt eine steuerbare Steckdose oder einen Schalter dar, der die Stromversorgung zu den angeschlossenen Geräten umschalten und den Energieverbrauch überwachen kann. Es unterstützt mehrere Steckdosen für die Leistungssteuerung.","television":"Das Fernsehgerät stellt ein Smart-TV oder ein ähnliches Mediengerät dar, das hinsichtlich seiner Audio- und Anzeigefunktionalität gesteuert und überwacht werden kann.","thermostat":"Das Thermostatgerät stellt ein Klimatisierungssystem dar, das die Temperatur und die damit verbundenen Umweltfaktoren überwacht und einstellt.","valve":"Die Ventilvorrichtung stellt ein steuerbares Ventil dar, das zur Steuerung des Durchflusses von Flüssigkeiten oder Gasen in verschiedenen Systemen verwendet wird.","water_heater":"Das Wassererwärmungsgerät stellt ein Wassererwärmungssystem dar, das zum Erwärmen und Aufrechterhalten der Wassertemperatur entwickelt wurde, mit optionalen Funktionen zur Energieüberwachung und Leckerkennung.","window_covering":"Die Fensterabdeckvorrichtung stellt automatisierte Fensterbehandlungen wie Jalousien, Jalousien oder Vorhänge dar."},"selectPlugin":"Um ein neues Gerät zu erstellen, wählen Sie bitte ein kompatibles Plugin aus der Liste. Plugins bieten die notwendigen Konfigurationsoptionen für bestimmte Gerätetypen.","noWizardForDevicePlugin":"Das Geräte-Plugin „{type}\\" stellt keinen Einrichtungsassistenten bereit.","noChannels":"Dieses Gerät hat noch keine Kanäle. Kanäle definieren die Ein- oder Ausgänge eines Geräts. Erstellen Sie einen neuen Kanal, um mit diesem Gerät zu interagieren.","category":"Kategorie","channelsCount":"Keine Kanäle konfiguriert | Ein Kanal konfiguriert | {count} Kanäle konfiguriert","alertsCount":"Keine Warnungen erkannt | Eine Warnung erkannt | {count} Warnungen erkannt","channels":"Kanäle","alerts":"Warnungen","status":"Status","validation":"Validierung","noControllableProperties":"Dieses Gerät hat keine steuerbaren Eigenschaften. Eigenschaften müssen Lese-Schreib- oder Nur-Schreib-Berechtigungen haben, um gesteuert zu werden.","logs":{"title":"Geräteprotokolle","noLogs":"Keine Protokolle verfügbar","noLogsDescription":"Für dieses Gerät wurden noch keine Protokolle aufgezeichnet","noMessage":"(keine Nachricht)","noMoreEntries":"Keine weiteren Protokolleinträge","detail":"Protokoll-Details"}},"channels":{"noChannels":"Sie haben noch keine Gerätekanäle konfiguriert","noFilteredChannels":"Keine Kanäle gefunden, die den aktiven Filterkriterien entsprechen","loadingChannels":"Kanäle werden geladen...","loadingChannel":"Kanal wird geladen...","confirmRemove":"Sind Sie sicher, dass Sie den Kanal: {channel} entfernen möchten? Dies kann nicht rückgängig gemacht werden.","description":{"generic":"","air_particulate":"Überwacht die Konzentration von Feinstaub (z. B. PM2,5 und PM10) in der Luft und bietet Einblicke in die Luftqualität und den Verschmutzungsgrad.","air_quality":"Überwacht die Gesamtluftqualität mithilfe eines Index (0-500) oder einer Füllstandsanzeige, die eine vereinfachte Bewertung der Innenraumluftbedingungen ermöglicht.","alarm":"","battery":"Zeigt den Status des Akkus eines Geräts an, einschließlich Füllstand, Ladezustand und Betriebszustand.","camera":"Bietet Video- und Bilddatenströme von Überwachungs- oder Überwachungskameras. Dieser Kanal unterstützt die Konfiguration und Steuerung von Kamerageräten wie Überwachungskameras oder Babysitter-Monitoren.","carbon_dioxide":"Überwacht den CO₂ -Gehalt in der Umgebung, um die Luftqualität und die Belüftungseffizienz zu verfolgen.","carbon_monoxide":"Erkennt das Vorhandensein von Kohlenmonoxid (CO), um die Sicherheit in geschlossenen Räumen zu gewährleisten.","contact":"Verfolgt den offenen oder geschlossenen Zustand eines Kontaktpunkts, z. B. einer Tür, eines Fensters oder eines Schranks.","cooler":"Steuert Geräte, die Luft- oder Flüssigkeitstemperaturen senken, wie Klimaanlagen oder Kühlsysteme.","dehumidifier":"Steuert Entfeuchtergeräte und verwaltet die Feuchtigkeitsreduzierung mit Funktionen wie Zielfeuchtigkeit, Betriebsmodi und Wassertanküberwachung.","device_information":"Dieser Kanal bietet Metadaten über das Gerät, einschließlich Herstellerdetails, Modellinformationen und Betriebsstatus.","doorbell":"Stellt intelligente Türklingeln dar und bietet Funktionen wie Tastendruckerkennung und optionale Kameraintegration.","door":"Verwaltet die Öffnungs-/Schließzustände von Türen, einschließlich Garagen- und Eingangstüren.","electrical_energy":"Misst den kumulierten Energieverbrauch über die Zeit in Kilowattstunden (kWh).","electrical_generation":"Meldet die Energieerzeugung aus einer Photovoltaik (PV) oder einer anderen Erzeugungsquelle und verfolgt die in kWh erzeugte kumulierte Energie.","electrical_power":"Meldet momentane Leistungsmetriken wie Spannung, Strom, Leistung und Frequenz für Echtzeitüberwachung und -diagnose.","fan":"Steuert Lüftergeräte, einschließlich Geschwindigkeit, Oszillation und Modi für die Luftzirkulation.","filter":"Überwacht den Status und die verbleibende Lebensdauer von Luft- oder Wasserfiltern und zeigt an, wann ein Austausch erforderlich ist.","flow":"Überwacht die Geschwindigkeit des Flüssigkeits- oder Luftstroms, typischerweise gemessen in Kubikmetern pro Stunde (m³/h).","gas":"Erkennt das Vorhandensein von Erdgas oder anderen brennbaren Gasen, um die Sicherheit in geschlossenen Räumen zu gewährleisten.","heater":"Verwaltet Heizgeräte und ermöglicht die Steuerung von Temperatureinstellungen und -modi.","humidifier":"Steuert Befeuchtergeräte und steuert den Feuchtigkeitsanstieg mit Funktionen wie Sollfeuchtigkeit, Nebelspiegelregelung und Wassertanküberwachung.","humidity":"Misst die relative Luftfeuchtigkeit in der Umgebung, angegeben als Prozentsatz.","illuminance":"Erfasst Umgebungslichtpegel, die typischerweise in Lux gemessen werden, um die Helligkeit in einem Raum zu überwachen.","leak":"Identifiziert das Vorhandensein von Wasser oder anderen Flüssigkeiten, um Lecks zu erkennen und Schäden zu vermeiden.","light":"Steuert Beleuchtungsgeräte und unterstützt Helligkeit, Farbtemperatur und Farbanpassungen.","lock":"Verwaltet den verriegelten/entriegelten Zustand von physischen Schlössern für Türen, Tresore oder andere sichere Bereiche.","media_input":"Verwaltet die Eingangsquellen von Multimedia-Geräten wie Fernsehern, Projektoren oder Audioempfängern.","media_playback":"Bietet Wiedergabesteuerungen für Multimedia-Geräte, mit Ausnahme der Lautstärkeregelung (über Lautsprecher- und Mikrofonkanäle).","microphone":"Stellt Audioeingabegeräte dar, meldet Aktivitäten oder nimmt Geräusche auf.","motion":"Erkennt Bewegungen in einem Bereich, um Warnungen auszulösen oder Reaktionen zu automatisieren.","nitrogen_dioxide":"Überwacht die NO₂ -Konzentration in der Luft, die häufig in der Umwelt- und Industrieüberwachung verwendet wird.","occupancy":"Erkennt die Anwesenheit von Personen in einem Raum zu Automatisierungs- oder Energieeffizienzzwecken.","outlet":"Steuert und überwacht Steckdosen.","ozone":"Misst den Ozongehalt (O₃) in der Luft, der häufig in Umweltqualitätsbewertungen verwendet wird.","pressure":"Gibt atmosphärische oder Flüssigkeitsdruckwerte an, die typischerweise in Pascal (kPa) gemessen werden.","robot_vacuum":"Steuert Saugroboter und bietet Befehle für Start-, Stopp-, Andock- und Überwachungszustände.","smoke":"Erkennt Rauch in der Umgebung und löst Alarme oder Warnungen zur Sicherheit aus.","speaker":"Steuert Lautsprechergeräte, einschließlich Lautstärke, Stummschaltung und Audioausgabemodi.","sulphur_dioxide":"Misst den Schwefeldioxidgehalt (SO₂) in der Luft zur Umweltüberwachung.","switcher":"Stellt Binärschalter zur Steuerung von Geräten wie Lichtern, Lüftern oder Geräten dar.","television":"Bietet Steuerung für Fernseher, einschließlich Eingangsquelle, Helligkeit und Leistungszustand.","projector":"Bietet Steuerung für Projektoren, einschließlich Strom, Eingangsquelle, Helligkeit und Fernbedienungstasten.","temperature":"Misst die aktuelle Temperatur in einer Umgebung, angegeben in Grad Celsius .","thermostat":"Verwaltet Klimatisierungssysteme und ermöglicht Anpassungen der Heizungs-, Kühlungs- und Lüftereinstellungen.","valve":"Steuert Fluid- oder Gasventile, verwaltet Öffnungs-/Schließzustände oder Durchflussraten.","volatile_organic_compounds":"Überwacht die Konzentration von VOCs in der Luft, um Verschmutzung oder Luftqualität zu verfolgen.","window_covering":"Steuert Abdeckungen wie Jalousien, Vorhänge und Rollläden, einschließlich Positions- und Neigungseinstellungen."},"selectPlugin":"Um einen neuen Kanal zu erstellen, wählen Sie bitte ein kompatibles Plugin aus der Liste. Plugins bieten die notwendigen Konfigurationsoptionen für bestimmte Kanaltypen."},"channelsProperties":{"noProperties":"Sie haben noch keine Kanaleigenschaften konfiguriert","noFilteredProperties":"Keine Kanaleigenschaften gefunden, die den aktiven Filterkriterien entsprechen","loadingProperties":"Kanaleigenschaften werden geladen...","loadingProperty":"Kanaleigenschaft wird geladen...","loadingChannels":"Kanäle werden geladen...","loadingChannel":"Kanal wird geladen...","confirmRemove":"Sind Sie sicher, dass Sie die Kanaleigenschaft: {property} entfernen möchten? Dies kann nicht rückgängig gemacht werden.","dataTypes":{"char":"Vorzeichenbehaftete 8-Bit-Ganzzahl (-128 bis 127).","uchar":"Vorzeichenlose 8-Bit-Ganzzahl (0 bis 255).","short":"Vorzeichenbehaftete 16-Bit-Ganzzahl (-32.768 bis 32.767).","ushort":"Vorzeichenlose 16-Bit-Ganzzahl (0 bis 65.535).","int":"Vorzeichenbehaftete 32-Bit-Ganzzahl (-2.147.483.648 bis 2.147.483.647).","uint":"Vorzeichenlose 32-Bit-Ganzzahl (0 bis 4.294.967.295).","float":"Gleitkommazahl (z. B. 3.14, -0.001).","bool":"Boolescher Wert: wahr oder falsch.","string":"Eine Zeichenfolge (z. B. „Hallo“).","enum":"Aufzählungswert, der aus einem vordefinierten Satz ausgewählt wurde.","unknown":"Unbekannter oder nicht spezifizierter Datentyp."},"editValue":"Das manuelle Ändern dieses Werts ist erlaubt, aber er kann automatisch überschrieben werden, wenn diese Eigenschaft einem Gerät zugeordnet ist. Mit Vorsicht verwenden."},"misc":{"notSet":"Nicht gesetzt","noValuesProvided":"Keine Werte angegeben","confirmDiscard":"Sie haben ungespeicherte Änderungen. Möchten Sie diese wirklich verwerfen?"}}`),fields:{devices:{search:{placeholder:`Geräte suchen...`},plugin:{title:`Geräte-Plugin`,placeholder:`Geräte-Plugin auswählen`},state:{title:`Status`,placeholder:`Status auswählen`},showHidden:{title:`Ausgeblendete anzeigen`},id:{title:`Interner Bezeichner`,placeholder:`Geräte-ID`},identifier:{title:`Systembezeichner`,placeholder:`Geräte-Systembezeichner`},category:{title:`Kategorie`,placeholder:`Gerätekategorie`,description:`Über Kategorie`,validation:{required:`Bitte wählen Sie eine Gerätekategorie`}},name:{title:`Name`,placeholder:`Gerätename`,validation:{required:`Bitte geben Sie den Gerätenamen ein`}},description:{title:`Beschreibung`,placeholder:`Gerätebeschreibung`},enabled:{title:`Aktiviert`,placeholder:`Gerät aktivieren oder deaktivieren`},room:{title:`Raum`,placeholder:`Raum auswählen (optional)`,hint:`Weisen Sie dieses Gerät einem physischen Raum zu`},zones:{title:`Zonen`,placeholder:`Zonen auswählen (optional)`,hint:`Weisen Sie dieses Gerät logischen Zonen zu (z.B. Sicherheit, Außenbereich). Die Etagenzonenmitgliedschaft wird aus der Raumzuweisung abgeleitet.`},validation:{title:`Validierung`}},channels:{search:{placeholder:`Kanäle suchen...`},plugin:{title:`Kanal-Plugin`,placeholder:`Kanal-Plugin auswählen`},device:{title:`Gerät`,placeholder:`Kanalgerät`,description:`Über Gerät`,validation:{required:`Bitte wählen Sie ein Kanalgerät`}},id:{title:`Interner Bezeichner`,placeholder:`Kanal-ID`},category:{title:`Kategorie`,placeholder:`Kanalkategorie`,description:`Über Kategorie`,validation:{required:`Bitte wählen Sie eine Kanalkategorie`}},name:{title:`Name`,placeholder:`Kanalname`,validation:{required:`Bitte geben Sie den Kanalnamen ein`}},description:{title:`Beschreibung`,placeholder:`Kanalbeschreibung`}},channelsProperties:{search:{placeholder:`Eigenschaften suchen...`},channel:{title:`Kanal`,placeholder:`Kanaleigenschafts-Kanal`,description:`Über Kanal`,validation:{required:`Bitte wählen Sie einen Kanaleigenschafts-Kanal`}},id:{title:`Interner Bezeichner`,placeholder:`Kanaleigenschafts-ID`},category:{title:`Kategorie`,placeholder:`Kanaleigenschafts-Kategorie`,description:`Über Kategorie`,validation:{required:`Bitte wählen Sie eine Kanaleigenschafts-Kategorie`}},name:{title:`Name`,placeholder:`Kanaleigenschafts-Name`},permissions:{title:`Berechtigungen`,placeholder:`Kanaleigenschafts-Lese- & Schreibberechtigungen`,validation:{required:`Bitte wählen Sie Kanaleigenschafts-Berechtigungen`}},dataType:{title:`Datentyp`,placeholder:`Wertdatentyp der Kanaleigenschaft`,validation:{required:`Bitte wählen Sie einen Kanaleigenschafts-Datentyp`}},unit:{title:`Einheit`,placeholder:`Kanaleigenschafts-Einheit`},format:{title:{enum:`Erlaubte Werte`,min:`Minimalwert`,max:`Maximalwert`},placeholder:{enum:`Liste erlaubter Werte`,min:`Minimal erlaubter Wert`,max:`Maximal erlaubter Wert`},validation:{required:{enum:`Bitte geben Sie die Liste erlaubter Werte der Kanaleigenschaft ein`}}},invalid:{title:`Ungültiger Wert`,placeholder:`Ungültiger Wert der Kanaleigenschaft`},step:{title:`Schrittwert`,placeholder:`Schrittwert der Kanaleigenschaft`},enterValue:{title:`Wert eingeben`},value:{title:`Wert`,placeholder:`Aktueller Wert der Kanaleigenschaft`}}},table:{devices:{columns:{name:{title:`Name`},type:{title:`Typ`},state:{title:`Status`},category:{title:`Kategorie`},enabled:{title:`Aktiviert`,values:{enabled:`Aktiviert`,disabled:`Deaktiviert`}},validation:{title:`Validierung`}}},channels:{columns:{name:{title:`Name`},device:{title:`Gerät`},category:{title:`Kategorie`}}},channelsProperties:{columns:{name:{title:`Name`},channel:{title:`Kanal`},category:{title:`Kategorie`},permissions:{title:`Berechtigungen`},dataType:{title:`Datentyp`,type:{enum:`Enum-Wert-Info`,numeric:`Numerische Wert-Info`}},value:{title:`Wert`}}}},filters:{devices:{types:{title:`Nach Gerätetyp filtern`},states:{title:`Nach Verbindungsstatus filtern`},enabled:{title:`Nach Gerätestatus filtern`,placeholder:`Gerätestatus auswählen`,values:{enabled:`Aktiviert`,disabled:`Deaktiviert`,all:`Alle`}},category:{title:`Nach Gerätekategorie filtern`,placeholder:`Eine oder mehrere auswählen`},validation:{title:`Nach Validierungsstatus filtern`}},channels:{category:{title:`Nach Kanalkategorie filtern`,placeholder:`Eine oder mehrere auswählen`}},channelsProperties:{category:{title:`Nach Eigenschaftskategorie filtern`,placeholder:`Eine oder mehrere auswählen`},dataType:{title:`Nach Eigenschafts-Datentyp filtern`},permission:{title:`Nach Eigenschaftsberechtigung filtern`}}},buttons:{add:{title:`Hinzufügen`},wizard:{title:`Assistent`},edit:{title:`Bearbeiten`},detail:{title:`Details`},discard:{title:`Verwerfen`},cancel:{title:`Abbrechen`},close:{title:`Schließen`},save:{title:`Speichern`},change:{title:`Ändern`},remove:{title:`Entfernen`},resetFilters:{title:`Filter zurücksetzen`},yes:{title:`Ja`},no:{title:`Nein`},reset:{title:`Zurücksetzen`},addChannel:{title:`Kanal hinzufügen`},addProperty:{title:`Eigenschaft hinzufügen`},control:{title:`Steuern`},refresh:{title:`Aktualisieren`},loadMore:{title:`Mehr laden`},viewLogs:{title:`Protokolle anzeigen`},back:{title:`Zurück`}},labels:{liveTail:`Live-Verfolgung`,paused:`Pausiert`,overview:`Übersicht`,validation:`Validierung`,logs:`Protokolle`},states:{online:`Online`,offline:`Offline`,all:`Alle`,connected:`Verbunden`,disconnected:`Getrennt`,init:`Initialisiert`,ready:`Bereit`,running:`Aktiv`,sleeping:`Ruhezustand`,stopped:`Gestoppt`,lost:`Verloren`,alert:`Alarm`,unknown:`Unbekannt`},permissions:{ro:`Nur lesen`,rw:`Lesen & Schreiben`,wo:`Nur schreiben`,ev:`Ereignis`},dataTypes:{char:`Zeichen`,uchar:`Vorzeichenloses Zeichen`,short:`Kurze ganze Zahl`,ushort:`Vorzeichenlose kurze Ganzzahl`,int:`Ganzzahl`,uint:`Vorzeichenlose Ganzzahl`,float:`Fließkommazahl`,bool:`Boolescher Wert`,string:`Zeichenkette`,enum:`Aufzählung`,unknown:`Unbekannt`},categories:{devices:{generic:`Generisch`,air_conditioner:`Klimaanlage`,air_dehumidifier:`Luftentfeuchter`,air_humidifier:`Luftbefeuchter`,air_purifier:`Luftreiniger`,alarm:`Alarm`,av_receiver:`AV-Receiver`,camera:`Kamera`,door:`Tür`,doorbell:`Türklingel`,fan:`Ventilator`,game_console:`Spielkonsole`,heating_unit:`Heizgerät`,lighting:`Beleuchtung`,lock:`Schloss`,media:`Medien`,outlet:`Steckdose`,projector:`Projektor`,pump:`Pumpe`,robot_vacuum:`Saugroboter`,sensor:`Sensor`,set_top_box:`Set-Top-Box`,speaker:`Lautsprecher`,sprinkler:`Sprinkler`,streaming_service:`Streaming-Dienst`,switcher:`Schalter`,television:`Fernseher`,terminal:`Terminal`,thermostat:`Thermostat`,valve:`Ventil`,water_heater:`Warmwasserbereiter`,window_covering:`Jalousie/Rollladen`,input_controller:`Eingangssteuerung`},channels:{generic:`Generisch`,accelerometer:`Beschleunigungssensor`,air_particulate:`Feinstaub`,air_quality:`Luftqualität`,alarm:`Alarm`,battery:`Batterie`,button:`Taster`,buzzer:`Summer`,camera:`Kamera`,carbon_dioxide:`Kohlendioxid`,carbon_monoxide:`Kohlenmonoxid`,contact:`Kontakt`,cooler:`Kühler`,dehumidifier:`Entfeuchter`,device_information:`Geräteinformationen`,door:`Tür`,doorbell:`Türklingel`,electrical_energy:`Elektrische Energie`,electrical_generation:`Stromerzeugung`,electrical_power:`Elektrische Leistung`,fan:`Ventilator`,filter:`Filter`,flow:`Durchfluss`,gas:`Gas`,heater:`Heizung`,humidifier:`Befeuchter`,humidity:`Luftfeuchtigkeit`,illuminance:`Beleuchtungsstärke`,indicator:`Statusanzeige`,leak:`Leckage`,light:`Licht`,lock:`Schloss`,media_input:`Medieneingang`,media_playback:`Medienwiedergabe`,microphone:`Mikrofon`,motion:`Bewegung`,nitrogen_dioxide:`Stickstoffdioxid`,occupancy:`Belegung`,outlet:`Steckdose`,ozone:`Ozon`,pressure:`Druck`,robot_vacuum:`Saugroboter`,smoke:`Rauch`,speaker:`Lautsprecher`,sulphur_dioxide:`Schwefeldioxid`,switcher:`Schalter`,television:`Fernseher`,projector:`Projektor`,temperature:`Temperatur`,thermostat:`Thermostat`,valve:`Ventil`,volatile_organic_compounds:`Flüchtige organische Verbindungen`,window_covering:`Jalousie/Rollladen`,analog_input:`Analoger Eingang`,binary_input:`Binärer Eingang`},channelsProperties:{generic:`Generisch`,acceleration_x:`Beschleunigung X`,acceleration_y:`Beschleunigung Y`,acceleration_z:`Beschleunigung Z`,active:`Aktiv`,alarm_state:`Alarmzustand`,album:`Album`,angle:`Winkel`,aqi:`AQI (Luftqualitätsindex)`,artist:`Künstler`,artwork_url:`Kunstwerk-URL`,average_power:`Durchschnittliche Leistung`,balance:`Gleichgewicht`,bass:`Bass`,brightness:`Helligkeit`,change_needed:`Veränderung nötig`,child_lock:`Kindersicherung`,color_blue:`Farbe blau`,color_green:`Farbe grün`,color_red:`Farbe rot`,color_temperature:`Farbtemperatur`,color_white:`Farbe weiß`,command:`Befehl`,connection_type:`Verbindungstyp`,consumption:`Verbrauch`,current:`Aktuell`,concentration:`Konzentration`,defrost_active:`Abtauung aktiv`,detected:`Erkannt`,direction:`Richtung`,distance:`Distanz`,duration:`Dauer`,event:`Ereignis`,fault:`Fehler`,fault_description:`Fehlerbeschreibung`,firmware_revision:`Firmware-Revision`,frequency:`Frequenz`,grid_export:`Rasterexport`,grid_import:`Grid-Import`,hardware_revision:`Hardware-Revision`,hue:`Farbton`,humidity:`Luftfeuchtigkeit`,illuminance:`Beleuchtungsstärke`,in_use:`Im Einsatz`,infrared:`Infrarot`,last_event:`Letzte Veranstaltung`,level:`Ebene`,life_remaining:`Das verbleibende Leben`,link_quality:`Linkqualität`,locked:`Gesperrt`,manufacturer:`Hersteller`,media_type:`Medientyp`,mist_level:`Nebelgrad`,model:`Modell`,mode:`Modus`,mute:`Stumm`,natural_breeze:`Natürliche Brise`,obstruction:`Obstruktion`,on:`On`,orientation:`Orientierung`,over_current:`Überstrom`,over_voltage:`Überspannung`,over_power:`Übermacht`,pan:`Pfanne`,peak_level:`Spitzenniveau`,percentage:`Prozentsatz`,position:`Position`,power:`Leistung`,pressure:`Druck`,production:`Produktion`,rate:`Rate`,remaining:`Übrig`,repeat:`Wiederholen`,reset:`Zurücksetzen`,remote_key:`Fernbedienungsschlüssel`,saturation:`Sättigung`,serial_number:`Seriennummer`,shuffle:`Shuffle`,siren:`Sirene`,source:`Quelle`,source_label:`Quellenbezeichnung`,speed:`Geschwindigkeit`,state:`Zustand`,status:`Status`,swing:`Swing`,tampered:`Manipuliert`,temperature:`Temperatur`,tilt:`Neigung`,timer:`Timer`,track:`Schiene`,treble:`Verdreifachen`,triggered:`Ausgelöst`,type:`Typ`,units:`Einheiten`,voltage:`Stromspannung`,volume:`Volumen`,warm_mist:`Warmer Nebel`,water_tank_empty:`Wassertank leer`,water_tank_full:`Wassertank voll`,water_tank_level:`Füllstand des Wassertanks`,zoom:`Zoom`,unit:`Einheit`,value:`Wert`}},hidden:{badge:`Ausgeblendet`,by:{system:`System`,user:`Benutzer`},hint:{system:`Automatisch ausgeblendet, weil ein virtuelles Gerät es ersetzt hat. Erscheint wieder, sobald dieses virtuelle Gerät gelöscht wird.`,user:`Von einem Bediener ausgeblendet. Bleibt ausgeblendet, bis es jemand wieder einblendet.`},unhide:`Einblenden`},validation:{status:{valid:`Gültig`,invalid:`Ungültig`,unknown:`Unbekannt`},filter:{valid:`Gültig`,invalid:`Ungültig`,all:`Alle`},errors:`Fehler`,warnings:`Warnungen`,issuesTitle:`Validierungsprobleme`,severity:{error:`Fehler`,warning:`Warnung`},table:{severity:`Schweregrad`,type:`Typ`,message:`Nachricht`,channel:`Kanal`},issueTypes:{missing_channel:`Fehlender Kanal`,missing_property:`Fehlende Eigenschaft`,invalid_data_type:`Ungültiger Datentyp`,invalid_permissions:`Ungültige Berechtigungen`,invalid_format:`Ungültiges Format`,unknown_channel:`Unbekannter Kanal`,duplicate_channel:`Doppelter Kanal`,constraint_one_of_violation:`Bedingungsverletzung (einer von)`,constraint_one_or_more_of_violation:`Bedingungsverletzung (einer oder mehr von)`,constraint_mutually_exclusive_violation:`Bedingungsverletzung (gegenseitig ausschließend)`}},wizard:{steps:{discover:`Suche`,confirm:`Bestätigung`,results:`Ergebnisse`},actions:{cancel:`Abbrechen`,back:`Zurück`,next:`Weiter`,adopt:`Geräte hinzufügen`,addMore:`Weitere hinzufügen`,done:`Fertig`},statuses:{checking:`Wird geprüft`,ready:`Bereit`,needs_credentials:`Anmeldedaten erforderlich`,already_registered:`Bereits hinzugefügt`,unsupported:`Nicht unterstützt`,failed:`Fehlgeschlagen`,willCreate:`Wird erstellt`,willUpdate:`Wird aktualisiert`,created:`Erstellt`,updated:`Aktualisiert`,skipped:`Keine Änderungen`},columns:{name:`Name`,status:`Status`,category:`Kategorie`,change:`Aktion`,error:`Fehler`},totals:{found:`Gefunden: {count}`,adoptable:`Hinzufügbar: {count}`,alreadyAdded:`Bereits hinzugefügt: {count}`,unsupported:`Nicht unterstützt: {count}`,visible:`Sichtbar: {count}`},texts:{loading:`Suchsitzung wird geladen...`,empty:`Noch keine Geräte gefunden`,noSelection:`Es wurden keine Geräte ausgewählt`,resultsSuccess:`Alle ausgewählten Geräte wurden erfolgreich hinzugefügt`,resultsFailed:`Einige Geräte konnten nicht hinzugefügt werden`}},diagnostics:{title:`Hardware-Eingangsdiagnose`,capabilitiesTitle:`Eingabefunktionen`,supportedInteractions:`Unterstützte Interaktionen`,noDiscreteEvents:`Kontinuierlicher / analoger Eingang (keine diskreten Ereignisse)`,noCapabilities:`Keine Eingabefunktionen verfügbar`,liveEventsTitle:`Live-Ereignisse`,clearEvents:`Löschen`,noOccurrences:`Noch keine Ereignisse empfangen`,columnEvent:`Ereignis`,columnNativeType:`Nativer Typ`,columnTimestamp:`Empfangszeit`,columnData:`Nutzlast`}},"en-US":{menu:{title:`Devices`},meta:{devices:{list:{title:`List devices`},edit:{title:`Edit device: {device}`},add:{title:`Add device`},detail:{title:`Device: {device}`},control:{title:`Control device: {device}`}},channels:{list:{title:`List channels`},edit:{title:`Edit channel: {channel}`},add:{title:`Add channel`},detail:{title:`Channel: {channel}`}},channelsProperties:{edit:{title:`Edit channel property: {property}`},add:{title:`Add channel property`}}},breadcrumbs:{devices:{list:`devices`,add:`add device`,edit:`edit device`,detail:`device: {device}`,control:`control: {device}`},channels:{list:`channels`,add:`add channel`,edit:`edit channel`,detail:`channel: {channel}`},channelsProperties:{add:`add channel property`,edit:`edit channel property`}},headings:{devices:{list:`Devices`,add:`Add device`,edit:`Edit device`,detail:`Device: {device}`,control:`Control: {device}`,remove:`Remove device?`,bulkRemove:`Remove devices?`,bulkEnable:`Enable devices?`,bulkDisable:`Disable devices?`,adjustFilters:`Filter devices`,selectPlugin:`Device plugin required`,selectWizardPlugin:`Select a device wizard`},channels:{list:`Channels`,add:`Add channel`,edit:`Edit channel`,detail:`Channel: {channel}`,remove:`Remove channel?`,adjustFilters:`Filter channels`,selectPlugin:`Channel plugin required`},channelsProperties:{add:`Add channel property`,edit:`Edit channel property`,remove:`Remove channel property?`,adjustFilters:`Filter properties`},misc:{discard:`Discard changes?`}},subHeadings:{devices:{list:`Manage smart panel devices`,add:`Add new smart panel device`,edit:`Edit smart panel device`,detail:`Manage smart panel device`,control:`Control smart panel device`,adjustFilters:`Adjust display filters`},channels:{list:`Manage smart panel devices channels`,add:`Add new smart panel device channel`,edit:`Edit smart panel device channel`,detail:`Manager smart panel device channel`,adjustFilters:`Adjust display filters`},channelsProperties:{add:`Add new smart panel channel property`,edit:`Edit smart panel channel property`,adjustFilters:`Adjust display filters`}},messages:{devices:{notFound:`The device you are looking for doesn’t exist or may have been removed.`,created:`New device added successfully.`,notCreated:`Something went wrong. Unable to create the device.`,edited:`Changes saved! The device: {device} has been updated.`,notEdited:`Something went wrong. Device update was not successful.`,removed:`The device: {device} was successfully removed.`,removeCanceled:`Device: {device} removal has been canceled.`,notRemoved:`Something went wrong, and the device: {device} was not removed.`,deletedWhileEditing:`This device was deleted and is no longer available.`,bulkRemoved:`{count} devices were successfully removed.`,bulkRemoveFailed:`Failed to remove {count} devices.`,bulkRemoveCanceled:`Bulk device removal has been canceled.`,bulkEnabled:`{count} devices were successfully enabled.`,bulkEnableFailed:`Failed to enable {count} devices.`,bulkEnableCanceled:`Bulk device enable has been canceled.`,bulkDisabled:`{count} devices were successfully disabled.`,bulkDisableFailed:`Failed to disable {count} devices.`,bulkDisableCanceled:`Bulk device disable has been canceled.`,notLoaded:`Failed to load device. Please try again later.`,unhidden:`Device {device} is visible again`,notUnhidden:`Device {device} could not be made visible`,hiddenNotLoaded:`Failed to load the hidden devices. Please try again later.`},channels:{notFound:`The channel you are looking for doesn’t exist or may have been removed.`,notLoaded:`Failed to load channel. Please try again later.`,notLoadedForDevice:`Failed to load channels for this device.`,created:`New channel added successfully.`,notCreated:`Something went wrong. Unable to create the channel.`,edited:`Changes saved! The channel: {channel} has been updated.`,notEdited:`Something went wrong. Channel update was not successful.`,removed:`The channel: {channel} was successfully removed.`,removeCanceled:`Channel: {channel} removal has been canceled.`,notRemoved:`Something went wrong, and the channel: {channel} was not removed.`,noMoreAllowed:`All required and optional channels are assigned to the device. No others can be added.`,deletedWhileEditing:`This channel was deleted and is no longer available.`},channelsProperties:{notFound:`The channel property you are looking for doesn’t exist or may have been removed.`,notLoadedForChannel:`Failed to load properties for this channel.`,created:`New channel property added successfully.`,notCreated:`Something went wrong. Unable to create the channel property.`,edited:`Changes saved! The channel property: {property} has been updated.`,notEdited:`Something went wrong. Channel property update was not successful.`,removed:`The channel property: {property} was successfully removed.`,removeCanceled:`Channel property: {property} removal has been canceled.`,notRemoved:`Something went wrong, and the channel property: {property} was not removed.`,noMoreAllowed:`All required and optional properties are assigned to the channel. No others can be added.`,deletedWhileEditing:`This channel property was deleted and is no longer available.`},misc:{requestError:`Something went wrong, please try again later.`}},texts:JSON.parse(`{"devices":{"noDevices":"You don't have configured any device","noFilteredDevices":"No devices found matching the active filter criteria","loadingDevices":"Loading devices...","loadingDevice":"Loading device...","confirmRemove":"Are you sure you want to remove device: {device}? This cannot be reversed.","confirmBulkRemove":"Are you sure you want to remove {count} devices? This cannot be reversed.","confirmBulkEnable":"Are you sure you want to enable {count} devices?","confirmBulkDisable":"Are you sure you want to disable {count} devices?","description":{"generic":"","air_conditioner":"The Air Conditioner device represents a cooling system with additional features for environmental monitoring and energy management.","air_dehumidifier":"The Air Dehumidifier device represents a system designed to reduce humidity levels in the environment while providing additional monitoring and control capabilities.","air_humidifier":"The Air Humidifier device represents a system designed to increase humidity levels in the environment while providing additional monitoring and control capabilities.","air_purifier":"The Air Purifier device represents a system designed to improve indoor air quality by removing contaminants and monitoring environmental conditions.","alarm":"","av_receiver":"The AV Receiver device represents a home theater receiver/amplifier with input switching and speaker output control.","camera":"The Camera device represents a surveillance or monitoring system designed for video and image capturing, with additional features for environmental monitoring and interaction.","doorbell":"The Doorbell device represents a smart doorbell system that provides video, audio, and additional monitoring features for enhanced home security.","door":"The Door device represents automated or monitored doors, such as garage doors, entrance doors, or other types of doors, with additional features for security and environmental awareness.","fan":"The Fan device represents a standalone or integrated fan system with features for speed control, direction adjustment, and energy monitoring.","game_console":"The Game Console device represents a gaming console that can be controlled for basic power/activity state and media playback where supported.","heating_unit":"The Heating Unit device represents a space or room heating system designed to control and monitor environmental temperature, with optional features for energy and humidity management.","lighting":"The Lighting device represents a lighting system designed to provide illumination with optional features for energy tracking, brightness control, and adaptive lighting based on ambient conditions.","lock":"The Lock device represents an electronic or smart locking system, providing control and monitoring of access points such as doors or gates.","media":"The Media device represents a multimedia system capable of playing, recording, or managing audio and video content.","outlet":"The Outlet device represents a power outlet with advanced monitoring and control features, enabling remote operation and energy tracking. It supports single or multiple outlets for flexible power management.","projector":"The Projector device represents a video projection display that can be powered on/off and switched between input sources.","pump":"The Pump device represents a water or fluid pump with functionality for flow control, monitoring, and energy tracking.","robot_vacuum":"The Robot Vacuum device represents an autonomous cleaning device with capabilities for energy tracking and operational monitoring.","sensor":"The Sensor device represents a versatile monitoring unit capable of tracking various environmental and safety parameters.","set_top_box":"The Set-top Box device represents a TV-connected media device (streaming box, IPTV box, or HDMI stick) providing playback control and optional source selection.","speaker":"The Speaker device represents an audio output system capable of producing sound and potentially supporting media playback and input functionality.","sprinkler":"The Sprinkler device represents an irrigation system designed to control water flow and monitor environmental conditions to optimize watering.","streaming_service":"The Streaming Service device represents a cloud-based media player (e.g., Spotify) that provides playback control and metadata without a physical power state.","switcher":"The Switcher device represents a controllable outlet or switch that can toggle the power supply to connected devices and monitor energy usage. It supports multiple outlets for power control.","television":"The Television device represents a smart TV or similar media device that can be controlled and monitored for its audio and display functionality.","thermostat":"The Thermostat device represents a climate control system that monitors and adjusts temperature and related environmental factors.","valve":"The Valve device represents a controllable valve used for managing the flow of liquids or gases in various systems.","water_heater":"The Water Heater device represents a water heating system designed to heat and maintain water temperature, with optional features for energy monitoring and leak detection.","window_covering":"The Window Covering device represents automated window treatments such as blinds, shades, or curtains."},"selectPlugin":"To create a new device, please select a compatible plugin from the list. Plugins provide the necessary configuration options for specific device type.","noWizardForDevicePlugin":"The \\"{type}\\" device plugin does not provide a setup wizard.","noChannels":"This device doesn't have any channels yet. Channels define the inputs or outputs of a device. Create a new channel to start interacting with this device.","category":"Category","channelsCount":"No channels configured | One channel configured | {count} channels configured","alertsCount":"No alerts detected | One alert detected | {count} alerts detected","channels":"Channels","alerts":"Alerts","status":"Status","validation":"Validation","noControllableProperties":"This device has no controllable properties. Properties must have read-write or write-only permissions to be controlled.","logs":{"title":"Device Logs","detail":"Log detail","noLogs":"No logs available","noLogsDescription":"No logs have been recorded for this device yet","noMessage":"(no message)","noMoreEntries":"No more log entries"}},"channels":{"noChannels":"You don't have configured any device channel","noFilteredChannels":"No channels found matching the active filter criteria","loadingChannels":"Loading channels...","loadingChannel":"Loading channel...","confirmRemove":"Are you sure you want to remove channel: {channel}? This cannot be reversed.","description":{"generic":"","air_particulate":"Monitors the concentration of particulate matter (e.g., PM2.5 and PM10) in the air, providing insights into air quality and pollution levels.","air_quality":"Monitors overall air quality using an index (0-500) or level indicator, providing a simplified assessment of indoor air conditions.","alarm":"","battery":"Reports the status of a device's battery, including level, charging state, and operational health.","camera":"Provides video and image data streams from surveillance or monitoring cameras. This channel supports configuration and control of camera devices, such as surveillance cameras or babysitting monitors.","carbon_dioxide":"Monitors CO₂ levels in the environment to track air quality and ventilation efficiency.","carbon_monoxide":"Detects the presence of carbon monoxide (CO) to ensure safety in enclosed spaces.","contact":"Tracks the open or closed state of a contact point, such as a door, window, or cabinet.","cooler":"Controls devices that lower air or liquid temperatures, such as air conditioners or refrigeration systems.","dehumidifier":"Controls dehumidifier devices, managing humidity reduction with features like target humidity, operating modes, and water tank monitoring.","device_information":"This channel provides metadata about the device, including manufacturer details, model information, and operational statuses.","doorbell":"Represents smart doorbells, providing features such as button press detection and optional camera integration.","door":"Manages the open/close states of doors, including garage and entry doors.","electrical_energy":"Measures cumulative energy consumption over time in kilowatt-hours (kWh).","electrical_generation":"Reports energy production from a photovoltaic (PV) or other generation source, tracking cumulative energy generated in kWh.","electrical_power":"Reports instantaneous power metrics such as voltage, current, power, and frequency for real-time monitoring and diagnostics.","fan":"Controls fan devices, including speed, oscillation, and modes for air circulation.","filter":"Monitors the status and remaining life of air or water filters, indicating when replacement is needed.","flow":"Monitors the rate of fluid or air flow, typically measured in cubic meters per hour (m³/h).","gas":"Detects the presence of natural gas or other combustible gases to ensure safety in enclosed spaces.","heater":"Manages heating devices, allowing control of temperature settings and modes.","humidifier":"Controls humidifier devices, managing humidity increase with features like target humidity, mist level control, and water tank monitoring.","humidity":"Measures the relative humidity in the environment, reported as a percentage.","illuminance":"Detects ambient light levels, typically measured in lux, to monitor brightness in a space.","leak":"Identifies the presence of water or other liquids to detect leaks and prevent damage.","light":"Controls lighting devices, supporting brightness, color temperature, and color adjustments.","lock":"Manages the locked/unlocked state of physical locks for doors, safes, or other secure areas.","media_input":"Manages the input sources of multimedia devices like TVs, projectors, or audio receivers.","media_playback":"Provides playback controls for multimedia devices, excluding volume control (handled by Speaker and Microphone channels).","microphone":"Represents audio input devices, reporting activity or capturing sound.","motion":"Detects motion in an area to trigger alerts or automate responses.","nitrogen_dioxide":"Monitors the concentration of NO₂ in the air, often used in environmental and industrial monitoring.","occupancy":"Detects the presence of people in a space for automation or energy efficiency purposes.","outlet":"Controls and monitors electrical outlets.","ozone":"Measures ozone (O₃) levels in the air, often used in environmental quality assessments.","pressure":"Reports atmospheric or liquid pressure values, typically measured in pascals (kPa).","robot_vacuum":"Controls robotic vacuum cleaners, providing commands for start, stop, docking, and monitoring states.","smoke":"Detects smoke in the environment, triggering alarms or alerts for safety.","speaker":"Controls speaker devices, including volume, mute state, and audio output modes.","sulphur_dioxide":"Measures sulphur dioxide (SO₂) levels in the air for environmental monitoring.","switcher":"Represents binary switches to control devices like lights, fans, or appliances.","television":"Provides control for TVs, including input source, brightness, and power state.","projector":"Provides control for projectors, including power, input source, brightness, and remote keys.","temperature":"Measures the current temperature in an environment, reported in degrees Celsius .","thermostat":"Manages climate control systems, allowing adjustments of heating, cooling, and fan settings.","valve":"Controls fluid or gas valves, managing open/close states or flow rates.","volatile_organic_compounds":"Monitors the concentration of VOCs in the air to track pollution or air quality.","window_covering":"Controls coverings like blinds, curtains, and shutters, including position and tilt adjustments."},"selectPlugin":"To create a new channel, please select a compatible plugin from the list. Plugins provide the necessary configuration options for specific channel type."},"channelsProperties":{"noProperties":"You don't have configured any channel property","noFilteredProperties":"No channels properties found matching the active filter criteria","loadingProperties":"Loading channels properties...","loadingProperty":"Loading channel property...","loadingChannels":"Loading channels...","loadingChannel":"Loading channel...","confirmRemove":"Are you sure you want to remove channel property: {property}? This cannot be reversed.","dataTypes":{"char":"Signed 8-bit integer (-128 to 127).","uchar":"Unsigned 8-bit integer (0 to 255).","short":"Signed 16-bit integer (-32,768 to 32,767).","ushort":"Unsigned 16-bit integer (0 to 65,535).","int":"Signed 32-bit integer (-2,147,483,648 to 2,147,483,647).","uint":"Unsigned 32-bit integer (0 to 4,294,967,295).","float":"Floating-point number (e.g., 3.14, -0.001).","bool":"Boolean value: true or false.","string":"A sequence of characters (e.g., \\"hello\\").","enum":"Enumerated value selected from a predefined set.","unknown":"Unknown or unspecified data type."},"editValue":"Changing this value manually is allowed, but it may be automatically overwritten if this property is mapped to a device. Use with caution."},"misc":{"notSet":"Not set","noValuesProvided":"No values provided","confirmDiscard":"You have unsaved changes. Are you sure you want to discard them?"}}`),fields:{devices:{search:{placeholder:`Search devices...`},plugin:{title:`Device plugin`,placeholder:`Select device plugin`},state:{title:`State`,placeholder:`Select state`},showHidden:{title:`Show hidden`},id:{title:`Internal identifier`,placeholder:`Device id`},identifier:{title:`System identifier`,placeholder:`Device system identifier`},category:{title:`Category`,placeholder:`Device category`,description:`About category`,validation:{required:`Please select device category`}},name:{title:`Name`,placeholder:`Device name`,validation:{required:`Please fill in device name`}},description:{title:`Description`,placeholder:`Device description`},enabled:{title:`Enabled`,placeholder:`Enable or disable device`},room:{title:`Room`,placeholder:`Select a room (optional)`,hint:`Assign this device to a physical room location`},zones:{title:`Zones`,placeholder:`Select zones (optional)`,hint:`Assign this device to logical zones (e.g., Security, Outdoor). Floor zone membership is derived from room assignment.`},validation:{title:`Validation`}},channels:{search:{placeholder:`Search channels...`},plugin:{title:`Channel plugin`,placeholder:`Select channel plugin`},device:{title:`Device`,placeholder:`Channel device`,description:`About device`,validation:{required:`Please select channel device`}},id:{title:`Internal identifier`,placeholder:`Channel id`},category:{title:`Category`,placeholder:`Channel category`,description:`About category`,validation:{required:`Please select channel category`}},name:{title:`Name`,placeholder:`Channel name`,validation:{required:`Please fill in channel name`}},description:{title:`Description`,placeholder:`Channel description`}},channelsProperties:{search:{placeholder:`Search properties...`},channel:{title:`Channel`,placeholder:`Channel property channel`,description:`About channel`,validation:{required:`Please select channel property channel`}},id:{title:`Internal identifier`,placeholder:`Channel property id`},category:{title:`Category`,placeholder:`Channel property category`,description:`About category`,validation:{required:`Please select channel property category`}},name:{title:`Name`,placeholder:`Channel property name`},permissions:{title:`Permissions`,placeholder:`Channel property reading & writing permissions`,validation:{required:`Please select channel property permissions`}},dataType:{title:`Data type`,placeholder:`Channel property value data type`,validation:{required:`Please select channel property data type`}},unit:{title:`Unit`,placeholder:`Channel property unit`},format:{title:{enum:`Allowed values`,min:`Minimum value`,max:`Maximum value`},placeholder:{enum:`List of allowed values`,min:`Minimum allowed value`,max:`Maximum allowed value`},validation:{required:{enum:`Please fill in channel property list of allowed values`}}},invalid:{title:`Invalid value`,placeholder:`Channel property invalid value`},step:{title:`Step value`,placeholder:`Channel property step value`},enterValue:{title:`Enter value`},value:{title:`Value`,placeholder:`Channel property actual value`}}},table:{devices:{columns:{name:{title:`Name`},type:{title:`Type`},state:{title:`State`},category:{title:`Category`},enabled:{title:`Enabled`,values:{enabled:`Enabled`,disabled:`Disabled`}},validation:{title:`Validation`}}},channels:{columns:{name:{title:`Name`},device:{title:`Device`},category:{title:`Category`}}},channelsProperties:{columns:{name:{title:`Name`},channel:{title:`Channel`},category:{title:`Category`},permissions:{title:`Permissions`},dataType:{title:`Data type`,type:{enum:`Enum value info`,numeric:`Numeric value info`}},value:{title:`Value`}}}},filters:{devices:{types:{title:`Filter by device type`},states:{title:`Filter by connection state`},enabled:{title:`Filter by device state`,placeholder:`Select device state`,values:{enabled:`Enabled`,disabled:`Disabled`,all:`All`}},category:{title:`Filter by device category`,placeholder:`Select one or more`},validation:{title:`Filter by validation status`}},channels:{category:{title:`Filter by channel category`,placeholder:`Select one or more`}},channelsProperties:{category:{title:`Filter by property category`,placeholder:`Select one or more`},dataType:{title:`Filter by property data type`},permission:{title:`Filter by property permission`}}},buttons:{add:{title:`Add`},wizard:{title:`Wizard`},edit:{title:`Edit`},detail:{title:`Detail`},discard:{title:`Discard`},cancel:{title:`Cancel`},close:{title:`Close`},save:{title:`Save`},change:{title:`Change`},remove:{title:`Remove`},resetFilters:{title:`Reset filters`},yes:{title:`Yes`},no:{title:`No`},reset:{title:`Reset`},addChannel:{title:`Add channel`},addProperty:{title:`Add property`},control:{title:`Control`},refresh:{title:`Refresh`},loadMore:{title:`Load more`},viewLogs:{title:`View logs`},back:{title:`Go back`}},labels:{liveTail:`Live tail`,paused:`Paused`,overview:`Overview`,validation:`Validation`,logs:`Logs`},states:{online:`Online`,offline:`Offline`,all:`All`,connected:`Connected`,disconnected:`Disconnected`,init:`Initialized`,ready:`Ready`,running:`Running`,sleeping:`Sleeping`,stopped:`Stopped`,lost:`Lost`,alert:`Alert`,unknown:`Unknown`},permissions:{ro:`Read only`,rw:`Read & write`,wo:`Write only`,ev:`Event`},dataTypes:{char:`Char`,uchar:`Unsigned char`,short:`Short integer`,ushort:`Unsigned short integer`,int:`Integer`,uint:`Unsigned integer`,float:`Float`,bool:`Boolean`,string:`String`,enum:`Enum`,unknown:`Unknown`},categories:{devices:{generic:`Generic`,air_conditioner:`Air conditioner`,air_dehumidifier:`Air dehumidifier`,air_humidifier:`Air humidifier`,air_purifier:`Air purifier`,alarm:`Alarm`,av_receiver:`AV receiver`,camera:`Camera`,door:`Door`,doorbell:`Doorbell`,fan:`Fan`,game_console:`Game console`,heating_unit:`Heating unit`,lighting:`Lighting`,lock:`Lock`,media:`Media`,outlet:`Outlet`,projector:`Projector`,pump:`Pump`,robot_vacuum:`Robot vacuum`,sensor:`Sensor`,set_top_box:`Set-top box`,speaker:`Speaker`,sprinkler:`Sprinkler`,streaming_service:`Streaming service`,switcher:`Switcher`,television:`Television`,terminal:`Terminal`,thermostat:`Thermostat`,valve:`Valve`,water_heater:`Water heater`,window_covering:`Window covering`,input_controller:`Input controller`},channels:{generic:`Generic`,accelerometer:`Accelerometer`,air_particulate:`Air particulate`,air_quality:`Air quality`,alarm:`Alarm`,battery:`Battery`,button:`Button`,buzzer:`Buzzer`,camera:`Camera`,carbon_dioxide:`Carbon dioxide`,carbon_monoxide:`Carbon monoxide`,contact:`Contact`,cooler:`Cooler`,dehumidifier:`Dehumidifier`,device_information:`Device information`,door:`Door`,doorbell:`Doorbell`,electrical_energy:`Electrical energy`,electrical_generation:`Electrical generation`,electrical_power:`Electrical power`,fan:`Fan`,filter:`Filter`,flow:`Flow`,gas:`Gas`,heater:`Heater`,humidifier:`Humidifier`,humidity:`Humidity`,illuminance:`Illuminance`,indicator:`Indicator`,leak:`Leak`,light:`Light`,lock:`Lock`,media_input:`Media input`,media_playback:`Media playback`,microphone:`Microphone`,motion:`Motion`,nitrogen_dioxide:`Nitrogen dioxide`,occupancy:`Occupancy`,outlet:`Outlet`,ozone:`Ozone`,pressure:`Pressure`,robot_vacuum:`Robot vacuum`,smoke:`Smoke`,speaker:`Speaker`,sulphur_dioxide:`Sulphur dioxide`,switcher:`Switcher`,television:`Television`,projector:`Projector`,temperature:`Temperature`,thermostat:`Thermostat`,valve:`Valve`,volatile_organic_compounds:`Volatile organic compounds`,window_covering:`Window covering`,analog_input:`Analog input`,binary_input:`Binary input`},channelsProperties:{generic:`Generic`,acceleration_x:`Acceleration X`,acceleration_y:`Acceleration Y`,acceleration_z:`Acceleration Z`,active:`Active`,alarm_state:`Alarm state`,album:`Album`,angle:`Angle`,aqi:`AQI`,artist:`Artist`,artwork_url:`Artwork URL`,average_power:`Average power`,balance:`Balance`,bass:`Bass`,brightness:`Brightness`,change_needed:`Change needed`,child_lock:`Child lock`,color_blue:`Color blue`,color_green:`Color green`,color_red:`Color red`,color_temperature:`Color temperature`,color_white:`Color white`,command:`Command`,connection_type:`Connection type`,consumption:`Consumption`,current:`Current`,concentration:`Concentration`,defrost_active:`Defrost active`,detected:`Detected`,direction:`Direction`,distance:`Distance`,duration:`Duration`,event:`Event`,fault:`Fault`,fault_description:`Fault description`,firmware_revision:`Firmware revision`,frequency:`Frequency`,grid_export:`Grid export`,grid_import:`Grid import`,hardware_revision:`Hardware revision`,hue:`Hue`,humidity:`Humidity`,illuminance:`Illuminance`,in_use:`In Use`,infrared:`Infrared`,last_event:`Last event`,level:`Level`,life_remaining:`Life remaining`,link_quality:`Link quality`,locked:`Locked`,manufacturer:`Manufacturer`,media_type:`Media type`,mist_level:`Mist level`,model:`Model`,mode:`Mode`,mute:`Mute`,natural_breeze:`Natural breeze`,obstruction:`Obstruction`,on:`On`,orientation:`Orientation`,over_current:`Over current`,over_voltage:`Over voltage`,over_power:`Over power`,pan:`Pan`,peak_level:`Peak level`,percentage:`Percentage`,position:`Position`,power:`Power`,pressure:`Pressure`,production:`Production`,rate:`Rate`,remaining:`Remaining`,repeat:`Repeat`,reset:`Reset`,remote_key:`Remote key`,saturation:`Saturation`,serial_number:`Serial number`,shuffle:`Shuffle`,siren:`Siren`,source:`Source`,source_label:`Source label`,speed:`Speed`,state:`State`,status:`Status`,swing:`Swing`,tampered:`Tampered`,temperature:`Temperature`,tilt:`Tilt`,timer:`Timer`,track:`Track`,treble:`Treble`,triggered:`Triggered`,type:`Type`,units:`Units`,voltage:`Voltage`,volume:`Volume`,warm_mist:`Warm mist`,water_tank_empty:`Water tank empty`,water_tank_full:`Water tank full`,water_tank_level:`Water tank level`,zoom:`Zoom`,unit:`Unit`,value:`Value`}},hidden:{badge:`Hidden`,by:{system:`System`,user:`User`},hint:{system:`Hidden automatically because a virtual device replaced it. It reappears once that virtual device is deleted.`,user:`Hidden by an operator. It stays hidden until someone unhides it.`},unhide:`Unhide`},validation:{status:{valid:`Valid`,invalid:`Invalid`,unknown:`Unknown`},filter:{valid:`Valid`,invalid:`Invalid`,all:`All`},errors:`errors`,warnings:`warnings`,issuesTitle:`Validation Issues`,severity:{error:`Error`,warning:`Warning`},table:{severity:`Severity`,type:`Type`,message:`Message`,channel:`Channel`},issueTypes:{missing_channel:`Missing channel`,missing_property:`Missing property`,invalid_data_type:`Invalid data type`,invalid_permissions:`Invalid permissions`,invalid_format:`Invalid format`,unknown_channel:`Unknown channel`,duplicate_channel:`Duplicate channel`,constraint_one_of_violation:`Constraint violation (one of)`,constraint_one_or_more_of_violation:`Constraint violation (one or more of)`,constraint_mutually_exclusive_violation:`Constraint violation (mutually exclusive)`}},wizard:{steps:{discover:`Discovery`,confirm:`Confirm`,results:`Results`},actions:{cancel:`Cancel`,back:`Back`,next:`Next`,adopt:`Add devices`,addMore:`Add more`,done:`Done`},statuses:{checking:`Checking`,ready:`Ready`,needs_credentials:`Credentials required`,already_registered:`Already added`,unsupported:`Unsupported`,failed:`Failed`,willCreate:`Will create`,willUpdate:`Will update`,created:`Created`,updated:`Updated`,skipped:`No changes`},columns:{name:`Name`,status:`Status`,category:`Category`,change:`Action`,error:`Error`},totals:{found:`Found: {count}`,adoptable:`Adoptable: {count}`,alreadyAdded:`Already added: {count}`,unsupported:`Unsupported: {count}`,visible:`Visible: {count}`},texts:{loading:`Loading discovery session...`,empty:`No devices found yet`,noSelection:`No devices were selected`,resultsSuccess:`All selected devices were added successfully`,resultsFailed:`Some devices could not be added`}},diagnostics:{title:`Hardware Input Diagnostics`,capabilitiesTitle:`Input Capabilities`,supportedInteractions:`Supported interactions`,noDiscreteEvents:`Continuous / analog input (no discrete interaction events)`,noCapabilities:`No input capabilities available`,liveEventsTitle:`Live Events`,clearEvents:`Clear`,noOccurrences:`No occurrences received yet`,columnEvent:`Event`,columnNativeType:`Native Type`,columnTimestamp:`Received At`,columnData:`Payload`}},"es-ES":{menu:{title:`Dispositivos`},meta:{devices:{list:{title:`Listar dispositivos`},edit:{title:`Editar dispositivo: {device}`},add:{title:`Añadir dispositivo`},detail:{title:`Dispositivo: {device}`},control:{title:`Controlar dispositivo: {device}`}},channels:{list:{title:`Listar canales`},edit:{title:`Editar canal: {channel}`},add:{title:`Añadir canal`},detail:{title:`Canal: {channel}`}},channelsProperties:{edit:{title:`Editar propiedad del canal: {property}`},add:{title:`Añadir propiedad del canal`}}},breadcrumbs:{devices:{list:`dispositivos`,add:`añadir dispositivo`,edit:`editar dispositivo`,detail:`dispositivo: {device}`,control:`controlar: {device}`},channels:{list:`canales`,add:`añadir canal`,edit:`editar canal`,detail:`canal: {channel}`},channelsProperties:{add:`añadir propiedad del canal`,edit:`editar propiedad del canal`}},headings:{devices:{list:`Dispositivos`,add:`Añadir dispositivo`,edit:`Editar dispositivo`,detail:`Dispositivo: {device}`,control:`Controlar: {device}`,remove:`¿Eliminar dispositivo?`,bulkRemove:`¿Eliminar dispositivos?`,bulkEnable:`¿Activar dispositivos?`,bulkDisable:`¿Desactivar dispositivos?`,adjustFilters:`Filtrar dispositivos`,selectPlugin:`Se requiere plugin de dispositivo`,selectWizardPlugin:`Seleccionar asistente de dispositivo`},channels:{list:`Canales`,add:`Añadir canal`,edit:`Editar canal`,detail:`Canal: {channel}`,remove:`¿Eliminar canal?`,adjustFilters:`Filtrar canales`,selectPlugin:`Se requiere plugin de canal`},channelsProperties:{add:`Añadir propiedad del canal`,edit:`Editar propiedad del canal`,remove:`¿Eliminar propiedad del canal?`,adjustFilters:`Filtrar propiedades`},misc:{discard:`¿Descartar cambios?`}},subHeadings:{devices:{list:`Gestionar dispositivos del panel inteligente`,add:`Añadir nuevo dispositivo del panel inteligente`,edit:`Editar dispositivo del panel inteligente`,detail:`Gestionar dispositivo del panel inteligente`,control:`Controlar dispositivo del panel inteligente`,adjustFilters:`Ajustar filtros de visualización`},channels:{list:`Gestionar canales de dispositivos del panel inteligente`,add:`Añadir nuevo canal de dispositivo del panel inteligente`,edit:`Editar canal de dispositivo del panel inteligente`,detail:`Gestionar canal de dispositivo del panel inteligente`,adjustFilters:`Ajustar filtros de visualización`},channelsProperties:{add:`Añadir nueva propiedad de canal del panel inteligente`,edit:`Editar propiedad de canal del panel inteligente`,adjustFilters:`Ajustar filtros de visualización`}},messages:{devices:{notFound:`El dispositivo que busca no existe o pudo haber sido eliminado.`,created:`Nuevo dispositivo añadido correctamente.`,notCreated:`Algo salió mal. No se pudo crear el dispositivo.`,edited:`¡Cambios guardados! El dispositivo: {device} ha sido actualizado.`,notEdited:`Algo salió mal. La actualización del dispositivo no fue exitosa.`,removed:`El dispositivo: {device} fue eliminado correctamente.`,removeCanceled:`La eliminación del dispositivo: {device} ha sido cancelada.`,notRemoved:`Algo salió mal y el dispositivo: {device} no fue eliminado.`,deletedWhileEditing:`Este dispositivo fue eliminado y ya no está disponible.`,bulkRemoved:`{count} dispositivos fueron eliminados correctamente.`,bulkRemoveFailed:`Error al eliminar {count} dispositivos.`,bulkRemoveCanceled:`La eliminación masiva de dispositivos ha sido cancelada.`,bulkEnabled:`{count} dispositivos fueron activados correctamente.`,bulkEnableFailed:`Error al activar {count} dispositivos.`,bulkEnableCanceled:`La activación masiva de dispositivos ha sido cancelada.`,bulkDisabled:`{count} dispositivos fueron desactivados correctamente.`,bulkDisableFailed:`Error al desactivar {count} dispositivos.`,bulkDisableCanceled:`La desactivación masiva de dispositivos ha sido cancelada.`,notLoaded:`Error al cargar el dispositivo. Por favor inténtelo de nuevo más tarde.`,unhidden:`El dispositivo {device} vuelve a ser visible`,notUnhidden:`No se pudo mostrar el dispositivo {device}`,hiddenNotLoaded:`No se han podido cargar los dispositivos ocultos. Inténtalo de nuevo más tarde.`},channels:{notFound:`El canal que busca no existe o pudo haber sido eliminado.`,notLoaded:`Error al cargar el canal. Por favor inténtelo de nuevo más tarde.`,notLoadedForDevice:`Error al cargar los canales de este dispositivo.`,created:`Nuevo canal añadido correctamente.`,notCreated:`Algo salió mal. No se pudo crear el canal.`,edited:`¡Cambios guardados! El canal: {channel} ha sido actualizado.`,notEdited:`Algo salió mal. La actualización del canal no fue exitosa.`,removed:`El canal: {channel} fue eliminado correctamente.`,removeCanceled:`La eliminación del canal: {channel} ha sido cancelada.`,notRemoved:`Algo salió mal y el canal: {channel} no fue eliminado.`,noMoreAllowed:`Todos los canales obligatorios y opcionales están asignados al dispositivo. No se pueden añadir más.`,deletedWhileEditing:`Este canal fue eliminado y ya no está disponible.`},channelsProperties:{notFound:`La propiedad del canal que busca no existe o pudo haber sido eliminada.`,notLoadedForChannel:`Error al cargar las propiedades de este canal.`,created:`Nueva propiedad del canal añadida correctamente.`,notCreated:`Algo salió mal. No se pudo crear la propiedad del canal.`,edited:`¡Cambios guardados! La propiedad del canal: {property} ha sido actualizada.`,notEdited:`Algo salió mal. La actualización de la propiedad del canal no fue exitosa.`,removed:`La propiedad del canal: {property} fue eliminada correctamente.`,removeCanceled:`La eliminación de la propiedad del canal: {property} ha sido cancelada.`,notRemoved:`Algo salió mal y la propiedad del canal: {property} no fue eliminada.`,noMoreAllowed:`Todas las propiedades obligatorias y opcionales están asignadas al canal. No se pueden añadir más.`,deletedWhileEditing:`Esta propiedad del canal fue eliminada y ya no está disponible.`},misc:{requestError:`Algo salió mal, por favor inténtelo de nuevo más tarde.`}},texts:JSON.parse(`{"devices":{"noDevices":"No tiene ningún dispositivo configurado","noFilteredDevices":"No se encontraron dispositivos que coincidan con los criterios de filtro activos","loadingDevices":"Cargando dispositivos...","loadingDevice":"Cargando dispositivo...","confirmRemove":"¿Está seguro de que desea eliminar el dispositivo: {device}? Esto no se puede revertir.","confirmBulkRemove":"¿Está seguro de que desea eliminar {count} dispositivos? Esto no se puede revertir.","confirmBulkEnable":"¿Está seguro de que desea activar {count} dispositivos?","confirmBulkDisable":"¿Está seguro de que desea desactivar {count} dispositivos?","description":{"generic":"","air_conditioner":"El dispositivo Aire Acondicionado representa un sistema de refrigeración con funciones adicionales para la monitorización ambiental y la gestión energética.","air_dehumidifier":"El dispositivo Deshumidificador representa un sistema diseñado para reducir los niveles de humedad en el entorno, proporcionando capacidades adicionales de monitorización y control.","air_humidifier":"El dispositivo Humidificador representa un sistema diseñado para aumentar los niveles de humedad en el entorno, proporcionando capacidades adicionales de monitorización y control.","air_purifier":"El dispositivo Purificador de Aire representa un sistema diseñado para mejorar la calidad del aire interior eliminando contaminantes y monitorizando las condiciones ambientales.","alarm":"","av_receiver":"El dispositivo Receptor AV representa un receptor/amplificador de cine en casa con conmutación de entrada y control de salida de altavoces.","camera":"El dispositivo Cámara representa un sistema de vigilancia o monitorización diseñado para la captura de vídeo e imagen, con funciones adicionales para la monitorización ambiental e interacción.","doorbell":"El dispositivo Timbre representa un sistema de timbre inteligente que proporciona funciones de vídeo, audio y monitorización adicional para mejorar la seguridad del hogar.","door":"El dispositivo Puerta representa puertas automatizadas o monitorizadas, como puertas de garaje, puertas de entrada u otros tipos de puertas, con funciones adicionales de seguridad y percepción ambiental.","fan":"El dispositivo Ventilador representa un sistema de ventilación independiente o integrado con funciones de control de velocidad, ajuste de dirección y monitorización de energía.","game_console":"El dispositivo Consola de Juegos representa una consola de videojuegos que puede controlarse para el estado básico de encendido/actividad y la reproducción multimedia cuando se admite.","heating_unit":"El dispositivo Unidad de Calefacción representa un sistema de calefacción de espacio o habitación diseñado para controlar y monitorizar la temperatura ambiental, con funciones opcionales para la gestión de energía y humedad.","lighting":"El dispositivo Iluminación representa un sistema de iluminación diseñado para proporcionar luz con funciones opcionales de seguimiento de energía, control de brillo e iluminación adaptativa basada en las condiciones ambientales.","lock":"El dispositivo Cerradura representa un sistema de cerradura electrónica o inteligente, proporcionando control y monitorización de puntos de acceso como puertas o portones.","media":"El dispositivo Multimedia representa un sistema multimedia capaz de reproducir, grabar o gestionar contenido de audio y vídeo.","outlet":"El dispositivo Enchufe representa una toma de corriente con funciones avanzadas de monitorización y control, permitiendo la operación remota y el seguimiento de energía. Admite enchufes individuales o múltiples para una gestión flexible de la energía.","projector":"El dispositivo Proyector representa una pantalla de proyección de vídeo que puede encenderse/apagarse y cambiar entre fuentes de entrada.","pump":"El dispositivo Bomba representa una bomba de agua o fluido con funcionalidad de control de flujo, monitorización y seguimiento de energía.","robot_vacuum":"El dispositivo Robot Aspirador representa un dispositivo de limpieza autónomo con capacidades de seguimiento de energía y monitorización operativa.","sensor":"El dispositivo Sensor representa una unidad de monitorización versátil capaz de rastrear diversos parámetros ambientales y de seguridad.","set_top_box":"El dispositivo Decodificador representa un dispositivo multimedia conectado al televisor (caja de streaming, caja IPTV o stick HDMI) que proporciona control de reproducción y selección opcional de fuentes.","speaker":"El dispositivo Altavoz representa un sistema de salida de audio capaz de producir sonido y potencialmente compatible con la reproducción multimedia y funcionalidad de entrada.","sprinkler":"El dispositivo Aspersor representa un sistema de riego diseñado para controlar el flujo de agua y monitorizar las condiciones ambientales para optimizar el riego.","streaming_service":"El dispositivo Servicio de Streaming representa un reproductor multimedia basado en la nube (por ejemplo, Spotify) que proporciona control de reproducción y metadatos sin un estado de encendido físico.","switcher":"El dispositivo Interruptor representa una toma o interruptor controlable que puede activar o desactivar el suministro eléctrico a los dispositivos conectados y monitorizar el consumo de energía. Admite múltiples tomas para el control de energía.","television":"El dispositivo Televisión representa un televisor inteligente o dispositivo multimedia similar que puede controlarse y monitorizarse en cuanto a su funcionalidad de audio y pantalla.","thermostat":"El dispositivo Termostato representa un sistema de control climático que monitoriza y ajusta la temperatura y los factores ambientales relacionados.","valve":"El dispositivo Válvula representa una válvula controlable utilizada para gestionar el flujo de líquidos o gases en diversos sistemas.","water_heater":"El dispositivo Calentador de Agua representa un sistema de calentamiento de agua diseñado para calentar y mantener la temperatura del agua, con funciones opcionales de monitorización de energía y detección de fugas.","window_covering":"El dispositivo Cubierta de Ventana representa tratamientos automatizados de ventanas como persianas, estores o cortinas."},"selectPlugin":"Para crear un nuevo dispositivo, por favor seleccione un plugin compatible de la lista. Los plugins proporcionan las opciones de configuración necesarias para tipos de dispositivo específicos.","noWizardForDevicePlugin":"El plugin de dispositivo «{type}» no proporciona un asistente de configuración.","noChannels":"Este dispositivo aún no tiene canales. Los canales definen las entradas o salidas de un dispositivo. Cree un nuevo canal para comenzar a interactuar con este dispositivo.","category":"Categoría","channelsCount":"Sin canales configurados | Un canal configurado | {count} canales configurados","alertsCount":"Sin alertas detectadas | Una alerta detectada | {count} alertas detectadas","channels":"Canales","alerts":"Alertas","status":"Estado","validation":"Validación","noControllableProperties":"Este dispositivo no tiene propiedades controlables. Las propiedades deben tener permisos de lectura-escritura o solo escritura para poder ser controladas.","logs":{"title":"Registros del dispositivo","noLogs":"Sin registros disponibles","noLogsDescription":"Aún no se han registrado entradas para este dispositivo","noMessage":"(sin mensaje)","noMoreEntries":"No hay más entradas de registro","detail":"Detalles del registro"}},"channels":{"noChannels":"No tiene ningún canal de dispositivo configurado","noFilteredChannels":"No se encontraron canales que coincidan con los criterios de filtro activos","loadingChannels":"Cargando canales...","loadingChannel":"Cargando canal...","confirmRemove":"¿Está seguro de que desea eliminar el canal: {channel}? Esto no se puede revertir.","description":{"generic":"","air_particulate":"Monitoriza la concentración de partículas en suspensión (por ejemplo, PM2.5 y PM10) en el aire, proporcionando información sobre la calidad del aire y los niveles de contaminación.","air_quality":"Monitoriza la calidad general del aire mediante un índice (0-500) o indicador de nivel, proporcionando una evaluación simplificada de las condiciones del aire interior.","alarm":"","battery":"Informa sobre el estado de la batería de un dispositivo, incluyendo nivel, estado de carga y estado operativo.","camera":"Proporciona flujos de datos de vídeo e imagen de cámaras de vigilancia o monitorización. Este canal admite la configuración y control de dispositivos de cámara, como cámaras de vigilancia o monitores para bebés.","carbon_dioxide":"Monitoriza los niveles de CO₂ en el entorno para seguir la calidad del aire y la eficiencia de la ventilación.","carbon_monoxide":"Detecta la presencia de monóxido de carbono (CO) para garantizar la seguridad en espacios cerrados.","contact":"Rastrea el estado abierto o cerrado de un punto de contacto, como una puerta, ventana o armario.","cooler":"Controla dispositivos que reducen la temperatura del aire o de líquidos, como aires acondicionados o sistemas de refrigeración.","dehumidifier":"Controla dispositivos deshumidificadores, gestionando la reducción de humedad con funciones como humedad objetivo, modos de operación y monitorización del depósito de agua.","device_information":"Este canal proporciona metadatos sobre el dispositivo, incluyendo detalles del fabricante, información del modelo y estados operativos.","doorbell":"Representa timbres inteligentes, proporcionando funciones como detección de pulsación de botón e integración opcional con cámara.","door":"Gestiona los estados de apertura/cierre de puertas, incluyendo puertas de garaje y de entrada.","electrical_energy":"Mide el consumo acumulado de energía a lo largo del tiempo en kilovatios-hora (kWh).","electrical_generation":"Informa sobre la producción de energía de una fuente fotovoltaica (PV) u otra fuente de generación, rastreando la energía acumulada generada en kWh.","electrical_power":"Informa sobre métricas instantáneas de potencia como voltaje, corriente, potencia y frecuencia para monitorización y diagnóstico en tiempo real.","fan":"Controla dispositivos de ventilación, incluyendo velocidad, oscilación y modos de circulación de aire.","filter":"Monitoriza el estado y la vida útil restante de filtros de aire o agua, indicando cuándo se necesita reemplazo.","flow":"Monitoriza la tasa de flujo de fluido o aire, normalmente medida en metros cúbicos por hora (m³/h).","gas":"Detecta la presencia de gas natural u otros gases combustibles para garantizar la seguridad en espacios cerrados.","heater":"Gestiona dispositivos de calefacción, permitiendo el control de ajustes de temperatura y modos.","humidifier":"Controla dispositivos humidificadores, gestionando el aumento de humedad con funciones como humedad objetivo, control del nivel de vapor y monitorización del depósito de agua.","humidity":"Mide la humedad relativa en el entorno, expresada como porcentaje.","illuminance":"Detecta los niveles de luz ambiental, normalmente medidos en lux, para monitorizar la luminosidad de un espacio.","leak":"Identifica la presencia de agua u otros líquidos para detectar fugas y prevenir daños.","light":"Controla dispositivos de iluminación, admitiendo ajustes de brillo, temperatura de color y color.","lock":"Gestiona el estado de bloqueo/desbloqueo de cerraduras físicas para puertas, cajas fuertes u otras áreas seguras.","media_input":"Gestiona las fuentes de entrada de dispositivos multimedia como televisores, proyectores o receptores de audio.","media_playback":"Proporciona controles de reproducción para dispositivos multimedia, excluyendo el control de volumen (gestionado por los canales de Altavoz y Micrófono).","microphone":"Representa dispositivos de entrada de audio, informando sobre actividad o capturando sonido.","motion":"Detecta movimiento en un área para activar alertas o automatizar respuestas.","nitrogen_dioxide":"Monitoriza la concentración de NO₂ en el aire, utilizado frecuentemente en monitorización ambiental e industrial.","occupancy":"Detecta la presencia de personas en un espacio para automatización o eficiencia energética.","outlet":"Controla y monitoriza enchufes eléctricos.","ozone":"Mide los niveles de ozono (O₃) en el aire, utilizado frecuentemente en evaluaciones de calidad ambiental.","pressure":"Informa sobre valores de presión atmosférica o de líquidos, normalmente medidos en pascales (kPa).","robot_vacuum":"Controla aspiradoras robóticas, proporcionando comandos de inicio, parada, acoplamiento y monitorización de estados.","smoke":"Detecta humo en el entorno, activando alarmas o alertas de seguridad.","speaker":"Controla dispositivos de altavoz, incluyendo volumen, estado de silencio y modos de salida de audio.","sulphur_dioxide":"Mide los niveles de dióxido de azufre (SO₂) en el aire para monitorización ambiental.","switcher":"Representa interruptores binarios para controlar dispositivos como luces, ventiladores o electrodomésticos.","television":"Proporciona control para televisores, incluyendo fuente de entrada, brillo y estado de encendido.","projector":"Proporciona control para proyectores, incluyendo encendido, fuente de entrada, brillo y teclas de control remoto.","temperature":"Mide la temperatura actual en un entorno, expresada en grados Celsius.","thermostat":"Gestiona sistemas de control climático, permitiendo ajustes de calefacción, refrigeración y ventilación.","valve":"Controla válvulas de fluido o gas, gestionando estados de apertura/cierre o tasas de flujo.","volatile_organic_compounds":"Monitoriza la concentración de COV en el aire para rastrear la contaminación o calidad del aire.","window_covering":"Controla cubiertas como persianas, cortinas y estores, incluyendo ajustes de posición e inclinación."},"selectPlugin":"Para crear un nuevo canal, por favor seleccione un plugin compatible de la lista. Los plugins proporcionan las opciones de configuración necesarias para tipos de canal específicos."},"channelsProperties":{"noProperties":"No tiene ninguna propiedad de canal configurada","noFilteredProperties":"No se encontraron propiedades de canal que coincidan con los criterios de filtro activos","loadingProperties":"Cargando propiedades de canal...","loadingProperty":"Cargando propiedad del canal...","loadingChannels":"Cargando canales...","loadingChannel":"Cargando canal...","confirmRemove":"¿Está seguro de que desea eliminar la propiedad del canal: {property}? Esto no se puede revertir.","dataTypes":{"char":"Entero con signo de 8 bits (-128 a 127).","uchar":"Entero sin signo de 8 bits (0 a 255).","short":"Entero con signo de 16 bits (-32.768 a 32.767).","ushort":"Entero sin signo de 16 bits (0 a 65.535).","int":"Entero con signo de 32 bits (-2.147.483.648 a 2.147.483.647).","uint":"Entero sin signo de 32 bits (0 a 4.294.967.295).","float":"Número de punto flotante (por ejemplo, 3,14, -0,001).","bool":"Valor booleano: verdadero o falso.","string":"Una secuencia de caracteres (por ejemplo, \\"hola\\").","enum":"Valor enumerado seleccionado de un conjunto predefinido.","unknown":"Tipo de dato desconocido o no especificado."},"editValue":"Se permite cambiar este valor manualmente, pero puede ser sobrescrito automáticamente si esta propiedad está asignada a un dispositivo. Utilice con precaución."},"misc":{"notSet":"No establecido","noValuesProvided":"Sin valores proporcionados","confirmDiscard":"Tiene cambios sin guardar. ¿Está seguro de que desea descartarlos?"}}`),fields:{devices:{search:{placeholder:`Buscar dispositivos...`},plugin:{title:`Plugin de dispositivo`,placeholder:`Seleccionar plugin de dispositivo`},state:{title:`Estado`,placeholder:`Seleccionar estado`},showHidden:{title:`Mostrar ocultos`},id:{title:`Identificador interno`,placeholder:`ID del dispositivo`},identifier:{title:`Identificador del sistema`,placeholder:`Identificador del sistema del dispositivo`},category:{title:`Categoría`,placeholder:`Categoría del dispositivo`,description:`Acerca de la categoría`,validation:{required:`Por favor seleccione la categoría del dispositivo`}},name:{title:`Nombre`,placeholder:`Nombre del dispositivo`,validation:{required:`Por favor ingrese el nombre del dispositivo`}},description:{title:`Descripción`,placeholder:`Descripción del dispositivo`},enabled:{title:`Activado`,placeholder:`Activar o desactivar dispositivo`},room:{title:`Habitación`,placeholder:`Seleccionar una habitación (opcional)`,hint:`Asignar este dispositivo a una ubicación de habitación física`},zones:{title:`Zonas`,placeholder:`Seleccionar zonas (opcional)`,hint:`Asignar este dispositivo a zonas lógicas (por ejemplo, Seguridad, Exterior). La pertenencia a la zona de planta se deriva de la asignación de habitación.`},validation:{title:`Validación`}},channels:{search:{placeholder:`Buscar canales...`},plugin:{title:`Plugin de canal`,placeholder:`Seleccionar plugin de canal`},device:{title:`Dispositivo`,placeholder:`Dispositivo del canal`,description:`Acerca del dispositivo`,validation:{required:`Por favor seleccione el dispositivo del canal`}},id:{title:`Identificador interno`,placeholder:`ID del canal`},category:{title:`Categoría`,placeholder:`Categoría del canal`,description:`Acerca de la categoría`,validation:{required:`Por favor seleccione la categoría del canal`}},name:{title:`Nombre`,placeholder:`Nombre del canal`,validation:{required:`Por favor ingrese el nombre del canal`}},description:{title:`Descripción`,placeholder:`Descripción del canal`}},channelsProperties:{search:{placeholder:`Buscar propiedades...`},channel:{title:`Canal`,placeholder:`Canal de la propiedad`,description:`Acerca del canal`,validation:{required:`Por favor seleccione el canal de la propiedad`}},id:{title:`Identificador interno`,placeholder:`ID de la propiedad del canal`},category:{title:`Categoría`,placeholder:`Categoría de la propiedad del canal`,description:`Acerca de la categoría`,validation:{required:`Por favor seleccione la categoría de la propiedad del canal`}},name:{title:`Nombre`,placeholder:`Nombre de la propiedad del canal`},permissions:{title:`Permisos`,placeholder:`Permisos de lectura y escritura de la propiedad del canal`,validation:{required:`Por favor seleccione los permisos de la propiedad del canal`}},dataType:{title:`Tipo de dato`,placeholder:`Tipo de dato del valor de la propiedad del canal`,validation:{required:`Por favor seleccione el tipo de dato de la propiedad del canal`}},unit:{title:`Unidad`,placeholder:`Unidad de la propiedad del canal`},format:{title:{enum:`Valores permitidos`,min:`Valor mínimo`,max:`Valor máximo`},placeholder:{enum:`Lista de valores permitidos`,min:`Valor mínimo permitido`,max:`Valor máximo permitido`},validation:{required:{enum:`Por favor ingrese la lista de valores permitidos de la propiedad del canal`}}},invalid:{title:`Valor no válido`,placeholder:`Valor no válido de la propiedad del canal`},step:{title:`Valor de paso`,placeholder:`Valor de paso de la propiedad del canal`},enterValue:{title:`Ingrese el valor`},value:{title:`Valor`,placeholder:`Valor actual de la propiedad del canal`}}},table:{devices:{columns:{name:{title:`Nombre`},type:{title:`Tipo`},state:{title:`Estado`},category:{title:`Categoría`},enabled:{title:`Activado`,values:{enabled:`Activado`,disabled:`Desactivado`}},validation:{title:`Validación`}}},channels:{columns:{name:{title:`Nombre`},device:{title:`Dispositivo`},category:{title:`Categoría`}}},channelsProperties:{columns:{name:{title:`Nombre`},channel:{title:`Canal`},category:{title:`Categoría`},permissions:{title:`Permisos`},dataType:{title:`Tipo de dato`,type:{enum:`Información de valor enumerado`,numeric:`Información de valor numérico`}},value:{title:`Valor`}}}},filters:{devices:{types:{title:`Filtrar por tipo de dispositivo`},states:{title:`Filtrar por estado de conexión`},enabled:{title:`Filtrar por estado del dispositivo`,placeholder:`Seleccionar estado del dispositivo`,values:{enabled:`Activado`,disabled:`Desactivado`,all:`Todos`}},category:{title:`Filtrar por categoría de dispositivo`,placeholder:`Seleccionar uno o más`},validation:{title:`Filtrar por estado de validación`}},channels:{category:{title:`Filtrar por categoría de canal`,placeholder:`Seleccionar uno o más`}},channelsProperties:{category:{title:`Filtrar por categoría de propiedad`,placeholder:`Seleccionar uno o más`},dataType:{title:`Filtrar por tipo de dato de propiedad`},permission:{title:`Filtrar por permiso de propiedad`}}},buttons:{add:{title:`Añadir`},wizard:{title:`Asistente`},edit:{title:`Editar`},detail:{title:`Detalle`},discard:{title:`Descartar`},cancel:{title:`Cancelar`},close:{title:`Cerrar`},save:{title:`Guardar`},change:{title:`Cambiar`},remove:{title:`Eliminar`},resetFilters:{title:`Restablecer filtros`},yes:{title:`Sí`},no:{title:`No`},reset:{title:`Restablecer`},addChannel:{title:`Añadir canal`},addProperty:{title:`Añadir propiedad`},control:{title:`Controlar`},refresh:{title:`Actualizar`},loadMore:{title:`Cargar más`},viewLogs:{title:`Ver registros`},back:{title:`Volver`}},labels:{liveTail:`Seguimiento en vivo`,paused:`Pausado`,overview:`Resumen`,validation:`Validación`,logs:`Registros`},states:{online:`En línea`,offline:`Fuera de línea`,all:`Todos`,connected:`Conectado`,disconnected:`Desconectado`,init:`Inicializado`,ready:`Listo`,running:`En ejecución`,sleeping:`En reposo`,stopped:`Detenido`,lost:`Perdido`,alert:`Alerta`,unknown:`Desconocido`},permissions:{ro:`Solo lectura`,rw:`Lectura y escritura`,wo:`Solo escritura`,ev:`Evento`},dataTypes:{char:`Carácter`,uchar:`Carácter sin signo`,short:`Entero corto`,ushort:`Entero corto sin signo`,int:`Entero`,uint:`Entero sin signo`,float:`Número de coma flotante`,bool:`Booleano`,string:`Cadena`,enum:`Enumeración`,unknown:`Desconocido`},categories:{devices:{generic:`Genérico`,air_conditioner:`Aire acondicionado`,air_dehumidifier:`Deshumidificador`,air_humidifier:`Humidificador`,air_purifier:`Purificador de aire`,alarm:`Alarma`,av_receiver:`Receptor AV`,camera:`Cámara`,door:`Puerta`,doorbell:`Timbre`,fan:`Ventilador`,game_console:`Consola de juegos`,heating_unit:`Unidad de calefacción`,lighting:`Iluminación`,lock:`Cerradura`,media:`Multimedia`,outlet:`Enchufe`,projector:`Proyector`,pump:`Bomba`,robot_vacuum:`Robot aspirador`,sensor:`Sensor`,set_top_box:`Decodificador`,speaker:`Altavoz`,sprinkler:`Aspersor`,streaming_service:`Servicio de streaming`,switcher:`Interruptor`,television:`Televisión`,terminal:`Terminal`,thermostat:`Termostato`,valve:`Válvula`,water_heater:`Calentador de agua`,window_covering:`Cubierta de ventana`,input_controller:`Controlador de entrada`},channels:{generic:`Genérico`,accelerometer:`Acelerómetro`,air_particulate:`Partículas en el aire`,air_quality:`Calidad del aire`,alarm:`Alarma`,battery:`Batería`,button:`Botón`,buzzer:`Zumbador`,camera:`Cámara`,carbon_dioxide:`Dióxido de carbono`,carbon_monoxide:`Monóxido de carbono`,contact:`Contacto`,cooler:`Refrigerador`,dehumidifier:`Deshumidificador`,device_information:`Información del dispositivo`,door:`Puerta`,doorbell:`Timbre`,electrical_energy:`Energía eléctrica`,electrical_generation:`Generación eléctrica`,electrical_power:`Potencia eléctrica`,fan:`Ventilador`,filter:`Filtro`,flow:`Flujo`,gas:`Gas`,heater:`Calefactor`,humidifier:`Humidificador`,humidity:`Humedad`,illuminance:`Iluminancia`,indicator:`Indicador`,leak:`Fuga`,light:`Luz`,lock:`Cerradura`,media_input:`Entrada multimedia`,media_playback:`Reproducción multimedia`,microphone:`Micrófono`,motion:`Movimiento`,nitrogen_dioxide:`Dióxido de nitrógeno`,occupancy:`Ocupación`,outlet:`Enchufe`,ozone:`Ozono`,pressure:`Presión`,robot_vacuum:`Robot aspirador`,smoke:`Humo`,speaker:`Altavoz`,sulphur_dioxide:`Dióxido de azufre`,switcher:`Interruptor`,television:`Televisión`,projector:`Proyector`,temperature:`Temperatura`,thermostat:`Termostato`,valve:`Válvula`,volatile_organic_compounds:`Compuestos orgánicos volátiles`,window_covering:`Cubierta de ventana`,analog_input:`Entrada analógica`,binary_input:`Entrada binaria`},channelsProperties:{generic:`Genérico`,acceleration_x:`Aceleración X`,acceleration_y:`Aceleración Y`,acceleration_z:`Aceleración Z`,active:`Activo`,alarm_state:`Estado de alarma`,album:`Álbum`,angle:`Ángulo`,aqi:`AQI (índice de calidad del aire)`,artist:`Artista`,artwork_url:`URL de la portada`,average_power:`Potencia media`,balance:`Balance`,bass:`Graves`,brightness:`Brillo`,change_needed:`Cambio necesario`,child_lock:`Bloqueo infantil`,color_blue:`Color azul`,color_green:`Color verde`,color_red:`Color rojo`,color_temperature:`Temperatura de color`,color_white:`Color blanco`,command:`Comando`,connection_type:`Tipo de conexión`,consumption:`Consumo`,current:`Corriente`,concentration:`Concentración`,defrost_active:`Descongelación activa`,detected:`Detectado`,direction:`Dirección`,distance:`Distancia`,duration:`Duración`,event:`Evento`,fault:`Fallo`,fault_description:`Descripción del fallo`,firmware_revision:`Revisión de firmware`,frequency:`Frecuencia`,grid_export:`Exportación a la red`,grid_import:`Importación de la red`,hardware_revision:`Revisión de hardware`,hue:`Tono`,humidity:`Humedad`,illuminance:`Iluminancia`,in_use:`En uso`,infrared:`Infrarrojo`,last_event:`Último evento`,level:`Nivel`,life_remaining:`Vida útil restante`,link_quality:`Calidad del enlace`,locked:`Bloqueado`,manufacturer:`Fabricante`,media_type:`Tipo de medio`,mist_level:`Nivel de vapor`,model:`Modelo`,mode:`Modo`,mute:`Silencio`,natural_breeze:`Brisa natural`,obstruction:`Obstrucción`,on:`Encendido`,orientation:`Orientación`,over_current:`Sobrecorriente`,over_voltage:`Sobretensión`,over_power:`Sobrepotencia`,pan:`Panorámica`,peak_level:`Nivel máximo`,percentage:`Porcentaje`,position:`Posición`,power:`Potencia`,pressure:`Presión`,production:`Producción`,rate:`Tasa`,remaining:`Restante`,repeat:`Repetir`,reset:`Restablecer`,remote_key:`Tecla remota`,saturation:`Saturación`,serial_number:`Número de serie`,shuffle:`Aleatorio`,siren:`Sirena`,source:`Fuente`,source_label:`Etiqueta de fuente`,speed:`Velocidad`,state:`Estado`,status:`Estado`,swing:`Oscilación`,tampered:`Manipulado`,temperature:`Temperatura`,tilt:`Inclinación`,timer:`Temporizador`,track:`Pista`,treble:`Agudos`,triggered:`Activado`,type:`Tipo`,units:`Unidades`,voltage:`Voltaje`,volume:`Volumen`,warm_mist:`Vapor caliente`,water_tank_empty:`Depósito de agua vacío`,water_tank_full:`Depósito de agua lleno`,water_tank_level:`Nivel del depósito de agua`,zoom:`Zoom`,unit:`Unidad`,value:`Valor`}},hidden:{badge:`Oculto`,by:{system:`Sistema`,user:`Usuario`},hint:{system:`Oculto automáticamente porque un dispositivo virtual lo reemplazó. Volverá a aparecer cuando se elimine ese dispositivo virtual.`,user:`Oculto por un operador. Permanece oculto hasta que alguien lo vuelva a mostrar.`},unhide:`Mostrar`},validation:{status:{valid:`Válido`,invalid:`No válido`,unknown:`Desconocido`},filter:{valid:`Válido`,invalid:`No válido`,all:`Todos`},errors:`errores`,warnings:`advertencias`,issuesTitle:`Problemas de validación`,severity:{error:`Error`,warning:`Advertencia`},table:{severity:`Gravedad`,type:`Tipo`,message:`Mensaje`,channel:`Canal`},issueTypes:{missing_channel:`Canal faltante`,missing_property:`Propiedad faltante`,invalid_data_type:`Tipo de dato no válido`,invalid_permissions:`Permisos no válidos`,invalid_format:`Formato no válido`,unknown_channel:`Canal desconocido`,duplicate_channel:`Canal duplicado`,constraint_one_of_violation:`Violación de restricción (uno de)`,constraint_one_or_more_of_violation:`Violación de restricción (uno o más de)`,constraint_mutually_exclusive_violation:`Violación de restricción (mutuamente excluyente)`}},wizard:{steps:{discover:`Búsqueda`,confirm:`Confirmación`,results:`Resultados`},actions:{cancel:`Cancelar`,back:`Atrás`,next:`Siguiente`,adopt:`Añadir dispositivos`,addMore:`Añadir más`,done:`Hecho`},statuses:{checking:`Comprobando`,ready:`Listo`,needs_credentials:`Credenciales necesarias`,already_registered:`Ya añadido`,unsupported:`No compatible`,failed:`Fallido`,willCreate:`Se creará`,willUpdate:`Se actualizará`,created:`Creado`,updated:`Actualizado`,skipped:`Sin cambios`},columns:{name:`Nombre`,status:`Estado`,category:`Categoría`,change:`Acción`,error:`Error`},totals:{found:`Encontrados: {count}`,adoptable:`Adoptables: {count}`,alreadyAdded:`Ya añadidos: {count}`,unsupported:`No compatibles: {count}`,visible:`Visibles: {count}`},texts:{loading:`Cargando sesión de búsqueda...`,empty:`Todavía no se han encontrado dispositivos`,noSelection:`No se seleccionó ningún dispositivo`,resultsSuccess:`Todos los dispositivos seleccionados se añadieron correctamente`,resultsFailed:`Algunos dispositivos no se pudieron añadir`}},diagnostics:{title:`Diagnóstico de entradas de hardware`,capabilitiesTitle:`Capacidades de entrada`,supportedInteractions:`Interacciones admitidas`,noDiscreteEvents:`Entrada continua / analógica (sin eventos discretos)`,noCapabilities:`No hay capacidades de entrada disponibles`,liveEventsTitle:`Eventos en vivo`,clearEvents:`Borrar`,noOccurrences:`Aún no se han recibido eventos`,columnEvent:`Evento`,columnNativeType:`Tipo nativo`,columnTimestamp:`Recibido a las`,columnData:`Carga útil`}},"pl-PL":{menu:{title:`Urządzenia`},meta:{devices:{list:{title:`Lista urządzeń`},edit:{title:`Edytuj urządzenie: {device}`},add:{title:`Dodaj urządzenie`},detail:{title:`Urządzenie: {device}`},control:{title:`Steruj urządzeniem: {device}`}},channels:{list:{title:`Lista kanałów`},edit:{title:`Edytuj kanał: {channel}`},add:{title:`Dodaj kanał`},detail:{title:`Kanał: {channel}`}},channelsProperties:{edit:{title:`Edytuj właściwość kanału: {property}`},add:{title:`Dodaj właściwość kanału`}}},breadcrumbs:{devices:{list:`urządzenia`,add:`dodaj urządzenie`,edit:`edytuj urządzenie`,detail:`urządzenie: {device}`,control:`sterowanie: {device}`},channels:{list:`kanały`,add:`dodaj kanał`,edit:`edytuj kanał`,detail:`kanał: {channel}`},channelsProperties:{add:`dodaj właściwość kanału`,edit:`edytuj właściwość kanału`}},headings:{devices:{list:`Urządzenia`,add:`Dodaj urządzenie`,edit:`Edytuj urządzenie`,detail:`Urządzenie: {device}`,control:`Sterowanie: {device}`,remove:`Usunąć urządzenie?`,bulkRemove:`Usunąć urządzenia?`,bulkEnable:`Włączyć urządzenia?`,bulkDisable:`Wyłączyć urządzenia?`,adjustFilters:`Filtruj urządzenia`,selectPlugin:`Wymagana wtyczka urządzenia`,selectWizardPlugin:`Wybierz kreator urządzeń`},channels:{list:`Kanały`,add:`Dodaj kanał`,edit:`Edytuj kanał`,detail:`Kanał: {channel}`,remove:`Usunąć kanał?`,adjustFilters:`Filtruj kanały`,selectPlugin:`Wymagana wtyczka kanału`},channelsProperties:{add:`Dodaj właściwość kanału`,edit:`Edytuj właściwość kanału`,remove:`Usunąć właściwość kanału?`,adjustFilters:`Filtruj właściwości`},misc:{discard:`Odrzucić zmiany?`}},subHeadings:{devices:{list:`Zarządzaj urządzeniami smart panelu`,add:`Dodaj nowe urządzenie smart panelu`,edit:`Edytuj urządzenie smart panelu`,detail:`Zarządzaj urządzeniem smart panelu`,control:`Steruj urządzeniem smart panelu`,adjustFilters:`Dostosuj filtry wyświetlania`},channels:{list:`Zarządzaj kanałami urządzeń smart panelu`,add:`Dodaj nowy kanał urządzenia smart panelu`,edit:`Edytuj kanał urządzenia smart panelu`,detail:`Zarządzaj kanałem urządzenia smart panelu`,adjustFilters:`Dostosuj filtry wyświetlania`},channelsProperties:{add:`Dodaj nową właściwość kanału smart panelu`,edit:`Edytuj właściwość kanału smart panelu`,adjustFilters:`Dostosuj filtry wyświetlania`}},messages:{devices:{notFound:`Urządzenie, którego szukasz, nie istnieje lub mogło zostać usunięte.`,created:`Nowe urządzenie zostało pomyślnie dodane.`,notCreated:`Coś poszło nie tak. Nie udało się utworzyć urządzenia.`,edited:`Zmiany zapisane! Urządzenie: {device} zostało zaktualizowane.`,notEdited:`Coś poszło nie tak. Aktualizacja urządzenia nie powiodła się.`,removed:`Urządzenie: {device} zostało pomyślnie usunięte.`,removeCanceled:`Usunięcie urządzenia: {device} zostało anulowane.`,notRemoved:`Coś poszło nie tak i urządzenie: {device} nie zostało usunięte.`,deletedWhileEditing:`To urządzenie zostało usunięte i nie jest już dostępne.`,bulkRemoved:`Pomyślnie usunięto {count} urządzeń.`,bulkRemoveFailed:`Nie udało się usunąć {count} urządzeń.`,bulkRemoveCanceled:`Masowe usuwanie urządzeń zostało anulowane.`,bulkEnabled:`Pomyślnie włączono {count} urządzeń.`,bulkEnableFailed:`Nie udało się włączyć {count} urządzeń.`,bulkEnableCanceled:`Masowe włączanie urządzeń zostało anulowane.`,bulkDisabled:`Pomyślnie wyłączono {count} urządzeń.`,bulkDisableFailed:`Nie udało się wyłączyć {count} urządzeń.`,bulkDisableCanceled:`Masowe wyłączanie urządzeń zostało anulowane.`,notLoaded:`Nie udało się wczytać urządzenia. Spróbuj ponownie później.`,unhidden:`Urządzenie {device} jest znowu widoczne`,notUnhidden:`Nie udało się pokazać urządzenia {device}`,hiddenNotLoaded:`Nie udało się wczytać ukrytych urządzeń. Spróbuj ponownie później.`},channels:{notFound:`Kanał, którego szukasz, nie istnieje lub mógł zostać usunięty.`,notLoaded:`Nie udało się wczytać kanału. Spróbuj ponownie później.`,notLoadedForDevice:`Nie udało się wczytać kanałów dla tego urządzenia.`,created:`Nowy kanał został pomyślnie dodany.`,notCreated:`Coś poszło nie tak. Nie udało się utworzyć kanału.`,edited:`Zmiany zapisane! Kanał: {channel} został zaktualizowany.`,notEdited:`Coś poszło nie tak. Aktualizacja kanału nie powiodła się.`,removed:`Kanał: {channel} został pomyślnie usunięty.`,removeCanceled:`Usunięcie kanału: {channel} zostało anulowane.`,notRemoved:`Coś poszło nie tak i kanał: {channel} nie został usunięty.`,noMoreAllowed:`Wszystkie wymagane i opcjonalne kanały są przypisane do urządzenia. Nie można dodać więcej.`,deletedWhileEditing:`Ten kanał został usunięty i nie jest już dostępny.`},channelsProperties:{notFound:`Właściwość kanału, której szukasz, nie istnieje lub mogła zostać usunięta.`,notLoadedForChannel:`Nie udało się wczytać właściwości dla tego kanału.`,created:`Nowa właściwość kanału została pomyślnie dodana.`,notCreated:`Coś poszło nie tak. Nie udało się utworzyć właściwości kanału.`,edited:`Zmiany zapisane! Właściwość kanału: {property} została zaktualizowana.`,notEdited:`Coś poszło nie tak. Aktualizacja właściwości kanału nie powiodła się.`,removed:`Właściwość kanału: {property} została pomyślnie usunięta.`,removeCanceled:`Usunięcie właściwości kanału: {property} zostało anulowane.`,notRemoved:`Coś poszło nie tak i właściwość kanału: {property} nie została usunięta.`,noMoreAllowed:`Wszystkie wymagane i opcjonalne właściwości są przypisane do kanału. Nie można dodać więcej.`,deletedWhileEditing:`Ta właściwość kanału została usunięta i nie jest już dostępna.`},misc:{requestError:`Coś poszło nie tak, spróbuj ponownie później.`}},texts:JSON.parse(`{"devices":{"noDevices":"Nie masz skonfigurowanych żadnych urządzeń","noFilteredDevices":"Nie znaleziono urządzeń pasujących do aktywnych kryteriów filtra","loadingDevices":"Ładowanie urządzeń...","loadingDevice":"Ładowanie urządzenia...","confirmRemove":"Czy na pewno chcesz usunąć urządzenie: {device}? Tej operacji nie można cofnąć.","confirmBulkRemove":"Czy na pewno chcesz usunąć {count} urządzeń? Tej operacji nie można cofnąć.","confirmBulkEnable":"Czy na pewno chcesz włączyć {count} urządzeń?","confirmBulkDisable":"Czy na pewno chcesz wyłączyć {count} urządzeń?","description":{"generic":"","air_conditioner":"Urządzenie klimatyzacyjne to system chłodzenia z dodatkowymi funkcjami monitorowania środowiska i zarządzania energią.","air_dehumidifier":"Osuszacz powietrza to system zaprojektowany w celu zmniejszenia poziomu wilgotności w środowisku, zapewniając jednocześnie dodatkowe możliwości monitorowania i kontroli.","air_humidifier":"Nawilżacz powietrza to system zaprojektowany w celu zwiększenia poziomu wilgotności w otoczeniu, zapewniając jednocześnie dodatkowe możliwości monitorowania i kontroli.","air_purifier":"Oczyszczacz powietrza to system zaprojektowany w celu poprawy jakości powietrza w pomieszczeniach poprzez usuwanie zanieczyszczeń i monitorowanie warunków środowiskowych.","alarm":"","av_receiver":"Odbiornik AV to amplituner/wzmacniacz kina domowego z przełączaniem wejść i sterowaniem wyjściem głośników.","camera":"Urządzenie Camera to system nadzoru lub monitorowania przeznaczony do przechwytywania wideo i obrazów, z dodatkowymi funkcjami monitorowania środowiska i interakcji.","doorbell":"Urządzenie Doorbell to inteligentny system dzwonka do drzwi, który zapewnia wideo, audio i dodatkowe funkcje monitorowania w celu zwiększenia bezpieczeństwa w domu.","door":"Urządzenie Door reprezentuje zautomatyzowane lub monitorowane drzwi, takie jak bramy garażowe, drzwi wejściowe lub inne typy drzwi, z dodatkowymi funkcjami zapewniającymi bezpieczeństwo i świadomość ekologiczną.","fan":"Urządzenie Wentylator stanowi samodzielny lub zintegrowany system wentylatorów z funkcjami kontroli prędkości, regulacji kierunku i monitorowania energii.","game_console":"Konsola do gier to konsola do gier, którą można sterować pod kątem podstawowego zasilania/stanu aktywności oraz odtwarzania multimediów, jeśli jest to obsługiwane.","heating_unit":"Urządzenie grzewcze to system ogrzewania przestrzeni lub pomieszczenia przeznaczony do kontrolowania i monitorowania temperatury otoczenia, z opcjonalnymi funkcjami zarządzania energią i wilgotnością.","lighting":"Urządzenie oświetleniowe to system oświetleniowy zaprojektowany w celu zapewnienia oświetlenia z opcjonalnymi funkcjami śledzenia energii, kontroli jasności i oświetlenia adaptacyjnego w oparciu o warunki otoczenia.","lock":"Urządzenie Lock reprezentuje elektroniczny lub inteligentny system zamykania, zapewniający kontrolę i monitorowanie punktów dostępu, takich jak drzwi lub bramy.","media":"Urządzenie multimedialne to system multimedialny umożliwiający odtwarzanie, nagrywanie lub zarządzanie treściami audio i wideo.","outlet":"Urządzenie Outlet to gniazdko elektryczne z zaawansowanymi funkcjami monitorowania i sterowania, umożliwiającymi zdalną obsługę i śledzenie zużycia energii. Obsługuje jedno lub wiele gniazdek, co pozwala na elastyczne zarządzanie energią.","projector":"Urządzenie projektora to ekran projekcyjny wideo, który można włączać i wyłączać oraz przełączać pomiędzy źródłami sygnału wejściowego.","pump":"Urządzenie pompy reprezentuje pompę wody lub płynu z funkcją kontroli przepływu, monitorowania i śledzenia energii.","robot_vacuum":"Robot Vacuum to autonomiczne urządzenie czyszczące z możliwością śledzenia energii i monitorowania operacyjnego.","sensor":"Urządzenie Sensor stanowi wszechstronną jednostkę monitorującą zdolną do śledzenia różnych parametrów środowiskowych i bezpieczeństwa.","set_top_box":"Dekoder to urządzenie multimedialne podłączone do telewizora (przystawka do przesyłania strumieniowego, urządzenie IPTV lub pamięć HDMI), umożliwiające sterowanie odtwarzaniem i opcjonalny wybór źródła.","speaker":"Urządzenie głośnikowe reprezentuje system wyjścia audio zdolny do wytwarzania dźwięku i potencjalnie obsługujący funkcje odtwarzania multimediów i wejścia.","sprinkler":"Urządzenie zraszające to system nawadniający przeznaczony do kontrolowania przepływu wody i monitorowania warunków środowiskowych w celu optymalizacji podlewania.","streaming_service":"Urządzenie usługi przesyłania strumieniowego to oparty na chmurze odtwarzacz multimediów (np. Spotify), który zapewnia kontrolę odtwarzania i metadane bez konieczności fizycznego zasilania.","switcher":"Urządzenie Switcher to sterowane gniazdko lub przełącznik, który może przełączać zasilanie podłączonych urządzeń i monitorować zużycie energii. Obsługuje wiele gniazd do kontroli mocy.","television":"Urządzenie telewizyjne to inteligentny telewizor lub podobne urządzenie multimedialne, które można kontrolować i monitorować pod kątem funkcji audio i wyświetlania.","thermostat":"Urządzenie termostatyczne to system kontroli klimatu, który monitoruje i reguluje temperaturę oraz powiązane czynniki środowiskowe.","valve":"Urządzenie Valve to sterowany zawór używany do zarządzania przepływem cieczy lub gazów w różnych systemach.","water_heater":"Urządzenie do podgrzewania wody to system podgrzewania wody przeznaczony do podgrzewania i utrzymywania temperatury wody, z opcjonalnymi funkcjami monitorowania energii i wykrywania wycieków.","window_covering":"Urządzenie do zasłaniania okien reprezentuje zautomatyzowane zabiegi na oknach, takie jak rolety, rolety lub zasłony."},"selectPlugin":"Aby utworzyć nowe urządzenie, wybierz kompatybilną wtyczkę z listy. Wtyczki zapewniają niezbędne opcje konfiguracji dla określonego typu urządzenia.","noWizardForDevicePlugin":"Wtyczka urządzeń „{type}\\" nie udostępnia kreatora konfiguracji.","noChannels":"To urządzenie nie ma jeszcze żadnych kanałów. Kanały definiują wejścia lub wyjścia urządzenia. Utwórz nowy kanał, aby rozpocząć interakcję z tym urządzeniem.","category":"Kategoria","channelsCount":"Brak skonfigurowanych kanałów | Jeden skonfigurowany kanał | {count} skonfigurowanych kanałów","alertsCount":"Brak wykrytych alertów | Jeden wykryty alert | {count} wykrytych alertów","channels":"Kanały","alerts":"Alerty","status":"Status","validation":"Walidacja","noControllableProperties":"To urządzenie nie ma sterowalnych właściwości. Właściwości muszą mieć uprawnienia do odczytu i zapisu lub tylko do zapisu, aby można było nimi sterować.","logs":{"title":"Logi urządzenia","noLogs":"Brak dostępnych logów","noLogsDescription":"Nie zarejestrowano jeszcze żadnych logów dla tego urządzenia","noMessage":"(brak wiadomości)","noMoreEntries":"Brak więcej wpisów w logach","detail":"Szczegóły dziennika"}},"channels":{"noChannels":"Nie masz skonfigurowanych żadnych kanałów urządzeń","noFilteredChannels":"Nie znaleziono kanałów pasujących do aktywnych kryteriów filtra","loadingChannels":"Ładowanie kanałów...","loadingChannel":"Ładowanie kanału...","confirmRemove":"Czy na pewno chcesz usunąć kanał: {channel}? Tej operacji nie można cofnąć.","description":{"generic":"","air_particulate":"Monitoruje stężenie cząstek stałych (np. PM2,5 i PM10) w powietrzu, zapewniając wgląd w jakość powietrza i poziom zanieczyszczeń.","air_quality":"Monitoruje ogólną jakość powietrza za pomocą wskaźnika (0-500) lub wskaźnika poziomu, zapewniając uproszczoną ocenę warunków powietrza w pomieszczeniu.","alarm":"","battery":"Raportuje stan baterii urządzenia, w tym poziom, stan ładowania i stan operacyjny.","camera":"Zapewnia strumienie danych wideo i obrazów z kamer monitorujących lub monitorujących. Kanał ten umożliwia konfigurację i sterowanie urządzeniami kamerowymi, takimi jak kamery monitorujące czy monitory do opieki nad dziećmi.","carbon_dioxide":"Monitoruje poziom CO₂ w środowisku, aby śledzić jakość powietrza i wydajność wentylacji.","carbon_monoxide":"Wykrywa obecność tlenku węgla (CO), aby zapewnić bezpieczeństwo w zamkniętych przestrzeniach.","contact":"Śledzi stan otwarty lub zamknięty punktu kontaktowego, takiego jak drzwi, okno lub szafka.","cooler":"Steruje urządzeniami obniżającymi temperaturę powietrza lub cieczy, takimi jak klimatyzatory lub systemy chłodnicze.","dehumidifier":"Steruje urządzeniami osuszającymi, zarządza redukcją wilgotności za pomocą takich funkcji, jak wilgotność docelowa, tryby pracy i monitorowanie zbiornika wody.","device_information":"Ten kanał udostępnia metadane dotyczące urządzenia, w tym szczegółowe informacje o producencie, informacje o modelu i stany operacyjne.","doorbell":"Reprezentuje inteligentne dzwonki do drzwi, oferując takie funkcje, jak wykrywanie naciśnięcia przycisku i opcjonalna integracja kamery.","door":"Zarządza stanem otwarcia/zamknięcia drzwi, w tym garażowych i wejściowych.","electrical_energy":"Mierzy skumulowane zużycie energii w czasie w kilowatogodzinach (kWh).","electrical_generation":"Raportuje produkcję energii z fotowoltaiki (PV) lub innego źródła wytwarzania, śledząc skumulowaną energię wygenerowaną w kWh.","electrical_power":"Raportuje chwilowe wskaźniki mocy, takie jak napięcie, prąd, moc i częstotliwość, w celu monitorowania i diagnostyki w czasie rzeczywistym.","fan":"Steruje urządzeniami wentylatorowymi, w tym prędkością, oscylacją i trybami cyrkulacji powietrza.","filter":"Monitoruje stan i pozostałą żywotność filtrów powietrza lub wody, wskazując, kiedy konieczna jest ich wymiana.","flow":"Monitoruje natężenie przepływu płynu lub powietrza, zwykle mierzone w metrach sześciennych na godzinę (m³/h).","gas":"Wykrywa obecność gazu ziemnego lub innych gazów palnych, aby zapewnić bezpieczeństwo w zamkniętych przestrzeniach.","heater":"Zarządza urządzeniami grzewczymi, umożliwiając kontrolę ustawień temperatury i trybów.","humidifier":"Steruje urządzeniami nawilżającymi, zarządza wzrostem wilgotności za pomocą takich funkcji, jak wilgotność docelowa, kontrola poziomu mgły i monitorowanie zbiornika wody.","humidity":"Mierzy wilgotność względną w środowisku, wyrażoną w procentach.","illuminance":"Wykrywa poziom światła otoczenia, zwykle mierzony w luksach, w celu monitorowania jasności w pomieszczeniu.","leak":"Identyfikuje obecność wody lub innych cieczy, aby wykryć wycieki i zapobiec uszkodzeniom.","light":"Steruje urządzeniami oświetleniowymi, obsługując jasność, temperaturę barwową i regulację kolorów.","lock":"Zarządza stanem zablokowania/odblokowania fizycznych zamków drzwi, sejfów i innych bezpiecznych obszarów.","media_input":"Zarządza źródłami wejściowymi urządzeń multimedialnych, takich jak telewizory, projektory lub odbiorniki audio.","media_playback":"Zapewnia kontrolę odtwarzania dla urządzeń multimedialnych, z wyjątkiem regulacji głośności (obsługiwanej przez kanały głośnika i mikrofonu).","microphone":"Reprezentuje urządzenia wejściowe audio, zgłaszające aktywność lub przechwytujące dźwięk.","motion":"Wykrywa ruch w obszarze, aby wywołać alerty lub zautomatyzować reakcje.","nitrogen_dioxide":"Monitoruje stężenie NO₂ w powietrzu, często wykorzystywane w monitoringu środowiska i przemysłu.","occupancy":"Wykrywa obecność ludzi w przestrzeni w celach automatyzacji lub efektywności energetycznej.","outlet":"Steruje i monitoruje gniazdka elektryczne.","ozone":"Mierzy poziom ozonu (O₃) w powietrzu, często wykorzystywany w ocenie jakości środowiska.","pressure":"Podaje wartości ciśnienia atmosferycznego lub cieczy, zwykle mierzone w paskalach (kPa).","robot_vacuum":"Steruje odkurzaczami automatycznymi, udostępniając polecenia dotyczące uruchamiania, zatrzymywania, dokowania i monitorowania.","smoke":"Wykrywa dym w otoczeniu, uruchamiając alarmy lub alerty ze względów bezpieczeństwa.","speaker":"Steruje urządzeniami głośnikowymi, w tym głośnością, stanem wyciszenia i trybami wyjścia audio.","sulphur_dioxide":"Mierzy poziom dwutlenku siarki (SO₂) w powietrzu w celu monitorowania środowiska.","switcher":"Reprezentuje przełączniki binarne do sterowania urządzeniami, takimi jak światła, wentylatory lub urządzenia.","television":"Zapewnia kontrolę nad telewizorami, w tym źródłem sygnału wejściowego, jasnością i stanem zasilania.","projector":"Zapewnia kontrolę nad projektorami, w tym zasilaniem, źródłem sygnału wejściowego, jasnością i kluczami zdalnymi.","temperature":"Mierzy aktualną temperaturę otoczenia, podawaną w stopniach Celsjusza.","thermostat":"Zarządza systemami klimatyzacji, umożliwiając regulację ogrzewania, chłodzenia i ustawień wentylatora.","valve":"Steruje zaworami cieczy lub gazu, zarządzając stanami otwarcia/zamknięcia lub natężeniem przepływu.","volatile_organic_compounds":"Monitoruje stężenie LZO w powietrzu, aby śledzić zanieczyszczenie lub jakość powietrza.","window_covering":"Steruje zasłonami, takimi jak żaluzje, zasłony i okiennice, łącznie z regulacją położenia i pochylenia."},"selectPlugin":"Aby utworzyć nowy kanał, wybierz kompatybilną wtyczkę z listy. Wtyczki zapewniają niezbędne opcje konfiguracji dla określonego typu kanału."},"channelsProperties":{"noProperties":"Nie masz skonfigurowanych żadnych właściwości kanału","noFilteredProperties":"Nie znaleziono właściwości kanałów pasujących do aktywnych kryteriów filtra","loadingProperties":"Ładowanie właściwości kanałów...","loadingProperty":"Ładowanie właściwości kanału...","loadingChannels":"Ładowanie kanałów...","loadingChannel":"Ładowanie kanału...","confirmRemove":"Czy na pewno chcesz usunąć właściwość kanału: {property}? Tej operacji nie można cofnąć.","dataTypes":{"char":"8-bitowa liczba całkowita ze znakiem (-128 do 127).","uchar":"8-bitowa liczba całkowita bez znaku (0 do 255).","short":"16-bitowa liczba całkowita ze znakiem (-32 768 do 32 767).","ushort":"16-bitowa liczba całkowita bez znaku (0 do 65 535).","int":"32-bitowa liczba całkowita ze znakiem (-2 147 483 648 do 2 147 483 647).","uint":"32-bitowa liczba całkowita bez znaku (0 do 4 294 967 295).","float":"Liczba zmiennoprzecinkowa (np. 3,14, -0,001).","bool":"Wartość logiczna: prawda lub fałsz.","string":"Sekwencja znaków (np. „cześć”).","enum":"Wartość wyliczona wybrana z predefiniowanego zestawu.","unknown":"Nieznany lub nieokreślony typ danych."},"editValue":"Ręczna zmiana tej wartości jest dozwolona, ale może zostać automatycznie nadpisana, jeśli ta właściwość jest zmapowana na urządzenie. Używaj ostrożnie."},"misc":{"notSet":"Nie ustawiono","noValuesProvided":"Nie podano wartości","confirmDiscard":"Masz niezapisane zmiany. Czy na pewno chcesz je odrzucić?"}}`),fields:{devices:{search:{placeholder:`Szukaj urządzeń...`},plugin:{title:`Wtyczka urządzenia`,placeholder:`Wybierz wtyczkę urządzenia`},state:{title:`Stan`,placeholder:`Wybierz stan`},showHidden:{title:`Pokaż ukryte`},id:{title:`Identyfikator wewnętrzny`,placeholder:`ID urządzenia`},identifier:{title:`Identyfikator systemowy`,placeholder:`Identyfikator systemowy urządzenia`},category:{title:`Kategoria`,placeholder:`Kategoria urządzenia`,description:`O kategorii`,validation:{required:`Proszę wybrać kategorię urządzenia`}},name:{title:`Nazwa`,placeholder:`Nazwa urządzenia`,validation:{required:`Proszę podać nazwę urządzenia`}},description:{title:`Opis`,placeholder:`Opis urządzenia`},enabled:{title:`Włączone`,placeholder:`Włącz lub wyłącz urządzenie`},room:{title:`Pokój`,placeholder:`Wybierz pokój (opcjonalnie)`,hint:`Przypisz to urządzenie do fizycznej lokalizacji pokoju`},zones:{title:`Strefy`,placeholder:`Wybierz strefy (opcjonalnie)`,hint:`Przypisz to urządzenie do logicznych stref (np. Bezpieczeństwo, Na zewnątrz). Członkostwo w strefie piętra wynika z przypisania pokoju.`},validation:{title:`Walidacja`}},channels:{search:{placeholder:`Szukaj kanałów...`},plugin:{title:`Wtyczka kanału`,placeholder:`Wybierz wtyczkę kanału`},device:{title:`Urządzenie`,placeholder:`Urządzenie kanału`,description:`O urządzeniu`,validation:{required:`Proszę wybrać urządzenie kanału`}},id:{title:`Identyfikator wewnętrzny`,placeholder:`ID kanału`},category:{title:`Kategoria`,placeholder:`Kategoria kanału`,description:`O kategorii`,validation:{required:`Proszę wybrać kategorię kanału`}},name:{title:`Nazwa`,placeholder:`Nazwa kanału`,validation:{required:`Proszę podać nazwę kanału`}},description:{title:`Opis`,placeholder:`Opis kanału`}},channelsProperties:{search:{placeholder:`Szukaj właściwości...`},channel:{title:`Kanał`,placeholder:`Kanał właściwości`,description:`O kanale`,validation:{required:`Proszę wybrać kanał właściwości`}},id:{title:`Identyfikator wewnętrzny`,placeholder:`ID właściwości kanału`},category:{title:`Kategoria`,placeholder:`Kategoria właściwości kanału`,description:`O kategorii`,validation:{required:`Proszę wybrać kategorię właściwości kanału`}},name:{title:`Nazwa`,placeholder:`Nazwa właściwości kanału`},permissions:{title:`Uprawnienia`,placeholder:`Uprawnienia do odczytu i zapisu właściwości kanału`,validation:{required:`Proszę wybrać uprawnienia właściwości kanału`}},dataType:{title:`Typ danych`,placeholder:`Typ danych wartości właściwości kanału`,validation:{required:`Proszę wybrać typ danych właściwości kanału`}},unit:{title:`Jednostka`,placeholder:`Jednostka właściwości kanału`},format:{title:{enum:`Dozwolone wartości`,min:`Wartość minimalna`,max:`Wartość maksymalna`},placeholder:{enum:`Lista dozwolonych wartości`,min:`Minimalna dozwolona wartość`,max:`Maksymalna dozwolona wartość`},validation:{required:{enum:`Proszę podać listę dozwolonych wartości właściwości kanału`}}},invalid:{title:`Nieprawidłowa wartość`,placeholder:`Nieprawidłowa wartość właściwości kanału`},step:{title:`Wartość kroku`,placeholder:`Wartość kroku właściwości kanału`},enterValue:{title:`Wprowadź wartość`},value:{title:`Wartość`,placeholder:`Aktualna wartość właściwości kanału`}}},table:{devices:{columns:{name:{title:`Nazwa`},type:{title:`Typ`},state:{title:`Stan`},category:{title:`Kategoria`},enabled:{title:`Włączone`,values:{enabled:`Włączone`,disabled:`Wyłączone`}},validation:{title:`Walidacja`}}},channels:{columns:{name:{title:`Nazwa`},device:{title:`Urządzenie`},category:{title:`Kategoria`}}},channelsProperties:{columns:{name:{title:`Nazwa`},channel:{title:`Kanał`},category:{title:`Kategoria`},permissions:{title:`Uprawnienia`},dataType:{title:`Typ danych`,type:{enum:`Info wartości Enum`,numeric:`Info wartości numerycznej`}},value:{title:`Wartość`}}}},filters:{devices:{types:{title:`Filtruj według typu urządzenia`},states:{title:`Filtruj według stanu połączenia`},enabled:{title:`Filtruj według stanu urządzenia`,placeholder:`Wybierz stan urządzenia`,values:{enabled:`Włączone`,disabled:`Wyłączone`,all:`Wszystkie`}},category:{title:`Filtruj według kategorii urządzenia`,placeholder:`Wybierz jedną lub więcej`},validation:{title:`Filtruj według statusu walidacji`}},channels:{category:{title:`Filtruj według kategorii kanału`,placeholder:`Wybierz jedną lub więcej`}},channelsProperties:{category:{title:`Filtruj według kategorii właściwości`,placeholder:`Wybierz jedną lub więcej`},dataType:{title:`Filtruj według typu danych właściwości`},permission:{title:`Filtruj według uprawnień właściwości`}}},buttons:{add:{title:`Dodaj`},wizard:{title:`Kreator`},edit:{title:`Edytuj`},detail:{title:`Szczegóły`},discard:{title:`Odrzuć`},cancel:{title:`Anuluj`},close:{title:`Zamknij`},save:{title:`Zapisz`},change:{title:`Zmień`},remove:{title:`Usuń`},resetFilters:{title:`Resetuj filtry`},yes:{title:`Tak`},no:{title:`Nie`},reset:{title:`Resetuj`},addChannel:{title:`Dodaj kanał`},addProperty:{title:`Dodaj właściwość`},control:{title:`Sterowanie`},refresh:{title:`Odśwież`},loadMore:{title:`Załaduj więcej`},viewLogs:{title:`Pokaż logi`},back:{title:`Wróć`}},labels:{liveTail:`Podgląd na żywo`,paused:`Wstrzymane`,overview:`Przegląd`,validation:`Walidacja`,logs:`Dzienniki`},states:{online:`W Internecie`,offline:`Nieaktywny`,all:`Wszystkie`,connected:`Połączony`,disconnected:`Rozłączony`,init:`Zainicjalizowany`,ready:`Gotowy`,running:`Działa`,sleeping:`Uśpiony`,stopped:`Zatrzymany`,lost:`Utracony`,alert:`Alarm`,unknown:`Nieznany`},permissions:{ro:`Tylko do odczytu`,rw:`Odczyt i zapis`,wo:`Tylko do zapisu`,ev:`Zdarzenie`},dataTypes:{char:`Znak`,uchar:`Znak bez znaku`,short:`Krótka liczba całkowita`,ushort:`Krótka nieznakowana liczba całkowita`,int:`Liczba całkowita`,uint:`Nieznakowana liczba całkowita`,float:`Liczba zmiennoprzecinkowa`,bool:`Wartość logiczna`,string:`Ciąg znaków`,enum:`Wyliczenie`,unknown:`Nieznany`},categories:{devices:{generic:`Ogólne`,air_conditioner:`Klimatyzator`,air_dehumidifier:`Osuszacz powietrza`,air_humidifier:`Nawilżacz powietrza`,air_purifier:`Oczyszczacz powietrza`,alarm:`Alarm`,av_receiver:`Amplituner AV`,camera:`Kamera`,door:`Drzwi`,doorbell:`Dzwonek`,fan:`Wentylator`,game_console:`Konsola do gier`,heating_unit:`Grzejnik`,lighting:`Oświetlenie`,lock:`Zamek`,media:`Głoska bezdźwięczna`,outlet:`Gniazdko`,projector:`Projektor`,pump:`Pompa`,robot_vacuum:`Robot odkurzający`,sensor:`Czujnik`,set_top_box:`Dekoder`,speaker:`Głośnik`,sprinkler:`Zraszacz`,streaming_service:`Usługa streamingowa`,switcher:`Przełącznik`,television:`Telewizor`,terminal:`Terminal`,thermostat:`Termostat`,valve:`Zawór`,water_heater:`Podgrzewacz wody`,window_covering:`Osłona okienna`,input_controller:`Kontroler wejść`},channels:{generic:`Ogólny`,accelerometer:`Akcelerometr`,air_particulate:`Cząstki w powietrzu`,air_quality:`Jakość powietrza`,alarm:`Alarm`,battery:`Bateria`,button:`Przycisk`,buzzer:`Brzęczyk`,camera:`Kamera`,carbon_dioxide:`Dwutlenek węgla`,carbon_monoxide:`Tlenek węgla`,contact:`Kontakt`,cooler:`Chłodziarka`,dehumidifier:`Osuszacz`,device_information:`Informacje o urządzeniu`,door:`Drzwi`,doorbell:`Dzwonek`,electrical_energy:`Energia elektryczna`,electrical_generation:`Generacja energii`,electrical_power:`Moc elektryczna`,fan:`Wentylator`,filter:`Filtr`,flow:`Przepływ`,gas:`Gaz`,heater:`Grzejnik`,humidifier:`Nawilżacz`,humidity:`Wilgotność`,illuminance:`Natężenie oświetlenia`,indicator:`Wskaźnik`,leak:`Wyciek`,light:`Światło`,lock:`Zamek`,media_input:`Wejście multimedialne`,media_playback:`Odtwarzanie multimediów`,microphone:`Mikrofon`,motion:`Ruch`,nitrogen_dioxide:`Dwutlenek azotu`,occupancy:`Obecność`,outlet:`Gniazdko`,ozone:`Ozon`,pressure:`Ciśnienie`,robot_vacuum:`Robot odkurzający`,smoke:`Dym`,speaker:`Głośnik`,sulphur_dioxide:`Dwutlenek siarki`,switcher:`Przełącznik`,television:`Telewizor`,projector:`Projektor`,temperature:`Temperatura`,thermostat:`Termostat`,valve:`Zawór`,volatile_organic_compounds:`Lotne związki organiczne`,window_covering:`Osłona okienna`,analog_input:`Wejście analogowe`,binary_input:`Wejście binarne`},channelsProperties:{generic:`Ogólny`,acceleration_x:`Przyspieszenie X`,acceleration_y:`Przyspieszenie Y`,acceleration_z:`Przyspieszenie Z`,active:`Aktywny`,alarm_state:`Stan alarmowy`,album:`Album`,angle:`Kąt`,aqi:`AQI (indeks jakości powietrza)`,artist:`Artysta`,artwork_url:`Adres URL grafiki`,average_power:`Średnia moc`,balance:`Balansować`,bass:`Bas`,brightness:`Jasność`,change_needed:`Potrzebna zmiana`,child_lock:`Blokada dziecięca`,color_blue:`Kolor niebieski`,color_green:`Kolor zielony`,color_red:`Zarumienić`,color_temperature:`Temperatura barwowa`,color_white:`Kolor biały`,command:`Rozkaz`,connection_type:`Typ połączenia`,consumption:`Konsumpcja`,current:`Aktualny`,concentration:`Stężenie`,defrost_active:`Odszranianie aktywne`,detected:`Wykryto`,direction:`Kierunek`,distance:`Dystans`,duration:`Czas trwania`,event:`Wydarzenie`,fault:`Wada`,fault_description:`Opis usterki`,firmware_revision:`Wersja oprogramowania sprzętowego`,frequency:`Częstotliwość`,grid_export:`Eksport siatki`,grid_import:`Import siatki`,hardware_revision:`Wersja sprzętu`,hue:`Odcień`,humidity:`Wilgotność`,illuminance:`Natężenie oświetlenia`,in_use:`W użyciu`,infrared:`Podczerwony`,last_event:`Ostatnie wydarzenie`,level:`Poziom`,life_remaining:`Pozostało życie`,link_quality:`Jakość łącza`,locked:`Zamknięty`,manufacturer:`Producent`,media_type:`Typ nośnika`,mist_level:`Poziom mgły`,model:`Model`,mode:`Tryb`,mute:`Niemy`,natural_breeze:`Naturalny powiew`,obstruction:`Przeszkoda`,on:`On`,orientation:`Orientacja`,over_current:`Nadprąd`,over_voltage:`Nadmierne napięcie`,over_power:`Nad władzą`,pan:`Patelnia`,peak_level:`Poziom szczytowy`,percentage:`Procent`,position:`Pozycja`,power:`Moc`,pressure:`Ciśnienie`,production:`Produkcja`,rate:`Wskaźnik`,remaining:`Pozostały`,repeat:`Powtarzać`,reset:`Nastawić`,remote_key:`Klucz zdalny`,saturation:`Nasycenie`,serial_number:`Numer seryjny`,shuffle:`Człapać`,siren:`Syrena`,source:`Źródło`,source_label:`Etykieta źródłowa`,speed:`Prędkość`,state:`Państwo`,status:`Status`,swing:`Huśtać się`,tampered:`Naruszone`,temperature:`Temperatura`,tilt:`Nachylenie`,timer:`Regulator czasowy`,track:`Ścieżka`,treble:`Potroić`,triggered:`Wyzwolono`,type:`Typ`,units:`Jednostki`,voltage:`Woltaż`,volume:`Tom`,warm_mist:`Ciepła mgła`,water_tank_empty:`Zbiornik na wodę pusty`,water_tank_full:`Zbiornik na wodę pełny`,water_tank_level:`Poziom zbiornika wody`,zoom:`Brzęczenie`,unit:`Jednostka`,value:`Wartość`}},hidden:{badge:`Ukryte`,by:{system:`System`,user:`Użytkownik`},hint:{system:`Ukryte automatycznie, ponieważ zastąpiło je urządzenie wirtualne. Pojawi się ponownie po usunięciu tego urządzenia wirtualnego.`,user:`Ukryte przez operatora. Pozostaje ukryte, dopóki ktoś go nie odkryje.`},unhide:`Pokaż`},validation:{status:{valid:`Prawidłowy`,invalid:`Nieprawidłowy`,unknown:`Nieznany`},filter:{valid:`Prawidłowy`,invalid:`Nieprawidłowy`,all:`Wszystkie`},errors:`błędy`,warnings:`ostrzeżenia`,issuesTitle:`Problemy walidacji`,severity:{error:`Błąd`,warning:`Ostrzeżenie`},table:{severity:`Ważność`,type:`Typ`,message:`Wiadomość`,channel:`Kanał`},issueTypes:{missing_channel:`Brakujący kanał`,missing_property:`Brakująca właściwość`,invalid_data_type:`Nieprawidłowy typ danych`,invalid_permissions:`Nieprawidłowe uprawnienia`,invalid_format:`Nieprawidłowy format`,unknown_channel:`Nieznany kanał`,duplicate_channel:`Zduplikowany kanał`,constraint_one_of_violation:`Naruszenie ograniczenia (jeden z)`,constraint_one_or_more_of_violation:`Naruszenie ograniczenia (jeden lub więcej z)`,constraint_mutually_exclusive_violation:`Naruszenie ograniczenia (wzajemne wykluczenie)`}},wizard:{steps:{discover:`Wyszukiwanie`,confirm:`Potwierdzenie`,results:`Wyniki`},actions:{cancel:`Anuluj`,back:`Wstecz`,next:`Dalej`,adopt:`Dodaj urządzenia`,addMore:`Dodaj kolejne`,done:`Zakończ`},statuses:{checking:`Sprawdzanie`,ready:`Gotowe`,needs_credentials:`Wymagane dane logowania`,already_registered:`Już dodane`,unsupported:`Nieobsługiwane`,failed:`Niepowodzenie`,willCreate:`Zostanie utworzone`,willUpdate:`Zostanie zaktualizowane`,created:`Utworzono`,updated:`Zaktualizowano`,skipped:`Bez zmian`},columns:{name:`Nazwa`,status:`Status`,category:`Kategoria`,change:`Akcja`,error:`Błąd`},totals:{found:`Znaleziono: {count}`,adoptable:`Możliwe do dodania: {count}`,alreadyAdded:`Już dodano: {count}`,unsupported:`Nieobsługiwane: {count}`,visible:`Widoczne: {count}`},texts:{loading:`Ładowanie sesji wyszukiwania...`,empty:`Nie znaleziono jeszcze żadnych urządzeń`,noSelection:`Nie wybrano żadnych urządzeń`,resultsSuccess:`Wszystkie wybrane urządzenia zostały pomyślnie dodane`,resultsFailed:`Niektórych urządzeń nie udało się dodać`}},diagnostics:{title:`Diagnostyka wejść sprzętowych`,capabilitiesTitle:`Możliwości wejścia`,supportedInteractions:`Obsługiwane interakcje`,noDiscreteEvents:`Wejście ciągłe / analogowe (brak dyskretnych zdarzeń)`,noCapabilities:`Brak dostępnych możliwości wejścia`,liveEventsTitle:`Zdarzenia na żywo`,clearEvents:`Wyczyść`,noOccurrences:`Nie odebrano jeszcze żadnych zdarzeń`,columnEvent:`Zdarzenie`,columnNativeType:`Typ natywny`,columnTimestamp:`Odebrano o`,columnData:`Dane`}},"sk-SK":{menu:{title:`Zariadenia`},meta:{devices:{list:{title:`Zoznam zariadení`},edit:{title:`Upraviť zariadenie: {device}`},add:{title:`Pridať zariadenie`},detail:{title:`Zariadenie: {device}`},control:{title:`Ovládanie zariadenia: {device}`}},channels:{list:{title:`Zoznam kanálov`},edit:{title:`Upraviť kanál: {channel}`},add:{title:`Pridať kanál`},detail:{title:`Kanál: {channel}`}},channelsProperties:{edit:{title:`Upraviť vlastnosť kanála: {property}`},add:{title:`Pridať vlastnosť kanála`}}},breadcrumbs:{devices:{list:`zariadenia`,add:`pridať zariadenie`,edit:`upraviť zariadenie`,detail:`zariadenie: {device}`,control:`ovládanie: {device}`},channels:{list:`kanály`,add:`pridať kanál`,edit:`upraviť kanál`,detail:`kanál: {channel}`},channelsProperties:{add:`pridať vlastnosť kanála`,edit:`upraviť vlastnosť kanála`}},headings:{devices:{list:`Zariadenia`,add:`Pridať zariadenie`,edit:`Upraviť zariadenie`,detail:`Zariadenie: {device}`,control:`Ovládanie: {device}`,remove:`Odstrániť zariadenie?`,bulkRemove:`Odstrániť zariadenia?`,bulkEnable:`Povoliť zariadenia?`,bulkDisable:`Zakázať zariadenia?`,adjustFilters:`Filtrovať zariadenia`,selectPlugin:`Vyžaduje sa plugin zariadenia`,selectWizardPlugin:`Vybrať sprievodcu zariadením`},channels:{list:`Kanály`,add:`Pridať kanál`,edit:`Upraviť kanál`,detail:`Kanál: {channel}`,remove:`Odstrániť kanál?`,adjustFilters:`Filtrovať kanály`,selectPlugin:`Vyžaduje sa plugin kanála`},channelsProperties:{add:`Pridať vlastnosť kanála`,edit:`Upraviť vlastnosť kanála`,remove:`Odstrániť vlastnosť kanála?`,adjustFilters:`Filtrovať vlastnosti`},misc:{discard:`Zahodiť zmeny?`}},subHeadings:{devices:{list:`Spravujte zariadenia smart panelu`,add:`Pridať nové zariadenie smart panelu`,edit:`Upraviť zariadenie smart panelu`,detail:`Spravovať zariadenie smart panelu`,control:`Ovládať zariadenie smart panelu`,adjustFilters:`Upraviť filtre zobrazenia`},channels:{list:`Spravujte kanály zariadení smart panelu`,add:`Pridať nový kanál zariadenia smart panelu`,edit:`Upraviť kanál zariadenia smart panelu`,detail:`Spravovať kanál zariadenia smart panelu`,adjustFilters:`Upraviť filtre zobrazenia`},channelsProperties:{add:`Pridať novú vlastnosť kanála smart panelu`,edit:`Upraviť vlastnosť kanála smart panelu`,adjustFilters:`Upraviť filtre zobrazenia`}},messages:{devices:{notFound:`Zariadenie, ktoré hľadáte, neexistuje alebo bolo odstránené.`,created:`Nové zariadenie bolo úspešne pridané.`,notCreated:`Niečo sa pokazilo. Nepodarilo sa vytvoriť zariadenie.`,edited:`Zmeny uložené! Zariadenie: {device} bolo aktualizované.`,notEdited:`Niečo sa pokazilo. Aktualizácia zariadenia nebola úspešná.`,removed:`Zariadenie: {device} bolo úspešne odstránené.`,removeCanceled:`Odstránenie zariadenia: {device} bolo zrušené.`,notRemoved:`Niečo sa pokazilo a zariadenie: {device} nebolo odstránené.`,deletedWhileEditing:`Toto zariadenie bolo odstránené a už nie je dostupné.`,bulkRemoved:`{count} zariadení bolo úspešne odstránených.`,bulkRemoveFailed:`Nepodarilo sa odstrániť {count} zariadení.`,bulkRemoveCanceled:`Hromadné odstránenie zariadení bolo zrušené.`,bulkEnabled:`{count} zariadení bolo úspešne povolených.`,bulkEnableFailed:`Nepodarilo sa povoliť {count} zariadení.`,bulkEnableCanceled:`Hromadné povolenie zariadení bolo zrušené.`,bulkDisabled:`{count} zariadení bolo úspešne zakázaných.`,bulkDisableFailed:`Nepodarilo sa zakázať {count} zariadení.`,bulkDisableCanceled:`Hromadné zakázanie zariadení bolo zrušené.`,notLoaded:`Nepodarilo sa načítať zariadenie. Skúste to prosím neskôr.`,unhidden:`Zariadenie {device} je opäť viditeľné`,notUnhidden:`Zariadenie {device} sa nepodarilo zobraziť`,hiddenNotLoaded:`Skryté zariadenia sa nepodarilo načítať. Skúste to prosím neskôr.`},channels:{notFound:`Kanál, ktorý hľadáte, neexistuje alebo bol odstránený.`,notLoaded:`Nepodarilo sa načítať kanál. Skúste to prosím neskôr.`,notLoadedForDevice:`Nepodarilo sa načítať kanály pre toto zariadenie.`,created:`Nový kanál bol úspešne pridaný.`,notCreated:`Niečo sa pokazilo. Nepodarilo sa vytvoriť kanál.`,edited:`Zmeny uložené! Kanál: {channel} bol aktualizovaný.`,notEdited:`Niečo sa pokazilo. Aktualizácia kanála nebola úspešná.`,removed:`Kanál: {channel} bol úspešne odstránený.`,removeCanceled:`Odstránenie kanála: {channel} bolo zrušené.`,notRemoved:`Niečo sa pokazilo a kanál: {channel} nebol odstránený.`,noMoreAllowed:`Všetky požadované a voliteľné kanály sú priradené k zariadeniu. Žiadne ďalšie nie je možné pridať.`,deletedWhileEditing:`Tento kanál bol odstránený a už nie je dostupný.`},channelsProperties:{notFound:`Vlastnosť kanála, ktorú hľadáte, neexistuje alebo bola odstránená.`,notLoadedForChannel:`Nepodarilo sa načítať vlastnosti pre tento kanál.`,created:`Nová vlastnosť kanála bola úspešne pridaná.`,notCreated:`Niečo sa pokazilo. Nepodarilo sa vytvoriť vlastnosť kanála.`,edited:`Zmeny uložené! Vlastnosť kanála: {property} bola aktualizovaná.`,notEdited:`Niečo sa pokazilo. Aktualizácia vlastnosti kanála nebola úspešná.`,removed:`Vlastnosť kanála: {property} bola úspešne odstránená.`,removeCanceled:`Odstránenie vlastnosti kanála: {property} bolo zrušené.`,notRemoved:`Niečo sa pokazilo a vlastnosť kanála: {property} nebola odstránená.`,noMoreAllowed:`Všetky požadované a voliteľné vlastnosti sú priradené ku kanálu. Žiadne ďalšie nie je možné pridať.`,deletedWhileEditing:`Táto vlastnosť kanála bola odstránená a už nie je dostupná.`},misc:{requestError:`Niečo sa pokazilo, skúste to prosím neskôr.`}},texts:JSON.parse(`{"devices":{"noDevices":"Nemáte nakonfigurované žiadne zariadenie","noFilteredDevices":"Neboli nájdené žiadne zariadenia zodpovedajúce aktívnym filtrom","loadingDevices":"Načítavanie zariadení...","loadingDevice":"Načítavanie zariadenia...","confirmRemove":"Naozaj chcete odstrániť zariadenie: {device}? Toto sa nedá vrátiť.","confirmBulkRemove":"Naozaj chcete odstrániť {count} zariadení? Toto sa nedá vrátiť.","confirmBulkEnable":"Naozaj chcete povoliť {count} zariadení?","confirmBulkDisable":"Naozaj chcete zakázať {count} zariadení?","description":{"generic":"","air_conditioner":"Zariadenie Air Conditioner predstavuje chladiaci systém s ďalšími funkciami pre monitorovanie prostredia a energetický manažment.","air_dehumidifier":"Zariadenie Air Dehumidifier predstavuje systém určený na zníženie úrovne vlhkosti v prostredí a zároveň poskytuje ďalšie možnosti monitorovania a kontroly.","air_humidifier":"Zariadenie na zvlhčovanie vzduchu predstavuje systém určený na zvýšenie úrovne vlhkosti v prostredí a zároveň poskytuje ďalšie možnosti monitorovania a kontroly.","air_purifier":"Zariadenie Air Purifier predstavuje systém určený na zlepšenie kvality vzduchu v interiéri odstránením nečistôt a monitorovaním podmienok prostredia.","alarm":"","av_receiver":"Zariadenie AV Receiver predstavuje prijímač/zosilňovač domáceho kina s prepínaním vstupov a ovládaním výstupu reproduktorov.","camera":"Zariadenie Camera predstavuje dohľadový alebo monitorovací systém určený na snímanie videa a obrazu s ďalšími funkciami na monitorovanie prostredia a interakciu.","doorbell":"Zariadenie Doorbell predstavuje inteligentný systém zvončeka, ktorý poskytuje video, audio a ďalšie monitorovacie funkcie pre zvýšenie bezpečnosti domácnosti.","door":"Zariadenie Door predstavuje automatizované alebo monitorované dvere, ako sú garážové brány, vchodové dvere alebo iné typy dverí, s ďalšími funkciami pre bezpečnosť a environmentálne povedomie.","fan":"Zariadenie Ventilátor predstavuje samostatný alebo integrovaný ventilátorový systém s funkciami na ovládanie rýchlosti, nastavenie smeru a monitorovanie energie.","game_console":"Zariadenie Game Console predstavuje hernú konzolu, ktorú možno ovládať pre základný stav napájania/aktivity a prehrávanie médií, ak je to podporované.","heating_unit":"Zariadenie Heating Unit predstavuje systém vykurovania priestorov alebo miestností navrhnutý na riadenie a monitorovanie teploty prostredia s voliteľnými funkciami na riadenie energie a vlhkosti.","lighting":"Osvetľovacie zariadenie predstavuje osvetľovací systém navrhnutý tak, aby poskytoval osvetlenie s voliteľnými funkciami na sledovanie energie, ovládanie jasu a adaptívne osvetlenie na základe okolitých podmienok.","lock":"Zariadenie Lock predstavuje elektronický alebo inteligentný uzamykací systém, ktorý zabezpečuje ovládanie a monitorovanie prístupových bodov, ako sú dvere alebo brány.","media":"Mediálne zariadenie predstavuje multimediálny systém schopný prehrávať, nahrávať alebo spravovať audio a video obsah.","outlet":"Zariadenie Outlet predstavuje elektrickú zásuvku s pokročilými funkciami monitorovania a ovládania, ktoré umožňujú diaľkové ovládanie a sledovanie energie. ","projector":"Projektor predstavuje videoprojekčnú obrazovku, ktorú možno zapnúť/vypnúť a prepínať medzi vstupnými zdrojmi.","pump":"Zariadenie Pump predstavuje vodné alebo kvapalinové čerpadlo s funkcionalitou na riadenie prietoku, monitorovanie a sledovanie energie.","robot_vacuum":"Zariadenie Robot Vacuum predstavuje autonómne čistiace zariadenie s možnosťou sledovania energie a prevádzkového monitorovania.","sensor":"Zariadenie Sensor predstavuje všestrannú monitorovaciu jednotku schopnú sledovať rôzne environmentálne a bezpečnostné parametre.","set_top_box":"Zariadenie Set-top Box predstavuje mediálne zariadenie pripojené k TV (streamovací box, IPTV box alebo HDMI kľúč), ktoré poskytuje ovládanie prehrávania a voliteľný výber zdroja.","speaker":"Reproduktor predstavuje zvukový výstupný systém schopný produkovať zvuk a potenciálne podporuje prehrávanie médií a vstupné funkcie.","sprinkler":"Zariadenie Sprinkler predstavuje zavlažovací systém určený na riadenie prietoku vody a monitorovanie podmienok prostredia na optimalizáciu zavlažovania.","streaming_service":"Zariadenie Streaming Service predstavuje cloudový prehrávač médií (napr. Spotify), ktorý poskytuje ovládanie prehrávania a metadáta bez fyzického stavu napájania.","switcher":"Zariadenie Switcher predstavuje ovládateľnú zásuvku alebo spínač, ktorý dokáže prepínať napájanie pripojených zariadení a monitorovať spotrebu energie. ","television":"Televízne zariadenie predstavuje inteligentný televízor alebo podobné mediálne zariadenie, ktoré je možné ovládať a monitorovať z hľadiska jeho zvukovej a zobrazovacej funkcie.","thermostat":"Zariadenie Thermostat predstavuje systém ovládania klimatizácie, ktorý monitoruje a upravuje teplotu a súvisiace faktory prostredia.","valve":"Zariadenie Valve predstavuje ovládateľný ventil používaný na riadenie prietoku kvapalín alebo plynov v rôznych systémoch.","water_heater":"Zariadenie Water Heater predstavuje systém ohrevu vody určený na ohrev a udržiavanie teploty vody s voliteľnými funkciami na monitorovanie energie a detekciu úniku.","window_covering":"Zariadenie Window Covering predstavuje automatizované úpravy okien, ako sú žalúzie, rolety alebo závesy."},"selectPlugin":"Na vytvorenie nového zariadenia vyberte kompatibilný plugin zo zoznamu. Pluginy poskytujú potrebné konfiguračné možnosti pre konkrétny typ zariadenia.","noWizardForDevicePlugin":"Plugin zariadenia „{type}\\" neposkytuje sprievodcu nastavením.","noChannels":"Toto zariadenie zatiaľ nemá žiadne kanály. Kanály definujú vstupy alebo výstupy zariadenia. Vytvorte nový kanál na začatie interakcie s týmto zariadením.","category":"Kategória","channelsCount":"Žiadne kanály nakonfigurované | Jeden kanál nakonfigurovaný | {count} kanálov nakonfigurovaných","alertsCount":"Žiadne výstrahy zistené | Jedna výstraha zistená | {count} výstrah zistených","channels":"Kanály","alerts":"Výstrahy","status":"Stav","validation":"Validácia","noControllableProperties":"Toto zariadenie nemá žiadne ovládateľné vlastnosti. Vlastnosti musia mať oprávnenia čítanie-zápis alebo iba zápis na ovládanie.","logs":{"title":"Logy zariadenia","noLogs":"Žiadne logy nie sú dostupné","noLogsDescription":"Pre toto zariadenie ešte neboli zaznamenané žiadne logy","noMessage":"(žiadna správa)","noMoreEntries":"Žiadne ďalšie záznamy logov","detail":"Podrobnosti protokolu"}},"channels":{"noChannels":"Nemáte nakonfigurovaný žiadny kanál zariadenia","noFilteredChannels":"Neboli nájdené žiadne kanály zodpovedajúce aktívnym filtrom","loadingChannels":"Načítavanie kanálov...","loadingChannel":"Načítavanie kanála...","confirmRemove":"Naozaj chcete odstrániť kanál: {channel}? Toto sa nedá vrátiť.","description":{"generic":"","air_particulate":"Monitoruje koncentráciu pevných častíc (napr. PM2,5 a PM10) vo vzduchu a poskytuje prehľad o kvalite ovzdušia a úrovniach znečistenia.","air_quality":"Monitoruje celkovú kvalitu vzduchu pomocou indexu (0-500) alebo indikátora úrovne, čím poskytuje zjednodušené hodnotenie podmienok vnútorného vzduchu.","alarm":"","battery":"Hlási stav batérie zariadenia vrátane úrovne, stavu nabíjania a prevádzkového stavu.","camera":"Poskytuje video a obrazové dátové toky z monitorovacích alebo monitorovacích kamier. ","carbon_dioxide":"Monitoruje hladiny CO₂ v prostredí, aby sledoval kvalitu vzduchu a účinnosť vetrania.","carbon_monoxide":"Detekuje prítomnosť oxidu uhoľnatého (CO) na zaistenie bezpečnosti v uzavretých priestoroch.","contact":"Sleduje otvorený alebo zatvorený stav kontaktného bodu, ako sú dvere, okno alebo skrinka.","cooler":"Ovláda zariadenia, ktoré znižujú teplotu vzduchu alebo kvapaliny, ako sú klimatizácie alebo chladiace systémy.","dehumidifier":"Ovláda odvlhčovacie zariadenia, riadi zníženie vlhkosti pomocou funkcií, ako je cieľová vlhkosť, prevádzkové režimy a monitorovanie nádrže na vodu.","device_information":"Tento kanál poskytuje metadáta o zariadení vrátane podrobností o výrobcovi, informácií o modeli a prevádzkových stavoch.","doorbell":"Predstavuje inteligentné zvončeky, ktoré poskytujú funkcie, ako je detekcia stlačenia tlačidla a voliteľná integrácia kamery.","door":"Spravuje stavy otvorenia/zatvorenia dverí, vrátane garážových a vchodových dverí.","electrical_energy":"Meria kumulatívnu spotrebu energie v priebehu času v kilowatthodinách (kWh).","electrical_generation":"Uvádza výrobu energie z fotovoltaického (PV) alebo iného zdroja výroby, pričom sleduje kumulovanú energiu vyrobenú v kWh.","electrical_power":"Hlási metriky okamžitého výkonu, ako je napätie, prúd, výkon a frekvencia pre monitorovanie a diagnostiku v reálnom čase.","fan":"Ovláda zariadenia ventilátora vrátane rýchlosti, oscilácie a režimov cirkulácie vzduchu.","filter":"Monitoruje stav a zostávajúcu životnosť vzduchových alebo vodných filtrov a ukazuje, kedy je potrebná výmena.","flow":"Monitoruje rýchlosť prúdenia tekutiny alebo vzduchu, zvyčajne meranú v metroch kubických za hodinu (m³/h).","gas":"Detekuje prítomnosť zemného plynu alebo iných horľavých plynov na zaistenie bezpečnosti v uzavretých priestoroch.","heater":"Riadi vykurovacie zariadenia, umožňuje ovládanie nastavení teploty a režimov.","humidifier":"Ovláda zariadenia zvlhčovača, riadi zvýšenie vlhkosti pomocou funkcií, ako je cieľová vlhkosť, ovládanie úrovne hmly a monitorovanie nádrže na vodu.","humidity":"Meria relatívnu vlhkosť prostredia, uvádzanú v percentách.","illuminance":"Zisťuje úrovne okolitého svetla, zvyčajne merané v luxoch, na sledovanie jasu v priestore.","leak":"Identifikuje prítomnosť vody alebo iných kvapalín, aby zistila netesnosti a zabránila poškodeniu.","light":"Ovláda osvetľovacie zariadenia, podporuje jas, teplotu farieb a úpravy farieb.","lock":"Spravuje zamknutý/odomknutý stav fyzických zámkov dverí, trezorov alebo iných zabezpečených priestorov.","media_input":"Spravuje vstupné zdroje multimediálnych zariadení, ako sú televízory, projektory alebo audio prijímače.","media_playback":"Poskytuje ovládacie prvky prehrávania pre multimediálne zariadenia, s výnimkou ovládania hlasitosti (riadené kanálmi reproduktorov a mikrofónov).","microphone":"Predstavuje zvukové vstupné zariadenia, hlási aktivitu alebo zachytáva zvuk.","motion":"Detekuje pohyb v oblasti na spustenie výstrah alebo automatizáciu odpovedí.","nitrogen_dioxide":"Monitoruje koncentráciu NO₂ vo vzduchu, často sa používa v environmentálnom a priemyselnom monitorovaní.","occupancy":"Detekuje prítomnosť ľudí v priestore na účely automatizácie alebo energetickej účinnosti.","outlet":"Ovláda a monitoruje elektrické zásuvky.","ozone":"Meria hladiny ozónu (O₃) vo vzduchu, často sa používa pri hodnotení kvality životného prostredia.","pressure":"Uvádza hodnoty atmosférického tlaku alebo tlaku kvapaliny, zvyčajne merané v pascaloch (kPa).","robot_vacuum":"Ovláda robotické vysávače a poskytuje príkazy na spustenie, zastavenie, dokovanie a monitorovanie stavov.","smoke":"Detekuje dym v prostredí, spúšťa alarmy alebo výstrahy pre bezpečnosť.","speaker":"Ovláda reproduktorové zariadenia vrátane hlasitosti, stlmenia a režimov výstupu zvuku.","sulphur_dioxide":"Meria hladiny oxidu siričitého (SO₂) vo vzduchu na monitorovanie životného prostredia.","switcher":"Predstavuje binárne spínače na ovládanie zariadení, ako sú svetlá, ventilátory alebo spotrebiče.","television":"Poskytuje ovládanie televízorov vrátane vstupného zdroja, jasu a stavu napájania.","projector":"Poskytuje ovládanie projektorov vrátane napájania, vstupného zdroja, jasu a diaľkových tlačidiel.","temperature":"Meria aktuálnu teplotu v prostredí, uvádzanú v stupňoch Celzia.","thermostat":"Riadi systémy ovládania klimatizácie, umožňuje úpravy kúrenia, chladenia a nastavenia ventilátora.","valve":"Ovláda kvapalinové alebo plynové ventily, riadi stavy otvorené/zatvorené alebo prietoky.","volatile_organic_compounds":"Monitoruje koncentráciu VOC vo vzduchu na sledovanie znečistenia alebo kvality ovzdušia.","window_covering":"Ovláda kryty, ako sú žalúzie, závesy a žalúzie, vrátane nastavenia polohy a sklonu."},"selectPlugin":"Na vytvorenie nového kanála vyberte kompatibilný plugin zo zoznamu. Pluginy poskytujú potrebné konfiguračné možnosti pre konkrétny typ kanála."},"channelsProperties":{"noProperties":"Nemáte nakonfigurovanú žiadnu vlastnosť kanála","noFilteredProperties":"Neboli nájdené žiadne vlastnosti kanálov zodpovedajúce aktívnym filtrom","loadingProperties":"Načítavanie vlastností kanálov...","loadingProperty":"Načítavanie vlastnosti kanála...","loadingChannels":"Načítavanie kanálov...","loadingChannel":"Načítavanie kanála...","confirmRemove":"Naozaj chcete odstrániť vlastnosť kanála: {property}? Toto sa nedá vrátiť.","dataTypes":{"char":"8-bitové celé číslo so znamienkom (-128 až 127).","uchar":"8-bitové celé číslo bez znamienka (0 až 255).","short":"16-bitové celé číslo so znamienkom (-32 768 až 32 767).","ushort":"16-bitové celé číslo bez znamienka (0 až 65 535).","int":"32-bitové celé číslo so znamienkom (-2 147 483 648 až 2 147 483 647).","uint":"32-bitové celé číslo bez znamienka (0 až 4 294 967 295).","float":"Číslo s pohyblivou rádovou čiarkou (napr. 3,14, -0,001).","bool":"Booleovská hodnota: true alebo false.","string":"Postupnosť znakov (napr. „ahoj“).","enum":"Vyčíslená hodnota vybraná z preddefinovanej množiny.","unknown":"Neznámy alebo nešpecifikovaný typ údajov."},"editValue":"Manuálna zmena tejto hodnoty je povolená, ale môže byť automaticky prepísaná, ak je táto vlastnosť mapovaná na zariadenie. Používajte opatrne."},"misc":{"notSet":"Nie je nastavené","noValuesProvided":"Žiadne hodnoty neboli poskytnuté","confirmDiscard":"Máte neuložené zmeny. Naozaj ich chcete zahodiť?"}}`),fields:{devices:{search:{placeholder:`Vyhľadať zariadenia...`},plugin:{title:`Plugin zariadenia`,placeholder:`Vyberte plugin zariadenia`},state:{title:`Stav`,placeholder:`Vyberte stav`},showHidden:{title:`Zobraziť skryté`},id:{title:`Interný identifikátor`,placeholder:`ID zariadenia`},identifier:{title:`Systémový identifikátor`,placeholder:`Systémový identifikátor zariadenia`},category:{title:`Kategória`,placeholder:`Kategória zariadenia`,description:`O kategórii`,validation:{required:`Prosím vyberte kategóriu zariadenia`}},name:{title:`Názov`,placeholder:`Názov zariadenia`,validation:{required:`Prosím vyplňte názov zariadenia`}},description:{title:`Popis`,placeholder:`Popis zariadenia`},enabled:{title:`Povolené`,placeholder:`Povoliť alebo zakázať zariadenie`},room:{title:`Miestnosť`,placeholder:`Vyberte miestnosť (voliteľné)`,hint:`Priraďte toto zariadenie k fyzickej miestnosti`},zones:{title:`Zóny`,placeholder:`Vyberte zóny (voliteľné)`,hint:`Priraďte toto zariadenie k logickým zónam (napr. Bezpečnosť, Exteriér). Členstvo v zóne poschodia je odvodené z priradenia miestnosti.`},validation:{title:`Validácia`}},channels:{search:{placeholder:`Vyhľadať kanály...`},plugin:{title:`Plugin kanála`,placeholder:`Vyberte plugin kanála`},device:{title:`Zariadenie`,placeholder:`Zariadenie kanála`,description:`O zariadení`,validation:{required:`Prosím vyberte zariadenie kanála`}},id:{title:`Interný identifikátor`,placeholder:`ID kanála`},category:{title:`Kategória`,placeholder:`Kategória kanála`,description:`O kategórii`,validation:{required:`Prosím vyberte kategóriu kanála`}},name:{title:`Názov`,placeholder:`Názov kanála`,validation:{required:`Prosím vyplňte názov kanála`}},description:{title:`Popis`,placeholder:`Popis kanála`}},channelsProperties:{search:{placeholder:`Vyhľadať vlastnosti...`},channel:{title:`Kanál`,placeholder:`Kanál vlastnosti kanála`,description:`O kanáli`,validation:{required:`Prosím vyberte kanál vlastnosti kanála`}},id:{title:`Interný identifikátor`,placeholder:`ID vlastnosti kanála`},category:{title:`Kategória`,placeholder:`Kategória vlastnosti kanála`,description:`O kategórii`,validation:{required:`Prosím vyberte kategóriu vlastnosti kanála`}},name:{title:`Názov`,placeholder:`Názov vlastnosti kanála`},permissions:{title:`Oprávnenia`,placeholder:`Oprávnenia čítania a zápisu vlastnosti kanála`,validation:{required:`Prosím vyberte oprávnenia vlastnosti kanála`}},dataType:{title:`Dátový typ`,placeholder:`Dátový typ hodnoty vlastnosti kanála`,validation:{required:`Prosím vyberte dátový typ vlastnosti kanála`}},unit:{title:`Jednotka`,placeholder:`Jednotka vlastnosti kanála`},format:{title:{enum:`Povolené hodnoty`,min:`Minimálna hodnota`,max:`Maximálna hodnota`},placeholder:{enum:`Zoznam povolených hodnôt`,min:`Minimálna povolená hodnota`,max:`Maximálna povolená hodnota`},validation:{required:{enum:`Prosím vyplňte zoznam povolených hodnôt vlastnosti kanála`}}},invalid:{title:`Neplatná hodnota`,placeholder:`Neplatná hodnota vlastnosti kanála`},step:{title:`Hodnota kroku`,placeholder:`Hodnota kroku vlastnosti kanála`},enterValue:{title:`Zadajte hodnotu`},value:{title:`Hodnota`,placeholder:`Aktuálna hodnota vlastnosti kanála`}}},table:{devices:{columns:{name:{title:`Názov`},type:{title:`Typ`},state:{title:`Stav`},category:{title:`Kategória`},enabled:{title:`Povolené`,values:{enabled:`Povolené`,disabled:`Zakázané`}},validation:{title:`Validácia`}}},channels:{columns:{name:{title:`Názov`},device:{title:`Zariadenie`},category:{title:`Kategória`}}},channelsProperties:{columns:{name:{title:`Názov`},channel:{title:`Kanál`},category:{title:`Kategória`},permissions:{title:`Oprávnenia`},dataType:{title:`Dátový typ`,type:{enum:`Info o enum hodnote`,numeric:`Info o číselnej hodnote`}},value:{title:`Hodnota`}}}},filters:{devices:{types:{title:`Filtrovať podľa typu zariadenia`},states:{title:`Filtrovať podľa stavu pripojenia`},enabled:{title:`Filtrovať podľa stavu zariadenia`,placeholder:`Vyberte stav zariadenia`,values:{enabled:`Povolené`,disabled:`Zakázané`,all:`Všetky`}},category:{title:`Filtrovať podľa kategórie zariadenia`,placeholder:`Vyberte jednu alebo viac`},validation:{title:`Filtrovať podľa stavu validácie`}},channels:{category:{title:`Filtrovať podľa kategórie kanála`,placeholder:`Vyberte jednu alebo viac`}},channelsProperties:{category:{title:`Filtrovať podľa kategórie vlastnosti`,placeholder:`Vyberte jednu alebo viac`},dataType:{title:`Filtrovať podľa dátového typu vlastnosti`},permission:{title:`Filtrovať podľa oprávnenia vlastnosti`}}},buttons:{add:{title:`Pridať`},wizard:{title:`Sprievodca`},edit:{title:`Upraviť`},detail:{title:`Detail`},discard:{title:`Zahodiť`},cancel:{title:`Zrušiť`},close:{title:`Zavrieť`},save:{title:`Uložiť`},change:{title:`Zmeniť`},remove:{title:`Odstrániť`},resetFilters:{title:`Resetovať filtre`},yes:{title:`Áno`},no:{title:`Nie`},reset:{title:`Resetovať`},addChannel:{title:`Pridať kanál`},addProperty:{title:`Pridať vlastnosť`},control:{title:`Ovládať`},refresh:{title:`Obnoviť`},loadMore:{title:`Načítať viac`},viewLogs:{title:`Zobraziť logy`},back:{title:`Späť`}},labels:{liveTail:`Živý prenos`,paused:`Pozastavené`,overview:`Prehľad`,validation:`Validácia`,logs:`Protokoly`},states:{online:`Online`,offline:`Offline`,all:`Všetky`,connected:`Pripojený`,disconnected:`Odpojený`,init:`Inicializovaný`,ready:`Pripravený`,running:`Beží`,sleeping:`Spí`,stopped:`Zastavený`,lost:`Stratený`,alert:`Výstraha`,unknown:`Neznámy`},permissions:{ro:`Iba čítanie`,rw:`Čítanie a zápis`,wo:`Iba zápis`,ev:`Udalosť`},dataTypes:{char:`Znak`,uchar:`Neznamienkový znak`,short:`Krátke celé číslo`,ushort:`Neznamienkové krátke celé číslo`,int:`Celé číslo`,uint:`Neznamienkové celé číslo`,float:`Desatinné číslo`,bool:`Logická hodnota`,string:`Reťazec`,enum:`Výpočet`,unknown:`Neznámy`},categories:{devices:{generic:`Všeobecné`,air_conditioner:`Klimatizácia`,air_dehumidifier:`Odvlhčovač vzduchu`,air_humidifier:`Zvlhčovač vzduchu`,air_purifier:`Čistička vzduchu`,alarm:`Alarm`,av_receiver:`AV prijímač`,camera:`Kamera`,door:`Dvere`,doorbell:`Zvonček`,fan:`Ventilátor`,game_console:`Herná konzola`,heating_unit:`Vykurovacia jednotka`,lighting:`Osvetlenie`,lock:`Zámok`,media:`Médiá`,outlet:`Zásuvka`,projector:`Projektor`,pump:`Čerpadlo`,robot_vacuum:`Robotický vysávač`,sensor:`Senzor`,set_top_box:`Set-top box`,speaker:`Reproduktor`,sprinkler:`Zavlažovač`,streaming_service:`Streamovacia služba`,switcher:`Prepínač`,television:`Televízor`,terminal:`Terminál`,thermostat:`Termostat`,valve:`Ventil`,water_heater:`Ohrievač vody`,window_covering:`Okenné tienenie`,input_controller:`Vstupný ovládač`},channels:{generic:`Všeobecné`,accelerometer:`Akcelerometer`,air_particulate:`Vzduchové častice`,air_quality:`Kvalita vzduchu`,alarm:`Alarm`,battery:`Batéria`,button:`Tlačidlo`,buzzer:`Bzučiak`,camera:`Fotoaparát`,carbon_dioxide:`Oxid uhličitý`,carbon_monoxide:`Oxid uhoľnatý`,contact:`Kontaktovať`,cooler:`Chladič`,dehumidifier:`Odvlhčovač`,device_information:`Informácie o zariadení`,door:`Dvere`,doorbell:`Zvonček`,electrical_energy:`Elektrická energia`,electrical_generation:`Výroba elektriny`,electrical_power:`Elektrická energia`,fan:`Ventilátor`,filter:`Filter`,flow:`Prietok`,gas:`Plyn`,heater:`Ohrievač`,humidifier:`Zvlhčovač`,humidity:`Vlhkosť`,illuminance:`Osvetlenie`,indicator:`Indikátor`,leak:`Netesnosť`,light:`Svetlo`,lock:`Zamknúť`,media_input:`Vstup médií`,media_playback:`Prehrávanie médií`,microphone:`Mikrofón`,motion:`Pohyb`,nitrogen_dioxide:`Oxid dusičitý`,occupancy:`obsadenosť`,outlet:`Outlet`,ozone:`Ozón`,pressure:`Tlak`,robot_vacuum:`Robotický vysávač`,smoke:`Dym`,speaker:`Hovorca`,sulphur_dioxide:`Oxid siričitý`,switcher:`Prepínač`,television:`Televízia`,projector:`Projektor`,temperature:`Teplota`,thermostat:`Termostat`,valve:`Ventil`,volatile_organic_compounds:`Prchavé organické zlúčeniny`,window_covering:`Obloženie okien`,analog_input:`Analógový vstup`,binary_input:`Binárny vstup`},channelsProperties:{generic:`Generic`,acceleration_x:`Zrýchlenie X`,acceleration_y:`Zrýchlenie Y`,acceleration_z:`Zrýchlenie Z`,active:`Aktívne`,alarm_state:`Stav alarmu`,album:`album`,angle:`Uhol`,aqi:`AQI (index kvality ovzdušia)`,artist:`Umelec`,artwork_url:`Adresa URL umeleckého diela`,average_power:`Priemerný výkon`,balance:`Zostatok`,bass:`Bass`,brightness:`Jas`,change_needed:`Potrebná zmena`,child_lock:`Detská poistka`,color_blue:`Farba modrá`,color_green:`Farba zelená`,color_red:`Farba červená`,color_temperature:`Teplota farby`,color_white:`Farba biela`,command:`Príkaz`,connection_type:`Typ pripojenia`,consumption:`Spotreba`,current:`Aktuálne`,concentration:`Koncentrácia`,defrost_active:`Rozmrazovanie aktívne`,detected:`Zistené`,direction:`Smer`,distance:`Vzdialenosť`,duration:`Trvanie`,event:`Udalosť`,fault:`Chyba`,fault_description:`Popis poruchy`,firmware_revision:`Revízia firmvéru`,frequency:`Frekvencia`,grid_export:`Export mriežky`,grid_import:`Import mriežky`,hardware_revision:`Revízia hardvéru`,hue:`Hue`,humidity:`Vlhkosť`,illuminance:`Osvetlenie`,in_use:`Používa sa`,infrared:`Infračervené`,last_event:`Posledná udalosť`,level:`úroveň`,life_remaining:`Zostávajúci život`,link_quality:`Kvalita odkazu`,locked:`Zamknuté`,manufacturer:`Výrobca`,media_type:`Typ média`,mist_level:`Úroveň hmly`,model:`Model`,mode:`Režim`,mute:`Stlmiť`,natural_breeze:`Prirodzený vánok`,obstruction:`Obštrukcia`,on:`On`,orientation:`Orientácia`,over_current:`Nad prúdom`,over_voltage:`Prepätie`,over_power:`Nad mocou`,pan:`Panvica`,peak_level:`Špičková úroveň`,percentage:`Percento`,position:`pozícia`,power:`Sila`,pressure:`Tlak`,production:`Výroba`,rate:`ohodnotiť`,remaining:`Zostávajúce`,repeat:`Opakujte`,reset:`Resetovať`,remote_key:`Diaľkový kľúč`,saturation:`Sýtosť`,serial_number:`Sériové číslo`,shuffle:`Zamiešať`,siren:`Siréna`,source:`Zdroj`,source_label:`Označenie zdroja`,speed:`Rýchlosť`,state:`štátu`,status:`Stav`,swing:`Hojdačka`,tampered:`falšované`,temperature:`Teplota`,tilt:`Nakloniť`,timer:`Časovač`,track:`Sledovať`,treble:`Výšky`,triggered:`Spustené`,type:`Typ`,units:`Jednotky`,voltage:`Napätie`,volume:`Objem`,warm_mist:`Teplá hmla`,water_tank_empty:`Prázdna nádrž na vodu`,water_tank_full:`Nádrž na vodu plná`,water_tank_level:`Úroveň nádrže na vodu`,zoom:`Zoom`,unit:`Jednotka`,value:`Hodnota`}},hidden:{badge:`Skryté`,by:{system:`Systém`,user:`Používateľ`},hint:{system:`Skryté automaticky, pretože ho nahradilo virtuálne zariadenie. Znova sa zobrazí, keď bude toto virtuálne zariadenie odstránené.`,user:`Skryté operátorom. Zostáva skryté, kým ho niekto znova nezobrazí.`},unhide:`Zobraziť`},validation:{status:{valid:`Platný`,invalid:`Neplatný`,unknown:`Neznámy`},filter:{valid:`Platný`,invalid:`Neplatný`,all:`Všetky`},errors:`chyby`,warnings:`varovania`,issuesTitle:`Problémy validácie`,severity:{error:`Chyba`,warning:`Varovanie`},table:{severity:`Závažnosť`,type:`Typ`,message:`Správa`,channel:`Kanál`},issueTypes:{missing_channel:`Chýbajúci kanál`,missing_property:`Chýbajúca vlastnosť`,invalid_data_type:`Neplatný dátový typ`,invalid_permissions:`Neplatné oprávnenia`,invalid_format:`Neplatný formát`,unknown_channel:`Neznámy kanál`,duplicate_channel:`Duplicitný kanál`,constraint_one_of_violation:`Porušenie obmedzenia (jeden z)`,constraint_one_or_more_of_violation:`Porušenie obmedzenia (jeden alebo viac z)`,constraint_mutually_exclusive_violation:`Porušenie obmedzenia (vzájomne vylučujúce)`}},wizard:{steps:{discover:`Vyhľadávanie`,confirm:`Potvrdenie`,results:`Výsledky`},actions:{cancel:`Zrušiť`,back:`Späť`,next:`Ďalej`,adopt:`Pridať zariadenia`,addMore:`Pridať ďalšie`,done:`Hotovo`},statuses:{checking:`Overuje sa`,ready:`Pripravené`,needs_credentials:`Vyžaduje prihlasovacie údaje`,already_registered:`Už pridané`,unsupported:`Nepodporované`,failed:`Zlyhalo`,willCreate:`Bude vytvorené`,willUpdate:`Bude aktualizované`,created:`Vytvorené`,updated:`Aktualizované`,skipped:`Bez zmien`},columns:{name:`Názov`,status:`Stav`,category:`Kategória`,change:`Akcia`,error:`Chyba`},totals:{found:`Nájdené: {count}`,adoptable:`Možno pridať: {count}`,alreadyAdded:`Už pridané: {count}`,unsupported:`Nepodporované: {count}`,visible:`Zobrazené: {count}`},texts:{loading:`Načítavanie relácie vyhľadávania...`,empty:`Zatiaľ neboli nájdené žiadne zariadenia`,noSelection:`Neboli vybrané žiadne zariadenia`,resultsSuccess:`Všetky vybrané zariadenia boli úspešne pridané`,resultsFailed:`Niektoré zariadenia sa nepodarilo pridať`}},diagnostics:{title:`Diagnostika hardvérových vstupov`,capabilitiesTitle:`Možnosti vstupu`,supportedInteractions:`Podporované interakcie`,noDiscreteEvents:`Kontinuálny / analógový vstup (žiadne diskrétne udalosti)`,noCapabilities:`Nie sú k dispozícii žiadne možnosti vstupu`,liveEventsTitle:`Živé udalosti`,clearEvents:`Vymazať`,noOccurrences:`Zatiaľ neboli prijaté žiadne udalosti`,columnEvent:`Udalosť`,columnNativeType:`Natívny typ`,columnTimestamp:`Čas prijatia`,columnData:`Dáta`}}},ye=[{path:`devices`,name:V.DEVICES,component:()=>I(()=>import(`./view-devices-DmY7N3yg.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:()=>r.global.t(`devicesModule.menu.title`),icon:`mdi:devices`,menu:7e3},children:[{path:`add`,name:V.DEVICES_ADD,component:()=>I(()=>import(`./view-device-add-ConY6A3O.js`),__vite__mapDeps([65,1,2,3,4,5,6,18,11,12,13,14,15,16,17,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new device`,icon:`mdi:add-circle`}},{path:`wizard`,redirect:{name:V.DEVICES}},{path:`wizard/:type`,name:V.DEVICES_WIZARD,component:()=>I(()=>import(`./view-devices-wizard-CpBPvjQG.js`),__vite__mapDeps([68,2,1,3,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Devices Wizard`,icon:`mdi:wizard-hat`}},{path:`:id`,name:V.DEVICES_EDIT,component:()=>I(()=>import(`./view-device-edit-DlTT1pdp.js`),__vite__mapDeps([69,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit device`,icon:`mdi:pencil-circle`}}]},{path:`device/:id`,name:V.DEVICE,component:()=>I(()=>import(`./view-device-DY59nE9X.js`),__vite__mapDeps([70,1,2,3,4,5,6,12,13,14,15,18,20,21,7,8,9,10,11,16,17,19,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,71,72])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Device detail`,icon:`mdi:devices`},children:[{path:`edit`,name:V.DEVICE_EDIT,component:()=>I(()=>import(`./view-device-edit-DlTT1pdp.js`),__vite__mapDeps([69,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit device`,icon:`mdi:pencil-circle`}},{path:`control`,name:V.DEVICE_CONTROL,component:()=>I(()=>import(`./view-device-control-pOn2Kk1U.js`),__vite__mapDeps([73,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Control device`,icon:`mdi:tune-variant`}},{path:`channel/add`,name:V.DEVICE_ADD_CHANNEL,component:()=>I(()=>import(`./view-channel-add-qkJOyzjo.js`),__vite__mapDeps([74,1,2,3,4,5,6,18,11,12,13,14,15,16,17,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!1,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel`,icon:`mdi:plus-circle`}},{path:`channel/:channelId`,name:V.DEVICE_EDIT_CHANNEL,component:()=>I(()=>import(`./view-channel-edit-BbJVMFcx.js`),__vite__mapDeps([75,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({id:e.params.channelId}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel`,icon:`mdi:pencil-circle`}},{path:`channel/:channelId/property/add`,name:V.DEVICE_CHANNEL_ADD_PROPERTY,component:()=>I(()=>import(`./view-channel-property-add-B5FzmyG8.js`),__vite__mapDeps([76,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({channelId:e.params.channelId}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel property`,icon:`mdi:plus-circle`}},{path:`channel/:channelId/property/:propertyId`,name:V.DEVICE_CHANNEL_EDIT_PROPERTY,component:()=>I(()=>import(`./view-channel-property-edit-u8L_g5sR.js`),__vite__mapDeps([77,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({id:e.params.propertyId,channelId:e.params.channelId}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel property`,icon:`mdi:pencil-circle`}}]},{path:`channels`,name:V.CHANNELS,component:()=>I(()=>import(`./view-channels-DDf57QKp.js`),__vite__mapDeps([78,1,2,3,4,5,6,10,9,11,12,13,14,15,16,17,18,19,20,21,7,22,23,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Channels`,icon:`mdi:chip`},children:[{path:`add`,name:V.CHANNELS_ADD,component:()=>I(()=>import(`./view-channel-add-qkJOyzjo.js`),__vite__mapDeps([74,1,2,3,4,5,6,18,11,12,13,14,15,16,17,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!1,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel`,icon:`mdi:add-circle`}},{path:`:id`,name:V.CHANNELS_EDIT,component:()=>I(()=>import(`./view-channel-edit-BbJVMFcx.js`),__vite__mapDeps([75,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel`,icon:`mdi:pencil-circle`}}]},{path:`channel/:id`,name:V.CHANNEL,component:()=>I(()=>import(`./view-channel-C__G2w5c.js`),__vite__mapDeps([79,1,2,3,4,5,6,10,9,11,12,13,14,15,16,17,18,19,20,21,7,22,23,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Channel detail`,icon:`mdi:chip`},children:[{path:`edit`,name:V.CHANNEL_EDIT,component:()=>I(()=>import(`./view-channel-edit-BbJVMFcx.js`),__vite__mapDeps([75,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:!0,meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel`,icon:`mdi:pencil-circle`}},{path:`property/add`,name:V.CHANNEL_ADD_PROPERTY,component:()=>I(()=>import(`./view-channel-property-add-B5FzmyG8.js`),__vite__mapDeps([76,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({channelId:e.params.id}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Add new channel property`,icon:`mdi:plus-circle`}},{path:`property/:propertyId`,name:V.CHANNEL_EDIT_PROPERTY,component:()=>I(()=>import(`./view-channel-property-edit-u8L_g5sR.js`),__vite__mapDeps([77,1,2,3,4,5,6,11,12,13,14,15,16,17,18,19,20,21,7,22,23,10,9,24,25,26,27,28,8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,66,67])),props:e=>({id:e.params.propertyId,channelId:e.params.id}),meta:{guards:{authenticated:!0,roles:[o.admin,o.owner]},title:`Edit channel property`,icon:`mdi:pencil-circle`}}]}],be=m(`devices_module-channel_input_occurrences`,()=>{let t=c(),n=e([]);return{occurrences:n,onEvent:e=>{if(!e||typeof e!=`object`||typeof e.id!=`string`){t.warn(`Received invalid channel input occurrence payload:`,e);return}let r={id:String(e.id),deviceId:String(e.deviceId??e.device_id??``),channelId:String(e.channelId??e.channel_id??``),propertyId:e.propertyId||e.property_id?String(e.propertyId??e.property_id):null,deviceCategory:e.deviceCategory||e.device_category?String(e.deviceCategory??e.device_category):null,channelCategory:e.channelCategory||e.channel_category?String(e.channelCategory??e.channel_category):null,propertyCategory:e.propertyCategory||e.property_category?String(e.propertyCategory??e.property_category):null,event:String(e.event??``),timestamp:String(e.timestamp??new Date().toISOString()),sourceTimestamp:e.sourceTimestamp||e.source_timestamp?String(e.sourceTimestamp??e.source_timestamp):null,sourceOccurrenceId:e.sourceOccurrenceId||e.source_occurrence_id?String(e.sourceOccurrenceId??e.source_occurrence_id):null,nativeEventType:e.nativeEventType||e.native_event_type?String(e.nativeEventType??e.native_event_type):null,data:e.data&&typeof e.data==`object`?e.data:null,integration:e.integration?String(e.integration):null,endpoint:e.endpoint?String(e.endpoint):null,receivedAt:Date.now()};n.value.unshift(r),n.value.length>100&&(n.value=n.value.slice(0,100))},clear:e=>{e?n.value=n.value.filter(t=>t.channelId!==e):n.value=[]},findByChannel:e=>n.value.filter(t=>t.channelId===e),findByDevice:e=>n.value.filter(t=>t.deviceId===e),findLatestForChannel:e=>n.value.find(t=>t.channelId===e)??null}}),xe=e=>be(e),Se=b({id:z,draft:N().default(!1),channel:z,name:L().trim().nonempty(),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(z).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,data:y({})}),b({id:z,data:b({name:L().trim().nonempty()})}),b({id:z.optional(),channelId:z.optional()}),b({id:z,channelId:z}),b({channelId:z});var Ce=b({id:z.optional().default(E()),channelId:z,draft:N().optional().default(!1),data:b({name:L().trim().nonempty()})});b({id:z,channelId:z}),b({id:z,channelId:z});var we=b({id:L().uuid().optional(),channel:L().uuid(),name:L().trim().nonempty()}),Te=b({id:L().uuid(),channel:L().uuid(),name:L().trim().nonempty(),created_at:L().date(),updated_at:L().date().nullable()}),q=e=>{let t=Se.safeParse({id:e.id,channel:e.channel,name:e.name,createdAt:e.created_at,updatedAt:e.updated_at});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received channel control data.`);return t.data},Ee=e=>{let t=we.safeParse({id:e.id,channel:e.channel,name:e.name});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate create channel control request.`);return t.data},De={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},Oe=m(`devices_module-channels_controls`,()=>{let t=w(),r=c(),i=e(De),a=e([]),o=e({}),s=e=>a.value.includes(e),l=e=>i.value.fetching.item.includes(e),u=e=>i.value.fetching.items.includes(e),d=()=>Object.values(o.value),f=e=>Object.values(o.value??{}).filter(t=>t.channel===e),p=e=>o.value[e]??null,m={},h={},g=e=>_({id:e.id,data:q(e.data)}),_=e=>{if(e.id&&o.value&&e.id in o.value){let t=Se.safeParse({...o.value[e.id],...e.data});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert channel control.`);return o.value[t.data.id]=t.data}let t=Se.safeParse({...e.data,id:e.id});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert channel control.`);return o.value=o.value??{},o.value[t.data.id]=t.data},v=e=>{if(o.value){if(e.channelId!==void 0){let t=f(e.channelId);for(let e of t)e.id in(o.value??{})&&delete(o.value??{})[e.id];return}else if(e.id!==void 0){delete o.value[e.id];return}throw new W(`You have to provide at least channel or control id`)}},y=async e=>{let r=m[e.id];if(r)return r;let a=(async()=>{if(i.value.fetching.item.includes(e.id))throw new U(`Already fetching channel control.`);i.value.fetching.item.push(e.id);try{let{data:r,error:i,response:a}=await t.client.GET(`/${n}/${H}/channels/{channelId}/controls/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(r!==void 0){let e=q(r.data);return o.value[e.id]=e,e}let s=`Failed to fetch channel control.`;throw i&&(s=A(i,s)),new U(s,a.status)}finally{i.value.fetching.item=i.value.fetching.item.filter(t=>t!==e.id)}})();m[e.id]=a;try{return await a}finally{delete m[e.id]}};return{semaphore:i,firstLoad:a,data:o,firstLoadFinished:s,getting:l,fetching:u,findAll:d,findForChannel:f,findById:p,onEvent:g,set:_,unset:v,get:y,fetch:async e=>{let r=h[e.channelId];if(r)return r;let s=(async()=>{if(i.value.fetching.items.includes(e.channelId))throw new U(`Already fetching channel controls.`);i.value.fetching.items.push(e.channelId),a.value=a.value.filter(t=>t!==e.channelId),a.value=[...new Set(a.value)];try{let{data:r,error:i,response:s}=await t.client.GET(`/${n}/${H}/channels/{channelId}/controls`,{params:{path:{channelId:e.channelId}}});if(r!==void 0){a.value.push(e.channelId),a.value=[...new Set(a.value)];let t=Object.fromEntries(r.data.map(e=>{let t=q(e);return[t.id,t]}));return o.value={...o.value,...t},Object.values(o.value)}let c=`Failed to fetch channel controls.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.fetching.items=i.value.fetching.items.filter(t=>t!==e.channelId)}})();h[e.channelId]=s;try{return await s}finally{delete h[e.channelId]}},add:async e=>{let a=Ce.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add channel control.`);let s=Se.safeParse({...a.data.data,id:a.data.id,channel:a.data.channelId,draft:a.data.draft,createdAt:new Date});if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to add channel control.`);if(i.value.creating.push(s.data.id),o.value[s.data.id]=s.data,s.data.draft)return i.value.creating=i.value.creating.filter(e=>e!==s.data.id),s.data;try{let{data:r,error:i,response:a}=await t.client.POST(`/${n}/${H}/channels/{channelId}/controls`,{params:{path:{channelId:e.channelId}},body:{data:Ee({...s.data,id:e.id,channel:e.channelId})}});if(r!==void 0&&r.data.id===e.id){let e=q(r.data);return o.value[e.id]=e,e}delete o.value[s.data.id];let c=`Failed to create channel control.`;throw i&&(c=A(i,c)),new U(c,a.status)}finally{i.value.creating=i.value.creating.filter(e=>e!==s.data.id)}},save:async e=>{if(i.value.updating.includes(e.id))throw new W(`ChannelsControls is already being saved.`);if(!(e.id in o.value))throw new W(`Failed to get channel control data to save.`);let a=Se.safeParse(o.value[e.id]);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to save channel control.`);i.value.updating.push(e.id);try{let{data:r,error:i,response:s}=await t.client.POST(`/${n}/${H}/channels/{channelId}/controls`,{params:{path:{channelId:a.data.channel}},body:{data:Ee({...a.data,id:e.id,channel:e.channelId})}});if(r!==void 0&&r.data.id===e.id){let e=q(r.data);return o.value[e.id]=e,e}let c=`Failed to create channel control.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.updating=i.value.updating.filter(t=>t!==e.id)}},remove:async e=>{if(i.value.deleting.includes(e.id))throw new W(`ChannelControl is already being removed.`);if(!Object.keys(o.value).includes(e.id))return!0;i.value.deleting.push(e.id);let r=o.value[e.id];if(delete o.value[e.id],r?.draft)i.value.deleting=i.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/channels/{channelId}/controls/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(i.status===204)return!0;await y({id:e.id,channelId:e.channelId});let a=`Remove channel control failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{i.value.deleting=i.value.deleting.filter(t=>t!==e.id)}return!0}}}),ke=e=>Oe(e),J=b({id:z,draft:N().default(!1),type:L().trim().nonempty(),channel:z,category:k(S).default(S.generic),identifier:L().trim().nonempty().nullable().default(null),name:L().trim().nullable(),permissions:O(k(D)),dataType:k(u),unit:L().nullable().optional().default(null),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:l(e=>e==null?null:typeof e==`object`&&e&&`value`in e?e:{value:e,lastUpdated:null,trend:null},b({value:f([L(),x(),N()]).nullable().default(null),lastUpdated:L().nullable().optional().default(null),trend:k(s).nullable().optional().default(null)}).nullable()).default(null),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(z).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,type:L().trim().nonempty(),data:y({})}),b({id:z,data:b({type:L().trim().nonempty(),category:k(S).default(S.generic),identifier:L().trim().nonempty().nullable(),name:L().trim().nullable(),permissions:O(k(D)),dataType:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:b({value:f([L(),x(),N()]).nullable().default(null),lastUpdated:L().nullable().optional().default(null),trend:k(s).nullable().optional().default(null)}).nullable()})}),b({id:z.optional(),channelId:z.optional()}),b({id:z,channelId:z}),b({channelId:z});var Ae=b({id:z.optional().default(E()),channelId:z,draft:N().optional().default(!1),data:b({type:L().trim().nonempty(),category:k(S).default(S.generic),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable(),permissions:O(k(D)),dataType:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:f([L(),x()]).transform(e=>e===``?void 0:Number(e)).nullable(),value:f([L(),x(),N()]).nullable().optional()})}),je=b({id:z,channelId:z,data:b({type:L().trim().nonempty(),category:k(S).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable().optional(),format:O(f([L(),f([x(),d()])])).nullable().optional(),invalid:f([L(),x(),N()]).nullable().optional(),step:f([L(),x()]).transform(e=>e===``?void 0:Number(e)).nullable(),value:f([L(),x(),N()]).nullable().optional()})});b({id:z,channelId:z}),b({id:z,channelId:z});var Me=b({id:L().uuid().optional(),type:L().trim().nonempty(),category:k(S),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable(),permissions:O(k(D)),data_type:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:f([L(),x(),N()]).nullable()}),Ne=b({type:L().trim().nonempty(),data_type:k(u).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nullable().optional(),format:O(f([L(),f([x(),d()])])).nullable().optional(),invalid:f([L(),x(),N()]).nullable().optional(),step:x().nullable().optional(),value:f([L(),x(),N()]).nullable().optional()}),Pe=b({id:L().uuid(),type:L().trim().nonempty(),channel:L().uuid(),category:k(S),identifier:L().trim().nonempty().nullable(),name:L().trim().nullable(),permissions:O(k(D)),data_type:k(u),format:O(f([L(),f([x(),d()])])).nullable(),invalid:f([L(),x(),N()]).nullable(),step:x().nullable(),value:b({value:f([L(),x(),N()]).nullable().optional(),last_updated:L().nullable().optional(),trend:k(s).nullable().optional()}).nullable().optional(),created_at:L().date(),updated_at:L().date().nullable()}),Y=(e,t)=>{let n=t.safeParse(F(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate received channel property data.`);return n.data},Fe=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate create channel property request.`);return n.data},Ie=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate update channel property request.`);return n.data},Le={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},Re=m(`devices_module-channels_properties`,()=>{let t=w(),r=c(),{getElement:i}=ge(),a=e(Le),o=e([]),s=e({}),l=e=>o.value.includes(e),u=e=>a.value.fetching.item.includes(e),d=e=>a.value.fetching.items.includes(e),f=()=>Object.values(s.value),p=e=>Object.values(s.value??{}).filter(t=>t.channel===e),m=e=>s.value[e]??null,h={},g={},_=(e,t)=>{if(e.id&&s.value&&e.id in s.value){let n=(t?.schemas?.channelPropertySchema||J).safeParse({...s.value[e.id],...e.data});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel property.`);return s.value[n.data.id]=n.data}let n=(t?.schemas?.channelPropertySchema||J).safeParse({...e.data,id:e.id});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel property.`);return s.value=s.value??{},s.value[n.data.id]=n.data},v=e=>{let t=i(e.type);return _({id:e.id,data:Y(e.data,t?.schemas?.channelPropertySchema||J)},t)},y=e=>_(e,i(e.data.type)),b=e=>{if(s.value){if(e.channelId!==void 0){let t=p(e.channelId);for(let e of t)e.id in(s.value??{})&&delete(s.value??{})[e.id];return}else if(e.id!==void 0){delete s.value[e.id];return}throw new W(`You have to provide at least channel or property id`)}},x=async e=>{let r=h[e.id];if(r)return r;let o=(async()=>{if(a.value.fetching.item.includes(e.id))throw new U(`Already fetching channel property.`);a.value.fetching.item.push(e.id);try{let{data:r,error:a,response:o}=await t.client.GET(`/${n}/${H}/channels/{channelId}/properties/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(r!==void 0){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}let c=`Failed to fetch channel property.`;throw a&&(c=A(a,c)),new U(c,o.status)}finally{a.value.fetching.item=a.value.fetching.item.filter(t=>t!==e.id)}})();h[e.id]=o;try{return await o}finally{delete h[e.id]}};return{semaphore:a,firstLoad:o,data:s,firstLoadFinished:l,getting:u,fetching:d,findAll:f,findForChannel:p,findById:m,onEvent:v,set:y,unset:b,get:x,fetch:async e=>{let r=g[e.channelId];if(r)return r;let c=(async()=>{if(a.value.fetching.items.includes(e.channelId))throw new U(`Already fetching properties.`);a.value.fetching.items.push(e.channelId),o.value=o.value.filter(t=>t!==e.channelId),o.value=[...new Set(o.value)];try{let{data:r,error:a,response:c}=await t.client.GET(`/${n}/${H}/channels/{channelId}/properties`,{params:{path:{channelId:e.channelId}}});if(r!==void 0){o.value.push(e.channelId),o.value=[...new Set(o.value)];let t=Object.fromEntries(r.data.map(e=>{let t=Y(e,i(e.type)?.schemas?.channelPropertySchema||J);return[t.id,t]}));return s.value={...s.value,...t},Object.values(s.value)}let l=`Failed to fetch channel properties.`;throw a&&(l=A(a,l)),new U(l,c.status)}finally{a.value.fetching.items=a.value.fetching.items.filter(t=>t!==e.channelId)}})();g[e.channelId]=c;try{return await c}finally{delete g[e.channelId]}},add:async e=>{let o=Ae.safeParse(e);if(!o.success)throw r.error(`Schema validation failed with:`,o.error),new G(`Failed to add property.`);let c=i(e.data.type),l=(c?.schemas?.channelPropertySchema||J).safeParse({...e.data,id:o.data.id,channel:o.data.channelId,draft:o.data.draft,createdAt:new Date});if(!l.success)throw r.error(`Schema validation failed with:`,l.error),new G(`Failed to add channel property.`);if(a.value.creating.push(l.data.id),s.value[l.data.id]=l.data,l.data.draft)return a.value.creating=a.value.creating.filter(e=>e!==l.data.id),l.data;try{let{data:r,error:a,response:o}=await t.client.POST(`/${n}/${H}/channels/{channelId}/properties`,{params:{path:{channelId:e.channelId}},body:{data:Fe({...l.data,value:l.data.value?.value??null},c?.schemas?.channelPropertyCreateReqSchema||Me)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}delete s.value[l.data.id];let u=`Failed to create channel property.`;throw a&&(u=A(a,u)),new U(u,o.status)}finally{a.value.creating=a.value.creating.filter(e=>e!==l.data.id)}},edit:async e=>{if(a.value.updating.includes(e.id))throw new W(`Property is already being updated.`);if(!(e.id in s.value))throw new W(`Failed to get channel property data to update.`);let o=je.safeParse(e);if(!o.success)throw r.error(`Schema validation failed with:`,o.error),new G(`Failed to edit channel property.`);let c=i(e.data.type),l=(c?.schemas?.channelPropertySchema||J).safeParse({...(0,K.omit)(s.value[e.id],`value`),...(0,K.omitBy)(e.data,K.isUndefined)});if(!l.success)throw r.error(`Schema validation failed with:`,l.error),new G(`Failed to edit channel property.`);if(a.value.updating.push(e.id),s.value[l.data.id]=l.data,l.data.draft)return a.value.updating=a.value.updating.filter(e=>e!==l.data.id),l.data;try{let{data:r,error:a,response:o}=await t.client.PATCH(`/${n}/${H}/channels/{channelId}/properties/{id}`,{params:{path:{channelId:e.channelId,id:e.id}},body:{data:Ie({...`value`in e.data?{...l.data,value:l.data.value?.value??null}:(0,K.omit)(l.data,`value`)},c?.schemas?.channelPropertyUpdateReqSchema||Ne)}});if(r!==void 0){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}await x({id:e.id,channelId:e.channelId});let u=`Failed to update channel property.`;throw a&&(u=A(a,u)),new U(u,o.status)}finally{a.value.updating=a.value.updating.filter(t=>t!==e.id)}},save:async e=>{if(a.value.updating.includes(e.id))throw new W(`Property is already being saved.`);let o=s.value[e.id];if(!o)throw new W(`Failed to get channel property data to save.`);let c=i(o.type),l=(c?.schemas?.channelPropertySchema||J).safeParse(o);if(!l.success)throw r.error(`Schema validation failed with:`,l.error),new G(`Failed to save channel property.`);a.value.updating.push(e.id);try{let{data:r,error:a,response:o}=await t.client.POST(`/${n}/${H}/channels/{channelId}/properties`,{params:{path:{channelId:l.data.channel}},body:{data:Fe({...l.data,value:l.data.value?.value??null},c?.schemas?.channelPropertyCreateReqSchema||Me)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Y(r.data,e?.schemas?.channelPropertySchema||J);return s.value[t.id]=t,t}let u=`Failed to create channel property.`;throw a&&(u=A(a,u)),new U(u,o.status)}finally{a.value.updating=a.value.updating.filter(t=>t!==e.id)}},remove:async e=>{if(a.value.deleting.includes(e.id))throw new W(`Property is already being removed.`);if(!Object.keys(s.value).includes(e.id))return!0;a.value.deleting.push(e.id);let r=s.value[e.id];if(delete s.value[e.id],r?.draft)a.value.deleting=a.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/channels/{channelId}/properties/{id}`,{params:{path:{channelId:e.channelId,id:e.id}}});if(i.status===204)return!0;await x({id:e.id,channelId:e.channelId});let a=`Remove property failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{a.value.deleting=a.value.deleting.filter(t=>t!==e.id)}return!0}}}),ze=e=>Re(e),X=b({id:z,draft:N().default(!1),type:L().trim().nonempty(),device:z,category:k(j).default(j.generic),identifier:L().trim().nonempty().nullable().default(null),name:L().trim().nonempty(),description:L().trim().nullable().default(null),parent:L().uuid().nullable().default(null),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(f([z,_(`all`)])).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,type:L().trim().nonempty(),data:y({})}),b({id:z,data:b({type:L().trim().nonempty(),category:k(j).default(j.generic),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()})}),b({id:z.optional(),deviceId:z.optional()}),b({id:z,deviceId:z.optional()}),b({deviceId:z.optional()});var Be=b({id:z.optional().default(E()),deviceId:z,draft:N().optional().default(!1),data:b({type:L().trim().nonempty(),category:k(j).default(j.generic),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()})}),Ve=b({id:z,deviceId:z.optional(),data:b({type:L().trim().nonempty(),category:k(j).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()})});b({id:z,deviceId:z}),b({id:z,deviceId:z.optional()});var He=b({id:L().uuid().optional(),type:L().trim().nonempty(),device:L().uuid(),category:k(j),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional(),controls:O(we).optional(),properties:O(Me).optional()}),Ue=b({type:L().trim().nonempty(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),parent:L().uuid().nullable().optional()}),We=b({id:L().uuid(),type:L().trim().nonempty(),device:L().uuid(),category:k(j),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().nullable(),parent:L().uuid().nullable().optional(),created_at:L().date(),updated_at:L().date().nullable(),controls:O(Te),properties:O(Pe)}),Z=(e,t)=>{let n=t.safeParse(F(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate received channel data.`);return n.data},Ge=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate create channel request.`);return n.data},Ke=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate update channel request.`);return n.data},qe={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},Je=m(`devices_module-channels`,()=>{let t=w(),r=c(),{getElement:i}=he(),{getElement:a}=ge(),o=ne(),s=e(qe),l=e([]),u=e({}),d=e=>e==null?l.value.includes(`all`):l.value.includes(e),f=e=>s.value.fetching.item.includes(e),p=e=>e==null?s.value.fetching.items.includes(`all`):s.value.fetching.items.includes(e),m=()=>Object.values(u.value),h=e=>Object.values(u.value??{}).filter(t=>t.device===e),g=e=>u.value[e]??null,_={},v={},y=e=>{let t=i(e.type);return b({id:e.id,data:Z(e.data,t?.schemas?.channelSchema||X)})},b=e=>{let t=i(e.data.type);if(e.id&&u.value&&e.id in u.value){let n=(t?.schemas?.channelSchema||X).safeParse({...u.value[e.id],...e.data});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel.`);return u.value[n.data.id]=n.data}let n=(t?.schemas?.channelSchema||X).safeParse({...e.data,id:e.id});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert channel.`);return u.value=u.value??{},u.value[n.data.id]=n.data},x=e=>{if(u.value){if(e.deviceId!==void 0){let t=h(e.deviceId);for(let e of t)e.id in(u.value??{})&&delete(u.value??{})[e.id];return}else if(e.id!==void 0){delete u.value[e.id];return}throw new W(`You have to provide at least device or channel id`)}},S=async e=>{let r=_[e.id];if(r)return r;let a=(async()=>{if(s.value.fetching.item.includes(e.id))throw new U(`Already fetching channel.`);s.value.fetching.item.push(e.id);try{let r;r=e.deviceId?await t.client.GET(`/${n}/${H}/devices/{deviceId}/channels/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}}):await t.client.GET(`/${n}/${H}/channels/{id}`,{params:{path:{id:e.id}}});let{data:a,error:o,response:s}=r;if(a!==void 0){let e=i(a.data.type),t=Z(a.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,O(t,a.data.controls),k(t,a.data.properties),t}let c=`Failed to fetch channel.`;throw o&&(c=(e.deviceId,A(o,c))),new U(c,s.status)}finally{s.value.fetching.item=s.value.fetching.item.filter(t=>t!==e.id)}})();_[e.id]=a;try{return await a}finally{delete _[e.id]}},ee=async e=>{let r=e?.deviceId??`all`,a=v[r];if(a)return a;let o=(async()=>{if(s.value.fetching.items.includes(e?.deviceId??`all`))throw new U(`Already fetching channels.`);s.value.fetching.items.push(e?.deviceId??`all`),l.value=l.value.filter(t=>t!==(e?.deviceId??`all`)),l.value=[...new Set(l.value)];try{let r;r=e?.deviceId?await t.client.GET(`/${n}/${H}/devices/{deviceId}/channels`,{params:{path:{deviceId:e.deviceId}}}):await t.client.GET(`/${n}/${H}/channels`);let{data:a,error:o,response:s}=r;if(a!==void 0){e?.deviceId?(l.value.push(e.deviceId),l.value=[...new Set(l.value)]):(l.value.push(`all`),l.value=[...new Set(l.value)]);let t=Object.fromEntries(a.data.map(e=>{let t=Z(e,i(e.type)?.schemas?.channelSchema||X);return O(t,e.controls),k(t,e.properties),[t.id,t]}));return u.value={...u.value,...t},e?.deviceId?h(e.deviceId):Object.values(u.value)}let c=`Failed to fetch channels.`;throw o&&(c=(e?.deviceId,A(o,c))),new U(c,s.status)}finally{s.value.fetching.items=s.value.fetching.items.filter(t=>t!==(e?.deviceId??`all`))}})();v[e?.deviceId??`all`]=o;try{return await o}finally{delete v[e?.deviceId??`all`]}},C=async e=>{let a=Be.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add channel.`);let o=i(e.data.type),c=(o?.schemas?.channelSchema||X).safeParse({...e.data,id:a.data.id,device:a.data.deviceId,draft:a.data.draft,createdAt:new Date});if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to add channel.`);if(s.value.creating.push(c.data.id),u.value[c.data.id]=c.data,c.data.draft)return s.value.creating=s.value.creating.filter(e=>e!==c.data.id),c.data;try{let{data:r,error:a,response:s}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/channels`,{params:{path:{deviceId:e.deviceId}},body:{data:Ge(c.data,o?.schemas?.channelCreateReqSchema||He)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Z(r.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,O(t,r.data.controls),k(t,r.data.properties),t}delete u.value[c.data.id];let l=`Failed to create channel.`;throw a&&(l=A(a,l)),new U(l,s.status)}finally{s.value.creating=s.value.creating.filter(e=>e!==c.data.id)}},T=async e=>{if(s.value.updating.includes(e.id))throw new W(`Channel is already being updated.`);if(!(e.id in u.value))throw new W(`Failed to get channel data to update.`);let a=Ve.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to edit channel.`);let o=i(e.data.type),c=(o?.schemas?.channelSchema||X).safeParse({...u.value[e.id],...(0,K.omitBy)(e.data,K.isUndefined)});if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to edit channel.`);if(s.value.updating.push(e.id),u.value[c.data.id]=c.data,c.data.draft)return s.value.updating=s.value.updating.filter(e=>e!==c.data.id),c.data;try{let r;r=e.deviceId?await t.client.PATCH(`/${n}/${H}/devices/{deviceId}/channels/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}},body:{data:Ke(c.data,o?.schemas?.channelUpdateReqSchema||Ue)}}):await t.client.PATCH(`/${n}/${H}/channels/{id}`,{params:{path:{id:e.id}},body:{data:Ke(c.data,o?.schemas?.channelUpdateReqSchema||Ue)}});let{data:a,error:s,response:l}=r;if(a!==void 0){let e=i(a.data.type),t=Z(a.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,t}await S({id:e.id});let d=`Failed to update channel.`;throw s&&(d=(e.deviceId,A(s,d))),new U(d,l.status)}finally{s.value.updating=s.value.updating.filter(t=>t!==e.id)}},E=async e=>{if(s.value.updating.includes(e.id))throw new W(`Channels is already being saved.`);let a=u.value[e.id];if(!a)throw new W(`Failed to get channel data to save.`);let o=i(a.type),c=(o?.schemas?.channelSchema||X).safeParse(a);if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to save channel.`);s.value.updating.push(e.id);try{let{data:r,error:a,response:s}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/channels`,{params:{path:{deviceId:c.data.device}},body:{data:Ge(c.data,o?.schemas?.channelCreateReqSchema||He)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=Z(r.data,e?.schemas?.channelSchema||X);return u.value[t.id]=t,O(t,r.data.controls),k(t,r.data.properties),t}let l=`Failed to create channel.`;throw a&&(l=A(a,l)),new U(l,s.status)}finally{s.value.updating=s.value.updating.filter(t=>t!==e.id)}},D=async e=>{if(s.value.deleting.includes(e.id))throw new W(`Channel is already being removed.`);if(!Object.keys(u.value).includes(e.id))return!0;s.value.deleting.push(e.id);let r=u.value[e.id];if(delete u.value[e.id],r?.draft)s.value.deleting=s.value.deleting.filter(t=>t!==e.id);else try{let r;r=e.deviceId?await t.client.DELETE(`/${n}/${H}/devices/{deviceId}/channels/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}}):await t.client.DELETE(`/${n}/${H}/channels/{id}`,{params:{path:{id:e.id}}});let{error:i,response:a}=r;if(a.status===204)return o.getStore(ue).unset({channelId:e.id}),o.getStore(R).unset({channelId:e.id}),!0;await S({id:e.id});let s=`Remove channel failed.`;throw i&&(s=(e.deviceId,A(i,s))),new U(s,a.status)}finally{s.value.deleting=s.value.deleting.filter(t=>t!==e.id)}return!0},O=(e,t)=>{let n=o.getStore(ue);t.forEach(e=>{n.set({id:e.id,data:q(e)})}),se(n.firstLoad,e.id)},k=(e,t)=>{let n=o.getStore(R);t.forEach(e=>{let t=a(e.type);n.set({id:e.id,data:Y(e,t?.schemas?.channelPropertySchema||J)})}),se(n.firstLoad,e.id)};return{semaphore:s,firstLoad:l,data:u,firstLoadFinished:d,getting:f,fetching:p,findAll:m,findForDevice:h,findById:g,onEvent:y,set:b,unset:x,get:S,fetch:ee,add:C,edit:T,save:E,remove:D}}),Ye=e=>Je(e),Xe=b({id:z,draft:N().default(!1),device:z,name:L().trim().nonempty(),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:O(z).default([]),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,data:y({})}),b({id:z,data:b({name:L().trim().nonempty()})}),b({id:z.optional(),deviceId:z.optional()}),b({id:z,deviceId:z}),b({deviceId:z});var Ze=b({id:z.optional().default(E()),deviceId:z,draft:N().optional().default(!1),data:b({name:L().trim().nonempty()})});b({id:z,deviceId:z}),b({id:z,deviceId:z});var Qe=b({id:L().uuid().optional(),device:L().uuid(),name:L().trim().nonempty()}),$e=b({id:L().uuid(),device:L().uuid(),name:L().trim().nonempty(),created_at:L().date(),updated_at:L().date().nullable()}),et=e=>{let t=Xe.safeParse({id:e.id,device:e.device,name:e.name,createdAt:e.created_at,updatedAt:e.updated_at});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received device control data.`);return t.data},tt=e=>{let t=Qe.safeParse({id:e.id,device:e.device,name:e.name});if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate create device control request.`);return t.data},nt={fetching:{items:[],item:[]},creating:[],updating:[],deleting:[]},rt=m(`devices_module-devices_controls`,()=>{let t=w(),r=c(),i=e(nt),a=e([]),o=e({}),s=e=>a.value.includes(e),l=e=>i.value.fetching.item.includes(e),u=e=>i.value.fetching.items.includes(e),d=()=>Object.values(o.value),f=e=>Object.values(o.value??{}).filter(t=>t.device===e),p=e=>o.value[e]??null,m={},h={},g=e=>_({id:e.id,data:et(e.data)}),_=e=>{if(e.id&&o.value&&e.id in o.value){let t=Xe.safeParse({...o.value[e.id],...e.data});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert device control.`);return o.value[t.data.id]=t.data}let t=Xe.safeParse({...e.data,id:e.id});if(!t.success)throw r.error(`Schema validation failed with:`,t.error),new G(`Failed to insert device control.`);return o.value=o.value??{},o.value[t.data.id]=t.data},v=e=>{if(o.value){if(e.deviceId!==void 0){let t=f(e.deviceId);for(let e of t)e.id in(o.value??{})&&delete(o.value??{})[e.id];return}else if(e.id!==void 0){delete o.value[e.id];return}throw new W(`You have to provide at least device or control id`)}},y=async e=>{let r=m[e.id];if(r)return r;let a=(async()=>{if(i.value.fetching.item.includes(e.id))throw new U(`Already fetching device control.`);i.value.fetching.item.push(e.id);try{let{data:r,error:i,response:a}=await t.client.GET(`/${n}/${H}/devices/{deviceId}/controls/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}});if(r!==void 0){let e=et(r.data);return o.value[e.id]=e,e}let s=`Failed to fetch device control.`;throw i&&(s=A(i,s)),new U(s,a.status)}finally{i.value.fetching.item=i.value.fetching.item.filter(t=>t!==e.id)}})();m[e.id]=a;try{return await a}finally{delete m[e.id]}};return{semaphore:i,firstLoad:a,data:o,firstLoadFinished:s,getting:l,fetching:u,findAll:d,findForDevice:f,findById:p,onEvent:g,set:_,unset:v,get:y,fetch:async e=>{let r=h[e.deviceId];if(r)return r;let s=(async()=>{if(i.value.fetching.items.includes(e.deviceId))throw new U(`Already fetching device controls.`);i.value.fetching.items.push(e.deviceId),a.value=a.value.filter(t=>t!==e.deviceId),a.value=[...new Set(a.value)];try{let{data:r,error:i,response:s}=await t.client.GET(`/${n}/${H}/devices/{deviceId}/controls`,{params:{path:{deviceId:e.deviceId}}});if(r!==void 0){a.value.push(e.deviceId),a.value=[...new Set(a.value)];let t=Object.fromEntries(r.data.map(e=>{let t=et(e);return[t.id,t]}));return o.value={...o.value,...t},Object.values(o.value)}let c=`Failed to fetch device controls.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.fetching.items=i.value.fetching.items.filter(t=>t!==e.deviceId)}})();h[e.deviceId]=s;try{return await s}finally{delete h[e.deviceId]}},add:async e=>{let a=Ze.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add device control.`);let s=Xe.safeParse({...a.data.data,id:a.data.id,device:a.data.deviceId,draft:a.data.draft,createdAt:new Date});if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to add device control.`);if(i.value.creating.push(s.data.id),o.value[s.data.id]=s.data,s.data.draft)return i.value.creating=i.value.creating.filter(e=>e!==s.data.id),s.data;try{let{data:r,error:i,response:a}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/controls`,{params:{path:{deviceId:e.deviceId}},body:{data:tt({...s.data,id:e.id,device:e.deviceId})}});if(r!==void 0&&r.data.id===e.id){let e=et(r.data);return o.value[e.id]=e,e}delete o.value[s.data.id];let c=`Failed to create device control.`;throw i&&(c=A(i,c)),new U(c,a.status)}finally{i.value.creating=i.value.creating.filter(e=>e!==s.data.id)}},save:async e=>{if(i.value.updating.includes(e.id))throw new W(`DevicesControls is already being saved.`);if(!(e.id in o.value))throw new W(`Failed to get device control data to save.`);let a=Xe.safeParse(o.value[e.id]);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to save device control.`);i.value.updating.push(e.id);try{let{data:r,error:i,response:s}=await t.client.POST(`/${n}/${H}/devices/{deviceId}/controls`,{params:{path:{deviceId:a.data.device}},body:{data:tt({...a.data,id:e.id,device:e.deviceId})}});if(r!==void 0&&r.data.id===e.id){let e=et(r.data);return o.value[e.id]=e,e}let c=`Failed to create device control.`;throw i&&(c=A(i,c)),new U(c,s.status)}finally{i.value.updating=i.value.updating.filter(t=>t!==e.id)}},remove:async e=>{if(i.value.deleting.includes(e.id))throw new W(`DeviceControl is already being removed.`);if(!Object.keys(o.value).includes(e.id))return!0;i.value.deleting.push(e.id);let r=o.value[e.id];if(delete o.value[e.id],r?.draft)i.value.deleting=i.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/devices/{deviceId}/controls/{id}`,{params:{path:{deviceId:e.deviceId,id:e.id}}});if(i.status===204)return!0;await y({id:e.id,deviceId:e.deviceId});let a=`Remove device control failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{i.value.deleting=i.value.deleting.filter(t=>t!==e.id)}return!0}}}),it=e=>rt(e),Q=b({id:z,draft:N().default(!1),type:L().trim().nonempty(),category:k(T).default(T.generic),identifier:L().trim().nonempty().nullable().default(null),name:L().trim().nonempty(),description:L().trim().nullable().default(null),enabled:N().default(!0),hidden:N().default(!1),hiddenBy:k(M).nullable().default(null),roomId:L().uuid().nullable().default(null),zoneIds:O(L().uuid()).default([]),status:b({online:N().default(!1),status:k(i).default(i.unknown),lastChanged:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).nullable().default(null)}).default({online:!1,status:i.unknown,lastChanged:null}),createdAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)),updatedAt:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).optional().nullable().default(null)});b({fetching:b({items:N().default(!1),item:O(z)}),creating:O(z),updating:O(z),deleting:O(z)}),b({id:z,type:L().trim().nonempty(),data:y({})}),b({id:z,data:b({type:L().trim().nonempty(),category:k(T).default(T.generic),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N(),roomId:L().uuid().nullable().optional(),status:b({online:N(),status:k(i),lastChanged:f([L().datetime({offset:!0}),g()]).transform(e=>e instanceof Date?e:new Date(e)).nullable().optional()})}).catchall(re())}),b({id:z}),b({id:z}),b({hidden:k(ee).optional()});var at=b({id:z.optional().default(E()),draft:N().optional().default(!1),data:b({type:L().trim().nonempty(),category:k(T).default(T.generic),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),roomId:L().uuid().nullable().optional()}).catchall(re())}),ot=b({id:z,data:b({type:L().trim().nonempty(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),roomId:L().uuid().nullable().optional()}).catchall(re())});b({id:z}),b({id:z}),b({ids:O(z).nonempty()}),b({ids:O(z).nonempty(),enabled:N()});var st=b({succeeded:O(L()),failed:O(b({id:L(),reason:L()}))});b({id:z,zoneId:L().uuid()}),b({id:z,zoneId:L().uuid()});var ct=b({id:L().uuid().optional(),type:L().trim().nonempty(),category:k(T),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),room_id:L().uuid().nullable().optional(),controls:O(Qe).optional(),channels:O(He).optional()}),lt=b({type:L().trim().nonempty(),category:k(T).optional(),identifier:L().trim().nonempty().nullable().optional(),name:L().trim().nonempty().optional(),description:L().trim().transform(e=>e===``?null:e).nullable().optional(),enabled:N().optional(),hidden:N().optional(),hidden_by:k(M).optional(),room_id:L().uuid().nullable().optional()}),ut=b({id:L().uuid(),type:L(),category:k(T),identifier:L().trim().nonempty().nullable(),name:L().trim().nonempty(),description:L().trim().nullable(),enabled:N(),hidden:N(),hidden_by:k(M).optional(),room_id:L().uuid().nullable(),zone_ids:O(L().uuid()),status:b({online:N(),status:k(i),last_changed:L().datetime({offset:!0}).nullable().optional()}),created_at:L().date(),updated_at:L().date().nullable(),controls:O($e),channels:O(We)}),$=(e,t)=>{let n=t.safeParse(F(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate received device data.`);return n.data},dt=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate create device request.`);return n.data},ft=(e,t)=>{let n=t.safeParse(p(e));if(!n.success)throw P.error(`Schema validation failed with:`,n.error),new G(`Failed to validate update device request.`);return n.data},pt={fetching:{items:!1,item:[]},creating:[],updating:[],deleting:[]},mt=m(`devices_module-devices`,()=>{let t=w(),r=c(),{getElement:i}=_e(),{getElement:a}=he(),{getElement:o}=ge(),s=ne(),l=e(pt),u=e(!1),d=e({}),f=()=>u.value,p=e=>l.value.fetching.item.includes(e),m=()=>l.value.fetching.items,h=()=>Object.values(d.value),g=e=>d.value[e]??null,_={},v={},y=0,b=0,x={},S=0,C={},T={},E=(e,{read:t=!1}={})=>(C[e.id]=++S,t||(T[e.id]=C[e.id]),d.value[e.id]=e),D=e=>{C[e]=++S,T[e]=C[e],delete d.value[e]},O=e=>{let t=i(e.type);return k({id:e.id,data:$(e.data,t?.schemas?.deviceSchema||Q)})},k=e=>{let t=i(e.data.type);if(e.id&&d.value&&e.id in d.value){let n=(0,K.omitBy)(e.data,K.isUndefined),i=(t?.schemas?.deviceSchema||Q).safeParse({...d.value[e.id],...n});if(!i.success)throw r.error(`Schema validation failed with:`,i.error),new G(`Failed to insert device.`);return E(i.data)}let n=(t?.schemas?.deviceSchema||Q).safeParse({...e.data,id:e.id});if(!n.success)throw r.error(`Schema validation failed with:`,n.error),new G(`Failed to insert device.`);return d.value=d.value??{},E(n.data)},j=e=>{d.value&&D(e.id)},M=async e=>{let r=_[e.id];if(r)return r;let a=(async()=>{if(l.value.fetching.item.includes(e.id))throw new U(`Already fetching device.`);l.value.fetching.item.push(e.id);try{let{data:r,error:a,response:o}=await t.client.GET(`/${n}/${H}/devices/{id}`,{params:{path:{id:e.id}}});if(r!==void 0){let e=i(r.data.type),t=$(r.data,e?.schemas?.deviceSchema||Q);return E(t,{read:!0}),de(t,r.data.controls),fe(t,r.data.channels),t}let s=`Failed to fetch device.`;throw a&&(s=A(a,s)),new U(s,o.status)}finally{l.value.fetching.item=l.value.fetching.item.filter(t=>t!==e.id)}})();_[e.id]=a;try{return await a}finally{delete _[e.id]}},N=async e=>{let r=e?.hidden??`default`;b+=1,x[r]=b;let a=v[r];if(a)return a;y+=1,l.value.fetching.items=!0;let o=S,s=(async()=>{try{let{data:a,error:s,response:c}=await t.client.GET(`/${n}/${H}/devices`,{params:{query:{hidden:e?.hidden??ee.all}}});if(a!==void 0){if(x[r]!==b)return a.data.map(e=>$(e,i(e.type)?.schemas?.deviceSchema||Q));let e={};for(let t of a.data){let n=$(t,i(t.type)?.schemas?.deviceSchema||Q);if((C[n.id]??0)>o){let t=d.value[n.id];t&&(e[n.id]=t);continue}de(n,t.controls),fe(n,t.channels),e[n.id]=n}for(let[t,n]of Object.entries(C))n>o&&!(t in e)&&d.value[t]&&(e[t]=d.value[t]);return d.value=e,u.value=!0,Object.values(d.value)}let l=`Failed to fetch devices.`;throw s&&(l=A(s,l)),new U(l,c.status)}finally{--y,y===0&&(l.value.fetching.items=!1)}})();v[r]=s;try{return await s}finally{delete v[r]}},P=async e=>{let a=at.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to add device.`);let o=i(e.data.type),s=(o?.schemas?.deviceSchema||Q).safeParse({...e.data,id:a.data.id,draft:a.data.draft,createdAt:new Date});if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to add device.`);if(l.value.creating.push(s.data.id),E(s.data),s.data.draft)return l.value.creating=l.value.creating.filter(e=>e!==s.data.id),s.data;try{let{data:r,error:a,response:c}=await t.client.POST(`/${n}/${H}/devices`,{body:{data:dt(s.data,o?.schemas?.deviceCreateReqSchema||ct)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=$(r.data,e?.schemas?.deviceSchema||Q);return E(t),de(t,r.data.controls),fe(t,r.data.channels),t}D(s.data.id);let l=`Failed to create device.`;throw a&&(l=A(a,l)),new U(l,c.status)}finally{l.value.creating=l.value.creating.filter(e=>e!==s.data.id)}},F=async e=>{if(l.value.updating.includes(e.id))throw new W(`Device is already being updated.`);if(!(e.id in d.value))throw new W(`Failed to get device data to update.`);let a=ot.safeParse(e);if(!a.success)throw r.error(`Schema validation failed with:`,a.error),new G(`Failed to edit device.`);let o=i(e.data.type),s=(0,K.omitBy)(e.data,K.isUndefined),c=(o?.schemas?.deviceSchema||Q).safeParse({...d.value[e.id],...s});if(!c.success)throw r.error(`Schema validation failed with:`,c.error),new G(`Failed to edit device.`);if(l.value.updating.push(e.id),E(c.data),c.data.draft)return l.value.updating=l.value.updating.filter(e=>e!==c.data.id),c.data;try{let r=(0,K.pick)(c.data,Object.keys(s)),{data:a,error:l,response:u}=await t.client.PATCH(`/${n}/${H}/devices/{id}`,{params:{path:{id:e.id}},body:{data:ft(r,o?.schemas?.deviceUpdateReqSchema||lt)}});if(a!==void 0){let e=i(a.data.type),t=$(a.data,e?.schemas?.deviceSchema||Q);return E(t),t}await M({id:e.id});let d=`Failed to update device.`;throw l&&(d=A(l,d)),new U(d,u.status)}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},te=async e=>{if(l.value.updating.includes(e.id))throw new W(`Device is already being saved.`);let a=d.value[e.id];if(!a)throw new W(`Failed to get device data to save.`);let o=i(a.type),s=(o?.schemas?.deviceSchema||Q).safeParse(a);if(!s.success)throw r.error(`Schema validation failed with:`,s.error),new G(`Failed to save device.`);l.value.updating.push(e.id);try{let{data:r,error:a,response:c}=await t.client.POST(`/${n}/${H}/devices`,{body:{data:dt(s.data,o?.schemas?.deviceCreateReqSchema||ct)}});if(r!==void 0&&r.data.id===e.id){let e=i(r.data.type),t=$(r.data,e?.schemas?.deviceSchema||Q);return E(t),de(t,r.data.controls),fe(t,r.data.channels),t}let l=`Failed to create device.`;throw a&&(l=A(a,l)),new U(l,c.status)}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},re=async e=>{if(l.value.deleting.includes(e.id))throw new W(`Device is already being removed.`);if(!Object.keys(d.value).includes(e.id))return!0;l.value.deleting.push(e.id);let r=d.value[e.id];if(D(e.id),r?.draft)l.value.deleting=l.value.deleting.filter(t=>t!==e.id);else try{let{error:r,response:i}=await t.client.DELETE(`/${n}/${H}/devices/{id}`,{params:{path:{id:e.id}}});if(i.status===204)return I(e.id),!0;await M({id:e.id});let a=`Remove account failed.`;throw r&&(a=A(r,a)),new U(a,i.status)}finally{l.value.deleting=l.value.deleting.filter(t=>t!==e.id)}return!0},I=e=>{s.getStore(ce).unset({deviceId:e});let t=s.getStore(le),n=s.getStore(ue),r=s.getStore(R);t.findForDevice(e).forEach(e=>{n.unset({channelId:e.id}),r.unset({channelId:e.id})}),t.unset({deviceId:e})},L=async e=>{let r=[],i=[];for(let t of e.ids){let e=d.value[t];e!==void 0&&(e.draft?r:i).push(t)}for(let e of r)D(e),I(e);if(i.length===0)return{succeeded:r,failed:[]};l.value.deleting.push(...i);try{let{data:e,error:a,response:o}=await t.client.POST(`/${n}/${H}/devices/bulk-remove`,{body:{data:{ids:i}}});if(e===void 0||!o.ok){let e=`Remove devices failed.`;throw a&&(e=A(a,e)),new U(e,o.status)}let s=st.parse(e.data);for(let e of s.succeeded)D(e),I(e);return{succeeded:[...r,...s.succeeded],failed:s.failed}}finally{l.value.deleting=l.value.deleting.filter(e=>!i.includes(e))}},ie=async e=>{let r=e.ids.filter(e=>d.value[e]!==void 0&&!d.value[e].draft);if(r.length===0)return{succeeded:[],failed:[]};l.value.updating.push(...r);let i=new Map(r.map(e=>[e,T[e]??0]));try{let{data:a,error:o,response:s}=await t.client.POST(`/${n}/${H}/devices/bulk-update`,{body:{data:{ids:r,enabled:e.enabled}}});if(a===void 0||!s.ok){let e=`Update devices failed.`;throw o&&(e=A(o,e)),new U(e,s.status)}let c=st.parse(a.data);for(let t of c.succeeded){let n=d.value[t];n!==void 0&&(T[t]??0)===i.get(t)&&E({...n,enabled:e.enabled})}return c}finally{l.value.updating=l.value.updating.filter(e=>!r.includes(e))}},ae=async e=>{if(!d.value[e.id])throw new W(`Device [${e.id}] not found.`);l.value.updating.push(e.id);try{let{response:r}=await t.client.POST(`/${n}/${H}/devices/{id}/zones/{zoneId}`,{params:{path:{id:e.id,zoneId:e.zoneId}}});if(!r.ok)throw new U(`Failed to add device to zone.`,r.status);return await M({id:e.id})}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},oe=async e=>{if(!d.value[e.id])throw new W(`Device [${e.id}] not found.`);l.value.updating.push(e.id);try{let{response:r}=await t.client.DELETE(`/${n}/${H}/devices/{id}/zones/{zoneId}`,{params:{path:{id:e.id,zoneId:e.zoneId}}});if(!r.ok)throw new U(`Failed to remove device from zone.`,r.status);return await M({id:e.id})}finally{l.value.updating=l.value.updating.filter(t=>t!==e.id)}},de=(e,t)=>{let n=s.getStore(ce);t.forEach(e=>{n.set({id:e.id,data:et(e)})}),se(n.firstLoad,e.id)},fe=(e,t)=>{let n=s.getStore(le),r=s.getStore(ue),i=s.getStore(R);t.forEach(e=>{let t=a(e.type);n.set({id:e.id,data:Z(e,t?.schemas?.channelSchema||X)}),e.controls.forEach(e=>{r.set({id:e.id,data:q(e)})}),se(r.firstLoad,e.id),e.properties.forEach(e=>{let t=o(e.type);i.set({id:e.id,data:Y(e,t?.schemas?.channelPropertySchema||J)})}),se(i.firstLoad,e.id)}),se(n.firstLoad,e.id)};return{isLoaded:()=>f()||h().length>0,refresh:()=>N({hidden:ee.all}),semaphore:l,firstLoad:u,data:d,firstLoadFinished:f,getting:p,fetching:m,findAll:h,findById:g,onEvent:O,set:k,unset:j,get:M,fetch:N,add:P,edit:F,save:te,remove:re,bulkRemove:L,bulkSetEnabled:ie,addZone:ae,removeZone:oe}}),ht=e=>mt(e),gt=b({type:k(C),severity:k(h),channelCategory:k(j).optional(),channelId:z.nullable().optional(),propertyCategory:k(S).optional(),propertyId:z.nullable().optional(),message:L().trim().nonempty(),expected:L().nullable().optional(),actual:L().nullable().optional()}),_t=b({deviceId:z,deviceIdentifier:L().nullable().optional(),deviceName:L().trim().nonempty(),deviceCategory:k(T),pluginType:L().trim().nonempty(),isValid:N(),issues:O(gt)}),vt=b({summary:b({totalDevices:x().int().nonnegative(),validDevices:x().int().nonnegative(),invalidDevices:x().int().nonnegative(),totalIssues:x().int().nonnegative(),errorCount:x().int().nonnegative(),warningCount:x().int().nonnegative()}),devices:O(_t)});b({fetching:b({items:N().default(!1),item:O(z)})});var yt=b({type:k(C),severity:k(h),channel_category:k(j).optional(),channel_id:L().uuid().nullable().optional(),property_category:k(S).optional(),property_id:L().uuid().nullable().optional(),message:L(),expected:L().nullable().optional(),actual:L().nullable().optional()}),bt=b({device_id:L().uuid(),device_identifier:L().nullable().optional(),device_name:L(),device_category:k(T),plugin_type:L(),is_valid:N(),issues:O(yt)});b({summary:b({total_devices:x(),valid_devices:x(),invalid_devices:x(),total_issues:x(),error_count:x(),warning_count:x()}),devices:O(bt)});var xt=e=>{let t=vt.safeParse(F(e));if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received devices validation data.`);return t.data},St=e=>{let t=_t.safeParse(F(e));if(!t.success)throw P.error(`Schema validation failed with:`,t.error),new G(`Failed to validate received device validation result data.`);return t.data},Ct={fetching:{items:!1,item:[]}},wt=e=>{let t=0,n=0;for(let r of e)for(let e of r.issues)e.severity===`error`?t++:n++;return{totalDevices:e.length,validDevices:e.filter(e=>e.isValid).length,invalidDevices:e.filter(e=>!e.isValid).length,totalIssues:t+n,errorCount:t,warningCount:n}},Tt=m(`devices_module-devices_validation`,()=>{let t=w(),r=e(Ct),i=e(!1),a=e(null),o=null,s={},c=()=>i.value,l=()=>r.value.fetching.items,u=e=>r.value.fetching.item.includes(e),d=()=>a.value?.devices??[],f=e=>a.value===null?null:a.value.devices.find(t=>t.deviceId===e)??null,p=async()=>{if(o)return o;let e=(async()=>{if(r.value.fetching.items)throw new U(`Already fetching validation.`);r.value.fetching.items=!0;try{let{data:e,error:r,response:o}=await t.client.GET(`/${n}/${H}/devices/validation`);if(e!==void 0){let t=xt(e.data);return a.value=t,i.value=!0,t}let s=`Failed to fetch devices validation.`;throw r&&(s=A(r,s)),new U(s,o.status)}finally{r.value.fetching.items=!1}})();o=e;try{return await e}finally{o=null}};return{semaphore:r,firstLoad:i,data:a,firstLoadFinished:c,fetching:l,getting:u,findAll:d,findById:f,fetch:p,get:async e=>{let i=s[e.id];if(i)return i;let o=(async()=>{if(r.value.fetching.item.includes(e.id))throw new U(`Already fetching device validation.`);r.value.fetching.item.push(e.id);try{let{data:r,error:i,response:o}=await t.client.GET(`/${n}/${H}/devices/{id}/validation`,{params:{path:{id:e.id}}});if(r!==void 0){let e=St(r.data);if(a.value!==null){let t=a.value.devices.findIndex(t=>t.deviceId===e.deviceId),n;t>=0?(n=[...a.value.devices],n[t]=e):n=[...a.value.devices,e],a.value={summary:wt(n),devices:n}}else{let t=[e];a.value={summary:wt(t),devices:t}}return e}let s=`Failed to fetch device validation.`;throw i&&(s=A(i,s)),new U(s,o.status)}finally{r.value.fetching.item=r.value.fetching.item.filter(t=>t!==e.id)}})();s[e.id]=o;try{return await o}finally{delete s[e.id]}},clear:()=>{a.value=null,i.value=!1},isLoaded:()=>c()||d().length>0,refresh:()=>p()}}),Et=e=>Tt(e),Dt=Symbol(`FB-Module-Devices`),Ot={install:(e,n)=>{let r=ne(e),i=te(e),o=a(e),s=oe(e),c=ae(e);for(let[e,t]of Object.entries(ve)){let r=(0,K.defaultsDeep)(n.i18n.global.getLocaleMessage(e),{devicesModule:t});n.i18n.global.setLocaleMessage(e,r)}let l=ht(n.store);e.provide(de,l),r.addStore(de,l);let u=it(n.store);e.provide(ce,u),r.addStore(ce,u);let d=Ye(n.store);e.provide(le,d),r.addStore(le,d);let f=ke(n.store);e.provide(ue,f),r.addStore(ue,f);let p=ze(n.store);e.provide(R,p),r.addStore(R,p);let m=Et(n.store);e.provide(fe,m),r.addStore(fe,m);let h=xe(n.store);e.provide(pe,h),r.addStore(pe,h),s.addModule(Dt,{type:me,name:`Devices`,description:`Manage your devices, channels, properties, and controls in one place.`,elements:[]}),n.router.getRoutes().find(e=>e.name===t.ROOT)&&ye.forEach(e=>{n.router.addRoute(t.ROOT,e)}),c.register(Dt,()=>ie([l,m])),i.on(`event`,e=>{if(e?.event?.startsWith(`DevicesModule.`)){if(e.event===B.DEVICE_CONNECTION_CHANGED){let t=(0,K.get)(e.payload,`device`);if(t&&typeof t==`object`&&`id`in t&&typeof t.id==`string`){let e=l.findById(t.id);if(e){let n=(0,K.get)(t,`status`);n&&typeof n==`object`&&l.set({id:t.id,data:{...e,status:F(n)}})}}return}if(!(e.payload===null||typeof e.payload!=`object`||!(`id`in e.payload)||typeof e.payload.id!=`string`))switch(e.event){case B.DEVICE_CREATED:case B.DEVICE_UPDATED:l.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.DEVICE_DELETED:l.unset({id:e.payload.id});break;case B.DEVICE_CONTROL_CREATED:u.onEvent({id:e.payload.id,data:e.payload});break;case B.DEVICE_CONTROL_DELETED:u.unset({id:e.payload.id});break;case B.CHANNEL_CREATED:case B.CHANNEL_UPDATED:d.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.CHANNEL_DELETED:d.unset({id:e.payload.id});break;case B.CHANNEL_CONTROL_CREATED:f.onEvent({id:e.payload.id,data:e.payload});break;case B.CHANNEL_CONTROL_DELETED:f.unset({id:e.payload.id});break;case B.CHANNEL_PROPERTY_CREATED:case B.CHANNEL_PROPERTY_UPDATED:case B.CHANNEL_PROPERTY_VALUE_SET:p.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.CHANNEL_PROPERTY_DELETED:p.unset({id:e.payload.id});break;case B.CHANNEL_PROPERTY_SET:p.onEvent({id:e.payload.id,type:String((0,K.get)(e.payload,`type`,`unknown`)),data:e.payload});break;case B.CHANNEL_INPUT_OCCURRENCE:h.onEvent(e.payload);break;default:o.warn(`Unhandled devices module event:`,e.event)}}})}};export{Q as a,We as c,Me as d,Pe as f,Te as g,we as h,ut as i,X as l,Ne as m,$ as n,lt as o,J as p,ct as r,He as s,Ot as t,Ue as u};