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

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

  1. opyzhov

    opyzhov Нуб

    а у меня все также на чистой системе.. что за напасть..

    # A fatal error has been detected by the Java Runtime Environment:
    # SIGILL (0x4) at pc=0x742b93a0, pid=510, tid=1626797152
    # JRE version: Java(TM) SE Runtime Environment (8.0-b132) (build 1.8.0-b132)
    # Java VM: Java HotSpot(TM) Client VM (25.0-b70 mixed mode linux-arm )
    # Problematic frame:
     
  2. DimNsk

    DimNsk Нерд

    Вопрос к ТС
    1. Зачем использовать Arduino в связке c ESP? Кроме единственного ограничения 1 ADC, ESP быстрее.
    2. Почему lua? если Arduino IDE for ESP8266 предоставляет возможность создавать скетчи как в ардуино?
     
    Федоров Александр нравится это.
  3. ИгорьК

    ИгорьК Гуру

    Да. Так и есть. Но есть и дополнительные особенности - Ардуино иногда требуется, когда есть готовые библиотеки, которых нет для ESP8266. Например, RC-switch и еще много чего.
    В моем случае связка Arduino + ESP8266 управляет уличным освещением 433мГц передатчиком, передает данные с датчика и включает ночную подсветку в комнате. Такой комбайн. Понимаю, что это не правильно, но был старый готовый неиспользованный блок (управление светодиодной лентой) и я его так допилил - прибавил еще два модуля.
    Потому что Ардуино IDE зло в принципе. И поскольку осваивать ESP8266 пришлось с нуля, мне больше понравился Lua.
    Кроме того, можно делать уменьшенные самостоятельные прошивки NodMCU, чем освобождать память для проектов.
     
    Последнее редактирование: 19 янв 2016
  4. DimNsk

    DimNsk Нерд

    Все базовые библиотеки от ARduino которые пробовал подходят для ESP в том числе и RC-switch

    Что вы имеете ввиду ? Лучше писать на чистом С? тогда тоже можно и сказать про lua.

    Это про что??

    К чему я?
    Согласны, что проще для начинающих начинать и продолжать программировать в Arduino IDE?
     
  5. ИгорьК

    ИгорьК Гуру

    Давайте не будем заниматься холиваром в теме. Вы спросили - я ответил. Как минимум, когда я начал заниматься ESP - всего этого не было. И слава Богу что я стал разбираться со скриптовым языком - это полезно.
     
  6. ИгорьК

    ИгорьК Гуру

  7. DimNsk

    DimNsk Нерд

    Да это не холивар, что хуже что лучше.
    Безусловно вы делаете большое дело. и когда тема была начата Arduino IDE ESP была в зачатке.
    Насколько я понял цель темы: обеспечить новичкам простой вход в эту тему.
    Новичкам будет проще использовать готовые решения от ардуино и разбираться в них, чем изучать lua.
    IMHO конечно.
     
  8. ИгорьК

    ИгорьК Гуру

    Здесь много вопросов по Малине. А там где Малина - там появляется Python. Где Python - там Lua.
    Нет, это не для новичков. Я просто веду записи и отвечаю на вопросы. Для новичков была тема подсветки лестницы, по паре модулей - там я все разжевывал.
    Эта тема требует серьезной работы над собой. Например, в OpenHab скрипты пишутся на Java.
    Обойтись Ардуиновским IDE в этой теме не удастся. И, замечу, Lua - не самое здесь сложное.

    Кому не нравится - вперед к Сообразительному Алексу.

    PS. У меня единственное устройство ESP+Arduino. Просто был готовый силовой блок Ардуино а переделывать не хотелось.
     
    Последнее редактирование: 19 янв 2016
  9. netmaster

    netmaster Гик

    Добрый день, Игорь.
    Практический вопрос по esp8266, если mqtt подписка <что-то там>/# т.к. подписка на группу топиков.
    Как себя поведет esp8266 (у меня 1 моделька, пока разбираюсь), сможет ли она работать. Ранее читал, что подписка уже на два топика, это уже два клиента - и это уже предел по памяти. Здесь клиент только один, но подписок-то много.

    Можно конечно подвесить демона паковщика между openhab и esp8266, придумать некоторый протокол, я первоначально шёл по этому пути, но как-то это не кузяво.
     
  10. ИгорьК

    ИгорьК Гуру

    Это я не дочитал первоисточник, а надо было:
    Код (C++):
    m:subscribe("/topic", 0, function(conn) print("subscribe success") end)
    -- or subscribe multiple topics (topic/0, qos = 0; topic/1, qos = 1; topic2, qos = 2)
    -- m:subscribe({["topic/0"]=0,["topic/1"]=1,topic2=2}, function(conn) print("subscribe success") end)
     
  11. VelAndr

    VelAndr Нуб

    Ничто не мешает выполнить и 2 subscribe подряд с разными топиками. В обработчик message модуль передает topic и data - и там уже надо писать логику. У меня прекрасно работает так. А то тут насоветуют - два обработчика... ужас...
     
  12. ИгорьК

    ИгорьК Гуру

    Вот и я про то же. См. код выше.
     
  13. netmaster

    netmaster Гик

    Спасибо. В двух ответах, обработчик только один - и как говорил известный товарищ - "и это правильно".

    Теперь немного о грустном - предположим что-то произошло с одним из датчиков, и он стал посылать или не посылать данные вообще. Если данные, от этого датчика критические, то система должна об этом сообщить. И не важно подключен ли этот датчик к openhab или некоторому локальному контролеру который работает с openhab.

    Есть ли у кого варианты реализаций таких случаев?
     
  14. ИгорьК

    ИгорьК Гуру

    Код (C++):
    mqtt.client:lwt()

    Setup Last Will and Testament (optional). A broker will publish a message with qos = 0, retain = 0, data = "offline" to topic "/lwt" if client does not send keepalive packet.
    Syntax
    mqtt:lwt(topic, message, qos, retain)
    Это если не посылает. А если посылает чушь - надо программно контролироать.
     
    Последнее редактирование: 21 янв 2016
  15. netmaster

    netmaster Гик

    Получается что при получении данных нужно правило проверки на вшивость, а уж только после этого отдавать их openhab.

    Завалим тестовыми сообщениями бедного пользователя! Логика здесь все-же нужна: пример вызывать ремонтника только после 10 таких сообщений.
     
  16. ИгорьК

    ИгорьК Гуру

    Все зависит от задачи. У меня OpenHab агрегатор и информатор, но не "решатель" вопросов. Но он и сам может проверить данные.
    Нет. Такое сообщение только одно. Если модуль не выходит на связь положенное время - оно появляется. А дальше - действуем по обстоятельствам.

    Вы просто так интересуетесь? Судя по вопросам, Вы еще темой реально не занимались.
     
    netmaster нравится это.
  17. netmaster

    netmaster Гик

    Нет, не просто так. Интересны решения практика. Сейчас я нахожусь на этапе когда, с одной стороны есть работающий arduino контролер по контролю тепловой энергией с SMS информированием и управлением.
    А хочется сделать распределенную структуру. Нек-е кол-во железок для этого есть. Но для этого надо продумать надежность.

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

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

    Увы, далеко не все можно прочитать в документации. Пример:
    Иногда нужно и спросить - тем более, если есть кто-то кто готов ответить. БОЛЬШОЕ СПАСИБО и Вам и всем таким людям.

    Ну и потом, как я понял, есть более эффективное решение чем через binding Network Health т.к. прежде чем задать вопрос надо уже знать половину ответа.
     
    ИгорьК нравится это.
  18. Sachapda

    Sachapda Нерд

    Здравствуйте Игорь!
    Возможно вы мне поможете!
    Столкнулся с такой ситуацией. Установил себе Опенхаб и москитто на мини пк (win8 x86)
    Проверил, москит (написал скетч для ардуины с 4мя датчиками ds18b20, и парой релюх) всё отлично работает!
    Проверил MQTT spy и запуском москита из CMD mosquitto -v (видны команды релюх и температура с датчиков)
    Прописал в конфиге опенхаба такое:
    ############# MQTT Transport #######
    mqtt:mosquitto.url=tcp://<myip>:1883
    eventbus:broker=mosquitto
    mqtt-eventbus:commandPublishTopic=/myhome/in/${item}/command
    mqtt-eventbus:statePublishTopic=/myhome/state/${item}/state
    mqtt-eventbus:stateSubscribeTopic=/myhome/out/${item}/state


    Консоль москита показывает что опенхаб подключился! Идёт пинг.
    Консоль опенхаба тоже говорит что подключение к MQTT прошло без ошибок!
    Но при этом опенхаб не передаёт, и не принимает никакие команды!
    Чёрная магия, не иначе!

    Может у Вас есть идеи?
    Спасибо!


    P.S.
    Перечитал весь интернет ))) На форуме опенхаба описал проблему. Молчат как партизаны)))
    Могу конечно сделать управление и через GET но хочется MQTT )))
     
  19. ИгорьК

    ИгорьК Гуру

    Мало информации. Про Итемы ничего не сказали. И, кстати, уберите из настроек эти последние три строчки - делайте все в Итемах. Я от этой настройки в итоге отказался, сейчас уже и не помню почему.
     
  20. netmaster

    netmaster Гик

    Осмелюсь спросить, а итем Вы описали, а в сетмап его включили?