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

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

  1. alp69

    alp69 Форумчанин

    Перечитав свой пост:eek:
    понял Вашу иронию
    Если приняли мои слова на свой счет - прошу простить, неудачно выразил мысль. :rolleyes: Это я о себе писАл после более глубокого погружения в раздел документации по модулю wifi прошивки NodeMCU. :)
     
    ИгорьК нравится это.
  2. ИгорьК

    ИгорьК Гуру

    А я о себе думал :) Я тоже с ним времени потратил немало... Так и не нашел ничего путного.
    И мониторинг событий видел, но сразу его отмел по причине, о которой сказал выше.
     
    alp69 нравится это.
  3. dimksum

    dimksum Нерд

    Нужна помощь от гуру: есть датчик движения, который через правило включает подсветку на определённое время
    Код (Text):
    rule "motion update"
    when
        Item mot_corr received update
    then
    if (mot_corr.state=="1" && motion_mode.state==ON)
         {
         sendCommand (dimmer_2, motion_max.state as DecimalType )
         logInfo("MOTION", "MOTION DETECTED")
         Thread::sleep(30000)
         sendCommand (dimmer_2, motion_min.state as DecimalType)
        }
    postUpdate(mot_update, new DateTimeType())
    end
    Как сделать так, чтоб если во время этой паузы обнаруживалось ещё движение (от итема mot_corr) то подсветка продолжала гореть и пауза уже отсчитывалась с последнего обнаружения движения. Как то так....
     
  4. alp69

    alp69 Форумчанин

    ИМХО это лучше реализовать на уровне исполнительного устройства. Сбой в связи приведет к неработоспособности оконечного устройства.
    А так... расставляйте флаги ...и сбрасывайте их.
     
  5. dimksum

    dimksum Нерд

    Проблема в том, что в дневное время исполнительное устройство это основное освещение, а в ночное - светодиодная подсветка. Выбор этого устройства идёт через OH так же как и режим работы
     
  6. alp69

    alp69 Форумчанин

    Ставьте таймер. При первом срабатывании ("вкл.") таймер стартует и завершая свою работу дает команду "выкл". При поступлении внеочередной команды таймер рестартует.
     
  7. ИгорьК

    ИгорьК Гуру

    Надо в правиле задействовать таймер. На каждый апдейт итема таймер сбрасывается и начинает течь снова. За основу возьмите правило установки показаний того же отопителя - поковыряйте тему по справочнику.
     
    dimksum нравится это.
  8. alp69

    alp69 Форумчанин

    Если не секрет, что за датчик движения?
     
  9. dimksum

    dimksum Нерд

    HC-SR501+nrf24l01+atmega328+18650
     
  10. alp69

    alp69 Форумчанин

    Так в нем есть эта функция. Включается джамперами. Сейчас не подскажу какими - с телефона пишу. Гляньте даташит на него.
     
  11. dimksum

    dimksum Нерд

    На таймер ругается
    Код (Text):
    Multiple markers at this line
    - Couldn't resolve reference to JvmIdentifiableElement 'plusMinutes'.
    - Couldn't resolve reference to JvmIdentifiableElement 'now'.
    хоть и все библиотеки импортированы
     
  12. alp69

    alp69 Форумчанин

    тынц...
    Вторая страница.
     
  13. dimksum

    dimksum Нерд

    Сам датчик не причём, он "шлёт 1 в итем если сработал". А вот на стороне OH проводится управление и выбор исполнительных устройств. Например днём включаем свет на 2 мин, а ночью на 5 секунд
     
  14. ИгорьК

    ИгорьК Гуру

    а у меня не ругается... :-( И здесь тоже не ругается.
     
  15. dimksum

    dimksum Нерд

  16. ИгорьК

    ИгорьК Гуру

  17. dimksum

    dimksum Нерд

    Тогда будем бороться с таймером. Спасибо!!
     
  18. dimksum

    dimksum Нерд

    Код (Text):
    rule "motion"
    when
        Item mot_corr received update
    then
            if (mot_corr.state=="1")
             {
                    if(timer==null)
                    {
                        logInfo("MOTION", "1ST TIMER START")
                        sendCommand (dimmer_2, motion_max.state as DecimalType )
                        timer=createTimer(now.plusSeconds(30))
                             [|
                            sendCommand(dimmer_2, motion_min.state as DecimalType)
                            logInfo("MOTION", "TIMER END")
                            timer = null
                             ]
                           
                     }
                     else
                     {
                         logInfo("MOTION", "TIMER RESTART")
                         timer.reschedule(now.plusSeconds(30))
                     }
           
            }
    end
    Работает!! Всем спасибо!
     
    ИгорьК нравится это.
  19. Securbond

    Securbond Гуру

    Что то не выходит настроить OH2 завелось только управление noolite и показывает температуру малины. Mqtt отказывается работать. (аддоны установлены). Видимо нужно по новой прописывать итемы (((
     
  20. dobrMAN

    dobrMAN Нерд

    Нет, итемы у меня 1 в 1 перенеслись. Смотрите настройки, в ОН2 настройки mqtt находятся в /etc/openhab2/services/mqtt.cfg
    Должны быть аналогичны настройкам OH1 в /etc/openhab/configurations/openhab_default.cfg раздел "MQTT Transport"
    Если файла services/mqtt.cfg (но в папке srvices есть другие файлы), то что-то не то с установкой аддона mqtt в OH2
    Код (C++):
    #
    # Define your MQTT broker connections here for use in the MQTT Binding or MQTT
    # Persistence bundles. Replace <broker> with an ID you choose.
    #

    # URL to the MQTT broker, e.g. tcp://localhost:1883 or ssl://localhost:8883
    openhab.url=tcp://localhost:1883

    # Optional. Client id (max 23 chars) to use when connecting to the broker.
    # If not provided a default one is generated.
    #<broker>.clientId=<clientId>

    # Optional. User id to authenticate with the broker.
    #<broker>.user=<user>

    # Optional. Password to authenticate with the broker.
    #<broker>.pwd=<password>

    # Optional. Set the quality of service level for sending messages to this broker.
    # Possible values are 0 (Deliver at most once),1 (Deliver at least once) or 2
    # (Deliver exactly once). Defaults to 0.
    openhab.qos=2

    # Optional. True or false. Defines if the broker should retain the messages sent to
    # it. Defaults to false.
    #<broker>.retain=<retain>

    # Optional. True or false. Defines if messages are published asynchronously or
    # synchronously. Defaults to true.
    #<broker>.async=<async>

    # Optional. Defines the last will and testament that is sent when this client goes offline
    # Format: topic:message:qos:retained <br/>
    #<broker>.lwt=<last will definition>
    Код (C++):
    Switch bedroom_mainlight {mqtt="<[openhab:stat/sonoff/POWER:state:default],>[openhab:cmnd/sonoff/POWER:command:ON:ON],>[openhab:cmnd/sonoff/POWER:command:OFF:OFF]"}
     
    Securbond нравится это.