iobroker.assistant 1.4.6 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +18 -1
  2. package/admin/custom/.vite/manifest.json +1 -1
  3. package/admin/custom/assets/{Components-BR57MZLJ.js → Components-srYDLjt6.js} +2 -2
  4. package/admin/custom/customComponents.js +1 -1
  5. package/admin/custom/index.html +1 -1
  6. package/admin/custom/mf-manifest.json +1 -1
  7. package/admin/custom/mf-stats.json +1 -1
  8. package/admin/i18n/de.json +6 -1
  9. package/admin/i18n/en.json +6 -1
  10. package/admin/i18n/es.json +6 -1
  11. package/admin/i18n/fr.json +6 -1
  12. package/admin/i18n/it.json +6 -1
  13. package/admin/i18n/nl.json +6 -1
  14. package/admin/i18n/pl.json +6 -1
  15. package/admin/i18n/pt.json +6 -1
  16. package/admin/i18n/ru.json +6 -1
  17. package/admin/i18n/uk.json +6 -1
  18. package/admin/i18n/zh-cn.json +6 -1
  19. package/admin/jsonConfig.json +41 -0
  20. package/build/lib/ask.js +10 -0
  21. package/build/lib/ask.js.map +1 -1
  22. package/build/lib/journal.js.map +1 -1
  23. package/build/lib/llm.js +50 -12
  24. package/build/lib/llm.js.map +1 -1
  25. package/build/lib/media.js +226 -0
  26. package/build/lib/media.js.map +1 -0
  27. package/build/lib/piAgent.js +1 -0
  28. package/build/lib/piAgent.js.map +1 -1
  29. package/build/lib/voice/esphome.js +263 -6
  30. package/build/lib/voice/esphome.js.map +1 -1
  31. package/build/lib/voice/esphomeEntities.js +52 -0
  32. package/build/lib/voice/esphomeEntities.js.map +1 -1
  33. package/build/lib/voice/esphomeProto.js.map +1 -1
  34. package/build/lib/voice/ffmpegStatic.js +137 -0
  35. package/build/lib/voice/ffmpegStatic.js.map +1 -0
  36. package/build/main.js +315 -34
  37. package/build/main.js.map +1 -1
  38. package/io-package.json +28 -27
  39. package/package.json +1 -1
package/README.md CHANGED
@@ -57,7 +57,9 @@ the origin in `assistant.0.text.querySource` (satellite name, `chat`, or empty f
57
57
  or — if it is a URL/path to an audio file (`.mp3`/`.wav`/…) — played back.
58
58
 
59
59
  > **Playing audio files needs [ffmpeg](https://ffmpeg.org/) on the host** (Windows and Linux):
60
- > Linux → `sudo apt install ffmpeg`; Windows → install ffmpeg and add it to the `PATH`.
60
+ > Linux → `sudo apt install ffmpeg`; Windows → install ffmpeg and add it to the `PATH`, or enter its full path
61
+ > under **Path to ffmpeg** on the Voice tab. Without either, **Download ffmpeg** on the Voice tab fetches a static
62
+ > build (ffmpeg-static, 20–30 MB) into the data directory of the instance.
61
63
  > Plain-text TTS does not need it — only audio-file playback (mp3/wav/…) does.
62
64
 
63
65
  ### Start a Hannah satellite pointed at this adapter
@@ -235,6 +237,21 @@ train it twice.
235
237
  Placeholder for the next version (at the beginning of the line):
236
238
  ### **WORK IN PROGRESS**
237
239
  -->
240
+ ### 1.4.8 (2026-11-05)
241
+ * (@GermanBluefox) ESPHome satellites: a firmware update entity gets a "check" button (`controls.<update>.check`) that makes the device look for a new version now, instead of at its next boot or its 6-hour check
242
+ * (@GermanBluefox) ESPHome satellites: `text` entities are mirrored as writable states (labels and units of a satellite with a screen can be set from ioBroker). Values outside the device's length or pattern are refused with a warning; a password text is not mirrored
243
+ * (@GermanBluefox) Docs: the optional entities of a satellite with a screen (`confirm_answer`, `display_language`, `text`)
244
+
245
+ ### 1.4.7 (2026-11-04)
246
+ * (@GermanBluefox) Voice messages: `ask` also takes a recording (`audio` as base64 plus `format`, e.g. `ogg`) instead of text. It is recognised with the speech recognition of the Voice tab and answered like a text question; the reply carries the recognised text as `heard`. Telegram uses it for voice messages
247
+ * (@GermanBluefox) Path to ffmpeg can be set on the Voice tab (empty = from the search path), with a button that checks it
248
+ * (@GermanBluefox) Hosts without ffmpeg: "Download ffmpeg" on the Voice tab fetches a static build of ffmpeg-static (20-30 MB, checked against a fixed SHA-256) into the data directory of the instance; it is used while no path is entered
249
+ * (@GermanBluefox) Pictures: `ask` takes `images` (base64 JPEG/PNG/GIF/WebP, at most 4) and passes them to the cloud model (OpenAI-compatible, Anthropic, pi-agent); without a text the question is "What is in this picture?". Rules and the local model are skipped for them. Telegram uses it for photos
250
+ * (@GermanBluefox) Videos: `ask` takes a reference `video: { adapter, path }` into the file storage (never the content). Videos are not looked at yet: without a question the answer says so, with one the model is told
251
+ * (@GermanBluefox) ESPHome: after a reply that asked something, every later reply re-opened the microphone. The firmware keeps `continue_conversation` until it is told "0", so every reply now says it, like Home Assistant does
252
+ * (@GermanBluefox) Satellites only listen again after a reply that asks something: a [[LISTEN]] marker (pi-agent's confirmations) or a question mark at the end. A question mark in the middle of a reply no longer opens the microphone
253
+ * (@GermanBluefox) ESPHome satellites with a screen: yes/no buttons (event `confirm_answer`) answer the open question like a spoken "yes"/"no" - the microphone closes, the reply is announced on that satellite. A select `display_language` is set to the voice language when the satellite connects
254
+
238
255
  ### 1.4.6 (2026-11-03)
239
256
  * (@GermanBluefox) Speech recognition: own OpenAI-compatible server (Voice tab, provider OpenAI, "Speech recognition server"), e.g. a local whisper-large-v3-turbo in speaches, faster-whisper-server or LocalAI. It needs no OpenAI key and never gets it; an own key for the server is optional
240
257
 
@@ -97,7 +97,7 @@
97
97
  ]
98
98
  },
99
99
  "src/Components.tsx": {
100
- "file": "assets/Components-BR57MZLJ.js",
100
+ "file": "assets/Components-srYDLjt6.js",
101
101
  "name": "Components",
102
102
  "src": "src/Components.tsx",
103
103
  "isEntry": true,