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

 找回密码
 立即注册
楼主: flashsoft

[新奇玩法] 【20190614,修复日志路径】让小爱支持控制任意自制.....

  [复制链接]

0

主题

28

帖子

105

积分

注册会员

Rank: 2

积分
105
金钱
77
HASS币
0
发表于 2019-4-14 23:05:46 | 显示全部楼层
厉害了,大佬们给力
回复

使用道具 举报

4

主题

109

帖子

488

积分

中级会员

Rank: 3Rank: 3

积分
488
金钱
379
HASS币
0
发表于 2019-5-26 19:39:53 | 显示全部楼层
F大求助啊,不知道问题出在哪里了:


本帖最后由 litao8174 于 2019-5-26 19:38 编辑


之前曾经用hassio成功的配置过小爱,小爱自己升级系统所有设置都没了。自己换了EXSI,原来的环境也彻底没了,现在彻底重新搭建,但是小爱怎么也无法正常工作了,求大神给帮忙解决。

目前环境如下:
1.蜗牛星际C款
2.EXSI 6.5
3.黑群晖+Docker
4.Docker下安装homeassistant0.84
5.Docker下安装Node red 0.20.5
6.小爱系统版本1.44.2

目前已经实现的操作如下:
1.小爱按照论坛里的教程完成了破解
https://bbs.hassbian.com/thread-5234-1-1.html

2.Node red导入了“处理小爱转发V3”,并且修改了homeassistan的设置,已经跟homeassistant正常连接。
https://github.com/FlashSoft/mico/tree/dev
日志文件名也改过了 tmp/mipns/mibrain/mibrain_txt_RESULT_NLP.log

3./miai/get/res和/miai/get/asr 两个连接都可以正常打开,里面能读取到关键拦截词。

4.获取到设备控制列表正常,可以用nodeIP/miai/list 获得所有设备的列表。

5.全量日志跟调试日志能够抓取到日志内容。

目前问题如下:
发出指令后,小爱提示“小爱音箱提示没有找到你的设备换个小爱能控制的设备”,此时全量日志跟调试日志都能接收到。但是其他调试日志都没有任何信息显示。

调试日志显示:
5/26/2019, 7:24:41 PMnode: 调试日志
msg : Object
object
queries: "关闭氛围灯,关闭氛围灯"
domain: "未知"
code: "未知"
err: "未知"
_msgid: "b8125a6f.1ce798"

全量日志显示:
msg : Object
object
_msgid: "b8125a6f.1ce798"
payload: object
asr: "{"meta":{"type":"RESULT_ASR_FINAL","request_id":"26cd304936697b129c5996cf2115492e","timestamp":1558869883430},"response":{"queries":[{"query":"关闭氛围灯","confidence":0.99490834,"is_final":true,"query_vendor":1001,"query_debug":"AsrResponse{text=[B@57b5b03, lastPacket=true, decodedText=关闭氛围灯, error=null, gender=0, packetId=9, volume=-2.0, endpointDetected=false, debug=DebugInfo{hostname=c5-asr-prod-srv-g4p4-28.bj, modelType=sound}, packetIdDetected=103}","gender":0,"locale":"zh-CN","frameId":103},{"query":"关闭氛围灯","confidence":0.993808405,"is_final":true,"query_vendor":1015,"query_debug":"{\"end_flag\":1,\"err_no\":0,\"idx\":-67,\"result\":{\"nbest\":[\"关闭氛围灯\"]},\"sid\":\"26cd304936697b129c5996cf2115492e\"}\n","locale":"zh-CN"}]}}"
res: "{"meta":{"type":"RESULT_NLP","nlp":{},"request_id":"26cd304936697b129c5996cf2115492e","timestamp":1558869883583},"response":{"status":{"code":200,"error_type":"success","extend":{"code":2002008,"name":"SM_NO_DEVICE_TO_OPERATE_DEVICE_LIST_NOT_EMPTY","type":"DEVICE","extra":{}}},"answer":[{"domain":"smartMiot","action":"operate","text":"没有找到你的设备,先去买个小爱能控制的设备吧。","widgets":[{"info":{"category":"com.xiaomi.intent.category.VOICE_CONTROL_SMART_HOME_APPLIANCES","package_name":"com.xiaomi.smarthome.tv","min_version_code":110,"signature":"08:32:F8:EB:8B:B2:28:12:1A:6E:A9:0C:AD8:9D:58:2C:B1:9C:7D"},"params":{}}],"content":{"open_mic":false,"to_speak":"没有找到你的设备,先去买个小爱能控制的设备吧。","to_display":{"type":3,"text":"没有找到你的设备,先去买个小爱能控制的设备吧。"},"result":{"device":[],"option":[],"type":0,"needRefresh":0}},"intention":{"query":"关闭氛围灯","action":"operate","score":0.98,"domain":"smartMiot","complete":true,"dialog_status":"FINISH","dialog_ask_round":0,"entity":"light","sub_category":"氛围灯","debug_info":{},"to_oper..."

