智能感知设备
智能感知标签 WS1
智能监测仪 WS1 Pro
工业级感知设备 GS1
智能水质监测设备 GS2
无线红外探测器 MS1
空气检测仪 AQS1
水浸检测仪 LD1
86型温湿度记录仪WS3
智能控制设备
智能开关 SP1
网络继电器 NR1
智能感知标签WS1
智能监测仪 WS1 Pro
工业级感知设备GS1
智能水质监测设备GS2
无线红外探测器MS1
空气检测仪AQS1
水浸检测仪LD1
智能开关 SP1
网络继电器 NR1
86型温湿度记录仪 WS3
相关视频
MS1系列 WiFi配置教程
MS1系列 产品介绍
常见问题
网络连接
设备操作
数据上传
其他技术
如何重新配置网络连接
如何重新配置网络连接
① 打开APP,点击【新设备】,选择修改网络,并扫描设备的条形码/二维码。
② 将设备进入配置模式,选择对应的入网方式并进行配置。
*若连接失败,可将设备恢复出厂设置后重新进行入网配置。
配置过程中,设备WiFi可见却无法连接
配置过程中,设备WiFi可见却无法连接
1. 检查设备指示灯是否熄灭。如果指示灯已灭,则请更换设备电池或接入外接电源(电量低无法支持设备连接),重新启动设备并进入配置模式重新配置。
2. 若指示灯依然闪烁,请重新连接设备WiFi,或直接将设备重新启动并进入至配置模式重新配置。
3. 请检查周围是否有其它移动设备已连接到此设备WiFi。如有,请断开周围其它移动设备与轻松连之间的连接。
WiFi有效接收距离是多少?
WiFi有效接收距离是多少?
WiFi有效接收距离取决于您的网络情况,可以用您的手机测试。一般情况下,若手机可以连接到网络,设备则可以正常接收和传送数据。
若因WiFi问题无法正常接收到数据,数据将保存在设备中,待网络恢复后上传至平台。
配置过程中输入的WiFi和实际使用时有联系吗?
配置过程中输入的WiFi和实际使用时有联系吗?
设备配置过程中输入的WiFi信息,应为设备实际使用时所连接的WiFi信息,以激活设备并同步系统时间,确保数据正常上传。
若设备使用时候无法连接到对应WiFi,数据仍可正常采集,但无法实时传输至平台。用户需定期将设备通过PC端工具导出离线数据,或定期连接至对应WiFi将数据自动上传至平台。
设备在无网状态下可以使用吗?
如何使用自动化管理
如何使用自动化管理
自动化管理可快速实现设备之间的联动,当触发设备达到预先设定的触发条件时,执行设备将自动触发操作。
1.点击【数据工厂】-【自动化管理】,进入自动化管理页面。点击【创建自动化】。
2.选择触发设备,并设置触发条件。
3. 选择执行设备及动作。执行设备仅支持智能开关SP1、网络继电器NR1等智能控制设备,最多可同时设置5个执行设备。
4. 确认已设置的自动化规则并保存。
5. 设置成功。
定时上传数据时闪烁灯显红色或屏幕显示故障码?有哪几种报警方式?
定时上传数据时闪烁灯显红色或屏幕显示故障码?有哪几种报警方式?
发送数据时红色指示灯闪烁,为设备网络连接异常,请确认以下内容:
① WiFi名称及密码是否正确;
② 设备恢复出厂设置后重新配置设备。
报警方式有六种,可自定义设置:微信报警推送、APP报警推送、手机短信报警、语音电话报警、HTTP交互报警、邮件报警推送。
为什么配置完成后查不到数据?
为什么配置完成后查不到数据?
设备配置成功后,由于网络延迟可能会导致无数据上传,请通过以下方法排查:
① 系统默认数据同步时间为30分钟,请30分钟之后查看数据。
② 单击设备电源键/功能键(具体以设备说明书为准)手动上传数据。
③ 如仍无数据上传,请将设备恢复出厂设置,重新配置。
设备默认数据多久采集一次?多久上传一次?
设备默认数据多久采集一次?多久上传一次?
设备默认10分钟采集一次数据,30分钟上传一次数据,用户可以在管理控制台或手机APP更改数据采集间隔和数据上传间隔。(增加数据同步间隔时长,会相对应增加设备待机时间,反之同理。)
可以创建哪些预警类型?
可以创建哪些预警类型?
轻松连云平台提供4种预警类型,包括突变预警、持续预警、延迟突变预警和延迟持续预警。
企业微信群预警消息设置
企业微信群预警消息设置
通过使用UbiHTTP,可以实现将预警消息推送至企业微信群内。
UbiHTTP交互服务相关连接:
https://www.ubibot.cn/platform-api/2960/http-interaction/
操作教程:
一、在企业微信群中选择“添加群机器人”,点击“添加机器人”。
二、添加机器人,设置机器人名称并复制生成的webhook地址,之后我们会将预警消息发送至该地址。
三、新建一个UbiHTTP,将刚才复制的webhook粘贴到网址栏中,方法选择“post”,内容类型为“application/json”,在body里按照以下示例填写。 其中text部分为消息。
举例:
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。 传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。" } }
四、选择设备,在报警方式中选择设置好的UbiHTTP。
五、预警触发时,预警消息将会推送至企业微信群内。
如何进行数据导入导出
如何进行数据导入导出
进行数据导入导出操作,需要登录【轻松连】管理控制台console.ubibot.cn进行操作。
平台提供pdf和csv两种数据表格导出格式。
pdf数据表格提供详细的分析报告,图表及原始数据显示;pdf最多显示6000条数据,超过会被平台自动截断,pdf下载不限次数;
csv格式为表格形式可编辑的原始数据,可提供完整数据导出,不限制数据条数。如不勾选完整数据,导出数据条数与pdf相同,均为6000条。每台设备每月可免费导出3次完整数据。如需更多下载权益,请购买设备空间套餐,详情查看https://www.ubibot.cn/video/platform-video/4630。
平台还可提供PDF批量导出功能,导出的数据类型包含所有传感器,不能选择导出的数据。
平台提供数据导入操作,可将空间数据以外部CSV文件形式导入到平台中进行存储;csv的原始模板可以使用导出的csv表格进行编辑。
如何升级设备固件
如何升级设备固件
轻松连设备在持续优化功能及用户体验,将会不定期更新设备固件。部分设备支持远程升级功能,支持产品id如下:ubibot-ws1a系列、ubibot-ws1pb系列、ubibot-gs1a系列、ubibot-gs2a系列、ubibot-sp1系列、ubibot-sp1a系列、ubibot-ms1系列、ubibot-ms1a系列、ubibot-aqs1系列、ubibot-ld1系列等。
升级前,请确认您的设备产品id是否在以上范围。点击进入设备页面,查看产品ID。
点击【新指令】-【新建指令】,在指令字符串处输入升级指令并点击保存。升级指令请与售后人员确认。
保存后,设备将在下一同步周期执行指令并完成升级,请及时查看设备固件版本并确认。
钉钉群预警消息设置
钉钉群预警消息设置
通过使用UbiHTTP,可以实现将预警消息推送至钉钉群内。
钉钉机器人相关连接:
https://ding-doc.dingtalk.com/doc#/serverapi2/krgddi
UbiHTTP交互服务相关连接:
https://www.ubibot.cn/platform-api/2960/http-interaction/
操作教程:
一、在钉钉中选择“机器人管理”,并选择“自定义”
二、添加机器人,选择预警将要推送至的钉钉群并设置关键词。注意,自定义关键词必须出现在预警消息的内容中。
三、复制生成的webhook地址,之后我们会将预警消息发送至该地址。
四、新建一个UbiHTTP,将刚才复制的webhook粘贴到网址栏中,方法选择“post”,内容类型为“application/json”,在body里按照钉钉文档填写以下实例: 其中text部分为消息,注意消息里的关键词要包含钉钉机器人设置的关键词。 例如“”预警“。
举例:
{ "msgtype": "text", "text": { "content": "预警提醒-编号为%%channel_id%%的设备(%%name%%)已超出警戒范围。传感器:%%trigger_field%%, 报警瞬间值:%%trigger%%。请有关同事尽快查看处理。" }, "at": { "isAtAll": true } }
五、选择设备,在报警方式中选择设置好的UbiHTTP。
六、预警触发时,预警消息将会推送至钉钉群内。
HTTP交互服务
HTTP交互服务
HTTP交互服务又称UbiHTTP,UbiHTTP允许在设备、网站和Web服务之间进行通信,无需在设备级上实现协议。您可以在UbiHTTP中指定操作,然后在其他Ubibot功能中触发这些操作,比如预警功能。
1.创建一个新的UbiHTTP请求。单击“数据工厂”->“HTTP交互”,然后单击新建UbiHTTP; 2.指定设置,并非每种类型的请求都需要所有设置。所有UbiHTTP请求都需要以下参数;
必选参数 | 描述 |
名字 | 为您的UbiHTTP请求输入一个唯一的名称 |
API密钥 | 自动为UbiHTTP请求生成的API密钥 |
网址 | 输入请求数据或写入数据的网站网址,以http://或https://开始 |
方法 | 选择访问网站网址所需的以下HTTP请求方法之一:GET,POST,PUT,DELETE。 |
针对您发出请求的性质,可以指定其他参数。例如,对需要身份验证的服务器的UbiHTTP请求需要用户名和密码。
可选参数 | 描述 |
HTTP 授权用户名 | 如果您的URL需要身份验证,请输入身份验证用户名以访问私人频道或网站。 |
HTTP身份验证密码 | 如果您的URL需要验证,请输入验证密码以访问私人频道或网站。 |
内容类型 | 输入请求内容的MIME或表单类型。例如,application/x-www-form-ubibot。 |
主机 | 如果您的UbiHTTP请求需要主机地址,请输入域名。例如,webapi.ubibot.cn。 |
内容 | 输入想包含在请求中的消息。如果出现以下字符,将被替换成具体字符值,例如:%%trigger_subject%% 后台构建的报警标题
eg: 预警提醒-编号为xxxx的设备(测试开关)已超出警戒范围 %%trigger_body%% 后台构建的报警消息完整内容 eg: 编号为xxxx的设备(测试开关)已超出预设定的警戒范围。 传感器:field1 (开关状态),报警瞬间值:1。(规则名:智能开关开启)。 本条预警触发记录的ID是:2692595。您可以进入管理控制台进行查看。 %%trigger_field%% 对应field名字 eg: field1 (开关状态) %%channel_id%% 空间编号ID eg: xxxx %%name%% channel的名字 eg: 测试开关 %%trigger_type%% 触发类型,如果为recover则为恢复预警 仅恢复时返回 eg: recover %%sampled_at%% 数据采集时间 (返回时间戳) eg: 1603263103 %%rule_type%% 预警类型 (numeric-数据预警 | no_data_check-离线预警 | status_field-USB断电预警) eg: numeric %%rule_name%% 预警名称 eg: 智能开关开启 %%rule_condition%% 预警阈值 eg: 10 %%action_frequency%% (change_only-突变预警 | change_only_delayed-延迟突变预警 | always-持续预警 | always_delayed-延迟持续预警) eg: change_only %%frequency%% (当预警为延迟预警时所设置的延迟时间单位S) eg: 120 %%criteria%% 预警关系 eg: > %%trigger_id%% 预警ID eg: 2692622 %%trigger%% 预警瞬间值 eg: 1 |
3.保存请求。通过添加预警功能并选择UbiHTTP,您的UbiHTTP可供将来使用。
使用GET或POST请求,通过设置预警规则触发UbiHTTP。
1. 单击进入“数据仓库”->“我的数据仓库”;
2. 选择要设置HTTP交互的设备->“预警规则”->“创建离线/数据/USB断电预警”;
3. 按照应用情景进行预警信息设置;
4. 报警方式选择“HTTP交互”->选择刚刚设置好的UbiHTTP请求名字;
5. 保存预警;
当设备的传感器检测值到达用户设定的阈值时,UbiHTTP 请求被触发。
如何查看设备MAC地址?
如何查看设备MAC地址?
以下方式可以进行MAC地址查询:
1.打开网址https://www.ubibot.cn/进入轻松连主页,点击“管理控制台”;
2.进入管理控制台登录页面
根据提示输入“邮箱/手机号/用户名”及“密码”,点击登录;
3.进入管理控制台主页面,点击“数据仓库”—“我的数据仓库”,点击进入设备后,可查看MAC地址。
轻松连PC工具常见问题解答
轻松连PC工具常见问题解答
1.如何下载PC工具?
2.安装完成PC工具后无法扫描到USB
请将设备开机并使用设备配套USB数据线(WS1 使用Micro-USB接口,WS1Pro设备使用侧面第一个靠上的Micro-USB接口);
请检查电脑的USB端口是否被占用;
如果仍然无法扫描到设备USB,请重启设备。
3.WiFi配置失败,弹出对话框Error 506?
输入的WiFi账号或密码有误,WiFi不可用或信号太弱。按照操作说明,检查输入的WiFi账号和密码是否有误,检查WiFi是否可用,尽量将设备靠近路由器方向。
4.读取设备图表时,弹出Error907报错?
设备插入USB但未被唤醒,可参照以下步骤操作:
点按电源键唤醒设备;
将设备USB拔出后重新插入电脑,让设备进入USB模式;
若仍旧报错,请将设备关机重启。
5.设备激活时以及入网配置时,出现设备报错Error904?
说明USB连接超时,请按照说明进行操作:
请重新插入USB数据线,使设备进入USB模式;
请确认电脑USB端口是否被占用;
请尝试重启设备。
6.加载成功的离线数据图表,为什么会有很多数据在一条竖线上或是只有中间一个数据点的情况?
设备在很长一段时间内没有离线就会出现很长的时间间隔,比如在2017年有一次离线数据,第二次离线数据在2019年,就会出现数据都在一条竖线的情况,
可以考虑将设备数据清除后再测试设备。
设备离线数据只有一个点的情况也是正常的,说明设备只离线一下之后都在线。
7.设备离线数据图表的Field代表什么?
不同设备的Field代表参数不同,具体参考如下:
数据上传转发服务
数据上传转发服务
此服务功能开通后,设备每次上传到轻松连大数据平台的空间数据(feeds)都将会完整的转发到指定第三方服务器端接口地址中。 可实现设备与第三方平台业务逻辑无缝连接。
转发的数据是通过POST请求,以JSON数据作为Request Body, 并且Header中的Content-Type值为”application/json”
具体结构如下:
转发数据举例如下:
{ "channel_id": "123456", "product_id": "ubibot-ws1p", "serial": "123456XXXXX", "feeds": [{ "created_at": "2022-04-24T09:06:56Z", "field1": 24.495308 }, { "created_at": "2022-04-24T09:06:56Z", "field2": 82 }, { "created_at": "2022-04-24T09:07:00Z", "field5": -34 }], "status": "mac=98:7b:f3:10:a1:e2,usb=1", "ssid_base64": "VFBHUw==" }
PHP:
<?php try{ $data = file_get_contents('php://input'); //get POST payload, 获取post包文 $json = json_decode($data, true); //parse input data into json, 解析json,并进行业务逻辑 //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// $myfile = file_put_contents('log.txt', $data.PHP_EOL , FILE_APPEND | LOCK_EX); echo "SUCCESS"; //成功处理请求 } catch (Exception $ex) { echo "ERROR";//失败处理请求返回 }
NodeJS:
const http = require('http'); const server = http.createServer(function (req, res) { let type = req.headers["content-type"]; if (req.method.toLowerCase() === 'post' && type === "application/json") { try{ ////get POST payload, 获取post包文 var jsonData = ""; req.on("data", function(chunk) { jsonData += chunk; }); req.on("end", function() { //parse input data into json, 解析json,并进行业务逻辑 var reqObj = JSON.parse(jsonData); //-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------// var fs = require('fs'); fs.writeFile("log.txt", JSON.stringify(reqObj), function(err) { if(err) { res.end('ERROR');//失败处理请求返回 } }); res.end('SUCCESS');//成功处理请求 }); }catch{ res.end('ERROR');//失败处理请求返回 } }else{ res.end('ERROR');//失败处理请求返回 } }); //设置监听端口 server.listen(8080, "127.0.0.1", function () { console.log("server is started listen port 8080"); });
Python:
from http.server import BaseHTTPRequestHandler, HTTPServer import cgi import json class testHTTPServer_RequestHandler(BaseHTTPRequestHandler): def do_POST(self): try: ctype, pdict = cgi.parse_header(self.headers.get('content-type')) if ctype == 'application/json': #get POST payload, 获取post包文, parse input data into json, 解析json,并进行业务逻辑 length = int(self.headers['content-length']) jsonArray = json.loads(self.rfile.read(length)) #-----------注意: 请确保业务逻辑在15秒之内完成,否则服务器端将做超时处理------------# myfile = open("log.txt",'a') myfile.write(json.dumps(jsonArray)) myfile.write("\n") myfile.close() #成功处理请求 self.protocal_version = 'HTTP/1.1' self.send_response(200) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("SUCCESS", "utf-8")) return else: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return except: #失败处理请求返回 self.protocal_version = 'HTTP/1.1' self.send_response(300) self.send_header("Welcome", "Contect") self.end_headers() self.wfile.write(bytes("ERROR", "utf-8")) return def run(): port = 8080 print('starting server, port', port) # Server settings server_address = ('', port) httpd = HTTPServer(server_address, testHTTPServer_RequestHandler) print('running server...') httpd.serve_forever() if __name__ == '__main__': run()
C# ASP.NET
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace demo1.Controllers { public class FeedData { public DateTime created_at { get; set; } public object field1 { get; set; } public object field2 { get; set; } public object field3 { get; set; } public object field4 { get; set; } public object field5 { get; set; } public object field6 { get; set; } public object field7 { get; set; } public object field8 { get; set; } public object field9 { get; set; } public object field10 { get; set; } } public class DeviceData { public string channel_id { get; set; } public string status { get; set; } public List feeds { get; set; } public string ssid_base64 { get; set; } } [Route("api/[controller]")] [ApiController] public class RestApiController : ControllerBase { [HttpPost] [Route("recv")] public string ReceiveData([FromBody] DeviceData data) { try { //使用data进行业务处理 return "SUCCESS";//成功处理请求 } catch (Exception) { return "ERROR";//失败处理请求返回 } } } }
如何进行数据共享?
如何进行数据共享?
1.点击指定设备头像,进入设备数据空间;
2.在上方页签栏,向右侧拉动,点击找到“分享”按钮,并点击“+” ,如图位置:
3.在弹窗中输入已注册的轻松连账号(用户名/手机/邮箱等)
如果输入正确,app将自动识别对应账号并弹出选项,点击匹配的账号,完成分享操作。
被分享人在登录app或者网页端后,可以在Ta的设备中找到分享的设备,被分享人可以点击查看数据,但没有修改设备配置的权限。
打开网页数据平台登录https://console.ubibot.cn/,勾选您想要分享的设备,可多选,点击分享按钮,输入已注册的轻松连账号(用户名/手机号/邮箱等)输入正确后,平台会自动匹配账户,点击匹配的账户,完成分享。
被分享人在登录app后或网页端,可以在Ta的数据仓库页面内中找到分享的设备
下载APP之后无法安装
下载APP之后无法安装
1. 安装时,提示手机禁止外来软件安装:请自行调整手机权限,一般为设置-安全-允许安装未知来源软件。
2.解析时出现问题,一般为软件与系统不兼容,轻松连APP支持系统版本为android4.2+,ios9.0+的设备。建议在手机自有的应用商城中(App Store、腾讯应用宝、小米应用、华为应用等)搜索“轻松连”或通过轻松连官网下载中心,进行下载并安装。
常见问题
网络连接
设备操作
数据上传
其他技术