我之前使用过 Azure IoT Hub,现在我发现了一个Azure IoT Central与Azure IoT Hub.
我很困惑与这些物联网服务之间的差别,任何人都可以解释我的差异,哪一个更好之间Azure IoT Central和Azure IoT Hub?
提前致谢
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.
也加上一些赏金.
我有一个事件生成器连接并将消息发布到IoT中心.如何查看已收到的消息?我会对不同的方法感兴趣(以编程方式,仪表板等)
创建新的Azure IOT Hub时,系统会询问您需要多少个设备到云分区.您可以为标准层选择2-32个分区.
我了解SKU和单位数决定了您可以发送到IOT Hub的每日最大消息配额.并且建议将您的设备分成多个IOT集线器以平滑流量突发.但是,设备到云分区需要澄清.
1 >>单个IOT集线器下的设备到云分区的目的是什么?
2 >>我们如何利用那些IOT Hub设备到云分区?
谢谢.
我正在研究一种能够保存天气数据的物联网解决方案.关于如何设置后端,我已经搜索了几天了.我将使用Azure IoT Hub来处理通信,但下一步是问题.
我想将遥测存储到数据库中.这是我感到困惑的地方.一些示例说我应该使用Azure BLOB存储或Azure表存储或Azure SQL.
经过几年的数据收集,我想开始创建数据报告.因此存储需要善于处理大数据.
我坚持的下一个问题是将接收D2C并将其存储到数据库的工作者.所有Azure IoT示例都使用控制台应用程序,而有些则使用Azure Stream分析将事件移植到数据库.什么是最佳做法?它需要能够扩展并尝试使用最佳实践.
提前致谢!
azure-storage-blobs azure-table-storage azure-eventhub azure-iot-hub
我有一个要测试的 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 …python testing integration-testing azure-iot-hub azure-iot-edge
我们现有的物联网平台使用 Azure 协议网关并且运行良好。我刚刚意识到 MS Azure 推出了一个新版本的协议网关,称为IoT Edge。我只是在寻找 IoT Edge 中可用的新功能,现在我完全混淆了这两个组件:
我知道答案可能是一个更广泛的讨论,但谁能提供一个简单的解释?
我有一个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}");
}
我只获得有效负载而没有任何其他IoT Hub属性,如DeviceId,CorrelationId或MessageId.
我尝试将类型设置为EventData:
public static void Run(EventData iotMessage, TraceWriter log) {
    log.Info($"C# Event Hub trigger function processed a message: {JsonConvert.SerializeObject(iotMessage)}");
}
现在我可以通过两个getter访问IoT Hub属性:Properties和SystemProperties.例如,我可以像这样访问DeviceId iotMessage.SystemProperties["iothub-connection-device-id"].但它不会暴露有效载荷.
那么如何访问IoT Hub属性和有效负载?
我们有许多设备(大约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,有些部署在美国东部,所有部署都给我们类似的延长等待时间来连接和发送/推送消息到物联网设备
所以这是一个相当广泛的问题,但已经没有想法了.我们当前正在运行2个辅助角色实例,它们执行以下操作:
我们面临的问题是在高峰期间我们的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();
        }
    }
在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 …azure-iot-hub ×10
azure ×8
iot ×3
c# ×2
mqtt ×1
python ×1
sharding ×1
tcp ×1
testing ×1
throttling ×1