Skip to content

Commit 1273e7c

Browse files
committedFeb 5, 2025·
Translations
1 parent 1e779f2 commit 1273e7c

File tree

255 files changed

+32568
-23508
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

255 files changed

+32568
-23508
lines changed
 

‎README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ Project content:
2626

2727
## TODO
2828
- [ ] Do not translate development documentation. By some flag or path
29+
- [ ] Create the index file for meilisearch
30+
- [ ] Use https://www.meilisearch.com/docs/learn/self_hosted/getting_started_with_self_hosted_meilisearch for search
2931

3032
## How to create the documentation
3133
See [how to participate](https://www.iobroker.net/#de/documentation/community/styleguidedoc.md)
@@ -37,5 +39,5 @@ Read the change log [here](CHANGELOG.md).
3739

3840
The MIT License (MIT)
3941

40-
Copyright (c) 2014-2024 bluefox <dogafox@gmail.com>
42+
Copyright (c) 2014-2025 bluefox <dogafox@gmail.com>
4143
Copyright (c) 2014 hobbyquaker
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
---
2+
translatedFrom: en
3+
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
4+
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.ai-assistant/README.md
5+
title: ioBroker.ai-Assistent
6+
hash: 1WwgYlBlYiCCGclngXJYE3dBxwGnkfzPrlENgsR30RQ=
7+
---
8+
![Logo](../../../en/adapterref/iobroker.ai-assistant/admin/ai-assistant.png)
9+
10+
![NPM-Version](https://img.shields.io/npm/v/iobroker.ai-assistant.svg)
11+
![Downloads](https://img.shields.io/npm/dm/iobroker.ai-assistant.svg)
12+
![Anzahl der Installationen](https://iobroker.live/badges/ai-assistant-installed.svg)
13+
![Aktuelle Version im stabilen Repository](https://iobroker.live/badges/ai-assistant-stable.svg)
14+
![NPM](https://nodei.co/npm/iobroker.ai-assistant.png?downloads=true)
15+
16+
# IoBroker.ai-Assistent
17+
**Tests:** ![Testen und Freigeben](https://github.com/ToGe3688/ioBroker.ai-assistant/workflows/Test%20and%20Release/badge.svg)
18+
19+
## Übersicht
20+
Der ioBroker AI Assistant Adapter führt einen intelligenten Assistenten in Ihrem ioBroker-System aus. Der Assistent kann verwendet werden, um mit Ihrem ioBroker-System zu interagieren, zeitbasierte Anweisungen und triggerbasierte Anweisungen festzulegen und benutzerdefinierte Funktionen aufzurufen. Der Assistent kann mit verschiedenen Sprachmodellen verschiedener Anbieter (z. B. OpenAI, Anthropic, Perplexity, OpenRouter) oder benutzerdefinierten/selbstgehosteten Modellen konfiguriert werden. Der Assistent kann verwendet werden, um Aufgaben zu automatisieren, Ihr Smart Home zu steuern oder Informationen bereitzustellen.
21+
22+
## Merkmale
23+
- Personalisieren Sie den Namen und die Persönlichkeit Ihres Assistenten
24+
- Auflisten, Lesen und Schreiben von ioBroker-Zuständen
25+
- Legen Sie Timeouts und Cronjobs fest, um zeitbasierte Anweisungen auszuführen
26+
- Setzen Sie Trigger für ioBroker-Zustände mit Bedingungen, die Anweisungen ausführen, wenn die Bedingungen erfüllt sind
27+
- Definieren Sie benutzerdefinierte Funktionen mit Ihren eigenen Daten und Ihrer eigenen Logik
28+
29+
## Unterstützte Anbieter
30+
- **Anthropisch**: [anthropic.com](https://anthropic.com)
31+
- **OpenAI**: [openai.com](https://openai.com)
32+
- **Perplexity**: [perplexity.ai](https://perplexity.ai)
33+
- **OpenRouter**: [openrouter.ai](https://openrouter.ai)
34+
- **Deepseek**: [deepseek.com](http://deepseek.com/)
35+
- **Benutzerdefinierte/selbstgehostete Modelle** (z. B. LM Studio, LocalAI)
36+
37+
---
38+
39+
## Schnellstart
40+
1. Installieren Sie den Adapter.
41+
2. Richten Sie einen Anbieter ein (z. B. OpenAI, Anthropic, Perplexity, OpenRouter) und erhalten Sie ein API-Token.
42+
3. Konfigurieren Sie den Adapter mit dem API-Token.
43+
4. Wählen Sie das Modell aus, das Sie für den Assistenten verwenden möchten.
44+
5. Fügen Sie unter der Registerkarte „Objekte“ einige ioBroker-Zustände hinzu, die dem Assistenten zur Verfügung stehen.
45+
6. Beginnen Sie mit der Kommunikation mit Ihrem Assistenten, indem Sie Textanfragen an den Status „text_request“ des Assistenten senden und Antworten vom Status „text_response“ erhalten.
46+
47+
---
48+
49+
## Getestete Modelle
50+
Die folgenden Modelle wurden mit dem Adapter getestet und funktionieren nachweislich gut:
51+
52+
- Claude 3.5 Sonett (Anthropisch)
53+
- gpt-4o-mini (OpenAI)
54+
- meta-llama/llama-3.3-70b-instruct (OpenRouter)
55+
- Deepseek/Deepseek-Chat (OpenRouter)
56+
- x-ai/grok-beta (OpenRouter)
57+
- Ratlosigkeit/Llama-3.1-Sonar-Huge-128k-Online (Ratlosigkeit)
58+
- Perplexität/Llama-3.1-Sonar-large-128k-online (Perplexität)
59+
60+
---
61+
62+
## Konfiguration
63+
### Assistent
64+
Richten Sie Ihren Assistenten mit den folgenden Einstellungen ein:
65+
66+
| **Einstellung** | **Beschreibung** |
67+
| ---------------------- | ---------------------------------------------------------------------------------------------------------- |
68+
| **Name** | Der Name Ihres Assistenten. |
69+
| **Modell** | Wählen Sie das LLM-Modell aus, das Ihr Assistent verwenden soll (konfiguriert unter Anbieter). |
70+
| **Persönlichkeit** | Beschreiben Sie die Persönlichkeit Ihres Assistenten. |
71+
| **Sprache** | Wählen Sie die Sprache aus, die Ihr Assistent verwenden soll (derzeit werden nur Englisch/Deutsch unterstützt) |
72+
| **Debug-/CoT-Ausgabe** | Wenn aktiv, werden die internen Gedanken und Prozesse, die der Assistent verwendet, in den Status „text_response“ geschrieben. |
73+
| **Nachrichtenverlauf** | Vorherige Nachrichten einschließen (für chatbot-ähnliches Verhalten). Für Tools zur einmaligen Verwendung auf 0 setzen, um die Token-Nutzung zu minimieren. |
74+
| **Temperatur** | Steuert die Kreativität/Konsistenz der Reaktion. |
75+
| **Max. Tokens** | Begrenzt die Anzahl der Antworttoken. |
76+
| **Wiederholungsverzögerung** | Verzögerung zwischen Wiederholungsversuchen, wenn die Anforderung fehlschlägt |
77+
| **Maximale Wiederholungsversuche** | Maximale Anzahl an Wiederholungsversuchen pro Anfrage. |
78+
79+
---
80+
81+
### Objekte
82+
### WARNUNG: Seien Sie vorsichtig mit den Zuständen, zu denen Sie dem Assistenten Zugriff gewähren, da er alle Zustände, zu denen er Zugriff hat, lesen und schreiben kann.
83+
Richten Sie die ioBrokers-Objekte und -Status ein, auf die der Assistent Zugriff haben soll.
84+
85+
**HINWEIS: Achten Sie beim Importieren oder Hinzufügen von Objekten darauf, nur Datenpunkte vom Typ „Zustand“ hinzuzufügen, die direkt gesteuert werden können oder einen auszulesenden Wert enthalten!**
86+
87+
| **Einstellung** | **Beschreibung** |
88+
| -------------------------- | --------------------------------------------------------------------------------------------------------- |
89+
| **Import aus Enum.Rooms** | Importiert alle Deine Zustände aus der enum.rooms-Sortierung in ioBroker. (Überschreibt alle vorher gesetzten Objekte!) |
90+
| **Sortieren** | Alle Objekte mit gleichem Sortierfeld werden dem Assistenten in einer Gruppe (z.B. einem Raum) präsentiert |
91+
| **Name** | Verwenden Sie einen beschreibenden Namen, damit der Assistent die Funktion der Objekte versteht |
92+
| **Objekt** | Die ID des ioBroker-Status |
93+
94+
---
95+
96+
### Funktionen
97+
Richten Sie benutzerdefinierte Funktionen ein, die dem Assistenten zur Verfügung stehen sollen.
98+
Ihre benutzerdefinierten Funktionen müssen die Antwort auf den Status schreiben, den Sie im Feld `State (Response)` definiert haben, nachdem `State (Request)` geschrieben wurde.
99+
Das Ergebnis kann in jedem beliebigen Format vorliegen (z. B. JSON, einfacher Text), stellen Sie nur sicher, dass der Assistent es verstehen kann.
100+
Tipp: Sie können [AI-Toolbox Adapter](https://github.com/ToGe3688/ioBroker.ai-toolbox) verwenden, um Ihren Assistenten in benutzerdefinierte KI-Tools zu integrieren.
101+
102+
**HINWEIS: Wenn Sie innerhalb von 60 Sekunden keine Antwort in das Feld `State (Response)` schreiben, schlägt der Funktionsaufruf fehl!**
103+
104+
| **Einstellung** | **Beschreibung** |
105+
| -------------------- | ------------------------------------------------------------------------------------------------ |
106+
| **Sortieren** | Alle Objekte mit gleichem Sortierfeld werden dem Assistenten in einer Gruppe (z.B. einem Raum) präsentiert |
107+
| **Name** | Verwenden Sie einen beschreibenden Namen für die benutzerdefinierte Funktion |
108+
| **Beschreibung** | Beschreiben Sie, was Ihre Funktion macht, damit der Assistent weiß, wann er sie aufrufen muss |
109+
| **Status (Anfrage)** | Dieser Status wird vom Assistenten beim Aufruf der Funktion als String geschrieben |
110+
| **Status (Antwort)** | Dieser Status wird vom Assistenten gelesen, um die Antwort der Funktion zu erhalten |
111+
112+
---
113+
114+
### LLM-Anbieter
115+
Konfigurieren Sie jeden KI-Anbieter einzeln:
116+
117+
#### Anthropisch
118+
| **Einstellung** | **Beschreibung** |
119+
| ------------- | ------------------------------- |
120+
| **API-Token** | Geben Sie Ihr Anthropic API-Token ein. |
121+
| **Modelle** | Geben Sie die zu verwendenden Modelle an. |
122+
123+
#### OpenAI
124+
| **Einstellung** | **Beschreibung** |
125+
| ------------- | ---------------------------- |
126+
| **API-Token** | Geben Sie Ihr OpenAI-API-Token ein. |
127+
| **Modelle** | Geben Sie die zu verwendenden Modelle an. |
128+
129+
#### Ratlosigkeit
130+
| **Einstellung** | **Beschreibung** |
131+
| ------------- | -------------------------------- |
132+
| **API-Token** | Geben Sie Ihr Perplexity-API-Token ein. |
133+
| **Modelle** | Geben Sie die zu verwendenden Modelle an. |
134+
135+
#### OpenRouter
136+
| **Einstellung** | **Beschreibung** |
137+
| ------------- | -------------------------------- |
138+
| **API-Token** | Geben Sie Ihr OpenRouter-API-Token ein. |
139+
| **Modelle** | Geben Sie die zu verwendenden Modelle an. |
140+
141+
#### Brauch
142+
| **Einstellung** | **Beschreibung** |
143+
| ---------------------------------- | ------------------------------------------------------------------------- |
144+
| **URL des Inferenzservers** | URL des benutzerdefinierten/selbst gehosteten Inferenzservers. |
145+
| **API-Token für Inferenzserver** | API-Token für Ihren Inferenzserver. |
146+
| **Modelle** | Geben Sie die zu verwendenden Modelle an. |
147+
| **Hinweis** | Stellen Sie die Einhaltung gängiger AI LLM API-Standards sicher (z. B. LM Studio API). |
148+
149+
---
150+
151+
## Verwendung
152+
### Einfache Konversation
153+
Sie können mit Ihrem Assistenten interagieren, indem Sie Textanfragen an den Status `text_request` senden und Antworten vom Status `text_response` erhalten.
154+
155+
#### Funktionsaufruf
156+
Der Assistent kann alle verfügbaren Funktionen aufrufen. Dies geschieht, indem er anhand der Textanforderung die aufzurufende Funktion ermittelt. Wenn Sie Debug/CoT-Ausgabe aktiviert haben, können Sie den internen Prozess des Assistenten im Status `text_response` sehen.
157+
158+
#### Staatliche Interaktion
159+
Der Assistent kann mehrere ioBroker-Zustände gleichzeitig auflisten, lesen und schreiben. Über die Registerkarte `Objects` können Sie festlegen, auf welche Zustände der Assistent Zugriff haben soll.
160+
161+
#### Zeitbasierte Anweisungen
162+
Der Assistent kann Timeouts für relative Zeitanweisungen und Cronjobs für bestimmte Zeiten festlegen. Cronjobs werden im Objektbaum des Assistenten unter `Cronjobs` aufgelistet.
163+
Timeouts sind nur temporär und werden entfernt, nachdem das Timeout ausgeführt oder der Adapter neu gestartet wurde.
164+
Wenn ein Timeout oder Cronjob ausgelöst wird, wird der Assistent aufgeweckt und die Anweisung ausgeführt.
165+
166+
#### Triggerbasierte Anweisungen
167+
Der Assistent kann Trigger für ioBroker-Zustände mit optionalen Bedingungen setzen, die Anweisungen ausführen, wenn die Bedingungen erfüllt sind. Trigger werden im Objektbaum des Assistenten unter `Triggers` aufgelistet.
168+
Bei Triggerung wird der Assistent aufgeweckt und die Anweisung ausgeführt.
169+
170+
#### Benutzerdefinierte Funktionen
171+
Der Assistent kann benutzerdefinierte Funktionen aufrufen, die Sie im Reiter `Functions` definiert haben. Der Assistent schreibt die Anfrage in das Feld `State (Request)` und erwartet die Antwort im Feld `State (Response)`.
172+
173+
#### Funktionsverkettung
174+
Mit dem Assistenten können mehrere Funktionen miteinander verkettet werden. Sie können beispielsweise einen Cronjob einrichten, der bei Ausführung eine Überprüfung der ioBroker-Zustände startet und dann eine benutzerdefinierte Funktion mit den Ergebnissen aufruft.
175+
176+
#### Chatverlauf löschen
177+
Manchmal kann es sinnvoll sein, den Chatverlauf zurückzusetzen. Dies können Sie tun, indem Sie den Assistenten auffordern, seinen Verlauf zu löschen. Dadurch werden alle vorherigen Nachrichten aus dem Speicher des Assistenten gelöscht. (z. B. `Clear history` oder `Forget the previous messages`)
178+
179+
## Weitere Informationen
180+
### Statistiken
181+
Für Ihren Assistenten werden Statistiken protokolliert und können im Objektbaum `Statistics` eingesehen werden.
182+
183+
| **Datenpunkt** | **Beschreibung** |
184+
| -------------------------------- | ------------------------------------------------------- |
185+
| **.statistics.lastRequest** | Zeitstempel der letzten Anfrage. |
186+
| **.statistics.requestCount** | Anzahl der gesendeten Anfragen an den Assistenten |
187+
| **.statistics.messages\*** | JSON-Array des Nachrichtenverlaufs (wenn Nachrichtenverlauf > 0). |
188+
| **.statistics.clear_messages\*** | Schaltfläche „Nachrichtenverlauf löschen“. |
189+
| **.statistics.tokens_input** | Gesamtzahl der verwendeten Eingabetoken. |
190+
| **.statistics.tokens_output** | Insgesamt verwendete Ausgabetoken. |
191+
192+
## Entwicklung
193+
Dieser Adapter befindet sich noch in der Entwicklung und kann Fehler enthalten. Bitte melden Sie alle Probleme, auf die Sie stoßen.
194+
195+
### Debuggen
196+
Stellen Sie die Protokollebene in der ioBroker-Administratoroberfläche auf `debug` ein, um detaillierte Protokolle zu erhalten.
197+
198+
## Changelog
199+
200+
<!--
201+
Placeholder for the next version (at the beginning of the line):
202+
### **WORK IN PROGRESS**
203+
-->
204+
### 0.1.3 (2025-29-01)
205+
* (@ToGe3688) Added support for Deepseek as api provider
206+
* (@ToGe3688) Better display of providers in model selection for admin config
207+
* (@ToGe3688) Fixed object hirarchy
208+
* (@ToGe3688) Fixed state roles
209+
* (@ToGe3688) Fixed onStateChange handler
210+
211+
### 0.1.2 (2025-12-01)
212+
- (@ToGe3688) Better error handling for Provider APIs
213+
- (@ToGe3688) Anthropic API Versioning
214+
215+
### 0.1.1 (2025-12-01)
216+
217+
- (@ToGe3688) Better error handling for Provider APIs
218+
219+
### 0.1.0 (2025-04-01)
220+
221+
- (@ToGe3688) Beta Release
222+
223+
### 0.0.3 (2024-31-12)
224+
225+
- (@ToGe3688) Improved handling of malformed model responses
226+
- (@ToGe3688) Fixed a bug where the names of the states were not provided to the assistant
227+
228+
### 0.0.2 (2024-30-12)
229+
230+
- (@ToGe3688) Fixed Bug in OpenAI Provider
231+
232+
### 0.0.1 (2024-30-12)
233+
234+
- (@ToGe3688) initial release
235+
236+
## License
237+
238+
The MIT License (MIT)
239+
240+
Copyright (c) 2025 ToGe3688 <toge3688@gmail.com>
241+
242+
Permission is hereby granted, free of charge, to any person obtaining a copy
243+
of this software and associated documentation files (the "Software"), to deal
244+
in the Software without restriction, including without limitation the rights
245+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
246+
copies of the Software, and to permit persons to whom the Software is
247+
furnished to do so, subject to the following conditions:
248+
249+
The above copyright notice and this permission notice shall be included in all
250+
copies or substantial portions of the Software.
251+
252+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
253+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
254+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
255+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
256+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
257+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
258+
SOFTWARE.

0 commit comments

Comments
 (0)