首页 >>  正文

定时任务不执行

来源:baiyundou.net   日期:2024-09-22

作者:GeekOn

导读:

智能音箱可以设定闹钟,但却不可以定时执行任务,今天就来搞定它。

续着上一篇IFTTT继续

不知道是不想做还是不肯做还是不愿做还是挤牙膏,总之目前的智能音箱都是只能设定闹钟,却不能够在设定的时间执行特定的操作任务。之前实现的时候有个方案,借助日历(比如Google日历),例如“hi,Google,设定18:00打开电视”,那么就会在Google日历的18:00设定一条日历,并在日历提醒时执行打开电视的任务。执行后发现因为Node-RED和Google日历执行时有延迟,总是不能够很准确的在设定的时间执行任务(多数会延迟3-10分钟),强迫症自然是不能忍。所以就执行第二套方案,在自己的服务器上面做计时器定时,写到头麻到不想写的时候,突然找到一个部件,可以协助实现,开心!
还是以Google home为例,可以实现语音设定“hi,Google,设定1730打开空调”,并且使用Notify通知设定结果,支持单个删除,全部删除,修改等功能。实现这个功能用到几个好东西,除Node-RED外,重磅推出IFTTTLine即时通讯。


IFTTT

IFTTT是一个第三方平台,可以很方便的联动很多网络服务,可以和Google Assistant进行互动,用来自定义语音指令,个性化定制Google home可以说是非常方便,神器!

LINE

LINE就是一个即时通讯软件,类似于wechat、whatsapp,只不过它可以直接接入IFTTT,用来接收推送通知方便快捷,且无推送信息条数限制,强烈建议安装使用。(wechat也可以,不过需要用企业微信,个人微信暂不支持。)

准备工作

1、Node-RED

需要添加一个组件,在Node-RED的菜单中选择设置安装,搜索corn-plus,并安装它。

2、IFTTT

首先要創建帳號,可以連結Google 或Facebook 帳號登入,也可以用Email 創一個新的。搜索webhook,并连接,有一串api key需要记录下来,并放入configuration.yaml。api key就是显示的一串网址https://maker.ifttt.com/use/后面的部分。

记得重启HA。
并连接你的Google Assistant账号,Line账号,具体在右上角点击头像,选择My services 。还有其他许多服务都可以接入,这里我们只先说这两个。
回到HA,在配置中添加IFTTT集成,跟着说明走就好了。

开始设定

老规矩先说逻辑
Google指令传入HANode-RED处理执行

Node-RED处理包括命令解析,时间设定,任务安排,以及修改、删除,检查当前设定等。1、先设定Google指令,通过IFTTT,上一篇已叙,不再赘述。
如果跟足上篇,正好就到了Google发送事件至HA的环节。

2、HA收到事件的处理。

HA本身可以接收webhook发来的事件,上一篇也同样有叙述,透过将有关信息发送到一串网络地址,该信息就会被HA所接收,并作为一个“事件”,从而可以用来触发一系列动作,并将其所携带的信息作为处理数据。

在Node-RED中使用events:all模块来监测事件情况,配置如下:

IFTTT发来的事件在HA中使用ifttt_webhook_received来定义。

插播Debug

插播一下Node-RED中debug的使用,通过debug可以及时了解收到的信息内容,json格式,以及产生错误的可能原因。

配置

通常我会选择完整咨讯。将他连接到你希望了解输出信息的接口上,就可以了,他的存在不会影响你的其他流程,只会多出一个分支来收集所有的输出信息,并显示在右侧边栏的debug栏。

图示1、2、3打开右侧边栏i是infomation窗口,中间的瓢虫就是debug,后面的是dashboard。

看到payload没,他就是对应msg.payload的,同理event_type对应的就是msg.event_type。而再下一级的用法是msg.payload.time,以此类推。

我本身使用了很多IFTTT的事件触发,所以先要用switch模块来分流。

分流之后的第一个输出口就是现在要用到的定时任务,

这是我们在IFTTT中设定的事件所携带的信息,第一个event对应了刚才的分流设定,entity_id对应Google中的文字部分,time对应数字部分,command是为了方便添加删除等功能的附加字段,state这里为on表示这是设定让设备打开的命令,同理在IFTTT中设定off的命令,并把对应的state改为off,就完成了添加turn off的定时功能。由于这个Noede-RED的流程可以说是相当复杂,所以大家需要的话关注评论留言吧。

有任何疑问或者交流讨论,欢迎随时留言评论

