JavaScript
C++
Программирование микроконтроллеров
Разработка для интернета вещей
Интернет вещей
Комментарии 24
+2
Может кто-то простым языком объяснить что это, есть ли уже что-то аналогичное и кому и зачем это может быть нужно?

В чём смысл, соль и новизна?

(Вопрос без подвоха, просто подробностей много, а общее понимание не сложилось после прочтения статьи.)
+3
Ответ также без подвоха.

Я старался различными способами донести простые мысли. Но либо они оказывались слишком простыми (способы) и нужны были подробности, либо слишком сложными. В этой статье я постарался сделать все. И простым и сложным языком описать. И видео снял. Если бы я мог (был способен) описать это еще проще я бы так и сделал.

Но давайте попробую.

Что это?:
1. Это IoT платформа. Она позволяет развернуть экосистему интернет-вещей.
2. Платформа имеет два слоя. Первый прошивка. Она аппаратно-зависимая. Второй — приложения. Этот слой аппаратно-независимый.
3. Между первым слоем и вторым существует абстракция — интерфейсы. Они позволяют второму слою управлять первым.

В чем новизна:
1. Стратегия платформы — развитие через сообщество. Т.е. не имеет вендора;
2. Разделена на несколько сегментов, которые могут развиваться параллельно и независимо;
3. Позволяет внедрять зависимости в проект. В том числе runtime;
4. Имеет универсальную шину данных для обмена событиями во всей экосистеме.
5. Уровень входа для разработки приложений аппаратно-независимого слоя минимален (для целевой аудитории — JavaScript разработчиков).

Есть ли аналогичное:
1. Нет. Такой парадигмы нет. Точнее я не встречал.
2. Есть платформы решающие те же задачи (экосистемы) иными путями.

В чем смысл:
1. В том, что каждый для себя сможет пилить нужный ему проект и оставаться в контексте общей парадигмы. Сможет переиспользовать кем-то написанный код и публиковать свой для других. Примерно как с пакетными менеджерами. Типа npm.
+2
Спасибо, так стало гораздо понятнее.

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

Но в любом случае желаю успеха вашей системе.
+2
Сомнение есть всегда. Вы зрите в корень. Чтобы кто-то что-то бросил, нужны веские основания. Но, чтобы они появились (основания) кто-то, что-то должен сделать. Я просто это делаю. И в это верю.

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

Бэта будет уже направлена на конечных пользователей. Т.е. можно будет «потрогать» результат работы платформы. И с донесением смысла (я надеюсь) станет легче.

Еще я планирую завезти Blockly Что б уж каждый мог попробовать что-то сделать.

Я прекрасно понимаю, что людям нужно показать очевидные профиты. Но пока их нет. Точнее они есть, но не очевидны. Но это (статью) в любом случае нужно было сделать, чтобы не жалеть в будущем, что я это не сделал.
0
мне будет уже гораздо легче доносить материал тем, кто задаст вопрос — а что ты делаешь?

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

Но в запиливании подобных проектов есть и свои положительные моменты — вы получаете огромный опыт и ни с чем не сравнимый фан (что само по себе (без)ценно).
0

Возможно. Я пока этот опыт не получил. Изучаю успешные проекты open source. Пока, то, что я нашел, практически все начались совсем иначе… с инхауса в opensource. На определенном этапе развития.

+1

Спасибо за статью! Вопрос, а не встречалась вам опенсорсная платформа с близким функционалом, но на питоне?

0
За питоном я не слежу. Но платформы различные смотрел. Не находил похожих. Есть в какой-то мере похожая от mongoose платформа с mJS. Но концепция там совершенно иная.

Причем я смотрел целенаправленно, чтобы не заниматься лишней работой. Т.е. хотел взять за основу готовый проект и поучаствовать в его развитии. Адаптировать под себя.

Слышал, что есть завезенный микропитон на ESP32. Но не более.
0

Людям ничего не надо, кроме красивых кнопочек… А тех кто разберётся сам с кодом и командной строкой или написанием скриптов — единицы.
Я являюсь основателем именно такого Сообщества для интернета вещёй и у меня уже есть статистика и опыт.
Как уже писали здесь: https://m.habr.com/ru/post/474356/comments/#comment_20860056… Людей заинтересовать ОЧЕНЬ сложно… А программистов почти невозможно.


Сейчас из 32000 пользователей у нас 23 разработчика, которые иногда что то делают с центральным ядром. Это 0,07%.
Хотя число людей которые постоянно что то делают с ядром системы, равно четырём.
Немного больше людей пилят части (драйвера) для себя — около 100.


