Блог компании Mail.ru Group
Умный дом
Интернет вещей
DIY или Сделай сам
Комментарии 27
0
8 бит Pic16

Ну все-таки давайте не будем сравнивать ОСРВ через GPIO и Linux через MQTT!
Хотя пример у них конечно не очень удачный получился, согласен.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
+1
Но что делать тем, кто не хочет мириться с таким состоянием, и хочет одно кольцо один интерфейс, чтобы править всеми? Конечно же, написать его самим!

Или взять Home Assistant и передавать данные по MQTT ему.
+1

А о чем? Попробовав разные системы остановился на Node RED. Если не можешь освоить систему за вечер, настройка раскидана по десятку файлов, при этом нет возможности редактирования этих файлов через удобный интерфейс, зачем оно такое надо?
В чем приемущество перед Tarantool'a перед другими системами?

0
Какие преимущества, о чем вы? Нет и не может быть преимуществ у системы, в которой логику и веб-интерфейс надо писать самим. С таким же успехом можно писать свою систему, взяв Python и sqlite какой-нибудь, ничуть не сложнее и не проще.
Это просто статья про быстрый старт с Tarantool, в качестве объекта которой была выбрана «панель» управления IoT. Я даже не думал, что кто-то воспримет это как руководство именно к созданию своей панели управления.

Tarantool — интересная штука для создания приложений, где нужна быстрая база данных. Меня он привлекает тем, что там lua — по определенным причинам мне нравится этот язык и я знаю его чуть лучше остальных. Если вы пишите серверные приложения в связке с БД, стоит рассмотреть такой вариант. Если вы раздумываете, на чем бы писать логику умного дома, то чистый тарантул я бы советовал с осторожностью, хотя бы потому, что есть куча систем(см. выше), в которых уже проделана куча работы в направлении IoT.

Другое дело, что на основе Tarantool можно писать вот такие штуки, и они уже конкурируют с другими системами управления...
Тык
0
А вот кто может предложить готовую систему для следующей задачи:
Есть (импульсный) счетчик воды (и тепла). Я прикручиваю входы импульсов на «ардуинку» или «малинку»… в общем не важно… по каждому импульсу (в моем случае это кажется 10 литров воды, что опять таки не важно) увеличиваю внутренний счетчик и публикую в топик mqtt:///data/water/hot текущее число.
Я бы хотел чтобы система могла:
1) Показать текущее значение счетчика (15 числа передать его в расчетный центр)
2) Показать как тратил воду тот или иной член семьи пока мылся-брился-похмелялся (динамика расхода за определенный период? Некий график скорости потока (л/мин, л/час), который я даже себе пока представить не могу, каким он должен быть, чтобы был наглядным)
3) Сирена и срочный звонок по телефонам (е-мейл, телеграм) если расход нестандартен (не закрытый кран и уже час вода медленно капает, выкидывая мои деньги в канализацию)

Вот честно говоря с графиками самый большой затык — чаще всего выше названные системы «глупого дома» показывают график изменения температуры. А вот первую производную взять, у меня не получилось…
Второй затык — там где получилось взять первую производную, наглядность графика какая-то ненаглядная… хотя я до сих пор не использовал систему «в бою».
Ну и третий затык — база данных… я так понимаю что в таких системах должны использоваться специализированные базы данных TSDB (time series)… во вторых данные по той же воде должны храниться с постепенным устареванием (два месяца хранить каждый импульс, полгода — не чаще одной минуты, год — не чаще одного часа, два года — данные выкидывать) — Числа устаревания взяты случайно и наверняка «знатоки» уже посчитали рекомендуемые значения, которые будут оптимальны по соотношения «размер БД»/«репрезентативность»…
Ну и хочется все это крутить на малино-подобной машинке (альтернатива — NAS-север, который по мощи не лучше малинки). Внешний хостинг возможен только в случае если у хаба «глупого дома» будет возможность «кешировать» значения в случае пропадания интернета и по возврату связи сообщать о всех новых импульсах… хотя наверно это все глупости… я же не атомную станцию проектирую…
0

