Опрос


Что для Вас Умный Дом?


Результаты


Реклама


Настройка Debian Linux в качестве сервера для домашней автоматизации

24/11/2008 16:38:43

"Пингвины, они же психи..." (м/ф "Мадагаскар")

В своей вводной статье "Умный дом своими руками" я попытался рассказать, почему я решил создавать систему автоматизации дома самостоятельно. Напомню коротко, что дело все даже не в цене готовых и проверенных решений (хотя, зная цены... материал "готовые решения для системы Умный Дом"), а больше в желании исследовать эту область и попытаться собрать из отдельных кубиков целое. Именно по этой причине в качестве операционной системы сервера был выбрал Linux. Эта операционная система как нельзя лучше вписывается в идеологию конструирования, потому что сама по себе эта ОС собрана как конструктор из разных модулей, написанных разными людьми.

ОС Linux имеет, кроме того, следующие преимущества и достоинства:

  • Открытый исходный код (можно всегда разобраться как работает та или иная программа, и даже поправить ее для своих нужд)
  • Linux абсолютно бесплатен
  • Не очень высокие требования к аппаратным ресурсам компьютера
  • Отличная производительность
  • Гибкость
  • Стабильность работы
  • Большое количество бесплатных прикладных программ и решений
  • Огромное количество форумов и документации, в которых можно найти ответы на большинство вопросов

При этом есть и свои недостатки:

  • Относительная сложность установки и использования (пользователь должен иметь некоторые навыки)
  • Не для всех устройств доступны драйверы и не всегда возможности устройства поддерживаются драйвером полностью

В качестве компьютера изначально был взят старый системный блок на базе Intel Celeron 1,3 с 256Мб оперативной памяти и 40Гб (5400RPM) жестким диском. Я решил, что принципиально пойду эволюционным путем и буду расширять систему по мере необходимости. Благо Linux позволяет менять железки без переустановки системы. Проблемы могут возникнуть только при апгрейде жесткого диска на диск большего объема, но об этом позже. Поскольку на этот момент не было информации относительно ресурсоемкости задач для реализации Умного дома, взял то, что пылилось без дела под кроватью.
Спустя несколько лет это древняя "железка" благополучно ушла на покой, а вместо нее в 2013 году было установлено более современное оборудование: Gigabyte GA-H77-D3H, Intel Core i3 3220, WD 6000HLHX (это тот, что с 10000 RPM), Corsair Vengeance (CMZ8GX3M2A1600C8) 2x4Gb.

Linux  на текущий момент - это скорее не какая-то конкретная операционная система, а целое семейство. Ядро у них одно, а набор программ и способы конфигурирования разные.
Я взял один из линуксов, а именно Debian. Почему именно Debian? Во-первых, Debian относительно отлаженный линукс, со стабильными и протестированными на предмет совместимости набором программ. Во-вторых, для Debian достаточно часто выпускаются обновления, прежде всего, из области надежности и безопасности. В-третьих, это популярный линукс, а значит я, не будучи гуру в линуксах, смогу найти ответы на многие вопросы. Также для Debian написано много мануалов (документации), относящихся к специфике этого дистрибутива.

Скачать Debian можно здесь http://www.debian.org
На этом сайте вы сможете также найти множество документации по установке и использованию этой ОС на русском языке.

Я не буду переписывать руководство по установке. Вы прочитаете это в других источниках, если это будет необходимо (я, кстати, не читал). Нас линукс интересует в качестве сервера для домашней автоматизации. Фактически, базовый пакет программ, входящих в Desktop, содержит большую часть того, что нам потенциально может потребоваться. Забегая немного вперед скажу, что ядро моей системы автоматизации использует пакет owfs для управления 1-wire компонентами. Программы управления написаны на PHP и perl. Использованы также возможности awk, bash. В качестве сервера баз данных использован MySQL, а задачи Web-сервера выполняет Apache HTTPD.

