Pull to refresh

Comments 114

Что ж вы так нервничаете-то… И что вас в openhab ужасает?
Тем, что все настройки там в конфиг-файлах и скриптах.
Мне просто интересно. Я писал статью месяц, а до этого ioBrokrer — 3 года каждый вечер по 3-4 часа. Более 6000 коммитов на github. Вот какой… ставит -1 на статью не поясняя ничего при этом?
Может он написал что-то лучшее? Так расскажи! Я по-учусь. Или за грамматические ошибки заботливо не указанные в приватных сообщениях?
Просто прекратите задавать себе глупый вопрос «За что?» Раз есть кнопка — ее обязательно нажмут.
А уж тем более — задавать этот вопрос в первые минуты/часы после публикации!

Кто-то поставил минус. Не объяснил его. Человек может даже в комментарии не заглядывал и не будет. Он не прочтет вашего «За что?! Это не справедливо!». Зато прочтут остальные и подумают, что вы первый день в интернете ))
Да прекратил уже. Наверно день вчера был напряженный.
А так я и не скрываю, что я первый день в интернете (как минимум в социальной его части). Обычно я сижу и работаю над проектом и все мои сайты ограничены сайтами с документацией и stackoverflow. :)
Привыкну, перестану реагировать. :)
>>>Вот какой… ставит -1 на статью не поясняя ничего при этом?
А что еще ждать, если поднимать\опускать статью позволяется кому угодно с одинаковым весом?
Как и любой человек, написавший статью на 100% тебя понимаю. Считаю, что оценивать труд должен только равный, то есть оцивают статьи только те кто что то сами написали, а не как сейчас — любой «Не читал, но осуждаю!» (с).
Разве не так работает? У меня нет статей и я не могу влиять на их рейтинг.
Неа не так :), право голосовать зависит от кармы https://geektimes.ru/info/help/karma/
А она набирается и без статей насколько понимаю.
Равенства нет, тем более что это субъективный критерий, а выравнивание биологической системы к единому значению приводит к коллапсу и стагнации. Так что проблема не в качестве голосующих а в непонимании системы голосования. Статья — информация, которая изменяется от 0(нет информации) до +1(есть информация). Информация не имеет отрицательного значения и поэтому качество статьи невозможно оценить ничем кроме + (можно конечно кивать головой на энтропию, но это уже производная к процессу а не сам объект). Так что если интересует именно оценка качества/нужности/полезность, то имеет смысл обращать внимание только на плюсы относительно нулей. Минус же является социальным регулятором не имеющем прямого отношения к качеству статей. Образно говоря он является инквизитором для инакомыслящих (фактически реализует отрицательную обратную связь). Именно в силу этого на сегодня основания для "-" принципиально не формализуются, как впрочем любое явление из категории нравится-не_нравится. Тем более что нужно быть неординарной личностью что бы публично заявить о своём минусе… Это сразу выделит из общей массы и сделает инакомыслящим. Масса всегда безлика и памятлива...;)
Знаете, уважаемый, уже за такое Ваше отношение можно ставить «минус» (это был не я, не дорос ещё), надо стойко воспринимать подобные вещи.
Сам работаю в сфере автоматизации, прочитал бегло ибо голова не настроена уже. Однако чисто интуитивно (внутренне) не верится в связь всего со всем.
Видимо от понимания того, что подружить две железяки (устройство knx, например, и пк с этим ioBroker) всегда не просто. А здесь предлагается после этого процесса подружить ещё два компонента разных ioBroker друг с другом.
Верно?
Просто это не первый комментарий и не на первом ресурсе. Да я уже в течении 2х лет держу такие нападки и если бы я был фирмой состоящий из меня и хотя бы одной секретарши, то, возможно, такие сообщения доходили бы до меня отфильтрованными мозгами той самой воображаемой секретарши, но пока секретарши не предвидится.
Ставьте минус «за такое Ваше отношение». Ничего переживу.
Не совсем понимаю, о каких нападках речь — просто выразил своё мнение. Лучше бы по существу прокомментировали.

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

На данный момент присутствует 1600 постоянных пользователей (из них 100 русскоговорящих).
KNX драйвер переписывается сейчас во второй раз.
А может стоит попробовать? Я ужасаюсь каждый раз, когда люди делают выбор в пользу openhab.
ну выбор в пользу мажордомо и домотикс вполне понятен — они из коробки работают.

Что вы понимаете под термином "из коробки"?

Вот это называется из коробки?
http://majordomo.smartliving.ru/Main/SetupLinux


Да я даже до конца страницы устал мотать. :)


Вот это уже короче:
http://www.openhab.org/getting-started/


Но всё равно я понимаю под "из-коробки" максимум 2-3 команды.


iorboker на Linux, если стоит node меньше пятого, ставится 4мя командами:


sudo mkdir /opt/iobroker
sudo chmod 777 /opt/iobroker
cd /opt/iobroker
sudo npm install iobroker --unsafe-perm
так толсто, что даже скучно…
вообще я говорил про «работает», но если хочется про установку поговорить…
в инструкции мажордомо речь про установку всех зависимостей, редактора, ссх. смотреть зависимости ноде лень.
в инструкции опенхаба теже несколько команд.

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

