Правила для выключения света

Здравствуйте, интересует вопрос.

А именно, имею контроллер wb5 и модули управления светом uniel uch rx111

Имеется кнопочный выключатель без фиксатора, к которому выведена витая пара, эта витая пара подключена к контроллеру к входам A1 и 5V. пробовал подключать к GND, результатов не было.

Написано правило

defineRule(“control_both”, {
asSoonAs: function() {
return dev[“wb-gpio/A1_IN”] == 0;
},
then: function () {
dev[“uchm111rx_0x01”][“Relay 0”] = 0;
dev[“uchm111rx_0x01”][“Relay 1”] = 0;
dev[“uchm111rx_0x01”][“Relay 2”] = 0;
dev[“uchm111rx_0x01”][“Relay 3”] = 0;
dev[“uchm111rx_0x01”][“Relay 4”] = 0;
dev[“uchm111rx_0x01”][“Relay 5”] = 0;
dev[“uchm111rx_0x01”][“Relay 6”] = 0;
dev[“uchm111rx_0x01”][“Relay 7”] = 0;
}
});

Это правило мне подсказали. Ибо я так и не понимаю работу этих правил.((((

мне необходимо что бы нажимая на кнопочный выключатель свет гасился там где я указал в правиле. сейчас это работает только тогда когда я обновляю правило, он просто тупо гасит свет, но через клавишу так и не работает… Подскажите пожалуйста как должно выглядеть правило что бы оно работало через кнопочный выключатель (без фиксации)

Я понял в чем была проблема, проблема была в том что правило работает считывая значения топика A1_IN и если значение равно 0, то он выключает свет.

получается что когда я нажимаю кнопку выключателя он должен менять значение в топике, либо 1, либо 0. но это не происходит, и более того когда я руками в devices меняю виртуальный переключатель в топике A1_OUT, то перейдя в setings значение не меняется 0, на 1.

но если отправлять команды москитом в топик A1_IN то он значения он меняет.

получается что в самом контроллере он не меняет значения топиков A1, поэтому и не работают правила!!! И тогда в полне логичный вопрос… почему так? в логах ни каких ошибок нет, все работает хорошо. пробовал перезагружать устройство… но эффекта не дало!

Прошу подскажите в чем может быть проблема? Или для этой проблемы нужно новую тему создавать?

это вообще не так работает, A1_OUT - это выходной канал на том же клеммнике, он не влияет в общем случае на A1_IN. Проверьте, что A1_OUT у вас выключен, иначе канал не будет работать на вход.
Это всё подробно написано в документации, прочитайте пожалуйста.

Да он выключен…и был выключен когда я тестировал… я просто привел пример данного входа, и привел его в пример, потому что в devices на данный топик иметься переключатель типа switch, и по логике когда я переключаю на включить он должен поменять значение в “1”… я же правильно понял? а он этого не делает…

отсюда сделан вывод что по каким то причинам значение не меняется.

А почему я вообще все это пишу. все это пишу по той причине, что когда я изначально написал не правильное правила а именно:

defineRule(“control_both”, {
whenChanged: “wb-gpio/A1_IN”,
then: function (newValue, devName, cellName) {
dev[“uchm111rx_1”][“Relay 0”] = 0;
dev[“uchm111rx_1”][“Relay 1”] = 0;
dev[“uchm111rx_1”][“Relay 2”] = 0;
dev[“uchm111rx_1”][“Relay 3”] = 0;
dev[“uchm111rx_1”][“Relay 4”] = 0;
dev[“uchm111rx_1”][“Relay 5”] = 0;
dev[“uchm111rx_1”][“Relay 6”] = 0;
dev[“uchm111rx_1”][“Relay 7”] = 0;
}
});

то даже это правило перестало работать… хотя раньше оно работало, правда очень не стабильно… т.е. само по себе отключала свет… но все же работало…

Да и то правило которое сейчас написано правильно не работает от кнопки… (физически) а по идеи оно должно работать, как я понял следующим образом. Нажимается кнопка… происходит замыкание цепи между A1_IN и 5V (или необходимо подключаться к GND, исходя из инструкции которую вы мне порекомендовали выше?) на порту A1_IN меняется значение либо на 1, либо на 0, в зависимости от того какое было значение ранее. а в правиле написано, если значение на порту A1_IN равно “0”, то выполнить следующую функцию, перевести реле на devices(uchm111rx_0x01) в состояние “0”

Я правильно понял логику?

а A1_OUT, я указал чисто для примера. что как то не правильно работает система.

я понимаю что вопрос не много не по теме, буду очень признателен если ответите))) А можно как то программно замкнуть цепь между A1_IN и GND к примеру?

http://contactless.ru/wiki/index.php/Wiren_Board_5:Аппаратная_часть#.D0.A3.D0.BD.D0.B8.D0.B2.D0.B5.D1.80.D1.81.D0.B0.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B2.D1.85.D0.BE.D0.B4.D1.8B.2F.D0.B2.D1.8B.D1.85.D0.BE.D0.B4.D1.8B_A1-A4

Я правильно понял из приведенный вами ссылке, что вход A1_IN должен быть подключен с 5V?

так как он работает в режиме бинарного входа и меняет свое состояние в зависимости от напряжения. т.е. если меньше 1,5В то это логический 0, а если выше 3В то это логическая 1?

или мне лучше и проще соединять резистивный канал с GND (R1_IN и GND) и в правиле указать вместо wb-gpio/A1_IN указать wb-gpio/R1_IN??

Да, там так написано. Ещё лучше соединять с напряжением питания, а не с 5В.

нет

Евгений результата нет… Как не работало так и не работает… Напряжение на А1 появляется, потом разьеденяем цепь напряжение падает, а свет не выключается. Подскажите куда копать? Может какое то состояние можно посмотреть самих выходов?

У меня подозрение что контроллер не правильно видит аналоговые входа. Или сами входа не отрабатывают цепь как положено. Просто раньше работало. Правда правило было совсем другое… Но работало. А сейчас даже со старым правилом не работает.

Очевидно что делать - отлаживать проблемы по отдельности.
Отключите совсем свои правила, смотрите глазами на канал A1_IN в веб-интерфейсе. Убедитесь для начала, что когда вы кнопку нажимаете там загорается галочка, а когда отпускаете - галочка пропадает.

У меня подозрение, что с контроллером всё хорошо, а проблемы как всегда в проводах: неправильная схема или контакта банально где-то нет.

Смотрел и на саму галочку, и в меню settings заходил смотрел состояние самого топика. и смотрел напряжение на порту. Галочка не ставится… состояние топика с “0” не переходит в “1”, напряжение на порту есть и он его считывает корректно.

На счет схемы подключения, тут у нас все просто… к кнопке идут два провода (витая пара) один конец провода подключен к А1, второй конец к 5В (подключали и напрямую к 12В) как вы и посоветовали.

Для частоты эксперимента взяли откинули провода с которые идут от кнопки. Взяли 2 провода вставили в порты и замкнули между собой… эффекта нет… поэтому проблема точно не в проводах или в схеме подключения…

Может же быть проблема в том что сам топик А1 видимо не правильно отрабатывает правило по которому он должен менять состояние с “0” на “1”

у него в топике стоит тип “switch(ro)” что означает “переключатель(чтение только)” т.е. из веб интерфейса самим поменять ему значение запрещено, он сам его должен менять, исходя из подданного на него напряжения.

P.S. У меня сейчас включены только два правила… это правило на сцен выключатель (кнопку) и правило по умолчанию alarm.js, все остальные правила не активны.

Могу дать вам удаленный доступ,

Давайте по порядку.

  1. Кнопка не замкнута. Что показывает A1 в разделе Analog Inputs (в вольтах), что показывает A1_IN в разделе Discrete Inputs?
  2. Кнопка замкнута, те же два вопроса.

Ну вот так и оставьте, пока у вас всё не заработает.

Виктор, нет, проблема не в этом. Я вас очень прошу - не надо гадать и пытаться за нас делать нашу работу. Вы всё равно не понимаете, как оно внутри устроено, поэтому когда вы вместо подробного описания наблюдений пишете нам подробное описание придуманного вами неправильного решения несуществующей проблемы, то работать нам становится сложнее.

не замкнута в analogs (вольтах) 0.08-0.09
A1_IN показывает “0”

Analogs (в зависимости от того куда включен) 5,21 или 12,24
A1_IN - “0”

Понял, хорошо.

Это уже интереснее. Покажите пожалуйста вывод

ps aux | grep wb-homa-gpio

и пришлите файл /etc/wb-homa-gpio.conf на support@ либо выложите здесь (текст выделяется тремя апострофами с каждой стороны). Спасибо.

root 7398 0.0 0.9 2036 1156 pts/2 S+ 17:17 0:00 grep wb-homa-gpio

{
    "device_name" : "Discrete I/O",

    "channels" : [
        {
            "gpio" : 26,
            "name" : "A1_OUT",
            "inverted" : false
        },
        {
            "gpio" : 16,
            "name" : "A2_OUT",
            "inverted" : false
        },
        {
            "gpio" : 24,
            "name" : "A3_OUT",
            "inverted" : false
        },
        {
            "gpio" : 20,
            "name" : "A4_OUT",
            "inverted" : false
        },
        {
            "gpio" : 6,
            "name" : "A1_IN",
            "inverted" : true,
            "direction": "input"
        },
        {
            "gpio" : 7,
            "name" : "A2_IN",
            "inverted" : true,
            "direction": "input"
        },
        {
            "gpio" : 28,
            "name" : "A3_IN",
            "inverted" : true,
            "direction": "input"
        },
        {
            "gpio" : 27,
            "name" : "A4_IN",
            "inverted" : true,
            "direction": "input"
        },
        {
            "gpio" :  5,
            "name" : "R1_IN",
            "inverted" : true,
            "direction": "input"
        },
        {
            "gpio" : 62,
            "name" : "BATTERY_PRESENT",
            "inverted" : true,
            "direction": "input"
        },
{
            "gpio" : 78,
            "name" : "5V_OUT",
            "direction": "output",
            "initial_state" : true
                }
    ]
}

так, по какой-то причине у вас не запущен сервис, отвечающий за дискретные входы и выходы. При этом конфиг-файл правильный, его никто не трогал.

Предсказываю, что вы случайно удалили пакет с сервисом.

Покажите пожалуйста вывод

dpkg -l wb-homa-gpio

и

apt-get install wb-homa-gpio

Удалить ни кто не мог, мог слететь, ибо я обновлял систему

сначала apt-get update
apt-get upgrade (вышел с ошибкой из за зависимостей)
сделал apt-get -f install
потом apt-get upgrade

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
++±==============-============-============-=================================
rc wb-homa-gpio 1.14.1 armel Wiren Board Smart Home MQTT gener

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
wb-homa-gpio
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 29.3 kB of archives.
After this operation, 147 kB of additional disk space will be used.
Get:1 http://releases.contactless.ru/ wheezy/main wb-homa-gpio armel 1.15.1 [29.3 kB]
Fetched 29.3 kB in 0s (48.6 kB/s)
Selecting previously unselected package wb-homa-gpio.
(Reading database … 41407 files and directories currently installed.)
Unpacking wb-homa-gpio (from …/wb-homa-gpio_1.15.1_armel.deb) …
Setting up wb-homa-gpio (1.15.1) …
[ ok ] Starting MQTT Driver for GPIO-controlled switches: wb-homa-gpio.

Ну пакет установлся и запустился, вроде бы)))

вот вывод

root@wirenboard:~# ps aux | grep wb-homa-gpio
root 7704 0.7 4.6 19680 5772 ? Sl 17:25 0:00 /usr/bin/wb-homa-gpio -c /etc/wb-homa-gpio.conf
root 7768 0.0 0.9 2036 1156 pts/2 S+ 17:26 0:00 grep wb-homa-gpio