KI-Assistent

Mit dem AI Assistant-Adapter können Sie Ihren ioBroker mithilfe künstlicher Intelligenz auf Basis von LLMs steuern

Aktueller Release
0.1.4
Entwickler
ToGe3688
Lizenz
MIT

Überblick

Der ioBroker AI Assistant Adapter führt einen intelligenten Assistenten in Ihrem ioBroker-System aus. Mit diesem Assistenten können Sie mit Ihrem ioBroker-System interagieren, zeit- und ereignisbasierte Anweisungen festlegen sowie benutzerdefinierte Funktionen aufrufen. Der Assistent lässt sich mit verschiedenen Sprachmodellen unterschiedlicher Anbieter (z. B. OpenAI, Anthropic, Perplexity, OpenRouter) oder mit benutzerdefinierten/selbst gehosteten Modellen konfigurieren. Er kann zur Automatisierung von Aufgaben, zur Steuerung Ihres Smart Homes oder zur Bereitstellung von Informationen verwendet werden.

Merkmale

  • Personalisieren Sie den Namen und die Persönlichkeit Ihres Assistenten
  • ioBroker-Zustände auflisten, lesen und schreiben
  • Legen Sie Timeouts und Cronjobs fest, um zeitbasierte Anweisungen auszuführen.
  • Legen Sie Trigger für ioBroker-Zustände mit Bedingungen fest, die Anweisungen ausführen, wenn die Bedingungen erfüllt sind.
  • Definieren Sie benutzerdefinierte Funktionen mit Ihren eigenen Daten und Ihrer eigenen Logik.
  • Über den Admin-Tab können Sie mit Ihrem persönlichen Assistenten chatten.

Unterstützte Anbieter


Schnellstart

  1. Installieren Sie den Adapter.
  2. Richten Sie einen Provider ein (z. B. OpenAI, Anthropic, Perplexity, OpenRouter) und besorgen Sie sich ein API-Token.
  3. Konfigurieren Sie den Adapter mit dem API-Token.
  4. Wählen Sie das Modell aus, das Sie für den Assistenten verwenden möchten.
  5. Fügen Sie einige ioBroker-Zustände unter demObjects Registerkarte, die dem Assistenten zur Verfügung stehen wird.
  6. Beginnen Sie die Kommunikation mit Ihrem Assistenten, indem Sie Textanfragen an den Assistenten senden.text_request den Staat und Antworten von ihm erhaltentext_response Alternativ können Sie den benutzerdefinierten Admin-Tab mit der Bezeichnung „Assistent“ verwenden.

Getestete Modelle

Folgende Modelle wurden mit dem Adapter getestet und funktionieren bekanntermaßen einwandfrei:

  • Claude 3.5 Sonett (Anthropisch)
  • gpt-4o-mini (OpenAI)
  • meta-llama/llama-3.3-70b-instruct (OpenRouter)
  • deepseek/deepseek-chat (OpenRouter)
  • x-ai/grok-beta (OpenRouter)
  • perplexity/llama-3.1-sonar-huge-128k-online (Perplexity)
  • perplexity/llama-3.1-sonar-large-128k-online (Perplexity)

Konfiguration

Assistent

Richten Sie Ihren Assistenten mit den folgenden Einstellungen ein:

EinstellungBeschreibung
NameDer Name Ihres Assistenten.
ModellWählen Sie das LLM-Modell aus, das Ihr Assistent verwenden soll (konfigurierbar unter Anbieter).
PersönlichkeitBeschreiben Sie die Persönlichkeit Ihres Assistenten.
SpracheWählen Sie die Sprache aus, die Ihr Assistent verwenden soll (derzeit werden nur Englisch/Deutsch unterstützt).
Debug-/CoT-AusgabeWenn der Assistent aktiv ist, werden seine internen Gedanken und Prozesse in den Status text_response geschrieben.
NachrichtenverlaufVorherige Nachrichten einbeziehen (für chatbotähnliches Verhalten). Für Tools, die nur einmal verwendet werden, auf 0 setzen, um den Tokenverbrauch zu minimieren.
TemperaturKontrolliert die Kreativität/Konsistenz der Reaktionen.
Max. TokenBegrenzt die Anzahl der Antworttoken.
WiederholungsverzögerungVerzögerung zwischen Wiederholungsversuchen, falls die Anfrage fehlschlägt
Maximale WiederholungsversucheMaximale Anzahl an Wiederholungsversuchen pro Anfrage.

Objekte