а вот мажордомо и домотикс менеджером пакета ставятся одной командой и работают :)
Ну да.
Я тоже могу сказать, что OH на RPi устанавливается 4 командами:
wget -qO — 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add — echo «deb http://dl.bintray.com/openhab/apt-repo stable main» | sudo tee /etc/apt/sources.list.d/openhab.list
sudo apt-get update
sudo apt-get install openhab-runtime

Только после этого еще нужно установить драйвера под нужные протоколы: Z-wave, KNX и т.д. Это по команде на каждый. Лично у меня их 6
sudo apt-get install openhab-addon-persistence-rrd4j
sudo apt-get install openhab-addon-binding-z-wave
sudo apt-get install openhab-addon-binding-mqtt
sudo apt-get install openhab-addon-binding-http
sudo apt-get install openhab-addon-binding-ntp
sudo apt-get install openhab-addon-binding-weather

А потом еще создать свою конфигурацию. А в ioBroker как?

То есть ты даже не знаешь, как в ioBroker и что то доказываешь? :)
Ну не поленился я и достал 3ю малину и ввёл команды сверху.


pi@raspberrypi:~ wget -qO — 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add — echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list
gpg: no valid OpenPGP data found.
pi@raspberrypi:~ $ sudo apt-get update
....
....
pi@raspberrypi:~sudo apt-get install openhab-runtime
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package openhab-runtime

В погоне уменьшить количество команд, ты неправильно их соединил. Ну ничего.


Установил openhab так:
На малине raspbian jessie lite нет java, так же и как node.js. Ставлю java
sudo apt-get install oracle-java7-jdk


потом
wget -qO — 'https://bintray.com/user/downloadSubjectPublicKey?username=openhab' | sudo apt-key add — echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list


потом
echo "deb http://dl.bintray.com/openhab/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/openhab.list


потом


sudo apt-get install openhab-runtime
sudo /etc/init.d/openhab start

по адресу http://ipaddress:8080/openhab.app


HTTP ERROR 500
Problem accessing /openhab.app. Reason:
    Sitemap 'default' could not be found

А теперь, я так понимаю, надо лезть в конфиги.




Вот полная инсталляция на ioBroker
Установка 4го нода


curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y build-essential python-rpi.gpio nodejs

и установка iobroker. Причём его можно поставить в любую папку (с наличием прав)


sudo mkdir /opt/iobroker
sudo chmod 777 /opt/iobroker
cd /opt/iobroker
sudo npm install iobroker --unsafe-perm

В итоге на http://ipaddress:8081


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


И всё из браузера, не заходя в консоль. Хотя из консоли тоже можно устанавливать драйвера.





Потом рисуется интерфейс


Или просто приборам присваиваются (кликаньем) свойства (свет/жалюзи/..) и/или комната и готов мобильный интерфейс.



Вот создание интерфейса


Вот ещё (правда на немецком)
Это все понятно. Я ничего не доказываю, я просто говорю, что все аналогичные системы устанавливаются и настраиваются более менее одинаково — где-то больше проблем, где-то меньше. И ради этого перелазить с одной опенсоурсной системы на другую, например, с OH на ioBroker, я не вижу смысла, пока первый справляется и не выносит мозги. Надо будет — перелезу.

С другой стороны насчет перелазить — следует учитывать риск, что с любым софтом можно столкнуться с тем, что он вдруг перестанет выполнять свои функции — то ли поддержка community исчезнет, то ли при очередном обновлении появится критический баг именно в данной системе, а откат невозможен. То ли просто задолбает стабильность. Выход будет, скорей всего, в переходе на другую систему УД, но тут-то и кроется проблема — стоимость перехода может быть достаточно высокой, так как придется много вещей переделывать с нуля и потратить на это много времени — инсталляция и первоначальная настройка только часть из них. Именно поэтому в этих случаях рекомендуется переходить на модульные архитектуры со стандартизированными интерфейсами, чтобы в случае чего можно было поменять один софтверный или хардварный модуль без необходимости замены или модернизации всей системы.
В конкретном случае с УД я вижу две особенности:
— Интерфейс пользователя — если реализовать все эти Web и мобильные интерфейсы средствами ioBroker, то при переходе на другую систему УД наработки, скорей всего потеряются и их придется рисовать обратно. С этой точки зрения в OH проще — там есть только гаджетный вид, который рисовать не надо. Поэтому в моей системе я стараюсь разъединить эти вещи — по крайней мере мой планшетный GUI для настенных панелей сделан на другой проге и коннектится к УД по MQTT — так я могу спокойно переключиться на любой другой контроллер УД без изменений в этой части.
— вторая особенность — сценарии и правила. Графические они или нет, при переходе на другую систему опять все придется рисовать заново, так как будет, скорей всего, другой язык программирования. Именно поэтому движек правил в моей системе будет независим от системы УД и связан с ней опять таки стандартным интерфейсом. В этом случае, опять же, переход с на другой контроллер УД позволит мне спокойно продолжать использовать мои уже написанные правила.

Это всё абсолютно верно, что очень трудно слезть с одной системы. Но что ж мне теперь останавливаться, только потому, что openhab популярнее, хотя iobroker удобнее?
У OH своё сообщество, у IoB своё. Я же не призываю сжечь OH :)