为了找问题出在哪里,我尝试重新装了一套0.92hassio,用hassio配置了node red,得到的错误也是一样。
回复

使用道具 举报

4

主题

109

帖子

488

积分

中级会员

Rank: 3Rank: 3

积分
488
金钱
379
HASS币
0
发表于 2019-5-27 00:35:14 | 显示全部楼层
tts=`curl --insecure –connect-timeout 2 -m 2 -s -u "${nodered_auth}" --data-urlencode "asr=${asr_content}" --data-urlencode "res=${res_content}" "${nodered_url}/miai"`

我理解应该是mico.sh 利用上面这行命令将日志文件post给node red,所以我在小爱转发主入口哪里加了个调试工具,但是发出命令后debug窗没有对应的内容出现,所以是不是小爱没有post信息到miai呢?
回复

使用道具 举报

9

主题

228

帖子

2044

积分

超级版主

Rank: 8Rank: 8

积分
2044
金钱
1791
HASS币
100

突出贡献

 楼主| 发表于 2019-5-27 10:39:42 | 显示全部楼层
litao8174 发表于 2019-5-27 00:35
tts=`curl --insecure –connect-timeout 2 -m 2 -s -u "${nodered_auth}" --data-urlencode "asr=${asr_c ...

你先自己构造一个任意的请求到你的NR里的接收,我估计还是账号密码相关
回复

使用道具 举报

4

主题

109

帖子

488

积分

中级会员

Rank: 3Rank: 3

积分
488
金钱
379
HASS币
0
发表于 2019-5-27 15:19:56 | 显示全部楼层
F大,非常感谢您的回复,我几乎完全不懂编程,捏着鼻子在猜您的代码。比如下面这两段除了等号前面不一样,还有后面post路径不一样外,其他都是一样的,所以我猜想两条命令post的都是相同的内容,所以我把您V3小爱主入口那段复制了一份,直接连接在小爱全量日志哪里。如图:

    log_res=`curl --insecure –connect-timeout 2 -m 2 -s -u "${nodered_auth}" --data-urlencode "asr=${asr_content}" --data-urlencode "res=${res_content}" "${nodered_url}/miai/set/log"`

      tts=`curl --insecure –connect-timeout 2 -m 2 -s -u "${nodered_auth}" --data-urlencode "asr=${asr_content}" --data-urlencode "res=${res_content}" "${nodered_url}/miai"`

123.jpg
这样做了之后,果然新加的主入口那段代码是工作的,不过这段代码不能把识别的文字转发到/miai/ha触发动作。所以我尝试自己加了个关键字,并做了一个支线流程关联这个关键字,控制某个开关,结果在我说出那个关键字之后,虽然小爱还是再说无法识别我的动作,但是那个开关还是被触发了。

所以现在我也蒙了,也不知道哪里出了问题。

如果是NR的账号验证问题,那理论上post到/miai 跟post到/miai/set/log应该都会失败,但是却只有一部分能工作。

另外,我开始也怀疑账号验证的问题,所以我分别尝试了NR不设置密码,只设置web页密码,只设置HTTP鉴权密码,等几种组合,1.所有密码都不设置可以工作,2.只设置Web页密码或HTTP鉴权密码不工作,3.两个密码都设置相同的,可以工作。

另外,在运行install.sh的时候,我发现mico.sh有一定概率会下载不完全,一共150多行代码,我遇到过两次,只下载了113行左右的代码,此时如果运行拦截程序,会提示类似只有一部分引号,代码不全的报错。

由于mico.sh出现了下载不全的问题,所以我现在怀疑NR和NR关于HA的节点下载或安装不全,导致了这个问题,但是按说理论上也说不过去,我晚上回家尝试让tts那段把信息post到/miai/set/log上试试,如果还不行,就只能尝试重新安装了。

小白,啥都不懂,再次感谢F大的帮忙。
回复

使用道具 举报

4

主题

109

帖子

488

积分

中级会员

Rank: 3Rank: 3

积分
488
金钱
379
HASS币
0
发表于 2019-5-27 15:22:22 | 显示全部楼层
还有您说构造一个任意请求发到NR,我明白什么意思,但是真心不会操作。
回复

使用道具 举报

4

主题

109

帖子

488

积分

中级会员

Rank: 3Rank: 3

积分
488
金钱
379
HASS币
0
发表于 2019-5-27 21:32:52 | 显示全部楼层
本帖最后由 litao8174 于 2019-5-27 23:13 编辑

F大,我今天晚上又做了如下几个测试:
1.重新安装了Homeassistant0.84 和Node-Red V8版,对接的结果跟之前是完全相同的。


2.我刚才又做了一个测试,我把NR主入口的路径从/miai 改成了 /miai/set/log,由于之前信息就能够post到/miai/set/log路径下,所以我改了主路径后小爱仍旧说没有能控制的设备,但是事实上控制命令能够成功实现。开关按照命令动作了。
所以我猜想还是TTS那行命令无法向/miai主入口post日志文件过来,这个会跟小爱的系统版本有关系吗?我看您在代码里对新旧固件做了判断,会不会是因为新固件导致的呢?

3.F大,我又瞎尝试了一下,我把
tts=`curl --insecure –connect-timeout 2 -m 2 -s -u "${nodered_auth}" --data-urlencode "asr=${asr_content}" --data-urlencode "res=${res_content}" "${nodered_url}/miai"`
这句代码复制到了“log_res=`curl --insecure –conn”这句代码的下面,结果可以成功操作设备,但是小爱还是会说没学会操作这个设备。