Теперь по порядку. В стандартной конфигурации Desktop Debian Linux хотя и обладает большим набором программ, многого не имеет. Прежде всего, мне потребовались некоторые специфические программы, которые не входят в стабильную сборку Debian (настройка видеонаблюдения с помощью ZoneMinder и управление 1-wire сетью под Linux'ом с помощью owfs). В линуксе не принято распространять скомпилированные программы, так как набор библиотек и их версии в разных дистрибутивах разные, поэтому распространяются исходники. Исходники нужно компилировать, поэтому мне потребовались пакеты для компиляции программ в моей операционной системе.

Чтобы установить какой-нибудь пакет в Debian, нужно выполнить команду 'apt-get install имя пакета'

apt-get install build-essential
apt-get install autoconf
apt-get install automake
apt-get install make
apt-get install gcc

(!) Если вы не хотите работать в командной строке, то можно запустить программу управления пакетами в графической оболочке и сделать тоже самое, найдя там перечисленные выше и ниже по тексту пакеты.

Система управления пакетами APT работает с репозитарием, некой базой данных пакетов. По умолчанию это DVD-диски дистрибутива, но лучше настроить Debian для загрузки пакетов из Интернета. Тогда имеется возможность получать самые свежие пакеты, а также обновлять имеющиеся. Основной файл для настройки APT - /etc/apt/source.list
Для установки с DVD дисков там должны быть следующая запись:

deb cdrom:/   etch contrib main

Однако если есть доступ в Интернет, лучше прописать

deb http://ftp.debian.org/debian/ etch main
deb-src http://ftp.debian.org/debian/ etch main
deb http://security.debian.org/ etch/updates main contrib
deb-src http://security.debian.org/ etch/updates main contrib

После редактирования source.lst мы должны выполнить команду

apt-get -u update

Да, что касается редактирования файлов. Делать это можно через графический интерфейс, с помощью Midnight Commander'а (привет 80-ые) или тектовым редактором, например, vi. Если вы любитель "ретро", как я, то можете установить Midnight Commander, который наводит ностальгические мысли о незабываемом Norton Commander.

apt-get install mc

Но если есть желание поработать в текстовом режиме, а это, поверьте, очень удобно, то можно использовать текстовые редакторы. К редактору vi, как и к его производным, я привыкнуть так и не смог, поэтому использую joe, который имеет гораздо более привычное управление. Установить его также просто

apt-get install joe

 Чтобы закончить с описанием APT скажу, что если вы все же настроили обновление через Интернет, то для апгрейда пакетов можно воспользоваться графическим интерфейсом или командой

apt-get upgrade

После установки owfs (для микросети на базе протокола 1-wire), которая описана в отдельной статье, возникла необходимость написания управляющих программ: управление освещением, отоплением, вентиляцией. Для этих целей был выбран язык программирования PHP, как наиболее легкий в освоении и использовании. Немаловажным аспектом является то, что php удобно использовать также для написания интерфейсной части системы для Web-сервера. Таким образом, необходимо установить:

apt-get install php5 php5-gd php5-mysql php5-cli

php5-gd - это библиотека GD для PHP, которая позволяет работать с изображениями (пригодится для видеонаблюдения).
php5-cli - это командный интерпретатор PHP (в метапакет php5 не входит и устанавливается отдельно). Необходим для использования PHP не только в связке с Apache, но и отдельно.

Поднимите мне веки!

У любой автоматизированной системы должен быть интерфейс, через который она общается с пользователем. Должен же я как-то контролировать работу электронного мозга. Да и информация, например, с датчиков температуры и влажности, нужна не только для управления отоплением, но и для того, чтобы не одеть в мороз вместо шубы и валенок пляжный костюм. Причем для меня было важно, чтобы этот интерфейс был доступен с любого компьютера в доме, а также извне, из Интернета. Для реализации этой задумки идеально подходит технология Web в общем и HTTPD-сервер Apache в частности. Не нужно забывать и о способе хранения различных данных. Для хранения объемных табличных данных нужна система управления базами данных СУБД. Например, информацию со всех датчиков и исполнительных механизмов я храню в отдельных таблицах. Таким образом, через Web-интерфейс можно всегда получить информацию о том, когда произошло то или иное событие, какой модуль сработал или построить месячный график наружной температуры, потребляемой электроэнергии или воды.

Поэтому мне потребовалось установить Apache httpd и MySQL

apt-get install apache2 mysql-server-5.0

После установки Apache2 и MySQL они автоматически сконфигурируются и запустятся. Также эти программы будут добавлены в автозагрузку.

Моя твоя не понимать.

Несколько слов о языковой настройке. В принципе Apache2 никакой особенной настройки не требует. Но я решил работать в кодировке Windows-1251 (CP1251), поэтому прописал в конфигурационный файл /etc/apache2/apache2.conf такую опцию

AddDefaultCharset WINDOWS-1251

С MySQL-сервером в этом смысле значительно сложнее. Чтобы MySQL гарантированно говорил по-русски, создавал, хранил и выдавал данные на русском, а точнее на 1251-русском, в его конфигурационный файл в блок [mysqld] нужно прописать:

character-set-server=cp1251
collation-server=cp1251_general_ci
init-connect="SET NAMES cp1251"
skip-character-set-client-handshake

Решение, как говорится, не фонтан, но работает. Надо только иметь ввиду, что для суперпользователя, root, любого другого, у которого имеются неограниченные права на базу, все равно будет установлена кодировка latin1.

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:



Сортировка комментариев: Последние сверху | Первые сверху

2009-08-17 13:12:56 | Владимир
Очень понравилось, сам такое хочу сделать на БСД


2009-10-25 21:26:51 | Дмитрий
Спасибо за обмен опытом. Я лично использую сборку Ubuntu-server который так-же базируется на Debian


2009-10-29 22:45:49 | Дмитрий
Кстати, настоятельно рекомендую ознакомиться с устройством увеличивающим надежность сервера: www.linuxfocus.org/Russian/July2002/article239.shtml


2009-12-02 16:36:18 | Serj
Описание проблем с которыми пришлось столкнуться начну с того,
что до сих пор я работал с DOS, Windows, Novell и с Linux'ом дел
не имел. Проблемой умного дома заинтересовался недавно после того,
как этот самый дом у меня появился. Спектр моих интересов сильно
совпадает с интересами автора в контексте умного дома. Поэтому
был очень рад, когда наткнулся на этот сайт и почитал статьи автора.
Чувствуется, что пишет человек, приложивший к словам руки.
Поэтому, не долго думая, побежал покупать DVD с Linux'ом. Ведь
когда читал все было понятно: 1)Устанавливаем Linux 2)Устанавливаем
указанные автором пакеты 3) Наслаждаемся
Какие были проблемы с установкой Linux описывать не буду. Просто
проблемы были. Ubuntu 8.04 поставить не удалось наверное потому, что
были какие-то повреждения информации на диске, а Mandriva, что за
2007год, что за 2009 год установилась не с первой попытки.
Но когда, наконец-то, система была установлена, в колонках зазву-
чала музыка и можно даже было посмотреть фильм, пришло время обратить-
ся к информации автора по развертыванию на Linux'e умного дома.
Автор пишет "Прежде всего, мне потребовались некоторые специфические
программы" и расшифровывает "В линуксе не принято распространять
скомпилированные программы". Для меня это было новостью, а так же
то, что "Исходники нужно компилировать" самому. Далее автор пишет
"Чтобы установить какой-нибудь пакет в Debian, нужно выполнить команду
'apt-get install имя пакета'". Наверное для Линуксоида эта фраза понятна.
Но вот у меня, ДОСовца, она вызвала полный ступор. Во-первых, что автор
подразумевает под словами "программы" и "пакет". Это одно и то же или нет?
Если не одно и тоже, то по каким признакам мне, чайнику, отличить пакет
от программы в Linux?
Я скачал из интернета файл "owfs-2.7p26.tar.gz". Это пакет, программа
или архив пакета или архив программы?
Что мне с ним физически дальше делать? Разъархивировать или не надо?
Положить в какое-нибудь специальное место или не надо? Наверное спецы
будут смеяться, но когда я сделал следующее "Копка Меню"-> "выполнить
команду" и набрал 'apt-get install owfs-2.7p26.tar.gz' ничего не произошло.
Вариации с путями, разъархивированием и прочими попытками результата не дали.
Сделал я и другую попытку "(!) Если вы не хотите работать в командной
строке, то можно запустить программу управления пакетами в графической
оболочке " как-то запустить owfs через "Копка Меню"-> "Установка
и удаление программ". К сожалению в "Параметры"-> "Менеджер источников"
путь ни к файлу "owfs-2.7p26.tar.gz", ни к папке ""owfs-2.7p26" указать
не удалось. И вот уже более часа пишу о своих потугах.
Уважаемый автор, я это все написал не с целью каким-либо образом Вас
критиковать, а что бы Вы увидели "белые пятна" вашего рассказа для
пользователя Windows, где все значительно проще. Теперь я понимаю,
почему Windows настолько популярен!
С уважением и пожеланием успехов, Сергей.


