iobroker.assistant 1.3.0 → 1.4.0
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 +12 -0
- package/admin/custom/.vite/manifest.json +62 -62
- package/admin/custom/assets/{Components-x2Dfv8qE.js → Components-D15eOzOp.js} +2 -2
- package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-B4YbqhBb.js → _virtual_mf-localSharedImportMap___mfe_internal__ConfigCustomAssistant__mf_owner__1-C8qbMwoi.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-IaosaymG.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-BWAFmFMj.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-o4EU_Ut5.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-Bh5IbNwb.js} +1 -1
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare__shared--be2hWbV.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare__shared-D8mhEL60.js} +1 -1
- package/admin/custom/assets/_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild___mf_0_iobroker_mf_1_json_mf_2_config__prebuild__-T80cpMmm.js +122 -0
- package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__-M61rjtmp.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__prebuild__react_mf_1_jsx_mf_2_runtime__prebuild__--SURtz9t.js} +1 -1
- package/admin/custom/assets/hostInit-DpzPHTOk.js +1 -0
- package/admin/custom/assets/{lib-DBbNtolG.js → lib-70DV4zKj.js} +1 -1
- package/admin/custom/assets/{mf-entry-bootstrap-0-7abd30d3.js → mf-entry-bootstrap-0-0119ee25.js} +2 -2
- package/admin/custom/assets/{pendingShares-U0D1MYK4.js → pendingShares-CKvyybtG.js} +1 -1
- package/admin/custom/customComponents.js +2 -2
- 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 +6 -1
- package/admin/i18n/en.json +6 -1
- package/admin/i18n/es.json +6 -1
- package/admin/i18n/fr.json +6 -1
- package/admin/i18n/it.json +6 -1
- package/admin/i18n/nl.json +6 -1
- package/admin/i18n/pl.json +6 -1
- package/admin/i18n/pt.json +6 -1
- package/admin/i18n/ru.json +6 -1
- package/admin/i18n/uk.json +6 -1
- package/admin/i18n/zh-cn.json +6 -1
- package/admin/jsonConfig.json +38 -4
- package/build/lib/nlu.js +14 -0
- package/build/lib/nlu.js.map +1 -1
- package/build/lib/piAgent.js +5 -0
- package/build/lib/piAgent.js.map +1 -1
- package/build/lib/voice/captures.js +87 -0
- package/build/lib/voice/captures.js.map +1 -0
- package/build/lib/voice/engines.js +1 -1
- package/build/lib/voice/engines.js.map +1 -1
- package/build/lib/voice/esphome.js +81 -5
- package/build/lib/voice/esphome.js.map +1 -1
- package/build/lib/voice/ttsCache.js +49 -1
- package/build/lib/voice/ttsCache.js.map +1 -1
- package/build/lib/voice/vad.js +14 -1
- package/build/lib/voice/vad.js.map +1 -1
- package/build/main.js +173 -63
- package/build/main.js.map +1 -1
- package/io-package.json +29 -27
- package/package.json +5 -5
- 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 +0 -122
- package/admin/custom/assets/hostInit-Blh7a-Qe.js +0 -1
- /package/admin/custom/assets/{_virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__163539842885036__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js → _virtual_mf___mfe_internal__ConfigCustomAssistant__mf_owner__212234797318001__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-BkH7fzDw.js} +0 -0
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "assistant",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.4.0": {
|
|
7
|
+
"en": "ESPHome satellites: new column \"Speech threshold\" per device (empty = 250, as before). A device with a quiet microphone, for example a phone running a satellite app, reacted to the wake word but dropped the command as silence unless one spoke loudly right next to it. When an utterance is dropped although it came close to the threshold, the log now says so and suggests a value\nVoice: the length limit for spoken answers is now a setting (\"Longest spoken answer\", Voice tab, default 400 characters ≈ 25–30 seconds, 0 = no limit). Longer answers stopped after about half a minute without notice; the log warning now names the setting. For a spoken request the AI model (cloud LLM and pi-agent) is told the limit and asked not to read out state ids or long numbers, so the answer fits instead of being cut\nESPHome satellites: the microphone closes again when nobody starts speaking within 5 s of the wake word (8 s after a follow-up question). A false wake kept it open for 12.6 s before\nESPHome satellites: new option \"Keep dropped recordings for diagnosis\". Recordings dropped as silence or returned empty by the speech recognition are stored as WAV plus a JSON with the detector levels under Files → assistant.N/captures (the newest 50), to find out what set a satellite off. Off by default: they contain audio from the room",
|
|
8
|
+
"de": "ESPHome-Satelliten: neue Spalte „Sprachschwelle“ pro Gerät (leer = 250, wie zuvor). Ein Gerät mit leisem Mikrofon, z. B. ein Telefon mit Satelliten-App, reagierte auf das Weckwort, gab den Befehl aber aus, es sei denn, jemand sprach laut daneben. Wenn eine Äußerung fällt, obwohl sie nahe dran war, sagt das Log das und schlägt einen Wert vor\nStimme: Die Länge für mündliche Antworten ist jetzt einstellbar („Längste Antwort“, Sprachtab, 400 Zeichen ≈ 25—30 Sekunden, 0 = unbegrenzt). Längere Antworten hörten ohne Vorwarnung auf; die Logwarnung benennt nun die Einstellung. Bei mündlicher Anfrage wird dem KI-Modell (Cloud LLM und Pi-Agent) das Limit mitgeteilt und keine langen Zahlen vorgelesen, damit die Antwort passt\nESPHome-Satelliten: Das Mikrofon geht wieder zu, wenn innerhalb von 5 s nach dem Weckwort niemand spricht (8 s nach einer Folgefrage). Vorher war es 12,6 s lang aktiv\nESPHome-Satelliten: neue Option „Daten zur Diagnose speichern“. Die Spracherkennung gibt stumm oder leer zurück, als WAV plus JSON mit den Melderstufen unter Files → Assistant.n/Captures (die neuesten 50) gespeichert, um herauszufinden, was einen Satelliten ausgelöst hat. Standardmäßig aus: Ton vom Raum ist drin",
|
|
9
|
+
"ru": "Спутники EspHome: новый столбец «Порог речи» для каждого устройства (пусто = 250, как и раньше). Устройство с бесшумным микрофоном, например телефон, на котором запущено спутниковое приложение, отреагировало на слово для пробуждения, но отбрасывало команду как молчание, если рядом не заговоришь громко. Если высказывание было пропущено, хотя оно и приблизилось к пороговому значению, в журнале появится сообщение об этом и указано значение\nГолос: теперь задано ограничение длины устных ответов («Самый длинный устный ответ», вкладка «Голос», по умолчанию 400 символов ≈ 25—30 секунд, 0 = без ограничений). Более длинные ответы прекратились примерно через полминуты без предварительного уведомления; теперь значение параметра указано в предупреждении в журнале. При голосовом запросе модель искусственного интеллекта (облачный LLM и pi-agent) получает информацию о предельном значении и не зачитывает идентификаторы состояний или длинные числа, поэтому ответ подходит, а не вырезан\nСпутники EspHome: микрофон снова закрывается, когда никто не начинает говорить в течение 5 секунд после пробуждения (через 8 секунд после следующего вопроса). После ложного пробуждения устройство оставалось открытым в течение 12,6 с\nСпутники EspHome: новая опция «Сохраняйте потерянные записи для диагностики». Записи, потерянные в тишине или оставленные пустыми при распознавании речи, сохраняются в формате WAV и JSON с уровнями детектора в разделе Файлы → Assistant.n/Captures (последние 50), чтобы узнать, что послужило причиной срабатывания спутника. По умолчанию выключено: в них содержится звук из комнаты",
|
|
10
|
+
"pt": "Satélites ESPHome: nova coluna “Limite de fala” por aparelho (vazia = 250, como antes). Um dispositivo com microfone silencioso, por exemplo, um telefone com aplicativo de satélite, reagiu à palavra de ativação, mas silenciou a menos que falasse alto ao lado. Quando um enunciado cai, embora esteja perto do limite, o log agora diz isso e sugere um valor\nVoz: o limite para respostas faladas agora é definido (“Resposta mais longa”, guia Voz, 400 caracteres padrão ≈ 25—30 segundos, 0 = sem limite). Respostas longas pararam após meio minuto sem aviso prévio; o aviso agora nomeia a opção. Para um pedido falado, o modelo de IA (cloud LLM e pi-agent) não lê IDs de estado ou números longos, então a resposta cabe em vez de ser cortada\nSatélites ESPHome: o microfone fecha novamente quando ninguém começa a falar 5 s após a palavra de ativação (8 s após uma pergunta). Um falso velório abriu 12,6 s antes\nSatélites ESPHome: nova opção “Manter gravações para diagnóstico”. As gravações silenciadas ou retornadas vazias pelo reconhecimento de voz são armazenadas em WAV e JSON com os níveis do detector em Files → Assistant.n/Captures (os 50 mais novos), para descobrir o que acionou um satélite. Desligado por padrão: contêm áudio da sala",
|
|
11
|
+
"nl": "ESPhome-satellieten: nieuwe kolom „Spraakdrempel” per apparaat (leeg = 250, zoals eerder). Een apparaat met een stille microfoon, bijvoorbeeld een telefoon met een satellietapp, reageerde op het wake-word, maar liet het commando vallen als stilte, tenzij iemand luid ernaast sprak. Als een uiting wordt weggelaten, hoewel deze bijna de drempelwaarde heeft bereikt, staat dat nu in het logboek en wordt een waarde voorgesteld\nSpraak: de lengtelimiet voor gesproken antwoorden is nu een instelling („Langst gesproken antwoord”, tabblad Spraak, standaard 400 tekens ≈ 25—30 seconden, 0 = geen limiet). Langere antwoorden stopten na ongeveer een halve minuut zonder voorafgaande kennisgeving; de logwaarschuwing geeft nu een naam aan de instelling. Voor een gesproken verzoek wordt aan het AI-model (cloud LLM en pi-agent) verteld wat de limiet is en wordt gevraagd om staats-ID's of lange cijfers niet voor te lezen, zodat het antwoord past in plaats van te worden ingekort\nESPhome-satellieten: de microfoon wordt weer gesloten als niemand binnen 5 seconden na het wake-word begint te spreken (8 seconden na een vervolgvraag). Een valse wake hield hem 12,6 s eerder open\nESPhome-satellieten: nieuwe optie „Opnames bewaren voor diagnose”. Opnamen die door de spraakherkenning als stilte zijn weggelaten of als leeg worden teruggestuurd, worden opgeslagen als WAV plus een JSON met de detectorniveaus onder Bestanden → Assistant.n/Captures (de nieuwste 50), om uit te zoeken wat een satelliet heeft veroorzaakt. Standaard uitgeschakeld: ze bevatten audio uit de kamer",
|
|
12
|
+
"fr": "Satellites ESPhome : nouvelle colonne « Seuil vocal » par appareil (vide = 250, comme avant). Un appareil doté d'un micro silencieux, par exemple un téléphone doté d'une application satellite, a réagi au réveil mais a annulé la commande à moins que l'on ne parle fort juste à côté. Lorsqu'un énoncé est supprimé alors qu'il approchait du seuil, le journal l'indique et suggère une valeur\nVoix : la limite de longueur des réponses orales est désormais réglée (« Réponse la plus longue », onglet Voix, 400 caractères par défaut, 25 à 30 secondes, 0 = aucune limite). Les réponses longues se sont arrêtées au bout d'une demi-minute sans préavis ; le log indique désormais le réglage. Pour une demande orale, le modèle AI (cloud LLM et pi-agent) reçoit la limite et ne doit pas lire les ID d'état ni les longs chiffres. La réponse est donc adaptée au lieu d'être coupée\nSatellites ESPhome : le micro se ferme à nouveau lorsque personne ne parle dans les 5 s qui suivent le réveil (8 s après une question de suivi). Un faux sillage l'a maintenu ouvert 12,6 s\nSatellites ESPhome : nouvelle option « Enregistrer les données pour le diagnostic ». Les enregistrements supprimés ou renvoyés vides par la reconnaissance vocale sont stockés au format WAV et JSON avec les niveaux de détection sous Files → Assistant.n/Captures (les 50 plus récents), pour savoir ce qui a déclenché un satellite. Désactivé par défaut : le son de la pièce y est diffusé",
|
|
13
|
+
"it": "Satelliti ESPHome: nuova colonna «Soglia vocale» per dispositivo (vuota = 250). Un dispositivo con microfono silenzioso, ad esempio un telefono con app satellitare, ha reagito alla parola di attivazione ma è silenziosa. Quando un enunciato viene eliminato anche se si avvicina alla soglia, il log ora lo dice e suggerisce un valore\nVoce: il limite di durata delle risposte vocali è ora impostato («Risposta più lunga», voce, 400 caratteri ≈ 25-30 secondi, 0 = nessun limite). Le risposte lunghe cessano dopo circa mezzo minuto senza preavviso; l'avviso ora nomina l'impostazione. Su richiesta orale, al modello AI (cloud LLM e pi-agent) viene chiesto di non leggere ID di stato o numeri lunghi, quindi la risposta è adatta\nSatelliti ESPhome: il microfono si richiude quando nessuno inizia a parlare entro 5 s dalla sveglia (8 s dopo una domanda). Una falsa scia lo teneva aperto per 12,6 s\nSatelliti ESPhome: nuova opzione «Salva dati per la diagnosi». Le registrazioni silenziate o rese vuote dal riconoscimento vocale vengono archiviate come WAV più un JSON con i livelli del sensore in File → Assistant.n/Captures (i 50 più recenti), per scoprire cosa ha spento un satellite. Off di default: contengono audio dalla sala",
|
|
14
|
+
"es": "Satélites ESPhome: nueva columna «Umbral de voz» por dispositivo (vacía = 250, como antes). Un dispositivo con un micrófono silencioso, por ejemplo, un teléfono con una aplicación de satélite, reaccionó al despertar, pero dejó caer la orden de silencio a menos que se hablara en voz alta justo al lado. Cuando se deja caer un enunciado aunque se acerca al umbral, el registro ahora lo dice y sugiere un valor\nVoz: el límite de longitud de las respuestas es ahora un ajuste («Respuesta más larga», pestaña Voz, 400 caracteres por defecto ≈ 25 a 30 segundos, 0 = sin límite). Las respuestas más largas se detienen medio minuto sin previo aviso; el aviso de registro ahora nombra el ajuste. Para una solicitud oral, al modelo de IA (LLM en la nube y agente de PI) se le dice el límite y se le pide que no lea las identificaciones estatales ni los números largos, así que la respuesta cabe\nSatélites ESPhome: el micrófono se vuelve a cerrar cuando nadie empieza a hablar a los 5 s de la palabra de activación (8 s después de la pregunta). Una falsa estela la mantuvo abierta 12,6 s antes\nSatélites ESPhome: nueva opción «Guardar grabaciones para diagnosticar». Las grabaciones silenciadas o devueltas vacías por el reconocimiento de voz se almacenan como WAV y JSON con los niveles del detector en Files → Assistant.n/Captures (los 50 más nuevos), para saber qué es lo que hizo que un satélite se apagara. Desactivados por defecto: contienen audio de la sala",
|
|
15
|
+
"pl": "Satelity ESPhome: nowa kolumna „Próg mowy” na urządzenie (pusta = 250, jak poprzednio). Urządzenie z cichym mikrofonem, na przykład telefon z aplikacją satelitarną, zareagowało na słowo „budzenie”, ale porzuciło polecenie jako ciszę, chyba że ktoś mówił głośno tuż obok niego. Kiedy wypowiedź zostaje upuszczona, chociaż zbliżyła się do progu, dziennik mówi teraz tak i sugeruje wartość\nGłos: limit długości odpowiedzi mówionych jest teraz ustawieniem („Najdłuższa odpowiedź mówiona”, karta Głos, domyślnie 400 znaków ≈ 25—30 sekund, 0 = brak limitu). Dłuższe odpowiedzi zatrzymały się po około pół minuty bez powiadomienia; ostrzeżenie dziennika nazywa teraz ustawienie. W przypadku żądania mówionego model AI (cloud LLM i pi agent) jest informowany o limitu i proszony jest o nie odczytywanie identyfikatorów stanu lub długich liczb, więc odpowiedź pasuje zamiast być cięta\nSatelity ESPhome: mikrofon zamyka się ponownie, gdy nikt nie zacznie mówić w ciągu 5 s od słowa „budzenia” (8 s po dalszym pytaniu). Fałszywe budzenie utrzymywało go otwarte przez 12,6 s wcześniej\nSatelity ESPhome: nowa opcja „Zachowaj upuszczone nagrania do diagnozy”. Nagrania usunięte jako cisza lub zwrócone puste przez rozpoznawanie mowy są przechowywane jako WAV plus JSON z poziomami detektora w sekcji Pliki → Asystent.n/Captures (najnowsze 50), aby dowiedzieć się, co wyłączyło satelitę. Domyślnie wyłączone: zawierają dźwięk z pokoju",
|
|
16
|
+
"uk": "Супутники ESPHome: новий стовпець «Поріг мовлення» на пристрій (порожній = 250, як і раніше). Пристрій з тихим мікрофоном, наприклад телефон із супутниковим додатком, відреагував на слово «пробудження», але відкинув команду як тишу, якщо хтось голосно не говорив прямо біля неї. Коли висловлювання скидається, хоча воно наблизилося до порогу, журнал тепер говорить про це і пропонує значення\nГолос: ліміт довжини для розмовних відповідей тепер є параметром («Найдовша розмовна відповідь», вкладка Голос, за замовчуванням 400 символів ≈ 25—30 секунд, 0 = без обмеження). Довші відповіді припиняються приблизно через півхвилини без попередження; попередження журналу тепер називає налаштування. Для розмовного запиту моделі AI (хмарний LLM та pi-агент) повідомляють обмеження та просять не читати ідентифікатори стану або довгі числа, тому відповідь підходить, а не скорочується\nСупутники ESPHome: мікрофон знову закривається, коли ніхто не починає говорити протягом 5 с після слова пробудження (8 с після наступного запитання). До цього помилковий будильник тримав його відкритим протягом 12,6 с\nСупутники ESPHome: нова опція «Зберігати скинуті записи для діагностики». Записи, скинуті як тиша або повернуті порожніми за допомогою розпізнавання мовлення, зберігаються як WAV плюс JSON з рівнями детектора в розділі Файли → Асистент.n/Captures (найновіші 50), щоб дізнатися, що вимкнуло супутник. Вимкнено за замовчуванням: вони містять аудіо з кімнати",
|
|
17
|
+
"zh-cn": "ESPhome 卫星:每台设备的新列 “语音阈值”(空值 = 250,和以前一样)。带有静音麦克风的设备,例如运行卫星应用程序的手机,会对唤醒词做出反应,但除非有人在旁边大声说话,否则会将该命令视为静音。当一个话语虽然已接近阈值但仍被删除时,日志现在会这样说并建议一个值\n语音:口头答案的长度限制现在是一项设置(“最长口语答案”,“语音” 选项卡,默认 400 个字符 ≥ 25—30 秒,0 = 无限制)。较长的答案在大约半分钟后停止,恕不另行通知;日志警告现在为设置命名。对于口头请求,AI 模型(cloud LLM 和 pi-agent)会被告知极限,并要求他们不要读出州 ID 或长数字,因此答案是合适的,而不是被剪掉的\nespHome 卫星:当在唤醒词发出后 5 秒(后续提问后 8 秒)内没有人开始说话时,麦克风会再次关闭。之前的虚假唤醒使它保持打开状态 12.6 秒\nESPhome卫星:新选项 “保留丢失的记录以供诊断”。语音识别以静音状态丢失或返回空白的录音以 WAV 和 JSON 的形式存储,探测器级别位于 “文件” → Assistant.n/Captures(最新的 50 个)下,以找出导致卫星失效的原因。默认情况下处于关闭状态:它们包含来自房间的音频"
|
|
18
|
+
},
|
|
19
|
+
"1.3.1": {
|
|
20
|
+
"en": "pi-agent: the language of the satellites goes along with every request, so pi-agent asks its confirmation questions (\"… Say yes or no.\") in it instead of the system language. Before, a Russian satellite was asked \"Sag ja oder nein\", and the German \"Ja\" came back empty from the speech recognition: nothing happened. Needs a pi-agent version that knows the field\nRequests about a script (\"Skript\", \"script\", \"скрипт\", also JavaScript/Blockly) always go to the cloud model: routines, rule engine and local LLM read their details as commands of their own (\"write a script that switches the kitchen light every hour\" was answered with the time). A reply to a question of the cloud model about the script goes there too\nVoice: speech that the recognition returns as empty text is now logged (\"Voice Q (…): (empty)\") for ESPHome and native satellites too, instead of ending without a trace\nChat: opens at the newest entry, and a new request scrolls into view again. Before, the tab often opened at the oldest entries",
|
|
21
|
+
"de": "pi-agent: Die Sprache der Satelliten folgt jeder Anfrage, also stellt Pi-Agent die Bestätigungsfragen („... Sag ja oder nein.“) darin statt in der Systemsprache. Vorher fragte ein russischer Satellit „Sag ja oder nein“ und das deutsche „Ja“ war leer aus der Spracherkennung: nichts geschah. Benötigt Pi-Agent-Version, die das Feld kennt\nAnfragen zu einem Skript („Skript“, „Script“, „auch JavaScript/Blockly“) gehen immer an das Cloud-Modell: Routinen, Rule Engine und lokales LLM lesen ihre Daten als eigene Befehle („write a script that switch the kitchen light every hour“ wurde mit der Zeit beantwortet). Eine Antwort zum Cloud-Modell zum Skript gibt es auch\nStimme: Sprache, die die Erkennung als Leertext ausgibt, wird jetzt protokolliert („Voice Q (...): (leer)“) auch für ESPhome und native Satelliten, statt spurlos zu enden\nChat: Öffnet beim neuesten Eintrag und eine neue Anfrage. Vorher öffnete der Tab oft die ältesten Einträge",
|
|
22
|
+
"ru": "pi-agent: язык спутников соответствует каждому запросу, поэтому pi-agent задает в нем подтверждающие вопросы («... Скажи да или нет») вместо системного языка. Ранее российскому спутнику задавали вопрос «Sag ja oder nein», а немецкое «Да» при распознавании речи давало пустое слово: ничего не произошло. Нужна версия pi-agent, которая разбирается в полевых условиях\nЗапросы о скрипте («Skript», «script», «script», также JavaScript/Blockly) всегда поступают в облачную модель: программы, движок правил и локальный LLM считывают их данные в виде собственных команд («напишите сценарий, включающий кухонное освещение каждый час» отвечали вместе со временем). Ответ на вопрос об облачной модели, касающийся сценария, также приводится здесь\nГолос: речь, которую распознавание возвращает в виде пустого текста, теперь записывается в журнал («Voice Q (...): (пусто)») для EspHome и нативных спутников, а не оканчивается бесследно\nЧат: открывается при самой новой записи, а новый запрос снова появляется в поле зрения. Раньше вкладка часто открывалась для самых старых записей",
|
|
23
|
+
"pt": "pi-agent: o idioma dos satélites acompanha cada solicitação, então o pi-agent faz perguntas de confirmação (“... Diga sim ou não”) em vez do idioma do sistema. Antes, perguntavam a um satélite russo “Sag ja oder nein” e o alemão “Ja” voltava vazio do reconhecimento de voz: nada acontecia. Precisa de um pi-agent que conheça a área\nPedidos sobre um script (“Skript”, “script”, “e também JavaScript/Blockly) sempre seguem o modelo de nuvem: rotinas, motor de regras e LLM local lêem seus detalhes como comandos próprios (“escreva um script que acenda a luz da cozinha a cada hora” foi respondido com a hora). A resposta à pergunta do modelo de nuvem sobre o script também\nVoz: a fala que o reconhecimento retorna como texto vazio agora é registrada (“Voice Q (...): (empty)”) para ESPHome e satélites nativos, em vez de terminar sem deixar rasto\nChat: abre na entrada mais recente e uma nova solicitação é exibida. Antes, a aba abria nas entradas mais antigas",
|
|
24
|
+
"nl": "pi-Agent: de taal van de satellieten hoort bij elk verzoek, dus stelt pi-agent daarin de bevestigingsvragen („... Zeg ja of nee.”) in plaats van in de systeemtaal. Vroeger werd aan een Russische satelliet gevraagd „Sag ja oder nein”, en het Duitse „Ja” kwam met lege handen terug na de spraakherkenning: er gebeurde niets. Heeft een pi-Agent-versie nodig die het veld kent\nVerzoeken over een script („Skript”, „script”, „\" Сμμμμμμμβ\"”, ook JavaScript/Blockly) gaan altijd naar het cloudmodel: routines, regelengine en lokale LLM lezen hun gegevens als hun eigen opdrachten („\" schrijf een script dat elk uur de keukenverlichting schakelt \"” werd met de tijd beantwoord).” Een antwoord op een vraag van het cloudmodel over het script hoort daar ook bij\nSpraak: spraak die door de herkenning als lege tekst wordt teruggestuurd, wordt nu ook geregistreerd („Voice Q (...): (leeg)”) voor ESPhome en lokale satellieten, in plaats van dat de tekst spoorloos eindigt\nChat: wordt geopend bij het nieuwste item en er wordt weer een nieuw verzoek weergegeven. Vroeger werd het tabblad vaak geopend bij de oudste items",
|
|
25
|
+
"fr": "pi-agent : la langue des satellites correspond à chaque demande, donc pi-agent pose ses questions de confirmation («... Dites oui ou non ») dans cette langue plutôt que dans la langue du système. Avant, on demandait « Sag ja oder nein » à un satellite russe, et le mot allemand « Ja » revenait vide grâce à la reconnaissance vocale : rien ne s'est passé. Il faut une version pi-agent adaptée\nLes demandes concernant un script (« Skript », « script », « скрипт », également Javascript/Blockly) sont toujours traitées dans le cloud : les routines, le moteur de règles et le LLM local les lisent comme des commandes propres (« Rédiger un script qui allume l'éclairage de la cuisine toutes les heures » a reçu l'heure). La réponse à une question sur le modèle cloud du script y figure aussi\nVoix : le discours renvoyé en texte vide est désormais enregistré (« Voice Q (...) : (vide) ») pour ESPHome et les satellites natifs, au lieu de se terminer sans laisser de trace\nChat : s'ouvre à la dernière entrée, et une nouvelle demande réapparaît. Avant, les entrées les plus anciennes s'ouvraient",
|
|
26
|
+
"it": "pi-agent: la lingua dei satelliti soddisfa ogni richiesta, quindi pi-agent pone le domande di conferma («... Dica sì o no») anziché nella lingua di sistema. Prima si chiedeva a un satellite russo «Sag ja oder nein» e il tedesco «Ja» era vuoto dal riconoscimento vocale: niente. Serve un pi-agent che conosca il campo\nLe richieste su uno script («Skript», «script», anche Javascript/Blockly) vanno sempre al modello cloud: routine, rule engine e LLM locale leggono i dati come comandi («scrivi uno script che accenda la luce della cucina ogni ora» è stato risposto con l'ora). Anche una risposta a una domanda del modello cloud sullo script\nVoce: la voce restituita come testo vuoto è ora registrata («Voice Q (...): (empty)») anche per ESPHome e i satelliti nativi, invece di terminare senza lasciare traccia\nChat: si apre all'ultima voce e si riapre una nuova richiesta. Prima, la scheda si apriva spesso ai vecchi",
|
|
27
|
+
"es": "pi-agent: el idioma de los satélites acompaña a cada solicitud, por lo que pi-agent hace sus preguntas de confirmación («... diga sí o no») en él y no en el idioma del sistema. Antes, a un satélite ruso se le preguntaba «Sag ja oder nein» y el alemán aparecía vacío en el reconocimiento de voz: no pasaba nada. Necesita una versión de pi-Agent que sepa\nLas solicitudes sobre un guion («Skript», «guion», también Javascript/Blockly) siempre van al modelo de nube: las rutinas, el motor de reglas y el LLM local leen sus detalles como órdenes propias («escriba un guion que cambie la luz de la cocina cada hora» se responde con la hora). La respuesta a una pregunta del modelo de nube sobre el guion va ahí\nVoz: voz que el reconocimiento devuelve como texto vacío ahora se registra («Voice Q (...): (vacía)») para ESPhome y los satélites nativos también, en lugar de terminar sin dejar rastro\nChat: se abre en la última entrada y vuelve a aparecer una nueva solicitud. Antes, la pestaña solía abrir en las entradas más antiguas",
|
|
28
|
+
"pl": "pi-agent: język satelitów idzie w parze z każdym żądaniem, więc pi-agent zadaje pytania potwierdzające („Powiedz tak lub nie”) zamiast języka systemowego. Wcześniej rosyjski satelita został zapytany „Sag ja oder nein”, a niemiecki „Ja” wrócił pusty z rozpoznawania mowy: nic się nie stało. Potrzebuje wersji pi-agenta, która zna tę dziedzinę\nŻądania dotyczące skryptu („Skript”, „script”, „програмпт”, także JavaScript/Blockly) zawsze trafiają do modelu chmury: procedury, silnik reguł i lokalne LLM odczytują swoje dane jako własne polecenia („napisz skrypt, który przełącza światło kuchenne co godzinę” odpowiadano z czasem). Odpowiedź na pytanie o model chmury dotyczący skryptu również znajduje się tam\nGłos: mowa, którą rozpoznawanie zwraca jako pusty tekst, jest teraz rejestrowana („Voice Q (...): (empty)”) również dla ESPHome i natywnych satelitów, zamiast kończyć się bez śladu\nCzat: otwiera się przy najnowszym wpisie, a nowa prośba ponownie przewija się do widoku. Wcześniej zakładka często otwierała się przy najstarszych wpisach",
|
|
29
|
+
"uk": "pi-agent: мова супутників йде разом з кожним запитом, тому pi-agent задає свої запитання підтвердження («... Скажи так чи ні.») замість системної мови. Раніше російський супутник запитували «Sag ja oder nein», а німецький «Ja» повернувся порожнім з розпізнавання мови: нічого не сталося. Потрібна версія pi-агента, яка знає поле\nЗапити щодо скрипту («Скрипт», «скрипт», «скрипт», також JavaScript/Blockly) завжди надходять до хмарної моделі: рутини, механізм правил та локальний LLM читають свої деталі як власні команди («писати скрипт, який перемикає світло кухні щогодини» відповідали з часом). Відповідь на питання хмарної моделі про сценарій теж йде туди\nГолос: мова, яку розпізнавання повертає як порожній текст, тепер реєструється («Voice Q (...): (порожній)») також для ESPHome та рідних супутників, замість того, щоб закінчуватися безслідно\nЧат: відкривається при найновішому записі, і новий запит знову прокручується до перегляду. Раніше вкладка часто відкривалася при найстаріших записах",
|
|
30
|
+
"zh-cn": "pi-agent:卫星的语言与每个请求一致,因此 pi-agent 用它而不是系统语言询问其确认问题(“... 说是或否。”)。以前,一颗俄罗斯卫星被问到 “Sag ja oder nein”,而德国的 “Ja” 则在语音识别中空无一人:什么也没发生。需要一个知道该领域的 pi-agent 版本\n有关脚本(“Skript”、“脚本”、“cq”,也是 JavaScript/Blockly)的请求总是会转到云端模型:例程、规则引擎和本地 LLM 将它们的详细信息作为自己的命令来读取(“编写一个每小时切换厨房灯光的脚本” 会随着时间的推移得到答复)。关于脚本的云模型问题的答案也在那里\n语音:对于ESpHome和原生卫星,识别后以空文本形式返回的语音现在也会被记录(“Voice Q (...):(空)”),而不是无影无踪地结束\n聊天:在最新的条目处打开,新的请求再次滚动到视图中。以前,该选项卡通常在最旧的条目处打开"
|
|
31
|
+
},
|
|
6
32
|
"1.3.0": {
|
|
7
33
|
"en": "Commands for later: \"turn off the light in 2 hours\" or \"blinds to 50 % at 10 pm\" becomes an event in the calendar (fullcalendar adapter) instead of running now; the AI can plan, list and cancel events. Before, the rule engine switched such commands at once. Needs a fullcalendar version with the new event API (after 3.0.5)\nSettings: the state of a presence row is picked with the object browser, the kind of a presence row or announcement target is a dropdown\nNew provider \"System-wide AI settings (admin)\", the default for new instances: provider, model and key come from the AI settings of the admin system settings, a change there restarts the instance. An instance without a key of its own takes them too\nNew provider OpenRouter\nOpenRouter for speech recognition and voice: one key for the speech models of many vendors (Whisper, Deepgram, ElevenLabs, Gemini TTS, …), models and voices are listed in the settings (default voice model: ElevenLabs Flash v2.5)\nVoice test on the Voice tab: speak a test sentence, and test speech recognition with the browser microphone, an audio file or a round trip, all with the unsaved settings\n\"Confirm switch commands with a tone\" now also covers commands the AI (or pi-agent) carried out\nSpelled-out numbers up to 100 in commands (\"Lautstärke auf fünfzig Prozent\", \"twenty five percent\", \"двадцать пять процентов\"), and the AI sees the volume of each voice satellite, so it no longer turns up a media device of the room instead\nNew provider \"Adapter pi-agent\": the durable agent of the pi-agent adapter answers what the local tiers cannot, with one conversation per satellite/chat",
|
|
8
34
|
"de": "Befehle für später: „Mach das Licht in 2 Stunden aus“ oder „Um 22 Uhr auf 50%“ wird ein Ereignis im Kalender (Fullcalendar Adapter) statt jetzt; die KI kann Termine planen, auflisten und stornieren. Vorher hat das Rule Engine die Befehle sofort geändert. Benötigt eine Vollversion mit neuer Event-API (nach 3.0.5)\nEinstellungen: Der Status einer Präsenzzeile wird im Objektbrowser ausgewählt, ein Dropdown\nNeuer Anbieter „Systemweite KI-Einstellungen (admin)“, Standard für neue Instanzen: Anbieter, Modell und Schlüssel stammen aus den KI-Einstellungen. Eine Änderung dort startet die Instanz neu. Eine Instanz ohne eigenen Schlüssel nimmt sie auch\nNeuer Anbieter OpenRouter\nOpenRouter für Spracherkennung und Stimme: eine Taste für Sprachmodelle vieler Anbieter (Whisper, Deepgram, ElevenLabs, Gemini TTS,...), Modelle und Stimmen sind in den Einstellungen aufgeführt (Standardmodell: ElevenLabs Flash v2.5)\nSprachtest im Tab Voice: Testsatz sprechen und Spracherkennung mit dem Browsermikrofon, Audiodatei oder Hin- und Rückfahrt testen, alles mit ungespeicherten Einstellungen\n„Schaltbefehle mit Ton bestätigen“ umfasst nun auch Befehle der KI (oder Pi-Agent)\nBuchstabiert Zahlen bis zu 100 in Befehlen („Lautstärke auf fünfzig Prozent“, „fünfundzwanzig Prozent“, „und die KI sieht die Lautstärke jedes Sprachsatelliten, also nicht mehr das Mediengerät des Raums)\nNeuer Anbieter „Adapter Pi-Agent“: Der dauerhafte Agent beantwortet, was lokale Ebenen nicht können, mit einem Gespräch pro Satellit/Chat",
|
|
@@ -67,32 +93,6 @@
|
|
|
67
93
|
"pl": "Dodano brakujące tłumaczenia i rozmiary wszystkich ekranów do ustawień. Testy działają również w systemach Windows i macOS\nPorty, które adapter naprawdę otwiera (satelity UDP, Wyoming, serwer multimedialny ESPHome) są zgłaszane kontrolerowi js-8 jako zużyte zasoby; port satelitarny w ustawieniach nie jest już wymieniony jako zajęty port TCP",
|
|
68
94
|
"uk": "Додано відсутні переклади та розміри для всіх екранів до налаштувань. Тести також виконуються на Windows та macOS\nПорти, які адаптер дійсно відкриває (супутники UDP, Вайомінг, медіасервер ESPHome) повідомляються js-controller 8 як використані ресурси; супутниковий порт в налаштуваннях більше не вказаний як зайнятий порт TCP",
|
|
69
95
|
"zh-cn": "在设置中添加了所有屏幕的缺失翻译和大小。测试也在 Windows 和 macOS 上运行\n适配器真正打开的端口(UDP 卫星、怀俄明州、ESPhome 媒体服务器)作为已用资源报告给 js-controller 8;设置中的卫星端口不再被列为占用的 TCP 端口"
|
|
70
|
-
},
|
|
71
|
-
"1.0.1": {
|
|
72
|
-
"en": "Use first model if not set\nAllowed to run only with local LLM\nAdded routines: a phrase (\"good night\") runs a list of actions and answers once. Matched before the offline rule engine and before the LLM, so a macro you wrote down is never reinterpreted\nThe offline rule engine now answers questions about a kind of measurement without a device being named: \"how is the air in here\", \"how warm is it everywhere\", \"how bright is it\" are answered from every sensor of that kind, with a word for the air-quality number\nSpoken text is cached on disk, so repeated replies (\"Okay.\", \"Timer finished\") cost no cloud call and no latency. An answer over 400 characters is cut at the last sentence that fits, and `<speak>…</speak>` is now spoken as real SSML by Azure and Polly\nAdded an optional second speech engine per direction: if the configured provider fails (outage, expired key, empty quota), speech-to-text and text-to-speech fall back to another one — with Vosk/Piper behind a cloud provider the house keeps working without the internet\nAdded two optional settings for switch commands: confirm with a short beep instead of a spoken sentence, and verify the device's acknowledgement before reporting success\nAn ESPHome satellite's own measurements (temperature, presence, status texts) now appear as read-only states under `satellites.<id>.controls.*`\nAnnouncements can address a group of rooms or a person: name a set of satellites in the new \"Announcement targets\" table and use it anywhere a target is accepted (`notify`, `askUser`, a trigger's room, the per-satellite `tts` state). The LLM also got an `announce` tool, so \"tell Denis that dinner is ready\" reaches his speakers — the configured names are part of the tool description. A question asked to a group counts the first answer, and the text is synthesised once for the whole group\nThe assistant can now know who is at home: point the new \"Presence\" table at the states you already have (the residents adapter, a phone ping, your own flag) and name the person. It tells the LLM who is around, holds back announcements to an empty house on request (`notify` with `onlyWhenHome`), and exposes `presence.anyoneHome` / `presence.list` / `presence.lastArrival` — so greeting somebody on arrival is just a trigger on that state\nSystem notifications can now be spoken: write to `notify.text` / `notify.alert`, call `sendTo('assistant.0', 'notify', { text, severity })`, or pick the assistant in the ioBroker notification manager. The LLM turns the raw text into one natural sentence whose tone follows the severity (`info`/`notify`/`alert`, plus `direct` to speak it verbatim)\nAdded Do-Not-Disturb, enforced by the adapter for every transport: `dnd` globally and `satellites.<id>.dnd` per satellite. Announcements are suppressed while it is on; alerts and texts starting with `!` are still played, and answers to your own questions are never affected\nAdded proactive triggers (new \"Triggers\" tab): a trigger watches states or the clock and then announces something, writes a state, or asks you a question and acts on your answer (\"The fryer has been on for 5 hours. Shall I switch it off?\" — the LLM classifies the spoken reply against the configured response rules). Supports alternative conditions, `also`/`unless` refinements, a delay with `cancelWhen`, and a cooldown; each trigger has `triggers.items.<id>.{enabled,fire,lastFired,nextFireAt}` states plus a `triggers.enabled` master switch\nThe assistant can now ask a question and wait for the answer: `sendTo('assistant.0', 'askUser', { question, room })` speaks it on a satellite, re-opens the microphone without a wake word and returns what was said. While a question is open that answer is routed to the caller instead of being read as a new command\nAdded a fourth voice transport: ESPHome voice satellites (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, linux-voice-assistant). The adapter dials the devices on TCP 6053, detects the end of speech itself and serves the spoken reply over a small HTTP media server",
|
|
73
|
-
"de": "1. Modell verwenden, falls nicht\nNur mit lokalem LLM lauffähig\nRoutinen hinzugefügt: Ein Satz („Gute Nacht“) zählt Aktionen und Antworten. Vor der Offline Rule Engine und vor dem LLM abgeglichen, ein Makro, das Sie notieren, wird nie neu interpretiert\nDie Offline-Regelmaschine beantwortet jetzt Fragen zu einer Art von Messung, ohne dass ein Gerät benannt wird: „Wie ist die Luft hier drin“, „wie warm ist es überall“, „wie hell ist es“ werden von jedem Sensor beantwortet, mit einem Wort für die Luftgütezahl\nText wird auf Festplatte gecacht, also oft („Okay. „, „Timer beendet“) kostete weder Cloud noch Latenz. Eine Antwort über 400 Zeichen wird am letzten Satz gekürzt und `<speak>...</speak>` wird nun von Azure und Polly als SSML gesprochen\nOptionale zweite Sprachengine pro Richtung hinzugefügt: Wenn der konfigurierte Anbieter ausfällt (Ausfall, abgelaufener Schlüssel, leeres Kontingent), fallen Sprache-zu-Text und Text-to-Speech auf einen anderen zurück — mit Vosk/Piper hinter einem Cloud-Anbieter läuft das Haus weiter ohne Internet\nZwei optionale Einstellungen für Schaltbefehle hinzugefügt: mit kurzem Piepton statt gesprochenem Satz bestätigen und vor Erfolgsmeldung die Gerätebestätigung prüfen\nDie Messungen (Temperatur, Präsenz, Statustexte) eines ESPHome-Satelliten sind jetzt schreibgeschützt. <id>. steuert. *`\nAnkündigungen können eine Gruppe von Räumen oder Personen ansprechen: Nennen Sie Satelliten in der neuen Tabelle mit Ankündigungszielen und verwenden Sie sie überall dort, wo ein Ziel erlaubt ist (`Notify`, AskUser`, Raum, TTS-Status pro Satellit). LLM hat auch ein Ankündigungstool, also „Sag Denis, dass das Essen fertig ist“ — die Namen sind Teil der Toolbeschreibung. Eine Frage an eine Gruppe zählt als erste Antwort und der Text wird einmal für die ganze Gruppe\nDer Assistent weiß jetzt, wer zu Hause ist: Zeigen Sie in der neuen Tabelle „Präsenz“ auf Ihre Länder (Anwohneradapter, Ping, Flagge) und benennen Sie die Person. Es teilt dem LLM mit, wer da ist, hält Ankündigungen vor leerem Haus auf Anfrage zurück (`Notify` mit `OnlyWhenHome`) und zeigt `Presence.AnyoneHome`/`presence.list`/`Presence.LastArrival` an — also jemanden bei Ankunft zu begrüßen ist nur ein Auslöser für diesen Zustand\nSystemmeldungen können jetzt gesprochen werden: schreiben Sie an `notify.text`/`notify.alert`, rufen Sie `sendTo ('assistant.0', 'notify', {text, severity}) `an oder wählen Sie den Assistenten im ioBroker. Das LLM macht aus dem Rohtext einen natürlichen Satz, dessen Ton dem Schweregrad folgt (`info`/`notify`/`alert`, plus `direct`, um es wörtlich zu sagen)\nDo-Not-Disturb hinzugefügt, per Adapter für jeden Transport: `dnd` global und `satelliten. <id>.dnd` pro Satellit. Solange es läuft, werden Meldungen und SMS ausgeblendet! `werden immer noch gespielt und Ihre Fragen bleiben davon unberührt\nProaktive Trigger hinzugefügt (neuer „Trigger“ -Tab): Ein Trigger beobachtet Zustände oder die Uhr und sagt etwas an, schreibt einen Status oder stellt Ihnen eine Frage und reagiert auf Ihre Antwort („Die Fritteuse läuft seit 5 Stunden. Soll ich es abstellen?“ — Das LLM stuft die mündliche Antwort nach den Regeln ein). Unterstützt alternative Bedingungen, `auch`/`es sei denn, Delay mit `CancelWhen` und Cooldown; jeder Trigger hat `triggers.items. <id>. {enabled, fire, lastFired, nextFireAt} `Status plus `triggers.enabled`-Master\nDer Assistent kann nun eine Frage stellen und auf die Antwort warten: `sendTo ('assistant.0', 'askUser', {question, room}) `spricht es über Satellit, öffnet das Mikro ohne Weckwort und gibt zurück, was gesagt wurde. Bei offener Frage wird die Antwort an den Anrufer weitergeleitet und nicht als neuer Befehl gelesen\nVierter Sprachtransport hinzugefügt: ESPHome-Sprachsatelliten (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, Linux Voice Assistant). Der Adapter wählt die Geräte auf TCP 6053 an, erkennt das Ende der Rede und sendet es über einen kleinen HTTP-Medienserver",
|
|
74
|
-
"ru": "Используйте первую модель, если она не установлена\nРазрешено работать только с локальным LLM\nДобавлены процедуры: фраза («спокойной ночи») запускает список действий и ответов один раз. Сопоставлялось с алгоритмом правил в автономном режиме и до LLM, поэтому записанный вами макрос никогда не будет переосмыслен\nАвтономный механизм правил теперь отвечает на вопросы об измерениях без указания названия устройства: «как здесь воздух», «насколько тепло повсюду», «насколько ярко», «насколько ярко», «насколько оно», «насколько оно», «насколько оно», «насколько оно ярко», и каждый датчик такого типа отвечает словом, обозначающим показатель качества воздуха\nУстный текст кэшируется на диске, поэтому ответы повторяются («Хорошо. «, «Таймер завершен») не требуют облачных вызовов и задержек. Ответ длиной более 400 символов сокращается в последнем подходящем предложении, и Azure и Polly теперь говорят «<speak>...</speak>» как настоящий SSML\nДобавлен дополнительный речевой движок для каждого направления: если настроенный провайдер выходит из строя (сбой, истек срок действия ключа, пустая квота), преобразование речи в текст и текст в речь возвращается к другому провайдеру — Vosk/Piper стоит облачный провайдер, и дом продолжает работать без Интернета\nДобавлены две дополнительные настройки для команд переключения: подтверждение коротким звуковым сигналом вместо произнесенного предложения и проверка подтверждения устройства, прежде чем сообщить об успешном завершении\nСобственные измерения спутника ESPHome (температура, присутствие, тексты состояния) теперь отображаются в виде состояний, доступных только для чтения, в разделе «Спутники». <id>.элементы управления. *`\nОбъявления могут быть адресованы группе комнат или человеку: назовите набор спутников в новой таблице «Цели объявлений» и используйте их везде, где будет принята цель (`notify`, `AskUser`, комната триггера, состояние `tts` для каждого спутника). У LLM также есть инструмент «объявить», поэтому спикеры могут сказать Денису, что ужин готов — настроенные имена являются частью описания инструмента. На вопрос, заданный группе, засчитывается первый ответ, и текст синтезируется один раз для всей группы\nТеперь ассистент может знать, кто находится дома: в новой таблице «Присутствие» укажите штаты, которые у вас уже есть (адаптер жителей, телефонный звонок, ваш собственный флаг) и назовите имя человека. Оно сообщает магистру права о том, кто находится рядом, скрывает объявления в пустой дом по запросу («уведомлять» с помощью «OnlyWhenHome`) и раскрывает информацию «Presence.anyoneHome`/`presence.list`/`Presence.LastArrival`, поэтому приветствие кого-то по прибытии — это просто спусковой крючок в этом состоянии\nТеперь можно произносить системные уведомления: напишите в `notify.text`/`notify.alert`, вызовите `sendTo ('assistant.0', 'notify', {text, severity}) `или выберите помощника в диспетчере уведомлений IOBroker. LLM превращает необработанный текст в одно естественное предложение, тон которого соответствует степени серьезности (`info`/`notify`/`alert`, а также слово «прямо», чтобы произнести его дословно)\nДобавлен режим «Не беспокоить», применяемый адаптером для каждого транспорта: `dnd` в глобальном масштабе и `спутников. <id>.dnd` для каждого спутника. Анонсы запрещены, пока он включен; оповещения и текстовые сообщения начинаются с `! `все еще воспроизводятся, и ответы на ваши вопросы остаются неизменными\nДобавлены проактивные триггеры (новая вкладка «Триггеры»): триггер отслеживает состояние или часы, затем объявляет что-то, записывает состояние или задает вам вопрос и реагирует на ваш ответ («Фритюрница работает уже 5 часов). Должен ли я его выключить?» — LLM классифицирует устный ответ в соответствии с настроенными правилами ответа). Поддерживаются альтернативные условия: уточнения в режиме «также\"/ «если нет», задержка нажатия кнопки «CancelWhen» и время перезарядки; каждый триггер содержит «triggers.items». <id>. состояния {включено, срабатывает, LastFireed, NextFireAt} и главный переключатель «triggers.enabled»\nТеперь ассистент может задать вопрос и дождаться ответа: `sendTo ('assistant.0', 'askUser', {question, room}) `произносит его на спутнике, снова открывает микрофон без слов для пробуждения и возвращает сказанное. Пока вопрос открыт, ответ направляется вызывающему абоненту, а не читается как новая команда\nДобавлен четвертый голосовой транспорт: голосовые спутники ESPHome (голосовой и музыкальный помощник ThirdReality, голосовой помощник Home Assistant PE, голосовой помощник Linux). Адаптер набирает номер на устройства по протоколу TCP 6053, сам определяет окончание речи и передает устный ответ на небольшой медиасервер HTTP",
|
|
75
|
-
"pt": "Use o 1º modelo se não o definir\nSó pode ser executado com LLM local\nRotinas adicionadas: uma frase (“boa noite”) lista ações e respostas. Combinada antes do motor de regras offline e do LLM, uma macro anotada nunca é reinterpretada\nO mecanismo de regras offline agora responde a perguntas sobre um tipo de medição sem nome: “como está o ar aqui”, “quão quente está em todo lugar”, “quão brilhante é” são respondidos por cada sensor, com uma palavra para o número de qualidade do ar\nO texto falado é armazenado em cache e responde (“Ok. “, “Timer finished”) sem chamadas na nuvem ou latência. Uma resposta de 400 caracteres é cortada na última frase e `<speak>...</speak>` agora é falada como SSML real por Azure e Polly\nFoi adicionado um segundo mecanismo de fala opcional por direção: se o provedor configurado falhar (falha, chave expirada, cota vazia), a conversão de voz e de texto em fala retornam a outro. Com a Vosk/Piper como provedor de nuvem, a casa continua trabalhando sem internet\nForam adicionadas duas opções para comandos de switch: confirme com um bipe curto em vez de uma frase falada e confirme o dispositivo antes de relatar o sucesso\nAs medidas de um satélite ESPHome (temperatura, presença, texto de status) agora aparecem somente para leitura em `satélites. <id>.controles. *`\nOs anúncios podem se dirigir a um grupo de salas ou a uma pessoa: nomeie um conjunto de satélites na nova tabela “Alvos do anúncio” e use-o onde o alvo for aceito (`notify`, `askUser`, a sala de ativação, o estado `tts` por satélite). O LLM também tem uma ferramenta de “anunciar”: “Diga a Denis que o jantar está pronto” — os nomes configurados fazem parte da descrição. Uma pergunta a um grupo conta a primeira resposta e o texto é sintetizado uma vez para todo o grupo\nO assistente já sabe quem está em casa: aponte a nova tabela “Presença” para os estados que você já tem (adaptador, ping telefônico, bandeira) e nomeie a pessoa. Ele diz ao LLM quem está por perto, esconde anúncios em uma casa vazia a pedido (`notifique` com `OnlyWhenHome`) e expõe `presence.anyonehome`/`presence.lastarrival` — então cumprimentar alguém na chegada é apenas um gatilho para esse estado\nAgora, escreva para `notify.text`/`notify.alert`, chame `sendTo ('assistant.0', 'notify', {text, severity}) `ou escolha o assistente no gerenciador de notificações do IOBroker. O LLM transforma o texto bruto em uma frase natural cujo tom segue a severidade (`info`/`notify`/`alert`, mais `direct` na íntegra)\nFoi adicionado o Do-Not-Disturb, aplicado pelo adaptador a cada transporte: `dnd` global e `satélites. <id>.dnd` por satélite Os anúncios são suprimidos na tela; alertas e textos começando com `! `ainda são jogados e as respostas às suas perguntas nunca são afetadas\nAdição de gatilhos proativos (nova guia “Acionadores”): um gatilho observa os estados ou o relógio e anuncia algo, escreve um estado ou faz uma pergunta e age de acordo com a resposta (“A fritadeira está ligada há 5 horas. Devo desligá-lo?” — o LLM classifica a resposta falada em relação às regras configuradas). Suporta condições alternativas, além de refinamentos, delay com `cancelWhen` e cooldown; cada gatilho tem `triggers.items. <id>. estados {enabled, fire, lastFired, nextFireAt} `e um switch master `triggers.enabled`\nO assistente agora pode fazer uma pergunta e esperar a resposta: `sendTo ('assistant.0', 'askUser', {question, room}) `fala em um satélite, reabre o microfone sem despertar e retorna o que foi dito. Quando uma pergunta está aberta, ela é enviada ao chamador em vez de ser lida como um novo comando.\nAdicionou um quarto transporte de voz: satélites de voz ESPHome (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, linux-voice-assistant). O adaptador liga para os dispositivos no TCP 6053, detecta o fim da fala e responde em um pequeno servidor HTTP.",
|
|
76
|
-
"nl": "Gebruik het eerste model als dat niet is ingesteld\nMag alleen worden gerund met lokale LLM\nRoutines toegevoegd: een zin („welterusten”) bevat één keer een lijst van acties en antwoorden. Komt overeen vóór de offline rule engine en vóór de LLM, dus een macro die u hebt opgeschreven, wordt nooit opnieuw geïnterpreteerd\nDe offline regelengine beantwoordt nu vragen over een soort meting zonder dat een apparaat een naam krijgt: „hoe is de lucht hier”, „hoe warm is het overal”, „hoe helder is het” worden beantwoord door elke sensor van dat type, met een woord voor het luchtkwaliteitsnummer\nGesproken tekst wordt in de cache opgeslagen, dus herhaalde antwoorden („OK. „, „De timer is klaar”) kost geen telefoongesprek via de cloud en geen vertraging. Een antwoord van meer dan 400 tekens is weggelaten in de laatste zin die past, en `<speak>...</speak>` wordt nu als echte SSML uitgesproken door Azure en Polly\nEen optionele tweede spraakengine per richting toegevoegd: als de geconfigureerde provider uitvalt (uitval, verlopen sleutel, leeg quotum), vallen spraak-naar-tekst en tekst-naar-spraak terug naar een andere — met Vosk/Piper achter een cloudprovider blijft het huis werken zonder internet\nTwee optionele instellingen toegevoegd voor schakelopdrachten: bevestig met een korte pieptoon in plaats van een gesproken zin, en controleer de bevestiging van het apparaat voordat u het succes meldt\nDe eigen metingen van een ESPHome-satelliet (temperatuur, aanwezigheid, status-teksten) worden nu weergegeven als alleen-lezen toestanden onder `satellieten. <id>.controles. *`\nAankondigingen kunnen gericht zijn op een groep kamers of op een persoon: noem een set satellieten in de nieuwe tabel „Aankondigingsdoelen” en gebruik die overal waar een doel wordt geaccepteerd (`notify`, `askUser`, een triggerkamer, de `tts` status per satelliet). De LLM heeft ook een „aankondigingstool”, dus „vertel Denis dat het eten klaar is” bereikt zijn sprekers — de geconfigureerde namen maken deel uit van de beschrijving van het gereedschap. Een vraag aan een groep telt als eerste antwoord, en de tekst wordt één keer samengevat voor de hele groep\nDe assistent kan nu weten wie er thuis is: richt de nieuwe tabel „Aanwezigheid” op de staten die u al hebt (de adapter van de bewoner, een ping van de telefoon, uw eigen vlag) en geef de persoon een naam. Het vertelt de LLM wie er in de buurt is, houdt aankondigingen naar een leeg huis op verzoek tegen (`verwittiging` met `OnlyWhenHome`), en stelt `Presence.anyoneHome`/`presence.lastArrival` bloot — iemand begroeten bij aankomst is dus slechts een trigger voor die toestand\nSysteemmeldingen kunnen nu worden uitgesproken: schrijf naar `notify.text`/`notify.alert`, bel `SendTo ('assistant.0', 'notify', {text, severity}) `, of kies de assistent in de Notificatiebeheerder van IOBroker. De LLM zet de onbewerkte tekst om in één natuurlijke zin waarvan de toon volgt op de ernst (`info`/`notify`/`alert`, plus `direct` om de tekst letterlijk uit te spreken)\nDo-Not-Disturb toegevoegd, versterkt door de adapter voor elk transport: `dnd` wereldwijd en `satellieten. <id>.dnd` per satelliet. Aankondigingen worden onderdrukt als de app is ingeschakeld; waarschuwingen en sms'jes die beginnen met `! `worden nog steeds gespeeld, en de antwoorden op uw eigen vragen worden nooit beïnvloed\nProactieve triggers toegevoegd (nieuw tabblad „Triggers”): een trigger houdt de status of de klok in de gaten en kondigt dan iets aan, schrijft een status in, of stelt u een vraag en handelt naar aanleiding van uw antwoord („De friteuse heeft 5 uur aan gestaan. Zal ik hem uitzetten?” — de LLM classificeert het gesproken antwoord op basis van de geconfigureerde responsregels). Ondersteunt alternatieve voorwaarden, `ook/`tenzij verfijningen, een vertraging met `CancelWhen` en een cooldown; elke trigger heeft `triggers.items. <id>. {enabled, fire, lastFired, NextFireAt} `staten plus een hoofdschakelaar met `triggers.enabled`\nDe assistent kan nu een vraag stellen en wachten op het antwoord: `SendTo ('assistant.0', 'askUser', {question, room}) `spreekt het uit op een satelliet, opent de microfoon opnieuw zonder een wake-word en geeft terug wat er is gezegd. Als een vraag open is, wordt dat antwoord doorgestuurd naar de beller in plaats van dat het als een nieuw commando wordt gelezen\nEen vierde spraaktransport toegevoegd: ESPhome-stemsatellieten (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, linux-voice-assistant). De adapter kiest de apparaten op TCP 6053, detecteert zelf het einde van de spraak en stuurt het gesproken antwoord via een kleine HTTP-mediaserver",
|
|
77
|
-
"fr": "Utiliser le 1er modèle non réglé\nNe peut courir qu'avec un LLM local\nAjout de routines : une phrase (« bonne nuit ») fait la liste des actions et répond. Correspondant avant le moteur de règles hors ligne et le LLM, donc une macro que vous notez n'est jamais réinterprétée\nLe moteur de règles hors ligne répond désormais à des questions sur un type de mesure sans nom d'appareil : « Comment se trouve l'air ici », « Qu'est-ce qu'il fait chaud partout », « Quelle est la luminosité » avec un mot pour le numéro de qualité de l'air\nLe texte parlé est caché sur disque, donc réponses répétées (« OK. «, « Timer terminé »), sans appel ni latence. Une réponse de plus de 400 caractères est coupée à la dernière phrase, et Azure et Polly utilisent désormais «<speak>...</speak> »\nAjout d'un second moteur vocal optionnel par direction : si le fournisseur configuré tombe en panne (panne, clé expirée, quota vide), la synthèse vocale revient à un autre. Avec Vosk/Piper derrière un fournisseur cloud, la maison continue de fonctionner sans Internet\nAjout de deux paramètres facultatifs pour les commandes Switch : confirmer par un bip court au lieu d'une phrase prononcée, et vérifier l'accusé de réception\nLes mesures d'un satellite ESPhome (température, présence, textes d'état) sont désormais en lecture seule sous « satellites ». <id>.contrôles. *`\nLes annonces peuvent s'adresser à un groupe de pièces ou à une personne : nommez un ensemble de satellites dans le nouveau tableau « Cibles de l'annonce » et utilisez-le partout où une cible est acceptée (« notify », « AskUser », zone de déclenchement, état « tts » par satellite). Le LLM a également un outil d' « annonce », qui permet de dire à Denis que le dîner est prêt. Les noms configurés figurent dans la description de l'outil. Une question compte pour la première réponse, et le texte est synthétisé une fois pour tout le groupe\nL'assistante peut désormais savoir qui est chez vous : pointez dans le nouveau tableau « Présence » les états que vous avez déjà (l'adaptateur, le ping, votre drapeau) et nommez-le. Il indique au LLM qui est là, bloque les annonces relatives à une maison vide sur demande (« notifier » avec « OnlyWhenHome ») et expose « Presence.anyoneHome`/`presence.list`/`Presence.LastArrival` — donc saluer quelqu'un à son arrivée ne fait que déclencher cet état\nLes notifications système peuvent désormais être lues : écrivez sur `notify.text`/`notify.alert`, appelez `SendTo ('assistant.0', 'notify', {text, severity}) `ou choisissez l'assistant dans le gestionnaire de notifications IObroker. Le LLM transforme le texte brut en une phrase naturelle dont le ton suit la sévérité (`info`/`notify`/`alert`, plus « direct » pour le prononcer mot pour mot)\nAjout du mode Do-Not-Disturb, imposé par l'adaptateur pour tous les transports : « dnd » global et « satellites ». <id>.dnd` par satellite. Les annonces sont supprimées ; les alertes et les SMS commencent par `! `sont toujours joués et les réponses à vos questions ne sont jamais affectées\nAjout de déclencheurs proactifs (nouvel onglet « Déclencheurs ») : un déclencheur surveille les états ou l'horloge, puis annonce quelque chose, écrit un état ou pose une question et agit en fonction de votre réponse (« La friteuse est allumée depuis 5 heures. Dois-je l'éteindre ? » — le LLM classe la réponse orale selon les règles de réponse configurées). Supporte des conditions alternatives, « aussi`/unless », un délai avec « CancelWhen » et un temps de recharge ; chaque trigger a `triggers.items. <id>. {enabled, fire, LastFired, NextFireAt} `états et un switch principal `triggers.enabled`\nL'assistante peut maintenant poser une question et attendre la réponse : `SendTo ('assistant.0', 'AskUser', {question, room}) `parle par satellite, rouvre le micro sans aucun mot de réveil et renvoie ce qui a été dit. Lorsqu'une question est ouverte, la réponse est envoyée à l'appelant au lieu d'être lue\nAjout d'un quatrième moyen de transport vocal : les satellites vocaux ESPHome (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, Linux-voice-assistant). L'adaptateur compose les appareils via le TCP 6053, détecte lui-même la fin du discours et diffuse la réponse via un petit serveur HTTP",
|
|
78
|
-
"it": "Usa 1 modello se no\nFunziona solo con LLM locale\nRoutine aggiunte: una frase («buonanotte») elenca azioni e risposte. Risponde al rule engine offline e al LLM, quindi una macro che ha annotato non viene mai reinterpretata\nIl motore di regole offline ora risponde a domande su un tipo di misurazione senza nome: «com'è l'aria qui dentro», «quanto è calda ovunque», «quanto è luminosa» ogni sensore di quel tipo, con una parola per il numero di qualità dell'aria\nIl testo è in cache, quindi risposte ripetute («Ok. «, «Timer finito») senza chiamate cloud e latenza. Una risposta di oltre 400 caratteri è ridotta all'ultima frase e `<speak>...</speak>` è ora parlato come vero SSML da Azure e Polly\nAggiunto un secondo motore vocale opzionale per direzione: se il provider configurato fallisce (interruzione, chiave scaduta, quota vuota), torna a un altro: con Vosk/Piper dietro un provider cloud la casa continua a funzionare senza internet\nAggiunte due impostazioni opzionali per i comandi: conferma con un breve bip anziché con una frase e verifica la conferma del dispositivo\nLe misure di un satellite ESPhome (temperatura, presenza, testi di stato) ora appaiono in sola lettura in «satelliti». <id>.comandi. *`\nGli annunci possono essere rivolti a un gruppo di stanze o a una persona: nomina un set di satelliti nella nuova tabella «Obiettivi degli annunci» e usali ovunque sia accettato (notify, AskUser). L'LLM ha anche uno strumento di «annuncio», quindi «dica a Denis che la cena è pronta» arriva ai relatori. Una domanda a un gruppo conta la prima risposta e il testo è sintetizzato una volta\nL'assistente ora può sapere chi è a casa: punta la nuova tabella «Presenza» sugli stati che ha già (scheda residenti, ping telefonico, bandiera) e nomina la persona. Indica all'LLM chi è nei paraggi, trattiene gli annunci di una casa vuota su richiesta (`notifica` con `OnlyWhenHome`) ed espone `presence.anyoneHome`/`presence.list`/`presence.lastArrival` — quindi salutare qualcuno all'arrivo è solo un innesco\nLe notifiche di sistema ora possono essere vocali: scrivi a notify.text`/`notify.alert`, chiama `sendTo ('assistant.0', 'notify', {text, severità}) `o scegli l'assistente nel gestore notifiche IOBroker. L'LLM trasforma il testo grezzo in una frase naturale il cui tono segue la severità (`info`/`notify`/`alert`, più «diretto» per dirlo alla lettera)\nAggiunto Do-Not-Disturb, applicato dall'adattatore per ogni trasporto: `dnd` globale e `satelliti. <id>.dnd` per satellite. Gli annunci vengono eliminati finché è attivo; avvisi e SMS che iniziano con `! `si gioca ancora e le risposte alle sue domande restano invariate\nAggiunti trigger proattivi (nuova scheda «Trigger»): un trigger controlla gli stati o l'orologio e poi annuncia qualcosa, scrive uno stato o le fa una domanda e agisce in base alla sua risposta («La friggitrice è accesa da 5 ore. Devo spegnerlo?» — l'LLM classifica la risposta orale in base alle regole configurate). Supporta condizioni alternative, raffinamenti «anche\"/\"a meno», un ritardo con `CancelWhen` e un cooldown; ogni trigger ha `triggers.items. <id>. {enabled, fire, lastFired, nextFireAt} `più un master switch `triggers.enabled`\nL'assistente può ora fare una domanda e attendere la risposta: `SendTo ('assistant.0', 'askUser', {question, room}) `la parla su un satellite, riapre il microfono e restituisce ciò che è stato detto. Quando una domanda è aperta, viene inviata al chiamante e non letta come nuovo comando\nAggiunto un quarto trasporto vocale: satelliti vocali ESPhome (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, linux). L'adattatore chiama i dispositivi su TCP 6053, rileva da solo la fine del discorso e invia una risposta su un piccolo server HTTP",
|
|
79
|
-
"es": "Use el primer modelo si no\nSolo se puede ejecutar con un LLM local\nRutinas añadidas: una frase («buenas noches») lista de acciones y responde una vez. Coincidió antes del motor de reglas offline y antes del LLM, por lo que una macro que escribió nunca se reinterpreta\nEl motor de reglas offline ahora responde a las preguntas sobre un tipo de medición sin el nombre del dispositivo: «cómo está el aire aquí», «qué calor hace en todas partes», «qué brillo tiene» todos los sensores de ese tipo responden con una palabra para el número de calidad del aire\nEl texto hablado está en caché en el disco, así que repite («Vale. «, «Cronómetro acabado») sin llamadas a la nube ni latencia. <speak>Una respuesta de más de 400 caracteres está cortada en la última frase que cabe, y Azure y Polly hablan ahora como SSML real</speak>\nSe ha añadido un segundo motor de voz opcional por dirección: si el proveedor configurado falla (interrupción, clave caducada, cuota vacía), voz a texto y texto a voz recurre a otro: con Vosk/Piper detrás de un proveedor de nube, la casa sigue funcionando sin Internet\nSe han añadido dos ajustes opcionales para los comandos del conmutador: confirmar con un pitido corto en lugar de una frase pronunciada y comprobar el acuse de recibo del dispositivo antes de informar del éxito\nLas propias medidas de un satélite ESPhome (temperatura, presencia, textos de estado) aparecen ahora como estados de solo lectura en «satélites». <id>.controles *`\nLos anuncios pueden dirigirse a un grupo de habitaciones o a una persona: nombre un conjunto de satélites en la nueva tabla de «objetivos de anuncios» y utilícelo donde se acepte un objetivo (`notificar`, `preguntar`, sala de activación, estado `tts` por satélite). El LLM también tiene una herramienta de «anunciar» para que sus ponentes digan a Denis que la cena está lista. Los nombres configurados forman parte de la descripción. Una pregunta a un grupo cuenta la primera respuesta y el texto se sintetiza una vez para todo el grupo\nEl asistente ya sabe quién está en casa: señale la nueva tabla de «Presencia» a los estados que ya tiene (el adaptador de residencia, un ping telefónico, su bandera) y nombre a la persona. Le dice al LLM quién está cerca, retiene los anuncios de una casa vacía a petición (`notificar` con `OnlyWhenHome`) y expone `Presence.AnyoneHome`/`presence.list`/`Presence.LastArrival`, por lo que saludar a alguien al llegar es solo un detonante en ese estado\nLas notificaciones del sistema ahora pueden ser habladas: escriba a `notify.text`/`notify.alert`, llame a `sendTo ('assistant.0', 'notify', {text, severity}) `o elija el asistente del gestor de notificaciones de IOBroker. El LLM convierte el texto sin procesar en una oración natural cuyo tono sigue la gravedad (`info`/`notificar`/`alert`, más «directo» para decirlo textualmente)\nSe añadió el modo No molestar, impuesto por el adaptador para cada transporte: «dnd» global y «satélites». <id>.dnd` por satélite. Los anuncios se suprimen mientras está encendido; alertas y textos que comienzan por `! `siguen jugando y las respuestas a sus preguntas nunca se ven afectadas\nSe han añadido activadores proactivos (nueva pestaña «Activadores»): un disparador observa los estados o el reloj y anuncia algo, escribe un estado o le hace una pregunta y actúa en función de su respuesta («La freidora lleva 5 horas encendida. ¿Lo voy a apagar?» — el LLM clasifica la respuesta oral según las reglas de respuesta configuradas). Admite condiciones alternativas, «también» o «a menos que» se refinen, un retraso con «CancelWhen» y un tiempo de reutilización; cada disparador tiene «activadores. <id>. {enabled, fire, lastFired, nextFireAt} `estados más un conmutador maestro `triggers.enabled`\nEl asistente ahora puede hacer una pregunta y esperar la respuesta: `sendTo ('assistant.0', 'askUser', {question, room}) `lo pronuncia por satélite, vuelve a abrir el micrófono sin avisar y devuelve lo que ha dicho. Mientras hay una pregunta abierta, la respuesta se envía a la persona que llama y no se lee como un comando nuevo\nHa añadido un cuarto transporte de voz: satélites de voz ESPhome (Third Reality Voice & Music Assistant, Home Assistant Voice PE, Linux Voice Assistant). El adaptador marca los dispositivos en el TCP 6053, detecta el final de la voz y la envía a través de un pequeño servidor multimedia HTTP",
|
|
80
|
-
"pl": "Użyj pierwszego modelu, jeśli nie jest ustawiony\nDozwolone uruchamianie tylko z lokalnym LLM\nDodano procedury: fraza („dobranoc”) wyświetla listę działań i odpowiedzi raz. Dopasowane przed silnikiem reguł offline i przed LLM, więc zapisane makro nigdy nie jest reinterpretowane\nSilnik reguł offline odpowiada teraz na pytania dotyczące pewnego rodzaju pomiaru bez nazwy urządzenia: „jak jest tu powietrze”, „jak jest wszędzie ciepło”, „jak jasne jest” odpowiadają z każdego tego rodzaju czujnika, ze słowem oznaczającym numer jakości powietrza\nTekst mówiony jest buforowany na dysku, więc powtarzane odpowiedzi („OK. „, „Timer zakończony”) nie kosztuje połączenia w chmurze i brak opóźnień. Odpowiedź przekraczająca 400 znaków jest wycinana w ostatnim zdaniu, które pasuje, a „<speak>...</speak>” jest teraz wypowiadane jako prawdziwy SSML przez Azure i Polly\nDodano opcjonalny silnik drugiej mowy w zależności od kierunku: jeśli skonfigurowany dostawca ulegnie awarii (awaria, wygasły klucz, pusty limit), mowa na tekst i tekst na mowę wrócą do innego - z Vosk/Piper za dostawcą chmury dom nadal pracuje bez Internetu\nDodano dwa opcjonalne ustawienia poleceń przełączania: potwierdź krótkim sygnałem dźwiękowym zamiast wypowiedzianego zdania i sprawdź potwierdzenie urządzenia przed zgłoszeniem sukcesu\nWłasne pomiary satelity ESPhome (temperatura, obecność, teksty stanu) pojawiają się teraz jako stany tylko do odczytu w `satelitach. <id>.sterowanie. *`\nOgłoszenia mogą dotyczyć grupy pomieszczeń lub osoby: wymień zestaw satelitów w nowej tabeli „Cele ogłoszenia” i użyj go wszędzie tam, gdzie cel jest akceptowany („powiadomienie”, „Askuser”, pomieszczenie wyzwalacza, stan „tts” na satelitę). LLM dostał również narzędzie „ogłoszenia”, więc „powiedz Denisowi, że obiad jest gotowy” dociera do jego mówców - skonfigurowane nazwy są częścią opisu narzędzia. Pytanie zadane grupie liczy pierwszą odpowiedź, a tekst jest syntetyzowany raz dla całej grupy\nAsystent może teraz wiedzieć, kto jest w domu: skieruj nową tabelę „Obecność” na stany, które już masz (adapter mieszkańców, ping telefonu, własną flagę) i nazwij osobę. Mówi LLM, kto jest w pobliżu, wstrzymuje ogłoszenia do pustego domu na żądanie („powiadomić” z `OnlyWhenHome`) i ujawnia `Presence.AnyoneHome`/`Presence.List`/`Presence.LastarRival` - więc powitanie kogoś po przyjeździe jest tylko wyzwalaczem tego stanu\nPowiadomienia systemowe mogą być teraz wypowiadane: napisz do `notify.text`/`notify.alert`, zadzwoń do `sendTo ('assistant.0', 'notification', {text, severity}) `lub wybierz asystenta w menedżerze powiadomień ioBroker. LLM zamienia surowy tekst w jedno zdanie naturalne, którego ton jest zgodny z surowością (`info`/`notify`/`alert`, plus `bezpośredni`, aby wypowiedzieć to dosłownie)\nDodano Do-Not-Disturb, wymuszone przez adapter dla każdego transportu: `dnd` globalnie i `satelitów. <id>.dnd` na satelitę. Ogłoszenia są wyłączane, gdy są włączone; alerty i teksty zaczynające się od `! `nadal są odtwarzane, a odpowiedzi na własne pytania nigdy nie są dotknięte\nDodano proaktywne wyzwalacze (nowa zakładka „Wyzwalacze”): wyzwalacz obserwuje stany lub zegar, a następnie ogłasza coś, zapisuje stan lub zadaje pytanie i działa zgodnie z Twoją odpowiedzią („Frytkownica jest włączona przez 5 godzin. Mam to wyłączyć?” — LLM klasyfikuje odpowiedź mówioną do skonfigurowanych reguł odpowiedzi). Obsługuje alternatywne warunki, udoskonalenia `also`/`unless`, opóźnienie z `CancelWhen „i czas odnowienia; każdy wyzwalacz ma `triggers.items. <id>. Stan {enabled, fire, lastFired, nextFireAt} `plus przełącznik główny `triggers.enabled`\nAsystent może teraz zadać pytanie i czekać na odpowiedź: `sendTo ('assistant.0', 'askUser', {question, room}) 'wypowiada je na satelicie, ponownie otwiera mikrofon bez słowa budzącego i zwraca to, co zostało powiedziane. Podczas gdy pytanie jest otwarte, odpowiedź jest kierowana do dzwoniącego zamiast być odczytywana jako nowe polecenie\nDodano czwarty transport głosowy: satelity głosowe ESPhome (ThirdReality Voice & Music Assistant, Home Assistant Voice PE, Linux-Voice-Assistant). Adapter wybierze urządzenia w TCP 6053, sam wykrywa koniec mowy i obsługuje odpowiedź mówioną na małym serwerze multimedialnym HTTP",
|
|
81
|
-
"uk": "Використовуйте першу модель, якщо не встановлено\nДозволено працювати тільки з локальним LLM\nДодані процедури: фраза («на добраніч») запускає список дій і відповідей один раз. Відповідає перед механізмом правил офлайн та перед LLM, тому записаний вами макрос ніколи не переосмислюється\nОфлайн-механізм правил тепер відповідає на запитання щодо свого роду вимірювання без назви пристрою: «як повітря тут», «як тепло скрізь», «наскільки яскраво» відповідають кожен датчик такого роду зі словом для числа якості повітря\nРозмовний текст кешується на диску, тому повторюються відповіді («Гаразд. «, «Таймер закінчений») не коштує хмарного дзвінка та затримки. Відповідь понад 400 символів вирізана в останньому реченні, яке підходить, і `<speak>...</speak>` тепер називається справжнім SSML Azure та Polly\nДодано додатковий другий мовний механізм для кожного напрямку: якщо налаштований провайдер виходить з ладу (відключення, термін дії ключа закінчився, порожня квота), перехід мовлення до тексту та перетворення тексту в мову повертаються до іншого - з Vosk/Piper за хмарним провайдером, будинок продовжує працювати без Інтернету\nДодано два додаткові налаштування для команд перемикання: підтвердіть коротким звуковим сигналом замість вимовленого речення та перевірте підтвердження пристрою, перш ніж повідомити про успіх\nВласні вимірювання супутника ESPHome (температура, присутність, тексти статусу) тепер відображаються як стани лише для читання під `супутниками. <id>.елементи керування. *`\nОголошення можуть звертатися до групи кімнат або до людини: назвати набір супутників у новій таблиці «Цілі оголошення» і використовувати його в будь-якому місці, де приймається ціль (`notify`, `AskUser`, кімната тригера, стан `tts` для кожного супутника). LLM також отримав інструмент «анонсу», тому «повідомте Денису, що вечеря готова» доходить до його спікерів - налаштовані назви є частиною опису інструменту. Запитання, поставлене групі, враховує першу відповідь, і текст синтезується один раз для всієї групи\nТепер помічник може знати, хто вдома: наведіть нову таблицю «Присутність» на вже наявні у вас стани (адаптер мешканців, пінг телефону, власний прапор) та назвіть людину. Він повідомляє LLM, хто поруч, стримує оголошення до порожнього будинку за запитом (`повідомляти` з `onlyWhenHome`) і викриває `Presence.anyoneHome`/`presence.list`/`Presence.LastArrival` - тому вітання когось після прибуття є лише тригером цього стану\nСистемні сповіщення тепер можна вимовляти: пишіть на `notify.text`/`notify.alert`, викликайте `SendTo ('assistant.0', 'notice', {text, severity}) `або виберіть помічника в диспетчері сповіщень IObroker. LLM перетворює необроблений текст в одне природне речення, тон якого відповідає суворості (`info`/`notify`/`alert`, плюс `direct`, щоб висловити його дослівно)\nДодано Do-Not-Disturb, що застосовується адаптером для кожного транспорту: `dnd` глобально та `супутники. <id>.dnd` на супутник. Оголошення пригнічуються, поки він увімкнений; сповіщення та тексти починаються з `! `все ще відтворюються, і відповіді на ваші власні запитання ніколи не впливають\nДодані проактивні тригери (нова вкладка «Тригери»): тригер спостерігає за станами або годинником, а потім щось повідомляє, пише стан або задає вам запитання та діє відповідно до вашої відповіді («Фритюрниця увімкнена протягом 5 годин. Чи варто вимкнути його?» — LLM класифікує розмовну відповідь відповідно до налаштованих правил відповіді). Підтримує альтернативні умови, «також`/`unless` уточнення, затримку з `cancelWhen` та зарядку; кожен тригер має `triggers.items. <id>. Стани {enabled, fire, lastFired, nextFireAt} `плюс головний перемикач `triggers.enabled`\nТепер помічник може задати питання і чекати відповіді: `sendTo ('assistant.0', 'askUser', {query, room}) `розмовляє його на супутнику, знову відкриває мікрофон без пробудження і повертає сказане. Поки питання відкрите, відповідь направляється на абонента замість того, щоб читатися як нова команда\nДодано четвертий голосовий транспорт: голосові супутники ESPHome (голосовий та музичний помічник ThirdReality, домашній помічник голосовий PE, голосовий помічник Linux). Адаптер набирає пристрої на TCP 6053, сам виявляє кінець мови і подає розмовну відповідь через невеликий медіа-сервер HTTP",
|
|
82
|
-
"zh-cn": "如果未设置,则使用第一个模型\n仅允许使用本地 LLM 运行\n添加了例程:一个短语(“晚安”)会运行一次操作和答案列表。在离线规则引擎之前和 LLM 之前匹配,因此您写下的宏永远不会被重新解释\n离线规则引擎现在可以回答有关一种测量的问题,无需为设备命名:“这里的空气怎么样”、“到处都有多温暖”、“有多亮”,每个此类传感器都会回答,并用一个词来表示空气质量数字\n口头文字缓存在磁盘上,因此重复回复(“好吧。“,“计时器已完成”)无需花费云通话,也没有延迟。在最后一句话中删掉了超过 400 个字符的答案,Azure 和 Polly 现在将 “<speak>...</speak>” 说成了真正的 SSML\n为每个方向添加了可选的第二个语音引擎:如果配置的提供商出现故障(中断、密钥过期、配额为空),语音转文本和文字转语音将退回到另一个语音引擎——Vosk/Piper 在云提供商后面,则公司在没有互联网的情况下继续工作\n为交换机命令添加了两个可选设置:用短蜂鸣声而不是口头句子进行确认,并在报告成功之前验证设备的确认\n现在,ESPhome卫星自己的测量结果(温度、存在状态、状态文本)在 “卫星” 下显示为只读状态。<id>. 控件。*`\n公告可以针对一组房间或一个人:在新的 “公告目标” 表中命名一组卫星,并在接受目标的任何地方使用它(`notify`、`askUser`、触发器房间、每颗卫星的`ts`状态)。LLM 还有一个 “公告” 工具,所以 “告诉丹尼斯晚餐准备好了” 会传到他的演讲者手中——配置的名称是工具描述的一部分。向小组提出的问题算作第一个答案,整个小组的文本只合成一次\n助手现在可以知道谁在家:将新的 “Presence” 表对准你已经拥有的州(居民适配器、电话 ping、你自己的旗帜),然后给这个人起名字。它告诉 LLM 谁在附近,应要求不向空房子发布公告(使用 `onlyWhenHome` 进行`通知'),并公开 `presence.anyoneHome`/`presence.list`/`presence.lastarRival` — 所以在某人抵达时问候只是该状态的触发因素\n现在可以说出系统通知了:写信给 `notify.text`/`notify.alert`,致电 `sendTo('assistant.0','通知',{文本,严重性})`,或者在 ioBroker 通知管理器中选择助手。LLM 将原始文本变成一句自然的句子,其语气遵循严重程度(`info`/`notify`/`alert`,再加上逐字说出的 “直接”)\n添加了 “请勿打扰”,由适配器在每次传输时强制执行:全局 “dnd” 和 “卫星”。<id>每颗卫星 .dnd`。公告开启时会被抑制;警报和以 `! 开头的短信`仍在播放,你自己的问题的答案永远不会受到影响\n增加了主动触发器(新的 “触发器” 选项卡):触发器监视状态或时钟,然后宣布某件事、写下状态或问你一个问题并根据你的答案采取行动(“炸锅已经开启了 5 个小时。我应该把它关掉吗?”— LLM 根据配置的响应规则对语音回复进行分类)。支持替代条件、“还有”/“除非” 改进、“CancelWhen” 延迟和冷却时间;每个触发器都有 “triggers.items”。<id>。{enabled、fire、lastFireAt、nextFireAT} `状态加上`trigers.enabled`主开关\n助手现在可以提问并等待答案:`sendTo ('assistant.0', 'askUser', {question, room}) `在卫星上说话,在没有叫醒词的情况下重新打开麦克风并返回所说的内容。当问题处于打开状态时,该答案将发送给调用者,而不是作为新命令读取\n添加了第四种语音传输:espHome 语音卫星(ThirdReality 语音和音乐助手、家庭助理语音 PE、linux-voice-assistant)。适配器通过 TCP 6053 拨打设备,自行检测语音结束,并通过小型 HTTP 媒体服务器提供语音回复"
|
|
83
|
-
},
|
|
84
|
-
"0.1.6": {
|
|
85
|
-
"en": "The offline rule engine now understands combined commands: \"switch the light on and set the blind to 30 %\", and one verb for several devices (\"switch the light and the lamp on\")\nFixed: \"50 percent\" was not recognised as a level in English\nThe selected weather adapter is now fed to the LLM as context (current conditions plus today/tomorrow), so weather questions are answered without an extra tool round-trip\nThe local LLM receives the weather context too, so it no longer invents a forecast\nDocumented the weather source selection in the user documentation",
|
|
86
|
-
"de": "Die Offline-Regel-Engine versteht nun kombinierte Befehle: \"Schalte das Licht ein und stelle die Jalousie auf 30 %\", sowie ein Verb für mehrere Geräte (Schalte das Licht und die Lampe ein).\nBehoben: „50 Prozent“ wurde im Englischen nicht als Niveau anerkannt.\nDer ausgewählte Wetteradapter wird nun als Kontext (aktuelle Bedingungen plus heutige/morgen) an das LLM übermittelt, sodass Wetterfragen ohne zusätzlichen Tool-Rundlauf beantwortet werden.\nDas lokale LLM erhält ebenfalls die Wetterkontextinformationen, sodass es keine Vorhersage mehr erstellt.\nDie Auswahl der Wetterdatenquelle wurde in der Benutzerdokumentation dokumentiert.",
|
|
87
|
-
"ru": "Автономный механизм правил теперь распознает комбинированные команды: «включить свет и установить жалюзи на 30 %», а также один глагол для нескольких устройств («включить свет и лампу»).\nИсправлено: \"50 процентов\" не признавалось уровнем в английском языке.\nВыбранный адаптер погоды теперь передается в LLM в качестве контекста (текущие условия плюс сегодня/завтра), поэтому на вопросы о погоде даются ответы без дополнительного обращения к другому инструменту.\nМестный лаборант также получает информацию о погоде, поэтому он больше не составляет собственные прогнозы.\nВыбор источника метеорологических данных задокументирован в пользовательской документации.",
|
|
88
|
-
"pt": "O mecanismo de regras offline agora entende comandos combinados: \"acenda a luz e ajuste a persiana para 30%\", e um verbo para vários dispositivos (\"acenda a luz e o abajur\").\nCorrigido: \"50 por cento\" não era reconhecido como um nível em inglês.\nO adaptador meteorológico selecionado é agora enviado ao LLM como contexto (condições atuais mais informações de hoje/amanhã), de modo que as perguntas sobre o clima são respondidas sem a necessidade de uma comunicação adicional entre as ferramentas.\nO LLM local também recebe o contexto meteorológico, portanto não precisa mais criar uma previsão.\nDocumentamos a seleção da fonte de dados meteorológicos na documentação do usuário.",
|
|
89
|
-
"nl": "De offline regelengine begrijpt nu gecombineerde commando's: \"zet het licht aan en stel de jaloezie in op 30%\", en één werkwoord voor meerdere apparaten (\"zet het licht en de lamp aan\").\nOpgelost: \"50 procent\" werd niet herkend als een niveau in het Engels.\nDe geselecteerde weeradapter wordt nu als context (huidige omstandigheden plus vandaag/morgen) aan het LLM doorgegeven, zodat weervragen beantwoord kunnen worden zonder dat daarvoor een extra tool nodig is.\nHet lokale LLM ontvangt ook de weersinformatie, waardoor het geen voorspellingen meer hoeft te verzinnen.\nDe selectie van de weerbron is gedocumenteerd in de gebruikersdocumentatie.",
|
|
90
|
-
"fr": "Le moteur de règles hors ligne comprend désormais les commandes combinées : « allumer la lumière et régler le store à 30 % », et un verbe pour plusieurs appareils (« allumer la lumière et la lampe »).\nCorrigé : « 50 pour cent » n'était pas reconnu comme un niveau en anglais\nL'adaptateur météo sélectionné est maintenant transmis au LLM comme contexte (conditions actuelles et prévisions pour aujourd'hui/demain), ce qui permet de répondre aux questions météo sans avoir à effectuer un aller-retour supplémentaire avec un outil.\nLe LLM local reçoit également les informations météorologiques, il n'a donc plus besoin d'établir de prévisions.\nLa sélection de la source météorologique a été documentée dans la documentation utilisateur.",
|
|
91
|
-
"it": "Il motore di regole offline ora comprende comandi combinati: \"accendi la luce e imposta la tapparella al 30%\", e un unico comando per più dispositivi (\"accendi la luce e la lampada\").\nRisolto: \"50 percento\" non veniva riconosciuto come livello in inglese\nL'adattatore meteo selezionato viene ora fornito all'LLM come contesto (condizioni attuali più previsioni per oggi/domani), in modo che le domande sul meteo vengano risolte senza dover ricorrere a strumenti aggiuntivi.\nAnche il modello LLM locale riceve il contesto meteorologico, quindi non inventa più una previsione\nLa selezione della fonte meteo è stata documentata nella documentazione per l'utente.",
|
|
92
|
-
"es": "El motor de reglas sin conexión ahora entiende comandos combinados: \"enciende la luz y ajusta la persiana al 30 %\", y un verbo para varios dispositivos (\"enciende la luz y la lámpara\").\nCorregido: \"50 por ciento\" no se reconocía como un nivel en inglés.\nEl adaptador meteorológico seleccionado ahora se introduce en el LLM como contexto (condiciones actuales más las de hoy/mañana), por lo que las preguntas meteorológicas se responden sin necesidad de una herramienta adicional.\nEl LLM local también recibe el contexto meteorológico, por lo que ya no inventa un pronóstico.\nDocumenté la selección de la fuente meteorológica en la documentación del usuario.",
|
|
93
|
-
"pl": "Silnik reguł offline rozumie teraz łączone polecenia: „włącz światło i ustaw rolety na 30%” oraz jedno polecenie dla kilku urządzeń („włącz światło i lampę”)\nNaprawiono: „50 procent” nie było uznawane za poziom w języku angielskim\nWybrany adapter pogodowy jest teraz przekazywany do LLM jako kontekst (bieżące warunki plus dziś/jutro), dzięki czemu na pytania dotyczące pogody można uzyskać odpowiedź bez konieczności korzystania z dodatkowych narzędzi.\nLokalny LLM również otrzymuje kontekst pogodowy, więc nie musi już tworzyć prognozy\nUdokumentowano wybór źródła pogody w dokumentacji użytkownika",
|
|
94
|
-
"uk": "Механізм правил для автономного режиму тепер розуміє комбіновані команди: «увімкнути світло та встановити жалюзі на 30 %» та одне дієслово для кількох пристроїв («увімкнути світло та лампу»).\nВиправлено: «50 відсотків» не розпізнавалося як рівень в англійській мові.\nВибраний погодний адаптер тепер передається до LLM як контекст (поточні умови плюс сьогодні/завтра), тому відповіді на питання щодо погоди отримуються без використання додаткового інструменту.\nЛокальний LLM також отримує інформацію про погоду, тому він більше не створює прогноз.\nВибір джерела погоди задокументовано в документації користувача",
|
|
95
|
-
"zh-cn": "离线规则引擎现在可以理解组合命令:“打开灯并将百叶窗设置为 30%”,以及一个动词控制多个设备(“打开灯和台灯”)。\n已修复:“50%”在英语中未被识别为一个等级\n现在,选定的天气适配器会作为上下文信息(当前天气状况以及今天/明天的天气状况)提供给 LLM,因此无需额外的工具往返即可回答天气问题。\n本地LLM也能接收到天气信息,因此不再自行预测天气。\n在用户文档中记录了天气源的选择过程。"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -230,6 +230,7 @@
|
|
|
230
230
|
"esphomeMediaPort": 8099,
|
|
231
231
|
"esphomeMediaHost": "",
|
|
232
232
|
"esphomeSilenceMs": 900,
|
|
233
|
+
"esphomeSaveCaptures": false,
|
|
233
234
|
"voiceLanguage": "",
|
|
234
235
|
"voiceApiKey": "",
|
|
235
236
|
"ttsVoice": "alloy",
|
|
@@ -244,6 +245,7 @@
|
|
|
244
245
|
"ttsProvider": "openai",
|
|
245
246
|
"sttFallback": "",
|
|
246
247
|
"ttsFallback": "",
|
|
248
|
+
"ttsMaxChars": 400,
|
|
247
249
|
"azureSpeechKey": "",
|
|
248
250
|
"azureSpeechRegion": "",
|
|
249
251
|
"azureVoice": "",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.assistant",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "LLM assistant for ioBroker — ask about and control any state via an LLM with tool-calling",
|
|
5
5
|
"author": "ioBroker",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@2colors/esphome-native-api": "^1.3.6",
|
|
21
21
|
"@anthropic-ai/sdk": "^1.3.0",
|
|
22
|
-
"@aws-sdk/client-polly": "^3.
|
|
23
|
-
"@aws-sdk/client-transcribe-streaming": "^3.
|
|
22
|
+
"@aws-sdk/client-polly": "^3.1161.0",
|
|
23
|
+
"@aws-sdk/client-transcribe-streaming": "^3.1161.0",
|
|
24
24
|
"@iobroker/adapter-core": "^3.4.3",
|
|
25
|
-
"@iobroker/mcp-server": "^1.
|
|
25
|
+
"@iobroker/mcp-server": "^1.9.2",
|
|
26
26
|
"microsoft-cognitiveservices-speech-sdk": "^1.53.0",
|
|
27
|
-
"openai": "^7.
|
|
27
|
+
"openai": "^7.47.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@alcalzone/release-script": "^5.2.1",
|