Страница 3 из 3
Re: "Умный выключатель"
Добавлено: Пт апр 07, 2017 9:26 am
Ivan
Вот здесь есть перечень конфигурационных настроек.
В них есть определения чтобы выключить обязательную регистрацию в гейте
http://mysensors.jad.ru/download/sensor_api_20/
Re: "Умный выключатель"
Добавлено: Вс апр 09, 2017 12:24 am
ahelper
Перечитал весь MyConfig, менял настройки в скетче и в самом MyConfig, ничего не выходит.
Пока нода не получит сообщение от гейта даже настройки void setup() не выставляются.
Скетч урезал до
Код: Выделить всё
#define MY_DEBUG // Включаем отладочные сообщения в порт ноды
#define MY_RADIO_NRF24 // Определаем тип радио модуля
//#define MY_NODE_ID 5 // Задаем ID ноды
//#define MY_REGISTRATION_FEATURE // Если функция включена, нода сначала регистрируется на гейте,
//а уже потом передает данные с сенсоров
//#define MY_REGISTRATION_RETRIES (1u) // Количество попыток регистрации
//если гейт или контроллер не отвечают
//#define MY_REGISTRATION_DEFAULT true // Регистрация по умолчанию,
//если нода не получила ответ о регистрации от гейта
//#define MY_REGISTRATION_CONTROLLER
#define MY_RF24_CE_PIN 9 // Специфические настройки пинов для радиомодулей RF24
#define MY_RF24_CS_PIN 10 // Специфические настройки пинов для радиомодулей RF24
#include <SPI.h>
#include <MySensors.h>
#include <Bounce2.h>
#define RELAY_1 3 // номер цифрового пина для 1 реле
#define RELAY_2 4 // номер цифрового пина для 2 реле
#define RELAY_ON 1 // состояние влюченного реле
#define RELAY_OFF 0 // состояние выключенного реле
#define BUTTON_PIN_1 6 // номер цифрового пина для 1 выключателя
#define BUTTON_PIN_2 7 // номер цифрового пина для 2 выключателя
Bounce debouncer1 = Bounce();
Bounce debouncer2 = Bounce();
void setup()
{
pinMode(BUTTON_PIN_1, INPUT); // Установки состояния выключателя №1
digitalWrite(BUTTON_PIN_1,HIGH); // Устанавливаем состояния выключателя pull-up
debouncer1.attach(BUTTON_PIN_1); // После настройки кнопки, установка debouncer
debouncer1.interval(5);
pinMode(BUTTON_PIN_2, INPUT); // Установки состояния выключателя №2
digitalWrite(BUTTON_PIN_2,HIGH); // Устанавливаем состояния выключателя pull-up
debouncer2.attach(BUTTON_PIN_2); // После настройки кнопки, установка debouncer
debouncer2.interval(5);
// Устанавливаем состояние контактов реле 1
pinMode(RELAY_1, OUTPUT);
// Устанавливаем реле на последнее известное состояние
digitalWrite(RELAY_1, loadState(1)?RELAY_ON:RELAY_OFF);
// Устанавливаем состояние контактов реле 2
pinMode(RELAY_2, OUTPUT);
// Устанавливаем реле на последнее известное состояние
digitalWrite(RELAY_2, loadState(2)?RELAY_ON:RELAY_OFF);
}
void loop(){}
Все, что закомментировано и немного другого пробовал менять. В параметре loadState(2) оставил единицу, чтобы понять, отрабатывает void setup() или нет. В порт пишет нет гейта
Код: Выделить всё
6150 !TSM:FPAR:NO REPLY
6152 TSM:FPAR
6188 TSF:MSG:SEND,5-5-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
8196 !TSM:FPAR:FAIL
8197 TSM:FAIL:CNT=1
8199 TSM:FAIL:PDT
Даже если регистрация с гейтом пройдет и гейт потом выключить то перестает отрабатывать кнопки, постоянный поиск гейта.
Мое мнение, что данная библиотека годится только для датчиков, а для выключателя нужно что то другое. Т. к. в данном режиме работы он бесполезен?
Подскажите как из этого положения выйти, есть ли решение?
Re: "Умный выключатель"
Добавлено: Вс апр 09, 2017 12:59 am
Ivan
Вчера разбирались с этим в чате. В библиотеке ошибка. На неделе буду делать в либу патч
Re: "Умный выключатель"
Добавлено: Вт апр 18, 2017 11:52 pm
ahelper
Нашел все таки то,что искал. Очень интересный код, мультикнопочнорелейный.
Код с форума forum.mysensors.org работает именно так как нужно.
Помнит последнее состояние реле, при выкл/вкл питания возвращает последнее состояние Алисе (шлюзу MySensors).
При пропадании шлюза работает автономно!
Скетч под библиотеку MySensors 1.5.4