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

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

  1. ip-ua

    ip-ua Нерд

    Да, это в секундах. Вообщето я это выложил как пример контроля наличия датчиков в сети.
     
  2. dimm71

    dimm71 Нерд

    Споткнулся. Прошу помощи :)
    Не могу в ОН вывести IP-адрес. Модуль в mosquitto отправляет и он его видит, а вот в ОН не выводит.
    Вот так прописано в item
    Код (C++):
    Number   espIP   "IP-адрес [%s ]"   (ESPSwitch)   { mqtt="<[mosquitto:ESPSwitch/myhome/ip_adress:state:default]" }
     
  3. ИгорьК

    ИгорьК Гуру

    Это String. A в сайтмэп - text.
     
  4. dimm71

    dimm71 Нерд

    В sitemap
    Код (C++):
    Text item=espIP
    Не выводит
     
  5. alp69

    alp69 Форумчанин

    В строке привязки странно выглядит то, что ниже выделено:
    ...mosquitto:ESPSwitch/myhome...
    Файл сайтмэпа как зовут? И файл итемов?
     
  6. dimm71

    dimm71 Нерд

    demo.sitemap и demo.items
    А ..mosquitto:ESPSwitch/myhome... потому что
    Код (C++):
    myClient="ESPSwitch"
    m:publish(myClient.."/myhome/ip_adress",v,0,0)
     
  7. alp69

    alp69 Форумчанин

    Уберите ESPSwitch из строки биндинга в итеме.
    Уберите ESPSwitch в строке публикации в коде.
     
  8. dimm71

    dimm71 Нерд

    Попробую, но в mosquitto данные приходят
    Код (C++):
    1481485119: Received PUBLISH from ESPSwitch (d0, q0, r0, m0, 'ESPSwitch/myhome/ip_adress', ... (13 bytes))
    1481485119: Sending PUBLISH to openhab.1481483480073 (d0, q0, r0, m0, 'ESPSwitch/myhome/ip_adress', ... (13 bytes))
     
     
  9. dimm71

    dimm71 Нерд

    Убрал. Та же история - не выводит.

    Может в item нужно как то по другому запись вывода делать
    "IP-адрес [%s ]"

    %s - это правильно?
     
  10. alp69

    alp69 Форумчанин

    Файлы итемов и сайтмэпа какое имя имеют? Как ОН может найти нужные итемы и элементы сайтмэпа? В каких файлах? И где это у Вас прописано в биндинге и в публикации?
     
  11. alp69

    alp69 Форумчанин

    А Вы шлете в myhome.
    Переименуйте файлы в myhome.items и myhome.sitemap

    Либо код и итемы правьте под demo.
     
  12. dimm71

    dimm71 Нерд

    Всё переделал - не работает.
    Более подробно
    кусок кода
    Код (C++):
    function publish_data()
        print("Publish Info")
        if wifi.sta.status() == 5 and wifi.sta.getip() ~= nil then
             local ip = wifi.sta.getip()
             local vv = 0.01*math.floor(100*adc.readvdd33()/1000)    
             m:publish("/demo/napragometr",vv,0,0)
             print("Volt "..vv.." published!")
             m:publish("/demo/ip_adress",ip,0,0)
             print("IP "..ip.." published!")
        end
    end
    collectgarbage()
    Это в item
    Код (C++):
    Number  espBat  "Питание [%s Volt]"  (ESPSwitch)  { mqtt="<[mosquitto:/demo/napragometr:state:default]" }
    Number  espIP  "IP-адрес [%s IP]"  (ESPSwitch)  { mqtt="<[mosquitto:/demo/ip_adress:state:default]" }
     
    sitemap
    Код (C++):
    Frame label="Управление" {
      Group item=ESPSwitch icon="parents" {
          Switch item=lamp1
          Switch item=lamp2
          Text item=espBat valuecolor=[>25="orange", >15="green", >5="orange", <=5="blue"]
          Text item=espIP
      }
        }
     
    Напряжение выводит, а IP -нет.
    Снимок экрана от 2016-12-11 23:31:23.png
     
    Последнее редактирование: 12 дек 2016
  13. alp69

    alp69 Форумчанин

    Это в item
    Код (C++):
    Number  espBat  "Питание [%s Volt]"  (ESPSwitch)  { mqtt="<[mosquitto:/demo/napragometr:state:default]" }
    String  espIP  "IP-адрес [%s IP]"  (ESPSwitch)  { mqtt="<[mosquitto:/demo/ip_adress:state:default]" }
     
    Итем типа Number работает с числами. Значение IP-адреса числом не является
     
    Последнее редактирование: 12 дек 2016
  14. alp69

    alp69 Форумчанин

    И еще. В целях исключения путаницы старайтесь называть итемы, топики и элементы сайтмэпа одними именами.
     
  15. dimm71

    dimm71 Нерд

    Вот, теперь показывает. Спасибо.
    ИгорьК, в самом начале правильно сказал, а я его не понял.
    Получается, что в подписке совсем не нужно указывать имя items и sitemap. Все работает и без этого.
     
  16. alp69

    alp69 Форумчанин

    Не совсем так. Публикации идут в топик. А итем знает из какого топика брать данные для отображения, так как Вы в итеме, прописывая биндинг, указываете имя топика, который назначаете итему.
    Связка должна быть итем-топик. И чтобы эти связки не запоминать, обзывайте топики именами соответствующих им итемов.
     
  17. Smerlin

    Smerlin Нерд

    Народ, подскажите, кто силен в Linux. Openhab запущен как демон. Если надо его перезагрузить, то из-под SSH в консоли использую команду "service openhab restart" или команду "/etc/init.d/openhab restart". Он останавливается и загружается снова. Но если пишу скрипт restart_OH.sh в котором тоже одна эта строка "service openhab restart" или "/etc/init.d/openhab restart" и вешаю на переключатель в самом опенхабе, то рестарта не происходит, только остановка демона. Потом приходится из консоли запускать ручками командой "service openhab start" либо "/etc/init.d/openhab start".
    Ткните носом, уважаемые.
     
  18. mex79

    mex79 Нерд

    А права от кого запускается скрипт (в данном случае ОН) какие? На сколько я помню там rootовые нужны.
     
  19. Smerlin

    Smerlin Нерд

    Там и есть рутовый доступ, OH с рутовыми правами запущен, и остановить он себя дает, а то бы и не дал если б прав не хватило.
     
  20. alp69

    alp69 Форумчанин

    Команда при нажатии переключателя строкой передается в брокер в соответствующий топик. ИМХО нужно малину подписывать на этот топик при старте.