Выполнение системных команд
Система в проекте Smart Home предоставляет возможность запуска произвольных файлов и скриптов синхронно и асинхронно.
Для этого доступны следующие методы:
-
ExecuteSync(file, args)
: Этот метод позволяет запускать файлы и скрипты синхронно. Вы передаете имя файла или путь к скрипту в аргументеfile
, а также необходимые аргументы в виде объектаargs
. Пример использования:const file = 'script.js'; const args = { param1: 'value1', param2: 'value2' }; ExecuteSync(file, args);
-
ExecuteAsync(file, args)
: Данный метод позволяет запускать файлы и скрипты асинхронно. Аргументыfile
иargs
имеют такую же структуру, как и в методеExecuteSync
. Пример использования:const file = 'script.js'; const args = { param1: 'value1', param2: 'value2' }; ExecuteAsync(file, args);
Оба метода ExecuteSync
и ExecuteAsync
предоставляют возможность запуска произвольных файлов и скриптов в вашем проекте
Smart Home. Синхронный режим означает, что выполнение кода будет блокировать последующие операции до завершения скрипта,
в то время как асинхронный режим позволяет продолжить выполнение других операций без ожидания завершения скрипта.
Вы можете использовать эти методы для интеграции с другими системами, выполнения пользовательских скриптов или запуска
внешних приложений в вашем проекте Smart Home.
пример кода
# ExecuteSync
# ##################################
"use strict";
r = ExecuteSync "data/scripts/ping.sh", "google.com"
if r.out == 'ok'
print "site is available ^^"
ping.sh
#!/usr/bin/env bash
ping -c1 $1 > /dev/null 2> /dev/null; [[ $? -eq 0 ]] && echo ok || echo "err"