intraHouse - Сервер умного дома

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Andrey_B
Администратор
Сообщения: 5329
Зарегистрирован: 18 мар 2011, 12:06

Re: Сервер умного дома

Сообщение Andrey_B » 10 ноя 2016, 13:53

intrahouse писал(а):Но если бы MegaD отрабатывала свои скрипты в любом случае (есть связь с сервером или нет) было бы лучше.
Вряд ли.
Что, если сервер решит вмешаться? Что, если сценарий не подходит для конкретной ситуации? Сценарий, исходя из вашего предложения, выполнится в любом случае и сервер никак не сможет воспрепятствовать этому.

Но у сервера есть два механизма, которые он может использовать, чтобы дать устройству возможность выполнить сценарий по умолчанию.
1. Команда "d". Доступна только для MegaD-2561. Если устройство получило от сервера в ответ команду "d", оно выполнит сценарий по умолчанию.
2. Сервер может вернуть HTTP-статус отличный от 200, изменив заголовок HTTP-пакета. В этом случае устройство также выполнит сценарий по умолчанию.

Если сервер вам нужен только для фиксации событий, то можно использовать поле Net. URL, который записан в это поле, будет вызван даже тогда, когда сервер в настройках не прописан.

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

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 12 ноя 2016, 16:20

Как и планировали, сделали специальный плагин для MegaD.
Можно обновиться и протестировать, плагин включает слушающий порт для получения запросов от MegaD.

1. Обновить версию на v16.11.12.x и выше
2. Удалить плагин Http клиент, если он был установлен.
3. Добавить плагин «Контроллер MegaD»: Система/Плагины: кнопка +
В настройках добавлено свойство: Порт на сервере для входящих запросов

Поскольку плагин будет получать данные от MegaD при изменении, интервал опроса можно сделать большим (или нулевым - тогда запрос будет сделан только при старте).

Параметр - "Таймаут - период без обмена данными" - нужно оставить в нуле или сделать его в 2 раза больше, чем интервал опроса.
Иначе будет возникать ошибка "Timeout error".

4. Настроить каналы в разделе Каналы/ MegaD /Channels
Это все как было в Http plugin, но изменена нумерация каналов - нумеруются с нуля.

Привязка каналов к устройствам: Система/Устройства: кнопка Железо.
(Если была привязка устройства к каналу Http-клиента - нужно будет сначала нажать кнопку Отвязать)
При привязке выходов нужно установить "Односторонняя связь"!!! Так как MegaD не подтверждает выполнение команды.

5. Запросы от MegaD настраиваются в следующем пункте: Requests To Server
Здесь нужно прописать:
- запросы, которые MegaD будет посылать (Request), например, /megad?pt=2
- что сервер должен отдать в ответ (Response), синтаксис MegaD, например, 7:1
- какие значения сервер должен установить у себя (Set state), например, 2=ON&7=ON

Обратите внимание, что нужно прописать значения как входных каналов, так и выходных

Сейчас поддерживаются такие значения для Set state:
OFF - установить 0
ON - установить 1
%имя атрибута входного запроса% - подставляется значение из входного запроса

Для запросов от MegaD (Request) можно использовать символ * в общепринятом смысле, что означает "любое значение",

Например:
Req: /megad?pt=5&v=* Set state: 5=%v% // пятый канал устанавливается в значение v из Req
Req: /megad?at=* Set state: 99=%at% // Создать условный канал №99 для температуры

Замечание по имени скрипта в запросе - он может быть любым, в т.ч. можно оставить megad.php, чтобы не менять настройки в MegaD на время тестирования
/megad.php?pt=1&m=1 - допустимо. это не значит, что запустится скрипт на php, просто такой путь запроса :)

