ioBroker JavaScript Übersicht

ioBroker JavaScript: Anleitung, Funktionen und Script-Beispiele 2026

Mit JavaScript in ioBroker kannst du eigene Smart-Home-Automationen entwickeln, Datenpunkte auswerten, Geräte steuern und auf Ereignisse reagieren. Gerade wenn eine Automation mit Blockly zu umfangreich wird, bietet JavaScript deutlich mehr Möglichkeiten.

Auf dieser Seite findest du meine Anleitungen rund um ioBroker JavaScript. Die Übersicht reicht vom ersten eigenen Script über Variablen, Bedingungen und Funktionen bis zu Triggern, Zeitsteuerungen, getState(), setState(), JSON und der Fehlersuche.

ioBroker JavaScript Anleitung und Script Beispiele
JavaScript gehört zu den flexibelsten Möglichkeiten, eigene Automationen in ioBroker umzusetzen.

ioBroker JavaScript: Wo sollte ich anfangen?

Wenn du bisher noch keine eigenen Scripts geschrieben hast, empfehle ich dir diese Reihenfolge:

  1. ioBroker JavaScript Einführung
  2. JavaScript Syntax, Variablen, Bedingungen und Funktionen
  3. getState(), setState() und weitere ioBroker-Funktionen
  4. Trigger und Ereignisse mit JavaScript
  5. Zeitsteuerungen mit schedule()

Damit hast du bereits die wichtigsten Grundlagen, um eigene Smart-Home-Automationen zu schreiben.

Was ist der ioBroker JavaScript-Adapter?

Die Script Engine erweitert ioBroker um die Möglichkeit, eigene Automationen zu programmieren. Nach der Installation erscheint der Bereich für Scripts in der ioBroker-Oberfläche.

Dort kannst du deine Automationen in Ordnern organisieren, neue Scripts anlegen und festlegen, welche JavaScript-Instanz das jeweilige Script ausführt.

Der Adapter ist außerdem die technische Grundlage für weitere Script-Arten wie Blockly und TypeScript.

Eine ausführliche Schritt-für-Schritt-Anleitung findest du hier:

👉 ioBroker JavaScript installieren und erstes Script erstellen

JavaScript Grundlagen für ioBroker

Du musst kein professioneller Entwickler sein, um einfache ioBroker-Scripts zu erstellen. Einige JavaScript-Grundlagen solltest du trotzdem kennen.

Dazu gehören vor allem:

  • Variablen und Datentypen
  • Vergleichsoperatoren
  • UND- und ODER-Verknüpfungen
  • if-Bedingungen
  • switch-Anweisungen
  • Schleifen
  • Funktionen
  • Arrays und Objekte

Diese Grundlagen erkläre ich mit Smart-Home-Beispielen in meiner JavaScript-Einführung:

👉 ioBroker JavaScript: Syntax, Variablen, Bedingungen und Funktionen

Datenpunkte mit getState() auslesen

Eine der wichtigsten Aufgaben eines ioBroker-Scripts ist das Auslesen von Datenpunkten. Dafür wird häufig getState() verwendet.

const temperatur = getState("mein.datenpunkt.temperatur").val;

log("Temperatur: " + temperatur);

Über den zurückgegebenen State stehen neben dem eigentlichen Wert weitere Informationen zur Verfügung. Dazu gehören beispielsweise Zeitstempel und Informationen darüber, welcher Adapter den Wert zuletzt verändert hat.

Datenpunkte mit setState() ändern

Mit setState() kannst du den Wert eines Datenpunktes ändern und damit beispielsweise Lampen, Steckdosen oder andere Geräte steuern.

setState("mein.datenpunkt.licht", true);

getState() und setState() gehören deshalb zu den ioBroker-Funktionen, die du in sehr vielen eigenen Scripts benötigen wirst.

👉 ioBroker JavaScript: getState(), setState() und Systemfunktionen erklärt

Geräte mit JavaScript steuern

Mit den Datenpunkten eines Adapters kannst du über JavaScript Geräte steuern. Das funktioniert beispielsweise mit Lampen, Steckdosen oder anderen Aktoren.

function lichtEinschalten() {
    setState("mein.datenpunkt.licht", true);
}

lichtEinschalten();

Der Vorteil einer eigenen Funktion besteht darin, dass dieselbe Aktion später aus mehreren Stellen des Scripts aufgerufen werden kann.

