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

 找回密码
 立即注册
查看: 13085|回复: 16

分享和 macOS 的自动化

[复制链接]

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
发表于 2020-12-21 10:40:47 | 显示全部楼层 |阅读模式
本帖最后由 sephrioth 于 2020-12-21 14:29 编辑

其实场景是想检测人是否在电脑房间, 这样可以联动多个自动化(灯光, 空调等等)。 也不想增加新的硬件, 所以把眼光直接放在了电脑上, 因为我的 iMac 电脑是从不关机的, 所以能否用 macOS 休眠与否来进行判断,如果没休眠, 那大概率都是宅在电脑前的, 如果休眠了,估计就去别的房间了..
那时还没有 Homeassistant for macOS 的客户端, 网上搜了一圈用了 Hammerspoon (这货非常强大,有机会再分享)来进行检测系统状态并把状态传回到 HA 的 sensor。 一方面麻烦不说(要专门写代码), 而且有时会有bug, 需要重载 Hammerspoon 的配置才能解决。

后来发现官方出了 HA for macOS 的客户端, 然后马上研究了下, 发现可以满足需求。安装客户端后你会多一个 binary_sensor.mac_active 的 sensor, 看名字就是监控你的 macOS 是否在激活 active 状态, on 就是激活中, off 就是未激活, 然后就直接用了这个 binary sensor 去做自动化的 trigger, 某天在电脑看电影的时候发现突然灯,空调什么的全关了, 然后一脸懵逼, 仔细研究下, 推测这个 active 只是说你如果一段时间内不操作电脑, 状态就会自动变为 off,看视频的时候这种情况非常常见, 所以单纯依赖这个 binary sensor 行不通。
然后仔细看了下这个 binary sensor 的预设属性,

Fast User Switched: false
Idle: false
Locked: true
Screen Off: true
Screensaver: false
Sleeping: true
friendly_name: iMac
icon: mdi:desktop-mac


发现最适合拿来做 trigger 的应该就是 Sceen Off 这个属性, 就是判断屏幕是否关闭。 为了后续方便, 把这个属性单独拿出来自定义了另外一个 binary sensor。 这里为了理解更符合常识, 我加了 not 这个操作, 如果不加的话, 那最终表现就是这个 sensor 为 off 的时候电脑是亮的, 为 on 的时候是息屏的, 和常识不一致; 然后因为这个属性 Screen Off 中间有空格, 所以还需要加 []

binary_sensor:
  - platform: template
  sensors:
    imac_on:
    value_template: "{{ not states.binary_sensor.mac_active.attributes['Screen Off'] }}"   #如果这个Screen Off的属性为false的时候该sensor为true
    friendly_name: iMac


有了这个, 就很好做后续的自动化了,  比如下面这个例子就是灯的, 如果电脑亮屏, 并且时间在日落后, 则打开该房间的灯, 如果息屏则关灯;当然你也可以根据自己的需求加入一定的延时,这里我就不举例了; 还可以做空调的, 方法都是一样。

- alias: 'Playroom Light Control'
  trigger:
  - platform: state
    entity_id: binary_sensor.imac_on
  action:
  - service_template: >
      {% if (states.binary_sensor.imac_on.state == 'on') and (states.sun.sun.state == 'below_horizon') %}
        light.turn_on
      {% else %}
        light.turn_off
      {% endif %}
    entity_id: light.xxx

最新版本的下载在这里,其实除了这个active的sensor外, 还有很多别的sensor, 比如电量啊,空间啊什么的,不是本帖重点就不介绍了, 大家可以自行研究。
https://github.com/home-assistant/iOS/releases






评分

参与人数 1金钱 +20 收起 理由
+ 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-12-21 13:26:42 | 显示全部楼层
这个好 这个好,人体红外传感器和它配合就完美不关灯了.
回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-12-21 13:28:21 | 显示全部楼层
但是我咋没找到 macos的app
回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-12-21 13:30:47 | 显示全部楼层
回复

使用道具 举报

27

主题

2143

帖子

8934

积分

论坛元老

Rank: 8Rank: 8

积分
8934
金钱
6786
HASS币
30

论坛元老

发表于 2020-12-21 13:31:35 | 显示全部楼层
通过路由器检测是否在线是否可行,休眠是不是应该就离线了
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
 楼主| 发表于 2020-12-21 13:38:22 | 显示全部楼层
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
 楼主| 发表于 2020-12-21 13:42:46 | 显示全部楼层
情非殇 发表于 2020-12-21 13:31
通过路由器检测是否在线是否可行,休眠是不是应该就离线了

休眠不一定离线的, 特别是有外接电源的情况下基本不会离线。比如 macOS 很多东西都是在休眠的时候完成的, 比如 PoweNap, Timemachine备份, 自动更新等等
回复

使用道具 举报

175

主题

2967

帖子

7606

积分

超级版主

我就是六神

Rank: 8Rank: 8

积分
7606
金钱
4614
HASS币
398

活跃会员教程狂人灌水之王

QQ
发表于 2020-12-21 13:53:59 | 显示全部楼层
回复

使用道具 举报

7

主题

192

帖子

1705

积分

金牌会员

Rank: 6Rank: 6

积分
1705
金钱
1508
HASS币
30
 楼主| 发表于 2020-12-21 13:56:59 | 显示全部楼层
jyz_0501 发表于 2020-12-21 13:53
https://github.com/home-assistant/iOS/releases

对, 这个地址更好点, 我更新了下主贴。
回复

使用道具 举报

1

主题

5

帖子

82

积分

注册会员

Rank: 2

积分
82
金钱
77
HASS币
0
发表于 2020-12-21 14:22:29 | 显示全部楼层
感谢大神的分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 21:33 , Processed in 0.105427 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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