Нет, просто… не пытайтесь реализовать в своем приложении все и вся и не усложняйте систему лишний раз в ущерб надежности и удобству настройки. Сделайте из ioBroker, то, о чем свидетельствует его название — лучшую систему для связи различных I/O протоколов между собой. А остальное, типа Web-серверов, серверов сценариев и пр. отдайте другим. Лучше через стандартные интерфейсы. Пользователи сами привяжут, что им нужнее и вам скажут.
Тогда вы получите множество довольных пользователей, а точнее интеграторов, включая меня, конечно, и сможете развиваться в конкретном направлении.
Просто охватить все и вся сейчас с вашими разработченскими ресурсами не получится, и лучше сделать одну функцию, но сделать ее хорошо, чем пытаться угодить сотне человек, не понимающих, зачем им этот УД не из коробки, реализовывая разные хотелки, которые можно было бы сделать на другом продукте лучше.
В погоне уменьшить количество команд, ты неправильно их соединил. Ну ничего.

Судя по всему, это geektimes их так соединяет. Сори.

Слишком поздно сообразил, что надо было засунуть картинки под спойлер.

>>Я ужасаюсь каждый раз, когда люди делают выбор в пользу openhab.
Странно почему? Он гораздо более популярен — всегда можно найти помощь.
А также ставится практически из коробки и работает месяцами без сбоев и перезагрузок. А вот как со стабильностью у ioBroker?

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

Следуя Вашей логике, различия между опенхаб и айброкер должны быть как между 286 и Quantum Computer.

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


Если бы я спросил людей, чего они хотят, они бы попросили более быструю лошадь. (Г. Форд).

Стабильность на хорошем железе стабильная. :)
Но из-за того, что ioBroker запускается даже на Raspi1B c 512MB, где памяти катастрофически не хватает (если больше чем 4-5 драйверов), страдает имидж, т.к. на них коммуникация между драйверами тормозит и отваливается.

Время шло. Уже 14000 домов и мелких производств, автоматизированных на ioBroker. Собственный KNX прибор, в самом популярном немецком магазине для интеграторов, и пара мелких на amazon, #iobroker #voltus #KNX #professional #homeautomation
https://lnkd.in/g_26kdm


То ли еще будет ой ой ой :-) Буду рад любой кооперации с дизайнерами, программистами, продавцами, интеграторами и креативными людьми.


http://forum.iobroker.net/viewtopic.php?t=6786

blockly достаточно визуален?
Труд титанический, добавить нечего.
Сижу на OpenHab, но уже местами рамки зажимают, а графики так вообще грусть печалька, хоть костыль чего сбоку.
По MQTT в режиме брокера — правильно понимаю, что по умолчанию он транслирует все свое дерево устройств? По каким правилам?
У меня например сейчас «ручное дерево», например для ночника у кровати:
home/lamp_A/0 — нулевой канал лампы, на него подписан сервер, сюда шлет лампа при изменении состояния
home/lamp_A/0/set — ветка установки состояния, на него подписана лампа, сюда шлет любое устройство, которое хочет поменять состояние этой лампы.
Как в случае ioBrocker это будет работать из документации я не понял, проясни по возможности.
Графики писались пол года и переписывались 3 раза и только после этого ими стало нормально пользоваться. Хотя ещё есть много чего, что можно улучшить.
Топики создаются автоматически из топологии устройств. Но есть возможность создать собственные названия и обновлять их через скрипты. Хочу только сказать, что это редко используется.
Имя топика используется и для сообщения о статусе и для управления. При изменении состояния, сервер получает уведомление. Если необходимо переключить состояние, то при записи в топик оно воспринимается, как команда.
>>>Имя топика используется и для сообщения о статусе и для управления.
Такая топология имеет минус — оконечное устройство не имеет канала для сообщения об отработки команды, не всегда set = get. Команда может быть не отработана (устройство отключено), может быть отработана с ощутимой задержкой (долгая операция, сервопривод например)
Ну для начала, речь идет о доме. Там из сервоприводов только ворота и жалюзи. Плюс можно создать два брокера, и по одному слать сообщения, а по другому получать. И в третьих я уже вечером перепишу драйвер, что бы можно было поставить галочку в настройках, что писать только через set. Спасибо за идею.
В самом брокере у каждой переменной есть флаг, говорящий о том что это — команда или состояние.
>>>В самом брокере у каждой переменной есть флаг, говорящий о том что это — команда или состояние.
Хм, очень похоже на openhab, каждая переменная биндится на две ветки — одну для состояния, вторая — для отправки команд.
Может тебе так же сделать — у каждой переменной атрибут для биндинга на mqtt ветку.
Если переменная состояние — она подписывается на эту ветку: home/lamp_A/0, если команда — шлет в home/lamp_A/0/set
>>>можно было поставить галочку в настройках, что писать только через set
Это топорно в лоб, пользователь может не использовать set, вариант как выше описал более гибкий ИМХО.
UFO just landed and posted this here

Не понял — куда отослать? В какой топик?
Если делать единый топик для подтверждений — то будет помойка и что бы ее разобрать будет огромный switch case, то есть та же "куча топиков", только в другой обертке.
Сейчас любое устройство, подписавшееся на home/lamp_A/0 будет реагировать на ИЗМЕНЕНИЕ состояния объекта, а не пожелания Мастера, которые еще не факт что исполнятся.