2009-12-02 23:59:20 | Andrey_B
Serj, Вы столько разного написали, что невозможно ответить вам по существу и коротко. Для этого пришлось бы разместить на сайте тонны инструкций, пояснений, расшифровок. Скажу только, что Интернет тем и хорош, что можно найти ответ на все свои вопросы. Нужно только немного потратить времени на _изучение_ того, с чем вы хотите работать. Да, Linux не совсем привычен для пользователя Windows и в некотором смысле он сложнее в использовании. Но недостатки Linux'а - обратная сторона его достоинств. А сайт этот посвящен вовсе не Linux'у. owfs можно запустить и под Windows. А можно взять другие программные продукты под Windows или воспользоваться SDK и написать свое собственное ПО. Цель размещенных на сайте материалов - не дать конкретный ответ или решение, но поделиться идеями, мнениями. А дальше у каждого своя голова на плечах.


2009-12-04 14:41:23 | Serj
Спасибо за быстрый ответ. За пару дней я почитал немного литературы по Linux. Должен констатировать факт, что большинство статей взахлеб расхваливают Линукс. Я встретил только одну, в которой автор прямо указывает, Линукс - это фактически ОС не для простых пользователей и надо сначала потратить очень много времени на его изучение, прежде чем получишь удовлетворительный результат. К сожалению, в своих статьях Вы, как и большинство других авторов-Линуксоидов, очень завлекательно излагаете информацию, изначально зная, сколько проблем ждет не Линуксоида. Поэтому я Вам и написал достаточно подробно в предыдущем обращении, желая принудить Вас либо более подробно изложить информацию(очень желательно!), либо предупредить потребителей Вашей информации о минимально-необходимых требования к уровню знаний. Иначе Вы уподобляетесь продавцам, которые ВТЮХИВАЮТ свой товар любому, только что бы получить прибыль. Извините за резкость. Просто я очень заинтересовался предложенной темой, потратил кучу времени, а в результате получил "пшик". В результате я должен сделать выбор: или получить более удобоваримую информацию, либо вычеркнуть Ваш сайт из посещаемых.


2009-12-05 00:55:12 | Andrey_B
Serj, я, как и большинство людей являюсь пользователем Windows, причем лицензионной. ;) Но этот сайт посвящен не какому-то конечному продукту. Этот сайт посвящен хобби. Можно ли прожить без домашней автоматизации - конечно! Этот сайт для тех, кто увлечен этой темой. И здесь представлено мое видение. Мне было интересно попробовать Linux в качестве сервера и у меня это получилось, хотя я не явлюсь специалистом в этой области. У меня не возникло каких-либо сложностей кроме тех, о которых я написал. Что касается детализации, то можно, конечно писать подробнее, можно расшифровывать кажду фразу, что такое программа, байт, клавиатура, монитор... только зачем? Здесь я пишу, к примеру, про Debian, но есть другие дистрибутивы Linux, которые совсем не похожи на Debian, в которых нет aptitude для управления пакетами или используются совсем другие средства, такие как RPM и т.д. Но смысл в том, что в принципе это все при желании можно поднять на чем угодно, хоть на Windows. Мне неинтересно делать статьи "для чайников". Будут конкретные вопросы - задавайте. Попробую ответить.


2009-12-09 17:28:18 | Serj
Мои конкретные вопросы:Я скачал из интернета файл "owfs-2.7p26.tar.gz". Это пакет, программа или архив пакета или архив программы?
Что мне с ним физически дальше делать? Разъархивировать или не надо?
Положить в какое-нибудь специальное место или не надо?


