есть особенность 1-wire ключей (status)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: есть особенность 1-wire ключей (status)

Сообщение sergejey » Вт ноя 18, 2014 7:06 pm

я немного перепутал (sliderbox и switch). верните всё как было (или возьмите из исходников) и для начала поменяйте

Код: Выделить всё

  [#if TYPE=="switch"#]
   if ($('#menu[#ID#]_v').val()!=data) {
    $('#menu[#ID#]_v').val(data);
    $('#menu[#ID#]_v').slider('refresh');
   }
  [#endif TYPE#] 
на

Код: Выделить всё

  [#if TYPE=="switch"#]
   if ($('#menu[#ID#]_v').val()!=data) {
    if (data=='[#ON_VALUE#]') {
     $('#menu[#ID#]_v').val(data);
    } else {
     $('#menu[#ID#]_v').val('[#OFF_VALUE#]');
    }
    $('#menu[#ID#]_v').slider('refresh');
   }
  [#endif TYPE#]  

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: есть особенность 1-wire ключей (status)

Сообщение Vovix » Вт ноя 18, 2014 8:14 pm

sergejey писал(а):я немного перепутал (sliderbox и switch). верните всё как было (или возьмите из исходников) и для начала поменяйте

Код: Выделить всё

  [#if TYPE=="switch"#]
   if ($('#menu[#ID#]_v').val()!=data) {
    $('#menu[#ID#]_v').val(data);
    $('#menu[#ID#]_v').slider('refresh');
   }
  [#endif TYPE#]     
на

Код: Выделить всё

  [#if TYPE=="switch"#]
   if ($('#menu[#ID#]_v').val()!=data) {
    if (data=='[#ON_VALUE#]') {
     $('#menu[#ID#]_v').val(data);
    } else {
     $('#menu[#ID#]_v').val('[#OFF_VALUE#]');
    }
    $('#menu[#ID#]_v').slider('refresh');
   }
  [#endif TYPE#]      


поменял

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

физические выключатели по прежнему исправно запускают метод statusChanged но ползунок остается "как вкопанный"!

хоть этот код и касается только обновления выключателя, но он как-то оказывает влияние в целом! уж не знаю как?

может принцип квантовой неопределенности виноват :-)
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
fiberline
Сообщения: 20
Зарегистрирован: Ср мар 26, 2014 9:44 pm
Благодарил (а): 26 раз
Поблагодарили: 0

Re: есть особенность 1-wire ключей (status)

Сообщение fiberline » Вт ноя 18, 2014 8:38 pm

А мне никто не поможет?
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: есть особенность 1-wire ключей (status)

Сообщение Vovix » Ср ноя 19, 2014 5:55 pm

Сергей! автообновления выключателя, при физическом включении так и нет!
Мой -CONNECT-
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)

Сообщение Vovix » Пт ноя 21, 2014 9:54 pm

И так что я пробовал:

менял код предложенный Сергеем
что изменилось? - практически ни чего автообновление выключателя не работает!
добавлял в код Алерты - окошко выскакивает по одному из выключателей и он меняет состояние на выключенное через несколько секунд после включения или просто обновления менюшки
при этом свет горит! именно это наблюдается только при включенном свете.

также пришлось повозиться с кодом метода statusChanged наиболее правильно себя ведет такой:
СпойлерПоказать

Код: Выделить всё

$status = $this->getProperty('status');

// определение настройки по проговариванию
$saylights = gg('Sets.saylights');
$saylights = $saylights - 1;

// тот код который приводит к "нотисам" т.к. в свойство(раздел) ключа 1-wire - [b]sensed.B[/b] писать нельзя!
if ($status != 1) { 
$status = 0;
$this->setProperty('status',$status);
}
else { 
$status = 1;
$this->setProperty('status',$status);
}

// узнаем прежнее состояние
$statusOld = $this->getProperty('statusOld');

// далее выполнять всё если состояние реально изменилось от прошлого
if ($statusOld<>$status) {

$this->setProperty('updatedTimestamp',time());
$this->setProperty('alive',1);
$ot=$this->object_title;

// проверка заданно ли время жизни для ключа
$alive_timeout=(int)$this->getProperty('aliveTimeOut');
if (!$alive_timeout) {
 $alive_timeout=8*60*60; // если не было заданно, то берем 8 часов
}
    if ($status) {
    say("Свет. ".$ot." включен",$saylights);
    $this->setProperty('statusText', "включено");
    }
    else     {
    say("Свет. ".$ot." выключен",$saylights);
    $this->setProperty('statusText', "выключено");
    }

clearTimeOut($ot."_alive");
setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
}
// записываем текущее значение как старое
$this->setProperty('statusOld',$status);
И тут у меня появились предположения (возможно я не прав, "я только учусь"):

Т.к. я уже говорил, что сеть моих ключей 1-wire не стабильна - они то появляются, то пропадают (но через просмотр непосредственно по HTTP порт 2121) при каждом считывании,
возможно, каким-то образом, МДМ, при считывании значений с 1-wire иногда (в некоторые циклы) не видит конкретного ключа 1-wire и тогда присваивает подключенному свойству
значение ""(пустая строка), а это совпадает со значением в состоянии "0" в этом ключе 1-wire

но при этом в "X-Ray" опять-же не видно таких "прыжков" в значении свойства!!!

В общем моих мозгов не хватает... но чувствую, что всему виной именно значение ""(пустая строка или Null) приходящее с 1-wire
"копать" наверно надо в модуле чтения данных из сети 1-wire
возможно кстати и проблема у fiberline связанна тоже с приходящим(получаемым) "пустым" значением!

В общем без помощи Сергея, тут не обойтись!
Мой -CONNECT-
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)

Сообщение Vovix » Пт ноя 21, 2014 11:19 pm

Еще немного повозился:

изменил часть кода метода statusChanged:

Код: Выделить всё

...
if ($status) {
    $this->setProperty('statusText', "включен");
    }
    else     {
    $this->setProperty('statusText', "выключен");
    }
say("Свет. ".$ot." ".$this->getProperty('statusText'),$saylights);
...
и привязал выключатель к свойству statusText

прописал Данные:
выключен
включен


у меня в 199 случаях из 200 Алиса проговаривает, например (1 раз как и положено по алгоритму) "Свет. Зал второй этаж включен" (или выключен)
при чем это происходит и при физическом включении света и при программном

и следовательно, что видно в x-ray, свойство statusText принимает значение "включен" или "выключен"
т.е. привязанный выключатель обязан отрабатывать четко своё положение в соответствии с этим....

однако это не происходит в режиме автообновления... т.е. автообновление НЕ РАБОТАЕТ!

При ручном обновлении меню управления светом - все "ползунки" встают "согласно купленным билетам" (в соответствии с реально включенным освещением)!
(тут-то уже точно нет проблем с "пустым" значением)
Мой -CONNECT-
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)

Сообщение Vovix » Пн ноя 24, 2014 2:30 pm

всё еще непонятки с автообновлением - и это не связанно с 1-wire!
Мой -CONNECT-
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)

Сообщение sergejey » Вс ноя 30, 2014 9:48 pm

Я нашёл ошибку в работе авто-обновления и завтра опубликую изменения. Не уверен, что поможет наверняка, но надо будет проверить.
За это сообщение автора sergejey поблагодарил:
Vovix (Вс ноя 30, 2014 10:14 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: есть особенность 1-wire ключей (status)

Сообщение Vovix » Вс ноя 30, 2014 10:15 pm

sergejey писал(а):Я нашёл ошибку в работе авто-обновления и завтра опубликую изменения. Не уверен, что поможет наверняка, но надо будет проверить.
ой-иой как как я этого буду ждать!!!
Мой -CONNECT-
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)

Сообщение sergejey » Пн дек 01, 2014 11:38 am

Попробуйте обновить систему и проверить как оно будет себя вести.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Ответить