UFO just landed and posted this here

На самом деле происходит так:


  • Клиент шлёт команду "on" =>
  • mqtt брокер в ioBroker шлёт команду лампе "on" и рассылает всем другим клиентам "лампа" = "on" =>
  • Внутреннее состояние переменной "лампа" меняется на "on/command", =>
  • потом лампа шлёт подтверждение =>
  • Внутреннее состояние переменной "лампа" меняется на "on/state", =>
  • mqtt брокер в ioBroker отсылает всем клиентам по тому же топику "лампа" = "on".

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


С решением "лампа" и "лампа/set" последовательность будет выглядеть так:


  • Клиент шлёт команду "on" =>
  • mqtt брокер в ioBroker шлёт команду лампе "on" и рассылает всем другим клиентам, что "лампа/set" = "on" =>
  • Внутреннее состояние переменной "лампа" меняется на "on/command", =>
  • потом лампа шлёт подтверждение =>
  • Внутреннее состояние переменной "лампа" меняется на "on/state", =>
  • mqtt брокер в ioBroker отсылает всем клиентам по тому же топику "лампа" = "on".

И все довольны :)

>>>Проблема только в том, что другие клиенты не знают какой из двух полученных "on" команда, а какой состояние.
Вопрос — может ли у тебя Лампа внутри себя обработать команду на включение (например по кнопке), и только проинформировать Мастера?
Так понимаю — нет, по твоей логике Мастер воспримет сейчас любую запись в ветку home/lamp_A/0 как команду на включение.

Еще одну фигню не понимаю, если у тебя сейчас один топик и на команды и на подтверждение то как это работает? почему в цикле не умирает?
Если мастер подписан на home/lamp_A/0 и шлет в нее сообщение 1, то он через мсек в обратк получит от MQTT брокера сообщение — в топике home/lamp_A/0 новое сообщение и получит свое же "1".
Так как у тебя не падает — тут стопудова какой то костыль, ты похоже не шлешь Мастеру сообщения с топика home/lamp_A/0, если он сам туда его отправил. Москито точно шлет в обратку, ему пофиг кто отправил — все подписанты должны получить и это правильно, я ведь могу использовать MQTT как внутреннюю шину (один модуль отправил, другой считал)

Ты правильно догадался, что клиент не получает собственного сообщения.
А зачем?
MQTT брокер не является сердцем ioBroker и в ioBroker своя шина (socket.io или redis).


Но даже если клиент получит своё сообщение обратно, зачем клиенту отсылать это снова к брокеру?


А зачем?

Так устроен стандарт MQTT. Теперь понятно почему народ пишет, что с левыми MQTT брокерами ioBrocker не дружит.
Ребята — такой костыль надо писать красным жирным текстом в описании mqtt брокера, для вас это нормально, но весь остальной мир(после Москито и HiveMQ) будет долго понимать почему не работает.


Но даже если клиент получит своё сообщение обратно, зачем клиенту отсылать это снова к брокеру?

Потому что клиент MQTT — лампа (у тебя на рисунке redis замени на mqtt). Она обработает сообщение, включит свет и вернет состояние в ту же ветку по текущей твоей логике ioBrocker.
У тебя по архитектуре — выключи ioBrocker и все встанет, у меня — пока жив москито — все будет включаться\выключаться, только сложные скрипты Openhab сдохнут.
Поэтому бестпрактис — разделять топики на командный и состояния — так работает с любым MQTT брокером и появляется гибкость работы без Openhab\ioBrocker\ т.д.
Вообще меня три уровня логики:
1) рефлексы — то что закодено в контролере, например включение лампы от кнопки. Это будет работать при погашенном mqtt и openhab
2) связи — это подписки на set топики, таким образом команды могут прилетать между устройствами без работы "высшего разума"
3) мозги — openhab, дает историю, веб морду, мобильного клиента, сложные скрипты учитывающие состояние нескольких датчиков.
Так что и при сдохшем MQTT свет включу :), так ИМХО надежнее и правильнее. Думал что у всех так, хоть статью пиши.

Да не буду я лампу по MQTT подключать. Обычно тут всё, кроме MQTT: serial, xml-rpc/tcp, wireless 433Mhz, modbus, opc,…; но только не mqtt.


В том и удобство ioBroker, что он самодостаточен. Не надо mosquitto или баз данных. Базы данных можно опционально подключить.


Мир не состоит только из MQTT устройств (которые тоже прекрасно подключаются).


Кстати можешь назвать готовые MQTT устройства? Розетку например? Давно ищу.


У меня тоже 3 уровня логики:


  • локально на устройстве я могу нажать кнопку (открыть жалюзи или включить свет)
  • устройства соединены между собой (например беспроводная кнопка соединена с выключателем по своему протоколу).
  • ну и ioBroker для лога и графиков, скриптов, визуализации и высшего разума :)

И что ты привязался к этому москито. Я уже давно код написал, а ты всё костыль, костыль… :)

Вот это уже конструктивный диалог. Спасибо.

