标签: azure-iot-hub

Azure IoT 中心和 Azure IoT 中心有什么区别?

我之前使用过 Azure IoT Hub,现在我发现了一个Azure IoT CentralAzure IoT Hub.

我很困惑与这些物联网服务之间的差别,任何人都可以解释我的差异,哪一个更好之间Azure IoT CentralAzure IoT Hub

提前致谢

azure azure-iot-hub azure-iot-sdk azure-iot-central

29
推荐指数
4
解决办法
3万
查看次数

Azure IoT Hub中的TCP支持

Azure IoT Hub支持AMQP,MQTT,HTTP协议.为了自定义这些协议,我们有Azure IoT协议网关.我可以在MQTT协议定制上找到好的样本.我需要一些使用Azure IoT协议网关进行基于TCP的协议自定义的示例代码.

编辑(为了得到答案): OP提出的问题是使用Azure协议网关支持基于TCP的专有协议的示例.目前,IoT中心仅支持AMQP,MQTT和HTTP.虽然这些协议实际上依赖于TCP,但如果没有额外的AMQP,MQTT或HTTP层,则集线器不支持直接TCP连接.正如解释在这里,我们需要一个定制的基于TCP协议的一个基本的例子.

想象一下,一个基本设备只能通过TCP在给定的IP地址/端口上发送一些专有的有效载荷:我们需要一个网关定制的例子,允许该设备将数据发送到集线器.

协议网关的当前代码设计很差,因为它严重依赖于MQTT.

也加上一些赏金.

c# tcp azure iot azure-iot-hub

14
推荐指数
1
解决办法
1951
查看次数

如何测试到达Azure IoTHub的邮件

我有一个事件生成器连接并将消息发布到IoT中心.如何查看已收到的消息?我会对不同的方法感兴趣(以编程方式,仪表板等)

azure azure-iot-hub

11
推荐指数
3
解决办法
5299
查看次数

Azure iot集线器设备到云分区的目的

创建新的Azure IOT Hub时,系统会询问您需要多少个设备到云分区.您可以为标准层选择2-32个分区.

我了解SKU和单位数决定了您可以发送到IOT Hub的每日最大消息配额.并且建议将您的设备分成多个IOT集线器以平滑流量突发.但是,设备到云分区需要澄清.

1 >>单个IOT集线器下的设备到云分区的目的是什么?

2 >>我们如何利用那些IOT Hub设备到云分区? 

谢谢.

throttling sharding azure iot azure-iot-hub

10
推荐指数
1
解决办法
3862
查看次数

Azure物联网中心 - 保存遥测最佳实践

我正在研究一种能够保存天气数据的物联网解决方案.关于如何设置后端,我已经搜索了几天了.我将使用Azure IoT Hub来处理通信,但下一步是问题.

我想将遥测存储到数据库中.这是我感到困惑的地方.一些示例说我应该使用Azure BLOB存储或Azure表存储或Azure SQL.

经过几年的数据收集,我想开始创建数据报告.因此存储需要善于处理大数据.

我坚持的下一个问题是将接收D2C并将其存储到数据库的工作者.所有Azure IoT示例都使用控制台应用程序,而有些则使用Azure Stream分析将事件移植到数据库.什么是最佳做法?它需要能够扩展并尝试使用最佳实践.

提前致谢!

azure-storage-blobs azure-table-storage azure-eventhub azure-iot-hub

8
推荐指数
2
解决办法
3463
查看次数

python中的集成测试

我有一个要测试的 python 项目。我已经有了单元测试,unittest但我需要做集成测试。

为此,我有两个应用程序:我必须测试的真实应用程序和一个“测试”应用程序,它将向第一个应用程序发送请求,等待响应,然后将其与预期结果进行比较:

在此处输入图片说明

这样我就可以测试应用程序是否正确响应请求。

目前,我有我上面描述的内容,但在 main.py(不是特定的测试文件)中。另外,比较只是用打印功能完成的,所以我可以看到它的工作原理。但是我必须执行这些测试并能够以常规格式(例如 junit xml)获得结果。

我如何编写、运行和获取这些测试的结果?

编辑

我正在开发 Azure IoT Edge 模块,并且正在使用 Route 来连接模块。这是测试模块的代码,我需要在其中执行测试:

import random
import time
import sys
import iothub_client
import json

# pylint: disable=E0611
from iothub_client import IoTHubModuleClient, IoTHubClientError, IoTHubTransportProvider
from iothub_client import IoTHubMessage, IoTHubMessageDispositionResult, IoTHubError

# Callback received when the message that we're forwarding is processed.
def send_confirmation_callback(message, result, user_context):
    print ( "Confirmation[%d] received for message with result = %s" % (user_context, result) )

# receive_message_callback is invoked when an …
Run Code Online (Sandbox Code Playgroud)

python testing integration-testing azure-iot-hub azure-iot-edge

8
推荐指数
1
解决办法
1万
查看次数

Azure IoT Edge 与协议网关(IoT 中心)

我们现有的物联网平台使用 Azure 协议网关并且运行良好。我刚刚意识到 MS Azure 推出了一个新版本的协议网关,称为IoT Edge。我只是在寻找 IoT Edge 中可用的新功能,现在我完全混淆了这两个组件:

  • IoT Edge 主要支持设备和网关之间的本地连接。如果这不是我的要求的一部分怎么办?我还应该升级到 IoT Edge 吗?
  • 我没有看到任何性能改进 - 协议网关与物联网边缘

