РЕКЛАМА НА ФОРУМХАУС Пока пишут, что не поддерживаются роли Note that you could optionally add roles after a comma, but there is currently no support for different roles in openHAB. Но уже появилась первая альфа openhab2, в которой введено множество новшеств в том числе и с авторизацией (сам не ставил, только читал описание). Дождусь официального релиза.
Что-то где-то у меня сломалось... Пытаюсь прицепить ОпенХаб к контроллеру - говорит нет такого. Запускаю Modbus poll, получаю: К контроллеру Кодесис подключен через ethernet, ping 192.168.111.100 идет. Все находится в одной подсети. telnet 192.168.111.100 502 что должен говорить? У меня соединение проходит (в том смысле, что не ругается) и просто молчит... Куды бечь?
@Smith2007, жизнь все чудесатее и чудесатее... Итак. Все мои изыскания в приложении... Ситуация странная - в логах не видно Vltg, грязно ругается на modbus slave not connected, но при этом Mod_01 из контроллера он видит... "Ничего не понимаю" (с)...
Для начала оставь только один слейв3 в конфиге и соответственно убери из итемов все, что касается слейва4. В конфигурации ПЛК (слейв3) два байта? и еще... если меняешь конфигурацию самого ПЛК то рекомендую перегрузить его по питанию. Я один раз пол дня потерял пока не понял, что ПЛК начал тупить. После перезагрузки все пошло нормально. зы. При изменении программ (добавления, удаления и пр) все норм. Проблема была только при изменении конфигурации самого ПЛК.
Гм... Вполне может быть... Но до контроллера далеко - километров 50... Доеду - попробую... P. S. В программе контроллера изменил Mod_04 на TRUE. OpenHAB это увидел. Но Modbus poll не видит... Фигня какая-то...
Добрый вечер. Добавил я в свою систему ПЛК100 (прикупил б/у) - буду использовать его для получения параметров с ПЛК63 и связи по ТСР с Openhab, ну и для расширения системы пригодится. Целый день сегодня потратил на тестовую конфигурацию по отображению температуры. В итоге заработало, когда поменял в openhab. cfg type c "holding" на "input". Но что самое интересное, сейчас поменял обратно на "holding" и оно тоже работает, а до этого выдавало ошибку связи. Smith2007, спасибо за примерчики. С Выводом значений на Openhab все более-менее понятно. А как сделать обратный вывод - например есть необходимость менять значения установочных температур в комнатах через OpenHab. Спасибо! Выяснилось, что если перезалить прогу на ПЛК (даже без изменения конфигурации) - стабильно получаем ошибку связи с OpenHab, помогает только отключение питания.
@sly2k, я установку значений не делал. Вообще работа с вещественными числами в openhab мне не очень нравится (касается конкретно обмена по modbus). Нужно колдовать над байтами. Можно поступить проще - использовать целочисленное значение умноженное на 100. Т. е. предположим уставка температуры 23,55 градусов. По модбас будем передавать word 2355. openhab тоже регулируем как word, но отображаем word/100. Таким образом по сети будем передавать не 4 байта, а 2 и меньше колдовства.
А на стороне ПЛК конфигурационную переменную задаем как 2byte? Если пока не вдаваться в преобразования (условно считаем что как есть передаем целое число) - какими элементами это реализуется на Openhab? т. е. как сделать чтобы считанное число можно было также отредактировать и отправить обратно в ПЛК?
@sly2k, Element 'Setpoint' Syntax: Setpoint item=<itemname> [label="<labelname>"] [icon="<iconname>"] minValue="<min value>" maxValue="<max value>" step="<step value>" Shows a value and allows the user to modify it. Optionally, it is possible to specify maximum and minimum allowed values, as well as a step. (Показывает значение и позволяет пользователю изменять его. При желании, можно указать максимальные и минимальные допустимые значения, а также шаг.)
В итоге оказалось для моих целей достаточно старший регистр крутить (на 2 ед - дает примерно 0,25 - в диапазоне регулировки температуры 10-25), что позволило вообще обойтись без обратных преобразований. и преобразований на ПЛК. Sitemap: Код: sitemap my label="Температура" { Frame { Text item=tRoom } Frame { Setpoint item=tRoom2 label="Установка точно (0.25)" minValue=16672 maxValue=16864 step=2 } Frame { Setpoint item=tRoom2 label="Установка грубо (2.5)" minValue=16672 maxValue=16864 step=20 } } Item: (тут без изменений) Код: Group All Number tRoom1 { modbus="slave1:0" } Number tRoom2 { modbus="slave1:1" } Number tRoom "Целевая температура [%.2f °C]" <temperature> Rules: (тоже без изменений) Код: import java.lang.Float import org.openhab.core.library.types.* import org.openhab.core.persistence.* import org.openhab.model.script.actions.* rule "tRoom" when Item tRoom1 changed or Item tRoom2 changed or System started then var n2 = (tRoom1.state as DecimalType).intValue var n1 = (tRoom2.state as DecimalType).intValue var temp = n1 * 256 * 256 + n2 var result = Float::intBitsToFloat(temp) tRoom.sendCommand(result) end В браузере хорошо рабоатает, а на андроидном клиенте - нажимаешь "+" он на 1 ед увеличивает значение (судя по консоли), но обратного отображения не идет, и дальнейшее нажатие ни к чему не приводит - только если заново перезайти. Видимо глюк приложения.
@sly2k, установите Habmin и будет Вам визуальная среда. Вероятность допустить ошибку резко снижается.