MQTT вполне может быть сердцем домашней автоматизации. Лично я стараюсь все привести к нему. Это удобно:
— удобная отладка: подписавшись на все топики в MQTT вы полностью видите обмен между устройствами во всех направлениях и можете легко проследить какие команды были получены и какие статусы обновлены. У меня такой подписчик пишет все принятые сообщения в файл вместе с временными штампами и потом этот файл можно спокойно открыть в екселе и отфильтровать нужные топики для анализа. Я даже event log OpenHABа просматриваю таким образом, так как MQTT в этом случае его просто копирует.
— удобное подключение своих девайсов: У меня из готовых MQTT устройств к стене прибит андроидный планшет с кастомным GUI для отображения погоды и управления освещением, диммерами и жалюзями в комнате. Там крутится бесплатная аппликуха с MQTT интерфейсом.
> Лично я стараюсь все привести к нему

Ключевой момент в том, что вы приводите по-своему. Другой разработчик сделает иначе (другой формат данных, другая иерархия в топиков и т. д.) Так что MQTT в своем изначальном виде для домашней автоматизации малопригоден.

А вот если обвешать его допольнительными спеками и заставить всех эти спеки соблюдать — то тогда вполне. По крайней мере для малых проектов. Для распределенных, в которых много брокеров соединены в бриджи, между ними будет гоняться слишком много лишнего трафика

MQTT, как я уже писал в статье, не обладает встроенным интерфейсом для считывания и записи конфигурации.
Да можно создать топики, которые отвечают за параметрирование устройства, но это будет работать только у тебя дома. И только ну с максимум ста устройствами. А потом ты просто запутаешься в салате топиков.


Edit: Не обновил страницу и написал тоже самое, что предыдущий комментатор.

Встроенными интерфейсами считывания и записи конфигурации, насколько я помню, обладают EtherCAT, IEC61850, да OPC-UA. Да вот только для связи устройств УД они будут тяжеловаты.
Под сердцем УД я имел ввиду то, что MQTT может заменить все простые популярные сегодня протоколы обмена данными между контроллером и удаленными узлами, подключенными через интернет, например, Modbus TCP — лично для меня MQTT заменяет его полностью и предлагает намного более продвинутые возможности: отсутствие необходимости поллинга, отсутствие привязки к адресам и необходимости их конфигурации, аутентификация, возможность работы в сетях с большой латентностью и фаерволами, передача любых типов переменных и даже файлов.
Поэтому я и отказываюсь от других протоколов обмена данными в сторону негою

Это всё хорошо. Я тоже очень люблю MQTT, особенно после того, как написал шлюз для IEC61850/IEC60870.
А конфигурировать то как?

Точно также как любой другой протокол такого уровня — ручками. А как вы хотели?
>Да не буду я лампу по MQTT подключать

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

А кто сказал, что ioBroker не умеет MQTT?
Вот только я видел всего одно семейство MQTT устройств, которые к тому же надо перепрошивать.
А вот других протоколов я видел ГОРАЗДО больше.

Интересно.
.
А если предложить на базе этой системы систему автоматизации здания и территории небольшого предприятия?
Понятно, что такая система должна быть платной для пользователей.
Ну это и есть конечная цель. Уже есть интересующиеся.
прекратил читать на «вся автоматизация происходит на JavaScript».

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

Вероятно я не прав, мнение субъективно, но оно таково.
Если есть желание и возможность его оспорить — пожалуйста, я всегда готов услышать адекватное мнение.
Это палка о двух концах. И всё зависит, от того, что автоматизируется. Для чего-то и 2Х H-CPU за 80к евро не достаточно, а где то и ардуино достаточно.
Насчёт realtime: зачем мне дома это? А так на обычной Windows тоже нет realtime. Ну включится лампа на 100 мс позже. И что?

Память это действительно ахилесова пята. Но слава прогрессу, мини компьютеров уже достаточно с 2мя Gb и как раз на них ioBroker показывает отличную стабильность.
Но зато, как положительная черта у JS имеется огромная гибкость и разнообразие готовых модулей.
На самом деле время отклика очень важно для домашнего управления, светом например. Задержка 100-200мс уже заметно. А когда клацаешь выключателем, а свет только через секунду загорается — вообще неудобство.

Проблема всех этих систем типа OpenHAB и IO Broker — они написаны часто людьми, которые не понимают, как писать реалтайм приложения. Например могут запросто вызвать какую-нибудь функцию динамического выделения памяти в драйвере. И в итоге 20 раз все нормально, а на 21-ый приехали — ОС решила, что надо что-то подчистить и задержала выделение памяти на 300мс. Такие вещи — зло для таймингов.
На самом деле время отклика очень важно для домашнего управления

99% отклика не дольше 50мс, если железо не тормозное.


Проблема всех этих систем типа OpenHAB и IO Broker — они написаны часто людьми, которые не понимают, как писать реалтайм приложения

У меня за плечами VxWorks (эта, та что в марсаходах), Win RTX (это Real Time eXtensions for Windows — применяется например в Software PLC), и просто разработка на микроконтроллерах — например MSP 430 или ATmega.
И я прекрасно знаю, где надо усердствовать до конца, что бы контейнер с крана тебе на голову не упал или руку не отрезало, а где 99% достаточно.
Ты, надеюсь, не собираешься станок с чпу на OpenHAB автоматизировать?