我知道答案可能是一个更广泛的讨论,但谁能提供一个简单的解释?

azure iot windows-10-iot-core azure-iot-hub azure-iot-edge

8
推荐指数
1
解决办法
2753
查看次数

Azure IoT Hub,EventHub和Functions

我有一个IoTHub,其路由指向触发函数的EventHub.

我在从事件对象获取DeviceId和其他IoT Hub属性时遇到问题,而没有将这些属性显式添加到有效负载.

如果我将输入类型设置为string(或自定义类型):

public static void Run(string iotMessage, TraceWriter log) {
    log.Info($"C# Event Hub trigger function processed a message: {iotMessage}");
}
Run Code Online (Sandbox Code Playgroud)

我只获得有效负载而没有任何其他IoT Hub属性,如DeviceId,CorrelationIdMessageId.

我尝试将类型设置为EventData:

public static void Run(EventData iotMessage, TraceWriter log) {
    log.Info($"C# Event Hub trigger function processed a message: {JsonConvert.SerializeObject(iotMessage)}");
}
Run Code Online (Sandbox Code Playgroud)

现在我可以通过两个getter访问IoT Hub属性:Properties和SystemProperties.例如,我可以像这样访问DeviceId iotMessage.SystemProperties["iothub-connection-device-id"].但它不会暴露有效载荷.

那么如何访问IoT Hub属性和有效负载?

azure azure-eventhub azure-iot-hub azure-functions

7
推荐指数
1
解决办法
2110
查看次数

Azure IoT中心需要2秒以上的时间才能将消息推送到mqtt设备

我们有许多设备(大约50-60个设备)通过MQTT连接到IoTHub.为了节省电量,我们的设备每5分钟唤醒一次,保持清醒1秒钟以获取任何消息,如果没有任何消息,他们会重新入睡.这工作正常,直到大约2周前,当这停止工作.

在尝试了一些事情之后,我们发现如果我们将Stay-Awake时间增加到3秒,那么当设备连接时,IoTHub会将消息推送到设备.平均而言,一旦设备连接,物联网中心大约需要2.5秒才能推送消息.这将很快耗尽我们的电池,我们不能将其用作解决方案.考虑到设备与IoTHub位于同一区域,等待消息的发送似乎太长了.

我们还注意到,有时连接超时需要增加到接近10秒才能成功连接,这似乎太长了.

在我们的物联网设备上,我们使用的是MQTT协议,由于硬件资源有限,我们无法使用Azure IoT sdk

所以这里的问题是:

一旦设备连接,IoTHub花费2-3秒推送mqtt消息是否正常?

与IoTHub建立连接需要10秒钟是否正常?

更新1 - 2017年5月5日上午10:11

我通过MSDN向Microsoft提出了这个问题,这里是问题的链接:https://social.msdn.microsoft.com/Forums/en-US/9d24c261-2280-4515-8e89-8097625307ee/azure-iothub-是-既能更比23秒到调度的消息-通MQTT到所述的设备,当?论坛= azureiothub

我们在云服务上使用Azure sdk.然而,在物联网设备上,由于硬件限制,我们无法使用sdk,因此我们只是使用MQTT协议来连接,订阅,处理消息,然后断开连接.我们位于澳大利亚(墨尔本SE),我们正在测试多个部署,有些部署在AU,有些部署在美国东部,所有部署都给我们类似的延长等待时间来连接和发送/推送消息到物联网设备

azure mqtt azure-iot-hub

7
推荐指数
1
解决办法
974
查看次数

高CPU Azure工作者角色

所以这是一个相当广泛的问题,但已经没有想法了.我们当前正在运行2个辅助角色实例,它们执行以下操作:

  • 通过为每个批次生成N个线程来监视和处理IoT Hub事件.
  • 监视和处理来自IoT Hub的连接/断开(操作监视)消息
  • 一些服务总线是否有效(主题和队列)
  • 写入SQL,DocDB(Mongo API)和Azure表存储,以便通过NLOG进行日志记录
  • 通过IoT Hub发送云到设备消息

我们面临的问题是在高峰期间我们的CPU显然会增加,但遗憾的是它永远不会降低,并且通常会高达100%并且坐在那里直到我重新启动实例以使其恢复原状.我一直在研究线程,因为我仍然觉得它可能与"while(1)"类型场景有关,即使看不清楚原因.让我们现在进入代码......

WorkerRole.cs中:

    class WorkerRole : RoleEntryPoint
    {
        private readonly ManualResetEvent runCompleteEvent = new ManualResetEvent(false);

        public override void Run()
        {
            _eventprocessor.Start(instanceId, instanceIndex);//.Wait(-1);

            //Wait for shutdown to be called, else the role will recycle
            this.runCompleteEvent.WaitOne();
        }
    }
Run Code Online (Sandbox Code Playgroud)

EventProcessor.cs中:我会尝试省去很多果汁但添加我觉得可能值得的东西.将尽可能添加"伪代码".

public class EventProcessor : IEventProcessor
{
  private readonly ManualResetEvent runCompleteEvent = new ManualResetEvent(false);

  public async Task Start(string serviceId, int InstanceIndex)
  {

    //Setup Topic

    //Setup Queue

    //Setup EventProcessorHost for receiving events …
Run Code Online (Sandbox Code Playgroud)

c# multithreading azure azure-worker-roles azure-iot-hub

7
推荐指数
1
解决办法
311
查看次数