Июл 122016
 

Встала задача организовать громкую связь в офисе. После оценки нескольких вариантов было решено использовать IP телефонию организованную на базе SIP сервера Asterisk.

В качестве источника звукового оповещения будут использоваться малогабаритные wifi роутеры с подключенными через USB звуковую карту активными колоноками:

К тому же в организации используется несколько телефонов Grandstream GXP-1610 IP. Эти телефоны поддерживают функцию Intercom (оно же Paging), а это позволит использовать их как громкоговорители.

Начнем с настройки роутеров.

После установки на роутер стандартной сборки Openwrt, необходимо доустановить пакеты поддержки USB, USB звуковых карт и SIP клиента:

opkg update
opkg install kmod-sound-core kmod-usb-audio alsa-utils baresip baresip-mod-alsa baresip-mod-cons baresip-mod-g711

Далее в asterisk для каждого роутера необходимо добавить свой номер и добавляем аккаунт в SIP клиент. Настройки хранятся в файле /root/.baresip/accounts

<sip:111:password @sip.server.ru:5060;transport=udp>;answermode=auto;</sip:111:password>

Указываем список номеров с которых разрешен входящий вызов. В файле /root/.baresip/contacts:

"Catch All" <sip: *@*>access=allow</sip:>

Громкость на акустике можно выставить на максимум, а в автозагрузку добавить программную установку громкости в процентах. В дальнейшем это позволит регулировать громкость не имея физического доступа к роутеру. В начало файла /etc/rc.local добавить строку:

amixer -c 0 -- sset Speaker Playback Volume 10%

Теперь в asterisk создадим extension, на который будем звонить для громкого оповещения:

#Intercom
exten = 777,1,NoOp(== Group Call ==)
exten = 777,n,Answer
exten = 777,n,Playback(beep)
exten = 777,n,Set(TIMEOUT(digit)=5)
exten = 777,n,SIPAddHeader(Alert-Info: <sip:127 .0.0.1>;\;info=alert-autoanswer\;delay=0)
exten = 777,n,Page(SIP/111&amp;SIP/112&amp;SIP/113)</sip:127>

В последней строке перечисляем все номера с функцией громкой связи (это наши роутеры и телефоны с функцией Intercom).

Дальше настроим Intercom на стационарных телефонах.

Переходим в меню телефона: ACCOUNTS -> Account 1 settings -> Call settings =”true”.

Переходим в меню телефона: Setting -> Call features -> Intercom User ID = 777

Теперь при звонке на номер 777, после звукового сигнала вы сможете делать объявления громкой связи.

 

 Опубликовано в 14:47
Июл 092016
 

В разных мелких проектах работаю с роутером A5-V11. Это отличный роутер по целому перечню показателей:

  • Имеет неплохие технические характеристики
  • Терпит достаточно высокий нагрев
  • Имеет малые габариты
  • И главное это самый дешевый из известных мне вариант железки с 32MB Ram + 4MB flash +USB + WiFi + OpenWRT

Приехал очередной такой экземпляр и при попытке перепрошить стал кирпичем без видимых причин.

Первоначальная прошивка роутера подробно описана тут и ранее проблем с ней не было. Но в этот раз роутер отказал, слабо горели синий и красный светодиод, а версия uBOOT не поддерживала прошивку с предопределенного tFTP сервера (обычно это сервер с ip 192.168.1.55).

Было решено попробовать перепрошить SPI Flash через программатор, который был куплен давно и всё лежал без дела.

Процесс заливки прошивки подробно описан на 4PDA пользователем Ric#16, за что ему огромное спасибо. Заранее предостерегу: при попытке работать с программатором в “Ubuntu + VirtualBox” наблюдалась нестабильность, потому пользователям линукс дополнительно стоит почитать подробный мануал по сборке нативного программатора и работе с ним.

После нескольких неудачных попыток прочитать данные с чипа, стало понятно что он и есть причина окирпичивания устройства. И как славно, что с пол года назад я приобрел на aliexpress пяток 8-ми мегабайтных флэшек W25Q64.

Осталось заменить чип.

Как это сделать подсмотрел в этом видео. И хотя в моём случае всё закончилось благополучно, чуть позже в другом видео человек показывал как не сдуть феном расположенные вокруг smd детали.

Изначально прошивал чип FullFlash прошивкой расположенной в архиве пользователя Ric#16. Но эта прошивка видит только 4 мегабайта от новой флэшки.

Вариантов решения проблемы нашлось два.

Первый мне не подошел – в выложенной пользователем Abdullbasit прошивке, ядро новее чем в репозитории chaos calmer 15.05.1, а потому дополнительные модули ядра не устанавливаются. Собрать же самому прошивку с поддержкой 8-ми мегабайт flash наскоком мне не удалось.

Второй вариант оказался значительно проще: у роутера NEXX WT1520 практически идентичная прошивка, но есть 8-ми мегабайтная версия. В частности я прошил вот эту, вот так:

#Скопировать в каталог /tmp роутера файл openwrt-15.05.1-ramips-rt305x-wt1520-8M-squashfs-sysupgrade.bin
scp openwrt-15.05.1-ramips-rt305x-wt1520-8M-squashfs-sysupgrade.bin root@192.168.1.1:/tmp
#Зайти на роутер и запустить установку
cd /tmp
sysupgrade -v -n openwrt-15.05.1-ramips-rt305x-wt1520-8M-squashfs-sysupgrade.bin

Теперь на роутере не верно работают GPIO светодиодов, но доступны все 8 мегабайт flash и соответственно можно воспользоваться ImageBuilder-ом чтобы собрать свой образ (не забудьте в качестве профиля указать “WT1520”).

 

 

 Опубликовано в 22:29
