iobroker/homeassistant/nodered的手机定位--安卓篇

前提

  • 安卓手机

  • 安装附件的mqtt和tasker的app

  • 把mqtt和tasker加入手机的白名单–每个品牌手机不一样设置,但是目的都是让这两个app可以常驻后台

  • 申请好移动的mqtt,或者自己搭建可以链接外网的mqtt。如果你用移动的mqtt,请注意,nodered客户端使用一个客户端id,一部手机使用一个一个客户端id,总之有几个客户端就要在移动onenet申请几个设备id。具体看论坛教程。中国移动onenet的mqtt服务器的教程**点击我**

  • 如果是第4点搭建的mqtt服务器,请获取一下几个数据:

  • 主机ip:183.230.40.39

  • 主机端口:6002

  • 产品id

  • master-apikey

  • 设备id

具体步骤
一、自行安装mqtt****二、打开装好的mqtt服务器,根据下面的指示添加对应数据

  • 点击+号添加新的服务器链接
  • 选择允许
  • 自定义命名
  • 全部关掉
  • 添加主机ip:183.230.40.39
  • 添加主机端口:6002
  • username添加onenet的“产品id”
  • password添加的是onenet的“master-apikey”
  • 自定义
  • 1client id添加的是onenet的“设备id”

上面10点处理好,保存设置。

三、再onenet上看对应的设备有没有链接成功,成功了如图:

四、在手机上的tasker设置
1.设置触发条件,也就手机在什么状态下被激发。

  • 时间激发,比如你可以设置x分钟,让手机上传一次信息。你要测试你的间隔时间,因为这个关系到你的电量消耗。

  • 步数激发,比如你手机跟着你走了x步,就让手机上传一次信息。你要测试你的间隔步数,因为这个关系到你的电量消耗。


2.设置上传的信息。主要是把手机的坐标信息上传。


[mw_shl_code=applescript,true]{“dev_id”:“note8”,“gps”:%LOC],“gps_accuracy”:%LOCACC,“battery”:%BATT}[/mw_shl_code]
这个代码就是获取手机的相关信息的,添加到上图所示位置。第五、通过nodered的mqtt-in节点获取手机传递过来的信息




taskerm.apk (5.14 MB)
mqtt.apk (4.76 MB)

1赞

学习了,正在研究怎么使用。

电信手机可以用吗?

安卓非华为这种杀后台的都可以的。

漏掉一个[

{“dev_id”:“note8”,“gps”:[%LOC],“gps_accuracy”:%LOCACC,“battery”:%BATT}

这里不是丢了一个错误,双引号是中文的,搞死我了
建议修改下正文。

鬼总,搞得爽么?

死去活来啊…………

哈哈哈,还好你是高手,还能发现错误:grin:

个人觉得如果有公网,更是可做内网穿透的兄弟,直接在nr做http监听,tasker可直接post位置至nr,

有空分享一下,这个之前在用。mqtt是为了没公网的

此图针对有公网NR,内网frp穿透同理

[{“id”:“fd3c6735.7bf488”,“type”:“http in”,“z”:“a8474abf.d074e8”,“name”:"",“url”:"/GPS",“method”:“post”,“upload”:false,“swaggerDoc”:"",“x”:1070,“y”:840,“wires”:[[“ebc2d464.0b9438”,“7f405d2f.8c39a4”]]},{“id”:“8288b234.3bcac”,“type”:“debug”,“z”:“a8474abf.d074e8”,“name”:"",“active”:true,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“payload”,“targetType”:“msg”,“x”:1290,“y”:920,“wires”:[]},{“id”:“ebc2d464.0b9438”,“type”:“http response”,“z”:“a8474abf.d074e8”,“name”:"",“statusCode”:“200”,“headers”:{},“x”:1240,“y”:820,“wires”:[]},{“id”:“7f405d2f.8c39a4”,“type”:“function”,“z”:“a8474abf.d074e8”,“name”:"",“func”:“msg.payload=JSON.parse(msg.payload.data)\nreturn msg;”,“outputs”:1,“noerr”:0,“x”:1250,“y”:860,“wires”:[[“8288b234.3bcac”]]}]

有错误。无法导入

亲测,物联卡网络不行,联通不行,预计电信也不行,移动的可以!
其余网络可以定时发mqtt消息,可玩性挺好,谢谢大神分享!

萝卜,我为啥%LOC获取不到经纬度啊

所有跟位置定位相关的变量,都取不到,gps是允许的