Здравствуйте! Хотел сделать виртуальную кнопку, написал такое правило:
defineVirtualDevice("system_control", {
title: "System control",
cells: {
powerOn: {
type: "pushbutton"
},
powerOff: {
type: "pushbutton"
}
}
});
defineRule("power_on_pressed", {
whenChanged: ["wb-gpio/A1_IN", "system_control/powerOn"],
then: function (newValue, devName, cellName) {
log("Power On button changed: " + newValue);
}
});
defineRule("power_off_pressed", {
whenChanged: ["wb-gpio/A2_IN", "system_control/powerOff"],
then: function (newValue, devName, cellName) {
log("Power On button changed: " + newValue);
}
});
Что имеем:
При замыкании контакта gpio - в newValue прилетает true , при размыкании - false.
При нажатии кнопки в веб-интерфейсе ничего не прилетает. А при отпускании прилетает false.
И это, вроде бы, даже соответствует документации, где написано, что у кнопки value - всегда 1.
А почему так сделано?
Получается, объединить контакт и веб-кнопку одним правилом не получится, нужно писать отдельное правило для обработки кнопок?
П.С.
Еще вопрос - а ячейкам (cells) никак не задать человеческое имя для отображения в вебе?
Пробовал добавить им параметр title, как у самого устройства, но это не привело к изменению отображаемых названий.