Так что заинтересовать людей можно только если вложится в маркетинг, как это делает Apple, Samsung, Google.


Я не понимаю, почему сказано, что автор ничего не нашёл? А ioBroker, OpenHAB, Home Assistant, FHEM, Domoticz, Majordomo для софтовой стороны? А mysensors, blink, esp+mqtt, sonoff и куча непонятного железа для железной части?


А мой совет — пишите платформу для себя и для своих нужд. И если концепт правильный, то люди подтянутся, а если нет… То опыт сын ошибок трудных тоже бесценен.

0
Сказано было не так. Я сказал, что подобной концепции я не нашел. Если речь о моем высказывании.

Что касается — вкладываться в маркетинг, то я не хочу тратить свое время на то, что делать не умею. Я прекрасно понимаю, что бизнес стоит на нем. Но я не маркетолог. Всему свое время и люди.

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

Спасибо за советы!
-3
В настоящий момент поддерживается только ESP32. Чип популярен, ввиду своей доступности при поразительных технических характеристиках.

image
0
Слишком сложно. Сложно даже до конца прочитать статью, наворочено много всего.

Вот, например, OPC — интерфейс между промышленными контроллерами с одной стороны и скада системами (визуализацией) с другой.
Что он из себя представляет по сути — набор библиотек с С-интерфейсом, чтобы можно было из любого языка вызвать несколько функций. И нет никакой кучи слоев передачи данных с модными названиями.

Например, появился новый контроллер, пусть тот же ESP32. Пишется для него драйвер Один раз для передачи данных в OPC сервер. Все на этом. Все панели управления или ПК, которые понимают OPC, смогут управлять этим контроллером, либо показывать с него информацию, дальше ее передавать куда то и тд.
+1
У вас очень ограниченное понимание предметной области. ОРС например, не может работать нигде кроме Вин, не умеет в принципе в сколь-нибудь сложную топологию — модем, или передача по требованию контроллера, или раз в неделю итд.
0
ОРС например, не может работать нигде кроме Вин
А мужики-то не знали! (с)
Вылезайте из своего 20-го века, референсные OPC UA библиотеки (который на C и C#) прекрасно работают под Linux, а еще есть много открытых имплементаций клиентов и серверов на кросс-платформенных языках типа Java, Rust, Go, Python и JS.
0
(немного занудства)
OPC DA и OPC UA — это да, совершенно разные вещи, а OPC и OPC UA «совершенно разными» вещами быть не могут, т.к. UA это один из подвидов (стандартов) OPC.

Кстати, забавно, но по ссылке, приведенной автором исходного комментария, говорится, что даже OPC DA (тот самый, который через виндовский DCOM) все-таки может работать под Linux, QNX и VxWorks с помощью сторонних костылей решений. Насколько оно жизнеспособно рассуждать не берусь, т.к. на практике с такими конфигурациями не сталкивался.
0
На мой взгляд, всё как то абстрактно. Сейчас IoT платформой чего только не обзывают, начиная с удаленного управления светом и заканчивая АСУ ТП в промышленных масштабах )).
Концепция, модули, развёртывание и т.д. — всё это хорошо, но не понятно, а что дает эта платформа пользователю? Хотя бы несколько примеров решения практичных задач. На какой сегмент она ориентирована и как в неё можно интегрировать уже существующие платформы?
Вообщем лично у меня вопросов больше чем ответов.
В чем новизна:
1. Стратегия платформы — развитие через сообщество. Т.е. не имеет вендора;
2. Разделена на несколько сегментов, которые могут развиваться параллельно и независимо;
3. Позволяет внедрять зависимости в проект. В том числе runtime;
4. Имеет универсальную шину данных для обмена событиями во всей экосистеме.
5. Уровень входа для разработки приложений аппаратно-независимого слоя минимален (для целевой аудитории — JavaScript разработчиков).

Есть ли аналогичное:
1. Нет. Такой парадигмы нет. Точнее я не встречал.
2. Есть платформы решающие те же задачи (экосистемы) иными путями.

В чем смысл:
1. В том, что каждый для себя сможет пилить нужный ему проект и оставаться в контексте общей парадигмы. Сможет переиспользовать кем-то написанный код и публиковать свой для других. Примерно как с пакетными менеджерами. Типа npm.

