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

 找回密码
 立即注册
查看: 5979|回复: 7

[基础教程] iHass APP v1.0.17发布 - 公网穿透

[复制链接]

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
发表于 2018-10-14 21:18:43 | 显示全部楼层 |阅读模式
本帖最后由 yunsean 于 2018-10-15 18:06 编辑

iHass历次更新:
1.0.0   基于HA的Android客户端APP
1.0.10 Hass APP v1.0.10发布 - 位置上报
1.0.12 iHass App v1.0.12发布 - 场景触发
1.0.15 iiHass APP v1.0.15发布 - 状态通知


本次更新主要包含:
1、完善窗帘功能,支持位置和倾角控制;
2、增加通过MQTT实现无公网IP访问(推荐使用百度天工物联网平台)

第一点嘛,请老朋友们重新下载即可。
(特别申明:本次更新因为引入MQTT异步机制,对整个网络模块改动很大,老朋友们如果无特殊原因建议暂不升级到该版本,等更多测试和反馈后再升级,也因此本版本暂不做公开升级。)
重点说说公网访问方式。需要三个步奏:百度MQTT设置(也可以使用其他MQTT,阿里的应该不行),home assistant服务器插件配置,Android客户端设置。
第一步,百度天工MQTT设置:首先去百度天工开通物接入访问:https://console.bce.baidu.com/iot2/hub/project/list
我已经开通过了,无法再截图,请有用到的网友帮忙完善这部分文档,可先参考:https://juejin.im/post/5a332a3a518825679e587c2d请务必确认选择的是数据型MQTT服务,我一开始也搞错了,折腾了一阵子。
1.png
按照上述参考文档建立好MQTT队列。
这里先插述一下MQTT转发原理:
一个终端需要三个消息队列:
1、从所有终端发送请求消息到HASS服务器的,推荐使用名字/hass/server;
2、从服务器发送状态变更通知到所有终端的,推荐使用名字/hass/event;
3、从服务器应答请求到特定终端的,这个需要每个终端拥有独立的名字,推荐使用手机名称命名,比如/hass/nubia;
由此,在天工配置完成后类似于下边的形式:
QQ20181014-203711.png
好,百度天工上的配置差不多就到此结束了。

第二步,home assistant服务器插件设置:

下载附件文件放入到home assistant的配置文件目录(.homeassistant)/custom_components下,

ihass_mqtt.py (12.3 KB, 下载次数: 16)
配置说明:
配置文件中加入如下配置:
ihass_mqtt:
  mqtt_host: "..."  mqtt_port: 1883
  mqtt_user: "...."
  mqtt_pwd: "....."
  topic_server: "/hass/server"
  topic_event: "/hass/event"
  event_interval: 30
  api_token: "...."
  hide_qr: false
  aes_key: "..."
  aes_iv: "..."
其中:
mqtt_host、mqtt_port为MQTT服务器域名/IP和端口
mqtt_user、mqtt_pwd为MQTT服务器用户名和密码,使用天工可以通过如下查看到:
33.png
topic_server、topic_event为上述介绍的两个共用的队列,每个终端专用的那个需要在终端配置即可
event_interval代表插件最低间隔多少秒才发送一次事件变更通知(百度天工MQTT每个月发送的事件数量是有限的哦)
api_token为hass上的长效身份认证token,需要home assistant0.78之后才有的哦,这个不可少,否则无法控制hass
hide_qr是否允许通过http://host:8123/api/ihassmqtt来显示配置的二维码
aes_key和aes_iv是可选项(如果不配置,请删除这两行),如果配置,则会对经过MQ的消息进行加密(对于你和别人共用MQTT服务器的时候有意义)
配置完成后,重启hass服务器,然后,如果没有意外,你可以通过访问http://host:8123/api/ihassmqtt来显示出一张二维码,这张二维码包含了上述配置的所有信息(后边会用哦)。
(请注意,对于百度天工,这里使用的所有消息队列都必须在天工中添加并且开启了发布和订阅权限,否则会出现MQTT一直重连的问题。)

