智能感知设备
智能感知标签 WS1
智能监测仪 WS1 Pro
工业级感知设备 GS1
智能水质监测设备 GS2
无线红外探测器 MS1
空气检测仪 AQS1
水浸检测仪 LD1
86型温湿度记录仪WS3
智能控制设备
智能开关 SP1
网络继电器 NR1
智能感知标签WS1
智能监测仪 WS1 Pro
工业级感知设备GS1
智能水质监测设备GS2
无线红外探测器MS1
空气检测仪AQS1
水浸检测仪LD1
智能开关 SP1
网络继电器 NR1
86型温湿度记录仪 WS3
相关视频
WS3系列 产品介绍
常见问题
网络连接
设备操作
数据上传
其他技术
设备是否需要配置网络
如何使用自动化管理
如何使用自动化管理
自动化管理可快速实现设备之间的联动,当触发设备达到预先设定的触发条件时,执行设备将自动触发操作。
1.点击【数据工厂】-【自动化管理】,进入自动化管理页面。点击【创建自动化】。
2.选择触发设备,并设置触发条件。
3. 选择执行设备及动作。执行设备仅支持智能开关SP1、网络继电器NR1等智能控制设备,最多可同时设置5个执行设备。
4. 确认已设置的自动化规则并保存。
5. 设置成功。
设备默认数据多久采集一次?多久上传一次?
设备默认数据多久采集一次?多久上传一次?
设备默认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表格进行编辑。
钉钉群预警消息设置
钉钉群预警消息设置
通过使用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地址。
数据上传转发服务
数据上传转发服务
此服务功能开通后,设备每次上传到轻松连大数据平台的空间数据(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的数据仓库页面内中找到分享的设备
常见问题
网络连接
设备操作
数据上传
其他技术