蓝图支持小米立方体控制器使用ZHA。
谢谢@bergstrom为了这个灵感。
所有这些都已测试。
支持的动作
- 滑动
- 敲
- 翻盖90度
- 翻盖180 dgress
- 摇
- 降低
- 唤醒
- 顺时针旋转
- 逆时针旋转
蓝图
单击徽章以导入此蓝图:(需要家庭助理必威是什么核心2021.3或更高)

蓝图:名称:Aqara Magic Cube描述:使用Aqara Magic Cube控制任何内容。域:自动化输入:远程:名称:魔术立方体描述:选择AQARA魔法立方体设备选择器:设备:集成:ZHA制造商:Lumi Flip_90:名称:FLIP 90度说明:Cube Flips Flips 90度90度。这取消了所有特定的90度函数。例如,从1到另一侧2将与从侧面6到2的默认值相同:false选择器:布尔值:{} cube_flip_90:name:flip cube 90度说明:Cube flips 90度时运行的动作。This only works if 'Flip 90 degrees' is toggled default: [] selector: action: {} flip_180: name: Flip 180 degrees description: Actions to run when cube flips 180 degrees.这取消所有特定的180度函数,例如从1到另一侧4将与从侧5到另一侧2相同:false选择器:boolean:{} cube_flip_180:name:flip cube 180摄氏度描述:cube flips flips flips flips flips flips flips flips flips flips。180度。仅当“翻转180度”被切换为默认值时,这才有效:[] selector:action:{} slide_any_side:name:name:slide slide nife侧描述:当Cube在任何侧面滑动时要运行的操作。这取消了所有特定的“幻灯片”功能,例如侧面1幻灯片将与侧面的幻灯片相同2默认值:false Selector:boolean:{} cube_slide_any:name:name:slide cube在任何侧面描述:在任何侧面slide cuble slide to cube on nothy nothy滑动。 This only works if 'Slide any side' is toggled default: [] selector: action: {} knock_any_side: name: Knock on any side description: Actions to run when knocking cube regardless of the side. This cancels all specific 'knock' functions e.g Knock on side 1 will be the same as knocking side 2 default: false selector: boolean: {} cube_knock_any: name: Knock cube on any side description: Action to run when knocking cube on any side. This only works if 'Knock on any side' is toggled default: [] selector: action: {} one_to_two: name: From side 1 to side 2 description: Action to run when cube goes from side 1 to side 2 default: [] selector: action: {} one_to_three: name: From side 1 to side 3 description: Action to run when cube goes from side 1 to side 3 default: [] selector: action: {} one_to_four: name: From side 1 to side 4 description: Action to run when cube goes from side 1 to side 4 default: [] selector: action: {} one_to_five: name: From side 1 to side 5 description: Action to run when cube goes from side 1 to side 5 default: [] selector: action: {} one_to_six: name: From side 1 to side 6 description: Action to run when cube goes from side 1 to side 6 default: [] selector: action: {} two_to_one: name: From side 2 to side 1 description: Action to run when cube goes from side 2 to side 1 default: [] selector: action: {} two_to_three: name: From side 2 to side 3 description: Action to run when cube goes from side 2 to side 3 default: [] selector: action: {} two_to_four: name: From side 2 to side 4 description: Action to run when cube goes from side 2 to side 4 default: [] selector: action: {} two_to_five: name: From side 2 to side 5 description: Action to run when cube goes from side 2 to side 5 default: [] selector: action: {} two_to_six: name: From side 2 to side 6 description: Action to run when cube goes from side 2 to side 6 default: [] selector: action: {} three_to_one: name: From side 3 to side 1 description: Action to run when cube goes from side 3 to side 1 default: [] selector: action: {} three_to_two: name: From side 3 to side 2 description: Action to run when cube goes from side 3 to side 2 default: [] selector: action: {} three_to_four: name: From side 3 to side 4 description: Action to run when cube goes from side 3 to side 4 default: [] selector: action: {} three_to_five: name: From side 3 to side 5 description: Action to run when cube goes from side 3 to side 5 default: [] selector: action: {} three_to_six: name: From side 3 to side 6 description: Action to run when cube goes from side 3 to side 6 default: [] selector: action: {} four_to_one: name: From side 4 to side 1 description: Action to run when cube goes from side 4 to side 1 default: [] selector: action: {} four_to_two: name: From side 4 to side 2 description: Action to run when cube goes from side 4 to side 2 default: [] selector: action: {} four_to_three: name: From side 4 to side 3 description: Action to run when cube goes from side 4 to side 3 default: [] selector: action: {} four_to_five: name: From side 4 to side 5 description: Action to run when cube goes from side 4 to side 5 default: [] selector: action: {} four_to_six: name: From side 4 to side 6 description: Action to run when cube goes from side 4 to side 6 default: [] selector: action: {} five_to_one: name: From side 5 to side 1 description: Action to run when cube goes from side 5 to side 1 default: [] selector: action: {} five_to_two: name: From side 5 to side 2 description: Action to run when cube goes from side 5 to side 2 default: [] selector: action: {} five_to_three: name: From side 5 to side 3 description: Action to run when cube goes from side 5 to side 3 default: [] selector: action: {} five_to_four: name: From side 5 to side 4 description: Action to run when cube goes from side 5 to side 4 default: [] selector: action: {} five_to_six: name: From side 5 to side 6 description: Action to run when cube goes from side 5 to side 6 default: [] selector: action: {} six_to_one: name: From side 6 to side 1 description: Action to run when cube goes from side 6 to side 1 default: [] selector: action: {} six_to_two: name: From side 6 to side 2 description: Action to run when cube goes from side 6 to side 2 default: [] selector: action: {} six_to_three: name: From side 6 to side 3 description: Action to run when cube goes from side 6 to side 3 default: [] selector: action: {} six_to_four: name: From side 6 to side 4 description: Action to run when cube goes from side 6 to side 4 default: [] selector: action: {} six_to_five: name: From side 6 to side 5 description: Action to run when cube goes from side 6 to side 5 default: [] selector: action: {} one_to_one: name: Knock - Side 1 description: Action to run when knocking on side 1 default: [] selector: action: {} two_to_two: name: Knock - Side 2 description: Action to run when knocking on side 2 default: [] selector: action: {} three_to_three: name: Knock - Side 3 description: Action to run when knocking on side 3 default: [] selector: action: {} four_to_four: name: Knock - Side 4 description: Action to run when knocking on side 4 default: [] selector: action: {} five_to_five: name: Knock - Side 5 description: Action to run when knocking on side 5 default: [] selector: action: {} six_to_six: name: Knock - Side 6 description: Action to run when knocking on side 6 default: [] selector: action: {} slide_on_one: name: Slide - Side 1 up description: Action to run when slides with Side 1 up default: [] selector: action: {} slide_on_two: name: Slide - Side 2 up description: Action to run when slides with Side 2 up default: [] selector: action: {} slide_on_three: name: Slide - Side 3 up description: Action to run when slides with Side 3 up default: [] selector: action: {} slide_on_four: name: Slide - Side 4 up description: Action to run when slides with Side 4 up default: [] selector: action: {} slide_on_five: name: Slide - Side 5 up description: Action to run when slides with Side 5 up default: [] selector: action: {} slide_on_six: name: Slide - Side 6 up description: Action to run when slides with Side 6 up default: [] selector: action: {} cube_wake: name: Wake up the cube description: Action to run when cube wakes up default: [] selector: action: {} cube_drop: name: Cube drops description: Action to run when cube drops default: [] selector: action: {} cube_shake: name: Shake cube description: Action to run when you shake the cube default: [] selector: action: {} rotate_right: name: Rotate right description: Action to run when cube rotates right default: [] selector: action: {} rotate_left: name: Rotate left description: Action to run when cube rotates left default: [] selector: action: {} mode: restart max_exceeded: silent trigger: - platform: event event_type: zha_event event_data: device_id: !input "remote" action: - variables: command: "{{ trigger.event.data.command }}" value: "{{ trigger.event.data.args.value }}" flip_degrees: "{{ trigger.event.data.args.flip_degrees }}" relative_degrees: "{{ trigger.event.data.args.relative_degrees }}" flip_90: !input "flip_90" flip_180: !input "flip_180" slide_any_side: !input "slide_any_side" knock_any_side: !input "knock_any_side" flip90: 64 flip180: 128 slide: 256 knock: 512 shake: 0 drop: 3 activated_face: > {% if command == "slide" or command == "knock" %} {% if trigger.event.data.args.activated_face == 1 %} 1 {% elif trigger.event.data.args.activated_face == 2 %} 5 {% elif trigger.event.data.args.activated_face == 3 %} 6 {% elif trigger.event.data.args.activated_face == 4 %} 4 {% elif trigger.event.data.args.activated_face == 5 %} 2 {% elif trigger.event.data.args.activated_face == 6 %} 3 {% endif %} {% elif command == 'flip' %} {{ trigger.event.data.args.activated_face | int }} {% endif %} from_face: > {% if command == "flip" and flip_degrees == 90 %} {{ ((value - flip90 - (trigger.event.data.args.activated_face - 1)) / 8) + 1 | int }} {% endif %} - choose: # ---------------------------- Rotate Right ---------------------------- - conditions: - "{{ command == 'rotate_right' }}" sequence: !input "rotate_right" # ---------------------------- Rotate Left ---------------------------- - conditions: - "{{ command == 'rotate_left' }}" sequence: !input "rotate_left" # ---------------------------- Wake ---------------------------- - conditions: - "{{ command == 'checkin' }}" sequence: !input "cube_wake" # ---------------------------- Shake ---------------------------- - conditions: - "{{ value == shake }}" sequence: !input "cube_shake" # ---------------------------- Drop ---------------------------- - conditions: - "{{ value == drop }}" sequence: !input "cube_drop" # ---------------------------- Knock any side ---------------------------- - conditions: - "{{ command == 'knock' and knock_any_side }}" sequence: !input "cube_knock_any" # ---------------------------- Slide any side ---------------------------- - conditions: - "{{ command == 'slide' and slide_any_side }}" sequence: !input "cube_slide_any" # ---------------------------- Flip 90 to any side ---------------------------- - conditions: - "{{ flip_degrees == 90 and flip_90 }}" sequence: !input "cube_flip_90" # ---------------------------- Flip 180 to any side ---------------------------- - conditions: - "{{ flip_degrees == 180 and flip_180 }}" sequence: !input "cube_flip_180" # ---------------------------- Flip 90 to side 1 ---------------------------- - conditions: - "{{ flip_degrees == 90 and activated_face == 1 }}" sequence: - choose: - conditions: "{{ from_face == 2 }}" sequence: !input "two_to_one" - conditions: "{{ from_face == 3 }}" sequence: !input "three_to_one" - conditions: "{{ from_face == 5 }}" sequence: !input "five_to_one" - conditions: "{{ from_face == 6 }}" sequence: !input "six_to_one" # ---------------------------- Flip 90 to side 2 ---------------------------- - conditions: - "{{ flip_degrees == 90 and activated_face == 2 }}" sequence: - choose: - conditions: "{{ from_face == 1 }}" sequence: !input "one_to_two" - conditions: "{{ from_face == 3 }}" sequence: !input "three_to_two" - conditions: "{{ from_face == 4 }}" sequence: !input "four_to_two" - conditions: "{{ from_face == 6 }}" sequence: !input "six_to_two" # ---------------------------- Flip 90 to side 3 ---------------------------- - conditions: - "{{ flip_degrees == 90 and activated_face == 3 }}" sequence: - choose: - conditions: "{{ from_face == 1 }}" sequence: !input "one_to_three" - conditions: "{{ from_face == 2 }}" sequence: !input "two_to_three" - conditions: "{{ from_face == 4 }}" sequence: !input "four_to_three" - conditions: "{{ from_face == 5 }}" sequence: !input "five_to_three" # ---------------------------- Flip 90 to side 4 ---------------------------- - conditions: - "{{ flip_degrees == 90 and activated_face == 4 }}" sequence: - choose: - conditions: "{{ from_face == 2 }}" sequence: !input "two_to_four" - conditions: "{{ from_face == 3 }}" sequence: !input "three_to_four" - conditions: "{{ from_face == 5 }}" sequence: !input "five_to_four" - conditions: "{{ from_face == 6 }}" sequence: !input "six_to_four" # ---------------------------- Flip 90 to side 5 ---------------------------- - conditions: - "{{ flip_degrees == 90 and activated_face == 5 }}" sequence: - choose: - conditions: "{{ from_face == 1 }}" sequence: !input "one_to_five" - conditions: "{{ from_face == 3 }}" sequence: !input "three_to_five" - conditions: "{{ from_face == 4 }}" sequence: !input "four_to_five" - conditions: "{{ from_face == 6 }}" sequence: !input "six_to_five" # ---------------------------- Flip 90 to side 6 ---------------------------- - conditions: - "{{ flip_degrees == 90 and activated_face == 6 }}" sequence: - choose: - conditions: "{{ from_face == 1 }}" sequence: !input "one_to_six" - conditions: "{{ from_face == 2 }}" sequence: !input "two_to_six" - conditions: "{{ from_face == 4 }}" sequence: !input "four_to_six" - conditions: "{{ from_face == 5 }}" sequence: !input "five_to_six" # ---------------------------- Flip 180 to side x ---------------------------- - conditions: - "{{ value == flip180 + activated_face - 1 }}" sequence: - choose: - conditions: "{{ activated_face == 1 }}" sequence: !input "four_to_one" - conditions: "{{ activated_face == 2 }}" sequence: !input "five_to_two" - conditions: "{{ activated_face == 3 }}" sequence: !input "six_to_three" - conditions: "{{ activated_face == 4 }}" sequence: !input "one_to_four" - conditions: "{{ activated_face == 5 }}" sequence: !input "two_to_five" - conditions: "{{ activated_face == 6 }}" sequence: !input "three_to_six" # ---------------------------- Knock side x ---------------------------- - conditions: - "{{ value == knock + activated_face - 1 }}" sequence: - choose: - conditions: "{{ activated_face == 1 }}" sequence: !input "one_to_one" - conditions: "{{ activated_face == 2 }}" sequence: !input "two_to_two" - conditions: "{{ activated_face == 3 }}" sequence: !input "three_to_three" - conditions: "{{ activated_face == 4 }}" sequence: !input "four_to_four" - conditions: "{{ activated_face == 5 }}" sequence: !input "five_to_five" - conditions: "{{ activated_face == 6 }}" sequence: !input "six_to_six" # ---------------------------- Slide side x ---------------------------- - conditions: - "{{ value == slide + activated_face - 1 }}" sequence: - choose: - conditions: "{{ activated_face == 1 }}" sequence: !input "slide_on_one" - conditions: "{{ activated_face == 2 }}" sequence: !input "slide_on_two" - conditions: "{{ activated_face == 3 }}" sequence: !input "slide_on_three" - conditions: "{{ activated_face == 4 }}" sequence: !input "slide_on_four" - conditions: "{{ activated_face == 5 }}" sequence: !input "slide_on_five" - conditions: "{{ activated_face == 6 }}" sequence: !input "slide_on_six"