Javascript im ioBroker – Script Engine-Adapter

In ioBroker bietet der Script Engine-Adapter mehrere Optionen zum Erstellen benutzerdefinierter Kontrollstrukturen. Wir können problemlos Smart-Home-Geräte verschiedener Hersteller daran anschließen.

Der ioBroker Script Engine-Adapter bietet Ihnen enorme Freiheiten und Möglichkeiten in der Hausautomation.

blank


Echo Dot 5. Generation Smarter Bluetooth Lautsprecher mit Alexa

Werbung – Der neue Echo Dot Smarter Lautsprecher mit Alexa von amazon.de

Installieren wir den Script Engine-Adapter

Um eigene Skripte in ioBroker zu erstellen, müssen wir den JavaScript-Adapter „Script Engine“ installieren. Gehen wir zur Registerkarte „Adapter“, geben wir den Suchbegriff „Script Engine“ in das Suchfeld ein und installieren wir dann eine Kopie des Javascript-Adapters.

Installieren wir eine Instanz des Javascript-Adapters

Nach der Installation werden wir zur Seite mit den Adaptereinstellungen „Script Engine“ weitergeleitet. Wir können hier die Standardeinstellungen belassen. Dadurch ist der ioBroker Script Enginer-Adapter einsatzbereit.

Verwendung des Script Engine-Adapters

Gehen wir zur Seite „Skripte“.

Die Editorseite „Skripte“ besteht aus drei Teilen. Die erste ist die Ordneransicht, die zweite ist das Codebearbeitungsfeld und die dritte ist die Konsole, die zum Anzeigen des Protokolls verwendet wird.

Das Panel „Skripte“ besteht aus drei Teilen

Das 1. Panel ist der Verzeichnisbaum, unsere eigenen Skripte werden hier sein, wir können sie in gut getrennten Ordnern anordnen. In der Kopfzeile der Ordneransicht finden wir ein horizontales Menü, dessen erstes Element ein Dropdown-Menü ist.

Das erste Element des horizontalen Menüs ist ein Dropdown-Menü.

„Expertenmodus“ in der Dropdown-Liste schaltet den Expertenmodus ein, der unter anderem die Möglichkeit zum Debuggen bietet. Darüber hinaus können wir unsere Skripte importieren, aber auch Skripte aus externen Quellen exportieren.

Über das Ordnersymbol mit dem „+“-Zeichen im horizontalen Menü der Ordneransicht können Sie einen neuen Ordner erstellen.

Über das Ordnersymbol mit dem „+“-Zeichen können wir einen neuen Ordner erstellen

Wir können ein neues Skript hinzufügen, indem wir im Menü auf das „+“-Zeichen klicken.

Benutzer mit weniger Programmiererfahrung können den Editor „Rules“ oder „Blocky“ verwenden. Eine freiere und professionellere Möglichkeit bietet der Editor „Javascript“ oder „Typescript“.

Wahl des Herausgebers der ioBroker-Skript-Engine

Durch Klicken auf das Stiftsymbol können wir unsere Ordner oder Skripte umbenennen.

Das 2. Panel ist der Code-Editor, hier können wir unsere Skripte bearbeiten. Im Folgenden verwenden wir den Javascript-Editor.

Im Code-Editor können wir mehrere Skripte gleichzeitig bearbeiten und über die Registerkarten zwischen ihnen wechseln. Durch Klicken auf die dunkelblaue Schaltfläche neben den Tab-Ohren können wir die Ordneransicht ausblenden und so eine größere Bearbeitungsoberfläche erhalten.

Das Editor-Panel verfügt außerdem über ein vertikales Menü.

Das Editor-Panel verfügt außerdem über ein vertikales Menü

Gehen wir die Menüpunkte einzeln durch. Durch Klicken auf das erste „Speicherort“-Symbol von links wird die aktuell bearbeitete Datei in der Ordneransicht ausgewählt. Das zweite Symbol startet das Skript neu. Das dritte ist das „Play/Pause“-Symbol, um die Ausführung des Skripts zu starten/stoppen.

Das Uhrsymbol ruft das CRON-Timer-Panel auf, mit dem wir ganz einfach Timer zum Skript hinzufügen können.

Das Uhrsymbol ruft das CRON-Timer-Panel auf.

Das Sternsymbol gibt Auskunft über die Zeiten täglicher astrologischer Ereignisse.

