物联网中心自定义规则
Posted
技术标签:
【中文标题】物联网中心自定义规则【英文标题】:IOT Central Custom Rules 【发布时间】:2021-05-12 14:07:26 【问题描述】:目前正在就本网站https://docs.microsoft.com/en-us/azure/iot-central/core/howto-create-custom-rules 上的代码寻求帮助。在使用使用查询来检测断开连接的 deviceId 的流分析作业时,它返回 null。请看如下:[所有断开设备的deviceId都返回null,但有时间戳。][1]
这是我使用的查询。
with
LeftSide as
(
SELECT
-- Get the device ID from the message metadata and create a column
GetMetadataPropertyValue([centraltelemetry], '[EventHub].[IoTConnectionDeviceId]') as deviceid1,
EventEnqueuedUtcTime AS time1
FROM
-- Use the event enqueued time for time-based operations
[centraltelemetry] TIMESTAMP BY EventEnqueuedUtcTime
),
RightSide as
(
SELECT
-- Get the device ID from the message metadata and create a column
GetMetadataPropertyValue([centraltelemetry], '[EventHub].[IoTConnectionDeviceId]') as deviceid2,
EventEnqueuedUtcTime AS time2
FROM
-- Use the event enqueued time for time-based operations
[centraltelemetry] TIMESTAMP BY EventEnqueuedUtcTime
)
SELECT
LeftSide.deviceid1 as deviceid,
LeftSide.time1 as time
INTO
[emailnotification]
FROM
LeftSide
LEFT OUTER JOIN
RightSide
ON
LeftSide.deviceid1=RightSide.deviceid2 AND DATEDIFF(second,LeftSide,RightSide) BETWEEN 1 AND 120
where
-- Find records where a device didn't send a message 120 seconds
RightSide.deviceid2 is NULL
```[enter image description here][2]
[1]: https://i.stack.imgur.com/CLOQv.png
[2]: https://i.stack.imgur.com/IU3SX.png
【问题讨论】:
作为替代解决方案,可以使用 IoT Central 的新功能,例如 设备连接事件,docs.microsoft.com/en-gb/azure/iot-central/core/… 【参考方案1】:由于流分析查询使用来自事件中心的遥测作为其输入,如果您按照完整的设置教程进行操作,能否告诉我?如果是,您是否看到带有设备 ID 的功能日志消息?
另外,您是否收到来自 SendGrid 的带有 deviceid 的电子邮件?为了进一步分析,您能否确认您的流分析作业正在接收来自事件中心的输入?
【讨论】:
是的,在功能日志消息中,我完全按照完整教程进行操作,deviceid 为空。我还可以确认我的流分析作业正在接收来自事件中心的输入。 这意味着设备 ID 也没有到达功能应用程序。您是否可以与设备或设备组共享 IoT Central 屏幕截图。添加的设备似乎有问题。 它不允许我为我的问题添加屏幕截图(显然我必须达到 10 的声誉)但是当我通过我的 iot 集线器时,数据已正确存储。以上是关于物联网中心自定义规则的主要内容,如果未能解决你的问题,请参考以下文章
《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
物联网架构成长之路(35)-利用Netty解析物联网自定义协议
ESP8266 SDK开发: 物联网篇-ESP8266连接阿里云物联网平台,使用阿里云提供的自定义Topic通信控制