『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 17229|回复: 31

[新奇玩法] 熬了一夜写了个 Mac 静音开关,带实时反馈的~

[复制链接]

14

主题

156

帖子

858

积分

论坛技术达人

积分
858
金钱
702
HASS币
0
发表于 2019-7-16 09:23:57 | 显示全部楼层 |阅读模式
本帖最后由 Sunbelife 于 2019-7-16 09:31 编辑

前言
教程在下面。

先给你们看看家伙,哈哈:

[1]

仅支持 macOS,支持实时反馈。

也就是说手机上操作,电脑会静音/不静音。

电脑按下静音键,手机上也会显示静音状态。

想法原理


其实这事分三步。

第一步是如何让 Hassio 和 macOS 发生关系,用 Hassio 让 Mac 静音,这得写个开关。

第二步是如何让它反馈状态,这得写个 Sensor。

第三步就是让 Sensor 和开关联动,这得写个自动化。

再就是排坑了,一言难尽。

误打误撞写完了。

想法实现


具体到实现简单很多。

一切的起源来源于 Apple Script,可以理解为它能用代码执行 macOS 上的任何操作,当然,包括静音,以及获取静音状态。

总之,静音的命令就是:

osascript -e 'set volume output muted true/false'


获取静音状态的命令就是:

osascript -e 'output muted of (get volume settings)'

此外其实还可以调音量进度。

我是在这学到的:Set/get OSX volume/mute from the command line[2]

步骤如下:

0、在 macOS 上开启 SSH 访问,在「偏好设置 - 共享 - 远程登录」画勾:



                               
登录/注册后可看大图


然后登录进树莓派,执行下面的命令。

一路回车。

创建免秘钥登录:

sudo docker exec -it homeassistant bash
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 你电脑的用户名@你电脑的IP





                               
登录/注册后可看大图




1、用 Command line Switch 实现 macOS 的静音开关,自己调整好缩进吧:



  - platform: command_line
    switches:
      mute:
        command_on: ssh 你的用户名@你的IP osascript -e \'set volume output muted false\'
        command_off: ssh 你的用户名@你的IP osascript -e \'set volume output muted true\'

2、用 Command line Binary Sensor 实现状态反馈,自己调整好缩进吧:

binary_sensor:
  - platform: command_line
    name: mac_mute_status
    command: ssh 你的用户名@你的IP osascript -e \'output muted of \(get volume settings\)\'
    payload_on: 'false'
    payload_off: 'true'
    scan_interval: 1
    device_class: "sound"

3、写两个自动化,上面的 Sensor 感应到关了,就把开关关掉,感应到开了,就吧开关打开:

- id: '1563231514344'
  alias: Mac mute state
  trigger:
  - entity_id: binary_sensor.mac_mute_status
    from: 'off'
    platform: state
    to: 'on'
  condition: []
  action:
  - alias: ''
    data:
      entity_id: switch.mute
    service: switch.turn_on
- id: '1563231650909'
  alias: Mac mute state off
  trigger:
  - entity_id: binary_sensor.mac_mute_status
    from: 'on'
    platform: state
    to: 'off'
  condition: []
  action:
  - data:
      entity_id: switch.mute
    service: switch.turn_off


4、然后就搞定了,随便起个名字玩吧:



                               
登录/注册后可看大图



附链接

[1]: http://v.youku.com/v_show/id_XND ... j.8428770.3416059.1[/media]
[2] Set/get OSX volume/mute from the command line: https://coderwall.com/p/22p0ja/s ... om-the-command-line


版权所属 @Sunbelife,转载需署名

评分

参与人数 2金钱 +25 收起 理由
lidicn + 20 厉害了word楼主!我做了win的静音跟条件音.
jajn + 5 感谢楼主分享!

查看全部评分

回复

使用道具 举报

14

主题

156

帖子

858

积分

论坛技术达人

积分
858
金钱
702
HASS币
0
 楼主| 发表于 2019-7-16 09:31:43 | 显示全部楼层
自顶自顶自顶自顶自顶自顶
回复

使用道具 举报

39

主题

2074

帖子

7773

积分

元老级技术达人

积分
7773
金钱
5684
HASS币
110
发表于 2019-7-16 09:32:05 | 显示全部楼层
沙发是我的!
回复

使用道具 举报

39

主题

750

帖子

4717

积分

论坛元老

Freddy.

Rank: 8Rank: 8

积分
4717
金钱
3942
HASS币
0

最佳新人卓越贡献

发表于 2019-7-16 09:32:39 | 显示全部楼层
来自黑粉的评价
回复

使用道具 举报

123

主题

4630

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16083
金钱
11368
HASS币
45
发表于 2019-7-16 09:36:25 来自手机 | 显示全部楼层
这个就厉害了
回复

使用道具 举报

14

主题

156

帖子

858

积分

论坛技术达人

积分
858
金钱
702
HASS币
0
 楼主| 发表于 2019-7-16 09:43:03 | 显示全部楼层

所以对于黑粉,我们绝对不能把沙发留给他。
回复

使用道具 举报

14

主题

156

帖子

858

积分

论坛技术达人

积分
858
金钱
702
HASS币
0
 楼主| 发表于 2019-7-16 09:44:31 | 显示全部楼层

不好意思,沙发占了哈
回复

使用道具 举报

7

主题

1977

帖子

5671

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
5671
金钱
3694
HASS币
145

灌水之王

发表于 2019-7-16 09:45:50 | 显示全部楼层
虽然不知道在说什么 但是看起来很牛逼的样子……没苹果
回复

使用道具 举报

14

主题

156

帖子

858

积分

论坛技术达人

积分
858
金钱
702
HASS币
0
 楼主| 发表于 2019-7-16 09:46:42 | 显示全部楼层

回复

使用道具 举报

2

主题

150

帖子

571

积分

高级会员

Rank: 4

积分
571
金钱
421
HASS币
0
发表于 2019-7-16 10:00:58 | 显示全部楼层
感谢分享,学习学习~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-15 12:00 , Processed in 0.087986 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表