Some CRMs force all companies into a one-size-fits-all setup. Salesforce is so successful, in large part, because it doesn’t. Its killer feature, instead, is its flexibility. –What’s Salesforce?

前言

我在南京和朋友开了一家青旅,在积木化编程与智能家居里提到:

我准备在青旅里边做一些有意思的空间编程尝试。

其中一个尝试是,我们希望有一个可编程的屏幕与客人互动,这个屏幕像一个动态数字公告牌。规划里的一些功能包括:

  • 晚上11点之后,提醒客人保持安静,不要打扰到其他人。屏幕切换到夜间模式(深色背景)
  • 早上8点之后,随机呈现壁纸,随机播放一些有趣的格言。循环音乐。
  • 用机器视觉与客人互动(AR),制作一些意外的效果,鼓励大家分享传播。

最初我希望在树莓派里手动来做,使用浏览器作为UI(全屏接管屏幕),使用websocket来与Python程序通信(采用Eel之类的库)。

后来发现Screenly似乎是更好的选择,于是为它写了一篇文章: Screenly–用树莓派让任何屏幕变为可编程的数字标牌

近期计划持续对Home Assistant做一些深入分析,对其社区和生态保持着密切关注。

Home Assistant可以很好地接管家庭设备,将其自动化,同时使其可编程。是否可以将Home Assistant的控制面板/屏幕也变得可编程呢,以便于其他传感器互动。如此一来青旅里的屏幕不只可以区分白天黑夜切换场景,还可以根据客人的出入和空间里发生的事情提供更多人性化的交互,相当于能够与Home Assistant里的所有事件互动!

社区里果真有人已经做了: hass-browser_mod

hass-browser_mod

hass-browser_mod是一个Home Assistant组件, 可将你的浏览器变为可控制的实体(entity)以及音频播放器。

一些用例包括:

  • 当有人按门铃时,让你的前门摄像头从你厨房的平板电脑上弹出。
  • 在睡觉时,在房子的每个屏幕上都会弹出一条消息。
  • 当厨房灯在午夜后开启时,使工作站上的浏览器切换到特定选项卡
  • 当交通传感器告诉您是时候回家时,在你的工作计算机上播放TTS消息。(默认使用google,国内不可用)

安装

技术文档主要翻译自hass-browser_mod readme.md

依赖

Home Assistant 0.95+

我的测试环境是0.95.1

开始安装

  • hass-browser_mod 中的custom_components/browser_mod/ 复制到 ~/.homeassistant/custom_components/browser_mod
  • 在configuration.yaml添加:browser_mod:
  • 重启 Home Assistant

hass-browser_mod是一个f vnt(自定义组件),如果你要接入新的硬件/服务,一般都是通过自定义组件的方式,custom_component相关技术文档可以参考:Integration Services

使用

使用说明的细节就不翻译了,参考文档. 将其作为一个服务来用即可。

测试

/dev-service 测试:

service: browser_mod.command

service data:

1
2
3
4
{
  "command": "navigate",
  "navigation_path": "/map"
}

一切正常。

参考: