289 lines
7.7 KiB
YAML
289 lines
7.7 KiB
YAML
blueprint:
|
|
name: Zigbee2MQTT - Aqara Magic Cube (MFKZQ01LM)
|
|
description: 'This blueprint allows you to make automations for the Aqara Magic
|
|
Cube, connected to Zigbee2MQTT.
|
|
|
|
|
|
Limitations (these are by design):
|
|
|
|
- There is just one trigger for flip to a side, separate actions for flip90 and
|
|
flip180 aren''t possible.
|
|
|
|
- For fall there are no separate actions for the side, due to the nature of falling
|
|
it becomes random what will happen.
|
|
|
|
- For shake there are no separate actions for the side, due to the nature of shaking
|
|
it isn''t always clear which side is up.
|
|
|
|
'
|
|
domain: automation
|
|
source_url: https://github.com/golles/Home-Assistant-Blueprints/blob/9a63ee03f1d0cf10448fb89a28528ac4105461ac/zigbee2mqtt_aqara_magic_cube.yaml
|
|
input:
|
|
remote:
|
|
name: Remote
|
|
description: Aqara Magic Cube to use, entity should end with _action
|
|
selector:
|
|
entity:
|
|
integration: mqtt
|
|
domain: sensor
|
|
fall:
|
|
name: Drop the cube
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
flip_side_0:
|
|
name: Flip the cube to side 0
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
flip_side_1:
|
|
name: Flip the cube to side 1
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
flip_side_2:
|
|
name: Flip the cube to side 2
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
flip_side_3:
|
|
name: Flip the cube to side 3
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
flip_side_4:
|
|
name: Flip the cube to side 4
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
flip_side_5:
|
|
name: Flip the cube to side 5
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_left_side_0:
|
|
name: Rotate cube left with side 0 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_left_side_1:
|
|
name: Rotate cube left with side 1 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_left_side_2:
|
|
name: Rotate cube left with side 2 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_left_side_3:
|
|
name: Rotate cube left with side 3 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_left_side_4:
|
|
name: Rotate cube left with side 4 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_left_side_5:
|
|
name: Rotate cube left with side 5 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_right_side_0:
|
|
name: Rotate cube right with side 0 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_right_side_1:
|
|
name: Rotate cube right with side 1 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_right_side_2:
|
|
name: Rotate cube right with side 2 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_right_side_3:
|
|
name: Rotate cube right with side 3 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_right_side_4:
|
|
name: Rotate cube right with side 4 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
rotate_right_side_5:
|
|
name: Rotate cube right with side 5 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
shake:
|
|
name: Shake the cube
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
slide_side_0:
|
|
name: Slide the cube with side 0 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
slide_side_1:
|
|
name: Slide the cube with side 1 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
slide_side_2:
|
|
name: Slide the cube with side 2 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
slide_side_3:
|
|
name: Slide the cube with side 3 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
slide_side_4:
|
|
name: Slide the cube with side 4 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
slide_side_5:
|
|
name: Slide the cube with side 5 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
tap_side_0:
|
|
name: Tap the cube with side 0 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
tap_side_1:
|
|
name: Tap the cube with side 1 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
tap_side_2:
|
|
name: Tap the cube with side 2 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
tap_side_3:
|
|
name: Tap the cube with side 3 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
tap_side_4:
|
|
name: Tap the cube with side 4 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
tap_side_5:
|
|
name: Tap the cube with side 5 up
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
mode: queued
|
|
max: 5
|
|
max_exceeded: silent
|
|
trigger:
|
|
- platform: state
|
|
entity_id: !input 'remote'
|
|
attribute: action
|
|
to:
|
|
- fall
|
|
- flip180
|
|
- flip90
|
|
- rotate_left
|
|
- rotate_right
|
|
- shake
|
|
- slide
|
|
- tap
|
|
action:
|
|
- variables:
|
|
event: '{{ trigger.to_state.attributes.action }}'
|
|
side: '{{ trigger.to_state.attributes.side }}'
|
|
- choose:
|
|
- conditions: '{{ event == "fall" }}'
|
|
sequence: !input 'fall'
|
|
- conditions: '{{ event == "flip180" or event == "flip90" }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ side == 0 }}'
|
|
sequence: !input 'flip_side_0'
|
|
- conditions: '{{ side == 1 }}'
|
|
sequence: !input 'flip_side_1'
|
|
- conditions: '{{ side == 2 }}'
|
|
sequence: !input 'flip_side_2'
|
|
- conditions: '{{ side == 3 }}'
|
|
sequence: !input 'flip_side_3'
|
|
- conditions: '{{ side == 4 }}'
|
|
sequence: !input 'flip_side_4'
|
|
- conditions: '{{ side == 5 }}'
|
|
sequence: !input 'flip_side_5'
|
|
- conditions: '{{ event == "rotate_left" }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ side == 0 }}'
|
|
sequence: !input 'rotate_left_side_0'
|
|
- conditions: '{{ side == 1 }}'
|
|
sequence: !input 'rotate_left_side_1'
|
|
- conditions: '{{ side == 2 }}'
|
|
sequence: !input 'rotate_left_side_2'
|
|
- conditions: '{{ side == 3 }}'
|
|
sequence: !input 'rotate_left_side_3'
|
|
- conditions: '{{ side == 4 }}'
|
|
sequence: !input 'rotate_left_side_4'
|
|
- conditions: '{{ side == 5 }}'
|
|
sequence: !input 'rotate_left_side_5'
|
|
- conditions: '{{ event == "rotate_right" }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ side == 0 }}'
|
|
sequence: !input 'rotate_right_side_0'
|
|
- conditions: '{{ side == 1 }}'
|
|
sequence: !input 'rotate_right_side_1'
|
|
- conditions: '{{ side == 2 }}'
|
|
sequence: !input 'rotate_right_side_2'
|
|
- conditions: '{{ side == 3 }}'
|
|
sequence: !input 'rotate_right_side_3'
|
|
- conditions: '{{ side == 4 }}'
|
|
sequence: !input 'rotate_right_side_4'
|
|
- conditions: '{{ side == 5 }}'
|
|
sequence: !input 'rotate_right_side_5'
|
|
- conditions: '{{ event == "shake" }}'
|
|
sequence: !input 'shake'
|
|
- conditions: '{{ event == "slide" }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ side == 0 }}'
|
|
sequence: !input 'slide_side_0'
|
|
- conditions: '{{ side == 1 }}'
|
|
sequence: !input 'slide_side_1'
|
|
- conditions: '{{ side == 2 }}'
|
|
sequence: !input 'slide_side_2'
|
|
- conditions: '{{ side == 3 }}'
|
|
sequence: !input 'slide_side_3'
|
|
- conditions: '{{ side == 4 }}'
|
|
sequence: !input 'slide_side_4'
|
|
- conditions: '{{ side == 5 }}'
|
|
sequence: !input 'slide_side_5'
|
|
- conditions: '{{ event == "tap" }}'
|
|
sequence:
|
|
- choose:
|
|
- conditions: '{{ side == 0 }}'
|
|
sequence: !input 'tap_side_0'
|
|
- conditions: '{{ side == 1 }}'
|
|
sequence: !input 'tap_side_1'
|
|
- conditions: '{{ side == 2 }}'
|
|
sequence: !input 'tap_side_2'
|
|
- conditions: '{{ side == 3 }}'
|
|
sequence: !input 'tap_side_3'
|
|
- conditions: '{{ side == 4 }}'
|
|
sequence: !input 'tap_side_4'
|
|
- conditions: '{{ side == 5 }}'
|
|
sequence: !input 'tap_side_5'
|