WARNUNG: Seien Sie vorsichtig mit den Zuständen, auf die Sie dem Assistenten Zugriff gewähren, da er alle Zustände lesen und beschreiben kann, auf die er Zugriff hat.

Richten Sie die ioBrokers-Objekte und -Zustände ein, auf die der Assistent Zugriff haben soll.

HINWEIS: Beim Importieren oder Hinzufügen von Objekten achten Sie bitte darauf, nur Datenpunkte vom Typ "state" hinzuzufügen, die direkt gesteuert werden können oder einen auszulesenden Wert enthalten!

EinstellungBeschreibung
Import aus Enum.RoomsImportiert alle Ihre Zustände aus der enum.rooms-Sortierung in ioBroker. (Überschreibt alle zuvor festgelegten Objekte!)
SortierenAlle Objekte mit demselben Sortierfeld werden dem Assistenten in einer Gruppe (z. B. einem Raum) angezeigt.
NameVerwenden Sie einen beschreibenden Namen, damit der Assistent die Funktion der Objekte versteht.
ObjektDie ID des ioBroker-Zustands

Funktionen

Richten Sie benutzerdefinierte Funktionen ein, die dem Assistenten zur Verfügung stehen sollen. Ihre benutzerdefinierten Funktionen müssen die Antwort in den von Ihnen definierten Zustand schreiben.State (Response) Feld nach demState (Request) Das Ergebnis kann in jedem beliebigen Format vorliegen (z. B. JSON, Klartext), solange der Assistent es verarbeiten kann. Tipp: Mit dem AI-Toolbox-Adapter können Sie Ihren Assistenten in benutzerdefinierte KI-Tools integrieren.

HINWEIS: Wenn Sie keine Antwort auf dieState (Response) Wird das Feld in 60 Sekunden nicht erreicht, schlägt der Funktionsaufruf fehl!

EinstellungBeschreibung
SortierenAlle Objekte mit demselben Sortierfeld werden dem Assistenten in einer Gruppe (z. B. einem Raum) angezeigt.
NameVerwenden Sie einen aussagekräftigen Namen für die benutzerdefinierte Funktion.
BeschreibungBeschreiben Sie die Funktion so, dass der Assistent versteht, wann er sie aufrufen soll.
Status (Anfrage)Dieser Zustand wird vom Assistenten beim Aufruf der Funktion als Zeichenkette geschrieben.
Zustand (Antwort)Dieser Zustand wird vom Assistenten gelesen, um die Antwort der Funktion zu erhalten.

LLM-Anbieter

Konfigurieren Sie jeden KI-Anbieter einzeln:

Anthropisch

EinstellungBeschreibung
API-TokenGeben Sie Ihr Anthropic-API-Token ein.
ModelleGeben Sie die zu verwendenden Modelle an.

OpenAI

EinstellungBeschreibung
API-TokenGeben Sie Ihr OpenAI-API-Token ein.
ModelleGeben Sie die zu verwendenden Modelle an.

Verwirrung

EinstellungBeschreibung
API-TokenGeben Sie Ihr Perplexity-API-Token ein.
ModelleGeben Sie die zu verwendenden Modelle an.

OpenRouter

EinstellungBeschreibung
API-TokenGeben Sie Ihr OpenRouter-API-Token ein.
ModelleGeben Sie die zu verwendenden Modelle an.

Brauch

EinstellungBeschreibung
URL des InferenzserversURL des benutzerdefinierten/selbstgehosteten Inferenzservers.
API-Token für den InferenzserverAPI-Token für Ihren Inferenzserver.
ModelleGeben Sie die zu verwendenden Modelle an.
NotizSicherstellen der Einhaltung gängiger AI LLM API-Standards (z. B. LM Studio API).

Verwendung

Einfaches Gespräch

Sie können mit Ihrem Assistenten interagieren, indem Sie Textanfragen an dietext_request Zustand und Empfang von Antworten von dertext_response Zustand.

Funktionsaufruf

Der Assistent kann alle verfügbaren Funktionen aufrufen. Er ermittelt dazu die aufzurufende Funktion anhand der Textanfrage. Wenn Sie die Debug-/CoT-Ausgabe aktiviert haben, können Sie den internen Prozess des Assistenten im Debugger einsehen.text_response Zustand.

Zustandsinteraktion

Der Assistent kann mehrere ioBroker-Zustände gleichzeitig auflisten, lesen und schreiben. Sie können denObjects Mit dieser Registerkarte können Sie festlegen, auf welche Bundesstaaten der Assistent Zugriff haben soll.

