Домашняя автоматизация с ioBroker

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

    В данной статье хочу осветить автоматизацию дома и как с помощью 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 устройством и атомной электростанцией.
    Поделиться публикацией

    Похожие публикации

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

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

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

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

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

                        0

                        Вот это называется из коробки?
                        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
                          0
                          так толсто, что даже скучно…
                          вообще я говорил про «работает», но если хочется про установку поговорить…
                          в инструкции мажордомо речь про установку всех зависимостей, редактора, ссх. смотреть зависимости ноде лень.
                          в инструкции опенхаба теже несколько команд.

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

                          а вот мажордомо и домотикс менеджером пакета ставятся одной командой и работают :)
                            0
                            Ну да.
                            Я тоже могу сказать, что 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 как?
                              0

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

                                0

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


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





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


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



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


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

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

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

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

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

                                    0

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

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

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

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

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


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

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

                                0

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


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


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

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

                                    или node-red
                                    0
                                    Вчера появился новый драйвер для пылесосов Neato Botvac Connected.
                                      0
                                      А для Румбы 960/980 без костылей вроде RooWifi есть драйвер?
                                      0
                                      Труд титанический, добавить нечего.
                                      Сижу на OpenHab, но уже местами рамки зажимают, а графики так вообще грусть печалька, хоть костыль чего сбоку.
                                      По MQTT в режиме брокера — правильно понимаю, что по умолчанию он транслирует все свое дерево устройств? По каким правилам?
                                      У меня например сейчас «ручное дерево», например для ночника у кровати:
                                      home/lamp_A/0 — нулевой канал лампы, на него подписан сервер, сюда шлет лампа при изменении состояния
                                      home/lamp_A/0/set — ветка установки состояния, на него подписана лампа, сюда шлет любое устройство, которое хочет поменять состояние этой лампы.
                                      Как в случае ioBrocker это будет работать из документации я не понял, проясни по возможности.
                                        0
                                        Графики писались пол года и переписывались 3 раза и только после этого ими стало нормально пользоваться. Хотя ещё есть много чего, что можно улучшить.
                                        Топики создаются автоматически из топологии устройств. Но есть возможность создать собственные названия и обновлять их через скрипты. Хочу только сказать, что это редко используется.
                                        Имя топика используется и для сообщения о статусе и для управления. При изменении состояния, сервер получает уведомление. Если необходимо переключить состояние, то при записи в топик оно воспринимается, как команда.
                                          0
                                          >>>Имя топика используется и для сообщения о статусе и для управления.
                                          Такая топология имеет минус — оконечное устройство не имеет канала для сообщения об отработки команды, не всегда set = get. Команда может быть не отработана (устройство отключено), может быть отработана с ощутимой задержкой (долгая операция, сервопривод например)
                                            0
                                            Ну для начала, речь идет о доме. Там из сервоприводов только ворота и жалюзи. Плюс можно создать два брокера, и по одному слать сообщения, а по другому получать. И в третьих я уже вечером перепишу драйвер, что бы можно было поставить галочку в настройках, что писать только через set. Спасибо за идею.
                                            В самом брокере у каждой переменной есть флаг, говорящий о том что это — команда или состояние.
                                              0
                                              >>>В самом брокере у каждой переменной есть флаг, говорящий о том что это — команда или состояние.
                                              Хм, очень похоже на openhab, каждая переменная биндится на две ветки — одну для состояния, вторая — для отправки команд.
                                              Может тебе так же сделать — у каждой переменной атрибут для биндинга на mqtt ветку.
                                              Если переменная состояние — она подписывается на эту ветку: home/lamp_A/0, если команда — шлет в home/lamp_A/0/set
                                              >>>можно было поставить галочку в настройках, что писать только через set
                                              Это топорно в лоб, пользователь может не использовать set, вариант как выше описал более гибкий ИМХО.
                                                0
                                                если устройство выполнило команду то можно отослать подтверждение и не нужно плодить кучу топиков.
                                                  0

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

                                                    0
                                                    топик один
                                                    Заголовок спойлера
                                                    image

                                                  0

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


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

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

                                                    0

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

                                                      0

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

                                                        0

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


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


                                                          0
                                                          А зачем?

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


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

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

                                                            0

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


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


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


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


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


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

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

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

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

                                                                0

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

                                                                0

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


                                                                1.1.0 (2016-07-23)
                                                                add new setting: Use different topic names for set and get
                                                                  0
                                                                  MQTT вполне может быть сердцем домашней автоматизации. Лично я стараюсь все привести к нему. Это удобно:
                                                                  — удобная отладка: подписавшись на все топики в MQTT вы полностью видите обмен между устройствами во всех направлениях и можете легко проследить какие команды были получены и какие статусы обновлены. У меня такой подписчик пишет все принятые сообщения в файл вместе с временными штампами и потом этот файл можно спокойно открыть в екселе и отфильтровать нужные топики для анализа. Я даже event log OpenHABа просматриваю таким образом, так как MQTT в этом случае его просто копирует.
                                                                  — удобное подключение своих девайсов: У меня из готовых MQTT устройств к стене прибит андроидный планшет с кастомным GUI для отображения погоды и управления освещением, диммерами и жалюзями в комнате. Там крутится бесплатная аппликуха с MQTT интерфейсом.
                                                                    0
                                                                    > Лично я стараюсь все привести к нему

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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


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


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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

                                                                      Поставил систему на 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
                                                                > Хотя протокол взаимодействия от google Weave кажется наиболее продуманным

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

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

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

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

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

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


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

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


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


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


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

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

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

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


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

                                                                    0
                                                                    del

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

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

                                                                        0

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

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

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

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

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


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


                                                                            https://telegram.me/SmartsHome

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

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

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

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

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

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

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

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

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

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

                                                                            Дак так и есть. никаких апачей и пхп вообще не нужно. нужен только nodejs
                                                                              0
                                                                              А по ссылке видимо не той ходили http://www.iobroker.net/?page_id=2630&lang=ru#_Windows
                                                                              0
                                                                              Добрался таки до IOBroker, поставил. На ESP8266 с помощью интернета и какой-то матери удалось поднять NodeMCU и на нем MQTT клиента, передающего показания АЦП в IOBroker.
                                                                              Дальше настал черёд Vis — установил пакет, открыл редактор — оооо, прикольно. Кнопочек много, функционал, похоже, хороший.
                                                                              Но что делать дальше?!.. Как это всё работает? На какие кнопки жать, чтобы получился результат?(
                                                                              Задумка и, возможно, реализация IObroker — очень даже хорошая, редактор интерфейсов, огромное количество каналов — это всё огонь.

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

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

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

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

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

                                                                              Самое читаемое