Окт 272015
 

Zabbix очень мощная и удобная система мониторинга.
Раньше использовал его только для мониторинга за IT инфраструктурами компаний в которых работал/работаю, но с недавнего времени стал использовать его и в своем проекте gh-online.

В этом проекте до текущего момента zabbix использовался только для мониторинга температуры, влажности и это было удобно – отсылка данных, отображение и анализ графиков – всё организовано средствами самого zabbix.

Теперь же возникла необходимость мониторить состояние устройств: вентиляторов, помп и прочего.

И тут появились две проблемы:

  1. Zabbix не позволяет масштабировать графики точнее чем за 1 час
  2. Zabbix-у нельзя отправлять данные с прецизионной точностью времени снятия показаний

По первой проблеме решение нашлось довольно быстро. Уже давно на сайте поддержки zabbix висит тикет с просьбой реализовать масштабирование графиков с большей точностью.

И слава разработчикам! В следующей версии zabbix эта возможность  будет реализована (а уже выпущена третья альфа ;) )!

Выглядеть будет примерно так:

one_minute_zoom

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

В предвкушении предстоящего в скором времени обновления системы решил начать реализовывать функционал по отправке в zabbix данных о включении и выключении оборудования.

Покопавшись на форумах понял, что в базе zabbix данные о времени снятия показаний хранятся в unixtime и кроме этого есть поле nanoseconds. То-есть теоретический предел точность – 1 миллиардная доля секунды.

А вот дальше начались проблемы.

Данные я отправлял с openwrt на zabbix сервер с помощью нативного zabbix_sender из lua скрипта. Но zabbix_sender умеет отправлять время в unixtime и никак не точнее (а это с точностью до секунды).

Нативных библиотек для реализации zabbix_sender для lua не нашлось.

Потом выяснилось, что протокол обмена не текстовый (хотя внутри он и json based ;) ), а в lua (без дополнительных модулей) проблемно работать с бинарными данными (точнее сказать невозможно). А учитывая ценность интерпретируемых скриптов на lua (они выполняются без предварительной компиляции), тащить дополнительные модули написанные на C очень не хотелось.

В итоге в процессе длительного изучения возможных вариантов решения задачи полез в исходники zabbix.

И не зря полез :) В общем и целом, протокол zabbix_sender является подмножеством протокола zabbix_agent. А zabbix_agent отправляет данные c прецизионной точностью в одну наносекунду.

Поковыряв исходник zabbix_sender решил попробовать дописать необходимый функционал. И хотя знания мои в программирования весьма ограниченны, удалось добиться положительного результата :)

В итоге получился такой патч.

Патч отправлен на портал поддержки на верификацию. Надеюсь войдет в следующую версию, потому как расширенным возможностям масштабирования графика добавление такого функционала к zabbix_sender будет как раз во время.

Что не маловажно, именно возможность отправлять время изменения состояния оборудования с точностью до наносекунд, позволит строить графики типа таких, что изображен ниже красным цветом:

20150920-5

В то время как сейчас, график включения оборудования на одну секунду будет выглядеть как изображенный выше синим цветом.

Для этого нужно будет отправить предыдущее состояние оборудования с временем снятия показаний на одну наносекунду меньше чем новое показание.

 Опубликовано в 00:05
Окт 232015
 

Всех поздравляю с выходом новой версии замечательного дистрибутива!

Обнаружилась первая, не значительная, проблема: Oracle еще не озаботился с подготовкой deb пакета virtualbox для новой убунточки.

Решается проблема просто. Выкачиваем руками библиотеку libvpx1 и устанавливаем его параллельно с новой (уже установленной) версией. Конфликтов это не вызывает:

sudo wget http://cz.archive.ubuntu.com/ubuntu/pool/main/libv/libvpx/libvpx1_1.3.0-3ubuntu1_amd64.deb
sudo dpkg -i libvpx1_1.3.0-3ubuntu1_amd64.deb

Ну а дальше продолжаем установку virtualbox как вам это привычно. Я лично ставлю по рекомендации от Oracle:

sudo echo "deb http://download.virtualbox.org/virtualbox/debian trusty contrib" >> /etc/apt/sources.list.d/virtualbox.list
sudo wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
apt-get install virtualbox-5.0

В остальном переустановка Kubuntu прошла успешно, профили ПО подхватились.

 Опубликовано в 18:54
Мар 072015
 

Второе видео опыта по выращиванию помидорок. По прежнему 1 кадр в 180 секунд (в три минуты один кадр, кому не понятно :) )

Листочки на первом плане – это щавель и шпинат. У щавеля листочки побольше, растут быстрее, вкус ярче, но в камеру все таки шпинат лезет. Несправедливость на лицо :)

График температур:
2015.02.07

График не идеален, электроника еще не стабильна.

Влажность:
2015.02.08_2

И помним: зеленый у растений (в боксе), синий над боксом.

Кстати! А вы знаете, что оптимальная влажность для человеческого организма 40-60%? А на графике отображается влажность не только в моем помещении, но и в вашем ;)

Подробности по прежнему тут.

 Опубликовано в 02:46
Сен 142014
 

Сделал небольшой обзор купленных на ebay, aliexpress USB хабов.

Заинтересует он больше тех, кто приобретает хабы для различных самоделок.

Меня в частности интересовало качество пайки, расположение разъемов, типы используемых микросхем, поддерживаемый стандарт USB и количество недостающих деталей :)

Большая часть хабов были куплены лично, но по мере “находимости” на просторах интернета будут добавляться и другие.

Если у Вас есть что спросить или добавить пишите тут.

 Опубликовано в 21:10