技术栈
sagooiot
microrain
2 天前
物联网
·
golang
·
插件
·
sagooiot
SagooIoT 把协议解析和消息通知都放进了独立进程
先看一个目录。本地专业版的 plugins/built 下,ls -lh 输出的是这样九行:二十二兆一个,全是可执行文件,file 一看都是原生二进制。第一次翻到这个目录的人通常会问一句:一个物联网平台,为什么要把自己的功能拆成九个独立程序摆在这儿?
microrain
2 天前
物联网
·
golang
·
规则引擎
·
sagooiot
把规则链存成文件之后,上线一条规则只需改一个字段
上周帮一个客户换服务器。新机器上系统装完,数据库倒完,运维问了一句:规则引擎里那十几条联动规则,是走 SQL 导出来再导进去,还是有专门的迁移脚本?
microrain
7 天前
javascript
·
物联网
·
golang
·
sagooiot
设备报文怎么变,SagooIoT 只约定三个函数名
接入清单摊开的时候,差别往往不在协议栈上,而在报文长得什么样。同样是"上报一次温湿度",三台设备可能长成这样:
microrain
8 天前
物联网
·
缓存
·
golang
·
sagooiot
SagooIoT 的缓存换后端只改一行配置,文件后端连 Redis 都不需要
先说一个很常见的现场条件:一台机器、一个数据目录、一份二进制,没有额外的中间件可以装。这种环境里做物联网平台,最容易被卡住的不是协议解析,而是"那些本该放在 Redis 里的东西该放哪里"。设备详情、产品 TSL、系统参数、告警规则、规则链,全都是读多写少、结构固定、可以常驻的字典数据。
microrain
11 天前
物联网
·
架构
·
golang
·
sagooiot
专业版守核心,企业版做增量:SagooIoT 的跨模块能力出口
依赖方向固定、不可反向:这一条决定了:核心可以独立演进、独立交付;增值业务可以快速叠加,却不会把核心代码搅成「企业版特供」。
microrain
18 天前
物联网
·
golang
·
计算服务
·
sagooiot
读数是 1008,用电量是 8:SagooIoT 计算服务的增量口径与七种计算策略
一块智能电表挂在配电箱里,其实只会做一件事:把"到此刻为止累计用了多少度"这个数字报上来。它不回答"今天用了多少"——那个数不在表里,它躲在两次读数之间。抄表员月末来一趟,记下月初的 1000.0 和月末的 1008.0,做个减法,得到 8.0 度。整条链路里最关键的一步不是采集,而是"拿哪个数当基准"。
microrain
21 天前
物联网
·
golang
·
开源
·
sagooiot
同一个值,四个名字,四套口径:SagooIoT 属性上报链路的 Canonical 收敛
给属性上报链路做基线是一件很枯燥的事:固定 10k 设备在线、10k msg/s、每条报文 500 字节上下、平均一条报文带 5 个属性,然后让 benchmark 跑三轮。跑完拿到的第一个数字有点刺眼——一次属性上报,在热路径上要做 67 次堆分配。
microrain
23 天前
物联网
·
golang
·
开源
·
sagooiot
KNX 现场没有寄存器表:SagooIoT 楼宇驱动插件的组地址、DPT 与隧道
在 Modbus、Siemens S7、HART-IP 这些协议里,"读一个值"有明确的因果:平台发一个请求,设备回一个响应,一问一答,谁问、谁答、答的是哪一条,全都是确定的。
microrain
24 天前
物联网
·
golang
·
开源
·
sagooiot
先应答,再入库:SagooIoT 接入 GB/T 32960 的四层宿主改造
GB/T 32960 里有一条容易被忽略的时序约定:终端每发出一帧,都在等平台回一个通用应答;等不到就判定链路不可用,断开、重连、重新登入。真车上的终端严格照做,于是"平台能不能立刻把回应吐回去"这件事,直接决定这条链路是稳稳挂着,还是每隔几分钟抖一次。
microrain
1 个月前
物联网
·
golang
·
开源
·
sagooiot
同一个寄存器,四种读法:SagooIoT Modbus 驱动的字节序、宽度与功能码
把 1.5 这个数写进两个连续的保持寄存器,再读回来,你可能拿到 1.5,也可能拿到 1078984704;把 25.6 写进一个输入寄存器再读回来,可能还是 25.6,也可能变成 2560。
microrain
1 个月前
物联网
·
golang
·
开源
·
sagooiot
权限改了,接口立刻生效,菜单要等重新登录:SagooIoT 权限体系的四道闸门
给一个角色勾完权限,点保存,接口返回 200。让那个用户刷新页面——菜单还是旧的。这不是 bug。在 SagooIoT 的权限体系里,"这个接口你能不能调"和"这个菜单按钮显不显示"走的是两条路:一条每次请求都去数据库问一遍,另一条的结果被缓存到用户下次登录为止。两边的生效时间自然对不上。
microrain
1 个月前
物联网
·
golang
·
开源
·
sagooiot
首包即身份:SagooIoT 网络组件的注册包、粘包与透传设计
TCP 三次握手成功的那一刻,站在服务端这边看,这条连接的身份只有两样东西:一个来源 IP,一个来源端口。而在真实的物联网现场,这两样都不能当身份用——4G 卡每次拨号拿到的地址不一定相同,端口号更是每次重连都换。设备断电重启一次,昨天那个 10.3.7.21:51423 就换了主人。
microrain
2 个月前
物联网
·
golang
·
开源
·
sagooiot
从关系库硬扛到专业时序引擎:SagooIoT时序数据存储的架构取舍
先算一笔账。假设现场有 1 万台设备,每台设备每 5 秒上报一次数据,一次上报 20 个测点。那么每秒要落库的数据点就是 4 万个,一天是 34.5 亿条,一个月轻轻松松破百亿。这还只是一个中型的工业现场,没有算上告警事件、操作日志、边缘网关的汇聚数据。
microrain
3 个月前
物联网
·
开源
·
go
·
sagooiot
开放即能力:SagooIoT OpenAPI体系如何让物联网平台从工具走向生态
今年五月,我在整理SagooIoT社区反馈时发现一个有意思的规律:涉及API集成和接口文档的讨论量在过去半年增长了近三倍。从最初的"这个功能怎么用",到现在的"我怎么把这个能力集成到我的系统里",用户需求的变化清晰描绘出一条轨迹——物联网平台的价值,正从"功能完备"转向"开放集成"。
microrain
3 个月前
物联网
·
golang
·
开源
·
sagooiot
从监控孤岛到视联一体:SagooIoT视频监控中心的设计实践
当工厂里的海康摄像头、大华NVR、RTSP流媒体、GB28181平台各自为政时,运维人员要在四五个系统之间来回切换——这篇文章聊聊SagooIoT是怎么把视频监控和物联网数据打通,做成一件事的。
microrain
3 个月前
物联网
·
golang
·
开源
·
sagooiot
从数据烟囱到融合中心:SagooIoT统一数据处理平台的设计实践
去年冬天的一个凌晨,我被一阵急促的手机铃声吵醒。电话那头是某汽车零部件工厂的王工,声音里带着焦虑:“老赵,我们的MES系统又读不到设备数据了。产线停了快半个小时,生产总监已经在拍桌子了。”
microrain
3 个月前
物联网
·
开源
·
go
·
sagooiot
从协议孤岛到统一接入:SagooIoT多协议接入层的架构演进
当工厂里同时跑着Modbus的PLC、MQTT的传感器、OPC UA的机床、IEC104的电力设备,还有一堆私有协议的边缘网关——这不是科幻片,这是我做物联网平台这几年每天都在面对的真实场景。
microrain
3 个月前
物联网
·
开源
·
go
·
sagooiot
从云端到边缘:SagooIoT边缘计算架构的落地实践
去年冬天的一个凌晨,我被客户的电话吵醒。“我们的生产线上数据断了!MES系统读不到设备数据,产线快停了!”
microrain
3 个月前
java
·
物联网
·
struts
·
go语言
·
物模型
·
sagooiot
物联网的灵魂骨架:聊聊物模型如何让设备不再各自为政
做物联网平台这么久,见过太多项目陷入一个怪圈:设备接入量上去了,但数据一团糟。温度传感器上报的数据格式跟湿度传感器不一样,网关跟PLC的属性定义各搞一套,最后开发者不得不为每种设备单独写适配代码——这哪是做平台,分明是在做"翻译官"。
microrain
3 个月前
物联网
·
golang
·
开源
·
sagooiot
从硬编码到热插拔:SagooIoT插件架构如何打破物联网平台的扩展瓶颈
做物联网平台这几年,最让我头疼的不是设备接入,不是协议适配,而是——扩展。客户的需求永远在变。今天要接个Modbus温湿度传感器,明天要加个西门子PLC,后天又要对接某个厂商的私有协议。如果每次都要改平台核心代码、重新编译、重新部署,这个平台基本就废了。