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

В данной статье хочу осветить автоматизацию дома и как с помощью Open Source проекта освещать (и не только) свое уютное жилище. Ах да, чуть не забыл сказать, что вся автоматизация происходит на JavaScript!

Для всех любителей JS прошу под кат


Для начала, немного сухой теории и демагогии на тему умного дома.
Каждый понимает под этим термином что то своё. Кто-то включает свет в ванной с помощью датчика движения и считает дом уже умным, а для кого-то и дом из IronMan (J.A.R.V.I.S.) не достаточно умён, потому что этот дом в конце концов разнесли в пух и прах, а значит он не смог себя защитить от каких-то людишек на вертолётах.
Но шутки в сторону — все эти люди правы. Просто уровень «разума» дома тоже разный, как IQ у людей. Есть маленькие «дети», которые умеют включать лампочку, а есть, закончившие университет, «академики» и способные не только включать свет, но и выключать его :)

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

Список можно продолжить, но я хотел бы остановится на наиболее используемых направлениях. Для каждой области автоматизации существует своя система устройств, каждая со своими протоколами, приложениями и способами управления. На данный момент не существует ни одного производителя способного предоставить устройства в каждой из областей автоматизации. Но есть некоторые, которые продвинулись особенно далеко: Samsung, Google, Apple.
Каждый из производителей при этом, обязательно изобретает свой велосипед протоколов взаимодействия и никто не хочет уступать другому. Хотя протокол взаимодействия от google Weave кажется наиболее продуманным.

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

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

Настоящий умный дом должен быть незаметным. Должно быть лишь заметно, когда умный дом перестает работать.

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

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

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

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

Потом идёт бездетная молодая семья с умеренной любовью к техническим средствам. Важно что бы каждый из них не разлучался с сотовым телефоном.

Самым сложным случаем является семья с детьми (чем большее, тем сложнее). Дети просто не поддаются автоматизации. «Ну и что папа, что я забыл(а) телефон. Он мне во дворе не нужен.». И все скрипты распознавания нахождения людей в помещении и основанные на них правила включения сигнализации, оказываются бесполезными. (Мой случай)

Но давайте вернёмся всё же к тому как сделать всё это у себя дома и сделать своё место обитания комфортнее.

Что такое ioBroker?
Это интеграционная платформа для интернета вещей и служит центральным сервером для:
  • умного дома
  • автоматизации зданий
  • assisted living

*Кстати буду благодарен за перевод последнего термина.

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

Какая-то строительная фирма решила строить умное жильё в Гамбурге и они собрали все возможные устройства в одной квартире и предлагают для управления всем этим зоопарком восемь приложений для телефона (кстати только apple). Здесь мне надо, наверное, написать: ты можешь себе представить, восемь приложений, Карл!
С ioBroker это было бы не нужно.

ioBroker имеет очень модульную структуру. Каждый модуль бежит в отдельном процессе и при падении просто перезапускается и вся система работает дальше.

Отличие ioBroker от других систем автоматизации это модуль web визуализации в браузере — vis. На его разработку была затрачена половина времени необходимого для разработки всего ioBroker.



Также преимущество ioBroker заключается в огромном количестве доступных npm пакетов — 286000.

*Информация взята с http://www.modulecounts.com/.

Конечно качество пакетов не всегда на высоте, но как правило для одной и той же проблемы существует несколько разных пакетов и количество в данном случае перерастает в качество. Нужно лишь выбрать нужный пакет. Таким образом подключение новых протоколов лишь дело техники.
Я таким образом реализовал подключение OPC UA, Sonos, MQTT, Telegram, Pushover, Homematic, Z-Wave, Simatic и ещё большого количества других систем.

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

Open Source Альтернативы.

— OpenHAB — популярная Java платформа автоматизации. На данный момент насчитывается до 160 драйверов или модулей.

— FHEM — распространенная в Германии, система автоматизации на Perl с огромным количеством драйверов — 340. Вот только настройка системы оставляет желать лучшего и отсутствие стандартизированной мета-модели затрудняет расширение системы.

