1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 5

OpenHAB - обмен опытом, совместное изучение и т. п

Тема в разделе "Умный дом", создана пользователем Anton66, 15.03.14.

  1. mentew
    Регистрация:
    06.01.14
    Сообщения:
    2.703
    Благодарности:
    19.491

    mentew

    Живу здесь

    mentew

    Живу здесь

    Регистрация:
    06.01.14
    Сообщения:
    2.703
    Благодарности:
    19.491
    Адрес:
    Россия
    Старую версию не использовал, небольшой отзыв по новой версии уже писал ранее. Работает OH2 вот уже почти полгода, проблем не заметил.

    Насколько я понимаю, основное отличие от первой версии это автоматический поиск оборудования, но я его не использую, предпочёл старый вариант с sitemap. Да и биндингов с поддержкой Things пока маловато. Из опробованного Хромкаст биндинг моментально находит все устройства в сети и предлагает их подключить. После подключения все работает. Ещё пробовал бета версии биндингов для ТВ Sony и спутниковых ресиверов на базе Enigma2, они работают пока криво. Первый так и не смог найти мои два ТВ Sony в сети, а во втором пока функций маловато.

    Через OH2 у меня идёт управление светом, контроль температуры в помещениях, просмотр изображений с камеры, просмотр состояния котла. Ближе к зиме, когда включу отопление, попробую связать датчики температуры в доме с котлом для автоматического регулирования температуры (на данный момент котёл регулирует температуру подачи только по 2 датчикам: в дистанционной панели управления и датчику на улице).
     
  2. alexeyand
    Регистрация:
    13.01.14
    Сообщения:
    199
    Благодарности:
    61

    alexeyand

    Живу здесь

    alexeyand

    Живу здесь

    Регистрация:
    13.01.14
    Сообщения:
    199
    Благодарности:
    61
    Адрес:
    Philadelphia, Pennsylvania
    Пару месяцев назад обновился до 2, все работает, ничего не отваливается. из плюсов - habpanel
    причин откатывать на 1 нет
     
  3. mentew
    Регистрация:
    06.01.14
    Сообщения:
    2.703
    Благодарности:
    19.491

    mentew

    Живу здесь

    mentew

    Живу здесь

    Регистрация:
    06.01.14
    Сообщения:
    2.703
    Благодарности:
    19.491
    Адрес:
    Россия
    @alexeyand, до вашего сообщения на habpanel даже не обращал внимания, а сейчас сел, поигрался, удобная штука, спасибо за наводку :hello:.
     
  4. vshaev
    Регистрация:
    23.05.16
    Сообщения:
    97
    Благодарности:
    37

    vshaev

    Живу здесь

    vshaev

    Живу здесь

    Регистрация:
    23.05.16
    Сообщения:
    97
    Благодарности:
    37
    Тоже перешел на вторую версию. Недавно обновился до 2.1. Работают три экземпляра. В квартире и загородном доме.
    По сравнению с первой версией конечно же стабильность и удобство с привязками и их количеством выше. Удобный конфигуратор системы. Добавили миграцию системы на usb ssd/hdd/ Актуально для arm устройств. Так же добавили резервное копирование. Вместе с системой можно сразу устанавливать mqtt. influxdb. grafana и ещё кучу чего.
    В habpanel я разочарован. Замерзает и тупит на трех планшетах. ios и андроид - без разницы. Перепробовал кучу браузеров - без толку. Постоянно надо перезагружать или обновлять и т. д. Для стариков в доме - не реально. А они за городом - основные пользователи. На десктопе работает нормально - но это не выход.
    Поэтому для контроля и визуализации использую Grafana. Для управления - базовый интерфейс.
     
  5. mentew
    Регистрация:
    06.01.14
    Сообщения:
    2.703
    Благодарности:
    19.491

    mentew

    Живу здесь

    mentew

    Живу здесь

    Регистрация:
    06.01.14
    Сообщения:
    2.703
    Благодарности:
    19.491
    Адрес:
    Россия
    @vshaev, подскажите, пожалуйста, а вы графики из Grafana встраивали в sitemap OpenHAB'а? У меня уж больно долго они грузятся (гружу как картинку через Image), если использовать вместо родного Graph.
     
  6. vshaev
    Регистрация:
    23.05.16
    Сообщения:
    97
    Благодарности:
    37

    vshaev

    Живу здесь

    vshaev

    Живу здесь

    Регистрация:
    23.05.16
    Сообщения:
    97
    Благодарности:
    37
    Нет. Ещё на первой версии мне это не понравилось. Встроенного достаточно для примерной оценки. Для более глубокого анализа графана конечно удобнее. И уведомления можно настроить бет нудных правил в openhab.
     
  7. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Решил начать исследования связки Openhab2 + MQTT.

    Для этого установил брокер
    Установка проста.
    $ sudo apt-get install mosquitto mosquitto-clients

    После установки сервер (брокер) сразу готов к использованию.
    Проверяем как работает.
    Открываем 2 сессии (2 терминала)
    В одном вводим команду подписки на канал /test
    $ mosquitto_sub -h localhost -t /test

    На втором терминале вводим команду постинга в топик /test

    $ mosquitto_pub -h localhost -t /test -m "hello world"

    После ввода команды на втором терминале, в первом терминале отобразится
    hello world

    MQTT брокер mosquitto установлен и исправно работает.

    Переходим к настройке OH2.
    Для этого необходимо в Paper UI
    add-ons -> bindings найти
    MQTT Binding
    и инсталлировать его в систему (предварительно в настройках системы необходимо указать поддержку биндингов версии OH1)

    Настройка MQTT в OH2 \etc\openhab2\services\mqtt.cfg
    Код:
    #
    # Define your MQTT broker connections here for use in the MQTT Binding or MQTT
    # Persistence bundles. Replace <broker> with an ID you choose.
    #
    
    # URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
    #<broker>.url=tcp://<host>:1883
    mosquitto.url=tcp://localhost:1883
    
    Достаточно указать только адрес брокера и порт (порт по умолчанию 1883)

    Добавляем Items
    В данном примере значение будет интерпретироваться как Number
    Этот пример иллюстрирует передачу значения из OH в топик.

    Number smqtt "smqtt.test [%d]" {mqtt=">[mosquitto:/test:command:*:${command}]" }
    Теперь если в консоли OH2 присвоить значение smqtt например 2

    Запись значения в item с консоли OH2
    openhab> smarthome: send smqtt 5658

    то это же значение Вы увидите в первом терминале, где прослушивали канал
    $ mosquitto_sub -h localhost -t /test

    Для чтения значений из топиков в OH в item указать:
    Number smqtt "smqtt.test [%d]" {mqtt="<[mosquitto:/test:state:default]" }

    Запуск консоли OH2
    $ ssh openhab@localhost -p 8101

    Запись значения в item с консоли OH2
    openhab> smarthome: send smqtt 5658

    Чтение item в консоли OH2
    openhab> smarthome: status smqtt

    Вывод лога
    openhab> log: tail

    =

    Я делаю только первые шаги в изучении данного сервиса.
    Поэтому прошу тех, кто уже использует MQTT поделиться своими знаниями.
    И первый вопрос:
    Можно ли использовать одну переменную для записи и чтения? Нужно ли как-то разносить по топикам?
    Если не затруднит то приложите элементы кода с коментами, что бы быстрее и проще было понять как это правильно применять.
    Отдельная переменная - отдельный топик или один топик - одна процедура и внутри разбирать по переменным?
     
    Последнее редактирование: 12.09.17
  8. Andrei81
    Регистрация:
    11.01.11
    Сообщения:
    1.305
    Благодарности:
    1.497

    Andrei81

    Проектирую

    Andrei81

    Проектирую

    Регистрация:
    11.01.11
    Сообщения:
    1.305
    Благодарности:
    1.497
    Адрес:
    Глаголево
    После установки MQTT биндинга надо еще mqtt. cfg править - открывать закомменченные строки: broker. url=tcp:/localhost:1883 и broker. clientId=openhab. Как-то странно работать с ОН через консоль, если есть Eclipse SmartHome Designer. Для контроля отправки устройствами или ОН сообщений, рекомендую использовать прогу mqttfx.
    Не понял вопроса. Есть топик. Устройство может писать в этот топик (отправлять значения переменной). Другие устройства, если подписаны на этот же топик, то смогут читать этот топик (узнавать значения переменной).
    Код:
    Switch LIGHT1 "Свет фронтальный под навесом" <light> {mqtt=">[broker:naves/light1/in:command:ON:1], >[broker:naves/light1/in:command:OFF:0], <[broker:naves/light1/out:state:ON:1], <[broker:naves/light1/out:state:OFF:0]"}
    String VOROTA_STATE "Ворота [%s]" <alarm> {mqtt="<[broker:vorota/vorota_state:state:default]"}
    Switch VOROTA_OPEN "Открыть/закрыть" <door-closed> {mqtt=">[broker:vorota/operate:command:ON:1]"}
    String KOLODCI_ALL "Дрен. колодцы [%s]" <cistern> {mqtt="<[broker:kolodci/alarm:state:default]"}
    Number ULICA_TEMPERATURE "Температура на улице [%.1f °C]" <temperature> {mqtt="<[broker:naves/temperature:state:default]"}
    
    Один топик - одно значение. Но топики могут быть вложены. Например общий топик vorota. А в нем куча подтопиков. vorota/state, vorota/open, vorota/time, naves/light/in, naves/light/out и т. д.
     
    Последнее редактирование: 12.09.17
  9. lingvo
    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458

    lingvo

    Живу здесь

    lingvo

    Живу здесь

    Регистрация:
    25.11.15
    Сообщения:
    1.416
    Благодарности:
    458
    Вместо того, чтобы вписывать топики в каждый item, советую включить MQTT event bus binding в services/mqtt-eventbus.cfg. Тогда OH будет публиковать состояния всех items на брокер и будет подписан так, что можно будет изменять состояния всех items через нужные топики. Возни гораздо меньше.
     
  10. Andrei81
    Регистрация:
    11.01.11
    Сообщения:
    1.305
    Благодарности:
    1.497

    Andrei81

    Проектирую

    Andrei81

    Проектирую

    Регистрация:
    11.01.11
    Сообщения:
    1.305
    Благодарности:
    1.497
    Адрес:
    Глаголево
    Возни меньше, нагрузка на ОН намного больше.
     
  11. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Код:
    Switch LIGHT1 "Свет фронтальный под навесом" <light> {mqtt=">[broker:naves/light1/in:command:ON:1], >[broker:naves/light1/in:command:OFF:0], <[broker:naves/light1/out:state:ON:1], <[broker:naves/light1/out:state:OFF:0]"}
    item LIGHT1
    Получает значение из топика broker: naves/light1/out
    а записывает значение в топик broker: naves/light1/in

    Предположим у Вас ОН с которого Вы управляете освещением и есть еще одно устройство (назовем Б), которое тоже посредсвом mqtt может управлять светом т. е. топиком broker: naves/light1/in
    И есть исполнительно устройство, которое прочитав значение broker: naves/light1/in и если там 1 реально включает свет.

    На компе в ОН, Вы сдвигаете переключатель LIGHT1 OFF
    В топик broker: naves/light1/in записалось значение 0

    Устройство Б решило включить освещение и запостило в топик broker: naves/light1/in значение 1

    Вопрос: Как это отобразится в интерфейсе ОН? В каком положении будет Swith LIGHT1?
     
  12. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Можно подробнее и с примером?
     
  13. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Почему больше?
    Можно указать только конкретные items?
     
  14. Andrei81
    Регистрация:
    11.01.11
    Сообщения:
    1.305
    Благодарности:
    1.497

    Andrei81

    Проектирую

    Andrei81

    Проектирую

    Регистрация:
    11.01.11
    Сообщения:
    1.305
    Благодарности:
    1.497
    Адрес:
    Глаголево
    out - это статус. Когда я включаю свет не с ОН, а с других ус-в, то когда исполнительное ус-во включит свет, то в топик out идет 1. В интерфейсе ОН переключатель сдвигается в положение ON и иконка лампочки меняется с серого цвета, на желтый. А "in" - это именно команда исполнительному устройству на включение света.
    Да, все так.
    Потому что ОН будет получать и обрабатывать все значения от брокера, а не только те, на которые подписан. А у меня ОН работает на RPI3. Поэтому мне этого не надо.
     
  15. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Если этим исполнительным устройством будет ПЛК, то в нем необходимо иметь две переменные. Одна для команд и вторая для состояния (например релюшки).