2019年7月7日
1、修复了gt550设备坐标转换不成功的问题,重新下载本文附件,然后导入流,替换掉之前的那个流就可以了。
2、补充了traccar手机客户端添加设备以及坐标转换的教程。
鸣谢
没错,这里字要够大,才能表示我对F大的无以言表的感激之情。
严重感谢Flashsoft大佬,在我搞traccar过程中,遇到艰难险阻,即将彻底放弃之时,F大伸出了援手,助我顺利渡过难关。
对花神同学也得表示感谢,也提供了不少帮助。
我折腾traccar也快一年了,本来早就说要发教程的,但是一忙过去,就给耽误了,其实主要是还是拖延症,和需要交代的工作量实在是太大,有点怵。。。今天看好多群友说需要,那就不能再拖了,今天努力使使劲写写。。。
———————————————————————
言归正传
一. traccar简介
traccar是一个优秀的开源gps服务器平台,支持设备和协议众多(不过貌似国外的设备居多,国内的设备支持的协议绝大多数是gt06和gt02协议),功能完善,具备定位,围栏、警报、短信控制、通知、轨迹追踪等众多功能,提供win、linux以及docker容器多种平台部署,同时,提供web、安卓和ios客户端。最关键的是,hass原生支持traccar,不需要安装任何插件即可接入hass。其实,在traccar出来之前,还有一款老牌开源gps平台——opengts,历史更悠久,但是这货不支持中文语言环境,且界面丑陋,对国内用户不够友好。
traccar官网地址:https://www.traccar.org/
效果展示
二、前置需求
1、受支持的gps设备一台,这里推荐gt06协议的途强GT550,具体购买方式,可去咸鱼搜关键词“途强 OBD车载GPS”,店家地址显示是山东或者青岛那个就是了。店家老板武汉大学高材生,就是学导航专业的,人极好说话,作为老乡,我已跟老板说好了,咱们这些搞智能家居的小伙伴,要高配版(高配版具备远程聆听功能),不要平台不要卡(因为咱们今天就是要自建gps服务平台,所以不需要,卡的话就自配吧,很便宜),99元包邮,绝对白菜价了,超值。。。其他型号的设备,可去这里https://www.traccar.org/devices/自行查阅你手里设备型号是否被支持。
2、服务器一台,可win,可linux,可群晖,可X86,可N1,可树莓派,你喜欢哪个用哪个。
3、具备公网ip或者具备穿透服务。
三、安装部署
traccar可在win、linux以及docker安装部署,这里推荐docker部署,其他部署形式可自行参阅官网说明。
通过群晖web安装的话,可以参考这里,感谢 “简单”同学。
https://bbs.iobroker.cn/t/topic/682/1
1、先在服务器的任意位置新建一个"traccar"目录,traccar目录下再新建一个“logs"目录和“templates”目录。
2、先部署一个拉取初始化配置文件的容器(完成配置文件拉取会自行删除,无需手动删除)
docker run --rm --entrypoint cat traccar/traccar:latest /opt/traccar/conf/traccar.xml > /$yourself_dir/traccar/traccar.xml
请注意,切勿忘了把
/$yourself_dir/traccar/
请匹配成你自己刚才新建目录的绝对路径
3、正式部署traccar服务器容器。
docker run -d --restart always --name traccar --hostname traccar -p 8082:8082 -p 5023:5023 -p 5023:5023/udp -p 5055:5055 -p 5055:5055/udp -v /$yourself_dir/traccar/traccar/logs:/opt/traccar/logs:rw -v /$yourself_dir/traccar/traccar.xml:/opt/traccar/conf/traccar.xml:ro -v /$yourself_dir/traccar/templates:/opt/traccar/templates/short -e TZ=Asia/Shanghai traccar/traccar:latest
请注意,切勿忘了把
/$yourself_dir/traccar/
请匹配成你自己刚才新建目录的绝对路径
此处有三处需要匹配你自己目录路径的地方
4、访问web,验证是否安装成功。
稍等片刻之后,访问 http://your_ip:8082,如果安装正确的话,就会出现traccar的登陆页面,默认的账号和密码都是 admin , 建议进去更改下密码。
四、针对国内环境作做一些配置
其实,到这里你就已经部署成功了,但是traccar对咱们国内的环境支持存在一些问题,比如百度地图因为ssl的问题无法显示(这个问题,我给traccar团队提交过issue,他们回复的是无法解决),还有traccar默认使用地球坐标,如果使用国内地图的话,就需要将坐标转换成火星坐标,否则会出现不小的偏移,所以需要做一些优化和配置。
**
1、默认地图使用高德瓦片地图**
点击 设置(就是右上角那个小齿轮图标)——服务器,如图所示进行设置。建议 在 设置——账户——个性化设置,里面也设置一下。
自定义地图地址:
[mw_shl_code=applescript,true]https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}[/mw_shl_code]
然后刷新一下,不出意外的话,应该就会出现你所熟悉的高德地图。
2、在nodered里面进行坐标转换
①、针对GPS设备——途强GT550、谷米爱车安GT02D、谷米爱车安GT06D或者其他任意GT06协议的设备(理论上讲,任意GT06协议的设备都可以支持,但是这两天我测试着某些极个别的设备虽然也是GT06协议,但是某些协议字段存在一定的偏差,所以会出现坐标转换不成功的问题,手里设备有限,所以我只能对上面三种型号设备,确认没问题。
**
a、安装function-npm节点
b、下载附件并解压缩,导入附件里名为"gt06.json"的nodered流
c、此处需要修改两个节点,如果所示。**
这个tcp in节点的端口,可任意修改,但是需要注意的是,你的nodered容器需要开放这个端口,如果你的nodered容器网络模式是host模式的话,那么设置任意端口就可以了,不需要再做其他设置,只要端口不冲突就可以。如果你的nodered容器网络模式是bridge模式的话,那么这里的端口必须得是你的nodered容器已经映射的端口,如果部署容器的时候,没有映射该端口的话,可以停止容器,然后直接编辑,加上该端口映射就可以了,不需要重新部署。
这个tcp request节点的服务器,要改成你自己已经部署好的traccar服务器的ip地址,切记端口不要更改,端口不要更改,端口不要更改。
**
d、在路由器里进行端口映射。请注意,需要映射的host地址是你的nodered地址,端口号是那个tcp in 节点里面的端口号,比如我这里是1882。**
我简述一下工作流程,其实,现在的工作流程是,你的gps设备首先要跟nodered通讯,将数据全部发给了nodered,而nodered起到了一个中转站的作用,先将数据进行坐标转换处理,然后再转发到traccar里面。
**
e、将你的GPS设备服务器设置成你自己的服务器。**
如果是途强GT550设备,那么请给设备内插着的手机卡的号码(这里必须得是手机卡,因为我发现很多gps设备配备的是物联网卡,这种卡不支持短信接收和发送),发送如下格式短信:
SERVER,1,域名,端口,0#
示例 : SERVER,1,gt06.yourdomain.cn,1882,0#
如果设置成功的话,你们你会收到一条设置服务器成功的反馈消息。
f、traccar里面添加设备
点击traccar左上角的 + 号 ,名称随意添,编码一定要添你的gps设备的IMEI串号,一般设备上都会带着。如果设备上查不到的话,也不要紧,假设你的gps设备服务器已经指向了你自己的服务器的话,那么trccar目录里面log文件上会显示一条log,什么什么unknwon之类的,这里就已经给你打印出了你的IMEI串号,复制然后粘贴到traccar就可以了。
**
②、针对traccar手机客户端**
**a、安装function-npm节点
b、下载附件并解压缩,导入附件里名为"mobile_phone.json"的nodered流
c、此处需要修改一个节点,如果所示。**
将function-npm节点里面的domain变量设置为你自己的traccar服务器的内网ip地址,切记,只需要改ip就好,端口号必须是5055,不能更改。
**d、在路由器里进行端口映射。请注意,需要映射的host地址是你的nodered地址,端口号必须得是nodered的web访问端口,如果你用的是默认端口的话,那就是1880端口。
e、设置traccar手机客户端服务器地址。**
服务器地址格式 http://你的域名:1880/traccar123
为了防止跟简单同学的通知推送服务地址冲突,这里的短链接使用了traccar123
其他参数不需要动,还有需要手动打开手机的gps开关,否则不会上传数据。
f、traccar里面添加设备
点击traccar左上角的 + 号 ,名称随意添,编码是你的traccar手机客户端里面的设备编码。
**
五、使用nodered自建traccar的SMS通知服务器,并配合企业微信节点,微信接受任意事件触发通知。**
有的朋友也许会问,为什么不在hass里面发送通知呢?因为hass里面traccar属性不够完善,而且发送通知还要跑hass里面走一圈,虽说效率降级不那么明显吧,但是作为强迫症的我,实在受不了。这样traccar直接对接企业微信节点,高效、舒服。
哈哈哈,本来我要自己的通知推送的教程部分的,但是在拖延症的作用下,一直没填坑,但是突然发现了,简单同学已经写好了,那我就不再重复了,感谢“简单”同学。
直接点链接照着操作就好了。
https://bbs.iobroker.cn/t/topic/682/1
traccar20190708.rar (1.53 KB)