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

Smarthome - самому и бюджетно?

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

  1. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Все ОК! Покурил маны...обновил Libs! Скомпилировалась...без замечаний. Спасибо! Теперь вечером буду пробовать с "металлом" ..скрещивать.

    Сектч! :victory:работает команды через консоль программы (порт обмена) проходят. как на прием (status) так и на отдачу (кнопки) т. е. состояние и т. д. прошу помочь на простом примере, как теперь это встроить в опенхаб. Вчера весь вечер потратил на изучение виков но так и не просветило. Также непонятно :faq: как через Дизайнер опенхаба менять его состояние? :mad: Т. е. присутствуют все "биндинги",:faq: а что с ними делать, непонятно Например "биндинг" 1-ware? Как он взаимодействует? Какие настройки? Прошу простой пример, например ввода команд, от Ардуино, так легче разобраться следуя примеру. :hndshk: С Уважением!
     
    Последнее редактирование модератором: 28.11.13
  2. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Не все байндинги одинаково полезны :) Возьмите байндинг из аттача и разархивируйте его в папку addons

    Теперь определите на каком ком-порту у вас ардуино. Например ардуина на порту COM4. Открываем в конфигурации опенхаба файл с расширением. items (как он там у вас называется).

    Создаем нужные айтемы. В нашем случае это будут
    Contact gate1contact
    Contact mybutton1
    Switch myrelay1
    Number mytemperature

    При при привязке байндинга нужно указать собственное байндинг (serialstring) и необходимые параметры. Поскольку у нас ардуина на COM4, описание айтемов будет выглядеть так

    Код:
    Contact gate1contact {serialstring="COM4;REGEXP=(gate1contact:(OPEN|CLOSED))"}
    Contact mybutton1 {serialstring="COM4;REGEXP=(mybutton1:(OPEN|CLOSED))"}
    Switch myrelay1 {serialstring="COM4;REGEXP=(myrelay1:(ON|OFF))"}
    Number mytemperature {serialstring="COM4;REGEXP=(mytemperature:(\\-?\\d+\\.?\\d*))"}
    Ну и добавить то что нужно в сайтмап (https://code.google.com/p/openhab/wiki/Sitemaps)
     

    Вложения:

  3. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Спасибо! Начинаю понимать специфику. Попробую вечером. а вложение это тот самый нестандартны "Байдинг" которого нет в общем перечне?
     
  4. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Да, я в свое время его предлагал опенхабовцам но они сказали нэтрэба :)
     
  5. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Интересно почему? Сейчас, со схемой бьюсь (в протеусе моделирую, есть такой модуль "Simulino UNO") промежуточный элемент между железом привода ворот, и самой Аруиной. Смысл сего, в том чтобы присутствовал независимый аппаратный модуль, способный автономно управлять воротами, независимо от состояния процессора, и в комбинации. На себя он берет простоту согласования с Ардуино (уровни сигнала) и развязку с релейным блоком управления двигателя, а также индикация (светодиоды на панели) текущего состояния и предачу этого состояния в Ардуино-Опенхаб. Причины. должно быть устройство которое при любых обстоятельствах (падение..неисправность...глюк..протест) откроет (закроет) ворота. Пробовал это на основе микроконтроллера..не понравилось (при сбросе и перезапуске) поскольку возможны нестандартные ситуации. Железная логика это исключает. Схему после отработки выложу на обозрение. :)]

    Короче новая засада. Ардуина работает скетч..на status выдает и статус кнопок и температуру т. е все как надо. Теперь Айтемы...что только не менял, никак не привяжу к ардуино..вот текст (вложение) Как уже указывалось внес изменения, они на планшете отражаются но Ардуина не опрашивается. Подскажите где я ошибаюсь.
     

    Вложения:

    Последнее редактирование модератором: 28.11.13
  6. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Так что хотели - то и получили. Опенхаб каким образом команду "status" в ардуино посылает? Подозреваю что никаким. Соответственно и ардуина опенхабу ничего не отвечает.

    Если проявить немного терпения и покурить мануалы (а их по любому курить придется), то выяснится, что надо в items добавить что-то вроде

    Код:
    String Arduino {serialstring="COM5"}
    и собственно опрос в файл rules

    Код:
    rule "Arduinio poll"
    when
        Time cron "0/5 * * * * ?"
    then
    Arduino.sendCommand("status")
    end
    и будет вам опрос ардуины каждые 5 секунд (а все остальное подробно описано в опенхабовской вики)
     
  7. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Спасибо! Всегда проще на основе примера !. Я уже всю голову изломал как запросить статус...т.е отклик Ардуино..но думаю что теперь понятнее. Еще вопрос? Где в айтемсе-демо опрос температурных датчиков и откуда берутся параметры. Т. е если к ардуино привязать несколько датчиков. каждый в своей комнате (уже присутствуют) то данные каждого в отдельности выводить на карту комнаты. (на планшетах). Как это Вас реализовано?
     
  8. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Да я понимаю, что когда все за тебя делают - это проще. Вы все же попробуйте хоть что-нибудь сами.
     
  9. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Да. но не совсем. я пробую..но как котёнок который прозревает. Итак опрос "status" едет. Это видно в командной строке каждые 5 сек. Ардуино в ответ выдает это: gate1contact:OPEN. myrelay: OFF. mytemperature: 12.8665757885 (помещение котельной/серверной там ардуина и на ней 1 датчик. (смотрел через монитор порта СОМ5) Т. е все идет. Если меняю переменную в ОpenHAB (temperature) на (mytemperature) то ничего не происходит. А данные на экране обновляются. Значит где то еще есть обращение. Но я никак не найду его в items. Еще не понял. как идет привязка swict к ключам. Т. е это должны быть кнопки.
    контакты..т.п. Но их опрос будет на контролере например. (ардуино) или другой. Иным словами не совсем понятны процессы взаимодействия. Методом тыка..это тяжело познать.

    Вот
    Element 'Switch'
    Syntax:

    Switch item="<itemname>"[label="<labelname>"][icon="<iconname>"][mappings="<mapping definition>"] вот label="<labelname>" что за перемененная. Это я так понял и есть тот самый mybotton. Но если подставить то не реагирует. :faq::hello:
     
    Последнее редактирование модератором: 24.11.13
  10. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Что такое "переменная в ОpenHAB"? Что значит "ничего не происходит. А данные на экране обновляются"?

    Правильно сформулированный вопрос - уже половина ответа.

    И не надо методом тыка - прочтите хотя бы вот тут https://github.com/openhab/openhab/wiki. В данном конкретном случае вы почему-то упорно не делаете разницу между item (собственно то что взаимодействует с ардуиной) и sitemap - просто отображение item-а на экране. И в какой бы цвет вы это отображение не красили, с ардуиной то что написано в сайтмапе никогда общаться не будет
     
  11. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    ОК! По вопросам. При открытии страницы OpenHUB например "детская" там отражена температура? Ее параметры меняются! Примерно раз в 5 минут. Где это изменение (на уровне данных) происходит? Далее Ардуино отвечает на запрос "статус" это видно в мониторе порта сом 5 т. е идет запрос ответ. Это нормально. Но теперь сама система должна отражать и понимать эти данные. Под переменной я понимаю например температуру. Ведь промежуточные значения сохраняются? Вики по опенхабу слишком уж..трудны для человек который не силен в Си. Весь вечер вникал как хотя бы отработать данные температуры так и не смог. Не мое..будем пробовать по другому.
     
  12. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Все разобрался...да..мудрено.но интересно. Работает. Хороший пример на вики помог с 1-wire. Просто и понятно. Попробовал, сразу, отобразились данные с датчиков...теперь тоже самое буду на основе Ардуино. У меня адаптер 1- ware самодельный и используется только для отладки. А поскольку сама Ардуино уже живет в модуле управления то к ней подведено все (провода). Осталось блок сопряжения уровня сигналов от ворот подвести постольку там 24 в. (кнопочная станция и блок контактных датчиков положения) а все остальное 5 и 12 в. Схему на днях соберу детали все приобрел.
     
  13. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Особо мудреного в опенхабе нет. Есть 3 "сущности" items sitemap rules
    items - место физического хранения данных. Это как раз то, что вы называете переменной. Как и в любом языке у этой переменной можно получить значение и изменить значение. Получение и измененние значений происходит либо автоматически через сайтмап, либо вручную через правила
    sitemap - служит для отображения (и изменения значения айтема)

    пусть например у вас есть айтем типа Number. В сайтмапе его проще всего отобразить как текст. То если в айтемс вы написали
    Код:
    Number mynumber
    то для отображения этого айтема в сайтмапе нужно написать
    Код:
    Text item="mynumber"
    Если при этом ваш айтем будет привязан к какому-нибудь байндингу, то все изменения, которые приходят для этого айтема из байндинга, будут автоматически отображаться в сайтмапе
    Вообще, любой айтем может быть отображен в виде текста. Например, если вы отображаете Contact, то его состояния будут "OPEN/CLOSED", для свитча "ON/OFF"

    Чтобы обеспечить обратную связь от сайтмапа к айтему, нужно в сайтмапе вместо текста привязать айтем к чему-то более умному (кстати, Contact ни к чему более умному привязать нельзя - от используется только для чтения состояния контактов, что вобщем-то логично)

    Итак, Switch (айтем) в сайтмапе может тоже отображаться как Switch чтобы им можно было управлять
    Код:
    Switch item="myswitch"
    И теперь когда вы с сайтмапе переключаете свитч, соответствующий айтем тоже меняет состояние.
     
  14. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    В вашем случае еще есть байндинги. Насколько я понимаю, все должно работать на автомате. То есть если вы например в айтемс напишете
    Код:
    Switch MyArduinoRelay {serialstring="COM5;REGEXP=(myrelay1:(ON|OFF))"}
    это будет означать следующее.
    • MyArduinoRelay будет получать все строки, посылаемые (ардуиной) в COM5
    • Если полученная строка совпадает с "myrelay1:ON", то состояние MyArduinoRelay будет установлено в ON или соответственно в OFF.
    А если вы в сайтмап напишите
    Код:
    Switch item=MyArduinoRelay
    То вдобавок к этому если вы меняете состояние в сайтмапе, сам айтем получает соответствующую команду. И эта команда должна передаваться в COM5 в виде строки "myrelay1:ON" или OFF
     
  15. Shemnik69
    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78

    Shemnik69

    Это Я

    Shemnik69

    Это Я

    Регистрация:
    10.04.13
    Сообщения:
    119
    Благодарности:
    78
    Адрес:
    Саратов
    Отличное пояснение..Спасибо. Просто и понятно.

    Еще вопрос. По многим сайтам смотрел на одну ножку Ардуино можно вешать 5-7 датчиков DS18b20. Яскетч смотрел не понял есть ли в алгоритме различение по количеству. Т. е один датчик работает. А если несколько в доме их 8 шт. Они уже разнесены по комнатам. Имееться сеть 1-ware/Она разделена на температурные датчики и ключи ds2413 b ds2408. Они отдельно, поскольку имеют питание. Так вот если Ардуино позволяет подхватить несколько датчиков то как их разделит. По ID номеру как в примере вики. Спрашиваю потому как это меня сильно волнует. Думаю. что ардуино прекрасно справиться с функцией мастера сети.
     
    Последнее редактирование модератором: 26.11.13
  16. vores8
    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238

    vores8

    Живу здесь

    vores8

    Живу здесь

    Регистрация:
    26.12.07
    Сообщения:
    367
    Благодарности:
    238
    Адрес:
    Нижний Новгород
    Почитайте вот тут https://playground.arduino.cc/Learning/OneWire
    Читайте с самого начала. В конце там есть пример кода "A Code Snippet for the DS 1820 with 0.5 Degree Resolution"
    Этот пример как раз позволяет считывать данные с нескольких сенсоров. Конкретно вот эта строчка определяет сколько датчиков надо опрашивать
    Код:
    #define MAX_DS1820_SENSORS 2
    Но для вашей сети я бы предложил обойтись без ардуино, чисто средствами опенхаба. В опенхабе есть байндинг для 1-wire, который работает через owfs (подробнее например тут http://www.ab-log.ru/smart-house/1-wire/owfs) Прикуп в том, что через owfs можно подключать не только датчики температуры, но и практически любые 1-wire устройства