Приобрести можно тут: http://alii.pub/6hvr31
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Наверное ни для кого не секрет для чего этот куб. В нем стоит гироскоп и крутя его в руках можно управлять устройствами умного дома.
На самом деле у него много действий которые можно выполнять. А именно:
- Поворот на 90 градусов
- Поворот на 180 градусов
- Передвинуть
- Покрутить вправо
- Покрутить в лево
- Потрясти
- Подкинуть
И вот эти все 7 действий можно использовать в автоматизациях.
Например Покрутить вправо – это мы увеличим яркость лампочки. А покрутив влево мы сделаем тусклее ее.
Или например потрясся его мы включим везде свет.
вот варианты действий показаны на картинке:
Ну и все эти действия доступны в умном доме Xiaomi или Aqara. Про них мы в этой статье не будем писать. А опишу способ управления устройствами в Home Assistant через zigbee2mqtt.
Сопряжение с zigbee2mqtt
Снимите заднюю пластину с помощью прилагаемого инструмента или клина, чтобы защелкнуть ее. Нажмите и удерживайте кнопку сброса внутри устройства в течение +- 5 секунд (пока синий индикатор не начнет мигать). После этого устройство автоматически подключится, но процесс интервью может не закончиться. Если это произойдет, продолжайте делать короткие нажатия на кнопку сброса, чтобы индикатор продолжал мигать, пока процесс интервью не завершится успешно.
Когда сопряжение пройдет корректно, то устройство появится в аддоне zigbee2mqtt.
Ну а теперь собственно к управлению.
аддон zigbee2mqtt работает из названия по mqtt. СОбственно нам нужно понять в какой топик он отправляет сообщения, какого они вида. Ну а дальше мы с этими данными можем работать и использовать в своих автоматизациях.
Топик, в который отправляются данные с куба, найти очень просто. По стандарту главный топик аддона называется zigbee2mqtt. Его впринципе можно посмотреть в аддоне, вот тут:
Настройки->MQTT-> Base topic
Ну а конкретный топик куба называется по его пользовательскому названию. у меня это Magic_Cube.
И того топик где мы можем поймать данные с куба будет звучать zigbee2mqtt/magic_cube
Собственно подписываемся на этот топик аддоном mqtt и вертим куб (снимая показания).
Так выглядят показания поворота на 90 градусов:
{
"action": "flip90",
"action_angle": null,
"action_from_side": 3,
"action_side": 1,
"action_to_side": 1,
"angle": -105.43,
"battery": 100,
"current": 0,
"device_temperature": 24,
"from_side": 3,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 1,
"to_side": 1,
"voltage": 3025
}
Так выглядит поворот на 180 градусов:
{
"action": "flip180",
"action_angle": null,
"action_from_side": null,
"action_side": null,
"action_to_side": null,
"angle": -105.43,
"battery": 100,
"current": 0,
"device_temperature": 24,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 4,
"voltage": 3025
}
Так выглядит "передвинуть":
{
"action": "slide",
"action_angle": null,
"action_from_side": null,
"action_side": null,
"action_to_side": null,
"angle": -105.43,
"battery": 100,
"current": 0,
"device_temperature": 24,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 4,
"voltage": 3025
}
Так выглядит покрутить вправо:
{
"action": "rotate_right",
"action_angle": 82.06,
"action_from_side": null,
"action_side": null,
"action_to_side": null,
"angle": 82.06,
"battery": 100,
"current": 0,
"device_temperature": 24,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 4,
"voltage": 3025
}
Так выглядит покрутить влево:
{
"action": "rotate_left",
"action_angle": -36.5,
"action_from_side": null,
"action_side": null,
"action_to_side": null,
"angle": -36.5,
"battery": 100,
"current": 0,
"device_temperature": 24,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 4,
"voltage": 3025
}
Так выглядит потрясти:
{
"action": "shake",
"action_angle": null,
"action_from_side": null,
"action_side": null,
"action_to_side": null,
"angle": -36.5,
"battery": 100,
"current": 0,
"device_temperature": 24,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 4,
"voltage": 3025
}
Ну а так выглядит подкинуть:
{
"action": "fall",
"action_angle": null,
"action_from_side": null,
"action_side": null,
"action_to_side": null,
"angle": -36.5,
"battery": 100,
"current": 0,
"device_temperature": 24,
"linkquality": 255,
"power": 69,
"power_outage_count": 3259,
"side": 4,
"voltage": 3025
}
Ну и собственно подытожим:
flip90
flip180
slide
rotate_right
rotate_left
shake
fall
Вот 4 позиции. Собственно эти слова мы и будем определять в топике zigbee2mqtt/magic_cube
Собственно вот так выглядит автоматизация в automations.yaml.
Автоматизация на положение flip90. Поворот на 90 градусов.
- id: magic_cube_flip90
alias: Cube desk lamp
trigger:
platform: mqtt
topic: zigbee2mqtt/magic_cube
condition:
- condition: template
value_template: '{{ "flip90" == trigger.payload_json.action }}'
action:
entity_id: switch.wifi_2gang_1
service: switch.toggle
Ну а так выглядит эта автоматизация в конфигураторе:
Эта автоматизация включает и выключает выключатель switch.wifi_2gang_1
по повороту куба на 90 градусов.
Так-же давайте рассмотрим автоматизацию под поворот куба по часовой стрелке и против часовой стрелки.
Такие жесты куба подходят для управления яркостью освещения или громкостью например.
ПО этому автоматизация тут немного сложнее. Я покажу на примере управления яркостью настольной лампы Xiaomi. Она у меня в системе Home Assistant называется light.desk_lamp
- id: magic_cube_rotate
alias: Cube - rotate
initial_state: 'on'
trigger:
platform: mqtt
topic: zigbee2mqtt/magic_cube
condition:
condition: template
value_template: "{{ trigger.payload_json.action in ['rotate_right', 'rotate_left'] }}"
action:
- service: light.turn_on
data:
entity_id: light.desk_lamp
- service: light.turn_on
data_template:
entity_id: light.desk_lamp
brightness: >-
{% if trigger.payload_json.angle | float > 0 %}
{{ states.light.desk_lamp.attributes.brightness | int + 30 }}
{% else %}
{{ states.light.desk_lamp.attributes.brightness | int - 30 }}
{% endif %}
Эта автоматизация будет управлять яркостью настольной лампы по повороту куба по часовой стрелке и против. Плюс добавлено, что если лампа была выключена и вы начинаете крутить куб по часовой стрелке, то она сначала включится а потом будет увеличиваться яркость.
Так-же если она была включена и вы начинаете крутить куб против часовой стрелки, то сначала будет уменьшаться яркость до минимума, а потом лампа выключится если яркость достигнет 0.
Ну а вот как эта автоматизация выглядит в графическом редакторе автоматизаций.
Ну и собственно остальные автоматизации можно делать по примеру, зная как называются положения в mqtt топиках.