第三步,手机APP
通过访问https://www.pgyer.com/ihass下载v1.0.17版本的Android客户端。
启动APP,
会显示常规的IP连接界面:
1111.png
点击下方的没有公网地址?切换到MQTT转发连接界面
2222.png
这个界面上的所有配置和上述插件的基本完全一样,除开增加了Hass应答Topic(就是上述所说的每个手机独立队列的那个)以及内外网自动切换的配置
先说说右上角的扫码图标
前边不是产生了一个二维码么?点扫码图标(第一次可能会提示你要摄像头权限),然后扫码,会自动把服务器上的配置拷贝到手机上,难得输入嘛
然后就是必须填写“Hass 应答 Topic”那个项目,规则前面说了。
再下边是一个可选项目:内网自动切换配置,这个的意思是当手机接入特定的几个WIFI后,将自动切换为内网IP直连模式(直连的体验还是要比MQTT好上无数倍的)。
Wifi监视就是当手机接入到选定的几个WIFI后自动换为内网访问
然后下边的三个项目和常规链接是一样的,就是home assistant服务器的地址和鉴权(访问密码和长效令牌二者填一个就行,根据你的实际情况)。
然后就是点击下方的连接,如果能够连接成功就成功了,如果不成功呢?欢迎群里面去吼我!全在哪儿?看前面的帖子(最近被这个MQTT的问题弄疯了,没劲说废话了)。
恩,好了,先这样,累了!

已知问题:
目前MQTT没做连接保活机制,当手机进入深度休眠后,操作系统会掐断MQTT同服务器之间的连接
当重新唤醒手机后,APP需要较长的时间(两三分钟都可能)才能发现连接已经断开并重新建立连接。还在尝试修复,不想采用后台保活机制,电量更重要。

特此申明一句:使用MQTT转发模式体验并不太好,先将就用吧!

评分

参与人数 1金钱 +10 收起 理由
neroxps + 10 厉害了word楼主!

查看全部评分

回复

使用道具 举报

12

主题

335

帖子

2326

积分

论坛DIY达人

积分
2326
金钱
1986
HASS币
0
发表于 2018-10-14 21:20:51 | 显示全部楼层
支持大佬!沙发沙发
回复

使用道具 举报

123

主题

4626

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16017
金钱
11306
HASS币
45
发表于 2018-10-14 22:41:10 | 显示全部楼层
支持大佬,mqtt穿透,不错~
回复

使用道具 举报

7

主题

1975

帖子

5663

积分

论坛元老

流水无味

Rank: 8Rank: 8

积分
5663
金钱
3688
HASS币
145

灌水之王

发表于 2018-10-14 22:47:31 | 显示全部楼层
额。 支持下
回复

使用道具 举报

1

主题

35

帖子

107

积分

注册会员

Rank: 2

积分
107
金钱
72
HASS币
0
发表于 2018-10-17 15:29:45 | 显示全部楼层
支持大佬,mqtt穿透,不错~
回复

使用道具 举报

220

主题

1284

帖子

7847

积分

超级版主

Rank: 8Rank: 8

积分
7847
金钱
6533
HASS币
86

教程狂人论坛风云人物突出贡献

发表于 2018-11-1 11:01:45 | 显示全部楼层
官网论坛有个android可操作通知,供楼主参考
https://community.home-assistant ... notifications/65347
回复

使用道具 举报

12

主题

193

帖子

1120

积分

论坛积极会员

积分
1120
金钱
927
HASS币
0
发表于 2018-12-7 23:01:18 来自手机 | 显示全部楼层
请教大神,我按照教程,在配置文件修改后,一系统提示找不到ihass_mqtt:。请问ihass_mqtt:这个放在配置文件的什么位置是对的?
回复

使用道具 举报

19

主题

166

帖子

1634

积分

论坛技术达人

积分
1634
金钱
1453
HASS币
40
 楼主| 发表于 2018-12-10 09:51:14 | 显示全部楼层
lijun9701 发表于 2018-12-7 23:01
请教大神,我按照教程,在配置文件修改后,一系统提示找不到ihass_mqtt:。请问ihass_mqtt:这个放在配置文件 ...

要先把帖子里面附件的ihass_mqtt.py放到配置目录下的custom_components里面哦,如果仍然不行欢迎进群哈。
不过mqtt方式不太好用,推荐你用ngrok做公网穿透。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 23:18 , Processed in 0.054851 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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