Умный Дом по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
DOCSIMUS
Сообщения: 184
Зарегистрирован: 07 сен 2013, 01:02

Re: Умный Дом по Ethernet

Сообщение DOCSIMUS » 28 фев 2015, 23:24

Всем добрый вечер.
Есть проблемка.
Есть сервер на маленьком атоме. Debian без графики. Все хорошо работает.
Но когда стал все настраивать, то обратил внимание на одну неприятную вещь.
В устройстве мега прописан основной сервер и скрипт, а также в разделе действия стоит переключение порта (например, 10:2).
Жму кнопку и скрипт на сервере все корректно отрабатывает.
Проходит некоторое время в течении которого бездействие (не знаю точно сколько - более часа).
Снова жму кнопку - пауза (сервер молчит), по таймауту срабатывает отработка действия, прописанного в меге - 10:2 - выход переключился. И тут приходит ответ от сервера и соответственно снова переключение порта. Сам процесс обмена не записывал (кстати, как это можно сделать ? в логах апачи только входящие http запросы). Поэтому только по внешенй реакции сужу. Такое впечатление, что сервер уснул или затормозил - паузы между нажатием кнопки и ответа от сервера до 3 сек. Все это дело проходит, если как-нибудь "толкнуть" сервер - не понял как это происходит, но точно все нормализуется, если например зайти на сервер по SSH, а может быть просто включить компьютер... И все нормально снова - реакция сервера моментальная. Куда копать не пойму. Как записать лог обмена http между сервером и мегой (чтобы были видны не только входящие, но и исходящие от сервера)? И что вообще делать? Может быть кто сталкивался и знает?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Умный Дом по Ethernet

Сообщение Andrey_B » 28 фев 2015, 23:36

Скорее всего жесткий диск засыпает (spin down).
Посмотрите настройки hdparm (/etc/hdparm.conf) и опция -S для этой утилиты.
Версию ухода Web-сервера в swap из-за недостатка оперативной памяти можно, наверное, исключить, раз проблема решается логином через ssh.

Как временная мера, пока не найдете причину, попробуйте в cron прописать что-нибудь типа ls -l / >/dev/null каждые 5 минут.

DOCSIMUS
Сообщения: 184
Зарегистрирован: 07 сен 2013, 01:02

Re: Умный Дом по Ethernet

Сообщение DOCSIMUS » 01 мар 2015, 01:39

Andrey_B писал(а):Скорее всего жесткий диск засыпает (spin down).
Посмотрите настройки hdparm (/etc/hdparm.conf) и опция -S для этой утилиты.
Версию ухода Web-сервера в swap из-за недостатка оперативной памяти можно, наверное, исключить, раз проблема решается логином через ssh.

Как временная мера, пока не найдете причину, попробуйте в cron прописать что-нибудь типа ls -l / >/dev/null каждые 5 минут.
утилиты hdparm у меня не было
установил
на всякий случай сделал 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

DOCSIMUS
Сообщения: 184
Зарегистрирован: 07 сен 2013, 01:02

Re: Умный Дом по Ethernet

Сообщение DOCSIMUS » 01 мар 2015, 04:13

Дело оказалось не в spin down.
Выяснил, что как только отключаю свой основной компьютер от локальной сети, сервер начинает "тормозить".
Просмотрел Wireshark'ом, а при каждом нажатии кнопки пакеты идут от сервера на основной компьютер с порта 9000.
Сразу вспомнил, что настраивал удаленную отладку php xdebug'ом - отключил и все нормализовалось.
За помощь все равно спасибо.

kinord
Сообщения: 99
Зарегистрирован: 24 фев 2012, 10:08

Re: Умный Дом по Ethernet

Сообщение kinord » 31 мар 2015, 17:04

Dron писал(а):
3din_итог.zip
Изображение
собственно, как и обещал, выкладываю. комплектующие подписаны.
ENC использую примерно такой, подключается через разъём
ардуинку использую такую, она жёстко впаивается



дополнение - используемые фьюзы:
Изображение
соответственно, если используется загрузчик, то high fuse становятся D8
Заранее извиняюсь, за, может быть, излишнее цитирование, но это, что бы долго не объяснять суть моей нехитрой проблемы, т.к. тема уже довольно большая.

Подскажите как правильно выставить фьюзы?

Установил программу, как у автора на скриншоте - она по умолчанию не шьет 328. В инете нашел мануал как в конфиг программы добавить нужный контроллер, но при прошивке всё равно ругается. В другой программе (например AVRDUDE_PROG) фьюзы нельзя выставить такие как на скриншоте.
Подскажите какие правильно установить фьюзы, что бы не запороть микруху.

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Умный Дом по Ethernet

Сообщение Dron » 01 апр 2015, 00:46

эта программа у меня потому, что она единственная поддерживает мой программатор.
для работы с 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>
в файл chips.xml
и важно:
скриншот сделан до появления загрузчика, потому сейчас я выставляю фьюзы FF D8 FA

kinord
Сообщения: 99
Зарегистрирован: 24 фев 2012, 10:08

Re: Умный Дом по Ethernet

Сообщение kinord » 02 апр 2015, 13:19

Благодарю!

Прошивку залил - девайс заработал от программатора, осталось помудрить с собственным питанием.
То, что греется ENC - это нормально?

Ещё раз огромное спасибо за помощь!

looc
Сообщения: 5
Зарегистрирован: 03 апр 2015, 22:26

Re: Умный Дом по Ethernet

Сообщение looc » 07 апр 2015, 10:15

Внимательно все изучаю и готовлюсь к реализации УД с использованием 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-реечное подключение.

vladimir22
Сообщения: 219
Зарегистрирован: 15 мар 2013, 09:42