Нет, но например, в случае с электрожалюзями угол ламелей регулируется путем включения мотора открытия/закрытия в обратном направлении. Лично у меня угол меняется на 180° за 1,5с работы мотора. Поэтому важно, чтобы контроллер УД выдавал команды с определенным интервалом, а не +-2 секунды.
а вот здесь напрашивается костылеще из атмел(пик) или ардуинки для «реалтайм-драйвера» жалюзей, а брокер уже общается с этим «драйвером» :)
«Костыли» можно было бы исправить путем переписки драйвера нормальным программистом, так как в платных системах УД такого эффекта нет при тех же интерфейсах — значит там более грамотно подощли к вопросу.

Я писал подобные системы.
Ничего ты не сможешь сделать, если сетка перегружена, эфир замусорен, источник питания слишком слаб или просто "хардварный" баг в чипе (было действительно, что marvell switch чип портил примерно каждый миллионный пакет).
И может случиться, что дверь склада весом в тонну раз в 100 закрытий со всей дури будет въезжать в стену, только потому, что какое нибудь устройство в той же самой сетке в это время с ошибочным приоритетом решит обновится по сети.


У каждого устройства возникают задержки с той или иной вероятностью!
Какая вероятность на отказ или задержку у твоих "платных систем УД"?
Дело улучшают тысячи часов тестов и такая же тысяча костылей.
Или ты полагаешь, что в "платных системах УД" нет костылей? :)

согласен на 100%, в платных системах костыли загоняются в бинарник, обфусцируются и преподносятся как плоды тяжелого труда, а потому с закрытыми лицензиями :(
По моему субъективному мнению ОС и Real-time не совместимы, разве что RTOS.
И в конечном счёте всё упирается в приоритеты прерываний даже на микроконтроллерах.
И фаталити: не бывает 100% универсальных решений.

И в заключение:
я очень рад, что существуют проекты подобные Вашему.
Очень сожалею, что Вам приходится «выхватывать» столько минусов, но это хабр:
в этой песочнице сегодня ты царь горы, а завтра машинкой по спине выхватываешь :)
Больше чем уверен, что однажды мне понадобятся спеки протокола от какой-нибудь железки, а рабочий код будет только в Ваших open-драйверах.
OpenSource is future.
Много рекламы, что подключить к ioBroker можно всё, а в первой части статьи автор говорит что ему(автору) много не нужно для семьи и автор сам не определился, что можно сделать с этим всем.
Это как, есть конструктор из которого могу собрать всё, но мне мало что нужно!

В наше время, идей и железок для «Умного дома» полно, а пользуются этим не многие. Интернет вещей как грязи, а подходит это всё не всем и не важно на каких протоколах это всё соединяется.
Хотелось бы понять мнение автора, что же реально нужно...? а потом принимать решение и делать вывод ioBroker подходит для этого или не очень.

Мне нужно что то одно, моему соседу второе, а гику третье. И это есть в ioBroker и первое (например управление с планшета в коридоре) и второе (иногда управление с телефона) и третье (управление голосом).
Мне нужны скрипты, не знающему JS — blockly, а кто то и сценами обойдётся.


ioBroker это конструктор на котором можно много что сделать.


Это же нормально, что: вот есть язык программирования и на нём можно писать что угодно и тот, кто этот язык написал, не знает — будет ли язык применяться для клепания серверов или для распознавания картинок. Задача языка подключить интерфейсы (сеть, диск, шифрование, ...), предоставить инструменты (array, sort, for), а вот задача пользователя сваять что нибудь на этом языке.
И это должен решать ты, что ты будешь ваять.

ставится на любую версию node? с любой версией npm?
можно сходу инструкцию нагуглить по установке?
права 777 уже не нужны?
графики работают из коробки?

Node: желательно 4.x.
Npm: желательно 2.x
Права: если человек разбирается в правах, то можно запустить и с меньшими правами. Просто основная часть пользователей падает в обморок при надписи доступ запрещён и проще сказать: используйте 777
Графики работают из коробки. Вот только если нужно сохранять большое количество данных, то SQLite и JSON драйвера слабоваты. На этом месте нужно установить нормальную базу: MySQL, MS-SQL, PostgreSQL или InfluxDB. Они тоже подключаются в 3 клика.


можно сходу инструкцию нагуглить по установке?
http://www.iobroker.net/?page_id=2630&lang=ru
не работают графики из коробки. тема у вас на форуме уж месяца два висит.
на счет прав — система должна их выставит, а не пользователь.

вот только чтобы взлетело пришлось нагуглить http://forum.iobroker.net/viewtopic.php?f=17&t=2526&p=22655#p22467

и да, mqtt уже соответствует rfc?
не работают графики из коробки.
Может у нас разные понятия термина "из коробки". Или я что то пропустил. Можешь линк прислать?

и да, mqtt уже соответствует rfc?
Я так понимаю, что речь идёт о LWT?
Мне везде приходится расставлять приоритеты. Эта функция не имеет для меня высшего приоритета. При 90 драйверах приходится это делать. Какое это имеет практическое применение (substitute values) в домашней автоматизации?
из коробки — это поставил и заработало.
http://forum.iobroker.net/viewtopic.php?f=27&t=2889