У меня опыт в основном с Home Assistant, и я уверен, что на нем можно это все сделать. Я бы взял hass.io — версию для Docker. Она легко крутится на малинке и дает удобно ставить дополнения в Docker же. Собирать данные с MQTT легко. Можно сделать template sensor, который будет обрабатывать/преобразовывать входящие данные. Дополнения Influx DB + Grafana и можно делать самые разные графики. Ну и Node Red сверху для автоматизации. Я себе в Телеграм, например, шлю важные уведомления.

0
Угу, соглашаюсь с Influx DB для хранения и Grafana для красивых графиков в нетребовательных системах.
По логике — у меня профдеформация, я могу советовать либо свои системы, либо хардкор. Лучше не буду.
0
10 литров на импульс — это слишком много для домашнего счетчика

Производная берется элементарно — берете разницу между двумя значениями, делите на время между двумя этими значениями. если разница между значениями в попугаях счетчика большая — производная будет гладкая и красивая, если несколько попугаев — будет дрыгаться как «стрелка осциллографа» (тм)
0
А мне нравится Thingsboard. Ставиться локально. Раьотает отлично
0
>> Однако, вполне возможна такая ситуация, когда у нас с одного датчика приходит в одну секунду несколько измерений. А индекс уникальный. Получается, значение секунд в качестве временной метки использовать нельзя, надо брать более мелкие единицы времени. << Нет, надо другой индекс.
0
Ответил не так :/, удалить не могу ибо писал с телефона…
0
Зачем? Там можно взять наносекундные метки времени в качестве индекса. Я не могу представить себе ситуация с датчиком температуры, который шлет значения чаще, а даже если бы смог, проблемы начнутся задолго до этого, и будут явно не в индексе.
+1
В заголовке публикации заявлено «Система управления умным домом».
Никакой системы управления я в тексте не увидел.
Умного дома тоже не увидел.
Да и просто дома — тоже.

Скажите — я тупой?

ЗЫ: Если бы публикация называлась «пример использования Tarantool приложения, включая общение с внешними API, обработку и выдачу данных», или что-то в этом духе — вопроса бы не возникло.

ЗЫЗЫ: «Tarantool это noSQL база данных… для высокой производительности». Не могли бы вы привести пример для умного дома, когда нужна высокая производительность базы данных. Я наверное тупой — таких примеров не вижу, кроме «давай сделаем на коленке, в гамаке и через заднее место»
0
В заголовке публикации заявлено «Система управления умным домом».

А еще там заявлено «на коленке», что подразумевает быстрое решение, не готовое к продакшену. Система управления есть — нажимаешь кнопку, происходит действие. Можно заменить топик, и будет не писк, а управление светом, к примеру. Дальнейшее развитие системы выходит за рамки конкретно этой статьи: я хотел показать быстрый старт с тарантулом, я его показал.

«Tarantool это noSQL база данных… для высокой производительности». Не могли бы вы привести пример для умного дома, когда нужна высокая производительность базы данных.
Интересная у вас логика. Скажите, а когда вы машину покупаете, у которой на спидометре максимально 200км/ч, вы повсюду на ней с такой скоростью ездите? И когда видите в языке программирования «возможно программирование в стиле ООП», считаете, что только так и возможно писать? Почему вы считаете, что возможность = необходимость?

Ну, и давайте все-таки не вырывать слова из контекста, оригинальная цитата выглядела так:
Еще один важный фактор — Tarantool это noSQL база данных. Это означает, что вместо традиционных запросов вроде «SELECT… WHERE» вы управляете данными напрямую: пишете процедуру, которая переберет все данные (или их часть) и выдаст вам их. В версии 2.x поддержку SQL-запросов добавили, но панацеей они не являются — для высокой производительности часто важно понимать, как именно исполняется тот или иной запрос, а не отдавать это на откуп разработчикам.
Покажите, мне, пожалуйста, в каком именно предложении вместе стоят слова «база данных для высокой производительности». А то, учитывая ваши нижеследующие цитаты, таким способом из вашего комментария можно можно интересных фраз сформировать.

Скажите — я тупой?
Я наверное тупой
Я бы вас так не обвинял, но раз вы настаиваете…
-1
А еще там заявлено «на коленке», что подразумевает быстрое решение,


К «на коленке» претензий нет, в тексте это раскрывается

Система управления есть — нажимаешь кнопку, происходит действие.

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

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


Это не будет никак умным домом, это будет попищать (с плохим качеством by design) или поморгать.

