Страница 108 из 141

Re: [Модуль] MegaD (megad)

Добавлено: Сб дек 22, 2018 9:54 pm
Chainik
Странно, что в чат ничего не попадает, потому что Say должен был написать хотя бы "T1=" и "T2="...
Если у вас будет 10 датчиков, то насколько я понимаю, должно быть так:

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

//Получаем список значений (адрес, пароль, порт, разумеется, ваши)
$Val = file_get_contents("http://192.168.0.14/sec/?pt=33&cmd=list");
preg_match('~ff64e5511704:(.*?);~',$Val,$T1);
preg_match('~ff6dc3521704:(.*?);~',$Val,$T2);
preg_match('~333333333333:(.*?);~',$Val,$T3);
//и т.д.
preg_match('~999999999999:(.*?);~',$Val,$T9);
$T10 = substr($Val,-5);
sg('Ваш_объект.Ваше_свойство_для_Т1', $T1[1]);
sg('Ваш_объект.Ваше_свойство_для_Т2', $T2[2]);
sg('Ваш_объект.Ваше_свойство_для_Т3', $T3[3]);
//и т.д.
sg('Ваш_объект.Ваше_свойство_для_Т9', $T9[9]);
sg('Ваш_объект.Ваше_свойство_для_Т10', $T10);
А так даже будет более универсально:

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