Als nächstes folgt das „Task“-Icon, mit dessen Hilfe wir die Datenpunkte der ioBroker-Objekte in unseren Code einfügen können.

Wir können es aus den Datenpunkten der ioBroker-Objekte in unseren Code einfügen.

Die letzten beiden Symbole helfen bei der Fehlerbehebung.

Mini PC 16GB DDR4 512GB ROM, Intel Celeron N5105 bis zu 2,9 GHz

Mini PC 16GB DDR4 512GB ROM, Intel Celeron N5105 bis zu 2,9 GHz

Windows 11 Pro Mini Computer mit 2xHDMI+VGA 4K Triple Display, WiFi 5, RJ45-LAN, BT 4.2

werbung

Sehen wir uns einige Beispiele für die Verwendung des Javascript-Adapters an

Schreiben wir unser erstes Skript, lass es Hallo ioBroker sein!

console.log("Hallo ioBroker!  Hallo Javascript!");
Hallo ioBroker-Skript

Mit der Funktion „console.log()“ kann in das Protokoll geschrieben werden, welches auf der Konsole angezeigt wird. Sie können diese Meldungen auch auf der Seite „Protokolle“ sehen. Diese Funktion kann beispielsweise zum Debuggen nützlich sein.

Im folgenden Beispiel fragen wir mit der Funktion „getState()“ den Zustand der Wohnzimmerbeleuchtung ab und entsprechend schaltet die Funktion „setState()“ das Licht im Wohnzimmer ein oder aus.

var wohnzimmerlicht ='mqtt.0.Wohnzimmerlicht'/*Wohnzimmerlicht*/;
var wohnzimmerlicht_state = String(getState(wohnzimmerlicht).val);

if(wohnzimmerlicht_state == "true")
{
  setState(wohnzimmerlicht, "false");
}
else
{
    setState(wohnzimmerlicht, "true");
}

Der obige Code ist nicht sehr nützlich, da er nur funktioniert, wenn das Skript ausgeführt wird. Ändern wir den Code so, dass das Licht angeht, wenn ein Ereignis eintritt, beispielsweise wenn eine Taste gedrückt wird.

Mit der Funktion „on()“ werden Änderungen des in der Variablen „schalter“ gespeicherten Datenpunkts überwacht. Tritt ein Zustandswechsel auf, läuft die Funktion ab und das Licht schaltet sich ein. Damit haben wir den Betrieb des Skripts automatisiert.

var wohnzimmerlicht ='mqtt.0.Wohnzimmerlicht'/*Wohnzimmerlicht*/;
var schalter = 'mqtt.0.App.Schalter'/*Schalter*/

on({id: schalter}, function (obj)
{
  var wohnzimmerlicht_state = String(getState(wohnzimmerlicht).val);
  
  if(wohnzimmerlicht_state == "true")
  {
    setState(wohnzimmerlicht, "false");
  }
  else
  {
    setState(wohnzimmerlicht, "true");
  }
});

Raspberry Pi 4 Model B 4GB

Raspberry Pi 4 Model B  4 GB, ARM Cortex-A72 4x, 1,50 GHz, 4 GB RAM, WiFi-ac, Bluetooth 5, LAN, 4x USB, 2x Micro-HDMI

werbung – amazon.de

blank

Das folgende einfache Beispiel verwendet den CRON-Timer, um alle zwei Minuten die Wohnungstemperatur zu überprüfen. Sinkt die Temperatur unter 15 Grad, wird über den Pushsafer-Dienst ein Alarm an das angegebene Mobiltelefon gesendet. Hierzu wird der Pushsafer-Adapter benötigt.

var warning_once = false;

schedule(' */2 * * * *', function()
{
  var temp = Number(getState('mqtt.0.WohnzimmerTemp'/*WohnzimmerTemp*/).val);
  var text = 'Die Temperatur der Wohnung: ' + temp + ' Grad';

  if(temp < 15)
  {
    if(warning_once == false)
    {
      sendTo("pushsafer", {
        message:   text,
        title:     'Warnung vor niedrigen Temperaturen',
        device:    'xxxxx',
        sound:     '5',
        icon:      '1',
        vibration: '1',
        priority:  '2',
      });
      warning_once = true;
    }
  }
  else
  {
    warning_once = false;
  }
})