Товарищи здравствуйте, пытаюсь отправить команду на mao4 через кнопку с двумя условиями, но реакции никакой, подскажите, что не так делаю?
defineVirtualDevice("BassOnOff", {
title: "BassOnOff",
cells: {
enabled: {
type: "switch",
value: false
}
}
});
defineRule("BassOnOff", {
whenChanged: ["BassOnOff/enabled", "wb-mio-gpio_77:2/IN14"],
then: function (newValue, devName, cellName) {
if (dev ["BassOnOff/enabled"] && dev["wb-mio-gpio_77:2"]["IN14"] = true) {
dev["wb-mao4_202"]["Channel 3"] = Number(10000);log;
dev["wb-mao4_202"]["Channel 4"] = Number(10000);log;
} {
if (dev ["BassOnOff/enabled"] || dev["wb-mio-gpio_77:2"]["IN14"] = false) {
dev["wb-mao4_202"]["Channel 3"] = Number(0);log;
dev["wb-mao4_202"]["Channel 4"] = Number(0);log;
}}}
});
Нет, к сожалению не работает так, да и
не верная строка) BassOnOff/disabled так не работает)
но если так прописать
defineVirtualDevice("BassOnOff", {
title: "BassOnOff",
cells: {
enabled: {
type: "switch",
value: false
}
}
});
defineRule("BassOnOff", {
whenChanged: ["BassOnOff/enabled", "wb-mio-gpio_77:2/IN14"],
then: function (newValue, devName, cellName) {
if (dev ["BassOnOff/enabled"] && dev["wb-mio-gpio_77:2"]["IN14"] == true) {
dev["wb-mao4_202"]["Channel 3"] = Number(10000);log;
dev["wb-mao4_202"]["Channel 4"] = Number(10000);log;
} {
if (dev ["BassOnOff/enabled"] || dev["wb-mio-gpio_77:2"]["IN14"] == false) {
dev["wb-mao4_202"]["Channel 3"] = Number(0);log;
dev["wb-mao4_202"]["Channel 4"] = Number(0);log;
}}}
});
то при переключении свича отправляется 0 в выход mao4, 10000 не отправляется, хотя условия выполнены
А какую логику вы пытаетесь прописать? В первом if у вас когда “BassOnOff/enabled” И dev[“wb-mio-gpio_77:2”][“IN14”] == true, это возможно когда виртуальная кнопка включена И 14й вход замкнут, во втором if у вас “BassOnOff/enabled” ИЛИ dev[“wb-mio-gpio_77:2”][“IN14”] == false это когда виртуальная кнопка выключена ИЛИ 14й вход разомкнут. В первом случае нажали кнопку и замкнули вход и получили Number(10000), во втором случае нажали кнопку, получили Number(0), разомкнули вход получили Number(0).
логика такая, что 14 вход всегда замкнут) при размыкании 14 входа или выключении кнопки должен посылаться 0) если 14 вход замкнут и включить кнопку в true должно посылаться 10000)
в первом if для запуска должны быть выполнены ОБА условия( если одно не выполнено, то нет запуска). Во втором if при если одно из условий в false то происходит остановка)
Вообще странное решение, но все же решение…
defineVirtualDevice("BassOnOff", {
title: "BassOnOff",
cells: {
enabled: {
type: "switch",
value: false
}
}
});
defineRule("BassOnOff", {
whenChanged: ["BassOnOff/enabled", "wb-mio-gpio_77:2/IN14"],
then: function (newValue, devName, cellName) {
if (dev ["BassOnOff/enabled"] == true && dev["wb-mio-gpio_77:2"]["IN14"] == true) {
dev["wb-mao4_202"]["Channel 3"] = Number(10000);log;
dev["wb-mao4_202"]["Channel 4"] = Number(10000);log;
} {
if (dev ["BassOnOff/enabled"] == false || dev["wb-mio-gpio_77:2"]["IN14"] == false) {
dev["wb-mao4_202"]["Channel 3"] = Number(0);log;
dev["wb-mao4_202"]["Channel 4"] = Number(0);log;
}}}
});
почему так то?)))
и кстати нет вариантов прописать плавный разгон с 0 до 10в?