iobroker.assistant 1.2.0 → 1.3.1
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.
- package/README.md +17 -0
- package/admin/custom/.vite/manifest.json +18 -18
- package/admin/custom/assets/Components-D77NmS_I.js +2 -0
- package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C5NPM0Of.js → _virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-B4YbqhBb.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js} +10 -10
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared-Dsw5zWS8.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared--be2hWbV.js} +1 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-BsTz_EWE.js +122 -0
- package/admin/custom/assets/{hostInit-jJe8bIfV.js → hostInit-Blh7a-Qe.js} +1 -1
- package/admin/custom/assets/{lib-CL8mXvI6.js → lib-DBbNtolG.js} +1 -1
- package/admin/custom/assets/{mf-entry-bootstrap-0-ab227aa6.js → mf-entry-bootstrap-0-7abd30d3.js} +2 -2
- package/admin/custom/assets/{pendingShares-wrGtfliQ.js → pendingShares-U0D1MYK4.js} +1 -1
- package/admin/custom/customComponents.js +2 -2
- package/admin/custom/i18n/de.json +16 -0
- package/admin/custom/i18n/en.json +16 -0
- package/admin/custom/i18n/es.json +16 -0
- package/admin/custom/i18n/fr.json +16 -0
- package/admin/custom/i18n/it.json +16 -0
- package/admin/custom/i18n/nl.json +16 -0
- package/admin/custom/i18n/pl.json +16 -0
- package/admin/custom/i18n/pt.json +16 -0
- package/admin/custom/i18n/ru.json +16 -0
- package/admin/custom/i18n/uk.json +16 -0
- package/admin/custom/i18n/zh-cn.json +16 -0
- package/admin/custom/index.html +2 -2
- package/admin/custom/mf-manifest.json +1 -1
- package/admin/custom/mf-stats.json +1 -1
- package/admin/i18n/de.json +25 -2
- package/admin/i18n/en.json +25 -2
- package/admin/i18n/es.json +25 -2
- package/admin/i18n/fr.json +25 -2
- package/admin/i18n/it.json +25 -2
- package/admin/i18n/nl.json +25 -2
- package/admin/i18n/pl.json +25 -2
- package/admin/i18n/pt.json +25 -2
- package/admin/i18n/ru.json +25 -2
- package/admin/i18n/uk.json +25 -2
- package/admin/i18n/zh-cn.json +25 -2
- package/admin/jsonConfig.json +197 -13
- package/build/lib/credentials.js +11 -5
- package/build/lib/credentials.js.map +1 -1
- package/build/lib/llm.js +17 -3
- package/build/lib/llm.js.map +1 -1
- package/build/lib/nlu.js +263 -9
- package/build/lib/nlu.js.map +1 -1
- package/build/lib/piAgent.js +94 -0
- package/build/lib/piAgent.js.map +1 -0
- package/build/lib/systemAi.js +124 -0
- package/build/lib/systemAi.js.map +1 -0
- package/build/lib/voice/engines.js +31 -3
- package/build/lib/voice/engines.js.map +1 -1
- package/build/lib/voice/esphome.js +3 -0
- package/build/lib/voice/esphome.js.map +1 -1
- package/build/lib/voice/openrouter.js +220 -0
- package/build/lib/voice/openrouter.js.map +1 -0
- package/build/main.js +691 -116
- package/build/main.js.map +1 -1
- package/io-package.json +40 -30
- package/package.json +1 -1
- package/admin/custom/assets/Components-BSewCBfS.js +0 -2
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-SgSagTOv.js +0 -122
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"ConfigCustomAssistant","name":"ConfigCustomAssistant","metaData":{"name":"ConfigCustomAssistant","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ConfigCustomAssistant"},"remoteEntry":{"name":"customComponents.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ConfigCustomAssistant","pluginVersion":"1.23.5","publicPath":"auto"},"shared":[{"id":"ConfigCustomAssistant:@emotion/react","name":"@emotion/react","version":"11.14.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@emotion/styled","name":"@emotion/styled","version":"11.14.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/gui-components","name":"@iobroker/gui-components","version":"10.3.14","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/json-config","name":"@iobroker/json-config","version":"10.1.8","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/lib-CL8mXvI6.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-SgSagTOv.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/icons-material","name":"@mui/icons-material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/material","name":"@mui/material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react","name":"react","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react-dom","name":"react-dom","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react/jsx-runtime","name":"react/jsx-runtime","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ConfigCustomAssistant:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared-Dsw5zWS8.js"],"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C5NPM0Of.js","assets/Components-BSewCBfS.js","assets/rolldown-runtime-COiEfhsA.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"assets/Components-BSewCBfS.js","type":"chunk","isEntry":true,"size":164199},{"fileName":"assets/hostInit-jJe8bIfV.js","type":"chunk","isEntry":false,"size":6151},{"fileName":"assets/index-P2Xu9kJm.js","type":"chunk","isEntry":true,"size":670},{"fileName":"assets/pendingShares-wrGtfliQ.js","type":"chunk","isEntry":false,"size":3329},{"fileName":"customComponents.js","type":"chunk","isEntry":false,"size":23536},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C5NPM0Of.js","type":"chunk","isEntry":false,"size":8748},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js","type":"chunk","isEntry":false,"size":38784},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js","type":"chunk","isEntry":false,"size":9707},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js","type":"chunk","isEntry":false,"size":7146912},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared-Dsw5zWS8.js","type":"chunk","isEntry":false,"size":2374},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-SgSagTOv.js","type":"chunk","isEntry":false,"size":732786},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","type":"chunk","isEntry":false,"size":526},{"fileName":"assets/dist-B3E7IYuQ.js","type":"chunk","isEntry":false,"size":457},{"fileName":"assets/helpers-DE61bb74.js","type":"chunk","isEntry":false,"size":88},{"fileName":"assets/iconLibraryData-B5fiyl1C.js","type":"chunk","isEntry":false,"size":250966},{"fileName":"assets/lib-CL8mXvI6.js","type":"chunk","isEntry":false,"size":23451},{"fileName":"assets/prod-ChPGnyiA.js","type":"chunk","isEntry":false,"size":92192},{"fileName":"assets/rolldown-runtime-COiEfhsA.js","type":"chunk","isEntry":false,"size":1116},{"fileName":"assets/utils-Bi7ATSfV.js","type":"chunk","isEntry":false,"size":66578},{"fileName":"assets/vite-preload-helper-BbbETgeG.js","type":"chunk","isEntry":false,"size":1566},{"fileName":"index.html","type":"asset","isEntry":false,"size":1781},{"fileName":"assets/mf-entry-bootstrap-0-ab227aa6.js","type":"asset","isEntry":false,"size":2162}],"assetAnalysis":{"./src/Components.tsx":{"js":{"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C5NPM0Of.js","assets/Components-BSewCBfS.js","assets/rolldown-runtime-COiEfhsA.js"],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared-Dsw5zWS8.js"]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/styled":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js"]},"css":{"sync":[],"async":[]}},"react-dom":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"]},"css":{"sync":[],"async":[]}},"@mui/material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"]},"css":{"sync":[],"async":[]}},"@mui/icons-material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"]},"css":{"sync":[],"async":[]}},"@iobroker/gui-components":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Cdyjt5KT.js"]},"css":{"sync":[],"async":[]}},"@iobroker/json-config":{"js":{"sync":[],"async":["assets/lib-CL8mXvI6.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-SgSagTOv.js"]},"css":{"sync":[],"async":[]}},"react/jsx-runtime":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js"]},"css":{"sync":[],"async":[]}}}}
|
|
1
|
+
{"id":"ConfigCustomAssistant","name":"ConfigCustomAssistant","metaData":{"name":"ConfigCustomAssistant","type":"app","buildInfo":{"buildVersion":"1.0.0","buildName":"ConfigCustomAssistant"},"remoteEntry":{"name":"customComponents.js","path":"","type":"module"},"types":{"path":"","name":""},"globalName":"ConfigCustomAssistant","pluginVersion":"1.23.5","publicPath":"auto"},"shared":[{"id":"ConfigCustomAssistant:@emotion/react","name":"@emotion/react","version":"11.14.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@emotion/styled","name":"@emotion/styled","version":"11.14.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/gui-components","name":"@iobroker/gui-components","version":"10.3.14","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@iobroker/json-config","name":"@iobroker/json-config","version":"10.1.8","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/lib-DBbNtolG.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-BsTz_EWE.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/icons-material","name":"@mui/icons-material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:@mui/material","name":"@mui/material","version":"9.5.0","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react","name":"react","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react-dom","name":"react-dom","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"],"sync":[]},"css":{"async":[],"sync":[]}}},{"id":"ConfigCustomAssistant:react/jsx-runtime","name":"react/jsx-runtime","version":"19.3.1","singleton":true,"requiredVersion":"*","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js"],"sync":[]},"css":{"async":[],"sync":[]}}}],"remotes":[],"exposes":[{"id":"ConfigCustomAssistant:Components","name":"Components","assets":{"js":{"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared--be2hWbV.js"],"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-B4YbqhBb.js","assets/Components-D77NmS_I.js","assets/rolldown-runtime-COiEfhsA.js"]},"css":{"async":[],"sync":[]}},"path":"./Components"}],"buildOutput":[{"fileName":"assets/Components-D77NmS_I.js","type":"chunk","isEntry":true,"size":184984},{"fileName":"assets/hostInit-Blh7a-Qe.js","type":"chunk","isEntry":false,"size":6151},{"fileName":"assets/index-P2Xu9kJm.js","type":"chunk","isEntry":true,"size":670},{"fileName":"assets/pendingShares-U0D1MYK4.js","type":"chunk","isEntry":false,"size":3329},{"fileName":"customComponents.js","type":"chunk","isEntry":false,"size":23536},{"fileName":"assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-B4YbqhBb.js","type":"chunk","isEntry":false,"size":8748},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js","type":"chunk","isEntry":false,"size":38784},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js","type":"chunk","isEntry":false,"size":9707},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js","type":"chunk","isEntry":false,"size":7146915},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared--be2hWbV.js","type":"chunk","isEntry":false,"size":2374},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-BsTz_EWE.js","type":"chunk","isEntry":false,"size":732746},{"fileName":"assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","type":"chunk","isEntry":false,"size":526},{"fileName":"assets/dist-B3E7IYuQ.js","type":"chunk","isEntry":false,"size":457},{"fileName":"assets/helpers-DE61bb74.js","type":"chunk","isEntry":false,"size":88},{"fileName":"assets/iconLibraryData-B5fiyl1C.js","type":"chunk","isEntry":false,"size":250966},{"fileName":"assets/lib-DBbNtolG.js","type":"chunk","isEntry":false,"size":23451},{"fileName":"assets/prod-ChPGnyiA.js","type":"chunk","isEntry":false,"size":92192},{"fileName":"assets/rolldown-runtime-COiEfhsA.js","type":"chunk","isEntry":false,"size":1116},{"fileName":"assets/utils-Bi7ATSfV.js","type":"chunk","isEntry":false,"size":66578},{"fileName":"assets/vite-preload-helper-BbbETgeG.js","type":"chunk","isEntry":false,"size":1566},{"fileName":"index.html","type":"asset","isEntry":false,"size":1781},{"fileName":"assets/mf-entry-bootstrap-0-7abd30d3.js","type":"asset","isEntry":false,"size":2162}],"assetAnalysis":{"./src/Components.tsx":{"js":{"sync":["assets/dist-B3E7IYuQ.js","assets/vite-preload-helper-BbbETgeG.js","assets/helpers-DE61bb74.js","assets/utils-Bi7ATSfV.js","assets/_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-B4YbqhBb.js","assets/Components-D77NmS_I.js","assets/rolldown-runtime-COiEfhsA.js"],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared--be2hWbV.js"]},"css":{"sync":[],"async":[]}},"react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/react":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js"]},"css":{"sync":[],"async":[]}},"@emotion/styled":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js"]},"css":{"sync":[],"async":[]}},"react-dom":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"]},"css":{"sync":[],"async":[]}},"@mui/material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"]},"css":{"sync":[],"async":[]}},"@mui/icons-material":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"]},"css":{"sync":[],"async":[]}},"@iobroker/gui-components":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-o4EU_Ut5.js"]},"css":{"sync":[],"async":[]}},"@iobroker/json-config":{"js":{"sync":[],"async":["assets/lib-DBbNtolG.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js","assets/prod-ChPGnyiA.js","assets/iconLibraryData-B5fiyl1C.js","assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-BsTz_EWE.js"]},"css":{"sync":[],"async":[]}},"react/jsx-runtime":{"js":{"sync":[],"async":["assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js"]},"css":{"sync":[],"async":[]}}}}
|
package/admin/i18n/de.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Ein abgelaufener Timer/Wecker klingelt (Sound in Schleife) bis zu so lange, oder bis du 'Stop'/'Halt'/'Aufhören'/'Cancel' sagst (oder den State stopRinging schreibst). 0 = Sound einmal abspielen.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Eine Phrase, die eine Liste von Aktionen ausführt: \"Gute Nacht\" schaltet fünf Dinge aus und antwortet einmal. Phrasen: mehrere mit Komma getrennt (werden irgendwo im Satz erkannt, Groß-/Kleinschreibung und Umlaute sind egal). Aktionen als JSON, gleiche Form wie bei einem Trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Antwort: was der Assistent sagt (leer lassen = nichts sagen). Wird vor der Offline-Regel-Engine und vor dem LLM geprüft, eine Routine wird also nie umgedeutet.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Ein Schaltbefehl, der geklappt hat (an, aus, auf einen Wert), wird statt mit einem gesprochenen Satz mit einem kurzen Ton am Satelliten bestätigt, egal ob die Offline-Regeln oder die KI ihn ausgeführt haben. Fragen, Fehler und die Textkanäle bleiben unverändert.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Ein Trigger beobachtet States oder die Uhr und sagt dann etwas, schreibt einen State oder stellt dir eine Frage und handelt nach deiner Antwort. Einzelne Trigger lassen sich zur Laufzeit über triggers.items.<id>.enabled abschalten, über den fire-Knopf testen und alle gemeinsam über triggers.enabled.",
|
|
6
6
|
"API key": "API-Schlüssel",
|
|
7
7
|
"API password (usually empty)": "API-Passwort (meist leer)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Fernseher einschalten (optional)",
|
|
195
195
|
"Start delay (s)": "Startverzögerung (s)",
|
|
196
196
|
"Name": "Name",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Fernseher und Geräte des youtube-remote-Adapters, auf denen der Assistent abspielen darf, z. B. „spiele den Kanal Sailing OceanAir ab“. Die erste Zeile ist der Standard, wenn kein Player genannt wird; eine Anfrage von einem Satelliten im Raum einer Zeile geht an diese Zeile. Player: die youtube-remote-Instanz - sie findet ihren gekoppelten Fernseher selbst, auch nach erneutem Koppeln; bei mehreren Fernsehern in einer Instanz einen davon wählen. Einschalten: optionaler State, der den Fernseher einschaltet (z. B. samsungtv.0.<tv>.control.power) - ist er aus, wird der Fernseher zuerst eingeschaltet und das Video startet nach der Startverzögerung. Eine Power-Taste (Umschalter) wird nie gedrückt, weil sie einen laufenden Fernseher ausschalten würde. Benötigt „Schreiben von States erlauben“."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Fernseher und Geräte des youtube-remote-Adapters, auf denen der Assistent abspielen darf, z. B. „spiele den Kanal Sailing OceanAir ab“. Die erste Zeile ist der Standard, wenn kein Player genannt wird; eine Anfrage von einem Satelliten im Raum einer Zeile geht an diese Zeile. Player: die youtube-remote-Instanz - sie findet ihren gekoppelten Fernseher selbst, auch nach erneutem Koppeln; bei mehreren Fernsehern in einer Instanz einen davon wählen. Einschalten: optionaler State, der den Fernseher einschaltet (z. B. samsungtv.0.<tv>.control.power) - ist er aus, wird der Fernseher zuerst eingeschaltet und das Video startet nach der Startverzögerung. Eine Power-Taste (Umschalter) wird nie gedrückt, weil sie einen laufenden Fernseher ausschalten würde. Benötigt „Schreiben von States erlauben“.",
|
|
198
|
+
"Adapter pi-agent": "Adapter pi-agent",
|
|
199
|
+
"pi-agent instance": "pi-agent-Instanz",
|
|
200
|
+
"pi-agent timeout (s)": "pi-agent-Zeitlimit (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Alles, was die lokalen Stufen nicht beantworten können, geht an den Adapter pi-agent: sein Modell und Schlüssel (auch die systemweiten KI-Einstellungen von Admin), seine Tools und seine Schreibrechte. Jede Anfragequelle bekommt dort eine eigene Unterhaltung. Die Tools dieses Adapters (Timer, Gedächtnis, Durchsagen, YouTube) stehen dort nicht zur Verfügung; Timer und Wecker erledigen weiterhin die regelbasierten Befehle.",
|
|
202
|
+
"System-wide AI settings (admin)": "Systemweite KI-Einstellungen (Admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Provider, Modell und API-Schlüssel kommen aus den Systemeinstellungen von Admin (Reiter „KI“). Eine Änderung dort startet diese Instanz neu.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Leer: die systemweiten KI-Einstellungen von Admin werden verwendet",
|
|
206
|
+
"OpenRouter key for speech (optional)": "OpenRouter-Schlüssel für Sprache (optional)",
|
|
207
|
+
"OpenRouter credential": "OpenRouter-Zugangsdaten",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Leer: Der Schlüssel des KI-Anbieters wird verwendet, wenn das OpenRouter ist (auch aus den systemweiten KI-Einstellungen).",
|
|
209
|
+
"OpenRouter STT model (optional)": "OpenRouter-STT-Modell (optional)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Leer = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "OpenRouter-TTS-Modell (optional)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Leer = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "OpenRouter-Stimme (optional)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "Die Stimmen hängen vom Modell ab. Leer = die erste Stimme des Modells für die Sprache.",
|
|
215
|
+
"Calendar for commands for later": "Kalender für spätere Befehle",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Eine fullcalendar-Instanz: „Licht in 2 Stunden aus“ oder „Rollo um 22 Uhr auf 50 %“ wird ein Termin in diesem Kalender, und die KI kann Termine planen, auflisten und löschen. Ohne sie gehen solche Befehle an die KI.",
|
|
217
|
+
"Person": "Person",
|
|
218
|
+
"Guest": "Gast",
|
|
219
|
+
"Pet": "Haustier",
|
|
220
|
+
"Group": "Gruppe"
|
|
198
221
|
}
|
package/admin/i18n/en.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.",
|
|
6
6
|
"API key": "API key",
|
|
7
7
|
"API password (usually empty)": "API password (usually empty)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "TV power (optional)",
|
|
195
195
|
"Start delay (s)": "Start delay (s)",
|
|
196
196
|
"Name": "Name",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\"."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".",
|
|
198
|
+
"Adapter pi-agent": "Adapter pi-agent",
|
|
199
|
+
"pi-agent instance": "pi-agent instance",
|
|
200
|
+
"pi-agent timeout (s)": "pi-agent timeout (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.",
|
|
202
|
+
"System-wide AI settings (admin)": "System-wide AI settings (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Empty: the system-wide AI settings of admin are used",
|
|
206
|
+
"OpenRouter key for speech (optional)": "OpenRouter key for speech (optional)",
|
|
207
|
+
"OpenRouter credential": "OpenRouter credential",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).",
|
|
209
|
+
"OpenRouter STT model (optional)": "OpenRouter STT model (optional)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Empty = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "OpenRouter TTS model (optional)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Empty = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "OpenRouter voice (optional)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "The voices depend on the model. Empty = the first voice of the model for the language.",
|
|
215
|
+
"Calendar for commands for later": "Calendar for commands for later",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.",
|
|
217
|
+
"Person": "Person",
|
|
218
|
+
"Guest": "Guest",
|
|
219
|
+
"Pet": "Pet",
|
|
220
|
+
"Group": "Group"
|
|
198
221
|
}
|
package/admin/i18n/es.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Un temporizador/alarma activado sigue sonando (repitiendo el sonido) durante este tiempo, o hasta que digas \"stop\"/\"halt\"/\"aufhören\"/\"cancel\" (o escribas el estado stopRing). 0 = reproducir el sonido una vez.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Una frase que ejecuta una lista de acciones: \"Gute Nacht\" apaga cinco cosas y responde una sola vez. Frases: varias separadas por comas (se reconocen en cualquier parte de la oración; mayúsculas/minúsculas y diéresis no importan). Acciones en JSON, con el mismo formato que un disparador: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Respuesta: lo que contesta el asistente (déjalo vacío para no decir nada). Se comprueba antes del motor de reglas sin conexión y antes del LLM, así que una rutina nunca se reinterpreta.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Un comando de conmutación correcto (encender, apagar, ajustar un valor) se confirma con un tono corto en el satélite en lugar de una frase hablada, tanto si lo ejecutaron las reglas sin conexión como la IA. Las preguntas, los errores y los canales de texto no se ven afectados.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Un disparador vigila estados o el reloj y luego habla, escribe un estado o te hace una pregunta y actúa según tu respuesta. Desactiva disparadores individuales en tiempo de ejecución con triggers.items.<id>.enabled, prueba uno con su botón fire y todos a la vez con triggers.enabled.",
|
|
6
6
|
"API key": "clave API",
|
|
7
7
|
"API password (usually empty)": "Contraseña de API (normalmente vacía)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Encendido del TV (opcional)",
|
|
195
195
|
"Start delay (s)": "Retardo de inicio (s)",
|
|
196
196
|
"Name": "Nombre",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Televisores y dispositivos del adaptador youtube-remote en los que el asistente puede reproducir, p. ej. \"reproduce el canal Sailing OceanAir\". La primera fila es la predeterminada si no se nombra ningún reproductor; una petición de un satélite en la sala de una fila va a esa fila. Reproductor: la instancia de youtube-remote; encuentra sola su televisor vinculado, también tras volver a vincularlo; con varios televisores en una instancia, elija uno. Encendido: estado opcional que enciende el televisor (p. ej. samsungtv.0.<tv>.control.power): si está apagado, primero se enciende y el vídeo empieza tras el retardo. Nunca se pulsa un botón de encendido (conmutador), porque apagaría un televisor encendido. Requiere \"Permitir escribir estados\"."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Televisores y dispositivos del adaptador youtube-remote en los que el asistente puede reproducir, p. ej. \"reproduce el canal Sailing OceanAir\". La primera fila es la predeterminada si no se nombra ningún reproductor; una petición de un satélite en la sala de una fila va a esa fila. Reproductor: la instancia de youtube-remote; encuentra sola su televisor vinculado, también tras volver a vincularlo; con varios televisores en una instancia, elija uno. Encendido: estado opcional que enciende el televisor (p. ej. samsungtv.0.<tv>.control.power): si está apagado, primero se enciende y el vídeo empieza tras el retardo. Nunca se pulsa un botón de encendido (conmutador), porque apagaría un televisor encendido. Requiere \"Permitir escribir estados\".",
|
|
198
|
+
"Adapter pi-agent": "Adaptador pi-agent",
|
|
199
|
+
"pi-agent instance": "Instancia de pi-agent",
|
|
200
|
+
"pi-agent timeout (s)": "Tiempo de espera de pi-agent (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Todo lo que los niveles locales no pueden responder va al adaptador pi-agent: su modelo y clave (también los ajustes de IA de todo el sistema en admin), sus herramientas y sus permisos de escritura. Cada origen de solicitudes obtiene allí su propia conversación. Las herramientas de este adaptador (temporizadores, memoria, avisos, YouTube) no están disponibles allí; los comandos basados en reglas siguen gestionando temporizadores y alarmas.",
|
|
202
|
+
"System-wide AI settings (admin)": "Ajustes de IA de todo el sistema (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "El proveedor, el modelo y la clave API proceden de los ajustes del sistema de admin (pestaña \"IA\"). Un cambio allí reinicia esta instancia.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Vacío: se usan los ajustes de IA de todo el sistema de admin",
|
|
206
|
+
"OpenRouter key for speech (optional)": "Clave de OpenRouter para voz (opcional)",
|
|
207
|
+
"OpenRouter credential": "Credencial de OpenRouter",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Vacío: se usa la clave del proveedor de IA si es OpenRouter (también desde la configuración de IA de todo el sistema).",
|
|
209
|
+
"OpenRouter STT model (optional)": "Modelo STT de OpenRouter (opcional)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Vacío = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "Modelo TTS de OpenRouter (opcional)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Vacío = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "Voz de OpenRouter (opcional)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "Las voces dependen del modelo. Vacío = la primera voz del modelo para el idioma.",
|
|
215
|
+
"Calendar for commands for later": "Calendario para órdenes posteriores",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Una instancia de fullcalendar: «apaga la luz dentro de 2 horas» o «persianas al 50 % a las 22» se convierte en un evento de este calendario, y la IA puede planificar, listar y cancelar eventos. Sin ella, esas órdenes van a la IA.",
|
|
217
|
+
"Person": "Persona",
|
|
218
|
+
"Guest": "Invitado",
|
|
219
|
+
"Pet": "Mascota",
|
|
220
|
+
"Group": "Grupo"
|
|
198
221
|
}
|
package/admin/i18n/fr.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Une alarme/minuterie déclenchée continue de sonner (en boucle) pendant une durée maximale, ou jusqu'à ce que vous disiez « stop », « halt », « aufhören » ou « cancel » (ou que vous écriviez l'état stopRinging). 0 = le son est joué une seule fois.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Une phrase qui exécute une liste d'actions : \"Gute Nacht\" éteint cinq appareils et répond une seule fois. Phrases : plusieurs, séparées par des virgules (reconnues n'importe où dans la phrase, majuscules/minuscules et trémas sans importance). Actions en JSON, même format qu'un déclencheur : [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Réponse : ce que répond l'assistant (laisser vide pour rester silencieux). Vérifiée avant le moteur de règles hors ligne et avant le LLM, une routine n'est donc jamais réinterprétée.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Une commande de commutation réussie (allumer, éteindre, régler une valeur) est confirmée par un bref signal sonore sur le satellite au lieu d'une phrase prononcée, qu'elle ait été exécutée par les règles hors ligne ou par l'IA. Les questions, les erreurs et les canaux texte ne sont pas concernés.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Un déclencheur surveille des états ou l'horloge, puis parle, écrit un état ou vous pose une question et agit selon votre réponse. Désactivez un déclencheur pendant l'exécution avec triggers.items.<id>.enabled, testez-le avec son bouton fire, et tous à la fois avec triggers.enabled.",
|
|
6
6
|
"API key": "Clé API",
|
|
7
7
|
"API password (usually empty)": "Mot de passe API (généralement vide)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Alimentation TV (optionnel)",
|
|
195
195
|
"Start delay (s)": "Délai de démarrage (s)",
|
|
196
196
|
"Name": "Nom",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Téléviseurs et appareils de l’adaptateur youtube-remote sur lesquels l’assistant peut lire, p. ex. « joue la chaîne Sailing OceanAir ». La première ligne est utilisée par défaut si aucun lecteur n’est nommé ; une demande d’un satellite dans la pièce d’une ligne va à cette ligne. Lecteur : l’instance youtube-remote - elle trouve elle-même son téléviseur associé, même après une nouvelle association ; avec plusieurs téléviseurs dans une instance, choisissez-en un. Alimentation : état optionnel qui allume le téléviseur (p. ex. samsungtv.0.<tv>.control.power) - s’il est éteint, il est d’abord allumé et la vidéo démarre après le délai. Un bouton d’alimentation (bascule) n’est jamais pressé, car il éteindrait un téléviseur allumé. Nécessite « Autoriser l’écriture des états »."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Téléviseurs et appareils de l’adaptateur youtube-remote sur lesquels l’assistant peut lire, p. ex. « joue la chaîne Sailing OceanAir ». La première ligne est utilisée par défaut si aucun lecteur n’est nommé ; une demande d’un satellite dans la pièce d’une ligne va à cette ligne. Lecteur : l’instance youtube-remote - elle trouve elle-même son téléviseur associé, même après une nouvelle association ; avec plusieurs téléviseurs dans une instance, choisissez-en un. Alimentation : état optionnel qui allume le téléviseur (p. ex. samsungtv.0.<tv>.control.power) - s’il est éteint, il est d’abord allumé et la vidéo démarre après le délai. Un bouton d’alimentation (bascule) n’est jamais pressé, car il éteindrait un téléviseur allumé. Nécessite « Autoriser l’écriture des états ».",
|
|
198
|
+
"Adapter pi-agent": "Adaptateur pi-agent",
|
|
199
|
+
"pi-agent instance": "Instance pi-agent",
|
|
200
|
+
"pi-agent timeout (s)": "Délai d'attente de pi-agent (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Tout ce à quoi les niveaux locaux ne peuvent pas répondre est transmis à l'adaptateur pi-agent : son modèle et sa clé (y compris les paramètres d'IA de tout le système dans admin), ses outils et ses droits d'écriture. Chaque source de requêtes y obtient sa propre conversation. Les outils de cet adaptateur (minuteurs, mémoire, annonces, YouTube) n'y sont pas disponibles ; les commandes à base de règles continuent de gérer minuteurs et alarmes.",
|
|
202
|
+
"System-wide AI settings (admin)": "Paramètres IA du système (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Le fournisseur, le modèle et la clé API proviennent des paramètres système d'admin (onglet « IA »). Une modification à cet endroit redémarre cette instance.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Vide : les paramètres IA du système d'admin sont utilisés",
|
|
206
|
+
"OpenRouter key for speech (optional)": "Clé OpenRouter pour la voix (facultatif)",
|
|
207
|
+
"OpenRouter credential": "Identifiants OpenRouter",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Vide : la clé du fournisseur d'IA est utilisée s'il s'agit d'OpenRouter (y compris depuis les paramètres d'IA du système).",
|
|
209
|
+
"OpenRouter STT model (optional)": "Modèle STT OpenRouter (facultatif)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Vide = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "Modèle TTS OpenRouter (facultatif)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Vide = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "Voix OpenRouter (facultatif)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "Les voix dépendent du modèle. Vide = la première voix du modèle pour la langue.",
|
|
215
|
+
"Calendar for commands for later": "Calendrier pour les commandes différées",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Une instance fullcalendar : « éteins la lumière dans 2 heures » ou « volets à 50 % à 22 h » devient un événement de ce calendrier, et l’IA peut planifier, lister et supprimer des événements. Sans elle, ces commandes vont à l’IA.",
|
|
217
|
+
"Person": "Personne",
|
|
218
|
+
"Guest": "Invité",
|
|
219
|
+
"Pet": "Animal",
|
|
220
|
+
"Group": "Groupe"
|
|
198
221
|
}
|
package/admin/i18n/it.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Un timer/allarme attivato continua a suonare (il suono si ripete ciclicamente) per un periodo massimo di tempo definito, oppure finché non si pronuncia 'stop'/'halt'/'aufhören'/'cancel' (o non si imposta lo stato stopRinging). 0 = il suono viene riprodotto una sola volta.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Una frase che esegue un elenco di azioni: \"Gute Nacht\" spegne cinque cose e risponde una volta sola. Frasi: più frasi separate da virgole (riconosciute in qualsiasi punto della frase, maiuscole/minuscole e dieresi non contano). Azioni in JSON, stesso formato di un trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Risposta: cosa risponde l'assistente (lascia vuoto per non dire nulla). Verificata prima del motore di regole offline e prima dell'LLM, quindi una routine non viene mai reinterpretata.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Un comando di commutazione riuscito (acceso, spento, impostare un valore) viene confermato con un breve tono sul satellite invece che con una frase parlata, sia che l'abbiano eseguito le regole offline sia l'IA. Domande, errori e canali di testo non cambiano.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Un trigger osserva stati o l'orologio e poi parla, scrive uno stato o ti fa una domanda e agisce in base alla tua risposta. Disattiva i singoli trigger durante l'esecuzione con triggers.items.<id>.enabled, provane uno con il suo pulsante fire e tutti insieme con triggers.enabled.",
|
|
6
6
|
"API key": "Chiave API",
|
|
7
7
|
"API password (usually empty)": "Password API (di norma vuota)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Accensione TV (opzionale)",
|
|
195
195
|
"Start delay (s)": "Ritardo di avvio (s)",
|
|
196
196
|
"Name": "Nome",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Televisori e dispositivi dell’adattatore youtube-remote su cui l’assistente può riprodurre, ad es. \"riproduci il canale Sailing OceanAir\". La prima riga è quella predefinita se non viene nominato alcun lettore; una richiesta da un satellite nella stanza di una riga va a quella riga. Lettore: l’istanza youtube-remote - trova da sola il televisore associato, anche dopo una nuova associazione; con più televisori in un’istanza sceglierne uno. Accensione: stato opzionale che accende il televisore (ad es. samsungtv.0.<tv>.control.power) - se è spento, viene prima acceso e il video parte dopo il ritardo. Un pulsante di accensione (interruttore) non viene mai premuto, perché spegnerebbe un televisore acceso. Richiede \"Consenti scrittura degli stati\"."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Televisori e dispositivi dell’adattatore youtube-remote su cui l’assistente può riprodurre, ad es. \"riproduci il canale Sailing OceanAir\". La prima riga è quella predefinita se non viene nominato alcun lettore; una richiesta da un satellite nella stanza di una riga va a quella riga. Lettore: l’istanza youtube-remote - trova da sola il televisore associato, anche dopo una nuova associazione; con più televisori in un’istanza sceglierne uno. Accensione: stato opzionale che accende il televisore (ad es. samsungtv.0.<tv>.control.power) - se è spento, viene prima acceso e il video parte dopo il ritardo. Un pulsante di accensione (interruttore) non viene mai premuto, perché spegnerebbe un televisore acceso. Richiede \"Consenti scrittura degli stati\".",
|
|
198
|
+
"Adapter pi-agent": "Adattatore pi-agent",
|
|
199
|
+
"pi-agent instance": "Istanza pi-agent",
|
|
200
|
+
"pi-agent timeout (s)": "Timeout di pi-agent (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Tutto ciò a cui i livelli locali non sanno rispondere va all'adattatore pi-agent: il suo modello e la sua chiave (anche le impostazioni IA di sistema di admin), i suoi strumenti e i suoi permessi di scrittura. Ogni origine delle richieste vi ottiene una conversazione propria. Gli strumenti di questo adattatore (timer, memoria, annunci, YouTube) lì non sono disponibili; timer e sveglie restano gestiti dai comandi basati su regole.",
|
|
202
|
+
"System-wide AI settings (admin)": "Impostazioni IA di sistema (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Provider, modello e chiave API provengono dalle impostazioni di sistema di admin (scheda \"IA\"). Una modifica lì riavvia questa istanza.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Vuoto: vengono usate le impostazioni IA di sistema di admin",
|
|
206
|
+
"OpenRouter key for speech (optional)": "Chiave OpenRouter per la voce (opzionale)",
|
|
207
|
+
"OpenRouter credential": "Credenziali OpenRouter",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Vuoto: viene usata la chiave del provider di IA, se è OpenRouter (anche dalle impostazioni IA di sistema).",
|
|
209
|
+
"OpenRouter STT model (optional)": "Modello STT OpenRouter (opzionale)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Vuoto = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "Modello TTS OpenRouter (opzionale)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Vuoto = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "Voce OpenRouter (opzionale)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "Le voci dipendono dal modello. Vuoto = la prima voce del modello per la lingua.",
|
|
215
|
+
"Calendar for commands for later": "Calendario per i comandi differiti",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Un’istanza di fullcalendar: \"spegni la luce tra 2 ore\" o \"tapparelle al 50 % alle 22\" diventa un evento di questo calendario, e l’IA può pianificare, elencare ed eliminare eventi. Senza, questi comandi vanno all’IA.",
|
|
217
|
+
"Person": "Persona",
|
|
218
|
+
"Guest": "Ospite",
|
|
219
|
+
"Pet": "Animale",
|
|
220
|
+
"Group": "Gruppo"
|
|
198
221
|
}
|
package/admin/i18n/nl.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Een geactiveerde timer/alarm blijft rinkelen (het geluid wordt herhaald) gedurende een bepaalde tijd, of totdat u 'stop'/'halt'/'aufhören'/'cancel' zegt (of de status 'stopRinging' schrijft). 0 = het geluid één keer afspelen.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Een zin die een lijst met acties uitvoert: \"Gute Nacht\" schakelt vijf dingen uit en antwoordt één keer. Zinnen: meerdere, gescheiden door komma's (overal in de zin herkend, hoofdletters/kleine letters en umlauts maken niet uit). Acties als JSON, in dezelfde vorm als een trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Antwoord: wat de assistent antwoordt (leeg laten om stil te blijven). Wordt gecontroleerd vóór de offline regel-engine en vóór het LLM, zodat een routine nooit anders wordt geïnterpreteerd.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Een geslaagd schakelcommando (aan, uit, op een waarde zetten) wordt met een korte toon op de satelliet bevestigd in plaats van met een gesproken zin, of de offline regels of de AI het nu hebben uitgevoerd. Vragen, fouten en de tekstkanalen blijven ongewijzigd.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Een trigger bewaakt states of de klok en spreekt dan, schrijft een state of stelt je een vraag en handelt naar je antwoord. Schakel afzonderlijke triggers tijdens het draaien uit met triggers.items.<id>.enabled, test er één met de fire-knop en allemaal met triggers.enabled.",
|
|
6
6
|
"API key": "API-sleutel",
|
|
7
7
|
"API password (usually empty)": "API-wachtwoord (meestal leeg)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Tv aanzetten (optioneel)",
|
|
195
195
|
"Start delay (s)": "Startvertraging (s)",
|
|
196
196
|
"Name": "Naam",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Tv’s en apparaten van de youtube-remote-adapter waarop de assistent mag afspelen, bijv. \"speel het kanaal Sailing OceanAir af\". De eerste rij is de standaard als er geen speler genoemd wordt; een verzoek van een satelliet in de ruimte van een rij gaat naar die rij. Speler: de youtube-remote-instantie - die vindt zelf de gekoppelde tv, ook na opnieuw koppelen; met meerdere tv’s in één instantie kies je er één. Aan/uit: optionele state die de tv aanzet (bijv. samsungtv.0.<tv>.control.power) - staat die uit, dan wordt de tv eerst aangezet en start de video na de startvertraging. Een aan/uit-knop (toggle) wordt nooit ingedrukt, omdat die een draaiende tv uit zou zetten. Vereist \"Schrijven van states toestaan\"."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Tv’s en apparaten van de youtube-remote-adapter waarop de assistent mag afspelen, bijv. \"speel het kanaal Sailing OceanAir af\". De eerste rij is de standaard als er geen speler genoemd wordt; een verzoek van een satelliet in de ruimte van een rij gaat naar die rij. Speler: de youtube-remote-instantie - die vindt zelf de gekoppelde tv, ook na opnieuw koppelen; met meerdere tv’s in één instantie kies je er één. Aan/uit: optionele state die de tv aanzet (bijv. samsungtv.0.<tv>.control.power) - staat die uit, dan wordt de tv eerst aangezet en start de video na de startvertraging. Een aan/uit-knop (toggle) wordt nooit ingedrukt, omdat die een draaiende tv uit zou zetten. Vereist \"Schrijven van states toestaan\".",
|
|
198
|
+
"Adapter pi-agent": "Adapter pi-agent",
|
|
199
|
+
"pi-agent instance": "pi-agent-instantie",
|
|
200
|
+
"pi-agent timeout (s)": "pi-agent-time-out (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Alles wat de lokale niveaus niet kunnen beantwoorden, gaat naar de adapter pi-agent: zijn taalmodel en sleutel (ook de systeembrede AI-instellingen van admin), zijn tools en zijn schrijfrechten. Elke bron van verzoeken krijgt daar een eigen gesprek. De tools van deze adapter (timers, geheugen, omroepen, YouTube) zijn daar niet beschikbaar; timers en wekkers blijven door de op regels gebaseerde opdrachten afgehandeld.",
|
|
202
|
+
"System-wide AI settings (admin)": "Systeembrede AI-instellingen (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Provider, model en API-sleutel komen uit de systeeminstellingen van admin (tabblad \"AI\"). Een wijziging daar herstart deze instantie.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Leeg: de systeembrede AI-instellingen van admin worden gebruikt",
|
|
206
|
+
"OpenRouter key for speech (optional)": "OpenRouter-sleutel voor spraak (optioneel)",
|
|
207
|
+
"OpenRouter credential": "OpenRouter-inloggegevens",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Leeg: de sleutel van de AI-provider wordt gebruikt als dat OpenRouter is (ook uit de systeembrede AI-instellingen).",
|
|
209
|
+
"OpenRouter STT model (optional)": "OpenRouter STT-model (optioneel)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Leeg = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "OpenRouter TTS-model (optioneel)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Leeg = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "OpenRouter-stem (optioneel)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "De stemmen hangen af van het model. Leeg = de eerste stem van het model voor de taal.",
|
|
215
|
+
"Calendar for commands for later": "Agenda voor latere opdrachten",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Een fullcalendar-instantie: \"doe het licht over 2 uur uit\" of \"rolluik om 22 uur op 50 %\" wordt een afspraak in deze agenda, en de AI kan afspraken plannen, tonen en verwijderen. Zonder gaan zulke opdrachten naar de AI.",
|
|
217
|
+
"Person": "Persoon",
|
|
218
|
+
"Guest": "Gast",
|
|
219
|
+
"Pet": "Huisdier",
|
|
220
|
+
"Group": "Groep"
|
|
198
221
|
}
|
package/admin/i18n/pl.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Uruchomiony timer/alarm dzwoni (odtwarza dźwięk w pętli) przez maksymalnie podany czas lub do momentu, aż powiesz „stop”/„halt”/„aufhören”/„cancel” (lub wpiszesz stan stopRinging). 0 = dźwięk zostanie odtworzony jeden raz.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Fraza, która uruchamia listę akcji: \"Gute Nacht\" wyłącza pięć rzeczy i odpowiada jeden raz. Frazy: kilka oddzielonych przecinkami (rozpoznawane w dowolnym miejscu zdania, wielkość liter i umlauty nie mają znaczenia). Akcje w formacie JSON, w tej samej postaci co wyzwalacz: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Odpowiedź: co odpowiada asystent (zostaw puste, aby nic nie mówił). Sprawdzane przed silnikiem reguł offline i przed LLM, więc rutyna nigdy nie zostanie zinterpretowana inaczej.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Udane polecenie przełączenia (włącz, wyłącz, ustaw wartość) jest potwierdzane krótkim sygnałem na satelicie zamiast wypowiedzianego zdania, niezależnie od tego, czy wykonały je reguły offline, czy AI. Pytania, błędy i kanały tekstowe pozostają bez zmian.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Wyzwalacz obserwuje stany lub zegar, a następnie mówi, zapisuje stan albo zadaje ci pytanie i działa zgodnie z twoją odpowiedzią. Pojedyncze wyzwalacze wyłączysz w trakcie działania przez triggers.items.<id>.enabled, przetestujesz przyciskiem fire, a wszystkie naraz przez triggers.enabled.",
|
|
6
6
|
"API key": "Klucz API",
|
|
7
7
|
"API password (usually empty)": "Hasło API (zwykle puste)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Zasilanie TV (opcjonalnie)",
|
|
195
195
|
"Start delay (s)": "Opóźnienie startu (s)",
|
|
196
196
|
"Name": "Nazwa",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Telewizory i urządzenia adaptera youtube-remote, na których asystent może odtwarzać, np. „odtwórz kanał Sailing OceanAir”. Pierwszy wiersz jest domyślny, gdy nie podano odtwarzacza; żądanie z satelity w pomieszczeniu wiersza trafia do tego wiersza. Odtwarzacz: instancja youtube-remote - sama znajduje sparowany telewizor, także po ponownym sparowaniu; przy kilku telewizorach w jednej instancji wybierz jeden z nich. Zasilanie: opcjonalny stan włączający telewizor (np. samsungtv.0.<tv>.control.power) - jeśli jest wyłączony, najpierw zostanie włączony, a wideo ruszy po opóźnieniu. Przycisk zasilania (przełącznik) nigdy nie jest naciskany, bo wyłączyłby działający telewizor. Wymaga „Zezwalaj na zapis stanów”."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Telewizory i urządzenia adaptera youtube-remote, na których asystent może odtwarzać, np. „odtwórz kanał Sailing OceanAir”. Pierwszy wiersz jest domyślny, gdy nie podano odtwarzacza; żądanie z satelity w pomieszczeniu wiersza trafia do tego wiersza. Odtwarzacz: instancja youtube-remote - sama znajduje sparowany telewizor, także po ponownym sparowaniu; przy kilku telewizorach w jednej instancji wybierz jeden z nich. Zasilanie: opcjonalny stan włączający telewizor (np. samsungtv.0.<tv>.control.power) - jeśli jest wyłączony, najpierw zostanie włączony, a wideo ruszy po opóźnieniu. Przycisk zasilania (przełącznik) nigdy nie jest naciskany, bo wyłączyłby działający telewizor. Wymaga „Zezwalaj na zapis stanów”.",
|
|
198
|
+
"Adapter pi-agent": "Adapter pi-agent",
|
|
199
|
+
"pi-agent instance": "Instancja pi-agent",
|
|
200
|
+
"pi-agent timeout (s)": "Limit czasu pi-agent (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Wszystko, na co nie potrafią odpowiedzieć poziomy lokalne, trafia do adaptera pi-agent: jego model i klucz (także ogólnosystemowe ustawienia AI w adminie), jego narzędzia i uprawnienia zapisu. Każde źródło zapytań otrzymuje tam własną rozmowę. Narzędzia tego adaptera (minutniki, pamięć, komunikaty, YouTube) nie są tam dostępne; minutniki i budziki nadal obsługują polecenia oparte na regułach.",
|
|
202
|
+
"System-wide AI settings (admin)": "Ogólnosystemowe ustawienia AI (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Dostawca, model i klucz API pochodzą z ustawień systemowych admina (karta „AI”). Zmiana tam uruchamia tę instancję ponownie.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Puste: używane są ogólnosystemowe ustawienia AI admina",
|
|
206
|
+
"OpenRouter key for speech (optional)": "Klucz OpenRouter do mowy (opcjonalnie)",
|
|
207
|
+
"OpenRouter credential": "Dane uwierzytelniające OpenRouter",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Puste: używany jest klucz dostawcy AI, jeśli jest to OpenRouter (także z systemowych ustawień AI).",
|
|
209
|
+
"OpenRouter STT model (optional)": "Model STT OpenRouter (opcjonalnie)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Puste = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "Model TTS OpenRouter (opcjonalnie)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Puste = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "Głos OpenRouter (opcjonalnie)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "Głosy zależą od modelu. Puste = pierwszy głos modelu dla danego języka.",
|
|
215
|
+
"Calendar for commands for later": "Kalendarz dla poleceń na później",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Instancja fullcalendar: „wyłącz światło za 2 godziny” lub „rolety na 50 % o 22:00” staje się wydarzeniem w tym kalendarzu, a AI może planować, wyświetlać i usuwać wydarzenia. Bez niej takie polecenia trafiają do AI.",
|
|
217
|
+
"Person": "Osoba",
|
|
218
|
+
"Guest": "Gość",
|
|
219
|
+
"Pet": "Zwierzę",
|
|
220
|
+
"Group": "Grupa"
|
|
198
221
|
}
|
package/admin/i18n/pt.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Um temporizador/alarme disparado continua tocando (repetindo o som) por até este período, ou até que você diga 'parar'/'interromper'/'ouvir'/'cancelar' (ou escreva o estado stopRinging). 0 = reproduzir o som uma vez.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Uma frase que executa uma lista de ações: \"Gute Nacht\" desliga cinco coisas e responde uma única vez. Frases: várias separadas por vírgulas (reconhecidas em qualquer parte da frase, maiúsculas/minúsculas e tremas não importam). Ações em JSON, no mesmo formato de um gatilho: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Resposta: o que o assistente responde (deixe vazio para ficar em silêncio). Verificado antes do motor de regras offline e antes do LLM, para que uma rotina nunca seja reinterpretada.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Um comando de comutação bem-sucedido (ligar, desligar, definir um valor) é confirmado com um som curto no satélite em vez de uma frase falada, quer tenha sido executado pelas regras offline ou pela IA. Perguntas, erros e os canais de texto não são afetados.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Um gatilho observa estados ou o relógio e então fala, escreve um estado ou faz uma pergunta e age de acordo com a sua resposta. Desative gatilhos individuais em tempo de execução com triggers.items.<id>.enabled, teste um com o botão fire e todos com triggers.enabled.",
|
|
6
6
|
"API key": "Chave de API",
|
|
7
7
|
"API password (usually empty)": "Palavra-passe da API (normalmente vazia)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Ligar TV (opcional)",
|
|
195
195
|
"Start delay (s)": "Atraso de início (s)",
|
|
196
196
|
"Name": "Nome",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Televisores e dispositivos do adaptador youtube-remote em que o assistente pode reproduzir, p. ex. \"reproduz o canal Sailing OceanAir\". A primeira linha é a padrão quando nenhum leitor é nomeado; um pedido de um satélite na divisão de uma linha vai para essa linha. Leitor: a instância youtube-remote - encontra sozinha o televisor emparelhado, também depois de voltar a emparelhar; com vários televisores numa instância, escolha um. Ligar: estado opcional que liga o televisor (p. ex. samsungtv.0.<tv>.control.power) - se estiver desligado, é ligado primeiro e o vídeo começa após o atraso. Um botão de ligar (alternador) nunca é premido, porque desligaria um televisor ligado. Requer \"Permitir escrever estados\"."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Televisores e dispositivos do adaptador youtube-remote em que o assistente pode reproduzir, p. ex. \"reproduz o canal Sailing OceanAir\". A primeira linha é a padrão quando nenhum leitor é nomeado; um pedido de um satélite na divisão de uma linha vai para essa linha. Leitor: a instância youtube-remote - encontra sozinha o televisor emparelhado, também depois de voltar a emparelhar; com vários televisores numa instância, escolha um. Ligar: estado opcional que liga o televisor (p. ex. samsungtv.0.<tv>.control.power) - se estiver desligado, é ligado primeiro e o vídeo começa após o atraso. Um botão de ligar (alternador) nunca é premido, porque desligaria um televisor ligado. Requer \"Permitir escrever estados\".",
|
|
198
|
+
"Adapter pi-agent": "Adaptador pi-agent",
|
|
199
|
+
"pi-agent instance": "Instância do pi-agent",
|
|
200
|
+
"pi-agent timeout (s)": "Tempo limite do pi-agent (s)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Tudo o que os níveis locais não conseguem responder vai para o adaptador pi-agent: o seu modelo e chave (também as definições de IA de todo o sistema no admin), as suas ferramentas e as suas permissões de escrita. Cada origem de pedidos obtém lá uma conversa própria. As ferramentas deste adaptador (temporizadores, memória, anúncios, YouTube) não estão disponíveis lá; os temporizadores e alarmes continuam a ser tratados pelos comandos baseados em regras.",
|
|
202
|
+
"System-wide AI settings (admin)": "Configurações de IA do sistema (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Provedor, modelo e chave de API vêm das configurações do sistema do admin (aba \"IA\"). Uma alteração ali reinicia esta instância.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Vazio: são usadas as configurações de IA do sistema do admin",
|
|
206
|
+
"OpenRouter key for speech (optional)": "Chave OpenRouter para voz (opcional)",
|
|
207
|
+
"OpenRouter credential": "Credencial OpenRouter",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Vazio: é usada a chave do provedor de IA, se for OpenRouter (também das configurações de IA de todo o sistema).",
|
|
209
|
+
"OpenRouter STT model (optional)": "Modelo STT do OpenRouter (opcional)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Vazio = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "Modelo TTS do OpenRouter (opcional)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Vazio = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "Voz do OpenRouter (opcional)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "As vozes dependem do modelo. Vazio = a primeira voz do modelo para o idioma.",
|
|
215
|
+
"Calendar for commands for later": "Calendário para comandos posteriores",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Uma instância do fullcalendar: \"desliga a luz daqui a 2 horas\" ou \"estores a 50 % às 22h\" torna-se um evento neste calendário, e a IA pode planear, listar e cancelar eventos. Sem ela, esses comandos vão para a IA.",
|
|
217
|
+
"Person": "Pessoa",
|
|
218
|
+
"Guest": "Convidado",
|
|
219
|
+
"Pet": "Animal de estimação",
|
|
220
|
+
"Group": "Grupo"
|
|
198
221
|
}
|
package/admin/i18n/ru.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"A fired timer/alarm keeps ringing (looping the sound) for up to this long, or until you say 'stop'/'halt'/'aufhören'/'cancel' (or write the stopRinging state). 0 = play the sound once.": "Сработавший таймер/сигнал тревоги продолжает звучать (звук зацикливается) до указанного времени или до тех пор, пока вы не произнесете «стоп»/«остановка»/«отмена» (или не запишете состояние stopRinging). 0 = воспроизведение звука один раз.",
|
|
3
3
|
"A phrase that runs a list of actions: \"Gute Nacht\" switches off five things and answers once. Phrases: several separated by commas (matched anywhere in the sentence, upper/lower case and umlauts do not matter). Actions as JSON, same shape as a trigger: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Reply: what the assistant answers (leave empty to stay silent). Matched before the offline rule engine and before the LLM, so a routine is never reinterpreted.": "Фраза, запускающая список действий: \"Gute Nacht\" выключает пять устройств и отвечает один раз. Фразы: несколько через запятую (распознаются в любом месте предложения, регистр и умлауты не важны). Действия в формате JSON, как у триггера: [{\"setState\":{\"id\":\"hm-rpc.0.ABC.1.STATE\",\"value\":false}},{\"say\":\"Schlaf gut\",\"room\":\"Schlafzimmer\"}]. Ответ: что говорит ассистент (оставьте пустым, чтобы промолчать). Проверяется до офлайн-движка правил и до LLM, поэтому рутина никогда не будет истолкована иначе.",
|
|
4
|
-
"A
|
|
4
|
+
"A switch command that worked (on, off, set to a value) is confirmed by a short tone on the satellite instead of a spoken sentence, whether the offline rules or the AI carried it out. Questions, errors and the text channels are unaffected.": "Успешная команда переключения (вкл, выкл, установить значение) подтверждается коротким сигналом на сателлите вместо произнесённой фразы — неважно, выполнили её офлайн-правила или ИИ. Вопросы, ошибки и текстовые каналы не затрагиваются.",
|
|
5
5
|
"A trigger watches states or the clock and then speaks, writes a state, or asks you a question and acts on your answer. Switch single triggers off at runtime with triggers.items.<id>.enabled, test one with its fire button, and all of them with triggers.enabled.": "Триггер следит за состояниями или временем, а затем говорит, записывает состояние или задаёт вам вопрос и действует по вашему ответу. Отдельные триггеры можно отключить во время работы через triggers.items.<id>.enabled, проверить кнопкой fire, а все сразу — через triggers.enabled.",
|
|
6
6
|
"API key": "ключ API",
|
|
7
7
|
"API password (usually empty)": "Пароль API (обычно пусто)",
|
|
@@ -194,5 +194,28 @@
|
|
|
194
194
|
"TV power (optional)": "Питание ТВ (необязательно)",
|
|
195
195
|
"Start delay (s)": "Задержка старта (с)",
|
|
196
196
|
"Name": "Имя",
|
|
197
|
-
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Телевизоры и устройства адаптера youtube-remote, на которых ассистент может воспроизводить, например «включи канал Sailing OceanAir». Первая строка используется по умолчанию, если плеер не назван; запрос от спутника в комнате строки идёт на эту строку. Плеер: экземпляр youtube-remote — он сам находит связанный телевизор, в том числе после повторной привязки; если в экземпляре несколько телевизоров, выберите один из них. Питание: необязательное состояние, включающее телевизор (например samsungtv.0.<tv>.control.power) — если телевизор выключен, он сначала включается, а видео стартует после задержки. Кнопка питания (переключатель) никогда не нажимается, потому что выключила бы работающий телевизор. Требуется «Разрешить запись состояний»."
|
|
197
|
+
"TVs and devices of the youtube-remote adapter the assistant may play on, e.g. \"play the channel Sailing OceanAir\". The first row is the default when no player is named; a request from a satellite in the room of a row goes to that row. Player: the youtube-remote instance - it finds its paired TV itself, also after the TV was paired again; with several TVs in one instance pick one of them. Power: optional state that switches the TV on (e.g. samsungtv.0.<tv>.control.power) - if it is off, the TV is switched on first and the video starts after the start delay. A power button (toggle) is never pressed, because it would switch a running TV off. Needs \"Allow writing states\".": "Телевизоры и устройства адаптера youtube-remote, на которых ассистент может воспроизводить, например «включи канал Sailing OceanAir». Первая строка используется по умолчанию, если плеер не назван; запрос от спутника в комнате строки идёт на эту строку. Плеер: экземпляр youtube-remote — он сам находит связанный телевизор, в том числе после повторной привязки; если в экземпляре несколько телевизоров, выберите один из них. Питание: необязательное состояние, включающее телевизор (например samsungtv.0.<tv>.control.power) — если телевизор выключен, он сначала включается, а видео стартует после задержки. Кнопка питания (переключатель) никогда не нажимается, потому что выключила бы работающий телевизор. Требуется «Разрешить запись состояний».",
|
|
198
|
+
"Adapter pi-agent": "Адаптер pi-agent",
|
|
199
|
+
"pi-agent instance": "Экземпляр pi-agent",
|
|
200
|
+
"pi-agent timeout (s)": "Тайм-аут pi-agent (с)",
|
|
201
|
+
"Everything the local tiers cannot answer goes to the adapter pi-agent: its model and key (also the system-wide AI settings of admin), its tools and its write permissions. Every request source gets a conversation of its own there. The tools of this adapter (timers, memory, announcements, YouTube) are not available to it; the rule-based commands still handle timers and alarms.": "Всё, на что не могут ответить локальные уровни, передаётся адаптеру pi-agent: его модель и ключ (в том числе общесистемные настройки ИИ в admin), его инструменты и права записи. Каждый источник запросов получает там свой диалог. Инструменты этого адаптера (таймеры, память, объявления, YouTube) ему недоступны; таймеры и будильники по-прежнему обрабатывают команды на основе правил.",
|
|
202
|
+
"System-wide AI settings (admin)": "Общесистемные настройки ИИ (admin)",
|
|
203
|
+
"OpenRouter": "OpenRouter",
|
|
204
|
+
"Provider, model and API key come from the system settings of admin (tab \"AI\"). A change there restarts this instance.": "Провайдер, модель и API-ключ берутся из системных настроек admin (вкладка «ИИ»). Их изменение перезапускает этот экземпляр.",
|
|
205
|
+
"Empty: the system-wide AI settings of admin are used": "Пусто: используются общесистемные настройки ИИ из admin",
|
|
206
|
+
"OpenRouter key for speech (optional)": "Ключ OpenRouter для речи (опционально)",
|
|
207
|
+
"OpenRouter credential": "Учётные данные OpenRouter",
|
|
208
|
+
"Empty: the key of the AI provider is used if that is OpenRouter (also from the system-wide AI settings).": "Пусто: используется ключ ИИ-провайдера, если это OpenRouter (также из общесистемных настроек ИИ).",
|
|
209
|
+
"OpenRouter STT model (optional)": "Модель OpenRouter STT (опционально)",
|
|
210
|
+
"Empty = openai/whisper-large-v3-turbo.": "Пусто = openai/whisper-large-v3-turbo.",
|
|
211
|
+
"OpenRouter TTS model (optional)": "Модель OpenRouter TTS (опционально)",
|
|
212
|
+
"Empty = elevenlabs/eleven-flash-v2.5.": "Пусто = elevenlabs/eleven-flash-v2.5.",
|
|
213
|
+
"OpenRouter voice (optional)": "Голос OpenRouter (опционально)",
|
|
214
|
+
"The voices depend on the model. Empty = the first voice of the model for the language.": "Голоса зависят от модели. Пусто = первый голос модели для языка.",
|
|
215
|
+
"Calendar for commands for later": "Календарь для отложенных команд",
|
|
216
|
+
"A fullcalendar instance: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in this calendar, and the AI can plan, list and cancel events. Without it such commands go to the AI.": "Экземпляр fullcalendar: «выключи свет через 2 часа» или «жалюзи на 50 % в 22:00» становится событием в этом календаре, а ИИ может планировать, показывать и удалять события. Без него такие команды уходят к ИИ.",
|
|
217
|
+
"Person": "Человек",
|
|
218
|
+
"Guest": "Гость",
|
|
219
|
+
"Pet": "Питомец",
|
|
220
|
+
"Group": "Группа"
|
|
198
221
|
}
|