LINUX.ORG.RU
ФорумTalks

Умный дом. Начало. Мысли и обмен мнениями.

 , ,


3

2

Планов тут давно громадье. Но начинать надо с малого и реально актуального. Итак, текущая задача.

Часто, в 7:30 утра, выскакивая спросонья для отведения дочки в школу, что-нибудь забываем. То она телефон забудет с зарядки забрать, то сменную обувь в портфель не положит. Отсюда — простая стартовая идея.

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

Частное стартовое решение.

— Датчик на основе популярного PIR-сенсора HC-SR501 и Wi-Fi-мкироконтроллера ESP8266. Цена вопроса рублей 300-400 в зависимости от организации питания этого дела.

— Bluetooth-колонка беспроводная для воспроизведения звука прямо в прихожей. Цена вопроса рубле 400-800, в зависимости от типа и качества (надо подумать и заказать, сенсоры-то и ESP8266 у меня в ассортименте, колонок пока нет)

— Домашний комп на Linux для анализа обстановки и реакции. Нужно реализовать синтез речи (Google API и/или Яндекс API — надо сравнить как качество, так и условия использования). Можно дополнить всяким прогнозом погоды с внешних сайтов и выдать советы.

Сама по себе задача простая и примитивная, но интересно рассматривать её как часть большой задачи реализации крупного модульного умного дома.

Например, модули системы должны полностью автономные и взаимозаменяемые. С пакетным софтом по зависимостям. Скажем, для кухни вместо Bluetooth-колонок я могу захотеть использовать висящий на стене планшет под Android'ом. С точки зрения логической части системы разницы быть не должно — и то способ воспроизведения звука, и другое. Переключение должно быть прозрачным. Аналогично с сенсорами. Не важно должно быть как они устроены и на каком протоколе передают данные. Должно быть некое стандартное событие.

Наверное, тут надо использовать что-то типа MQTT. При чём именно этот протокол интересен тем, что позволяет «из коробки» связываться со многими решениями, типа той же NodeMCU на ESP8266, подключать внешние сайты с его поддержкой и т.п. Придётся только описать стандартны на сообщения.

Синтез речи лучше дополнить генератором вариативной речи. Идеи по такой разметке были давно. Даже тему заводил на ЛОРе лет 10 назад ещё в рамках L2j-сервера, кажется, но навскидку не нашёл. Это чтобы фразы дома не были под копирку.

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

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

Кто что дополнит? :)

★★★★★

Ответ на: комментарий от KRoN73

_Постоянно_ звучат _ненужные тебе_ остановки.

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

Deleted
()
Ответ на: комментарий от KRoN73

ну я думал о емкостных - они вроде умеют вычислять что в комнате есть человек, но все это неприятно если систему заглючит 8) надо возле душа ставить ручное управление 8)

Deleted
()
Ответ на: комментарий от KRoN73

То она телефон забудет с зарядки забрать, то сменную обувь в портфель не положит.

Ребёнок счастлив будет :D Современные дети прутся от такой компьютеризации.

То есть вместо того чтоб воспитывать, собираешься баловать? =)

cPunk ★★
()
Ответ на: комментарий от Deleted

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

Ну, тут х.з. тогда. У меня всё не так запущено :D

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от cPunk

То есть вместо того чтоб воспитывать, собираешься баловать? =)

У неё другая нагрузка, чем в нашем детстве :) И загрузка, кстати, офигенно высокая. Даже на мультики по ТВ времени хватает только на каникулах. На выходных — не на каждых. И это — в первом классе.

Я, помню, в первом классе с улицы не вылезал. А тут — в 7:00 подъём, 7:30 выход в школу, в ~17:00 домой, покушать, поболтать, немного поиграть, уже 19:00 — уроки. В 21:00 подготовка ко сну, 22:00 — сон. Правда, пару дней в неделю домой в ~14:00 приходит, тогда немного свободного времени лишнего бывает :) А ещё то олимпиады какие-то в Интернете, то задания дополнительные. Родителям, кстати, тоже нагрузка. То с дочкой на выходных в музей какой-нибудь по олимпиаде задания выполнять, то кормушку для птиц мастерить, то фотографировать что-то, печатать потом, на конкурсы какие-то... Сегодня, вот, ходил в школу лыжи перед первым уроком у приходящих первоклашек забирать и в отведённом помещении складировать. Потом, на уроке физкультуры, уже другая родительница эти лыжи раздавала детям... В общем, некоторые родители ропщут. Мы, правда, нормально реагируем. Правда, я иногда нервничаю, когда выясняется, что очередные фотки нужно вот уже завтра, а узнаём про это сегодня вечером. В лабе уже не напечатать, приходится на струйнике. А он паршивенький и дорого выходит по себестоимости :D

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от cPunk