2009-12-09 22:58:29 | Andrey_B
owfs-2.7p26.tar.gz - это архив с исходниками, которые нужно распаковать и разархивировать.
Делается это примерно так
tar -xvzf owfs-2.7p26.tar.gz
cd owfs-2.7p26
./configure
make
make install
==
Стоит только сказать, что для компиляции owfs нужны кое-какие установленные библиотеки. В случае нехватки чего либо скрипт configure проинформирует. Размещать архив в специальное место не надо. Устанавливается пакет owfs по умолчанию в /opt/owfs


2009-12-12 12:00:34 | Serj
Андрей, а что, Вашими правилами запрещено размещение информации на сайты с аналогичной тематикой? Если "Запрещено", то не скромничайте, объявите это открыто, а если "Разрешено", то не вижу своей информации на разработки Шабронова А.А. для ДОСа и Виндовса. Но я повторюсь. Мне не трудно. www.irs.ru/~shabr/


2009-12-12 13:20:33 | Andrey_B
Serj, нет, не запрещено. Сообщение было удалено по ошибке, извините. Предложенная ссылка полезна для тех, кто увлекается этой тематикой. Единственный минус, автор при создании главной странички (для MicroLAN) неправильно прописал ссылки. В результате странички открываются только в IE (по крайней мере в IE7), который, видимо, сам исправляет ссылки. А вот в Firefox не работает, либо надо вручную переворачивать слеш в URL.


2009-12-16 16:05:20 | Serj
Воспользовался Вашей, Андрей, подсказкой по компиляции:
tar -xvzf owfs-2.7p26.tar.gz
cd owfs-2.7p26
./configure
make
make install
Но видимо ничего хорошего не получилось или я не могу правильно интерпретировать полученные результаты. Поэтому прошу Вас ответить на следующие вопросы:
1.У меня диск раньше был разделен на несколько логических дисков, отформатированных под ФАТ32. Для установки Линукса было создано еще 2 диска для своп файла и самого Линукса. Вопрос: Перед использованием команды tar -xvzf owfs-2.7p26.tar.gz где должен находиться файл owfs-2.7p26.tar.gz на ФАТ или Линукс-диске или не имеет значения?
2.В виндовс, в командной строке (если мне надо перейти с диска на диск) просто набирается имя диска, например А:. Вопрос: какую команду мне надо набрать в Линукс, что бы перейти на тот диск, где лежит файл owfs-2.7p26.tar.gz ?
3.Каким-то образом попав в папку owfs-2.7p26 запустил команду ./configure, которая вывела на экран море информации. Затем запустил команду make и команду make install, которые тоже выдали море какой-то информации. Вопрос: Как мне определить выполнилась команда(программа) положительно или все что она вывела -это сообщение об ошибках?
4. После того как я выполнил предложенные Вами действия у меня в программах Линукс появилась группа owfs.(Делал глубокой ночью, поэтому не ручаюсь за точность описания). В ней появилось много программ(может это ярлыки), но сама owfs в группе owfs значилась как нерабочая. Вопрос: После ответов на мои вышепоставленные вопросы и приобретения мною критериев удачи/неудачи, скачивания недостающих библиотек, МОГУ ЛИ Я повторить комплекс команд ./configure
make
make install
или лучше переустановить Линукс и попытаться с "Чистого листа" повторить компиляцию?
Заранее спасибо за ответы!


2009-12-16 22:39:42 | Andrey_B
Serj, по поводу Ваших вопрос.
1. Не имеет значения
2. В Linux'е нет понятия "диска". Все физические разделы "монтируются" в одно системное дерево. Навигация по дереву такая же как в DOS или Windows, только вместо C: или D: есть просто корень "/"
3. Linux - такая ОС, которая требует от пользователя внимания. После каждого действия нужно внимательно читать - что говорит система/программа/скрипт. Все сообщения об ошибках выводятся на экран или в лог.
4. Я не совсем понял о какой "группе" вы говорите. Я не знаю работаете ли вы в командной строке или из Desktop'а.
В папке с исходниками owfs есть файл README. Настоятельно рекомендую изучить его. Также загляните в инструкции на сайте owfs.org, где подробно описан процесс установки для разных дистрибутивов Linux.
Переустанавливать ничего не надо.


2009-12-17 16:48:36 | Serj
Андрей, Вы не ответили на вопрос 2. Знание понятия корня ничего мне не дает. Какую команду набрать?
3. Если я Вас правильно понял, то большое количество появившейся на экране информации (много экранов) говорит о том, что это сообщения об ошибках, а не о том, что Линукс очень "словоохотливый"?
4-й вопрос я задал не очень четко. Такой и ответ.
Спасибо.


2009-12-18 20:04:31 | Andrey_B
Serj, в DOS или Windows есть такая команда "cd". Не поверите, но точно такая же есть и в Linux. ;)
Большое количество информации далеко не всегда является сообщениями об ошибках. Но ведь на то она и информация, что ее можно прочитать и попытаться понять.
Мы к сожалению говорим о вещах слишком абстрактных и отвлеченных. Тема этого сайта не ОС Linux, а домашняя автоматизация.


2009-12-29 14:26:15 | Serj
Нашлась на праздниках свободная минутка и запустил команду ./configure. Как я писал ранее выдано было очень много бесполезной ДЛЯ МЕНЯ информации и видимо сообщения об ошибках, которые я интерпритирую следующим образом:
1.У меня в Линуксе нет РНР
2.нет Fuse-2.2
3. и еще чего-то. Не помню.
Дома интернета нет, да и на работе не быстрый.
Вопрос: Работая под виндовсом как мне найти недостающие пакеты на DVD или в интернете, что бы прилепить потом в Линукс?


