РЕКЛАМА НА ФОРУМХАУС Все ОК! Покурил маны...обновил Libs! Скомпилировалась...без замечаний. Спасибо! Теперь вечером буду пробовать с "металлом" ..скрещивать. Сектч! работает команды через консоль программы (порт обмена) проходят. как на прием (status) так и на отдачу (кнопки) т. е. состояние и т. д. прошу помочь на простом примере, как теперь это встроить в опенхаб. Вчера весь вечер потратил на изучение виков но так и не просветило. Также непонятно как через Дизайнер опенхаба менять его состояние? Т. е. присутствуют все "биндинги", а что с ними делать, непонятно Например "биндинг" 1-ware? Как он взаимодействует? Какие настройки? Прошу простой пример, например ввода команд, от Ардуино, так легче разобраться следуя примеру. С Уважением!
Не все байндинги одинаково полезны Возьмите байндинг из аттача и разархивируйте его в папку 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)
Спасибо! Начинаю понимать специфику. Попробую вечером. а вложение это тот самый нестандартны "Байдинг" которого нет в общем перечне?
Интересно почему? Сейчас, со схемой бьюсь (в протеусе моделирую, есть такой модуль "Simulino UNO") промежуточный элемент между железом привода ворот, и самой Аруиной. Смысл сего, в том чтобы присутствовал независимый аппаратный модуль, способный автономно управлять воротами, независимо от состояния процессора, и в комбинации. На себя он берет простоту согласования с Ардуино (уровни сигнала) и развязку с релейным блоком управления двигателя, а также индикация (светодиоды на панели) текущего состояния и предачу этого состояния в Ардуино-Опенхаб. Причины. должно быть устройство которое при любых обстоятельствах (падение..неисправность...глюк..протест) откроет (закроет) ворота. Пробовал это на основе микроконтроллера..не понравилось (при сбросе и перезапуске) поскольку возможны нестандартные ситуации. Железная логика это исключает. Схему после отработки выложу на обозрение. Короче новая засада. Ардуина работает скетч..на status выдает и статус кнопок и температуру т. е все как надо. Теперь Айтемы...что только не менял, никак не привяжу к ардуино..вот текст (вложение) Как уже указывалось внес изменения, они на планшете отражаются но Ардуина не опрашивается. Подскажите где я ошибаюсь.
Так что хотели - то и получили. Опенхаб каким образом команду "status" в ардуино посылает? Подозреваю что никаким. Соответственно и ардуина опенхабу ничего не отвечает. Если проявить немного терпения и покурить мануалы (а их по любому курить придется), то выяснится, что надо в items добавить что-то вроде Код: String Arduino {serialstring="COM5"} и собственно опрос в файл rules Код: rule "Arduinio poll" when Time cron "0/5 * * * * ?" then Arduino.sendCommand("status") end и будет вам опрос ардуины каждые 5 секунд (а все остальное подробно описано в опенхабовской вики)
Спасибо! Всегда проще на основе примера !. Я уже всю голову изломал как запросить статус...т.е отклик Ардуино..но думаю что теперь понятнее. Еще вопрос? Где в айтемсе-демо опрос температурных датчиков и откуда берутся параметры. Т. е если к ардуино привязать несколько датчиков. каждый в своей комнате (уже присутствуют) то данные каждого в отдельности выводить на карту комнаты. (на планшетах). Как это Вас реализовано?
Да. но не совсем. я пробую..но как котёнок который прозревает. Итак опрос "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. Но если подставить то не реагирует.
Что такое "переменная в ОpenHAB"? Что значит "ничего не происходит. А данные на экране обновляются"? Правильно сформулированный вопрос - уже половина ответа. И не надо методом тыка - прочтите хотя бы вот тут https://github.com/openhab/openhab/wiki. В данном конкретном случае вы почему-то упорно не делаете разницу между item (собственно то что взаимодействует с ардуиной) и sitemap - просто отображение item-а на экране. И в какой бы цвет вы это отображение не красили, с ардуиной то что написано в сайтмапе никогда общаться не будет
ОК! По вопросам. При открытии страницы OpenHUB например "детская" там отражена температура? Ее параметры меняются! Примерно раз в 5 минут. Где это изменение (на уровне данных) происходит? Далее Ардуино отвечает на запрос "статус" это видно в мониторе порта сом 5 т. е идет запрос ответ. Это нормально. Но теперь сама система должна отражать и понимать эти данные. Под переменной я понимаю например температуру. Ведь промежуточные значения сохраняются? Вики по опенхабу слишком уж..трудны для человек который не силен в Си. Весь вечер вникал как хотя бы отработать данные температуры так и не смог. Не мое..будем пробовать по другому.
Все разобрался...да..мудрено.но интересно. Работает. Хороший пример на вики помог с 1-wire. Просто и понятно. Попробовал, сразу, отобразились данные с датчиков...теперь тоже самое буду на основе Ардуино. У меня адаптер 1- ware самодельный и используется только для отладки. А поскольку сама Ардуино уже живет в модуле управления то к ней подведено все (провода). Осталось блок сопряжения уровня сигналов от ворот подвести постольку там 24 в. (кнопочная станция и блок контактных датчиков положения) а все остальное 5 и 12 в. Схему на днях соберу детали все приобрел.
Особо мудреного в опенхабе нет. Есть 3 "сущности" items sitemap rules items - место физического хранения данных. Это как раз то, что вы называете переменной. Как и в любом языке у этой переменной можно получить значение и изменить значение. Получение и измененние значений происходит либо автоматически через сайтмап, либо вручную через правила sitemap - служит для отображения (и изменения значения айтема) пусть например у вас есть айтем типа Number. В сайтмапе его проще всего отобразить как текст. То если в айтемс вы написали Код: Number mynumber то для отображения этого айтема в сайтмапе нужно написать Код: Text item="mynumber" Если при этом ваш айтем будет привязан к какому-нибудь байндингу, то все изменения, которые приходят для этого айтема из байндинга, будут автоматически отображаться в сайтмапе Вообще, любой айтем может быть отображен в виде текста. Например, если вы отображаете Contact, то его состояния будут "OPEN/CLOSED", для свитча "ON/OFF" Чтобы обеспечить обратную связь от сайтмапа к айтему, нужно в сайтмапе вместо текста привязать айтем к чему-то более умному (кстати, Contact ни к чему более умному привязать нельзя - от используется только для чтения состояния контактов, что вобщем-то логично) Итак, Switch (айтем) в сайтмапе может тоже отображаться как Switch чтобы им можно было управлять Код: Switch item="myswitch" И теперь когда вы с сайтмапе переключаете свитч, соответствующий айтем тоже меняет состояние.
В вашем случае еще есть байндинги. Насколько я понимаю, все должно работать на автомате. То есть если вы например в айтемс напишете Код: Switch MyArduinoRelay {serialstring="COM5;REGEXP=(myrelay1:(ON|OFF))"} это будет означать следующее. MyArduinoRelay будет получать все строки, посылаемые (ардуиной) в COM5 Если полученная строка совпадает с "myrelay1:ON", то состояние MyArduinoRelay будет установлено в ON или соответственно в OFF. А если вы в сайтмап напишите Код: Switch item=MyArduinoRelay То вдобавок к этому если вы меняете состояние в сайтмапе, сам айтем получает соответствующую команду. И эта команда должна передаваться в COM5 в виде строки "myrelay1:ON" или OFF
Отличное пояснение..Спасибо. Просто и понятно. Еще вопрос. По многим сайтам смотрел на одну ножку Ардуино можно вешать 5-7 датчиков DS18b20. Яскетч смотрел не понял есть ли в алгоритме различение по количеству. Т. е один датчик работает. А если несколько в доме их 8 шт. Они уже разнесены по комнатам. Имееться сеть 1-ware/Она разделена на температурные датчики и ключи ds2413 b ds2408. Они отдельно, поскольку имеют питание. Так вот если Ардуино позволяет подхватить несколько датчиков то как их разделит. По ID номеру как в примере вики. Спрашиваю потому как это меня сильно волнует. Думаю. что ардуино прекрасно справиться с функцией мастера сети.
Почитайте вот тут 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 устройства