— MajorDomo — довольно зрелая платформа автоматизации на PHP. Можно найти множество статей об этой системе здесь на geektimes.

— Domoticz — система написанная на C/C++ с очень достойным графическим интерфейсом. Но за счет того, что на C/C++ трудно писать быстро, то с ограниченным набором драйверов/модулей.

Вообще много интересных систем автоматизации дома можно найти здесь. В основном разделение систем происходит по языкам программирования (Java, C/C++, Python, Javascript, PHP, ...) и по железу (Vera, Raspberry PI, Synology, Mediola, ...). Все они заслуживают право на существование хотя некоторые могут больше, а некоторые меньше.

На данный момент уровень технической подкованности людей, внедряющих систему автоматизации, довольно высок и они не падают в обморок от слов: линукс, консоль, apt-get. Но когда на форуме появился вопрос: «я установил систему, но не могу сменить папку home на папку ioBroker. Помогите!». Это был звоночек, что начинают подтягиваться не информатики и что систему могут использовать простые пользователи компьютеров.

Все интерфейсы настроек переведены на 3 языка, за исключением специфичных для германии драйверов. Ну зачем русскоговорящему пользователю драйвер поставляющий данные о ценах на бензин в Германии или предупреждения о непогоде от немецкой службы погоды?..
Также без перевода остались драйвера для сугубо русскоговорящего рынка, например драйвер автосигнализации starline.

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

Для написания интерфейса, сервиса и скриптов используется JavaScript. Один из широко распространённых и популярных языков программирования. Сейчас большую популярность набирает Python, но на питоне графическую оболочку для браузера не напишешь. (Да, я знаю о существовании py2js, но ещё не видел ничего достойного созданного этим)

Немного об Open Source проектах.
Как человек, участвующий в open source проекте, могу сказать: раньше я думал, что open source проекты пишутся тысячами людей со всего мира и что им легко написать всё, что угодно. Сейчас могу сказать, что за каждым open source стоит один (иногда в особо крупных проектах — группа людей) и что активны из сообщества лишь один процент пользователей. Просто у больших проектов количество пользователей миллионы и один процент от миллиона это десять тысяч людей. А вот у проектов поменьше это десятки или единицы индивидуумов. Также могу сказать, что один заинтересованный пользователь может сделать больше, чем десять незаинтересованных программистов и важно просто набрать массу пользователей и вероятность появления человека, способного внести весомую лепту становится больше.

Возможности
Я могу сказать, что возможности… безграничны. Помножите количество npm пакетов на количество железа и получится миллион возможностей включить лампочку:
— через telegram
— голосом
— rest API
— web визуализация
— android приложение
— интерфейс для телефонов и планшетов (mobile)
— 340 драйверов из FHEM
— MQTT

Да и ещё проект активно развивается и растёт на 3х языках.

Для заинтересовавшихся — google в помощь. И впредь — я попытаюсь описать не как работает вселенная, а как происходит сообщение между modbus устройством и атомной электростанцией.
Поделиться с друзьями
-->