Сделаем в ближайшее время:
- переключить состояние (соответствует значению 2 для MegaD и модификатору для ШИМ ( *200)


6. Для целей отладки создается отдельный лог плагина: /opt/intrahouse/base/MG1.log
Там полная трассировка обмена данными между сервером и MegaD

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 16 ноя 2016, 09:15

To intrahouse. А на сколько долго (без сбоев) работает ваша система на RP PI? В первую очередь интересует живучесть MicroSD в RP PI с БД в виде json. Знаю что SQL и flash-память (SD карты) не совместимы друг с другом из-за "тупого" контроллера flash-памяти - каждая запись значения в SQL проходит по одной и той же ячейке flash-памяти, в итоге она быстро умирает. Поэтому насколько критична связка json - flash-память?

clark2
Сообщения: 67
Зарегистрирован: 11 авг 2012, 00:17
Откуда: Kiev region

Re: Сервер умного дома

Сообщение clark2 » 16 ноя 2016, 17:01

To intrahouse
Сразу оговорюсь, у меня меги работают сами по себе, сервера у меня нет и не было (пока), так что может где-то вопросы странные.
Сервер запущен, мега подключена, интервал общего опроса 60 сек.

Ситуация 1:
Из сервера на меге включены некоторые порты, на меге что-то меняем, сохраняем, мега ребутится – сервер не видит до общего опроса.

Ситуация 2:
Из сервера на меге включены некоторые порты, на меге напрямую через web переключаем порт – сервер не видит до общего опроса.

Ситуация 3:
На меге подключен ADC (освещенность). Сервер видит изменения в интервале общего опроса.
Если надо опрашивать чаще, менять интервал общего опроса или как-то настроить канал по другому?

Ситуация 4:
На меге замыкаем кратковременно вход, настроено выход на команду 1 (Set state ON&ON). Мега отработала - сервер увидел.

На меге замыкаем кратковременно вход, настроено выход на команду 2 (переключение). Мега отработала - сервер увидел ON, как серверу увидеть при повторном замыкании входа OFF.

Тот же вход замыкаем длительно, настроено выход на команду 2 (переключение), мега включила и выключила выход (или выключила и включила) – сервер увидел ON, как увидеть OFF и почему сервер дважды выполняет переключение?
При подстановке в запрос &m=0, &m=1, &m=2 сервер не отрабатывает вход меги.

По датчикам:
Подключен на мегу DS18b20, показывает [19.37], По логу сервер видит [19.37], в базу пишет [19] без [.37], выводит в веб целое число.

Подключен на мегу DHT11, показывает [24.00/34.00], По логу сервер видит по общему опросу [24.00/34.00], вторая строчка этот порт пропускает, в веб по нулях.

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

16.11.2016 14:42:21 localhost <= 192.168.1.14:80 HTTP OFF;24.00/34.00;OFF;…..
16.11.2016 14:42:21 MG1?0=0&2=0…..
По 1-wire:
Как прочитать данные с DS9097-подобного USB датчика, или как получить данные с OWFS сервера локального или удаленного?

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 16 ноя 2016, 19:10

Alex_Jet писал(а):To intrahouse. А на сколько долго (без сбоев) работает ваша система на RP PI? В первую очередь интересует живучесть MicroSD в RP PI с БД в виде json. Знаю что SQL и flash-память (SD карты) не совместимы друг с другом из-за "тупого" контроллера flash-памяти - каждая запись значения в SQL проходит по одной и той же ячейке flash-памяти, в итоге она быстро умирает. Поэтому насколько критична связка json - flash-память?
Немного статистики по опыту эксплуатации системы.
Системы на серверах с Compact Flash - работают начиная с 2011 года
Системы на Odroid с emmc - работают с 2014 года
Системы на Rapberry Pi с microSD - работают чуть больше 1,5 лет. Поэтому пока оценивать рано.

Насколько критична связка json - flash-память? Ответить не могу. Но немного по принципу работы системы.

В базу данных (mysql) записываются только те значения которые определены в разделе ProjectManager/Система/Аналитика/Фиксация данных
Если там ничего нет, соответственно ничего и не записывается.
Текущие состояния устройств хранятся в ОЗУ и пишутся в файл на flash не чаще чем раз в 30 секунд и только в случае изменения.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 16 ноя 2016, 19:55

To clark2
Для ответа нам нужно обратиться к экспертам по MegaD, т.к. у нас девайса нет, плагин тестировали на программном эмуляторе, который сделали по описанию протокола.
Еще раз скажу, это тестовый вариант, который реализует не все возможности.

> Ситуация 1: Из сервера на меге включены некоторые порты, на меге что-то меняем, сохраняем, мега ребутится – сервер не видит до общего опроса.
MegaD посылает на сервер что-то при перезагрузке?

> Ситуация 2: Из сервера на меге включены некоторые порты, на меге напрямую через web переключаем порт – сервер не видит до общего опроса.
MegaD посылает на сервер что-то при переключении портов?

> Ситуация 3:
>На меге подключен ADC (освещенность). Сервер видит изменения в интервале общего опроса.
>Если надо опрашивать чаще, менять интервал общего опроса или как-то настроить канал по другому?

В документации: "В соответствии с внутренними настройками, устройство отправляет на сервер информацию об активном значении АЦП. Подробнее о конфигурировании АЦП описано выше...." http://[IP-адрес сервера]/[имя скрипта]?pt=[номер порта]&v=[значение АЦП]

Т.е. в IntraHouse настроить входной запрос: Req: /megad?pt=X&v=* Set state: X=%v%
И, возможно, как-то сконфигурировать порт на мега?

> Ситуация 4:
>На меге замыкаем кратковременно вход, настроено выход на команду 1 (Set state ON&ON). Мега отработала - сервер увидел.
> На меге замыкаем кратковременно вход, настроено выход на команду 2 (переключение). Мега отработала - сервер увидел ON, как серверу увидеть при повторном замыкании входа OFF.

Команду 2 (переключение) добавим в "Set state" в следующем релизе, сейчас этого нет.


> Подключен на мегу DS18b20, показывает [19.37], По логу сервер видит [19.37], в базу пишет [19] без [.37], выводит в веб целое число.

В настройках по кнопке "Железо" есть параметр "Результат: число цифр после запятой" - поставить 2.

>Подключен на мегу DHT11, показывает [24.00/34.00], По логу сервер видит по общему опросу [24.00/34.00], вторая строчка этот порт пропускает, в веб по нулях.
Да, это пока не реализовано (


>Как прочитать данные с DS9097-подобного USB датчика
У нас есть плагин для 1-Wire протестированный с DS9490. Его в стандартной поставке для RPI нет, можно взять в IntraHouse Shop, он бесплатный.

Victor_S
Сообщения: 106
Зарегистрирован: 09 дек 2014, 16:57

Re: Сервер умного дома

Сообщение Victor_S » 16 ноя 2016, 20:44

2intrahouse, нужно всем дружно просить Андрея наконец-то(вроде разработка под 328-ю Мегу закрыта) полностью описать API хотя бы на данный контроллер. Иначе у всех будут проблемы...:( Это касается и Вашей системы, и Мажордомо, и Брокера и собственных разработок пользователей. Просто половина возможностей в API не описана...:(

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 17 ноя 2016, 09:42

Да, как я говорил ранее, Андрею видимо не хватает времени на обновление API и страничек его сайта.

Отвечу по нескольким ситуациям:
Ситуация 1 - при старте устройство однократно передает на сервер параметр "st=1" (было добавлено в прошивке 10.01.2016 ver 3.38). При приеме этого параметра сервер должен делать опрос всех портов MegaD.
Ситуация 2 - не вижу смыла из веба MegaD переключать порты, когда это можно делать с сервера!!! Если это так необходимо, то делайте опрос раз в секунду и грузите сетку ненужными данными. Согласен с Андреем, что "трапы" о переключении портов лишены смысла.
Ситуация 3 - считаю, что необходимо сделать индивидуальный опрос для каждого порта в отдельности. Например, у меня есть скрипт для отопления, который опрашивает нужные порты раз в 1 минуту, есть общий скрипт, который опрашивает датчики раз в 5 минут, а еще есть скрипт для опроса вялотекущих событий (освещенность), который опрашивает датчик 1 раз в 10 минут.
intrahouse писал(а):Немного статистики по опыту эксплуатации системы.
Системы на серверах с Compact Flash - работают начиная с 2011 года
Системы на Odroid с emmc - работают с 2014 года
Системы на Rapberry Pi с microSD - работают чуть больше 1,5 лет. Поэтому пока оценивать рано.
Статистика конечно хорошо! У меня Rapberry Pi2 с microSDHC (SanDisk Ultra 16GB) проработала примерно 4 месяца - стали исчезать файлы...после ребута одноплатник не запустился.
Какую microSD используете?
intrahouse писал(а):Но немного по принципу работы системы.
В базу данных (mysql) записываются только те значения которые определены в разделе ProjectManager/Система/Аналитика/Фиксация данных
Если там ничего нет, соответственно ничего и не записывается.
Текущие состояния устройств хранятся в ОЗУ и пишутся в файл на flash не чаще чем раз в 30 секунд и только в случае изменения.
То есть все же в вашей системе mysql используется? В описании (первая страница темы) Вы пишете что данные хранятся в формате json. Я так понял, что это не sql. Поскольку в SQL, JSON и подобном совсем не разбираюсь, проясните плиз. В demo от Андрея в БД (mysql) писал состояния от 7 датчиков раз в 5 минут, 1 датчика раз в 10 минут. Обращение же к БД делал каждую минуту (обновление состояния датчиков, состояния ключей). И флэшки хватило только на 4 месяца. Правда посыпалась все же ФС, а не сама флэшка. Очень большой вопрос - почему???
Последний раз редактировалось Alex_Jet 17 ноя 2016, 14:23, всего редактировалось 1 раз.

xsash
Сообщения: 239
Зарегистрирован: 08 авг 2016, 12:27

Re: Сервер умного дома

Сообщение xsash » 17 ноя 2016, 10:06

sql (mysql, mssql) - это база данных (как тетрадь, блокнот)
json - это формат данных, массив (просто формат КАК пишем/храним данные)

пример из вики

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

{
   "firstName": "Иван",
   "lastName": "Иванов",
   "address": {
       "streetAddress": "Московское ш., 101, кв.101",
       "city": "Ленинград",
       "postalCode": 101101
   },
   "phoneNumbers": [
       "812 123-1234",
       "916 123-4567"
   ]
}
эти данные можно хранить хоть в БД, хоть в txt файле...

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 17 ноя 2016, 10:40

xsash писал(а):...эти данные можно хранить хоть в БД, хоть в txt файле...
На данный момент мне не понятно как хранятся данные в intrahouse?
Вот в demo для меня все понятно - сделал вывод что при использовании RP и сайт и sql надо выносить на внешний накопитель (HDD, SSD).
В образе вашей системы, надеюсь, это возможно реализовать? Root мне будет доступен чтобы в корень добавить новый раздел, примонтировать к нему диск и изменить конфиги web-сервера и mysql???
Последний раз редактировалось Alex_Jet 17 ноя 2016, 14:30, всего редактировалось 1 раз.

clark2
Сообщения: 67
Зарегистрирован: 11 авг 2012, 00:17
Откуда: Kiev region

Re: Сервер умного дома

Сообщение clark2 » 17 ноя 2016, 13:28

intrahouse писал(а):To clark2
Еще раз скажу, это тестовый вариант, который реализует не все возможности.
Так я и тестирую.
> Ситуация 1: Из сервера на меге включены некоторые порты, на меге что-то меняем, сохраняем, мега ребутится – сервер не видит до общего опроса.
Ситуацию 2 исключаем з ненадобностью.
MegaD посылает на сервер что-то при перезагрузке?
Да, как уже писалось выше, посылает:
MG1.log

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

17.11.2016 10:32:29 192.168.1.14 => localhost:8081 HTTP GET /megad.php?st=1
17.11.2016 10:32:29 192.168.1.14 <= localhost:8081
> Ситуация 3:
>На меге подключен ADC (освещенность). Сервер видит изменения в интервале общего опроса.
>Если надо опрашивать чаще, менять интервал общего опроса или как-то настроить канал по другому?
В документации: "В соответствии с внутренними настройками, устройство отправляет на сервер информацию об активном значении АЦП. Подробнее о конфигурировании АЦП описано выше...." http://[IP-адрес сервера]/[имя скрипта]?pt=[номер порта]&v=[значение АЦП]
Т.е. в IntraHouse настроить входной запрос: Req: /megad?pt=X&v=* Set state: X=%v%
И, возможно, как-то сконфигурировать порт на мега?
Не разобрался.
Поддержу предложение по индивидуальному опросу для каждого порта в отдельности.
> Ситуация 4:
>На меге замыкаем кратковременно вход, настроено выход на команду 1 (Set state ON&ON). Мега отработала - сервер увидел.
> На меге замыкаем кратковременно вход, настроено выход на команду 2 (переключение). Мега отработала - сервер увидел ON, как серверу увидеть при повторном замыкании входа OFF.
Команду 2 (переключение) добавим в "Set state" в следующем релизе, сейчас этого нет.
Ждем.
> Подключен на мегу DS18b20, показывает [19.37], По логу сервер видит [19.37], в базу пишет [19] без [.37], выводит в веб целое число.
В настройках по кнопке "Железо" есть параметр "Результат: число цифр после запятой" - поставить 2.
Стоит сразу, видел. После запятой - у мега точка разделитель. В базу пишет целое число.
>Подключен на мегу DHT11, показывает [24.00/34.00], По логу сервер видит по общему опросу [24.00/34.00], вторая строчка этот порт пропускает, в веб по нулях.
Да, это пока не реализовано (
Ждем.
>Как прочитать данные с DS9097-подобного USB датчика
У нас есть плагин для 1-Wire протестированный с DS9490. Его в стандартной поставке для RPI нет, можно взять в IntraHouse Shop, он бесплатный.
Плагин видел, установлен сразу. Ну нету у меня DS9490. Есть DS9097-подобный, который видится системой, видится OWFS.
Protocol OWU:

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

17.11.2016 10:59:55 Run ./units/owu74 OWU
17.11.2016 10:59:55 ./units/owu74: invalid option -- ‘k’
17.11.2016 10:59:55 Only params “-n”, “-d” and “-c” are correct!
17.11.2016 10:59:56 |--> Exit with code MODULE_ERR_ADAPTER_NO_CONNECT
17.11.2016 11:00:01 Exit with code 2
17.11.2016 11:00:01 STDERR: ./units/owu74: invalid option -- ‘k’
17.11.2016 11:00:01
PS На uptime 11:23:19 заметил, что не пишет лог ./base/MG1.log
Все остальное работало.
После перезагрузки не повторилось.
Последний раз редактировалось clark2 17 ноя 2016, 15:29, всего редактировалось 1 раз.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 17 ноя 2016, 14:26

clark2 писал(а):
> Ситуация 1: Из сервера на меге включены некоторые порты, на меге что-то меняем, сохраняем, мега ребутится – сервер не видит до общего опроса.
> Ситуация 2: Из сервера на меге включены некоторые порты, на меге напрямую через web переключаем порт – сервер не видит до общего опроса.
MegaD посылает на сервер что-то при переключении портов?
Да, как уже писалось выше, посылает:
MG1.log

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

17.11.2016 10:32:29 192.168.1.14 => localhost:8081 HTTP GET /megad.php?st=1
17.11.2016 10:32:29 192.168.1.14 <= localhost:8081
MegaD по определению ее автора ничего не посылает при переключении своих портов. Этот лог говорит о том, что MegaD стартовала.

clark2
Сообщения: 67
Зарегистрирован: 11 авг 2012, 00:17
Откуда: Kiev region

Re: Сервер умного дома

Сообщение clark2 » 17 ноя 2016, 15:31

Спасибо за поправку.
Исправил.
Ситуацию 2 исключаем з ненадобностью.

При рестарте мега, я думаю, нужно чтобы сервер ее опросил и выставил порты по состоянию как на сервере.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 17 ноя 2016, 19:05

Alex_Jet писал(а):Какую microSD используете?
Обычно Kingston или Transcend
Alex_Jet писал(а):На данный момент мне не понятно как хранятся данные в intrahouse?
Условно данные в системе intraHouse можно разделить на:
1. Настройки, параметры проекта (все, что вы настраиваете в ProjectManager) - хранятся в файлах .json
2. Текущие данные устройств - оперативная работа идет в ОЗУ, слепок на случай перезагрузки - в файлах .json
3. Журнал событий, логи - текстовые файлы
4. Т.н. исторические данные - накопление данных для последующего просмотра на графиках - пишется в MySQL.
Это опционально, если графики не нужны, то и MySQL не нужен.
Естественно, MySQL можно поставить куда угодно, система это не регулирует.

Файлы первых трех пунктов (все, что относится к конкретному проекту) хранятся в папке /opt/intrahouse/base.
/opt/intrahouse/base/jbase - настройки;
/opt/intrahouse/base/plans - планы;
/opt/intrahouse/base/scenbase - сценарии;
...

Эти папки (или в целом папку base) можно вынести на любой носитель, правда интерактивной настройки пока нет.
Пути надо будет прописать в файле server/ih.json

По остальным вопросам отвечу позже .

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 18 ноя 2016, 09:46

Поскольку ФС на флэшке умерла, а с ней - ОС, то решил развернуть образ intrahouse на RP Pi2.

Немного потестировал, поэтому есть некоторые замечания/рекомендации:
1. Сходу в intrahouse не нашел возможности смены, точнее удаления ip сервера и удалил его в системе, благо пароли и явки в Pi2 стандартные. У меня IP раздаются статическими правилами DHCP маршрутизатора. Может в технологических системах это и не правильно - но есть ли возможность добавить настройки типа "Получение IP адреса по DHCP"?
2. Добавление Плагин-Канал-Устройства не интуитивное. Вероятно надо было "Каналы" обозвать "Оборудование" и добавление плагинов сделать в "Оборудовании"
3. Не отображаются единицы измерения в устройствах на планах
4. Нельзя выбрать размер текста для отображения в иконках устройств на планах
5. Нет оптимизации под устройства на основе Android - на современном планшете Lenovo Tab3 система работает тяжело... слишком "плавно", на весь экран открывается с дефектами (после reload сработало нормально), окна настройки открываются без учета размера рабочего пространства и т.д. На Ipad и Windows (64-bit, 8Gb ROM) проблем не заметил, хотя на Ipad нельзя развернуть на весь экран.
6. Темы оформления и настройки веб-интерфейса видимо храняться в cookie. Поскольку все везде пришлось настраивать заного. В установках по умолчанию некоторым бы пригодилась настройка "Отображать веб-интерфейс по умолчанию". Правда тогда эти настройки надо хранить на сервере вдобавок.

Пока лишь отобразил два DS18B20 и АЦП. Вначале очень не хватает пояснений какой тип датчиков выбирать. Например, DS18B20 - это цифровой датчик (binary), однако плагин MegaD его значение парсит из html...в итоге надо выбирать аналоговый датчик.

Еще вопрос - как правильно остановить ih, а потом запустить снова? Хочу перенести его настройки на внешний носитель и SQL тоже.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 18 ноя 2016, 10:01

intrahouse писал(а):...Эти папки (или в целом папку base) можно вынести на любой носитель, правда интерактивной настройки пока нет.
Пути надо будет прописать в файле server/ih.json

По остальным вопросам отвечу позже .
Спасибо что подсказали. Разберусь. Однако - как правильно остановить ih, а потом запустить снова? Как раз на момент переноса его настроек и настроек SQL на внешний носитель. SQL переносится довольно легко:

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

1. Остановить MySQL сервис
service mysql stop
2. Скопировать рекурсивно MySQL данные в место назначения. Обычно база храниться по пути /var/lib/mysql
cp -r /var/lib/mysql /destination
3. Зайти в новое место назначения данных MySQL и удалить log-файлы. Обычно там их два.
rm /destination/ib_log*
4. Конфигурационный файл MySQL находится тут - /etc/my.cnf. Если его нет, то можно скопировать пример файла конфигурации из /usr/share/mysql/. Там будет несколько файлов на выбор с именами типа my-xxx.cnf. Скопировать любой файл в /etc и переименовать в my.cnf.
5. Отредактировать конфигурационный файл - в секции mysqld найти ключ datadir (добавить если отсутствует) и изменить путь на новое место назначение данных.
datadir=/destination/ 
6. Запустить сервис снова
service mysql start 
Немного потестировал iH, поэтому есть некоторые замечания/рекомендации:
1. Сходу в intrahouse не нашел возможности смены, точнее удаления ip сервера и удалил его в системе, благо пароли и явки в Pi2 стандартные. У меня IP раздаются статическими правилами DHCP маршрутизатора. Может в технологических системах это и не правильно - но есть ли возможность добавить настройки типа "Получение IP адреса по DHCP"?
2. Добавление Плагин-Канал-Устройства не интуитивное. Вероятно надо было "Каналы" обозвать "Оборудование" и добавление плагинов сделать в "Оборудовании". То есть добавляем новую железку (плагин железки), делаем описание каналов этой железки и переходим к созданию виртуальных устройств, к которым привязываем созданные ранее каналы.
3. Не отображаются единицы измерения в устройствах на планах
4. Нельзя выбрать размер текста для отображения в иконках устройств на планах. Кстати, для того же DHT22 (температура/влажность) надо что-то придумать - чтобы можно было в иконке вывести температуру и влажность (привел скрин ниже).
5. Нет оптимизации под устройства на основе Android - на современном планшете Lenovo Tab3 8" система работает тяжело... слишком "плавно", на весь экран открывается с дефектами (после reload сработало нормально), окна настройки открываются без учета размера рабочего пространства (скрин ниже) и т.д. На Ipad и Windows (64-bit, 8Gb ROM) проблем не заметил, хотя на Ipad нельзя развернуть на весь экран (просто нет такой кнопки).
6. Темы оформления и настройки веб-интерфейса видимо храняться в cookie. Поскольку все везде пришлось настраивать заново. В установках по умолчанию некоторым бы пригодилась настройка "Отображать веб-интерфейс по умолчанию". Правда тогда эти настройки надо хранить на сервере вдобавок.
7. В настройках тем не хватает настроек цвета рамок устройств в отдельности от настроек текста. В разных иконках текст отображается по разному (скрин ниже).

Пока лишь отобразил два DS18B20 и АЦП. Вначале очень не хватает пояснений какой тип датчиков выбирать. Например, DS18B20 - это цифровой датчик (binary), однако плагин MegaD его значение парсит из html...в итоге надо выбирать аналоговый датчик! И так получается со всеми датчиками, подключенными к MegaD.
Не понятное окно при нажатии Подключение.png
Не понятное окно при нажатии Подключение.png (89.51 КБ) 3841 просмотр
Отображение настроек цвета на Android.png
Отображение настроек цвета на Android.png (129.3 КБ) 3841 просмотр
Не одинаковое отображение текста в иконках.jpg
Не одинаковое отображение текста в иконках.jpg (32 КБ) 3840 просмотров
Показания датчиков.jpg
Показания датчиков.jpg (82.2 КБ) 3840 просмотров
Последний раз редактировалось Alex_Jet 18 ноя 2016, 11:17, всего редактировалось 2 раза.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 18 ноя 2016, 11:02

Alex_Jet писал(а): Немного потестировал iH, поэтому есть некоторые замечания/рекомендации:
Замечания/рекомендации приняты. Учтем в следующих версиях.
Alex_Jet писал(а): на Ipad нельзя развернуть на весь экран
Можно. Надо на айпаде сохранить открытый в Safari интерфейс на рабочий стол. При нажатии сохраненной иконки Safary открывает интерфейс на полный экран.
Alex_Jet писал(а): Темы оформления и настройки веб-интерфейса видимо храняться в cookie. Поскольку все везде пришлось настраивать заного. В установках по умолчанию некоторым бы пригодилась настройка "Отображать веб-интерфейс по умолчанию". Правда тогда эти настройки надо хранить на сервере вдобавок.
Темы хранятся на сервере. В cookie хранится имя темы. В настройках клиента надо только выбрать тему и она в дальнейшем будет загружаться по умолчанию.
tema1.jpg
tema1.jpg (71.96 КБ) 3845 просмотров
Alex_Jet писал(а): Еще вопрос - как правильно остановить ih, а потом запустить снова? Хочу перенести его настройки на внешний носитель и SQL тоже.
Остановить/запустить сервис intrahouse можно терминальной командами sudo service intrahouse start и sudo service intrahouse stop
Но в принципе для переноса лучше использовать команды сохранения/восстановления данных. Таким способом сохраняется/восстанавливается все кроме базы mysql с архивными данными.
tema2.jpg
tema2.jpg (77.42 КБ) 3845 просмотров
Alex_Jet писал(а): Вначале очень не хватает пояснений какой тип датчиков выбирать. Например, DS18B20 - это цифровой датчик (binary), однако плагин MegaD его значение парсит из html...в итоге надо выбирать аналоговый датчик.
Бинарный датчик, это дискретный датчик с сухими контактами и т.п. Но вы правы на счет пояснений.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 18 ноя 2016, 11:20

intrahouse писал(а):Темы хранятся на сервере. В cookie хранится имя темы. В настройках клиента надо только выбрать тему и она в дальнейшем будет загружаться по умолчанию.
Тогда выходит, что нужна настройка "Тема по умолчанию", "Язык по умолчанию". Хотя ведь возможность поворачивания, масштабирования планов тоже надо включать/отключать на каждом клиенте - то есть эта информация также храниться в cookie! Я просто зашел на сервер с 4-х устройств и в каждом пришлось все заново настраивать. Обычно сейчас в семье из 4-х человек минимум 6-10 устройств, не каждый из членов семьи гик чтобы настраивать отображение - поэтому администратор системы 1 раз должен настроить как нужно и все будут этим пользоваться.
intrahouse писал(а):Бинарный датчик, это дискретный датчик с сухими контактами и т.п.
Тогда если опрашиваем 1-wire RP, то датчик должен быть digital, то есть цифровой?
intrahouse писал(а):Можно. Надо на айпаде сохранить открытый в Safari интерфейс на рабочий стол. При нажатии сохраненной иконки Safary открывает интерфейс на полный экран.
На Android, по крайней мере 6.0 - это тоже работает! Открывается как приложение на весь экран сразу.

Спасибо за все ответы. В свое предыдущее сообщение добавил недостающие скриншоты.
Последний раз редактировалось Alex_Jet 18 ноя 2016, 11:34, всего редактировалось 1 раз.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 18 ноя 2016, 11:27

Alex_Jet писал(а):
intrahouse писал(а):Темы хранятся на сервере. В cookie хранится имя темы. В настройках клиента надо только выбрать тему и она в дальнейшем будет загружаться по умолчанию.
Тогда выходит, что нужна настройка "Тема по умолчанию". Хотя ведь возможность поворачивания, масштабирования планов тоже надо включать/отключать на каждом клиенте - то есть эта информация также храниться в cookie!

Спасибо за все ответы. В свое предыдущее сообщение добавил недостающие скриншоты.
Да, это сделано специально. Разные устройства обычно требуют разные настройки. Например на одном этаже планшет весит на северной стене , на другом на южной. Соответственно и план должен быть развернут в нужную сторону. И тема. Жене нравится одна, мужу другая. Соответственно у каждого своя тема по умолчанию.
Поправка. Локальные настройки на клиенте (терминале) храняться не в cookie а в localStorage

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 18 ноя 2016, 11:37

ОК, понятно из каких соображений. Если будет возможность сделайте в будущем настройки "Тема по умолчанию", "Язык по умолчанию":)

Ответить