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

 找回密码
 立即注册
查看: 426|回复: 4

[经验分享] 用电脑的键盘,一键开灯。。。

[复制链接]

5

主题

82

帖子

1293

积分

金牌会员

Rank: 6Rank: 6

积分
1293
金钱
1211
HASS币
0
发表于 2024-10-22 01:02:04 | 显示全部楼层 |阅读模式
很多时候,我坐在电脑桌前玩电脑,偶尔会遇到需要关闭家中的某盏灯,就需要选择下面的方法:
1, 去86开关或中控pad上关灯。(需要移动)
2, 喊小爱。(偶尔说不清楚,家里好多灯,而且晚上打扰家人睡觉)
3, 用手机进入app或电脑浏览器进入hass关闭。(手机操作需要在旁边解锁才行,电脑上打游戏的时候不方便,比如在打dota2,需要退出全屏去开浏览器关灯)

于是我琢磨咋才能,不论电脑在干什么,只要按一下键盘上某个键就关闭指定的灯。
----------------------------------------------------
原理:按下键盘按键后,自动发送post到nodered,nodered根据收到的json内容触发不同的效果。


下面是实现的步骤:
1,下载并安装AutoHotkey v2.0,这个软件就是监听鼠标键盘按键,然后做出一系列的操作。
2,用nodered创建 http in节点 监听post请求,根据不同的请求执行不同的命令。
1.png
3,新建一个.ahk文件编辑:
# 代码开始
#Requires AutoHotkey v2.0

ScrollLock:: {
    Url := "http://192.168.31.196:1880/webhook"
    data := '{"activeTabClass": "tab1-tab", "buttonClicked": "客厅南灯"}'
    HttpRequest(Url, data)
}

Pause:: {
    Url := "http://192.168.31.196:1880/webhook"
    data := '{"activeTabClass": "tab1-tab", "buttonClicked": "客厅北灯"}'
    HttpRequest(Url, data)
}

HttpRequest(url, data) {
    global req  ; 声明 req 为全局变量,以便在定时器中访问
    req := ComObject("WinHttp.WinHttpRequest.5.1")
    req.Open("POST", url, true)  ; 设置为异步请求
    req.SetRequestHeader("Content-Type", "application/json")
    
    ; 发送请求
    req.Send(data)
    
    ; 启动一个定时器,每100毫秒检查请求状态
    SetTimer(CheckRequestStatus, 100)
}

CheckRequestStatus() {
    global req
    try {
        if (req.Status != 0) {  ; 请求已完成
            SetTimer(CheckRequestStatus, "Off")  ; 停止定时器
            
            if (req.Status == 200) {
                ; 请求成功
                ; 你可以在这里处理成功的响应
                ; 例如,Debug输出
                ; MsgBox("请求成功!")
            } else {
                ; 请求失败
                ; 你可以在这里处理失败的响应
                ; 例如,Debug输出
                ; MsgBox("请求失败!状态码:" req.Status)
            }
        }
    } catch {
        ; 捕获错误,但不做任何处理
    }
}
# 代码结束
PS:我设置了2个按键,ScrollLock和Pause,(尽量找这种人畜无害,没有副作用的按键)按下键盘上指定的按键就发送指定的post请求。
代码是问的ai,应该还可以精简。


下面是nodered参考图片:
2.png
4,设置开机启动,按 Win + R 打开运行对话框。
输入 shell:startup 并按回车。这将.ahk的快捷方式搞进去。


你也可以设置一键开启客厅音乐、投影系统、关闭电视等等。

想想你坐在电脑桌前经常需要起身去搞什么电器,弄个快捷键吧!


回复

使用道具 举报

20

主题

484

帖子

3154

积分

论坛元老

Rank: 8Rank: 8

积分
3154
金钱
2670
HASS币
8
发表于 2024-10-22 09:13:39 | 显示全部楼层
很不错,也可以使用现成的软件HASS.Agent,支持各种快捷按键
回复

使用道具 举报

0

主题

167

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
金钱
1184
HASS币
0
发表于 2024-10-22 22:17:10 | 显示全部楼层
还是大佬们会玩,我只有打开浏览器关闭灯了
回复

使用道具 举报

14

主题

140

帖子

994

积分

论坛技术达人

积分
994
金钱
854
HASS币
0
发表于 2024-10-22 23:05:15 | 显示全部楼层
15快的 那个什么熊的无线开关....然后在ha配置个自动化 单按 双按 和长按...不知道够不够你用
回复

使用道具 举报

18

主题

587

帖子

4283

积分

元老级技术达人

积分
4283
金钱
3661
HASS币
182
发表于 2024-10-23 11:29:37 | 显示全部楼层
如果是win系统,可以试试系统自带的任务计划程序,系统级别软件,触发条件更多,自动化程度更无感。比如打开某游戏就关灯,开机/登陆系统就关灯。

如果是mac系统,Shortery+Shortcuts也可一战。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 09:12 , Processed in 0.068953 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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