ioBroker JavaScript – Exec

In diesem Artikel zeige ich Dir den Exec Befehl, mit dem Du Systembefehle direkt in ioBroker ausführen kannst. 

Für meine Systemview der Visualisierung wollte ich die Prozessorauslastung ausgeben. In Linux kann die Prozessorleistung mit dem Befehl „top“ ausgegeben werden. Diesen Befehl können wir mittels JavaScript über die exec() Funktion ausführen und das Ergebnis in einen Datenpunkt schreiben. Die exec() Funktion besitzt folgende Signatur:

exec(cmd, callback);

 

Über dem ersten Parameter „cmd“ wird der Befehl an die Funktion übergeben. Die Callback-Funktion wird nach der Ausführung des Befehls ausgeführt und liefert Informationen über die Ausführung zurück.

Um die Funktion nutzen zu können, müssen vorher die Einstellungen „Erlaube das Kommando setObject“ und „Erlaube das Kommando exec“ im JavaScript-Adapter aktiviert werden.

 

Nach einem Neustart des Adapters kann dann der folgende JavaScript ausgeführt werden:

 exec('top', function (error, stdout, stderr) { setState('Datenpunkte.0.SystemInfos.Prozessorauslastung',stdout); }); 

Mit dieser Vorgehensweise haben wir somit eine Vielzahl von Möglichkeiten für den Zugriff auf das ioBroker Hostsystem. In meiner Produktivumgebung arbeite ich mit einem RaspberryPI unter Linux. Die exec Funktion lässt sich aber auch unter Windows Hostsystemen einsetzen. Hierfür muss dann die Befehlssyntax aus der jeweiligen Betriebssystem-Umgebung genutzt werden.

 

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

Ein Gedanke zu „ioBroker JavaScript – Exec

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere