Browser Mod服务详解:打造智能家居浏览器交互体验
前言
Browser Mod作为智能家居系统的扩展组件,提供了一系列强大的浏览器交互服务。本文将全面解析Browser Mod的各项服务功能,帮助开发者更好地利用浏览器作为智能家居交互终端。
服务调用基础
参数类型说明
在Browser Mod服务中,参数使用以下约定表示类型:
<string>:文本字符串<number>:数字list:YAML列表<TRUE/false>:布尔值,大写表示默认值<service call>:完整的服务调用规范<Browser IDs>:浏览器ID列表<Users>:用户ID或Person实体列表
服务调用方式
Browser Mod服务支持两种调用方式:
- 服务器端调用:通过脚本、自动化或开发者服务面板调用
- 浏览器端调用:通过仪表板的fire-dom-event动作调用
关键区别在于未指定目标时的默认行为:
- 服务器端调用:作用于所有已注册浏览器
- 浏览器端调用:仅作用于当前调用来源的浏览器
特殊参数值
在浏览器端调用中,可使用THIS作为特殊值:
browser_id: THIS:替换为当前浏览器IDuser_id: THIS:替换为当前登录用户ID
核心服务详解
1. 页面导航服务
service: browser_mod.navigate
data:
path: /lovelace/dashboard1
| 参数 | 说明 |
|---|---|
| path | 目标路径,如仪表板路径或配置页面路径 |
2. 页面刷新服务
service: browser_mod.refresh
强制刷新当前浏览器页面。
3. 信息弹窗服务
service: browser_mod.more_info
data:
entity: light.living_room
large: true
| 参数 | 说明 |
|---|---|
| entity | 要显示详情的实体ID |
| large | 是否显示宽版弹窗 |
| ignore_popup_card | 是否忽略当前弹出卡片 |
4. 自定义弹窗服务
service: browser_mod.popup
data:
title: "系统通知"
content: "检测到异常情况,请及时处理!"
size: wide
icon: mdi:alert
关键参数说明:
- 内容类型:支持HTML、仪表板卡片配置或ha-form表单架构
- 图标配置:支持单个或多个图标,可自定义样式和行为
- 按钮控制:左右两侧可配置动作按钮
- 自动关闭:支持超时自动关闭和交互自动关闭
- 样式定制:可通过CSS自定义弹窗样式
高级用法示例:
icons:
- icon: mdi:security
title: "安全设置"
action:
service: browser_mod.navigate
data:
path: /config/security
class: security-icon
style: |
.security-icon {
color: #ff5722;
animation: pulse 2s infinite;
}
5. 关闭弹窗服务
service: browser_mod.close_popup
关闭当前所有打开的弹窗和详情窗口。
6. 通知消息服务
service: browser_mod.notification
data:
message: "操作成功完成"
action_text: "查看详情"
action:
service: browser_mod.more_info
data:
entity: sensor.system_status
| 参数 | 说明 |
|---|---|
| duration | 通知显示时长(毫秒) |
| action | 点击按钮执行的动作 |
7. 主题设置服务
service: browser_mod.set_theme
data:
theme: "dark_blue"
primaryColor: "#3F51B5"
支持RGB数组或十六进制颜色值设置主题色彩。
8. 动作序列服务
service: browser_mod.sequence
data:
sequence:
- service: browser_mod.popup
data:
title: "确认"
content: "确定要执行此操作吗?"
- service: browser_mod.delay
data:
time: 2000
- service: browser_mod.notification
data:
message: "操作已执行"
支持将多个服务按顺序执行,构建复杂交互流程。
9. 延迟等待服务
service: browser_mod.delay
data:
time: 1500
在动作序列中插入等待时间,单位为毫秒。
10. 控制台输出服务
service: browser_mod.console
data:
message: "调试信息:用户点击了按钮"
将信息输出到浏览器控制台,便于调试。
11. JavaScript执行服务
service: browser_mod.javascript
data:
code: |
log('当前温度:'+hass.states['sensor.temperature'].state);
可用全局变量:
hass:前端状态对象data:服务调用数据service():执行Browser Mod服务log():输出到HA日志lovelace_reload():重载Lovelace配置
12. 浏览器注销服务
service: browser_mod.deregister_browser
data:
browser_id_exclude:
- "main_browser"
用于清理不再使用的浏览器注册信息,支持按ID、区域排除。
最佳实践建议
-
目标定位策略:
- 明确指定
browser_id或user_id避免意外影响 - 使用
THIS关键字简化浏览器端调用
- 明确指定
-
弹窗设计原则:
- 重要操作使用非可关闭弹窗(
dismissable: false) - 复杂表单使用ha-form架构
- 利用CSS增强视觉效果
- 重要操作使用非可关闭弹窗(
-
错误处理:
- 关键操作添加超时和超时动作
- 使用
dismiss_action处理用户取消操作
-
性能优化:
- 避免频繁的页面刷新
- 复杂交互使用
sequence服务减少网络请求
通过合理组合这些服务,可以构建出高度交互性的智能家居浏览器界面,实现从简单通知到复杂工作流的各种场景需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



