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

 找回密码
 立即注册
查看: 18931|回复: 33

[经验分享] history,组件等转圈解决,个人经验

[复制链接]

6

主题

386

帖子

2045

积分

金牌会员

Rank: 6Rank: 6

积分
2045
金钱
1657
HASS币
0
发表于 2017-12-11 15:15:46 | 显示全部楼层 |阅读模式
接触hass时间不长,度娘搜到的论坛,感觉是小白入门学习的圣堂啊。看了27大神发的帖子,有解释了很多之前不太明白的问题。原贴(https://bbs.hassbian.com/thread-2014-1-1.html)。贴中提到了history转圈的问题的原因和解决方式,然后自己动手尝试,分享一下,就当交作业了。
解决转圈其实就是本地化jsapi.js这个文件,也就是下载jsapi.js文件到本地目录,然后修改frontend.html文件中原先指向墙外的地址改成本地路径的地址。论坛其实有不少成品文件补丁之类的可以直接下载替换,但是27大神的帖子里已经说了,覆盖可能出现问题,直接修改自己的文件最靠谱。原贴中也附了不同论坛的frontend.html文件的路径。我是树莓派装的hassbian,版本是0.59.2,系统的目录就是/srv/homeassistant/lib/python3.5/site-packages/hass_frontend_es5/。之前版本和之前的补丁给的修改方法几乎都是在www_static文件夹下新建js目录然后把jsapi.js文件放置进去,然后再修改frontend.html文件中
WX20171211-145513.png
墙外的地址修改为:
../../static/js/jsapi.js?callback=%%callback%%
可能我的基础比较差,开始就这样直接替换进去之后,发现一直是获取不到这个js文件的。后来看了下这句话,原来是路径问题。经过尝试,先在/srv/homeassistant/lib/python3.5/site-packages/hass_frontend_es5/目录下新建js文件夹,然后把jsapi.js文件放进去。之后修改frontend.html中那个墙外的地址为:
/frontend_es5/js/jsapi.js?callback=%%callback%%
然后使用:
gzip -c frontend.html > frontend.html.gz
重新打包frontend.html文件后,这个时候已经可以正常获取到这个js文件了。
但是转圈问题依旧,查看chrome发现报错:
Uncaught ReferenceError: ______static_js_jsapi_js_callback___callback___api_loaded is not defined
直接指向了jsapi.js文件的最后一行:
______static_js_jsapi_js_callback___callback___api_loaded();
看着无比眼熟。。想了好久,发现这跟之前要修改的那句话基本上是对应的。然后就根据自己的路径修改这句话为:
_frontend_es5_js_jsapi_js_callback___callback___api_loaded();
保存重启homeassistant服务,转圈问题解决了。
希望可以帮到跟我有同样问题的同学,也感谢27hh大神。


评分

参与人数 1金钱 +10 收起 理由
27hh + 10 真·大神!

查看全部评分

回复

使用道具 举报

25

主题

416

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2601
HASS币
40
发表于 2017-12-11 16:40:55 | 显示全部楼层
试试看 多谢分享
回复

使用道具 举报

0

主题

316

帖子

1732

积分

金牌会员

Rank: 6Rank: 6

积分
1732
金钱
1416
HASS币
0
发表于 2017-12-11 16:54:42 来自手机 | 显示全部楼层
试试看,谢谢大大
回复

使用道具 举报

25

主题

416

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2601
HASS币
40
发表于 2017-12-11 17:39:20 | 显示全部楼层
照着改了以后重启,会有这样的错误,请问是什么原因呢?
QQ截图20171211173823.png
回复

使用道具 举报

6

主题

386

帖子

2045

积分

金牌会员

Rank: 6Rank: 6

积分
2045
金钱
1657
HASS币
0
 楼主| 发表于 2017-12-11 18:55:07 | 显示全部楼层
angelyangw 发表于 2017-12-11 17:39
照着改了以后重启,会有这样的错误,请问是什么原因呢?

frontend.html位置改对了吗?你报错报在custon-ui这个页面上
回复

使用道具 举报

25

主题

416

帖子

3027

积分

元老级技术达人

积分
3027
金钱
2601
HASS币
40
发表于 2017-12-11 19:03:28 | 显示全部楼层
apple4105 发表于 2017-12-11 18:55
frontend.html位置改对了吗?你报错报在custon-ui这个页面上

位置跟你的是一样的 不改history就没事 照着改了以后就报customui有问题 我也是醉了
回复

使用道具 举报

6

主题

386

帖子

2045

积分

金牌会员

Rank: 6Rank: 6

积分
2045
金钱
1657
HASS币
0
 楼主| 发表于 2017-12-11 19:13:08 | 显示全部楼层
angelyangw 发表于 2017-12-11 19:03
位置跟你的是一样的 不改history就没事 照着改了以后就报customui有问题 我也是醉了 ...

你可以把改了以后的frontend.html文件贴上来看看。或者附件传上来。一起找找问题看。
回复

使用道具 举报

0

主题

39

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
金钱
226
HASS币
0
发表于 2017-12-12 13:30:56 | 显示全部楼层
按照你的步骤走了一遍,没有任何的反应,也清空缓存了,不知道哪里的问题。
还有一个问题,为何frontend.html中墙外地址是改成/frontend_es5/js/..... 而不是/hass_frontend_es5/js/... ?
回复

使用道具 举报

6

主题

386

帖子

2045

积分

金牌会员

Rank: 6Rank: 6

积分
2045
金钱
1657
HASS币
0
 楼主| 发表于 2017-12-12 14:23:04 | 显示全部楼层
linkson 发表于 2017-12-12 13:30
按照你的步骤走了一遍,没有任何的反应,也清空缓存了,不知道哪里的问题。
还有一个问题,为何frontend.ht ...

你可以试着使用一下chrome下面的信息模块查看问题。看js文件能不能被正常get到。至于为什么是/frontend_es5/js/而不是/hass_frontend_es5/js/,这个在chrome下面看指向的时候就能看到了,跟原先要放到www_static但是路径写static应该是一个道理。
回复

使用道具 举报

6

主题

386

帖子

2045

积分

金牌会员

Rank: 6Rank: 6

积分
2045
金钱
1657
HASS币
0
 楼主| 发表于 2017-12-12 14:36:04 | 显示全部楼层
本帖最后由 apple4105 于 2017-12-12 14:38 编辑
linkson 发表于 2017-12-12 13:30
按照你的步骤走了一遍,没有任何的反应,也清空缓存了,不知道哪里的问题。
还有一个问题,为何frontend.ht ...

没改的时候是这样的:
1513060022186.jpg

可以看到是在get墙外的地址,然后过一会一直get不到就会报错,就是这样的:
1513060130038.jpg
然后关于你说的为什么不是hass_frontend_es5的问题,你可以查看这个位置:
1513060266351.jpg
然后如果正确的get到了的话,就会是这样:
1513060390963.jpg
如果没get到,或者你文件目录位置放错或者路径填错,会显示404。
具体你看下你的情况,有问题再回帖一起看看呗

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 06:14 , Processed in 0.514486 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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