Комментарии (107)


  1. Bluefox
    23.07.2016 00:05


    1. JohnnySmart
      23.07.2016 15:20
      +1

      Что ж вы так нервничаете-то… И что вас в openhab ужасает?


      1. Bluefox
        23.07.2016 15:21

        Тем, что все настройки там в конфиг-файлах и скриптах.


  1. Bluefox
    23.07.2016 00:08
    -3

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


    1. edd_k
      23.07.2016 02:46
      +1

      Просто прекратите задавать себе глупый вопрос «За что?» Раз есть кнопка — ее обязательно нажмут.
      А уж тем более — задавать этот вопрос в первые минуты/часы после публикации!

      Кто-то поставил минус. Не объяснил его. Человек может даже в комментарии не заглядывал и не будет. Он не прочтет вашего «За что?! Это не справедливо!». Зато прочтут остальные и подумают, что вы первый день в интернете ))


      1. Bluefox
        23.07.2016 15:24

        Да прекратил уже. Наверно день вчера был напряженный.
        А так я и не скрываю, что я первый день в интернете (как минимум в социальной его части). Обычно я сижу и работаю над проектом и все мои сайты ограничены сайтами с документацией и stackoverflow. :)
        Привыкну, перестану реагировать. :)


    1. Nizametdinov
      23.07.2016 14:31

      >>>Вот какой… ставит -1 на статью не поясняя ничего при этом?
      А что еще ждать, если поднимать\опускать статью позволяется кому угодно с одинаковым весом?
      Как и любой человек, написавший статью на 100% тебя понимаю. Считаю, что оценивать труд должен только равный, то есть оцивают статьи только те кто что то сами написали, а не как сейчас — любой «Не читал, но осуждаю!» (с).


      1. Vespertilio
        23.07.2016 14:54

        Разве не так работает? У меня нет статей и я не могу влиять на их рейтинг.


        1. Nizametdinov
          23.07.2016 15:00

          Неа не так :), право голосовать зависит от кармы https://geektimes.ru/info/help/karma/
          А она набирается и без статей насколько понимаю.


      1. mrMidas
        24.07.2016 18:33

        Равенства нет, тем более что это субъективный критерий, а выравнивание биологической системы к единому значению приводит к коллапсу и стагнации. Так что проблема не в качестве голосующих а в непонимании системы голосования. Статья — информация, которая изменяется от 0(нет информации) до +1(есть информация). Информация не имеет отрицательного значения и поэтому качество статьи невозможно оценить ничем кроме + (можно конечно кивать головой на энтропию, но это уже производная к процессу а не сам объект). Так что если интересует именно оценка качества/нужности/полезность, то имеет смысл обращать внимание только на плюсы относительно нулей. Минус же является социальным регулятором не имеющем прямого отношения к качеству статей. Образно говоря он является инквизитором для инакомыслящих (фактически реализует отрицательную обратную связь). Именно в силу этого на сегодня основания для "-" принципиально не формализуются, как впрочем любое явление из категории нравится-не_нравится. Тем более что нужно быть неординарной личностью что бы публично заявить о своём минусе… Это сразу выделит из общей массы и сделает инакомыслящим. Масса всегда безлика и памятлива...;)


  1. OlegXD
    23.07.2016 00:44
    +1

    Знаете, уважаемый, уже за такое Ваше отношение можно ставить «минус» (это был не я, не дорос ещё), надо стойко воспринимать подобные вещи.
    Сам работаю в сфере автоматизации, прочитал бегло ибо голова не настроена уже. Однако чисто интуитивно (внутренне) не верится в связь всего со всем.
    Видимо от понимания того, что подружить две железяки (устройство knx, например, и пк с этим ioBroker) всегда не просто. А здесь предлагается после этого процесса подружить ещё два компонента разных ioBroker друг с другом.
    Верно?


    1. Bluefox
      23.07.2016 01:03
      -5

      Просто это не первый комментарий и не на первом ресурсе. Да я уже в течении 2х лет держу такие нападки и если бы я был фирмой состоящий из меня и хотя бы одной секретарши, то, возможно, такие сообщения доходили бы до меня отфильтрованными мозгами той самой воображаемой секретарши, но пока секретарши не предвидится.
      Ставьте минус «за такое Ваше отношение». Ничего переживу.


      1. OlegXD
        23.07.2016 01:07
        +2

        Не совсем понимаю, о каких нападках речь — просто выразил своё мнение. Лучше бы по существу прокомментировали.


        1. Bluefox
          25.07.2016 16:06

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


    1. Bluefox
      23.07.2016 01:10

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


      1. h45242
        24.07.2016 12:32

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


        1. Bluefox
          26.07.2016 16:57

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


        1. Bluefox
          26.07.2016 18:07

          Вот это называется из коробки?
          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


          1. h45242
            26.07.2016 21:42

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

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

            а вот мажордомо и домотикс менеджером пакета ставятся одной командой и работают :)


            1. lingvo
              26.07.2016 22:10

              Ну да.
              Я тоже могу сказать, что 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 как?


              1. Bluefox
                27.07.2016 00:16

                То есть ты даже не знаешь, как в 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


              1. Bluefox
                27.07.2016 00:49


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


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





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


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



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


                Вот ещё (правда на немецком)


                1. lingvo
                  27.07.2016 12:50

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

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


                  1. Bluefox
                    27.07.2016 17:10

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


                    1. lingvo
                      27.07.2016 18:56
                      +1

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


              1. Bluefox
                27.07.2016 01:03

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

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


              1. Bluefox
                27.07.2016 09:37

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


      1. lingvo
        25.07.2016 12:10

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


        1. Bluefox
          25.07.2016 15:37

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


          1. stDistarik
            25.07.2016 20:29

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


            1. Bluefox
              26.07.2016 18:23

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


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


        1. Bluefox
          25.07.2016 15:40

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


  1. martiniman
    23.07.2016 00:54

    Визуальный редактор правил есть?


    1. Bluefox
      23.07.2016 00:54

      blockly достаточно визуален?


    1. Bluefox
      23.07.2016 01:23
      +2


      или node-red


  1. Bluefox
    23.07.2016 09:43

    Вчера появился новый драйвер для пылесосов Neato Botvac Connected.


  1. Nizametdinov
    23.07.2016 14:42

    Труд титанический, добавить нечего.
    Сижу на OpenHab, но уже местами рамки зажимают, а графики так вообще грусть печалька, хоть костыль чего сбоку.
    По MQTT в режиме брокера — правильно понимаю, что по умолчанию он транслирует все свое дерево устройств? По каким правилам?
    У меня например сейчас «ручное дерево», например для ночника у кровати:
    home/lamp_A/0 — нулевой канал лампы, на него подписан сервер, сюда шлет лампа при изменении состояния
    home/lamp_A/0/set — ветка установки состояния, на него подписана лампа, сюда шлет любое устройство, которое хочет поменять состояние этой лампы.
    Как в случае ioBrocker это будет работать из документации я не понял, проясни по возможности.


    1. Bluefox
      23.07.2016 15:36

      Графики писались пол года и переписывались 3 раза и только после этого ими стало нормально пользоваться. Хотя ещё есть много чего, что можно улучшить.
      Топики создаются автоматически из топологии устройств. Но есть возможность создать собственные названия и обновлять их через скрипты. Хочу только сказать, что это редко используется.
      Имя топика используется и для сообщения о статусе и для управления. При изменении состояния, сервер получает уведомление. Если необходимо переключить состояние, то при записи в топик оно воспринимается, как команда.


      1. Nizametdinov
        23.07.2016 15:46

        >>>Имя топика используется и для сообщения о статусе и для управления.
        Такая топология имеет минус — оконечное устройство не имеет канала для сообщения об отработки команды, не всегда set = get. Команда может быть не отработана (устройство отключено), может быть отработана с ощутимой задержкой (долгая операция, сервопривод например)


        1. Bluefox
          23.07.2016 17:12

          Ну для начала, речь идет о доме. Там из сервоприводов только ворота и жалюзи. Плюс можно создать два брокера, и по одному слать сообщения, а по другому получать. И в третьих я уже вечером перепишу драйвер, что бы можно было поставить галочку в настройках, что писать только через set. Спасибо за идею.
          В самом брокере у каждой переменной есть флаг, говорящий о том что это — команда или состояние.


          1. Nizametdinov
            23.07.2016 18:41

            >>>В самом брокере у каждой переменной есть флаг, говорящий о том что это — команда или состояние.
            Хм, очень похоже на openhab, каждая переменная биндится на две ветки — одну для состояния, вторая — для отправки команд.
            Может тебе так же сделать — у каждой переменной атрибут для биндинга на mqtt ветку.
            Если переменная состояние — она подписывается на эту ветку: home/lamp_A/0, если команда — шлет в home/lamp_A/0/set
            >>>можно было поставить галочку в настройках, что писать только через set
            Это топорно в лоб, пользователь может не использовать set, вариант как выше описал более гибкий ИМХО.


            1. instalator
              23.07.2016 19:13

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


              1. Nizametdinov
                23.07.2016 19:26

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


                1. instalator
                  23.07.2016 19:31

                  топик один

                  Заголовок спойлера
                  image


            1. Bluefox
              23.07.2016 19:33

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


              • Клиент шлёт команду "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".

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


              1. Nizametdinov
                23.07.2016 19:58

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


              1. Nizametdinov
                23.07.2016 20:21

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


                1. Bluefox
                  23.07.2016 20:39

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


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



                  1. Nizametdinov
                    23.07.2016 21:04

                    А зачем?

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


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

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


                    1. Bluefox
                      23.07.2016 22:43

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


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


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


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


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


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

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


                      1. Nizametdinov
                        23.07.2016 22:50

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

                        На esp8266 смотри, например https://www.itead.cc/smart-socket-eu.html


                        1. Bluefox
                          23.07.2016 22:56

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


                      1. Bluefox
                        24.07.2016 00:09

                        https://github.com/ioBroker/ioBroker.mqtt#changelog


                        1.1.0 (2016-07-23)
                        add new setting: Use different topic names for set and get


                      1. lingvo
                        26.07.2016 11:14

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


                        1. Jaromir
                          26.07.2016 15:38

                          > Лично я стараюсь все привести к нему

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

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


                        1. Bluefox
                          26.07.2016 16:34

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


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


                          1. lingvo
                            26.07.2016 18:42
                            +1

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


                            1. Bluefox
                              26.07.2016 18:57

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


                              1. lingvo
                                26.07.2016 22:17

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


                      1. h45242
                        26.07.2016 21:54

                        >Да не буду я лампу по MQTT подключать

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


                        1. Bluefox
                          26.07.2016 23:12

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


  1. Valerij56
    23.07.2016 17:13

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


    1. Bluefox
      23.07.2016 17:14

      Ну это и есть конечная цель. Уже есть интересующиеся.


  1. Varkus
    23.07.2016 17:14

    прекратил читать на «вся автоматизация происходит на JavaScript».

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

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


    1. Bluefox
      23.07.2016 17:27

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

      Память это действительно ахилесова пята. Но слава прогрессу, мини компьютеров уже достаточно с 2мя Gb и как раз на них ioBroker показывает отличную стабильность.
      Но зато, как положительная черта у JS имеется огромная гибкость и разнообразие готовых модулей.


      1. lingvo
        25.07.2016 12:04

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

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


        1. Bluefox
          25.07.2016 15:27

          На самом деле время отклика очень важно для домашнего управления

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


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

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


          1. lingvo
            25.07.2016 16:29

            Нет, но например, в случае с электрожалюзями угол ламелей регулируется путем включения мотора открытия/закрытия в обратном направлении. Лично у меня угол меняется на 180° за 1,5с работы мотора. Поэтому важно, чтобы контроллер УД выдавал команды с определенным интервалом, а не +-2 секунды.


            1. Varkus
              25.07.2016 18:53

              а вот здесь напрашивается костылеще из атмел(пик) или ардуинки для «реалтайм-драйвера» жалюзей, а брокер уже общается с этим «драйвером» :)


              1. lingvo
                26.07.2016 11:33

                «Костыли» можно было бы исправить путем переписки драйвера нормальным программистом, так как в платных системах УД такого эффекта нет при тех же интерфейсах — значит там более грамотно подощли к вопросу.


                1. Bluefox
                  26.07.2016 16:53

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


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


                  1. Varkus
                    28.07.2016 03:53
                    +1

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

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


  1. Chervon
    23.07.2016 22:28

    Много рекламы, что подключить к ioBroker можно всё, а в первой части статьи автор говорит что ему(автору) много не нужно для семьи и автор сам не определился, что можно сделать с этим всем.
    Это как, есть конструктор из которого могу собрать всё, но мне мало что нужно!

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


    1. Bluefox
      23.07.2016 22:53

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


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


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


  1. h45242
    24.07.2016 11:47

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


  1. Bluefox
    24.07.2016 11:53

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


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


    1. h45242
      24.07.2016 12:29

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

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

      и да, mqtt уже соответствует rfc?


      1. Bluefox
        24.07.2016 16:35

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

        и да, mqtt уже соответствует rfc?
        Я так понимаю, что речь идёт о LWT?
        Мне везде приходится расставлять приоритеты. Эта функция не имеет для меня высшего приоритета. При 90 драйверах приходится это делать. Какое это имеет практическое применение (substitute values) в домашней автоматизации?


        1. h45242
          26.07.2016 21:49

          из коробки — это поставил и заработало.
          http://forum.iobroker.net/viewtopic.php?f=27&t=2889

          про mqtt ответили выше.


          1. Bluefox
            26.07.2016 23:13

            1. h45242
              27.07.2016 14:18

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


              1. Bluefox
                27.07.2016 17:20

                Ну от вас, я так и не увидел ссылки на 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 из коробки...


                1. h45242
                  28.07.2016 18:39

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


          1. Bluefox
            27.07.2016 17:30

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


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


            1. h45242
              28.07.2016 18:51

              может быть и очень старый.
              какой автор на официальном форуме посоветовал — тот и стоит.


  1. stDistarik
    24.07.2016 16:36

    А где инструкция по применению?


    1. Bluefox
      24.07.2016 16:37

      Даже на русском: http://www.iobroker.net/?page_id=4268&lang=ru


      1. stDistarik
        24.07.2016 18:47

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

        Зашёл по адресу, увидел картинку, а что делать дальше? У меня есть ардуина, как её подключить и помигать светиком?


        1. Saenco
          24.07.2016 21:14

          Может помогу советом, так как у меня опыт работы аж пол часа(может чуть больше).

          Поставил систему на 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)

          Как-то так.
          Буду рад, если смогу чем то помочь.


          1. stDistarik
            24.07.2016 22:17

            Дык как ардуину то припакать к это системе?


            1. Bluefox
              24.07.2016 22:36

              Зайдите на форум. Там уже есть такой топик:
              http://forum.iobroker.net/viewtopic.php?f=16&t=714


  1. Jaromir
    24.07.2016 23:33
    +1

    > Хотя протокол взаимодействия от google Weave кажется наиболее продуманным

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

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

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

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

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


    1. Bluefox
      25.07.2016 10:28

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


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

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


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


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


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


      1. Jaromir
        25.07.2016 12:09

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

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


        1. Bluefox
          25.07.2016 15:48

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


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


    1. stDistarik
      25.07.2016 20:38

      del


  1. LEKAPb
    25.07.2016 08:50

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


    1. Bluefox
      25.07.2016 10:17

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


      1. Bluefox
        25.07.2016 10:30

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


    1. lingvo
      25.07.2016 13:01

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


      1. Bluefox
        25.07.2016 15:56

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


  1. techmike
    25.07.2016 12:13

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


  1. stilet69
    25.07.2016 17:36

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


    1. Bluefox
      26.07.2016 00:36

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


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


      https://telegram.me/SmartsHome


      1. stDistarik
        26.07.2016 03:22
        +1

        Дайте конкретную ссылку на то, где можно прочесть о подключении ардуны к Вашей системе или напишите сами. Не надо посылать «туда не знаю куда», это неприлично.


        1. Bluefox
          26.07.2016 09:44

          http://www.iobroker.net/?page_id=4643&lang=ru


          Доходите до фразы:
          //Подключаем библиотеки


          1. stDistarik
            27.07.2016 21:59

            Спасибо.