Продлёнка + кормёжка. Обычное дело. Даже 30 лет назад так было.

imul ★★★★★
()
Ответ на: комментарий от cPunk

Школа в другом городе?

Нет, просто это Москва :) Школа от дома в получасе на троллейбусе.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

Этот метод перестаёт работать на второй день после вывешивания :D

На голос который что-то бубнит пока ты обуваешься ты тоже быстро забьешь.

drull ★☆☆☆
()
Ответ на: комментарий от Deleted

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

С ключами-то все просто: без них дверь за собой не закроешь.

drull ★☆☆☆
()
Ответ на: комментарий от KRoN73

Нет, просто это Москва :)

Жесть какая. Это сколько же уроков выходит? Не жалко ребенка?

drull ★☆☆☆
()
Ответ на: комментарий от drull

С ключами-то все просто: без них дверь за собой не закроешь.

1) закроешь

2) ключи бывают не от тех дверей

Deleted
()
Ответ на: комментарий от Deleted

ключи бывают не от тех дверей

Вспомнилось как я возвращаясь с дня рождения забрал у друзей ключи, а свои оставил им. Каково же было мое удивление, когда я в 7 утра, проехав 20км до дома, обнаружил что не могу открыть дверь и вынужден ехать назад :)

drull ★☆☆☆
()
Ответ на: комментарий от KRoN73

Деревянные, ещё советские. И форточка всегда открыта :)

Ну вот, значит, поставь нормальные финские. И вентиляцию почини — умный дом надо начинать делать с главного :)

Igron ★★★★★
()

Я бы экранчик с тачем повесил на стенку, и пока чеклист не пройден осознанно, замок на двери бы не разблокировал :)

Ну это так потные фантазии, зачитывание мне кажется неэффективным, неудобным и раздражающим. Скорее всего и слушать не будет никто, по быстрому одеться и выбежать :)

Midael ★★★★★
()
Последнее исправление: Midael (всего исправлений: 1)
Ответ на: комментарий от drull

С ключами-то все просто: без них дверь за собой не закроешь.

Не факт, есть такой класс дверных замков как захлопывающиеся замки.

BlackJack
()
Ответ на: комментарий от BlackJack

От них массово отказываются. Ненадежные, легко вскрываются, есть нехилый риск остаться за дверью в трусах и тапочках, просто выйдя в подъезд покурить/выкинуть мусор/проверить почту.

drull ★☆☆☆
()

Пройдет год, а Крон так ничего и не сделает из описанного. Зато похвастался. Как всегда, да.

r_a_vic
()

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

Reedych ★☆
()
Ответ на: комментарий от Reedych

Так что надо написать синтезатор и все

Как пользоваться гугловским tts бесплатно из cli я так и не понял. А вот с Яндексом — всё просто. Дёргаешь просто ссылку с текстом, параметрами и API-key и получаешь звуковой файл. На выбор четыре голоса и разная манера произношения. По качеству с гугловым детально пока не сравнивал, но на простых тестах звучит вполне сносно, куда лучше старых SVOX'ов и, тем более, опенсорсных festival/espeak.

В общем, все компоненты работают. Датчик движения вчера тоже тестировал, пашет отлично.

Теперь дождусь заказанной китайской BT-колонки (не орать же на весь дом с основных колонок, тем более, звук в них обычно отключен, чтобы не мешали мелкому спать) и первых два блока будут в строю :)

...

Вот что сейчас особенно интересно — это функции распознавания речи. С самим распознаванием через тот же Яндекс вопросов нет, непонятно, можно ли какой-то готовой утилитой парсить непрерывный звуковой поток с микрофона, игнорировать тишину, а периоды шума отправлять наружу в виде готовых файлов. Дальше было бы чисто делом техники распознать и обработать. А тут, если готового не найду, придётся писать самому, видно. А со звуком в Linux никогда не работал.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от drull