👉 Aktoren mit ioBroker JavaScript steuern

Trigger und Ereignisse in ioBroker JavaScript

Die meisten Smart-Home-Automationen sollen nicht dauerhaft laufen, sondern auf ein bestimmtes Ereignis reagieren. Das kann beispielsweise eine Bewegung, eine Temperaturänderung oder das Öffnen eines Fensters sein.

Dafür kannst du Datenpunkte mit einem Event überwachen.

on({
    id: "mein.datenpunkt.bewegung",
    change: "ne"
}, function (obj) {
    log("Neuer Wert: " + obj.state.val);
});

Das Script wird ausgeführt, sobald sich der überwachte Wert verändert.

👉 ioBroker JavaScript Trigger und Ereignisse erklärt

Zeitsteuerung mit schedule()

Neben Änderungen von Datenpunkten können auch Uhrzeiten eine Automation starten. Dafür bietet ioBroker die Funktion schedule().

schedule({
    hour: 20,
    minute: 15
}, function () {
    log("Zeitsteuerung wurde ausgeführt");
});

Damit lassen sich beispielsweise Beleuchtung, Bewässerung oder andere Geräte zu festgelegten Zeiten steuern.

👉 ioBroker Zeitsteuerung mit JavaScript und schedule()

JSON mit ioBroker JavaScript verarbeiten

Bei MQTT, REST-APIs und verschiedenen Smart-Home-Adaptern begegnen dir häufig Daten im JSON-Format.

const value = '{"name":"SensorOutdoor1","temp":21.5,"hum":58}';

try {
    const sensor = JSON.parse(value);

    log("Temperatur: " + sensor.temp);
    log("Luftfeuchtigkeit: " + sensor.hum);
} catch (error) {
    log("JSON konnte nicht verarbeitet werden", "error");
}

Mit JSON.parse() lässt sich eine JSON-Zeichenfolge in ein JavaScript-Objekt umwandeln und anschließend einfach weiterverarbeiten.

👉 JSON in ioBroker JavaScript verarbeiten

Systembefehle mit exec() ausführen

Für spezielle Anwendungen kann ein JavaScript auch Befehle auf dem ioBroker-Host ausführen. Dafür steht exec() zur Verfügung.

Damit lassen sich beispielsweise Linux-Kommandos starten und deren Ausgabe innerhalb des Scripts weiterverarbeiten.

Diese Funktion sollte gezielt eingesetzt werden. Systembefehle können direkten Einfluss auf den ioBroker-Host haben und müssen im JavaScript-Adapter ausdrücklich erlaubt werden.

👉 ioBroker JavaScript exec(): Systembefehle ausführen

Fehler in ioBroker JavaScript finden

Ein fehlendes Zeichen, eine falsche Datenpunkt-ID oder eine fehlerhafte Bedingung reicht aus, damit eine Automation nicht wie erwartet funktioniert.

Bei der Fehlersuche helfen vor allem das ioBroker-Log und zusätzliche Ausgaben innerhalb des Scripts.

log("Script gestartet");

const wert = getState("mein.datenpunkt").val;

log("Aktueller Wert: " + wert);

Mit solchen Ausgaben kannst du nachvollziehen, welche Teile des Scripts tatsächlich ausgeführt werden und welche Werte ankommen.

👉 Fehlersuche in ioBroker JavaScript

JavaScript-Scripts sichern und testen

Je größer eine ioBroker-Installation wird, desto wichtiger wird eine saubere Verwaltung der Scripts. Änderungen an einer umfangreichen Automation solltest du möglichst nicht direkt im laufenden Produktivsystem ausprobieren.

Eine Möglichkeit besteht darin, eine zusätzliche JavaScript-Instanz ausschließlich zum Testen neuer Scripts zu verwenden. Nach erfolgreichen Tests kann das Script anschließend in die produktive Instanz verschoben werden.

Auch die regelmäßige Sicherung der eigenen Scripts gehört für mich zu einer größeren ioBroker-Installation dazu.

👉 ioBroker JavaScript Tipps: Backup, Test-Instanz und Scriptsuche

ioBroker JavaScript mit Visual Studio Code bearbeiten

Bei umfangreicheren Scripts wird der integrierte Browser-Editor irgendwann unübersichtlich. Dann kann Visual Studio Code eine interessante Alternative sein.

Damit kannst du deine ioBroker-Scripts lokal bearbeiten und von Funktionen eines klassischen Quelltext-Editors profitieren.

