smarthome-tricks.de

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. Der Befehlt „top“ zeigt eine dynamische Übersicht der auf dem System laufenden Prozesse. Diesen Befehl können wir mittels JavaScript über die exec() Funktion ausführen und das Ergebnis in einen Datenpunkt schreiben.

Die exec() Funktion besitzt die folgende Signatur:

exec(cmd, callback);

 

Über dem ersten Parameter „cmd“ wird der auszuführende 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); }); 

Wie oben schon erwähnt führt die exec() Funktion die Funktion „top“ auf dem Host-Betriebssystem aus und schreibt das Ergebnis über die setState-Funktion in den entsprechenden Datenpunkt in ioBroker. Mit dieser Vorgehensweise haben wir somit eine Vielzahl von Möglichkeiten für den Zugriff auf das ioBroker Host-System. In meiner Produktivumgebung arbeite ich mit einem RaspberryPI unter Linux. Die exec Funktion lässt sich aber auch unter Windows Host-Systemen 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 🙂

Die mobile Version verlassen