2011-05-01 19:09:57 | Павел
Добрый день! Спасибо большое за Ваш сайт! Проектирую сейчас систему умного дома на новую квартиру. Заказал у Вас модуль на базе DS2413. А на днях пришел мне DS9490B. Не DS9490R, но пойдет. Собрал тестовую сеть: мастер - модуль DS2413 - термометр DS18B20.
Под windows (Benuks, TempKeeper) все работает. Задался целью попробовать под Linux. Установил openSUSE, пакет owfs. Возникла проблема: не могу смонтировать мастер в /mnt/1wire. Не могли ли Вы подсказать команду owfs?
Ввожу /opt/owfs/bin/owfs -d /dev/ttyS0 /mnt/1wire
(пробовал все ttyS) - выдает cannot open port.
Пробовал и с правами superuser - вообще никакого вывода.
Устройств ttyUSB в /dev нет - это правильно?

Заранее спасибо!


2011-05-01 21:46:23 | Andrey_B
Павел, /dev/ttyS* - это COM-порты. У вас же USB устройство. Опция -d не для вас
Посмотрите что у вас содержится в dmesg (команда dmesg или /var/log/dmesg). Вот, что говорит мой Linux.
[ 9.396314] Driver for 1-wire Dallas network protocol.
[ 9.424183] usbcore: registered new interface driver DS9490R

Далее вам необходимо запустить сервер сети. Для USB устройств делается это, например, так:
/opt/owfs/bin/owserver -u -p 3000
Если вам нужен owfs (представление устройств в файловой структуре, то команда следующая)
/opt/owfs/bin/owfs -s 3000 /mnt/1wire/

Собственно, все. Если будут в дальнейшем сложности, создавайте тему в форуме.


2011-11-05 16:27:02 | Денис
А как вы размечали жесткий диск на сервере. я имею ввиду /boot /var /usr и т.д.
сколько нужно места на диске сервера с функционалом умного дома?


2011-11-05 22:26:16 | Andrey_B
Денис, сам по себе функционал не требует больших объемов на жестком диске. Думаю, если взять все программы, система уместится в несколько десятков или в крайнем случае сотен мегабайт. Другое дело данные. Здесь все зависит от того, как часто и какие данные собирать и сколько их хранить. Например, у меня два десятка температурных датчиков. Информацию с каждого датчика я записываю в БД раз в минуту или раз в пять минут и храню в базе около двух недель. Это около 100 тыс записей или несколько мегабайт. Кроме датчиков есть и другие данные, информация с камер наблюдения, данные с электрического счетчика, данные с метеостанции, всевозможные журналы и т.д. Все эти данные могут занимать пару мегабайт, а могут и десятки гигабайт, если хранить всю историю значений или система имеет большое количество устройств, генерирующих информацию. То есть объем данных целиком зависит от конфигурации и настроек конкретной системы.
На моем сервере установлен жесткий диск объемом 80Гб. Так вот все данные (включая ОС и ее файлы) занимают 15Гб.
В этом смысле и размечать диск имеет смысл отталкиваясь от предполагаемой конечной конфигурации системы.


2012-03-31 14:01:11 | Владимир
Прочитал, вдохновился, захотелось попробовать самому.
Если несложно, ответьте.
Если бы сейчас собирали новый системный блок для сервера домашней автоматизации,
то на что обратили внимание? Уяснил насчет жесткого диска. Может быть надо что-то предусмотреть, например, какие-нибудь экзотические(устаревшие) порты? Системник первый раз в жизни тоже планирую собрать самостоятельно.


2012-04-01 09:49:56 | Andrey_B
Владимир, здесь есть несколько подходов. Как раз на эту тему есть обширная дискуссия на нашем форуме. Заходите, задавайте вопросы, будем рады ответить.
Если кратко, то для домашней автоматизации подойдет любая железка. Все зависит от задач, которые вы собираетесь решать. Многие ставят серверное оборудование и запускают на нем виртуализацию, а кто-то поднимает Умный Дом на перепрошитых Wi-Fi роутерах. В этом смысле я центрист. Можно использовать любой современный компьютер, но желательно, чтобы механических частей (вентиляторов) в нем было поменьше. Так, например, на сервере не нужна мощная видеокарта. В общем, заходите на форум.


2012-05-01 20:17:03 | User
Много терпения у автора. Serj из серии далеко идущих.
За сайт спасибо. Новая точка зрения.


2012-08-28 20:29:29 | Игнат
Касательно выбора компьютера. То есть если не использовать компьютер как домашнюю медиатеку, все высшеописанное можно соорудить на компьютерах типа raspderry pi ?


2012-08-29 12:43:56 | Andrey_B
Игнат, теоретически возможно, но какие-то сложные ресурсоемкие алгоритмы на таком железе решать будет затруднительно.


