Неглупый Дом-2

Неглупый дом-2 (55.33КиБ)

Я чуть ниже писал про свой «неглупый дом», сейчас добрался до дома и допрограммировал. Теперь немного о том как всё устроено и что добавилось.

Во-первых, появилась возможность смотреть что происходит в прихожей. Там теперь стоит Тошиба АйСи-100, смартбук, на котором сейчас Лубунту — он забирает из интернета команды управления и отправляет каждую минуту обратно скриншот со своей камеры следующей командой:

streamer -c /dev/video0 -b 2 -o /dev/stdout -f jpeg 2>&- | curl -F p=@- http://example.org/home/send-picture.php >&- 2>&-

Во-вторых, появилась возможность настраивать температуру на кондиционере, команды складываются в файл на сервере, а упомянутый смартбук время от времени забирает их оттуда по «крону» несложным скриптом:

for line in $(curl -q http://example.org/home/getcommands.php 2>&-); do
    if [[ "$line" =~ ^[a-z0-9-]+$ ]]; then
        cmd=$(awk "/$line/ {print \$2; exit}" air-hall.txt)
    else
        cmd=
    fi

    if [ -n "$cmd" ]; then
       { echo "$cmd"; sleep 1; } | /usr/bin/telnet 10.0.1.13 4998 2>&- >&-
    fi
done

В файле air-hall.txt находятся соответствия команд подаваемых сервером, командам кондиционера. Очень удачно совпало, что на каждую температуру у моего кондиционера есть отдельная команда — я могу точно выставить ту температуру, которую хочу.

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

На следующий день, в субботу переписал код с тяп-ляп на простенькие модули.

Теперь добавить ещё одну комнату можно простым добавлением файла, а новый датчик — редактированием шаблона и написанием адаптера. Так же теперь нет нужны самостоятельно обновлять страницу, чтобы получить новые данные — всё оформлено как офлайн-приложение, с подгрузкой актуального через аякс.

Поделиться
Отправить
2013  
2 комментария
3

%Шутка про Дом-2%

Евгений Степанищев (bolknote.ru)

Комментарий для 3:

В заголовке она уже есть.

Популярное