Aqara cube & deconz. Продолжаем экспериментировать.

31 марта 2020, 15:48

Итак. Дано: куб Aqara подключенный к Home assistant через deconz и желание что-нибудь еще придумать. У меня несколько выключателей IKEA которые прекрасно диммируют свет. Захотелось сделать подобное с помощью куба, поскольку он управляет светом в спальне. 

Здесь можно почитать о моих экспериментах с кубом. На их основе и будем вносить усовершенствования.

Итак. Для начала добавим input_select чтобы можно было отслеживать, сам процесс диммирования

cuberotate:
  name: Cube Rotate
  options:
    - None
    - Rotate
  initial: None 
  icon: mdi:cube-scan

Теперь добавим несколько скриптов для диммирования

  cube_lights_up:
    alias: Светильники плавное увеличение
    sequence:
      - service: input_select.select_option
        data_template:
          entity_id: input_select.cuberotate
          option: Rotate
      - service: deconz.configure
        data:
          entity: light.bedroom
          field: "/action"
          data: {"bri_inc":254, "transitiontime":50}

  cube_lights_down:
    alias: Светильники плавное уменьшение
    sequence:
      - service: input_select.select_option
        data_template:
          entity_id: input_select.cuberotate
          option: Rotate
      - service: deconz.configure
        data:
          entity: light.bedroom
          field: "/action"
          data: {"bri_inc":-254, "transitiontime":50}

  cube_lights_stop:
    alias: Светильники остановка
    sequence:
      - service: deconz.configure
        data:
          entity: light.bedroom
          field: "/action"
          data: {"bri_inc":0}
      - service: input_select.select_option
        data_template:
          entity_id: input_select.cuberotate
          option: None

  cube_lights_255:
    alias: Светильники полная яркость
    sequence:
      - service: light.turn_on
        data:
          entity_id:
            - light.bedroom
          brightness: 255

  cube_lights_1:
    alias: Светильники минимальная яркость
    sequence:
      - service: light.turn_on
        data:
          entity_id:
            - light.bedroom
          brightness: 1

Ну а теперь собственно автоматизации:

- alias: Светильники в спальне яркость Куб
  trigger:
    platform: event
    event_type: deconz_event
    event_data:
      id: lumi_sensor_cube_aqgl01_30
  condition:
    condition: and
    conditions:
      - condition: state
        entity_id: light.bedroom
        state: 'on'
      - condition: state
        entity_id: input_select.cubemode
        state: 'Lights'
      - condition: state
        entity_id: input_select.cuberotate
        state: 'None'
  action:
    - service_template: >
          {% if trigger.event.data.event | float < -3000 and 
                trigger.event.data.event | float >= -10000 %}
          script.cube_lights_down
          {% elif trigger.event.data.event | float > 3000 and 
                  trigger.event.data.event  | float < 10000 %} 
          script.cube_lights_up
          {% elif trigger.event.data.event | float > 10000 %} 
          script.cube_lights_255
          {%elif trigger.event.data.event | float < -10000 %}
          script.cube_lights_1
          {% else %}
          {% endif %}
      data:
        entity_id: light.bedroom

- alias: Светильники в спальне остановка Куб
  trigger:
    platform: event
    event_type: deconz_event
    event_data:
      id: lumi_sensor_cube_aqgl01_30
  condition:
    condition: and
    conditions:
      - condition: state
        entity_id: light.bedroom
        state: 'on'
      - condition: state
        entity_id: input_select.cubemode
        state: 'Lights'
      - condition: state
        entity_id: input_select.cuberotate
        state: 'Rotate'
  action:
    - service_template: >
          {% if trigger.event.data.event | float < -3000 %}
          script.cube_lights_stop
          {% elif trigger.event.data.event | float > 3000 %} 
          script.cube_lights_stop
          {% else %}
          {% endif %}
      data:
        entity_id: light.bedroom

Итак, что получилось. Небольшие повороты отсекаются, чтобы не было ложных срабатываний автоматизаций. кручение кубика выставляет максимальную или минимальную яркость. Поворот на 90 градусов (примерно) запускает диммирование, которое останавливается аналогичным поворотом в противоположную сторону. (Если честно, то можно повернуть и в ту же сторону, но так звучит круче) Вот собственно и все. 


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (xrust)
    (xrust) отредактировано 2 месяца назад

    Кубик едет :) в закладки ;-)

  2. (Sander)
    (Sander) 2 месяца назад

    Правильно понимаю, что кубик через стик сс2531 так не умеет? )

    • Stephan Fonderat (Fonderat)
      Stephan Fonderat (Fonderat) 2 месяца назад

      Я не знаю в каком виде идут команды от z2m стиков. Особенно что касается поворота. если там можно определить угол поворота, то почему бы и нет.

      • (Sander)
        (Sander) 2 месяца назад

        Угол то есть, а вот с выбором стороны не понятно. в логах есть параметр side (battery=100, voltage=3035, linkquality=97, side=1, angle=-20.63, action=wakeup) но как бы я не крутил кубик - это значение не меняется.

        • Stephan Fonderat (Fonderat)
          Stephan Fonderat (Fonderat) 2 месяца назад

          Все таки лучше спросить у тех кто подключает куб через z2m стики. Но то, что куб отдаёт направление поворота, это точно. У deconz это положительные и отрицательные значения. 

        • (zhi_lin)
          (zhi_lin) 2 месяца назад

          side — номер грани, на которой лежит куб в момент события поворота. Навправление поворота определяется типом экшна: "rotate_right" или "rotate_left" (и, кажется, ещё и знаком перед значением параметра angle).
          Это всё касается zigbee2mqtt, если что.

          • (Sander)
            (Sander) 2 месяца назад

            Тут разобрался, в целом не обязательно куб поворачивать, чтобы он увидел сторону, достаточно четкого движения и "удара" о поверхность - тогда фиксируется смена грани.
            Осталось понять с помощью какого синтаксиса HA можно использовать значение side

            • Stephan Fonderat (Fonderat)
              Stephan Fonderat (Fonderat) 2 месяца назад

              Посчитайте мою статью. У меня Input select выбирается в зависимости от грани и используется в качестве условия для разных автоматизаций для разных граней

  3. (Sander)
    (Sander) месяц назад

    Часть смог перевести на z2m, но не могу понять в скрипте назначение 

    - service: deconz.configure
  4. (maikl)
    (maikl) месяц назад

    Классно получилось)

К списку блогов

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие записи

11 апреля 2019, 17:17
Краткий обзор и распаковка обновления всеми любимого USB стика ConBee 2 (deCONZ) от Dresden Electronic.
14 апреля 2019, 19:36
Все изменения в Deconz 2.05.60-2.05.63.
06 февраля 2019, 18:34
Как забиндить диммер IKEA и умную лампу в Deconz
27 января 2019, 10:55
Избавляемся от wi-fi реле на ESP в пользу zigbee без прошивок и танцев с бубном.
08 февраля 2020, 09:03
Самые популярные заблужения о экосистеме умного дома Xiaomi
28 июня 2019, 09:50
Расскажу о планах на ближайшие несколько недель и немного упрощу вам жизнь.
27 января 2019, 11:45
Установка Deconz в докер с активацией просмотра mesh сети
28 апреля 2019, 22:04
Краткая инструкция установки программного обеспечения от deConz в докер контейнер на оборудование NAS от QNAP. Актуально для стиков ConBee и ConBee II
04 июня 2019, 21:51
Набор состояний кубика Xiaomi (Magic cube) через deCONZ в HA, Node Red и т.д.