Здравствуйте, вопрос вот в чем, можно ли из правил вызывать скрипты python? Может есть команда наподобие runShellCommand или какой нибудь другой способ. Или хотя бы посоветуйте где об этом почитать, потому что в интернете я нашел много информации для разных версий js, но пока ничего не получается
А чем она не устраивает?
Я написал такой код, но пайтон скрипт не запускается из программы правила
title: "Doors", //
cells: {
'Security' : {
type : "switch",
value : false
},
'Door1' : {
type : "text",
value : null
},
'Door2' : {
type : "text",
value : null
},
'Door3' : {
type : "text",
value : null
},
'Window1' : {
type : "text",
value : null
},
'Window2' : {
type : "text",
value : null
},
'Window3' : {
type : "text",
value : null
}
}
});
function makeDoorSensor(name, sensor, obj) {
defineRule(name, {
whenChanged: "wb-adc/" + sensor,
then: function (newValue, devName, cellName) {
//log('1', typeof(newValue), newValue)
var d1 = dev["Sec"]["Security"]
if ((newValue<2.50) && (d1==true)) {
log('2', typeof(newValue), newValue)
dev["Sec"][obj] = "Opened";
//exec('python3 /etc/wb-rules/notify.py obj');
runShellCommand("python3 /etc/wb-rules/notify.py", obj);
log("alarm message has been sent");
}
else if ((newValue>2.50) && (d1==true)){
log('3', typeof(newValue), newValue)
dev["Sec"][obj] = "Closed";
}
else if ((newValue>2.50) && (d1==false)){
log('4', typeof(newValue), newValue)
dev["Sec"][obj] = "Closed";
}
else if ((newValue<2.50) && (d1==false)){
log('5', typeof(newValue), newValue)
dev["Sec"][obj] = "Opened" }}
});
}
makeDoorSensor('doorSensor_1', 'EXT1_A7', 'Door1');
makeDoorSensor('doorSensor_2', 'EXT1_A8', 'Door2');
makeDoorSensor('doorSensor_3', 'EXT1_A9', 'Door3');
makeDoorSensor('doorSensor_4', 'EXT1_A10', 'Window1');
makeDoorSensor('doorSensor_5', 'EXT1_A11', 'Window2');
makeDoorSensor('doorSensor_6', 'EXT1_A12', 'Window3');
По логу попадаешь в нужную ветку? Распиши код, что возвращает shell после выполнения rush… Может попробовать написать полный путь к бинарнику pyton?
А почему не перехватить вывод (stdout, stderr) запускаемого и записать в лог/анализировать?