Вот предыдущая публикация по умному дому habr.com/post/432538, сделанная тоже в некотором смысле на коленке, но подобных претензий к названию предъявить нельзя.
— По производительности. Как я понял. Вы обосновываете использование таратнулы ее высокой производительностью как базы данных. Но для умного дома не нужна высокая производительность базы данных. Тезис про управление данными напрямую я вообще не понимаю, применительно к заявленной задаче, «умному дому» — вот есть у вас данные с датчиков температуры в таблице, массиве или там в файле, как ими управлять? Для построения графика ничем управлять не надо. Для управления какой-нибудь задвижкой на трубе отопление никакого управления данными по температуре не надо
0
Вы обосновываете использование таратнулы ее высокой производительностью как базы данных.

Боги, вы вообще читаете что я пишу? Что в статье, что в комментариях.
В данном конкретном кейсе я не обосновываю применение тарантула его производительностью. И тем более не обосновываю применение его в УД вообще чем-либо. Если вы внимательно прочитали хотя бы начало статьи, вы бы поняли, что там говорится о том, что манипуляция данными вручную(а не SQL-запросами) позволяет в некоторых случаях достичь более высокой скорости работы по сравнению с SQL базами. Все. Я не использовал это ни в качестве аргумента для использования этого не в умном доме, ни где-либо еще, я просто рассказал факт. Если для ваших применений это аргумент — используете, радуетесь. Если не аргумент — не используете. Уверяю вас, ни я, ни разработчики от этого не расстроятся.

С моей точки зрения диалог выглядит вот так:
— Я выбрал вот этот карандаш, мне нравится что он красный, и у него на конце резинка, что позволяет стирать написанное. Я нарисовал с его помощью вот такую картинку.
— Но нам не надо стирать написанное! Нам не нужна резинка! Зачем вы врете, что для рисования картин обязательно нужна резинка на карандаше? Вы просто впариваете ненужный инструмент!!!

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

Я вот тут несколько удивился, и тоже заглянул в википедию. Нашел там следующее:
Систе́ма управле́ния — систематизированный (строго определённый) набор средств сбора сведений о подконтрольном объекте и средств воздействия на его поведение, предназначенный для достижения определённых целей.

Систематизированный набор средств есть? Тоже есть. График, кнопки, таблица. Он даже строго определенный — мы его определили в самом начале статьи, и ровно в таком же виде и сделали.
Подконтрольный объект есть? Есть. Вот, железка на столе лежит.
Сбор сведений есть? Есть. Собираем данные с датчиков температуры, показываем их пользователю.
Средства воздействия есть? Есть. Можем нажать кнопку в интерфейсе, и объект изменит свое поведение.
Определенные цели достигаются? Несомненно. Я хотел показать пример управления, я показал.

Так чем это не система управления? Хреновая? Так да, я и не спорю — в первую очередь она делалась для других целей, не стоит требовать от продукта, который показывает быстрый старт в технологии, чего-то другого. Но отказывать ему в том, что это система управления — нельзя.
У меня вот рядом на диске другой проект на тарантуле лежит такой же направленности — там там 180кб кода, отказоустойчивость, тесты, документация и все такое, там выше скриншотик был. Критику рода «что-то хреновая система получилось» по этому проекту я принимать готов. По описанному в статье — простите, нет, хотя бы потому, что я не ставил целью сделать иначе.

Это не будет никак умным домом, это будет попищать (с плохим качеством by design) или поморгать.

Т.е. по вашему мнению, невозможность играть светом мелодию(!) — это «моргать с плохим качеством»? Иначе я не очень понимаю, как у вас в голове связаны утверждения «плохо играется мелодия» и «плохо управляется светом». Вам часто необходимо управлять светом с допуском в районе 10-100мс?

Вот предыдущая публикация по умному дому habr.com/post/432538, сделанная тоже в некотором смысле на коленке, но подобных претензий к названию предъявить нельзя.

Если бы вы читали(впрочем, наверное, еще раз вам говорить это бесполезно) статьи и комментарии, которые вы обсуждаете, то увидели бы мой комментарий к той статье, в котором как раз и выражается претензия к заголовку и статье.
-1
Систематизированный набор средств есть? Тоже есть. График, кнопки, таблица.


