Неглупый Дом-2
Я чуть ниже писал про свой «неглупый дом», сейчас добрался до дома и допрограммировал. Теперь немного о том как всё устроено и что добавилось.
Во-первых, появилась возможность смотреть что происходит в прихожей. Там теперь стоит Тошиба АйСи-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 (это статический АйПи) находится небольшая коробочка, преобразующая поданные команды в инфракрасный поток, излучатель коробочки лежит как раз под кондиционером.
На следующий день, в субботу переписал код с тяп-ляп на простенькие модули.
Теперь добавить ещё одну комнату можно простым добавлением файла, а новый датчик — редактированием шаблона и написанием адаптера. Так же теперь нет нужны самостоятельно обновлять страницу, чтобы получить новые данные — всё оформлено как офлайн-приложение, с подгрузкой актуального через аякс.
%Шутка про Дом-2%
Комментарий для 3:
В заголовке она уже есть.