Умный Дом по Ethernet
Re: Умный Дом по Ethernet
Всем добрый вечер.
Есть проблемка.
Есть сервер на маленьком атоме. Debian без графики. Все хорошо работает.
Но когда стал все настраивать, то обратил внимание на одну неприятную вещь.
В устройстве мега прописан основной сервер и скрипт, а также в разделе действия стоит переключение порта (например, 10:2).
Жму кнопку и скрипт на сервере все корректно отрабатывает.
Проходит некоторое время в течении которого бездействие (не знаю точно сколько - более часа).
Снова жму кнопку - пауза (сервер молчит), по таймауту срабатывает отработка действия, прописанного в меге - 10:2 - выход переключился. И тут приходит ответ от сервера и соответственно снова переключение порта. Сам процесс обмена не записывал (кстати, как это можно сделать ? в логах апачи только входящие http запросы). Поэтому только по внешенй реакции сужу. Такое впечатление, что сервер уснул или затормозил - паузы между нажатием кнопки и ответа от сервера до 3 сек. Все это дело проходит, если как-нибудь "толкнуть" сервер - не понял как это происходит, но точно все нормализуется, если например зайти на сервер по SSH, а может быть просто включить компьютер... И все нормально снова - реакция сервера моментальная. Куда копать не пойму. Как записать лог обмена http между сервером и мегой (чтобы были видны не только входящие, но и исходящие от сервера)? И что вообще делать? Может быть кто сталкивался и знает?
Есть проблемка.
Есть сервер на маленьком атоме. Debian без графики. Все хорошо работает.
Но когда стал все настраивать, то обратил внимание на одну неприятную вещь.
В устройстве мега прописан основной сервер и скрипт, а также в разделе действия стоит переключение порта (например, 10:2).
Жму кнопку и скрипт на сервере все корректно отрабатывает.
Проходит некоторое время в течении которого бездействие (не знаю точно сколько - более часа).
Снова жму кнопку - пауза (сервер молчит), по таймауту срабатывает отработка действия, прописанного в меге - 10:2 - выход переключился. И тут приходит ответ от сервера и соответственно снова переключение порта. Сам процесс обмена не записывал (кстати, как это можно сделать ? в логах апачи только входящие http запросы). Поэтому только по внешенй реакции сужу. Такое впечатление, что сервер уснул или затормозил - паузы между нажатием кнопки и ответа от сервера до 3 сек. Все это дело проходит, если как-нибудь "толкнуть" сервер - не понял как это происходит, но точно все нормализуется, если например зайти на сервер по SSH, а может быть просто включить компьютер... И все нормально снова - реакция сервера моментальная. Куда копать не пойму. Как записать лог обмена http между сервером и мегой (чтобы были видны не только входящие, но и исходящие от сервера)? И что вообще делать? Может быть кто сталкивался и знает?
Re: Умный Дом по Ethernet
Скорее всего жесткий диск засыпает (spin down).
Посмотрите настройки hdparm (/etc/hdparm.conf) и опция -S для этой утилиты.
Версию ухода Web-сервера в swap из-за недостатка оперативной памяти можно, наверное, исключить, раз проблема решается логином через ssh.
Как временная мера, пока не найдете причину, попробуйте в cron прописать что-нибудь типа ls -l / >/dev/null каждые 5 минут.
Посмотрите настройки hdparm (/etc/hdparm.conf) и опция -S для этой утилиты.
Версию ухода Web-сервера в swap из-за недостатка оперативной памяти можно, наверное, исключить, раз проблема решается логином через ssh.
Как временная мера, пока не найдете причину, попробуйте в cron прописать что-нибудь типа ls -l / >/dev/null каждые 5 минут.
Re: Умный Дом по Ethernet
утилиты hdparm у меня не былоAndrey_B писал(а):Скорее всего жесткий диск засыпает (spin down).
Посмотрите настройки hdparm (/etc/hdparm.conf) и опция -S для этой утилиты.
Версию ухода Web-сервера в swap из-за недостатка оперативной памяти можно, наверное, исключить, раз проблема решается логином через ssh.
Как временная мера, пока не найдете причину, попробуйте в cron прописать что-нибудь типа ls -l / >/dev/null каждые 5 минут.
установил
на всякий случай сделал hdparm -S 0 /dev/sda
сервер не перегружал
но после некоторого времени все повторилось
сейчас ребутнул сервер - может быть надо было, не знаю
память вот на всякий случай
total used free shared buffers cached
Mem: 1813952 183740 1630212 0 10420 81932
-/+ buffers/cache: 91388 1722564
Swap: 3666940 0 3666940
Re: Умный Дом по Ethernet
Дело оказалось не в spin down.
Выяснил, что как только отключаю свой основной компьютер от локальной сети, сервер начинает "тормозить".
Просмотрел Wireshark'ом, а при каждом нажатии кнопки пакеты идут от сервера на основной компьютер с порта 9000.
Сразу вспомнил, что настраивал удаленную отладку php xdebug'ом - отключил и все нормализовалось.
За помощь все равно спасибо.
Выяснил, что как только отключаю свой основной компьютер от локальной сети, сервер начинает "тормозить".
Просмотрел Wireshark'ом, а при каждом нажатии кнопки пакеты идут от сервера на основной компьютер с порта 9000.
Сразу вспомнил, что настраивал удаленную отладку php xdebug'ом - отключил и все нормализовалось.
За помощь все равно спасибо.
Re: Умный Дом по Ethernet
Заранее извиняюсь, за, может быть, излишнее цитирование, но это, что бы долго не объяснять суть моей нехитрой проблемы, т.к. тема уже довольно большая.
Подскажите как правильно выставить фьюзы?
Установил программу, как у автора на скриншоте - она по умолчанию не шьет 328. В инете нашел мануал как в конфиг программы добавить нужный контроллер, но при прошивке всё равно ругается. В другой программе (например AVRDUDE_PROG) фьюзы нельзя выставить такие как на скриншоте.
Подскажите какие правильно установить фьюзы, что бы не запороть микруху.
Re: Умный Дом по Ethernet
эта программа у меня потому, что она единственная поддерживает мой программатор.
для работы с 328р нужно добавить
в файл chips.xml
и важно:
скриншот сделан до появления загрузчика, потому сейчас я выставляю фьюзы FF D8 FA
для работы с 328р нужно добавить
Код: Выделить всё
<CHIP>
<NAME>ATmega328P</NAME>
<FLASH>32768</FLASH>
<EEPROM>1024</EEPROM>
<SIG>0x000F951E</SIG>
<PAGE>128</PAGE>
<LFUSE layout="2">YES</LFUSE>
<HFUSE layout="5">YES</HFUSE>
<EFUSE layout="4">YES</EFUSE>
<LOCK>YES</LOCK>
<CALIB>YES</CALIB>
<PLACEMENT>.\Images\Placements\ZIF_DIP_40.bmp</PLACEMENT>
</CHIP>
и важно:
скриншот сделан до появления загрузчика, потому сейчас я выставляю фьюзы FF D8 FA
Re: Умный Дом по Ethernet
Благодарю!
Прошивку залил - девайс заработал от программатора, осталось помудрить с собственным питанием.
То, что греется ENC - это нормально?
Ещё раз огромное спасибо за помощь!
Прошивку залил - девайс заработал от программатора, осталось помудрить с собственным питанием.
То, что греется ENC - это нормально?
Ещё раз огромное спасибо за помощь!
Re: Умный Дом по Ethernet
Внимательно все изучаю и готовлюсь к реализации УД с использованием MegaD-238 и 1-wire. Хочу документировать в виде фотографий работ поэтапно, для себя и, мб если Андрей не будет против, выложить их в отдельном форуме, так как по моему мнению не хватает простой визуализации данного проекта, не немножко было показано на форуме "Помогите девушке разобраться". Я имею ввиду тонкость, например фото реального (физического) подключения датчиков, фотографий реализации шкафов с оборудованием, думаю, что это поможет развитию и избежание (исправление) ошибок в будущем.
Да теперь по теме:
Для подключения сети 1-wire на данном сайте идет обсуждение USB адаптера DS9490R, который подсоединятся непосредственно к компу, что не очень удобно, особенно к однопалатным, например Raspberry Pi 2 Model B 1GB RAM ссылка: http://onpad.ru/shop/cubie/raspberrypi/ ... /1625.html. вычитал про АДАПТЕР ETHERNET-1-WIRE С УСТАНОВКОЙ НА ДИН РЕЙКУ ссылка http://radioseti.ru/index.php?route=pro ... uct_id=142 хотел бы обсудить этот адаптер, удобство понимаю как ethernet подключение и DIN-реечное подключение.
Да теперь по теме:
Для подключения сети 1-wire на данном сайте идет обсуждение USB адаптера DS9490R, который подсоединятся непосредственно к компу, что не очень удобно, особенно к однопалатным, например Raspberry Pi 2 Model B 1GB RAM ссылка: http://onpad.ru/shop/cubie/raspberrypi/ ... /1625.html. вычитал про АДАПТЕР ETHERNET-1-WIRE С УСТАНОВКОЙ НА ДИН РЕЙКУ ссылка http://radioseti.ru/index.php?route=pro ... uct_id=142 хотел бы обсудить этот адаптер, удобство понимаю как ethernet подключение и DIN-реечное подключение.
-
- Сообщения: 219
- Зарегистрирован: 15 мар 2013, 09:42
Re: Умный Дом по Ethernet
приобрел подобный .looc писал(а):вычитал про АДАПТЕР ETHERNET-1-WIRE С УСТАНОВКОЙ НА ДИН РЕЙКУ ссылка http://radioseti.ru/index.php?route=pro ... uct_id=142 хотел бы обсудить этот адаптер, удобство понимаю как ethernet подключение и DIN-реечное подключение.
я так и не смог его подружить с OWFS, с бенуксом работает на ура. поддержка в бенуксе запилена автором.
Re: Умный Дом по Ethernet
остается спросить у автора бенукс как его прикрутить в OWFS, делов та на 5 минут, что в линуксе что в виндовсеvladimir22 писал(а):приобрел подобный .looc писал(а):вычитал про АДАПТЕР ETHERNET-1-WIRE С УСТАНОВКОЙ НА ДИН РЕЙКУ ссылка http://radioseti.ru/index.php?route=pro ... uct_id=142 хотел бы обсудить этот адаптер, удобство понимаю как ethernet подключение и DIN-реечное подключение.
я так и не смог его подружить с OWFS, с бенуксом работает на ура. поддержка в бенуксе запилена автором.
-
- Сообщения: 219
- Зарегистрирован: 15 мар 2013, 09:42
Re: Умный Дом по Ethernet
спрашивал .
готов вам предоставить тестовый полигон , для проведения таких действий. Хоть боевую систему , хоть тестовую виртуальную среду.
зы я неделю переписывался с производителем девайса , и с автором бенукса , у меня так и не получилось.
готов вам предоставить тестовый полигон , для проведения таких действий. Хоть боевую систему , хоть тестовую виртуальную среду.
зы я неделю переписывался с производителем девайса , и с автором бенукса , у меня так и не получилось.
Re: Умный Дом по Ethernet
Вот посмотрите здесь http://stackoverflow.com/questions/2386 ... -for-linux - кто делал сказал что специалист сразу поймет что и какvladimir22 писал(а):спрашивал .
готов вам предоставить тестовый полигон , для проведения таких действий. Хоть боевую систему , хоть тестовую виртуальную среду.
зы я неделю переписывался с производителем девайса , и с автором бенукса , у меня так и не получилось.
-
- Сообщения: 219
- Зарегистрирован: 15 мар 2013, 09:42
Re: Умный Дом по Ethernet
пройденный этап.... не видит OWFS того мастера (ds2480) который стоит в этих девайсах.
да да предвижу вопрос - да, стоит там в качестве заглушки DS1820 и бенукс успешно видит его и читает.
если кто то готов поковыряться, или наружу открою этот преобразователь, или создам тестовую среду .
да да предвижу вопрос - да, стоит там в качестве заглушки DS1820 и бенукс успешно видит его и читает.
если кто то готов поковыряться, или наружу открою этот преобразователь, или создам тестовую среду .
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
507 у вас в коде наверняка есть такое(по крайней мере в оригинале было)
выдежка 4 секунды
а еще там есть
подставляя на место TICK_SECOND указанные макросы получим требуемую задежку
угу
а кто мешает увеличить время (минуты, часы,дни)надо только заменить константу и добавить несколько строк кода
Код: Выделить всё
if(TickGet() - StartTime > 4*TICK_SECOND)
а еще там есть
Код: Выделить всё
TICK_SECOND
TICK_MINUTE
TICK_HOUR
Код: Выделить всё
alexsis_76, если я правильно вас понял, вы предлагаете то же, что я описал в пункте 2. То есть отправлять в цикле команду на конвертацию. Только вы предлагаете делать это часто. Долбить датчик раз в секунду? Не знаю. И, кстати, в этом случае я не уверен в отсутствии "self heating problem".
Код: Выделить всё
Долбить датчик раз в секунду?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
Вы мне льстите.alexsis_76 писал(а):507 у вас в коде наверняка есть такое(по крайней мере в оригинале было)
Мой код...
Я пока очень далек от того что б создать что то свое, эх если б мог то столько хотелок своих решил, а сколько появилось бы еще, жуть.
Я так понял Вы сослались про код для PIC. так?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
вот правда для авр, для пик понадобится поменять код для работы с оборудыванием, остальное вроде бы кросплатформенное
в архиве вариант оригинальный (от производителя)алгоритм поиска с ,за один проход оперделяет адрес одного устройства на шине , позволяет искать устройства указанного пользователем семейства, для каждого устройства считает crc, требуется вызывать в цикле пока не вернет false,после этого номера всех найденных устройств будут записаны в буффер,т,к на момент написания прошивки был всего лишь один датчик , то измерение производится вот так
ow_write_byte(OW_SKIP_ROM_CMD); // команда "пропустить адрес"
где то есть исходник где есть работа с несколькими датчиками (надо искать)
в архиве вариант оригинальный (от производителя)алгоритм поиска с ,за один проход оперделяет адрес одного устройства на шине , позволяет искать устройства указанного пользователем семейства, для каждого устройства считает crc, требуется вызывать в цикле пока не вернет false,после этого номера всех найденных устройств будут записаны в буффер,т,к на момент написания прошивки был всего лишь один датчик , то измерение производится вот так
Код: Выделить всё
uint8_t start_convert(void)
{
uint8_t convert_busy;
ow_reset(); // сброс 1-wire
ow_write_byte(OW_SKIP_ROM_CMD); // команда "пропустить адрес"
ow_write_byte(CMD_START_CONV); // команда "начать измерение"
return convert_busy=1;// возвратим флаг занятости
}
где то есть исходник где есть работа с несколькими датчиками (надо искать)
- Вложения
-
- 1ware.rar
- (5.75 КБ) 313 скачиваний
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
нужно изменить только нижний уровеньЯ так понял Вы сослались про код для PIC. так?
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
507 вот это вроде рабочее
все то же самое что и в предыдущем ,заменены только функции работы с шиной,
если вызвать uint8_t INIT_1WARE то она заполнит uint8_t *OW_Buf номерами устройств и вернет count количество найденных устройств
остальные две функции осуществляют конвертирование и считывание показаний
если заменить ow_write_byte(OW_SKIP_ROM_CMD); // команда "пропустить адрес"
адресом устройства из OW_Buf то можно использывать несколько датчиков uint8_t замените на unsigned char или BYTE,uint16_t-WORD
OW_Buf буффер соотстветствующего размера,библиотека позволяет найти любое число устройств на шине,все ограничено лишь размером буфера, и вам нужно будет описать функцию селекции датчиков, при отключении хотя бы одного устройства остальные сбиваются в кучу
все то же самое что и в предыдущем ,заменены только функции работы с шиной,
uint8_t INIT_1WARE(uint8_t *OW_Buf) //инициализируем библиотеку и записываем номера датчиков в массив
{
uint8_t count=0,i;
//i=ow_reset();
//return i;
result = OWFirst();
while (result)
{
for(i=0;i<8;i++)
{
*OW_Buf ++=ROM_NO;
}
result = OWNext();
count++;
}
return count;
}
uint8_t read_temperature(uint8_t*buf_ware_DS1820,uint8_t *buf_temperature)
{
uint8_t i,t=0,ROM_NO_DS[8],result=1;
uint16_t *ware_ptr_DS=ROM_NO_DS;
int tt;
temperature_result_flag=0;
result=ow_reset();
ow_write_byte(OW_SKIP_ROM_CMD);
ow_write_byte(CMD_RD_SCRPAD); // команда "считать регистры датчика"
//чтение данных из датчика
for( i=0;i<8;i++){ // читаем до тех пор пока не получим все 9 байтов
ROM_NO_DS=ow_read_byte(); // читаем байт в буфер
tt = (*ware_ptr_DS>>1); // заполняем буфер
}
tt = *ware_ptr_DS>>4; // выкидываем доли температуры
// если температуоа отрицательная
t=tt & 0x00ff;
// выкидываеи ст байт
if(tt>127){ // если температуоа отрицательная
//t=tt-256;
t=~t;
temperature_result_flag=1; // признак что температура отрицательна
}
//if(tt==NULL)
*buf_temperature=t;
return result;
}
uint8_t start_convert(void)
{
uint8_t convert_busy;
ow_reset(); // сброс 1-wire
ow_write_byte(OW_SKIP_ROM_CMD); // команда "пропустить адрес"
ow_write_byte(CMD_START_CONV); // команда "начать измерение"
return convert_busy=1;// возвратим флаг занятости
}
если вызвать uint8_t INIT_1WARE то она заполнит uint8_t *OW_Buf номерами устройств и вернет count количество найденных устройств
остальные две функции осуществляют конвертирование и считывание показаний
если заменить ow_write_byte(OW_SKIP_ROM_CMD); // команда "пропустить адрес"
адресом устройства из OW_Buf то можно использывать несколько датчиков uint8_t замените на unsigned char или BYTE,uint16_t-WORD
OW_Buf буффер соотстветствующего размера,библиотека позволяет найти любое число устройств на шине,все ограничено лишь размером буфера, и вам нужно будет описать функцию селекции датчиков, при отключении хотя бы одного устройства остальные сбиваются в кучу
- Вложения
-
- 1ware(pic).rar
- (4.67 КБ) 306 скачиваний
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
спасибо, возьмем на заметку.
Вот еще думаю, что можно вынести на SD карту для высвобождения ресурсов.
Вот еще думаю, что можно вынести на SD карту для высвобождения ресурсов.
Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)
данные для построения веб страницВот еще думаю, что можно вынести на SD карту
Последний раз редактировалось alexsis_76 11 апр 2015, 03:06, всего редактировалось 1 раз.