用 OpenClaw + Home Assistant 打造 AI 智能家居控制中心
前言 作为智能家居玩家,你是否想过:用自然语言控制家里的设备? “帮我打开客厅的灯” “看看空调开没开” “卧室温度多少?” 这篇文章教你如何用 OpenClaw + Home Assistant + 小米官方插件 打造一个 AI 智能家居控制中心。 架构概览 flowchart LR A[用户] -->|自然语言| B[OpenClaw] B -->|REST API| C[Home Assistant] C -->|Mi Cloud| D[小米云端] D -->|控制| E[米家设备] 核心组件说明: 组件 作用 官方地址 Home Assistant 智能家居控制中枢 home-assistant.io Xiaomi Home 小米官方 HA 插件 github.com/XiaoMi/ha_xiaomi_home OpenClaw AI Agent 平台 openclaw.ai homeassistant-skill OpenClaw 控制技能 内置 Skill 一、Home As...
解决 Linux 下 fcitx 光标不跟随与 Markdown 预览问题
问题背景 在 Linux (特别是 KDE 环境) 下使用 JetBrains IDE 时,经常会遇到以下问题: fcitx 输入法光标不跟随 - 输入中文时光标位置不对 Markdown 无法预览 - IDE 内置的 Markdown 预览功能失效 KDE 全局菜单不生效 - 顶栏无法显示 IDE 菜单 这些问题通常是因为 JetBrains Runtime (JBR) 缺少必要的组件。 解决方案 方案一:使用编译好的 JBR (推荐) 感谢 @RikudouPatrickstar 提供的已编译 JBR,包含了 JCEF (Chromium Embedded Framework) 组件。 下载地址: JetBrainsRuntime-for-Linux-x64 安装步骤: 下载对应版本的 JBR 压缩包 解压到 JetBrains IDE 的 目录(备份原有目录) 重启 IDE 即可 方案二:通过插件切换 Runtime 打 IDE 设置,进入 Plugins 搜索并安装 Choose Runtime 插件 重启 IDE 后,在菜单中选择新的 Runtime KD...
常用排序算法
参考 http://www.cyc2018.xyz/ 1. 所有排序算法实现Sort 抽象类 12345678910111213141516171819202122232425262728public abstract class Sort<T extends Comparable<T>> { public abstract void sort(T[] numbs); /** * 实现compare 接口, 用于比较数据的大小 * * @param v 数值1 * @param w 数值2 * @return v < w (true) */ protected boolean less(T v, T w) { return v.compareTo(w) < 0; } /** * 交换数组两个位置的值 * * @param a 待交换的数组 * @param i 位置i * @pa...
Android 家庭分享 App:HomeHelper 开发实战
一. 简介 本项目为了解决家庭成员在生活中帐目信息不能同步,家庭备忘录不同步的问题,并且有一定的互动功能 项目 gitee地址 项目 文档介绍 应用下载 链接 1.1. HomeHelper 家庭帮手 特点 :chart_with_upwards_trend:家庭记账,和分析近期情况,并且能家庭同步 :golf:同步分享动态 :ledger:同步家庭备忘录 :closed_lock_with_key: 二维码分享加入家庭,且token校验 1.2. 界面展示 主界面 个人中心 1.3. 使用的技术栈 Android jetpack Room 数据库的ORM框架 LiveData 动态刷新页面 ViewModel 保存页面数据,用其维护数据 kotlinx.coroutines 协程, io操作在协程中运行, 防止阻塞ui线程 retrofit2 和 OkHttp2 和后台发送网络请求 后台使用 spring boot spring security 开发的api, 以及安全验证功能 二. 主要功能介绍 2.1. 添加帐单并同步 记账 同步家庭帐单 通过折...
数据结构与算法:线性表实现
1. 线性表 line-list 1.1 顺序表 1.1.1. 实现代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869/** * 顺序表 */public class SeqList { private static final int MAX_SIZE = 1024; private final int[] lis = new int[MAX_SIZE]; private int size; public SeqList() { size = 0; } /** * 在指定位置插入数据 * * @param data 要插入的数据 * @param position position 要插入的位置 */ public boolean in...
Vue + Element UI 自定义 Token 认证
背景 在使用 Vue + Element UI 开发后台管理系统时,通常需要在请求头中携带 Token 进行身份认证。Element UI 的默认模板使用 X-Token 作为请求头,但后端可能要求使用其他字段名(如 token 或 Authorization)。 本文记录如何自定义请求头 Token 字段名,以及开发过程中遇到的一些常见问题。 1. 自定义请求头 Token 修改 src/utils/request.js 文件中的拦截器配置: 123456789101112131415161718import store from '@/store'import { getToken } from '@/utils/auth'// 请求拦截器service.interceptors.request.use( config => { // 在请求头中添加 token if (store.getters.token) { // 默认是 config.headers[...
Java Web 开发:Servlet 与 JSP 学习笔记
1. Servlet 1.1 基本流程 1234567 (*)-> "login.html"-right-> "form表单处理给 '/login' "-down-> "web.xml映射,给LoginServlet处理"-right-> "LoginServlet处理"-right-> "实例化Servelt"-up-> "重写 doGet,doPost等方法,获取参数,设置响应"-up-> "返回html" flowchart TD A[login.html] -->|form提交到 /login| B(/login) B -->|web.xml 映射| C[LoginServlet] C --> D[实例化 Servlet] D --> E[重写 doGet/doPost] E -->|获取参数 &...
通信原理期末复习笔记
第一章 绪论 1. 基本概念 1.1 消息、信息和信号 消息: 对事物的物理状态变化的描述 (如:温度、语音、文字、图像) 信息: 消息中有用的内容 信号: 为传递消息使用的方式 1.2 通信 由一地向另一地传递消息(信息) 1.3 通信模型 123456789@startuml(*)-right-> "信源" -right->[发送端] "发送设备"-right-> "信道" as A1-right-> "接收设备"-right->[接收端] "信宿" as A2"噪声源 "-up-> A1A2 -right-> (*)@enduml 信源: 消息的产生地 发送设备: 将原始电信号转换为适于在信道中传输的信号(变换、编码、调制) 信道: 传输媒介或途径 噪声源: 散布在系统各部分的噪声集中表现,噪声降低通信质量 接受设备: 将信号转换为原始信号(调解、译码) 信宿: 信息的归宿点,将电信号转换为相应消息 2...
Linux 下xdebug-phpstorm 安装踩坑记录
1. 安装xdebug 12sudo pacman -S xdebug# apt / yum 类似 2. 编辑xdebug.ini文件 1sudo vim /etc/php/conf.d/xdebug.ini 123456789zend_extension=xdebug.so; xdebug 3 的特性xdebug.mode = debugxdebug.idekey = PHPSTORM xdebug.show_error_trace = 1xdebug.remote_autostart = 0 xdebug.remote_handler = dbgpxdebug.remote_mode = "req"xdebug.remote_log=/tmp/xdebug.log 3. 解决Linux下xdebug 更新到3.0 phpstorm debug 不起作用 3.1 原因 由于使用archlinux 环境, xdebug 版本更新到3.0 xdebug 将默认的监听口改为了 9003 而不是9000 3.2 将debug端口改为9003 参考...
Oh My Zsh Git 别名速查表
alias g=‘git’ alias ga=‘git add’ alias gaa=‘git add --all’ alias gapa=‘git add --patch’ alias gau=‘git add --update’ alias gap=‘git apply’ alias gb=‘git branch’ alias gba=‘git branch -a’ alias gbd=‘git branch -d’ alias gbda=‘git branch --no-color --merged | command grep -vE “^(*|\s*(master|develop|dev)\s*$)” | command xargs -n 1 git branch -d’ alias gbl=‘git blame -b -w’ alias gbnm=‘git branch --no-merged’ alias gbr=‘git branch --remote’ alias gbs=‘git bisect’ ...