Скажите, чем отличаются те же сообщества обозванные по старинке, именованием «Умный Дом» или системами «Домашней автоматизации» ( OpenHab, Home Assistant, Domoticz, HomeBridge, MajorDoMo и т.д) от вашего проекта, за исключением п.5. и названием IoT?
0
На мой взгляд, всё как то абстрактно.

Не знаю даже что сказать. Я бы согласился, если бы не было возможности взять и собрать прошивку. Специально постарался выложить то, что реально можно собрать прошить и потрогать. Может как-то не так понял вас?

Сейчас IoT платформой чего только не обзывают, начиная с удаленного управления светом и заканчивая АСУ ТП в промышленных масштабах )).

Совершенно согласен.

всё это хорошо, но не понятно, а что дает эта платформа пользователю? Хотя бы несколько примеров решения практичных задач.

Вопрос хороший. Самый простой ответ — широкий выбор доступных устройств. Опять абстрактно, то иначе можно только так сказать: много дешевых устройств с кучей софта для них. Как сейчас в мобильниках.

На какой сегмент она ориентирована и как в неё можно интегрировать уже существующие платформы?

Сегмент — бытовой. Пром я не рассматривал. Я бы вообще не называл нормальный пром IoT. Все пром системы имеют собственные классификации.

Скажите, чем отличаются те же сообщества обозванные по старинке, именованием «Умный Дом» или системами «Домашней автоматизации» ( OpenHab, Home Assistant, Domoticz, HomeBridge, MajorDoMo и т.д) от вашего проекта, за исключением п.5. и названием IoT?

И пункта 3. Его тоже нигде нет. Да и пункта 4 тоже. Буду благодарен за обратные примеры.

Но даже если рассматривать пункт 5, то это ровно 50% от всей платформы. И, что самое примечательное, именно это является «лицом» платформы для пользователя. Т.е. это не просто пункт 5, а ПУНКТ 5!
0
Специально постарался выложить то, что реально можно собрать прошить и потрогать. Может как-то не так понял вас?

Да, может мы не правильно понимаем друг друга. В начале, статья мне понравилась, видно вложено много труда как к статье, так и самое главное, к работе по проекту.
Сам немного интересуюсь домашней автоматизацией и иногда что то делаю. Поэтому задал несколько вопросов. Лично я не совсем понял, как практически использовать ваш проект.
И пункта 3. Его тоже нигде нет. Да и пункта 4 тоже. Буду благодарен за обратные примеры.

Я немного использую MajorDoMo, могу сказать, что эти пункты в том или качестве присутствуют. по п.4 даже не один вид шины (протокола), если я вас правильно понимаю, есть возможность использования MQTT, ZigBee, Z-Way и т.д.
А вот п.5 меня смущает. Порог вхождения получается довольно высокий, явно рассчитан не на простых пользователей, на мой взгляд большинство открытых систем стараются снизить этот показатель, чтоб привлечь как можно больше энтузиастов в свой проект.
0
MQTT, ZigBee, Z-Way это протоколы и сети. Шина это унифицированное средство доставки сообщений приложениям и устройствам. Она реализуется (при необходимости) на любом из выше описанных протоколов.

Реализация шины в проекте скорее ближе к сервисной шине или интеграционной.

А вот п.5 меня смущает. Порог вхождения получается довольно высокий, явно рассчитан не на простых пользователей...


Тут вы и правы и нет одновременно. Это не платформа аля ардуино. Я делал ее на профессиональных фреймворках и технологиях. Порог вхождения в 5 высок для тех, кто не работает профессионально с JavaScript. Для тех, кто работает его практически нет. В том то и дело.

Также как и для разработчиков на С. Используется FreeRTOS, Mongoose решения, cmake. Т.е. профессионал должен себя чувствовать комфортно.

тоб привлечь как можно больше энтузиастов в свой проект

Если под энтузиастами вы понимаете любителей, то они не будут обделены. В бэте фокус будет уже на готовые устройства. А также будет завезен язык визуального программирования — blockly. На нем можно будет создавать приложения для ThingJS прям на сайте.
+1
Интересная статья, спасибо.
Почему вы выбрали именно mJS, а не Espruino?
В нем вроде и ограничений для JS кода меньше.
0
Я старался минимизировать зоопарк технологий и модулей. Mongoose является во всех смыслах уважаймой конторой для встраиваемых систем. Делает много полезного. Я использую его WEB сервер и сразу обратил внимание на mJS.

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

Я думал на аппаратном уровне уже есть mqtt и больше там ничего не надо.

Только полноправные пользователи могут оставлять комментарии., пожалуйста.