Arduino, ESP8266 Lua, Raspberry Pi 2 && OpenHab. Умный дом: азы управления.

Тема в разделе "Глядите, что я сделал", создана пользователем ИгорьК, 12 май 2015.

  1. Smerlin

    Smerlin Нерд

    Тоже была такая ерунда, OpenHab запущен как сервис, лечил "костылем":
    Идем в директорию демонов (звучит апокалиптически:D) /etc/init.d/
    Там находим *openhab
    он примерно следующего содержания
    Код (C++):
    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides:          openhab
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: OpenHAB Daemon
    # Description: Build your smart home in no time!
    ### END INIT INFO

    ROOT_DIR=/opt/openhab

    # set path to eclipse folder. If local folder, use '.'; otherwise, use /path/to/eclipse/
    eclipsehome="$ROOT_DIR/server";

    # set ports for HTTP(S) server
    HTTP_PORT=8080
    HTTPS_PORT=8443

    # get path to equinox jar inside $eclipsehome folder
    cp=$(find $eclipsehome -name "org.eclipse.equinox.launcher_*.jar" | sort | tail -1);

    # This next line determines what user the script runs as.
    # Root generally not recommended but necessary if you are using the Raspberry Pi GPIO from Python.
    #USER=root
    DAEMON_USER=root
    DAEMON_NAME=openhab

    DAEMON=/usr/bin/java
    DAEMON_ARGS="-Djna.boot.library.path=/usr/lib/jni -Dgnu.io.rxtx.SerialPorts=/dev/ttyAMA0 -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Djetty.port=$HTTP_PORT -Djetty.port.ssl=$HTTPS_PORT -Djetty.home=. -Dlogback.configurationFile=configurations/logback.xml -Dfelix.fileinstall.dir=addons -Djava.library.path=lib -Djava.security.auth.login.config=./etc/login.conf -Dorg.quartz.properties=./etc/quartz.properties -Dequinox.ds.block_timeout=240000 -Dequinox.scr.waitTimeOnBlock=60000 -Dfelix.fileinstall.active.level=4 -Djava.awt.headless=true -jar $cp $* -console "
    PIDFILE=/var/run/$DAEMON_NAME.pid

    . /lib/lsb/init-functions

    do_start() {  
      log_daemon_msg "Starting system $DAEMON_NAME daemon"
      start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user $DAEMON_USER --chuid $DAEMON_USER --chdir $ROOT_DIR --exec $DAEMON -- $DAEMON_ARGS
      log_end_msg $?
    }
    do_stop() {
      log_daemon_msg "Stopping system $DAEMON_NAME daemon"
      start-stop-daemon --stop --pidfile $PIDFILE --retry 10
      log_end_msg $?
    }

    case "$1" in

        start|stop)
            do_${1}
            ;;

        restart|reload|force-reload)
            do_stop
            do_start
            ;;

        status)
            status_of_proc "$DAEMON_NAME" "$DAEMON" && exit 0 || exit $?
            ;;
        *)
            echo "Usage: /etc/init.d/$DAEMON_NAME {start|stop|restart|status}"
            exit 1
            ;;

    esac
    exit 0
    прописываем что-то вроде LANG=ru_RU.UTF-8; export LANG;
    например после ROOTDIR
    Сохраняем и рестартимся полностью, и все.
    У меня больше не было кракозябр на яндексе и все на русском.
     
    Последнее редактирование: 30 янв 2017
    ИгорьК и dimksum нравится это.
  2. dimksum

    dimksum Нерд

    Ок, спасибо!!
     
  3. Smerlin

    Smerlin Нерд

    Установил аддоны 1.9.0 на движок 1.8.3 - все работает как и раньше, ничего не сломалось. Короче не интересно. Решил все же ставить Опенхаб 2.0.0, только не знаю когда дойдут руки.
     
  4. ИгорьК

    ИгорьК Гуру

    Посмотрел ОН2.
    Мой вывод: пора ставить. Но попить кофе перед этим миниум год. Завтра, если будет время, попробую обосновать.
     
    Последнее редактирование: 31 янв 2017
  5. faster_light

    faster_light Нерд

    Вот это правильно! Ждем с нетерпением.
     
  6. ИгорьК

    ИгорьК Гуру

    ОН2. Что хорошо.

    1. Установка НА МАЛИНУ очень прикольная: записал маленький имидж на флэшку, воткнул в малину, прицепил ее шнурком к сети и через час-полтора получил работающий ОН2 да с москитом и еще чем-то там впридачу.
    2. Легкая графическая установка плагинов.
    3. Автоматическое опеределение устройств в сети, поддерживаемых плагинами 2.0.

    Что плохо.
    Много что. Создали тучу графических интерфейсов. Однако ни один из них не решает задач управления ОН полностью. Ниже - таблица:
    oh.jpg

    Все задачи решает лишь, КАК И В ОН1, Eclipse SmartHome Designer - такой же текстовый редактор.
    Чтобы понять как все это работает - требуется куча времени, но это время ничем не окупается - в конце концов sitemap придется править руками, как и писать правила.

    Как итог. ОН2 попытались подточить под чайников. Попытка хорошая, но до конца еще очень очень много времени.

    К настоящему моменту, ИМХО, чайнику проще с ОН1.
    Автоматическое определение устройств вещь хорошая, НО(!!!!) у многих ли здесь присутствующих в доме работают KNX или ZigBee устройства? Полагаю - нет. А вот устройств с протоколом MQTT, уверен, хватает.
    Так вот плагин MQTT в ОН2 все еще от первого, и, значит, все наши самоделки им пока поддерживаются в режиме ОН1.

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

    Вот такой краткий обзор.
     
    SergeiL и alp69 нравится это.
  7. alp69

    alp69 Форумчанин

    Смотрю правила в habmin можно не только руками задавать? Однако использование habmin'а как такового (с ОН1.х) вызвало негативное впечатление. В частности:
    1. Неподдерживаемая кириллица в редакторе правил (необходимо для создания отправляемых PUSH-сообщений).
    2. Несанкционированные изменения в sitemap, которые habmin вносит при сохранении файла *.sitemap.
    3. Отображение в списке правил не файлов *.rules, а всех правил во всех файлах. Причем когда выбираешь в списке какое-нибудь правило, зарытое в середине файла, все равно попадаешь в начало этого файла. Жутко неудобно. Смысл списка теряется.
    4. Много по мелочи... Сейчас уже и не вспомню.
    Итог - полный отказ от habmin'а с переходом на текстовый редактор.
     
    Последнее редактирование: 1 фев 2017
  8. dobrMAN

    dobrMAN Нерд

    У меня OH2 телевизоры сам находит :D Только один вопрос встал, а зачем это мне надо?
    В целом да, смысл есть начинать с OH2, но если уже все отлажено на OH1, то переходить пока смысла нет, разве что заняться нечем, хуже не станет.
     
  9. dimm71

    dimm71 Нерд

    ИгорьК, Вы говорили, что есть наброски управления "розетки-таймера" Удалось ли продвинуться в этом направлении?
     
  10. ИгорьК

    ИгорьК Гуру

    Может не я говорил?
    Сделать это, конечно, можно, но смысл такого устройствам мне до конца не понятен, поэтому никогда руки не доходили.
    В принципе, это MQTT реле из пункта 6 и передача ему команд через cron ( плюс см. здесь), если мы говорим о работе через OH.
     
  11. dimm71

    dimm71 Нерд

    Спасибо. Буду разбираться.

    И ещё вопрос: это только у меня на новой прошивке enduser setup не работает? При пропадании сети AP появляется на 10 сек. и отваливается.

    Никогда не собирал прошивки из исходников. А видимо придется. Есть у кого-нибудь инструкция как это сделать? Исходники скачал отсюда https://github.com/nodemcu/nodemcu-firmware/releases/tag/1.5.4.1-master_20161001
     
    Последнее редактирование: 1 фев 2017
  12. SergeiL

    SergeiL Оракул Модератор

    Полностью согласен.

    Ставил на Raspberry 3 в декабре (третий пока используется только для тестов, дома работает второй с OH V.1.8). Тогда V.2.0 была еще бета, помню, что какой то из аддонов долго не мог настроить, какой, не могу вспомнить.

    Решил попробовать OH v.2.0 из за интеграции с Apple Home Kit.

    С айфоном все заработало довольно быстро, но поигравшись два дня с голосовым управлением - успокоился.

    Также было выяснено, что для возможности управления Apple Home Kit не из домашней сети нужно что-то типа Apple TV3, в виде домашнего сервера.

    В общем, не увидел ничего, что бы привлекло для перехода на V.2.0
     
    ИгорьК нравится это.
  13. ИгорьК

    ИгорьК Гуру

    А зачем? Чем заказ на сайте не устраивает?
    Инструкции здесь: https://nodemcu.readthedocs.io/en/master/en/build/

    Кстати, SDK объявлено уже 2.0 и nodemcu на него переполз. Ждем новых багов :)
     
  14. dimm71

    dimm71 Нерд

    Если собирать прошивку на сайте, то почему то не работает enduser setup. На старых прошивках работает, но не работает SNMP (нет модуля epoch2cal) Вот и пришлось собрать из исходников. Вроде сейчас всё заработало. Нужно немного потестировать. Собирал через Docker в Linux. Там не сложно, могу подробнее расписать, если нужно.
     
    ИгорьК нравится это.
  15. ИгорьК

    ИгорьК Гуру

    alp69 нравится это.
  16. dimm71

    dimm71 Нерд

    Идем за исходниками сюда https://github.com/nodemcu/nodemcu-firmware/releases/
    Скачиваем нужный и сохраняем в домашнюю папку.
    Я не фанат Windows, поэтому собирал в Linux. Но можно и в Windows, инструкция здесь https://hub.docker.com/r/marcelstoer/nodemcu-build/
    Устанавливаем нужные пакеты
    Код (C++):
    apt-get install git docker.io docker
    Подключаем git
    Код (C++):
    git clone https://github.com/nodemcu/nodemcu-firmware.git
    Распакуем скаченный архив с исходниками
    Код (C++):
    tar -xvzf archive.tar.gz
    Чтобы выбрать модули, нужно в файле app/include/user_modules.h раскоментировать нужные модули

    Переходим в папку
    Код (C++):
    cd /путь/до/папки/с_исходниками
    и запускаем
    Код (C++):
    docker run --rm -ti -v `pwd`:/opt/nodemcu-firmware marcelstoer/nodemcu-build
    Начнется процесс компиляции и по окончании (около 2-х, 3-х минут) в папке bin появятся прошивки.
    Вот в принципе и всё

    P.S. Делалось всё под root`ом
     
    Последнее редактирование: 2 фев 2017
    Smerlin, Securbond, alp69 и ещё 1-му нравится это.
  17. ИгорьК

    ИгорьК Гуру

    Выношу в заголовок.
     
    dimm71 нравится это.
  18. ИгорьК

    ИгорьК Гуру

    Securbond нравится это.
  19. dimm71

    dimm71 Нерд

    Собрал прошивку со всеми модулями (All modules) на SDK 2.0.
    Сам пока не прошивался. Выкладываю здесь. Может кому пригодится.

    Необходимо переименовать файл nodemcu.tar.gz.txt в nodemcu.tar.gz и распаковать.
     

    Вложения:

    alp69 и ИгорьК нравится это.
  20. alp69

    alp69 Форумчанин

    Вот это гуд!!!
    Все в курсе, что в ОН в cron первый параметр не минуты, а секунды?