Alxprv
10.Сентябрь.2019 10:18:53
1
Добрый день, делаю первые шаги с wirenboard, нужно решить простейшую задачу - включать лампочку по нажатию кнопки, а по второму нажатию гасить её же
Простой вариант с фиксированным выключателем осилил по примерам. А вот для кнопки - не могу добиться работы
whenChanged: "wb-gpio/EXT2_IN14", //при изменении состояния кнопки выключателя
then: function (newValue, devName, cellName) { //выполняй следующие действия
if ( newValue > 0) { //если пришло значение 1
dev["wb-mrps6_74"]["K6"] = 1; //установи Реле 6 модуля 74 в состояние "включено"
} else {
dev["wb-mrps6_74"]["K6"] = 0; //установи Реле 6 модуля 74 в состояние "выключено"
}
}
});
Если ставить = 0 и = 1 для newValue, то либо включается свет и гаснет при отпускании кнопки, либо загорается и не гаснет.
Kilpio
10.Сентябрь.2019 11:40:11
2
Добрый день, Alxprv!
Если вы хотите изменять состояние лампочки при каждом нажатии на кнопку, то проще всего сделать так:
dev["wb-mrps6_74"]["K6"] = !dev["wb-mrps6_74"]["K6"]
(восклицательный знак — логическое “не”, то есть изменить состояние на противоположное).
Alxprv
10.Сентябрь.2019 11:53:24
3
Сделал код вида:
defineRule("switch-on", { //название правила
whenChanged: "wb-gpio/EXT2_IN14", //при изменении состояния кнопки выключателя
then: function (newValue, devName, cellName) { //выполняй следующие действия
dev["wb-mrps6_74"]["K6"] = !dev["wb-mrps6_74"]["K6"] ; //установи Реле 6 контроллера вкл/выкл
}
});
Сохранил, не работает
Точнее лампа горит пока нажата кнопка
Kilpio
10.Сентябрь.2019 12:01:07
4
А вы обрабатывайте только нажатие:
if ( newValue > 0) {dev["wb-mrps6_74"]["K6"] = !dev["wb-mrps6_74"]["K6"] ;}
Alxprv
10.Сентябрь.2019 12:07:09
5
Спасибо @Kilpio
В итоге получил такой работающий код:
defineRule("switcher", { //название правила
whenChanged: "wb-gpio/EXT2_IN14", //при изменении состояния кнопки выключателя
then: function (newValue, devName, cellName) { //выполняй следующие действия
if ( newValue > 0) { //отрабатываем только нажатие кнопки
dev["wb-mrps6_74"]["K6"] = !dev["wb-mrps6_74"]["K6"] //установи Реле 6 модуля 74 в состояние "включено"
} else {
}
}
});
Оставлю для таких же новичков
1 лайк
Kilpio
10.Сентябрь.2019 12:19:27
6
Замечательно, спасибо! Успехов вам!