因此我感觉应该是原来“tts=`curl --insecure –conn”那句代码所在的位置前后出了问题,因为这句话前后都有大量判断和拦截的句子,会不会是它们导致原来tts那句话不能再正常执行了?


麻烦了,确实很想用小爱,但是不懂编程,只能瞎摸索。
回复

使用道具 举报

9

主题

228

帖子

2044

积分

超级版主

Rank: 8Rank: 8

积分
2044
金钱
1791
HASS币
100

突出贡献

 楼主| 发表于 2019-5-27 23:24:09 | 显示全部楼层
litao8174 发表于 2019-5-27 21:32
F大,我今天晚上又做了如下几个测试:
1.重新安装了Homeassistant0.84 和Node-Red V8版,对接的结果跟之前 ...

加群,然后直接私我远程看看吧
回复

使用道具 举报

0

主题

33

帖子

114

积分

注册会员

Rank: 2

积分
114
金钱
81
HASS币
0
发表于 2019-5-27 23:58:16 | 显示全部楼层
大佬真赞,谢谢分享
回复

使用道具 举报

4

主题

109

帖子

488

积分

中级会员

Rank: 3Rank: 3

积分
488
金钱
379
HASS币
0
发表于 2019-5-28 10:13:58 | 显示全部楼层
flashsoft 发表于 2019-5-27 23:24
加群,然后直接私我远程看看吧

F大,太感谢了,真是麻烦了。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-28 05:49 , Processed in 0.058612 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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