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

OpenHAB - обмен опытом, совместное изучение и т. п

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

  1. Чижик
    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7

    Чижик

    Живу здесь

    Чижик

    Живу здесь

    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7
    Адрес:
    Москва
    Вопрос по ОХ.
    1) можно ли определять в рулесах свои классы (методы) и затем использовать в правилах.
    Попробовал - не жалуется и не работает вообще ни одно правило. Как получить какую-то диагностику по синтаксису?
    2) в лямбда выражениях, похоже, нельзя из тела одного выражения вызывать другое? или можно?
    The name ... cannot be resolved to an item or type. не может разрешить ссылку?

    Можно писать в личку.
     
  2. Чижик
    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7

    Чижик

    Живу здесь

    Чижик

    Живу здесь

    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7
    Адрес:
    Москва
    Отвечаю:
    1) нельзя, это все-та-ки не Xtend, а xBase его подмножество.
    Описали бы где нибудь возможности языка скриптов ОХ для народа.
    2) можно, если внести его через параметры (не знаток, но это требование лямбда выражений).
     
  3. llentiai
    Регистрация:
    16.10.15
    Сообщения:
    6
    Благодарности:
    0

    llentiai

    Участник

    llentiai

    Участник

    Регистрация:
    16.10.15
    Сообщения:
    6
    Благодарности:
    0
    Болид побеждён. Дело было не в бобине.
     
  4. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    @llentiai, ну так поделитесь в чем была проблема и как ее решили
     
  5. llentiai
    Регистрация:
    16.10.15
    Сообщения:
    6
    Благодарности:
    0

    llentiai

    Участник

    llentiai

    Участник

    Регистрация:
    16.10.15
    Сообщения:
    6
    Благодарности:
    0
    Оказалось что Болид побеждён не до конца. Чтобы разобраться с управлением болидом я собрал переходник для перехвата обмена по rs232, и через терминальную программу, отслеживал обмен между ОХ и Болидом, или ОХ и эмулятором модбаса. Удалось подобрать настройки для постановки и снятия зон и разделов, получения их состояния, управления реле. Но при попытке подключить датчик влажности и температуры обнаружилась проблема. Для получения данных с датчика необходимо 6 командой записать номер зоны в рег. B463 а затем из рег. B4F8 3 командой прочитать данные. Но при обращении к рег. B463 с командой 3 болид выдает ошибку №2 что регистр недоступен и ОХ не отправляет 6 команду на этот регистр. Как это преодолеть непонятно. Ещё выяснилось, что ошибки модбуса не выдаются в программу. Как бы так усовершенствовать binding чтобы он выдавал в ОХ ошибки и позволял записывать в регистры которых как бы не существует ?
     
  6. llentiai
    Регистрация:
    16.10.15
    Сообщения:
    6
    Благодарности:
    0

    llentiai

    Участник

    llentiai

    Участник

    Регистрация:
    16.10.15
    Сообщения:
    6
    Благодарности:
    0
    Техподдержка Болида оперативно откликнулась и прислала исправленную прошивку на с2000 ПП.
    Теперь всё работает!
     
  7. Чижик
    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7

    Чижик

    Живу здесь

    Чижик

    Живу здесь

    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7
    Адрес:
    Москва
    Добрый день. Кто знает, подскажите. Как правильно перебрать в цикле for each элементы hashMAP.
    /-определили MAP
    var java. util. Map<String, org. openhab. core. library. items. GenericItem> roomTempContMap = newHashMap
    /-инициализировали элементы отображения в правиле старта системы
    roomTempContMap = newHashMap(
    "kitchen" -> kitchenTempNow,
    "bedroom" -> bedroomTempNow,
    "living" -> livingTempNow
    ) as java. util. Map<String, org. openhab. core. library. items. GenericItem>
    /-преобразование к типу множества, чтоб применить итератор
    java. util. Set<Map.Entry<String, org. openhab. core. library. items. GenericItem> roomTempContSet = roomTempContMap. entrySet()

    /-и далее в правиле - вывести все ключи множества

    rule "UpDown Heat Kitchen"
    when
    Time cron "10 * * * * ?"
    then
    for (Map.Entry<String, org. openhab. core. library. items. GenericItem> tempElement: roomTempContSet){
    logInfo("heatControlLogic","Key = " + tempElement. getKey()
    }
    end
    Ругается
    2015-11-05 18:10:11.640 [ERROR] [.o.m.r.i.engine.ExecuteRuleJob] - Error during the execution of rule UpDown Heat Kitchen
    java. lang. RuntimeException: The name 'roomTempContSet' cannot be resolved to an item or type.
     
    Последнее редактирование: 05.11.15
  8. Чижик
    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7

    Чижик

    Живу здесь

    Чижик

    Живу здесь

    Регистрация:
    23.08.10
    Сообщения:
    84
    Благодарности:
    7
    Адрес:
    Москва
    В обход (перебор ключей оказался достаточен)

    /-определили MAP
    var java. util. Map<String, org. openhab. core. library. items. GenericItem> roomTempContMap = newHashMap

    /-инициализировали элементы отображения в правиле старта системы
    roomTempContMap = newHashMap(
    "kitchen" -> kitchenTempNow,
    "bedroom" -> bedroomTempNow,
    "living" -> livingTempNow

    /-далее правило с перебором
    rule "UpDown All Heating"
    when
    Time cron "0/30 * * * * ?"
    then
    var String keyStr
    for (keyStr: roomTempContMap. keySet()){
    logInfo("heatControlLogic","Check State cron2 KetStr = " + keyStr)
    heatControlLigic. apply (keyStr, roomTempContMap, roomStateMap, HeatMap)
    }
    end
     
  9. pmramp
    Регистрация:
    29.10.15
    Сообщения:
    2
    Благодарности:
    0

    pmramp

    Новичок

    pmramp

    Новичок

    Регистрация:
    29.10.15
    Сообщения:
    2
    Благодарности:
    0
    Добрый день.
    Не могу зацепить к опенхабу датчик Fibaro motion sensor.
    Имееться Rpi2+raZberry, датчик Fibaro motion sensor 3 в 1.
    Установил сам опенхаб, запустил демо, все отобразилось.
    Затем сделал свой openhab. cfg, в нем прописал bindning на z-wave:
    zwave: port=/dev/ttyAMA0

    Далее сделал свой test. items, в нем прописал:
    Number Temp "Temperature [%.1f ºC]" <temperature> {zwave="2:comand=sensor_multilevel,sensor_type=1"}

    После чего сделал свой test. sitemap, в нем прописал:
    sitemap test lable="Test"
    {
    Frame{
    Text item=Temp Lable="Temperature" icon="temperature"
    }
    }
    Температура не отображается.
    В логах:
    Serial Error: Port /dev/ttyAMA0 does not exist

    Порт на сколько я знаю именно этот а не ttyS0. В чем может быть проблема?
     
  10. pmramp
    Регистрация:
    29.10.15
    Сообщения:
    2
    Благодарности:
    0

    pmramp

    Новичок

    pmramp

    Новичок

    Регистрация:
    29.10.15
    Сообщения:
    2
    Благодарности:
    0
    Да, забыл сказать, сам Z-wave работает, на raspi: 8083 все данные с датчика отображаются.
     
  11. goodle
    Регистрация:
    19.05.15
    Сообщения:
    12
    Благодарности:
    0

    goodle

    Участник

    goodle

    Участник

    Регистрация:
    19.05.15
    Сообщения:
    12
    Благодарности:
    0
    Подскажите пожалуйста как организовать кнопку включения охраны в OpenHab? Добавил item, прописал его в sitemap. А на правиле завис.
    Как Вы решили вопрос проверки статуса выключателя охраны? Не шлёт же он Вам постоянно сообщения если Вы ходите по дому, как то же кнопка должна быть реализована.
     
  12. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    @goodle, несколько режимов работы системы. В одном режиме (дневной) вся охранка отключена, за исключением аварийных ситуаций инженерных систем. В ночном режиме включаются в работу датчики периметра. Ну и полная охрана - это когда дома ни кого.
    Реализовано все на базе контроллера под управление Codesys, а OH это у меня средство визуализации и переключения режимов и разного рода настроек.
    Выключаю OH и все прекрасно без него работает.
     
  13. goodle
    Регистрация:
    19.05.15
    Сообщения:
    12
    Благодарности:
    0

    goodle

    Участник

    goodle

    Участник

    Регистрация:
    19.05.15
    Сообщения:
    12
    Благодарности:
    0
    Во-во именно это интересует - как определяется, что никого нет? В опенхабе же наверно кнопочка "Включит охрану"?
     
  14. Smith2007
    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746

    Smith2007

    Живу здесь

    Smith2007

    Живу здесь

    Регистрация:
    27.05.12
    Сообщения:
    1.265
    Благодарности:
    746
    Адрес:
    Россия
    Реализовал два режима.
    Между дневным и ночным режимами система переключается автоматом (по времени). Но в то же время остается возможность ручного переключения. Как правило ночью мы дома но спим и поэтому не плохо если система сама в определенное время переключиться, а то можно просто забыть.
    А вот постановка на полную охрану - только ручная. При этом из этого режима переключиться можно тоже только в ручную.
    Примерно так:
    Код:
            Selection item=cfgMode label="Режим" mappings=[0="День", 1="Ночь", 2="Охрана"]       
    
     
  15. goodle
    Регистрация:
    19.05.15
    Сообщения:
    12
    Благодарности:
    0

    goodle

    Участник

    goodle

    Участник

    Регистрация:
    19.05.15
    Сообщения:
    12
    Благодарности:
    0
    Я примерно до того же дошёл. У меня квартира и охрана периметра ночью не нужна, а вот днём, когда никого нету - вполне актуально (соседей снизу недавно обнесли, вот и задумался о сигналке хоть какой-то). Решено режим переключать только вручную, т. к. график работы непостоянный и проще будет просто кнопкой включать/выключать.
    А вот в силу своей неграмотности в плане программирования на rules залип, не пойму как организовать проверку условия о статусе выключателя этого. В примерах все правила идут с привязкой к действию (смене статуса выключателя, item который).