👉 ioBroker JavaScript mit Visual Studio Code bearbeiten

Praktische ioBroker JavaScript Beispiele

Die Grundlagen werden besonders verständlich, wenn sie in einer echten Smart-Home-Automation eingesetzt werden. Auf smarthome-tricks.de findest du deshalb auch fertige Script-Beispiele und Projekte.

ioBroker Script-Sammlung

Neben den Grundlagen findest du auf smarthome-tricks.de eine Sammlung weiterer ioBroker-Scripts für verschiedene Smart-Home-Aufgaben.

👉 Zur ioBroker Script-Sammlung

Neu beim JavaScript-Adapter 2026

Auch der JavaScript-Adapter wird weiterentwickelt. Wenn du eine aktuelle ioBroker-Installation betreibst, lohnt sich deshalb ein Blick auf die Änderungen der aktuellen Adaptergeneration.

In meinem aktuellen Beitrag findest du unter anderem Informationen zu JavaScript 10, Änderungen bei Zugangsdaten und neuen Blockly-Funktionen:

👉 ioBroker JavaScript 10: Blockly mit KI und Passwörter ohne Klartext

JavaScript oder Blockly in ioBroker?

Für einfache Automationen ist Blockly häufig der angenehmere Einstieg. Trigger, Bedingungen und Aktionen werden dort grafisch zusammengesetzt.

JavaScript wird interessant, sobald Automationen umfangreicher werden, viele Datenpunkte verarbeitet werden oder dieselbe Logik an mehreren Stellen wiederverwendet werden soll.

BlocklyJavaScript
EinstiegEinfachJavaScript-Grundlagen hilfreich
DarstellungGrafische BlöckeQuelltext
Kleine AutomationenSehr gut geeignetEbenfalls möglich
Komplexe LogikKann schnell unübersichtlich werdenGut strukturierbar
Wiederverwendbare FunktionenMöglichSehr flexibel

Wenn du lieber mit grafischen Bausteinen arbeitest, findest du hier meinen zweiten großen Script-Hub:

👉 ioBroker Blockly: Blöcke, Beispiele und Anleitungen

Häufige Fragen zu ioBroker JavaScript

Was brauche ich für JavaScript in ioBroker?

Für eigene JavaScript-Automationen benötigst du den JavaScript-Adapter beziehungsweise die Script Engine. Danach kannst du im Script-Bereich neue JavaScript-Scripts erstellen.

Welche Funktion liest einen ioBroker-Datenpunkt aus?

Zum Auslesen eines Zustands wird häufig getState() verwendet. Über .val kannst du auf den eigentlichen Wert des States zugreifen.

Wie ändere ich einen Datenpunkt mit JavaScript?

Mit setState() kannst du einen Wert an einen ioBroker-Datenpunkt schreiben und dadurch beispielsweise einen Aktor steuern.

Wie reagiere ich in ioBroker auf eine Änderung?

Mit einem Event beziehungsweise einer Subscription kann ein Datenpunkt überwacht werden. Sobald die definierte Änderung eintritt, führt ioBroker die zugehörige Callback-Funktion aus.

Wie starte ich ein ioBroker Script zu einer bestimmten Uhrzeit?

Für zeitabhängige Automationen steht unter anderem schedule() zur Verfügung. Damit lassen sich Funktionen zu festen Uhrzeiten oder nach einem definierten Zeitplan ausführen.

Sollte ich Blockly oder JavaScript verwenden?

Blockly eignet sich besonders gut für den Einstieg und kleinere Automationen. Bei größeren Scripts, umfangreichen Berechnungen oder wiederverwendbaren Funktionen bietet JavaScript meist mehr Übersicht und Flexibilität.

Kann ich ioBroker JavaScript mit Visual Studio Code bearbeiten?

Ja. Für umfangreichere Projekte lässt sich Visual Studio Code als externer Editor einsetzen. Eine Anleitung zur Einrichtung findest du weiter oben auf dieser Seite.

Weitere ioBroker Anleitungen

JavaScript ist nur ein Teil von ioBroker. Weitere Anleitungen zu Adaptern, Visualisierungen, Blockly, Home Assistant und verschiedenen Smart-Home-Systemen findest du in meiner zentralen ioBroker-Übersicht.

👉 Alle ioBroker Anleitungen auf smarthome-tricks.de