//Получаем список значений (адрес, пароль, порт, разумеется, ваши)
$Val = file_get_contents("http://192.168.0.14/sec/?pt=33&cmd=list");
$T1 = substr(strstr($Val, 'ff64e5511704:'), 13, 5);
$T2 = substr(strstr($Val, 'ff6dc3521704:'), 13, 5);
$T3 = substr(strstr($Val, '333333333333:'), 13, 5);
//и т.д.
$T10 = substr(strstr($Val, 101010101010:'), 13, 5);
sg('Ваш_объект.Ваше_свойство_для_Т1', $T1);
sg('Ваш_объект.Ваше_свойство_для_Т2', $T2);
sg('Ваш_объект.Ваше_свойство_для_Т3', $T3);
//и т.д.
sg('Ваш_объект.Ваше_свойство_для_Т10', $T10);

Re: [Модуль] MegaD (megad)

Добавлено: Пн дек 24, 2018 7:36 am
seregaural
Спасибо, не только заставил всё работать, но и сам немного разобрался в логике majordomo

Re: [Модуль] MegaD (megad)

Добавлено: Пн дек 24, 2018 11:09 am
seregaural
и еще вопрос остался. Я так понимаю иногда шина занята. В свойствах объекта в таком случае очищает поле. На графике это показывает как 0 С

Re: [Модуль] MegaD (megad)

Добавлено: Пн дек 24, 2018 11:29 am
Chainik
seregaural писал(а): Пн дек 24, 2018 11:09 am и еще вопрос остался. Я так понимаю иногда шина занята. В свойствах объекта в таком случае очищает поле. На графике это показывает как 0 С
Ну да, шина может быть занята конвертацией. В этом случае (как написано в инструкции) она возвращает "Busy". Т.е. надо в скрипте учесть и обработать такой ответ от нее.

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

//Получаем список значений (адрес, пароль, порт, разумеется, ваши)
$Val = file_get_contents("http://192.168.0.14/sec/?pt=33&cmd=list");
if ($Val == "Busy") {
setTimeOut('myTimer_RepeatedRequest','runScript("Имя_вашего_(данного)_скрипта");',1);
return"";
}
$T1 = substr(strstr($Val, 'ff64e5511704:'), 13, 5);
//и т.д. ...
Сам, правда, не пробовал вешать датчики шиной и с описанным явлением не сталкивался. Но по идее, предложенный вариант должен помочь. При получении ответа "Busy" исполняемый скрипт перезапускает сам себя через секунду (а на конвертацию, вроде бы, уходит 0,85 сек.).

Re: [Модуль] MegaD (megad)

Добавлено: Чт дек 27, 2018 8:58 am
seregaural
всё равно возврщает пустые значения

Re: [Модуль] MegaD (megad)

Добавлено: Чт дек 27, 2018 12:48 pm
seregaural

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

//Получаем список значений (адрес, пароль, порт, разумеется, ваши)
$Val = file_get_contents("http://192.168.0.14/sec/?pt=33&cmd=list");
$T1 = substr(strstr($Val, 'ff64e5511704:'), 13, 5);
$T2 = substr(strstr($Val, 'ff6dc3521704:'), 13, 5);

if ($Val == "busy") {
setTimeOut('myTimer_RepeatedRequest','runScript("MegaD33DS18B20");',1);
return"";
}

Say("T1=".$T1);
Say("T2=".$T2);


sg('MegaD_33.t_kotel', $T1);
sg('MegaD_33.t_garage', $T2);

Re: [Модуль] MegaD (megad)

Добавлено: Чт дек 27, 2018 1:49 pm
seregaural
решил так попробовать, посмотрим как пойдет

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

//Получаем список значений (адрес, пароль, порт, разумеется, ваши)
$Val = file_get_contents("http://192.168.0.14/sec/?pt=33&cmd=list");
$T1 = substr(strstr($Val, 'ff64e5511704:'), 13, 5);
$T2 = substr(strstr($Val, 'ff6dc3521704:'), 13, 5);

if ($Val == "busy") {
 
}
else {
sg('MegaD_33.t_kotel', $T1);
sg('MegaD_33.t_garage', $T2);
}





Re: [Модуль] MegaD (megad)

Добавлено: Чт дек 27, 2018 7:41 pm
Chainik
Добавьте Say после проверки на busy. Т.е.

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

//..
if ($Val == "busy" or $Val == "Busy") {
Say($Val);
}
//...
В таком случае сможете понять, совпадает ли пустое значение с моментом возвращения Busy или появление пустых значений связано с чем-то другим.

Re: [Модуль] MegaD (megad)

Добавлено: Пт дек 28, 2018 6:27 am
seregaural
дело было в wifi мосте, ноутбук находился в квартире от которой прокинут километровая беспроводная линия. Подключил его проводом, все стало в норме.

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

//Получаем список значений (адрес, пароль, порт, разумеется, ваши)
$Val = file_get_contents("http://192.168.0.14/sec/?pt=33&cmd=list");
$T1 = substr(strstr($Val, 'ff64e5511704:'), 13, 5);
$T2 = substr(strstr($Val, 'ff6dc3521704:'), 13, 5);

if ($Val == "busy") {
sg('MegaD_33.t_kotel', $70);
sg('MegaD_33.t_garage', $50);
} else {
sg('MegaD_33.t_kotel', $T1);
sg('MegaD_33.t_garage', $T2);
Say("T1=".$T1);
Say("T2=".$T2);
}
Странным остлось, что включил в код выдавать конкретные значения, когда busy. Так вот через wifi, все равно были пустые значения, а через провод, прописывались 70 и50, как и указано в коде. Дело во времени ожидания ответа? :?:

Re: [Модуль] MegaD (megad)

Добавлено: Пт дек 28, 2018 11:04 am
cheese
Господа, есть проблема с которой не могу совладать больше года.
Если установить majordomo в каталог отличный от /var/www (к примеру в /var/www/abc), то не видит ни одну Мегу в сети. Даже если добавляешь вручную.
А если, ничего не меняя, перенести majordomo в каталог /var/www, то все в порядке.

Сетевые настройки одинаковые, majordomo работает отлично в любом каталоге.

Что может быть?

P.S. Устанавливаю в отдельный каталог, потому что на серваке должно крутиться несколько систем.
И данная проблема происходит с чистой установки линукса и majodomo. Использовались ubuntu 18.04 и Debian 9,1,2,3,4,5