Last active
January 8, 2024 13:03
-
-
Save farridav/3f5bf486a858574c34198f12f26d79c4 to your computer and use it in GitHub Desktop.
cube
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
blueprint: | |
name: Aqara Magic Cube (Z2M) | |
description: Control anything using Aqara Magic Cube (Z2M) - V1.1 | |
domain: automation | |
input: | |
topic: | |
name: MQTT topic for device | |
description: device name e.g zigbee2mqtt/cube_1 | |
selector: | |
text: | |
slide_face_0: | |
name: Slide the cube with face 0 up | |
default: [] | |
selector: | |
action: {} | |
tap_face_0: | |
name: Double tap the cube with face 0 up | |
default: [] | |
selector: | |
action: {} | |
flipped90_face_0: | |
name: Flip the cube 90 degrees to face 0 | |
default: [] | |
selector: | |
action: {} | |
flipped180_face_0: | |
name: Flip the cube 180 degrees to face 0 | |
default: [] | |
selector: | |
action: {} | |
rotate_cw_face_0: | |
name: Rotate cube clockwise with face 0 up | |
default: [] | |
selector: | |
action: {} | |
rotate_ccw_face_0: | |
name: Rotate cube counter clockwise with face 0 up | |
default: [] | |
selector: | |
action: {} | |
slide_face_1: | |
name: Slide the cube with face 1 up | |
default: [] | |
selector: | |
action: {} | |
tap_face_1: | |
name: Double tap the cube with face 1 up | |
default: [] | |
selector: | |
action: {} | |
flipped90_face_1: | |
name: Flip the cube 90 degrees to face 1 | |
default: [] | |
selector: | |
action: {} | |
flipped180_face_1: | |
name: Flip the cube 180 degrees to face 1 | |
default: [] | |
selector: | |
action: {} | |
rotate_cw_face_1: | |
name: Rotate cube clockwise with face 1 up | |
default: [] | |
selector: | |
action: {} | |
rotate_ccw_face_1: | |
name: Rotate cube counter clockwise with face 1 up | |
default: [] | |
selector: | |
action: {} | |
slide_face_2: | |
name: Slide the cube with face 2 up | |
default: [] | |
selector: | |
action: {} | |
tap_face_2: | |
name: Double tap the cube with face 2 up | |
default: [] | |
selector: | |
action: {} | |
flipped90_face_2: | |
name: Flip the cube 90 degrees to face 2 | |
default: [] | |
selector: | |
action: {} | |
flipped180_face_2: | |
name: Flip the cube 180 degrees to face 2 | |
default: [] | |
selector: | |
action: {} | |
rotate_cw_face_2: | |
name: Rotate cube clockwise with face 2 up | |
default: [] | |
selector: | |
action: {} | |
rotate_ccw_face_2: | |
name: Rotate cube counter clockwise with face 2 up | |
default: [] | |
selector: | |
action: {} | |
slide_face_3: | |
name: Slide the cube with face 3 up | |
default: [] | |
selector: | |
action: {} | |
tap_face_3: | |
name: Double tap the cube with face 3 up | |
default: [] | |
selector: | |
action: {} | |
flipped90_face_3: | |
name: Flip the cube 90 degrees to face 3 | |
default: [] | |
selector: | |
action: {} | |
flipped180_face_3: | |
name: Flip the cube 180 degrees to face 3 | |
default: [] | |
selector: | |
action: {} | |
rotate_cw_face_3: | |
name: Rotate cube clockwise with face 3 up | |
default: [] | |
selector: | |
action: {} | |
rotate_ccw_face_3: | |
name: Rotate cube counter clockwise with face 3 up | |
default: [] | |
selector: | |
action: {} | |
slide_face_4: | |
name: Slide the cube with face 4 up | |
default: [] | |
selector: | |
action: {} | |
tap_face_4: | |
name: Double tap the cube with face 4 up | |
default: [] | |
selector: | |
action: {} | |
flipped90_face_4: | |
name: Flip the cube 90 degrees to face 4 | |
default: [] | |
selector: | |
action: {} | |
flipped180_face_4: | |
name: Flip the cube 180 degrees to face 4 | |
default: [] | |
selector: | |
action: {} | |
rotate_cw_face_4: | |
name: Rotate cube clockwise with face 4 up | |
default: [] | |
selector: | |
action: {} | |
rotate_ccw_face_4: | |
name: Rotate cube counter clockwise with face 4 up | |
default: [] | |
selector: | |
action: {} | |
slide_face_5: | |
name: Slide the cube with face 5 up | |
default: [] | |
selector: | |
action: {} | |
tap_face_5: | |
name: Double tap the cube with face 5 up | |
default: [] | |
selector: | |
action: {} | |
flipped90_face_5: | |
name: Flip the cube 90 degrees to face 5 | |
default: [] | |
selector: | |
action: {} | |
flipped180_face_5: | |
name: Flip the cube 180 degrees to face 5 | |
default: [] | |
selector: | |
action: {} | |
rotate_cw_face_5: | |
name: Rotate cube clockwise with face 5 up | |
default: [] | |
selector: | |
action: {} | |
rotate_ccw_face_5: | |
name: Rotate cube counter clockwise with face 5 up | |
default: [] | |
selector: | |
action: {} | |
shake: | |
name: Shake the cube | |
default: [] | |
selector: | |
action: {} | |
fall: | |
name: Drop the cube | |
default: [] | |
selector: | |
action: {} | |
source_url: https://gist.github.com/farridav/3f5bf486a858574c34198f12f26d79c4 | |
mode: queued | |
max: 5 | |
max_exceeded: silent | |
trigger: | |
- platform: mqtt | |
topic: !input topic | |
condition: | |
- condition: template | |
value_template: '{{ trigger.payload_json.action in ("shake", "throw", "wakeup", "fall", "tap", "slide", "flip180", "flip90", "rotate_left", "rotate_right") }}' | |
action: | |
- variables: | |
action: "{{ trigger.payload_json.action }}" | |
action_angle: "{{ trigger.payload_json.action_angle }}" | |
action_from_side: "{{ trigger.payload_json.action_from_side }}" | |
action_side: "{{ trigger.payload_json.action_side }}" | |
action_to_side: "{{ trigger.payload_json.action_to_side }}" | |
angle: "{{ trigger.payload_json.angle }}" | |
current: "{{ trigger.payload_json.current }}" | |
side: "{{ trigger.payload_json.side }}" | |
- choose: | |
- conditions: '{{ action == "slide" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ side == 0 }}" | |
sequence: !input slide_face_0 | |
- conditions: "{{ side == 1 }}" | |
sequence: !input slide_face_1 | |
- conditions: "{{ side == 2 }}" | |
sequence: !input slide_face_2 | |
- conditions: "{{ side == 3 }}" | |
sequence: !input slide_face_3 | |
- conditions: "{{ side == 4 }}" | |
sequence: !input slide_face_4 | |
- conditions: "{{ side == 5 }}" | |
sequence: !input slide_face_5 | |
- conditions: '{{ action == "tap" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ side == 0 }}" | |
sequence: !input tap_face_0 | |
- conditions: "{{ side == 1 }}" | |
sequence: !input tap_face_1 | |
- conditions: "{{ side == 2 }}" | |
sequence: !input tap_face_2 | |
- conditions: "{{ side == 3 }}" | |
sequence: !input tap_face_3 | |
- conditions: "{{ side == 4 }}" | |
sequence: !input tap_face_4 | |
- conditions: "{{ side == 5 }}" | |
sequence: !input tap_face_5 | |
- conditions: '{{ action == "flip90" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ side == 0 }}" | |
sequence: !input flipped90_face_0 | |
- conditions: "{{ side == 1 }}" | |
sequence: !input flipped90_face_1 | |
- conditions: "{{ side == 2 }}" | |
sequence: !input flipped90_face_2 | |
- conditions: "{{ side == 3 }}" | |
sequence: !input flipped90_face_3 | |
- conditions: "{{ side == 4 }}" | |
sequence: !input flipped90_face_4 | |
- conditions: "{{ side == 5 }}" | |
sequence: !input flipped90_face_5 | |
- conditions: '{{ action == "flip180" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ side == 0 }}" | |
sequence: !input flipped180_face_0 | |
- conditions: "{{ side == 1 }}" | |
sequence: !input flipped180_face_1 | |
- conditions: "{{ side == 2 }}" | |
sequence: !input flipped180_face_2 | |
- conditions: "{{ side == 3 }}" | |
sequence: !input flipped180_face_3 | |
- conditions: "{{ side == 4 }}" | |
sequence: !input flipped180_face_4 | |
- conditions: "{{ side == 5 }}" | |
sequence: !input flipped180_face_5 | |
- conditions: '{{ action == "rotate_right" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ side == 0 }}" | |
sequence: !input rotate_cw_face_0 | |
- conditions: "{{ side == 1 }}" | |
sequence: !input rotate_cw_face_1 | |
- conditions: "{{ side == 2 }}" | |
sequence: !input rotate_cw_face_2 | |
- conditions: "{{ side == 3 }}" | |
sequence: !input rotate_cw_face_3 | |
- conditions: "{{ side == 4 }}" | |
sequence: !input rotate_cw_face_4 | |
- conditions: "{{ side == 5 }}" | |
sequence: !input rotate_cw_face_5 | |
- conditions: '{{ action == "rotate_left" }}' | |
sequence: | |
- choose: | |
- conditions: "{{ side == 0 }}" | |
sequence: !input rotate_ccw_face_0 | |
- conditions: "{{ side == 1 }}" | |
sequence: !input rotate_ccw_face_1 | |
- conditions: "{{ side == 2 }}" | |
sequence: !input rotate_ccw_face_2 | |
- conditions: "{{ side == 3 }}" | |
sequence: !input rotate_ccw_face_3 | |
- conditions: "{{ side == 4 }}" | |
sequence: !input rotate_ccw_face_4 | |
- conditions: "{{ side == 5 }}" | |
sequence: !input rotate_ccw_face_5 | |
- conditions: '{{ action == "shake" }}' | |
sequence: !input shake | |
- conditions: '{{ action == "fall" }}' | |
sequence: !input fall |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment