есть особенность 1-wire ключей (status)
Модератор: immortal
-
- Сообщения: 560
- Зарегистрирован: Ср сен 04, 2013 10:31 am
- Откуда: Самара
- Благодарил (а): 99 раз
- Поблагодарили: 140 раз
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
скрины внутренностей вебварсов и свойства StatusOutD3 (этого не видно в коннекте)
по первому варианту должно работать: слайдер меняет переменную, переменная зовет метод при смене значения.
и проверьте правильность вебварсов, такое впечатление что это они переключают обратно.
по первому варианту должно работать: слайдер меняет переменную, переменная зовет метод при смене значения.
и проверьте правильность вебварсов, такое впечатление что это они переключают обратно.
- За это сообщение автора ErmolenkoM поблагодарил:
- fiberline (Пн ноя 17, 2014 6:43 pm)
- Рейтинг: 1.16%
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
но это не работает со значением NULL!sergejey писал(а):добавил возможность задавать значения
первая строка это значение для off, вторая для on
если ничего не задавать, то будет как и раньше 0 и 1
оставить первую строку пустой - не прокатывает!
указать именно NULL?
то тогда как?
Null или NULL или "" или "NULL"?
по идее мне не нужны разные значения, нужно только соответствие, что NULL и 0 по умолчанию идентичны!!!
(проверил почти все свои варианты с NULL - "они не катят"!)
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
Честно говоря, не могу воспроизвести проблему. В переключатели задана такая логика, что он в положении OFF всегда, когда значение не равно тому, что прописано в ON. Т.е. не важно что там 0, NULL или 456, главное, чтобы не было тем, что прописано в ON (1 по-умолчанию). Параметр для OFF имеет значение только для того, что отправлять в переменную при ручном переключении в это положение, но не для состояния самого выключателя.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
Сергей спасибо за ответ!sergejey писал(а):Честно говоря, не могу воспроизвести проблему. В переключатели задана такая логика, что он в положении OFF всегда, когда значение не равно тому, что прописано в ON. Т.е. не важно что там 0, NULL или 456, главное, чтобы не было тем, что прописано в ON (1 по-умолчанию). Параметр для OFF имеет значение только для того, что отправлять в переменную при ручном переключении в это положение, но не для состояния самого выключателя.
Поясню ситуацию:
Мои ключи на 1-wire имеют (используют для работы) 2 канала - А(PIO.A) и В(sensed.B)
при чем канал А(PIO.A) настроен как выход с ключа на схему управления, т.е. на него надо подать управляющий сигнал
а канал В(sensed.B) - это сенсор, он "чувствует" замкнут ли семистор (варистор ну или что там не помню), т.е. горит ли сейчас свет!
также на схеме ключа имеется триггер который позволяет управлять включением света с выключателя!
с целью выполнения всей логики задачи свет включается не подачей "1" на выход А, подачей
фронта 0 -> 1 (сначала 0 потом 1)!
И вот если в 1-wire привязать, просто:
коридор 2-й этаж.trigOnOff к А(PIO.A)
коридор 2-й этаж.status к В(sensed.B)
и в элементе меню указать
Связанный объект.Свойство: коридор 2-й этаж.status
Запускать Объект.Метод: коридор 2-й этаж.switch
для справки код switch:
Код: Выделить всё
$this->setProperty("trigOnOff",0);
$this->setProperty("trigOnOff",1);
не зависимо от состояния света...
Добавил позднее:
Перепроверил: если включать (или выкл) свет ползунком выключателя в меню - то все нормально, но если включать физическим выключателем, то
состояние ползунка при этом в открытом меню в программе НЕ МЕНЯЕТСЯ - автообновление установленно на 3 сек.!!!
пробовал решить путем присвоения в методе насильно коридор 2-й этаж.status=0 при значении "пустая строка", но это вызывает ошибки MJD - нотисы!!! (видны в окне cmd - start.bat)
хотя ситуацию несколько улучшает (значительно улучшает)
конечно тут накладывается еще и проблема поведения самой сети 1-wire на физическом уровне - не смотря на наличие строчки "online" на странице настройки этих самых модулей
в стабильном порядке, я средствами OWFS вижу не стабильность нахождения ключей в каждый момент времени (то все видны то 1 то несколько и так постоянно)
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
ага, кажется наконец понял, что не так... пока в общую ветку кода выкладывать не буду, так что давайте на вашем примере попробуем исправить.
в файле /templates/commands/commands_search_pda.html нужно внести следующее изменение
вместо
поставить
в файле /templates/commands/commands_search_pda.html нужно внести следующее изменение
вместо
Код: Выделить всё
[#if TYPE=="sliderbox"#]
if ($('#menu[#ID#]_v').val()!=data) {
$('#menu[#ID#]_v').val(data);
valueChangedFlag['item[#ID#]']=1;
$('#menu[#ID#]_v').slider('refresh');
}
[#endif TYPE#]
Код: Выделить всё
[#if TYPE=="sliderbox"#]
if ($('#menu[#ID#]_v').val()!=data) {
if (data=='[#ON_VALUE#]') {
$('#menu[#ID#]_v').val(data);
} else {
$('#menu[#ID#]_v').val('[#OFF_VALUE#]');
}
valueChangedFlag['item[#ID#]']=1;
$('#menu[#ID#]_v').slider('refresh');
}
[#endif TYPE#]
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 20
- Зарегистрирован: Ср мар 26, 2014 9:44 pm
- Благодарил (а): 26 раз
- Поблагодарили: 0
Re: есть особенность 1-wire ключей (status)
msh555 писал(а):скрины внутренностей вебварсов и свойства StatusOutD3 (этого не видно в коннекте)
по первому варианту должно работать: слайдер меняет переменную, переменная зовет метод при смене значения.
и проверьте правильность вебварсов, такое впечатление что это они переключают обратно.
- Вложения
-
- скрин_свойства_OutD3.png (70.23 КБ) 11912 просмотров
-
- скрин_вебварс.png (77.87 КБ) 11912 просмотров
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
Сергей, и снова огромное спасибо.... но...sergejey писал(а):ага, кажется наконец понял, что не так... пока в общую ветку кода выкладывать не буду, так что давайте на вашем примере попробуем исправить.
в файле /templates/commands/commands_search_pda.html нужно внести следующее изменение
вместопоставитьКод: Выделить всё
[#if TYPE=="sliderbox"#] if ($('#menu[#ID#]_v').val()!=data) { $('#menu[#ID#]_v').val(data); valueChangedFlag['item[#ID#]']=1; $('#menu[#ID#]_v').slider('refresh'); } [#endif TYPE#]
Код: Выделить всё
[#if TYPE=="sliderbox"#] if ($('#menu[#ID#]_v').val()!=data) { if (data=='[#ON_VALUE#]') { $('#menu[#ID#]_v').val(data); } else { $('#menu[#ID#]_v').val('[#OFF_VALUE#]'); } valueChangedFlag['item[#ID#]']=1; $('#menu[#ID#]_v').slider('refresh'); } [#endif TYPE#]
внес изменения - эффект такой:
если было выключено, то при физическом включении выключателем на стене, ползунок в программе сразу отрабатывает!
но вот если включено, и выключаешь, то увы без ручного обновления страницы ползунок не двигается!!!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
Чудеса, да и только ))Vovix писал(а): Сергей, и снова огромное спасибо.... но...
внес изменения - эффект такой:
если было выключено, то при физическом включении выключателем на стене, ползунок в программе сразу отрабатывает!
но вот если включено, и выключаешь, то увы без ручного обновления страницы ползунок не двигается!!!
Ладно, попробуем посмотреть что происходит с данными. Ниже код будет выводить сообщения в браузер в виде алертов (должно два сообщения выдать при каждом физическом переключении), так что пожалуйста пришлите результаты.
Код: Выделить всё
[#if TYPE=="sliderbox"#]
if ($('#menu[#ID#]_v').val()!=data) {
alert("Current value:["+$('#menu[#ID#]_v').val()+"]\nData:["+data+"]");
if (data=='[#ON_VALUE#]') {
$('#menu[#ID#]_v').val(data);
alert("Changing to ON ([#ON_VALUE#])");
} else {
$('#menu[#ID#]_v').val('[#OFF_VALUE#]');
alert("Changing to OFF ([#OFF_VALUE#])");
}
valueChangedFlag['item[#ID#]']=1;
$('#menu[#ID#]_v').slider('refresh');
}
[#endif TYPE#]
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
sergejey писал(а):
Чудеса, да и только ))
Ладно, попробуем посмотреть что происходит с данными. Ниже код будет выводить сообщения в браузер в виде алертов (должно два сообщения выдать при каждом физическом переключении), так что пожалуйста пришлите результаты.
Код: Выделить всё
[#if TYPE=="sliderbox"#] if ($('#menu[#ID#]_v').val()!=data) { alert("Current value:["+$('#menu[#ID#]_v').val()+"]\nData:["+data+"]"); if (data=='[#ON_VALUE#]') { $('#menu[#ID#]_v').val(data); alert("Changing to ON ([#ON_VALUE#])"); } else { $('#menu[#ID#]_v').val('[#OFF_VALUE#]'); alert("Changing to OFF ([#OFF_VALUE#])"); } valueChangedFlag['item[#ID#]']=1; $('#menu[#ID#]_v').slider('refresh'); } [#endif TYPE#]
... Сергей, но у меня эти алерты не выводит... совсем! (в двух разных браузерах проверил)
у меня проговаривает, железно, Алиса в соответствии с методом (даже при физическом включении):
это метод statusChanged
Код: Выделить всё
$status = $this->getProperty('status');
$this->setProperty('updatedTimestamp',time());
$this->setProperty('alive',1);
$ot=$this->object_title;
// костыли
if ($status != 1) {
$status1 = 0;
$this->setProperty('status1',$status1);
}
else {
$status1 = 1;
$this->setProperty('status1',$status1);
}
// проверка заданно ли время жизни для ключа
$alive_timeout=(int)$this->getProperty('aliveTimeOut');
if (!$alive_timeout) {
$alive_timeout=8*60*60; // если не было заданно, то берем 8 часов
}
if ($status) {
say("Свет. ".$ot." включен");
$this->setProperty('statusText', "включено");
}
else {
say("Свет. ".$ot." выключен");
$this->setProperty('statusText', "выключено");
}
clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
- Vovix
- Сообщения: 1155
- Зарегистрирован: Пн янв 27, 2014 1:43 am
- Откуда: г.Ижевск
- Благодарил (а): 60 раз
- Поблагодарили: 532 раза
- Контактная информация:
Re: есть особенность 1-wire ключей (status)
Сергей, не бросайте меня!!!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-