2013-06-12 15:51:58 | Жан Жак
Все здесь сказанное прекрасно если бы не одно, но. Мой домашний сервер работает на WIN server 2008 r2 и сайт на joomla на IIS7. А Linux я совсем не знаю. :-( И как мне тогда добавить ума моему дому??????????


2013-06-28 09:32:31 | vyslaf
Внесу небольшую лепту. Редактор mc запускается как mcedit. Использовать WINDOWS-1251 сомнительное занятие, на всех своих веб-проектах использовал utf8.
Информация отличная, как и весь раздел по умному дому. Сайт замечательный, спасибо.


2013-06-28 11:10:52 | Andrey_B
"Использовать WINDOWS-1251 сомнительное занятие" - это почему? Есть какое-то рациональное объяснение? Поясните "сомнительность".
Кстати, демо-интерфейс, выложенный на сайте в разделе "Демо-интерфейс. Исходники" в UTF-8.
На самом деле разницы никакой. Функционально система будет одинаково работать в любой кодировке. Вы, наверное, еще не видели крупных систем, которые работают в ISO-8859-1 и кодируют русские буквы HTML-сущностями... И ничего, работают.


2013-12-12 09:35:29 | Fsaber
1251. Представим себе что файл обозвали нашими родными буквами. В какой кодировке он ляжет в FS? А его имя (паче чаяния) в Базу? А потом конвертировать же еще...
Проще сразу перейти в юникод и забыть как страшный сон все KOI, OEM, 1251 и прочие EBCDIC :) Тогда можно точно быть уверенным в том, что все везде совпадает...
А те, кто экономит 50% объема на русских буквах при современных объемах носителей - это уже даже не жаба. Это уже к врачам пора.

PS. В конфе вашего сервака раптор и оверовская память. Если про раптор в принципе спорить не о чем - он тупо быстрее обычных. Разве что спросить - неужели все уперлось в disk io и не пора ли ставить ssd на ключевое место затыка? То ваша память - деньги на ветер (на чистых бенчах преимущество еще видать, а в реальном софте - уже нет).


2013-12-12 10:51:56 | Andrey_B
Fsaber, в текущий момент скрипты и данные в СУБД хранятся в кодировке UTF-8. В демо-интерфейсе, соответственно тоже. В данной статье информация уже несколько устарела.
Насчет памяти не знаю что вам ответить. Производительности сервера мне пока более чем достаточно. SSD пока устанавливать не решился, учитывая большое количество операций чтения-записи. Каких-то "затыков" на текущей конфигурации с моими задачами не наблюдаю.


2013-12-12 20:28:37 | Fsaber
Ну я для очистки совести написал. Чтобы диалог не завис неоконченным.
Про память - если вы ее купили по дешевке (по сравнению с обычной не сильно переплачивая) то в принципе плевать и забыть.
Но ваши статьи в принципе служат как ориентир для других и в этом смысле это не очень хорошо. Для большинства тех, кто проживает не в дефолт-городах разница между каким-нить Patriot или NCP и даже самой дешевой goodram в принципе ощутима.

PS. Было бы интересно построить серверок, который отвечает исключительно за умнодомовые задачи (медиалиб все-же больше к лицу специализированному HTPC)
И построить коробочку на основе mini-ITX платы с процессором класса Celeron-Pentium на Ivy Bridge и SSD (причем SSD не из-за быстроты а из-за бесшумности и меньшего напряга с охлаждением).
В итоге получить "шибко умную коробочку" может объявить на форуме нечто вроде-кикстартера? Т.е скинемси ребяты на проект - если покатит то такие коробочки можно будет потом по себестоимости наштамповать всем скинувшимся (+ учитывая долю) + пересылка
Заодно проект сможет получить пинка в плане выхода на другой уровень (в разрезе универсализирования модулей как исполнительного типа, так и probe sensors)
Потому как вриться в собственном доме это конечно прекрасно - делаешь под себя но обычно
такие системы не выдерживают выноса в мир. Когда вся разномахровость железяк окружающего мира накинется на него.
А так глядишь и допилил бы кто там кусочек, тут кусочек. Тут свой модуль для стиралки нарисовал там холодильник в интернет выпустил %)))))))


2013-12-13 10:53:40 | Andrey_B
Fsaber, по поводу памяти. Лично у меня нет задачи ограничиться самыми дешевыми решениями. Я выбираю то, что мне кажется оптимальным. При этом свою точку зрения не навязываю. Стоимость двух линеек памяти в сравнении со стоимостью дома и прочего оборудования в нем - это не просто копейки, это вообще ничто. Вы же не думаете, что я покупал их на последние деньги? Я не помню сколько они стоили, но вряд ли значительно дороже обычных. Я просто пришел в ближайший магазин и выбрал планки с минимальными задержками. И как-то не задумывался про "ветер". В жизни мы часто тратим деньги на куда более странные вещи...
Невозможно создать "сервер", который бы подошел всем. Простой пример, мне абсолютно безразлична бесшумность или габариты, так как все серверное оборудование у меня стоит в подвале в специальной комнате. И для себя я не вижу никакого смысла собирать сервер по какому-то специальному проекту. Напротив, если сервер будет собран из самого стандартного железа, которое в любой момент времени можно будет просто-напросто заменить на аналог - это большой плюс. То есть я хочу сказать, что не против какого-нибудь проекта такого сервера. Просто мне он неинтересен, потому что не дает мне никакого дополнительного преимущества по сравнению с тем, что есть. А если вы почитаете форум, то поймете, что масса народа вообще не желает иметь в доме сервер, а хочет ограничиться возможностями микроконтроллеров. Другая же часть против даже mini-ITX, Atom и Celeron, предпочитая мини-ПК, Raspberry Pi, или дешевый Wi-Fi роутер с возможностью загрузки альтернативной прошивки.


2013-12-13 22:50:43 | Fsaber
Про универсальность: miniITX вполне универсальная платформа. Собранный мной HTPC уже не один апгрейд вынес. Так что единственный его недостаток - 1 слот расширения PCI-E и невысокий выбор материнок если сравнивать с mATX.