Напомните, когда средсва гуя стали средствами управления, а то я тупой, не помню

Подконтрольный объект есть? Есть. Вот, железка на столе лежит.

В «умном доме» подконтрольный объект — дом, а не железка
0
Я начинаю думать, что к выбору ника и аватарки вы подходили обдуманно и взвешенно(насколько это применимо к вам), а не не как к чтению статей.

Спорить с тем, что кнопка в интерфейсе — это средство управления… ну, я бы не стал. Тут даже цитат из википедии найти нельзя, потому что это уровень толкового словаря, а не энциклопедии. Мне было бы обидно, если бы меня избили толковым словарем, но раз уж вы так желаете, извольте:
Средство — орудие, необходимое для достижения, осуществления чего-либо (о приспособлении, устройстве, приборе или их совокупности)
Управление — действие по значению гл. управлять; деятельность субъекта по изменению объекта для некоторой цели

Таким образом «средство управления» — это некая сущность, необходимая для деятельности субъекта по изменению объекта для некоторой цели.

Я(субъект) хочу изменить(деятельность) состояние пищалки(объект) с «выключено» на «включено» для получение эстетического удовольствия(цель). Для этого мне необходим некий интерфейс, который позволит мне это делать опосредованно, так как я не умею ни генерировать электрические импульсы для подключения к сети ethernet, ни излучать радиоволны для общения с Wi-Fi роутером.
Этим интерфейсом является графический интерфейс пользователя. Так, как я несомненно(как мы установили в двух предыдущих предложениях) управляю пищалкой с помощью него, то он и является средством этого управления.

Боюсь, если после этого вы не согласитесь с тем, что GUI — это средство управления, я уже буду не способен пытаться доказать вам это дальше, и потребуется помощь квалифицированных специалистов.

В «умном доме» подконтрольный объект — дом, а не железка

Если в вашем доме вы управляете этим самым домом без наличия железок, я вам завидую. К сожалению, мне не приходило в детстве письмо в хогвартс, и поэтому я вынужден управлять умным домом изменяя состояние устройств в нем, а не дома в целом(последний раз состояние дома в целом изменилось, насколько я помню, на этапе строительства — когда дом стал из кучи кирпича жилым помещением).

А если без шуток, то это вопрос достаточно философский и зависит от требуемой детализации. Спускаемся на уровень протоколов — так там объекты несомненно железки. Поднимаемся на пользовательский уровень — таки да, объектом в некотором случае может выступать и дом(скажем, при действии «взять на охрану» — в этом случае действие совершается глобально по отношению к дому). Но так как мы на хабре, да еще и в статье про какое-никакое, а программирование, я все-таки считаю на этом уровне объектом управления отдельные устройства.
Если вы напишите статью про реальную панель управления УД в связке с этим УД, и я с удовольствием буду обсуждать в комментариях к ней УД как объект управления.
-1
Я так понимаю, что вы очень далеки от области науки и техники, которая называется «системы управления» вообще и от «умного дома» в частности.

Ещераз цитирую Википедию:

Систе́ма управле́ния — систематизированный (строго определённый) набор средств сбора сведений о подконтрольном объекте и средств воздействия на его поведение, предназначенный для достижения определённых целей.

В системах управления умным домом — подконтрольным объектом является дом, а не железяки (набор средств), которые используются для контроля этим домом.

Насчет GUI вынужден опять отправить вас в Википедию
ru.wikipedia.org/w/index.php?title=GUI&redirect=no
или лучше в англоязычную версию en.wikipedia.org/wiki/Graphical_user_interface

«The graphical user interface (GUI /ˈɡuːi/) is a form of user interface that allows users to interact with electronic devices „
0
Да, пожалуй, идеальное сочетание ника, аватарки и человека. Не считаю нужным поддерживать диалог такого уровня.

P.S. Там на днях еще одна моя статья про УД выйдет, отдельно приглашаю вас в комментарии, будет… забавно. Чисто поржать, да
0
Зачем мне в комментарии, если вы явно не в теме, да еще и грубиян?
0
Ну сюда же вы зачем-то приперлись? Видимо чего-то не хватает в организме, что тому котенку, который полиэтилен ест.
Только полноправные пользователи могут оставлять комментарии. , пожалуйста.