Zeitbasierte Anweisungen

Der Assistent kann Timeouts für relative Zeitanweisungen und Cronjobs für bestimmte Zeiten festlegen. Cronjobs werden in der Objektstruktur des Assistenten unter [Pfad einfügen] aufgelistet.Cronjobs Timeouts sind nur temporär und werden nach Ablauf des Timeouts oder nach einem Neustart des Adapters aufgehoben. Bei Auslösung eines Timeouts oder Cronjobs wird der Assistent aktiviert und die entsprechende Anweisung ausgeführt.

Triggerbasierte Anweisungen

Der Assistent kann Trigger für ioBroker-Zustände mit optionalen Bedingungen festlegen, die Anweisungen ausführen, sobald die Bedingungen erfüllt sind. Die Trigger werden in der Objektstruktur des Assistenten unter „…“ aufgelistet.Triggers Wird der Befehl ausgelöst, wird der Assistent aktiviert und die Anweisung ausgeführt.

Benutzerdefinierte Funktionen

Der Assistent kann benutzerdefinierte Funktionen aufrufen, die Sie in derFunctions Der Assistent wird die Anfrage an die Registerkarte schreiben.State (Request) Feld und erwartet die Antwort imState (Response) Feld.

Funktionsverkettung

Der Assistent ermöglicht die Verkettung mehrerer Funktionen. Beispielsweise lässt sich ein Cronjob einrichten, der nach seiner Ausführung die Zustände von ioBroker überprüft und anschließend eine benutzerdefinierte Funktion mit den Ergebnissen aufruft.

Chatverlauf löschen

Manchmal kann es hilfreich sein, den Chatverlauf zurückzusetzen. Dies können Sie tun, indem Sie den Assistenten bitten, seinen Verlauf zu löschen. Dadurch werden alle vorherigen Nachrichten aus dem Speicher des Assistenten entfernt. (z. B.Clear history oderForget the previous messages )

Weitere Informationen

Statistiken

Für Ihren Assistenten werden Statistiken protokolliert, die Sie in der folgenden Ansicht einsehen können:Statistics Objektbaum.

DatenpunktBeschreibung
.statistics.lastRequestZeitstempel der letzten Anfrage.
.statistics.requestCountAnzahl der an den Assistenten gesendeten Anfragen
.statistics.messages*JSON-Array der Nachrichtenhistorie (falls Nachrichtenhistorie > 0).
.statistics.clear_messages*Schaltfläche zum Löschen des Nachrichtenverlaufs.
.statistics.tokens_inputGesamtzahl der verwendeten Eingabe-Tokens.
.statistics.tokens_outputInsgesamt verwendete Output-Token.

Entwicklung

Dieser Adapter befindet sich noch in der Entwicklung und kann Fehler enthalten. Bitte melden Sie alle auftretenden Probleme.

Debugging

Stellen Sie den Protokollierungsgrad auf eindebug Detaillierte Protokolle finden Sie in der ioBroker-Admin-Oberfläche.

Changelog

0.1.4 (2025-06-05)

  • (@ToGe3688) Added tab to interact with the assitant in the admin adapter
  • (@ToGe3688) Added a custom timeout parameter
  • (@GermanBluefox) Corrected using of the states with the multi-language names

0.1.3 (2025-29-01)

  • (@ToGe3688) Added support for Deepseek as api provider
  • (@ToGe3688) Better display of providers in model selection for admin config
  • (@ToGe3688) Fixed object hirarchy
  • (@ToGe3688) Fixed state roles
  • (@ToGe3688) Fixed onStateChange handler

0.1.2 (2025-12-01)

  • (@ToGe3688) Better error handling for Provider APIs
  • (@ToGe3688) Anthropic API Versioning

0.1.1 (2025-12-01)

  • (@ToGe3688) Better error handling for Provider APIs

0.1.0 (2025-04-01)

  • (@ToGe3688) Beta Release

0.0.3 (2024-31-12)

  • (@ToGe3688) Improved handling of malformed model responses
  • (@ToGe3688) Fixed a bug where the names of the states were not provided to the assistant

0.0.2 (2024-30-12)

  • (@ToGe3688) Fixed Bug in OpenAI Provider

0.0.1 (2024-30-12)

  • (@ToGe3688) initial release

License

The MIT License (MIT)

Copyright (c) 2024-2025 ToGe3688 toge3688@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.