А теперь про зацепленное - память :)
[ссылка]
[ссылка] в цене разница ощутима.
Да, в случае плавного построения системы такие издержки размазываются по бюджету во времени. Если же собрать вместе все такие переплаты и сложить...
[ссылка]
вывод: Собственно, выводы, которые можно сделать из нашего тестирования, вполне предсказуемы. Особого смысла в высокоскоростной памяти сегодня нет, и памяти DDR3-1333 вполне достаточно для большинства пользовательских приложений. Максимальный прирост производительности, который можно получить за счет использования скоростной памяти DDR3-2400 или DDR3-2600 вместо стандартной памяти DDR3-1333 может едва превышать 10%, причем задачи, которые позволяют выявить такое преимущество скоростной памяти, еще нужно поискать.

[ссылка] - Если отталкиваться от зафиксированных нами
в качестве референсных таймингов 7-7-7-20-4-48-8-4-4, то можно заметить, что с ростом тактовой частоты прирост производительности от разгона памяти по таймингам уменьшается. Так, если для частоты 800 МГц прирост производительности составляет почти 6%, то для частоты 1066 МГц прирост производительности равен всего 2%, а для частоты 1333 МГц — 2,3%. В целом можно констатировать, что для современной памяти DDR3 разгон по таймингам, как, впрочем, и разгон по частоте, малоэффективен. (и это в искусственных тестах!)

Особо хочется приложить хоть и старую, но вполне характерную картинку [ссылка]

Грубо говоря вся возня вокруг оверклокерской памяти на 90% - пустышка.
Единственная ниша для такой памяти - приложения, критичные к пропускной способности памяти.
Ни одно из используемых в умном доме приложений таковым не является (DBMS, HTTPD если и упираются то в диск) а остальным никак
ненадо мультигигабайты в секунду куда-то слать.


2013-12-13 23:07:13 | Fsaber
В догонку :
Не знаю как на время покупки сервера а сейчас разница между i3 3220 и i5 3550 примерно 2800 р. Разница между наборами памяти - 1000. (в посте ниже я линком ошибся вместо KHX1600C9D3B1K2 дал линк на KHX1600C9AD3B1K2 - в 2 раза меньшего объема)
осталось нагулять где-то 1800 и получим честные 4 ядра вместо 2 честных и 2 псевдо.

Это я к тому, что к выбору железа надо подходить четко зная что надо. И если бегают лишние несколько штук то во что их выгоднее вкинуть.


2013-12-14 11:12:32 | Andrey_B
Fsaber, заходите на наш форум, создайте тему про правильный выбор комплектующих для домашнего сервера, дайте свои рекомендации, выскажите свои мысли. Думаю, это для всех будет куда полезнее, чем обсуждать целесообразно или нецелесообразно я потратил несколько сотен рублей.


2013-12-14 22:16:36 | Fsaber
Да я собственно не к тому то имкнно Вы переплатили, а просто на примере :)
А про форум - подумаю. Собственно интересно было бы узнать нагрузку на Вашем железе. Сколько оно все там жреть.
CPU - все сообща.
RDBMS - надо найти самый мучительный из используемых query и залепить бенчер из него.
С холодного старта тоже - (mysql restart - bench) много раз померять и просто bench по кругу.
Потом, скажем, взять и принудительно вашей памяти поставить тайминги CL11 (SPD) и повторить.
Т.е подбор серверного железа - весьма тонкая штука. Если подойти серьезно.


2013-12-14 23:02:43 | Andrey_B
Fsaber, я думаю вы слишком серьезно подходите к решению этой проблемы. Столь тщательный подбор комплектующих, наверное, оправдан для высоконагруженных систем, к которым компьютер Умного Дома в общем-то не относится. Подавляющее большинство задач домашней автоматизации вполне успешно работают даже на самом слабом компьютере. В городском режиме с ограничением скорости в 60 км/ч нет никакой разницы между автомобилем с двигателем 70 лошадиных сил и автомобилем с двигателем в 270. Но, тем не менее, я предпочту что-нибудь помощнее, поскольку я все же в некотором роде исследователь и мне необходим небольшой запас по мощности на случай внедрения или тестирования новых технологий и решений.
А в целом, если бы вы не напомнили, я бы вряд ли ответил на вопрос какая у меня в сервере стоит память. ;)
Что касается нагрузки, то она не статична. И даже если я вам скажу какие-то конкретные цифры, что это даст? Отзывчивость текущей системы очень хорошая.


2014-01-19 00:11:06 | Андрей
Здравствуйте Andrey-b читаю ваш сайт каждый день ,но я реально не вкуриваю все эти скрипты и тому подобное тем более линукс это вообще темный лес.видать рожденный ползать летать не сможет а посему вопрос есть ли какой нибудь программный дистрибутив с более лояльными настройками понятными для простого пользователя к которому можно привязать мегу и 1вайр особо не напрягаясь вот как к примеру XControl и для виндовс и для андройд прога .пускай это будет стоить денег.мне будет проще чем засорять себе мозг .мне нужен умный дом а не гемор в качестве программирования и вкуривания мануалов. форумов. Погуглил подходяще нашел только системы Болид потому как сам эти системы ставил когда-то с ними разобраться максимум 2 дня. Единственный минус это уж слишком завышенная цена полной системы приборы программное обеспечение.Подскажите может есть какая нибудь прога ну типа веб интерфейс. и еще вопрос .Я встретил прогу Home Sapiens от наших производителей но информации по ней вообще никакой может вы сталкивались .Заранее спасибо