Re: Умный Дом по Ethernet

Сообщение vladimir22 » 09 апр 2015, 16:24

looc писал(а):вычитал про АДАПТЕР ETHERNET-1-WIRE С УСТАНОВКОЙ НА ДИН РЕЙКУ ссылка http://radioseti.ru/index.php?route=pro ... uct_id=142 хотел бы обсудить этот адаптер, удобство понимаю как ethernet подключение и DIN-реечное подключение.
приобрел подобный .
я так и не смог его подружить с OWFS, с бенуксом работает на ура. поддержка в бенуксе запилена автором.

stels3737
Сообщения: 27
Зарегистрирован: 24 окт 2013, 00:45

Re: Умный Дом по Ethernet

Сообщение stels3737 » 09 апр 2015, 18:22

vladimir22 писал(а):
looc писал(а):вычитал про АДАПТЕР ETHERNET-1-WIRE С УСТАНОВКОЙ НА ДИН РЕЙКУ ссылка http://radioseti.ru/index.php?route=pro ... uct_id=142 хотел бы обсудить этот адаптер, удобство понимаю как ethernet подключение и DIN-реечное подключение.
приобрел подобный .
я так и не смог его подружить с OWFS, с бенуксом работает на ура. поддержка в бенуксе запилена автором.
остается спросить у автора бенукс как его прикрутить в OWFS, делов та на 5 минут, что в линуксе что в виндовсе

vladimir22
Сообщения: 219
Зарегистрирован: 15 мар 2013, 09:42

Re: Умный Дом по Ethernet

Сообщение vladimir22 » 10 апр 2015, 10:58

спрашивал .
готов вам предоставить тестовый полигон , для проведения таких действий. Хоть боевую систему , хоть тестовую виртуальную среду.

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

stels3737
Сообщения: 27
Зарегистрирован: 24 окт 2013, 00:45

Re: Умный Дом по Ethernet

Сообщение stels3737 » 10 апр 2015, 13:20

vladimir22 писал(а):спрашивал .
готов вам предоставить тестовый полигон , для проведения таких действий. Хоть боевую систему , хоть тестовую виртуальную среду.

зы я неделю переписывался с производителем девайса , и с автором бенукса , у меня так и не получилось.
Вот посмотрите здесь http://stackoverflow.com/questions/2386 ... -for-linux - кто делал сказал что специалист сразу поймет что и как

vladimir22
Сообщения: 219
Зарегистрирован: 15 мар 2013, 09:42

Re: Умный Дом по Ethernet

Сообщение vladimir22 » 10 апр 2015, 13:26

пройденный этап.... не видит OWFS того мастера (ds2480) который стоит в этих девайсах.
да да предвижу вопрос - да, стоит там в качестве заглушки DS1820 и бенукс успешно видит его и читает.
если кто то готов поковыряться, или наружу открою этот преобразователь, или создам тестовую среду .

alexsis_76

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 10 апр 2015, 14:35

507 у вас в коде наверняка есть такое(по крайней мере в оригинале было)

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

if(TickGet() - StartTime > 4*TICK_SECOND)
выдежка 4 секунды
а еще там есть

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

TICK_SECOND
TICK_MINUTE
TICK_HOUR 
подставляя на место TICK_SECOND указанные макросы получим требуемую задежку

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

alexsis_76, если я правильно вас понял, вы предлагаете то же, что я описал в пункте 2. То есть отправлять в цикле команду на конвертацию. Только вы предлагаете делать это часто. Долбить датчик раз в секунду? Не знаю. И, кстати, в этом случае я не уверен в отсутствии "self heating problem".
угу

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

Долбить датчик раз в секунду?
а кто мешает увеличить время (минуты, часы,дни)надо только заменить константу и добавить несколько строк кода

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение 507 » 10 апр 2015, 14:51

alexsis_76 писал(а):507 у вас в коде наверняка есть такое(по крайней мере в оригинале было)
Вы мне льстите.
Мой код...
Я пока очень далек от того что б создать что то свое, эх если б мог то столько хотелок своих решил, а сколько появилось бы еще, жуть.
Я так понял Вы сослались про код для PIC. так?

alexsis_76

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 10 апр 2015, 15:00

вот правда для авр, для пик понадобится поменять код для работы с оборудыванием, остальное вроде бы кросплатформенное
в архиве вариант оригинальный (от производителя)алгоритм поиска с ,за один проход оперделяет адрес одного устройства на шине , позволяет искать устройства указанного пользователем семейства, для каждого устройства считает 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;// возвратим флаг занятости
	}
ow_write_byte(OW_SKIP_ROM_CMD); // команда "пропустить адрес"
где то есть исходник где есть работа с несколькими датчиками (надо искать)
Вложения
1ware.rar
(5.75 КБ) 310 скачиваний

alexsis_76

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 10 апр 2015, 15:01

Я так понял Вы сослались про код для PIC. так?
нужно изменить только нижний уровень

alexsis_76

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 10 апр 2015, 16:09

507 вот это вроде рабочее
все то же самое что и в предыдущем ,заменены только функции работы с шиной,
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 КБ) 305 скачиваний

507
Сообщения: 150
Зарегистрирован: 10 янв 2013, 12:55

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение 507 » 10 апр 2015, 16:42

спасибо, возьмем на заметку.
Вот еще думаю, что можно вынести на SD карту для высвобождения ресурсов.

alexsis_76

Re: Прошивка MegaD-328 (релизы, обсуждения, предложения)

Сообщение alexsis_76 » 11 апр 2015, 02:23

Вот еще думаю, что можно вынести на SD карту
данные для построения веб страниц
Последний раз редактировалось alexsis_76 11 апр 2015, 03:06, всего редактировалось 1 раз.

Ответить