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

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

  1. ИгорьК

    ИгорьК Гуру

  2. woow

    woow Гик

    ну да только не давно вы мне писали не верьте слухам, когда я спросил почему в разных инструкциях разные директории, тогда вы мне ответили, чтобы я не верил слухам и выполнял инструкции изложены здесь то есть, если устанавливать через upt-get то тогда openhab ложится сюда /etc/openhab, а если в ручную все предлагают и устанавливают сюда /opt/openhab. И так уже вторая неделя прошла и всё без толку. Так что теперь всё сносить и опят с начало.
     
  3. Sachapda

    Sachapda Нерд

    Друг мой, не опускайте руки! У меня аналогично ушло 2 недели на решение трабла по установке! Я было уже расстроился совсем (была шляпа с mqtt, и передачей данных в openhab ставил на 8 вин.) Дерзайте, не торопясь, (попробуйте старую версию хаба) шаг за шагом! И всё будет работать! Через тернии к звездам... )
     
    Последнее редактирование: 8 авг 2016
  4. ИгорьК

    ИгорьК Гуру

    Понимаете... опенхаб устанавливается мной, вами, каждым - один раз и надолго.
    Я уже не помню как точно это делал.
    Но точно помню, что буквальное следование инструкциям все решает.
    Что касается приведённой мной ссылки, то обратите внимание, что это место консолидации всех ССЫЛОК на рабочие директории, поэтому никаких противоречий нет.
    Не сдавайтесь. Внимательнее через apt-get. Это работает. Вы что-то пропускаете.
     
    Sachapda нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Вы же стали устанавливать вручную. Я это не советовал и на первой странице темы уже давно рекомендую apt-get.
     
  6. dimraz

    dimraz Нуб

    alp69,
    Спасибо за подсказку. Читал вашу тему раньше, но у вас там только код для ESP. Скриншота из опенхаба (язык свернешь) не хватает.
    У меня просто все реализовано немного иначе. Весь основной код крутится на меге 2560, связь с переферией через NRF-ки. Esp-шка выступает в роли прозрачного UART-порта, данные передаются через MQTT в OpenHab, которые крутятся на апельсинке. И подключение к апельсинке извне через модем 3G, подключенный к роутеру на котором поднят OpenVPN. Из всего этого с первого раза заработал только Debian на апельсинке. На все остальное потрачено 6 месяцев:). Поэтому про обратную связь можно пока забыть. Сейчас главное подключить сигналку от машины к дому и ставить дом на охрану:).
     
    Последнее редактирование: 8 авг 2016
  7. dimraz

    dimraz Нуб

    Могу подсказать рабочую директорию для опенхаба. Столкнулся когда мучался с Habmin. Работа происходит из директории /usr/share/openhab и из нее идут ссылки в /etc/openhab. Сам же опенхаб встал по инструкции без проблем по ссылке на первой странице.
     
  8. ИгорьК

    ИгорьК Гуру

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

    А список рабочих директорий (военная тайна :) !) указан на странице установки опенхаб через apt-get. Если же его устанавливать вручную, то все находится там куда устанавливать.
     
    Последнее редактирование: 8 авг 2016
    dimraz нравится это.
  9. dimraz

    dimraz Нуб

    Согласен, но ножек маловато и памяти:). Да и тему эту нашел, когда уже половина деталей была куплена.

    Еще опенхаб и mqtt :D, но сообщения не сразу пошли. Оказалось, неправильно запускал mqttspy, не в том порядке и версия браузера старая была (непонятно что было причиной, скорее всего браузер).:)Не распугаю, так как подхожу раз в неделю к забаве этой, поэтому так долго и забываешь что было уже сделано.
     
  10. woow

    woow Гик

    уфф пока всё Ok. Открывается по Wi-Fi, LAN, GPRS даже с Androida. Почистил с примера всё оставив то что связано с первым этажом, чтобы меньше путаницы. Начну творить термометр или выключатель, и если можно для начала два вопроса:
    1. Что за "www.ВАШ_САЙТ.org"?
    2. Если я использую OpenHAB Designer, куда совать <[mosquitto:/myhome/out/temperature001/state:state:default]?
     
  11. ИгорьК

    ИгорьК Гуру

    1. Это адрес вашей машины в Интернет на которой установлен ОпенХаб. Если Вы не планируете управление через Интернет - lan-адрес опенхаб в вашей домашней сетке.
    2. Вот здесь подробно описано: https://geektimes.ru/company/masterkit/blog/262212/
     
  12. ИгорьК

    ИгорьК Гуру

    36. Nextion + ESP8266
    Здесь выложу код ESP8266 и проект для Nextion что выше на фотографиях.
    Пояснения будут в отдельной теме.
    Код для ESP8266:
    Код (C++):
    -- works! added dim
    uart.setup(0,9600,8,uart.PARITY_NONE,uart.STOPBITS_1,1)
    str = ""
    count = 0
    Broker="ВАШ_САЙТ"
    port=ВАШ_ПОРТ
    mClnt="next01"
    pass="pass"
    publish = false

    ld = false -- start load message
    lt = false

    m = mqtt.Client(mClnt, 180, mClnt, pass)
    m:lwt("/lwt", mClnt, 0, 0)
    function connecting()
        function getConnect()
           if wifi.sta.status() == 5 and wifi.sta.getip() ~= nil then
                 m:connect(Broker, port, 0, 0,
                    function(conn)
                        tmr.stop(6)
                         publish = true
                        m:subscribe(mClnt.."/#",0, function(conn)
                        end)
                end)
            end
        end
        getConnect()
        tmr.alarm(6, 90000, 1, function()
            getConnect()
        end)
    end

    m:on("offline", function(con)
        publish = false
        connecting()
    end)

    m:on("message", function(conn, topic, data)
        -- print(topic)
        -- print(data)
        if (string.find(topic, "state")) == nil then
             local top = string.gsub(topic, mClnt.."/","")
            if top == "dim" then
                top = top..'='..data..'\255\255\255'
            else
                data = string.sub(data, 1, 5) -- удаляем лишние цифры
                local snd = ''
                local thd = ''
                snd = string.sub(top,2,2)
                thd = string.sub(top,3,3)
                top ='page'..snd..'.'..string.sub(top,3)
                if thd == 't' or thd == 'v' then
                    top = top..'.txt='
                    top = top..'\"'..data..'\"'..'\255\255\255'
                --
                else
                    top = top..'.val='
                    top = top..data..'\255\255\255'
                end
             --]]
            --------------------------------------------------
            end
            uart.write(0,top)
        end
        collectgarbage()
    end)

    uart.on("data",1,
        function(dt)
        if lt then
            if dt == "\255" then
                count = count + 1
                if count == 3 then
                    count = 0
                    local publ
                    publ = str
                    str = ""
                    lt = false
                    pub(publ)
                end
            else
                str = str..dt
                if #str > 20 then str = ""; count = 0 end
            end
        end
        if str == "" and dt == "\112" then
            lt = true
        end
    end, 0)
    -------------------------------------------------------------
    function pub(pu)
        if publish then
            local topic
            local info
            topic, info = string.match(pu, "(%w+):(%w+)")
            if topic ~= nil and info ~= nil then
                m:publish(mClnt.."/"..topic.."/state",info,0,0)
            end
        end
        collectgarbage()
    end
    connecting()

     

    Вложения:

    • dacha61.zip
      Размер файла:
      197,6 КБ
      Просмотров:
      263
    Последнее редактирование: 9 авг 2016
  13. woow

    woow Гик

    Правильно ли я понял, что в Lua коде ( примеры выключателя, термометра и т.п.) адрес сайта Брокер="WWW.ВАШ_САЙТ.орг", в моём случае, будет IP локальной сети 192.168.1.123 Raspberry (в которой OpenHAB).
    Спасибо за указку тф Мастер -Кит, но там только увидел как изуродовать OpenHAB :), это я сделал раньше па обрезал лишнее, ну и от сюда кое что полезное позаимствовал. Что касается модулей, всё там заточено под мастер-кит (что там вшито от мастер-кита мне неизвестно), у меня ESP-12F я хотел повторить это http://forum.amperka.ru/threads/arduino-esp8266-raspberry-pi-2-openhab-Умный-дом-азы-управления.5043/#post-40417
    Сразу извиняюсь за вопросы которые могут показаться наивными, но как уже заметил если где то по стесняюсь то потом всё ровно приходится переспрашивать а до этого потерять много времени и нервов.
    Туда куда Вы меня послали я не нашёл ответов, да там есть кое кокой полезной информации, но об использовании MQTT сервера, который Вы используете в своих примерах там нет (ну или я не вижу), как и OpenHAB Demo.
    Вы пишите (термометр):
    <[mosquitto:/myhome/out/temperature001/state:state:default]
    Или тут про выключатель:
    Естественно, редактируем файл demo.item:
    Switch lamp1 "Моя лампа" { mqtt=">[mosquitto:/myhome/lamp01/command:command:eek:n:ON],>[mosquitto:/myhome/lamp01/command:command:eek:ff:OFF],<[mosquitto:/myhome/lamp01/state:state:default]" }
    Не чего похожего в структуре файла demo.item не нахожу.
     
    Последнее редактирование: 10 авг 2016
  14. ИгорьК

    ИгорьК Гуру

    Да.
    Там стандартный NodeMCU Lua, Мастеркит не пишет своих прошивок(и правильно делает).
    И что мешает? Вопрос был - куда совать то, что управляет элементом по MQTT, так? Так Мастер-Кит и объяснячет это - куда суется.
    Вот строка из Мастер-Кит:
    Код (Java):
    Switch MP3500_R2_Button «MP3500_Реле 2 Импульс» (WIFI_3500) { udp=">[ON:192.168.2.109:7777:MAP(MP3500_R2_Pulse.map)]" }
     
    Видите там скобочки {} - вот вместо информации Мастер-Кита и вставляете.

    Конечно его там нет: создавайте его сами - новая строка, берите ее прямо отсюда.
     
  15. chibis

    chibis Нерд

    ИгорьК, подскажите если не сложно. Пришла моя малинка 3 и все необходимое к ней. Поставил Raspbian + по мелочи (обновил, сеть настроил, раскладку клавы только почему-то даже при галки не сбрасывать все ровно сбрасывает, но это мелочи).
    Так вот...
    Дальше надо ставить необходимые репозитории. Mosquitto, Openhab, демо данные. По какой последней актуальной инструкции ставить? Я пока не хорошо ориентируюсь с малиной сталкиваюсь впервые.
    Спасибо
     
  16. ИгорьК

    ИгорьК Гуру

    Если с Малиной впервые... Опенхаб ставить через apt-get, ссылка есть. Про Mosquitto - точно не скажу. Время идёт появляются новые инструкции. То что я приводил - рабочая. Но поищите что нибудь новое. Начинайте с Москита.
     
    chibis нравится это.
  17. woow

    woow Гик

    https://github.com/kmaximv/Wi-Fi-Sensor/wiki/Raspberry-Pi-2
     
    chibis и ИгорьК нравится это.
  18. ИгорьК

    ИгорьК Гуру

  19. woow

    woow Гик

    JAVA я инсталлировал по другому сценарию:
    Код (C++):
    sudo apt-get remove openjdk*
    sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com EEA14886
    sudo nano /etc/apt/sources.list
    Код (C++):
    deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
    deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main
    Код (C++):
    sudo apt-get update
    sudo apt-get install oracle-java8-installer
    Step2: Check Version.
    Код (C++):
    java –version
    ................
    Код (C++):
    javac –version
    .......................
     
    Последнее редактирование: 17 авг 2016
  20. ИгорьК

    ИгорьК Гуру

    Или как в инструкции OpenHab указано: https://github.com/openhab/openhab/wiki/Linux-and-OS-X#java-8-installation-for-ubuntu-or-debian