про mqtt ответили выше.
вы опять ссылку на установку/настройку операционки даете?

Ну от вас, я так и не увидел ссылки на linux.


Вот минимальная последовательность для установки (с учётом, что Apahce, PHP, MySQL, wget, phpmyadmin уже установлены и настроены):


mkdir /home/majordomo
cd /home/majordomo
wget http://majordomo.smartliving.ru/download/_majordomo_linux_100b.tar.gz
tar xvfz _majordomo_linux_100b.tar.gz
sudo cp -rp /home/majordomo/html/* /var/www
sudo cp -rp /home/majordomo/html/.htaccess /var/www
sudo chmod -R 777 /var/www

Потом:
Заходим по адресу http://majordomo_IP/phpmyadmin (http://localhost/phpmyadmin4) Создаем базу данных db_terminal и импортируем в нее db_terminal из папки с дистрибутивом. Создаем пользователя и даем ему права на базу данных.
sudo nano /var/www/config.php


Запуск основного цикла
crontab -e -u majordomo


добавляем строки
@reboot /usr/bin/php /var/www/cycle.php


Все, теперь вы можете зайти на веб интерфейс Majordomo
http://majordomo_IP/ (http://localhost/)


Взято с офф сайта: http://majordomo.smartliving.ru/Main/SetupLinux


Ну если я не прав, то покажите же наконец, как ставить MJD из коробки...

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

То то я смотрю, что ник знакомый :)


Такое ощущение, что у тебя очень старый node.js.
А ты не написал, ни тип операционки, ни браузер.

может быть и очень старый.
какой автор на официальном форуме посоветовал — тот и стоит.
Там вроде как установка, а где инструкция по тому, что делать дальше? Я установил на обычный комп (debian) дойдя до этого:
>После перезагрузки в браузере наберем адрес: http://localhost:8081
>Вы должны будете увидеть окно приветствия.

Зашёл по адресу, увидел картинку, а что делать дальше? У меня есть ардуина, как её подключить и помигать светиком?
Может помогу советом, так как у меня опыт работы аж пол часа(может чуть больше).

Поставил систему на Raspberry Pi 1 model B (http://www.iobroker.net/?page_id=3489&lang=ru)
Далее поставил MQTT брокер (http://www.iobroker.net/?page_id=4643&lang=ru)
Взял esp8266 + bme180 (датчик температуры + барометр), написал небольшую программку, которая отправляет данные на Raspberry
Линк на либу и пример (https://github.com/knolleary/pubsubclient)
Сейчас хочу прикрутить график по этой инструкции (http://www.iobroker.net/?page_id=4034&lang=ru)

Как-то так.
Буду рад, если смогу чем то помочь.
Дык как ардуину то припакать к это системе?
> Хотя протокол взаимодействия от google Weave кажется наиболее продуманным

Похоже этот протокол будет сильно завязан на платформу Brillo от гугл. Если это так, то «общим знаменателем» для всех новых и существующих технологий и протоколов ему не быть. Ведь кто-то захочет сервер на OpenWrt, кто-то на Windows-десктопе…

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

А вы не смотрели на полностью открытые Alljoyn и IoTivity?

Alljoyn это линуксовый dbus, расширенный для работы в распределенных системах. А IoTivity ближе к REST-сервисам. Оба поддерживают «PlugAndPlay» устройств, рефлексию API, стандартные профили (свет, кондиционеры, етц) и всё-всё чтобы носить звание протокола IoT (в отличие от MQTT, который больше паттерн pub/sub для сырых данных)

Судя по последним новостям эти группы собираются объединить свои усилия в пользу IoTivity

Интересная наводка. Спасибо.
Протокол ещё новый (они тоже начали в летом 2014) и я не знал о нём. Ну будет ещё один драйвер. :)


Похоже этот протокол будет сильно завязан на платформу Brillo от гугл

У меня тоже такие подозрения.


Alljoyn это Qualcomm и они уже с 2011 года. Как только будут появляться приборы, надо будет подключить.


Вот ещё один "для-всего-протокол": http://www.lemonbeat.com/


Обязательно почитаю о IoTivity. Ещё раз спасибо.

Незачто. Lemonbeat впервые слышу. Ознакомлюсь.

Подскажите, а как вы делаете сишные биндинги (всяких modbus и прочего) к ноде? Не вызывает ли этот процесс затруднений? Я в свое время отказался от ноды, осознав что придется использовать C++ и V8 API. Перешел на чистый libuv и lua. Может зря

На линуксе не возникает никаких проблем. Там только надо написать "sudo apt-get install build-essential".
А вот с windows приходится включать бинарники в пакет.
Причём для x64/x86 и для ходовых версий ноды.


И я не делаю сам "сишные биндинги", хотя отлично знаю C/C++ (точнее "отлично" знал. Сейчас просто "знаю"), а использую готовые.
OPC, Modbus — написаны на чистом JS, а вот для S7, serial port нужны C++.

«Я таким образом реализовал подключение OPC UA» — а какое именно устройство подключали по OPC UA? Вроде OPC UA больше для АСУ подходит чем для домашнего использования.

Есть идея реализовать визуализацию для пром. применения. Проверял работоспособность. При 100000 переменных и секундном обновлении начинает тормозить.
А OPC просто проверял (так сказать proof of concept). Там ещё клиента писать надо. Пока только сервер.

Но при 50000 вполне всё "операбельно" :)

С помощью OPC UA можно легко привязать какой-нибуль ПЛК к IOBroker — даже тот же Codesys на Распберри. А это уже хороший вариант написания правил и сценариев на одном из языков IEC 61131-3, отладка в реальном времени и хоть какой-никакой риалтайм. Правда софт автора статьи все равно этот риалтайм убивает.

Ну я, вообще-то, тестировал с Simatic WinCC.
ioBroker не ПЛК. И его нельзя применять для realtime. Он не для этого.
Для realtime надо бы хотя бы SIL 2. Ну или хотя бы с соблюдением норм SIL 1.

Еще есть «олдскульный» OpenScada, пытаюсь его «пощупать» но пока без результатно. Хорошо в нем. что есть живой форум и разработчик, но новичку помогают неохотно. Пока мне событийность нужно, а не графика на планшете.
Минус в вашей системе в том, что действительно непонятно что делать с установленной системой. Быстрый старт + How To.
Я вот установил вместо OpenHAB, подключил Мегу с датчиками температуры и влажности, но а дальше то что? На сайте нет каких то значимых примеров, как и куда двигаться дальше. Описание взаимосвязей системы и пр… Есть отрывочное описание разных драйверов, но как это может помочь.

Пишут уже :) Москва не сразу строилась.


На всё нужны люди. А пока можно зайти на форум или присоединится к группе в телеграмм.


https://telegram.me/SmartsHome

Дайте конкретную ссылку на то, где можно прочесть о подключении ардуны к Вашей системе или напишите сами. Не надо посылать «туда не знаю куда», это неприлично.
Похоже, старею!)
Открыл вашу ссылку по установке:
http://www.iobroker.net/?page_id=4268&lang=ru
долго-долго мотак колесиком вниз…

UPD: прошу прощения, под windows действительно, инсталлятор. Но похоже, без пхп-мскл все равно не обойтись? ЗЫ. И никаких команд в командой строке!)))

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

«Чтобы раскрыть преступление, нужно мыслить как преступник»
Я вроде инженер, вроде по АСУТП, но мне в мои неполные 30 уже как-то… Не то, чтобы тяжело, скорее — лениво во все это вникать, читать и изучать.
Ориентируйтесь, я бы сказал на «инженера-домохозяйку», эдакий микс современного инженера не-профильного-специалиста. Пингануть — ладно, согласен, посмотреть, что в логах, если нет обмена — ладно, можно.

«Вот минимальная последовательность для установки (с учётом, что Apahce, PHP, MySQL, wget, phpmyadmin уже установлены и настроены):»

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

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

Да и я, собственно, дальше вот этого пакета для локального тестирования «пхп-мскл» — видите, даже забыл как он называется, — вряд ли бы пошел. А параллельно с ним вылезут траблы с кодировками, форматами, сетевыми, о, Госпади, не знаю чем.

Инсталятор в 1 ехе-файле. Это все, что нужно.
На рабочем столе несколько ярлыков — «конфигурация», «рантайм», «служебное», ну или как-то так. В меню пуск сразу побольше ярлыков на путик к логам и т.д. и т.д.
Вашей системе нужен пхп — пусть ваша система его и ставит!)
Не воспринимайте тектс как написанный «по-злому». Он наоборот из добрых побуждений.

Потенциал вашей системы действительно, хороший. Я конечно, понимаю, что любая система начинается с «мяса» и «хадкора» а потом уже приближается к обычному пользователю.
Успехов!
UFO just landed and posted this here
UFO just landed and posted this here
Добрался таки до IOBroker, поставил. На ESP8266 с помощью интернета и какой-то матери удалось поднять NodeMCU и на нем MQTT клиента, передающего показания АЦП в IOBroker.
Дальше настал черёд Vis — установил пакет, открыл редактор — оооо, прикольно. Кнопочек много, функционал, похоже, хороший.
Но что делать дальше?!.. Как это всё работает? На какие кнопки жать, чтобы получился результат?(
Задумка и, возможно, реализация IObroker — очень даже хорошая, редактор интерфейсов, огромное количество каналов — это всё огонь.

Но… отсутствие какой-либо вменяемой исчерпывающей документации всё губит на корню((. Я не знаю что делать дальше и где искать ответы…
Как заменить стартовую страницу Vis на другую? Почему изменения на странице показываются в браузере но не показываются в мобильном приложении?..

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

Все это решается, как мне кажется, мануалами по типу quick start и в виде уроков «меняем цвет кнопки по срабатыванию датчика» или «отправляем имейл по сработке датчика» ну и всё в таком духе. Потому, что даже наличие Blocky сейчас особо не помогает — непонятно, что и как делать с системой дальше.
Почему изменения на странице показываются в браузере но не показываются в мобильном приложении?..

Чисто случайно спустя несколько часов увидел кнопку «синхр» в настройках мобильного приложения… Не дело это, конечно…
Sign up to leave a comment.

Articles

Change theme settings