2014-01-20 12:12:38 | Andrey_B
Андрей, если честно, то я вас вполне понимаю. У всех разный уровень подготовленности. Кому-то достаточно лишь намека, остальное он сделает все сам. Другому же нужно только умение извлечь продукт из коробки. И это нормально. Мой сайт, прежде всего, ориентирован на подготовленных пользователей или тех, кто хочет во всем этом разобраться. Но я отдаю себе отчет в том, что его также читают и другие люди. Наверное вы правы, для проекту MegaD-328 следует разработать ряд готовых решений. И движение в этом направлении уже есть. В частности я на форуме выкладывал MegaD Panel - простой набор скриптов для управления устройствами MegaD. Он прекрасно будет работать и под Windows. Но многое еще предстоит сделать.


2014-10-23 14:05:47 | Виктор
Возник вопрос. А если использовать сборку Mint, а не Debian. Потеряю в чём-то или разницы существенной нет? А если есть - где ждать подводных камней?


2014-10-23 18:25:04 | Andrey_B
Виктор, Linux Mint основан на Ubuntu и в дистрибутив попадают самые свежие (не всегда проверенные временем) версии программ, а также проприетарное ПО. Для десктопа или сервера домашней автоматизации это большого значения не имеет (если не сказать, что даже дает преимущество), поэтому Linux Mint использовать дома можно. Но если вам нужна настоящая серверная надежность, то Debian и аналогичные "выдержанные" дистрибутивы с длительными периодами поддержки предпочтительнее.


2014-10-23 22:37:08 | Виктор
Спасибо за ответ! Буду пробовать, думать...


2014-10-24 15:36:31 | Виктор
В продолжении темы - а как насчет Mint, в основе которого лежит Debian? Так называемый Linux Mint Debian Edition (LMDE), впервые вышедший в 2010 году? Есть смысл поюзать его? И к чему он всё-таки ближе будет? Если Вы, конечно, в курсе...


2014-10-24 15:50:01 | Andrey_B
Виктор, мне кажется для домашнего сервера абсолютно все равно. Что нравится - то и можно ставить. Каких-то особенных требований к безопасности и стабильности в данном случае нет. А в эстетическом плане мне Linux Mint нравится значительно больше нативного Debian.


2014-10-24 20:10:02 | Виктор
Спасибо за ответ!


2014-12-17 13:27:11 | Артем
А если на виндовсе 7ке создать систему управления можно так?


2014-12-18 11:12:54 | Andrey_B
Артем, конечно можно. Но в Windows, на мой взгляд, значительно меньше возможностей в плане общей интеграции различных программ и технологий. В Linux гораздо больше бесплатного ПО, наработок, очень мощное сообщество пользователей и разработчиков. Всегда можно найти ответ на любой вопрос или спросить непосредственно разработчиков. Linux, безусловно, требует чуть больших знаний от пользователя. Но это, как вы понимаете, вопрос решаемый.


2015-10-17 16:22:45 | Дмитрий
Вопрос, какое самое дешевое решение для того чтобы соеденить MegaD-328 и рабочий скрипт через ethernet


2015-10-17 21:18:54 | Andrey_B
Дмитрий, я не понял вопрос. Сформулируйте его пожалуйста более развернуто.


2015-10-17 21:19:38 | Дмитрий
В одной из статей скрипт с алгоритмами хранился в старом компьютере (либо в миниПК cubiboard), что либо громоздко, либо дороговато. Есть ли на рынке готовые решения создания webserver a (одноплатные компьютеры, например, но без доработки паяльником)? Либо какой-то другой способ предоставления скрипта с алгоритмами контроллеру?


2016-01-05 09:48:24 | Шерзод
Здравствуйте, Андрей!
Очень интересные статьи. Появились несколько вопросов:
1. Почему выбрали именно Debian? Он лучше чем остальные ветки Линукса? Могу ли я установить, использовать пакеты например в Linux Mint?
2. Будете ли пробовать собрать сервер на Виндовсе?


2016-01-05 12:08:26 | Andrey_B
Шерзод, Debian - причин несколько.
1. Debian - стабильный и консервативный дистрибутив. Да, в него, как правило, не попадают самые свежие версии ПО. Зато то, что есть, тщательно проверено и протестировано. Для сервера это важно.
2. Debian - распространенный и популярный дистрибутив. Значит легко можно найти ответы на все возникающие вопросы.
3. Debian - дистрибутив, над которым постоянно идет работа. Критические обновления выпускаются очень быстро. Планомерно, год за годом выпускаются новые версии. Такой стабильностью и планомерностью выпусков релизов могут похвастаться далеко не все дистрибутивы Linux.
4. Debian - "из коробки" полностью открытое и бесплатное ПО, в то время как в некоторых других дистрибутивах присутствует проприетарный код даже в сборке по умолчанию. Это не столь важно в домашних условиях, но все же.

Linux Mint хорош на десктопе. Красочный, привычный пользователям Windows (особенно с окружением MATE), поставляется с полноценным браузером Mozilla Firefox и т.д. В качестве сервера он может работать как и любой другой Linux. В основе Mint лежит Ubuntu. Но часто в Linux Mint случаются мелкие косяки. Взять хотя бы систему печати и ПО hplip. У меня принтер HP LaserJet P1566. В 17.2 работал. В 17.3 перестал. В следующей 17.4 снова заработает. И так у них во многом.

Собирать сервер на ОС Windows не планирую.