","force_purephv":"0","gnid":"9876229e552d0c0a7","img_data":[{"flag":2,"img":[{"desc":"","height":"299","title":"","url":"https://p0.ssl.img.360kuai.com/t013698290b3b257311.jpg","width":"600"},{"desc":"","height":"192","title":"","url":"https://p0.ssl.img.360kuai.com/t014208c828a1dc109c.jpg","width":"600"},{"desc":"","height":"202","title":"","url":"https://p0.ssl.img.360kuai.com/t01499d2aef51abfbcb.jpg","width":"546"},{"desc":"","height":"134","title":"","url":"https://p0.ssl.img.360kuai.com/t018becdec14a622d1c.jpg","width":"521"},{"desc":"","height":"241","title":"","url":"https://p0.ssl.img.360kuai.com/t01f7e57aad11fa0ed8.jpg","width":"545"},{"desc":"","height":"570","title":"","url":"https://p0.ssl.img.360kuai.com/t015ef07da2a4ba9a2d.jpg","width":"344"},{"desc":"","height":"305","title":"","url":"https://p0.ssl.img.360kuai.com/t015bff5c646ada8407.jpg","width":"556"},{"desc":"","height":"349","title":"","url":"https://p0.ssl.img.360kuai.com/t013a58c2274e26488f.jpg","width":"600"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1671849480000,"pure":"","rawurl":"http://zm.news.so.com/b5e20280e2e8e8c46d83718ade14f971","redirect":0,"rptid":"385b57e4619f98e0","s":"t","src":"什么值得买","tag":[{"clk":"kdigital_1:智能家居","k":"智能家居","u":""}],"title":"智能家居 篇十二:第十章 自建HomeAssistant定时任务——Google都没做到的事

祖杨苗3068计划任务不执行 -
全从卷17186602294 ______ Task Scheduler服务要启动 开始-运行-services.msc 找到Task Scheduler服务,启动一下,如果想开机自动起,就把它设成自动.

祖杨苗3068Linux定时任务,有部分语句没执行 -
全从卷17186602294 ______ 环境变量$HIVE_HOME没有找到,如果是在/etc/profile里定义的话,估计是你前面的点后面没空格 . /etc/profile; /bin/bash /home/hadoop/script/BaboonShellTest.sh

祖杨苗3068linux定时任务调用shell时脚本中的存储过程不执行 -
全从卷17186602294 ______ 1、被执行的脚本没有执行权限,这种情况 直接授权 chmod 755 xxx.sh2、被执行的脚本编码有问题,这种情况直接转码 dos2unix xxx.sh 我们也可下载一个windows版的dos2unix,转完码后再上传到Linux服务器 补充:linux定时任务 每天早上6点 ...

祖杨苗3068linux 下cron定时任务为什么没执行 -
全从卷17186602294 ______ 你能告诉我在那儿看cron日志吗? 我以前找过很久没有找到, 后来没办法我在crontab里面写上重定向才能存一些信息 后来还是不爽, 直接在脚本里面存日志才决绝问题 对了你注意以下权限,和脚本的路径

祖杨苗3068一个tomcat启动脚本,手工执行ok,但是放入定时任务就是不执行,请问为什么 -
全从卷17186602294 ______ 写一个重启tomcat的shell脚本,然后用crontab定时执行这个脚本即可.

祖杨苗3068这个脚本中的sqlplus在定时任务中为什么没有执行? -
全从卷17186602294 ______ 因为你在shell下执行没问题 那么脚本应该是正确的 我认为问题应该出在路径上面 你在手动执行的时候用的是自己的用户环境PATH 但是在cron下执行的时候用的PATH估计只有 /bin /sbin /usr/bin /usr/sbin 因此你的sqlplus这个命令 系统根本找不到在哪里 你试试在脚本的最前面 PATH重新定义一遍 加入所有要执行命令的路径 PATH=PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/mysql/bin 你自己sqlplus这个命令的路径加上去

祖杨苗3068xp系统,设置任务计划成功,长时间不操作电脑不执行,怎么解决? -
全从卷17186602294 ______ 既然设置成功了任务计划,那么,在电脑开着的前提下,任务计划应该会自动执行.你说在长时间不操作电脑的情况下,是指电脑打开了但没操作还是电脑没打开?如果是没打开,当然不会执行,如果电脑开机了,没执行,那任务计划设置有问题.你按下面方法检查重设试试.1、桌面--鼠标右键--属性---屏幕保护程序(屏幕保护无)-电源--系统待机--从不2、重建任务计划试试:右键->属性->屏幕保护->电源,重新建立个任务计划,或者修改那个计划里面的用户密码,因为用哪个用户 来运行这个程序,这些都要自己设置的.因此,看看执行的用户名和密码对应你的登录用户不.3、重做安全设置:"安全设置->本地策略->安全选项"

祖杨苗3068Spring 定时器不执行 我是这样配置的 大家帮我看看 -
全从卷17186602294 ______ 启动定时器 Spring的TimerFactoryBean负责启动定时任务 scheduledTimerTasks里显示一个需要启动的定时器任务的列表. 可以通过设置delay属性延迟启动 86400000 3600000 这个任务我们只能规定每隔24小时运行一次,无法精确到某时启动

祖杨苗3068我把定时关机,填加到任务计划里.为什么不能执行?...
全从卷17186602294 ______ 定时关机不用添加任务呀,比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at 22:00 Shutdown -s”,这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作.如果你想以倒计时的方式关机...

祖杨苗3068android用timer做定时任务,崩溃的原因? -
全从卷17186602294 ______ 在做定时任务的时候,有的同学可能能会用到Timer这个定时任务的辅助类,但是使用它会有潜在的风险,风险如下,(1)时间计算不准确问题 因为Timer是以绝对时间计算定时任务的,会受到系统时间的影响,如果在任务执行期间,更改了系...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024