На голос который что-то бубнит пока ты обуваешься ты тоже быстро забьешь.

Выше раза три уже писал, почему так не будет :)

...

Но придумал решение для тех, кто, действительно, может игнорировать бубнёж, хотя и технически уже сложнее — можно просто звать с неравным интервалом адресата по имени, пока он не ответит, что слушает :)

Короче, нужна утилита, что будет разбивать непрерывный поток с микрофона на файлы :)

KRoN73 ★★★★★
() автор топика

Тьфу, блин. Yandex Cloud бесплатный только первый месяц. Потом около 400 рублей за 1000 запросов.

Вот Mobile SDK бесплатный до 10000 запросов в месяц. Видно, придётся как-то его приспосабливать :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Reedych

Ставь пульсаудио

Оно каким-то боком умеет нарезать звуковой поток на файлы?

мелкому

А она сама в продленку хочет?

Мелкий — это сынишка. 8 месяцев :) Дочке-то тишина в динамиках уже давно не актуальна.

А дочка на продлёнку не ходит. 4-5 обычных уроков + 1 дополнительный кружок в день. Да, сама хочет. Ещё недовольна, что на все интересующие её кружки ходить не может :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от KRoN73

непонятно, можно ли какой-то готовой утилитой парсить непрерывный звуковой поток с микрофона, игнорировать тишину, а периоды шума отправлять наружу в виде готовых файлов.

Посмотри Sox: примеры и Csound.

quickquest ★★★★★
()
Ответ на: комментарий от KRoN73

Ааа, ну тогда таких я уважаю которые не водят насильно никуда детей

Reedych ★☆
()
Ответ на: комментарий от KRoN73

«люди в коридоре — сказать им текст»

Как планируется обработка исключений в виде праздников, выходных, дней болезней и т.д.?

P.S. Напомнило http://www.youtube.com/watch?v=7FGca95llXQ

Jurik_Phys ★★★★★
()
Последнее исправление: Jurik_Phys (всего исправлений: 1)
Ответ на: комментарий от Jurik_Phys

Как планируется обработка исключений в виде праздников, выходных, дней болезней и т.д.?

Естественно, всё по обычному скрипту. Думаю, достаточно два условия — интервальные наборы для фиксированных регулярных событий (будни/выходные/каникулы) и флаг «остановить утреннюю активность» (на предмет внеплановых событий — может управлять не только этим процессом).

Вообще, что касается праздников, тут было бы интересно реализовать их каким-то стандартным способом в виде общественно доступного/изменяемого компонента. Он был бы не только для этого проекта полезен.

Я планирую, по возможности, делать очень открытую и многослойную модульную систему, в чём-то даже пересекающуюся с Infonesy.

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от Jurik_Phys

P.S. Напомнило

Это, кстати, за 10 минут делается подручными материалами :)

Я делал такой прикол: LORduino

Правда, сейчас давно не работает, разобран :)

KRoN73 ★★★★★
() автор топика
3 марта 2016 г.
Ответ на: комментарий от KRoN73



Вот что сейчас особенно интересно — это функции распознавания речи. С самим распознаванием через тот же Яндекс вопросов нет, непонятно, можно ли какой-то готовой утилитой парсить непрерывный звуковой поток с микрофона, игнорировать тишину, а периоды шума отправлять наружу в виде готовых файлов. Дальше было бы чисто делом техники распознать и обработать. А тут, если готового не найду, придётся писать самому, видно. А со звуком в Linux никогда не работал.


Как результаты конкретно с этим вопросом?

LiBer ★★★
()
Ответ на: комментарий от LiBer

Как результаты конкретно с этим вопросом?

Пока не приступал к нему. Времени свободного мало. Последние пару дней занимаюсь подключением вывода звука через Bluetooth на беспроводную колонку. Офигеть, как всё криво в связке bluez5+pulseaudio. Под Gentoo вообще так ничего и не завелось, под Ubuntu сейчас выводится, но как-то криво :)

KRoN73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.