Services Discovery of IoT device - semantic-web

I am looking to discover services offered by one of my IoT device/Gateway.
The Gateway device is mDNS enabled, So I can discover device locally with mDNS discovery, at this point I can see my Gateway ip address and port its listenning on.
Now I want to query what all the services offered by the same device, how Can I do that. (Assuming gateway device has http REST Service )
Is there any Semantic query for IoT devices? or any other to ask for services offered by device?
Any direction or guidance, Thanks in advance
~Ashok

Related

Azure IoT Hub Device Identity requirements

I need to connect some sensors to an Azure IoT Edge Runtime via MQTT.
I read here:How an IoT Edge device can be used as a gateway , that in the "Transparent" Pattern, devices who hold their own IoT Hub device identity can communicate directly with Azure IoT Edge via MQTT.
I am still in the planning phase and don't have the sensors (or Iot Hub devices) at the moment so I couldn't really start testing directly. I wanted to know if all devices/sensors can hold their IoT Hub device identity and if there are any hardware requirements in order to do so?
Thank you very much in advance!
In the transparent gateway case, the requirements for devices / sensors are the same as if the device would connect directly to an IOTHub using its identity. That is, if the device or sensor supports to Azure IOTHub via MQTT, it should work through the transparent gateway. When configuring the device, instead of using a connection string for the Azure IOTHub itself, you'd use a connection string that references the local Edge gateway.
There are 3 basic steps to take in the transparent gateway scenario - the article you linked steps into them, but I'll add in some color for 2 and 3.
Set up the gateway for connectivity from the downstream devices & routing to the upstream IOTHub. This article has good details.
For each device, create an identity in Azure IOTHub, using the device's unique ID (for example, device EUI for a lorawan sensor) as the IOTHub DeviceId, and set up auth per this article. This step is where you determine the Edge gateway connection string.
Connect the downstream device to the gateway device and start sending messages. That's this article. This is obviously dependent on the device itself and the operating code/configs (whether a 3rd party black box type device or something running your own code).

How to connect non-programmable (no SDK) devices to IoT Hub

I am building an IoT solution based on devices that are not programmable (3rd party devices).
I can just configure the server they must connect to and I have the messaging (sending messages and receiving commands).
What is the best way to integrate them in an Azure IoT Solution (IoT Hub) ?
It looks like we can use Azure IoT Edge as Gateway (https://github.com/MicrosoftDocs/azure-docs/blob/master/articles/iot-edge/iot-edge-as-gateway.md) in a "Identity translation" pattern, but I still not figure out how to do it.
I also find Azure IoT Protocol Gateway (https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-protocol-gateway) that seems to do the job but it is not sufficiently clear for me what to do.
Thanks in advance for your help.
The question is which protocols your devices support and how configurable your devices are. For instance you might be able to talk MQTT directly to the IoT Hub without using the SDK: https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support#using-the-mqtt-protocol-directly-as-a-device
Same is possible for HTTP using the REST API directly: https://learn.microsoft.com/en-us/rest/api/iothub/device
If neither is an option then yes, you need some kind of gateway - like in the examples which you linked.

Why Azure IoTHub is defined as Platform as Service?

I see Azure IoTHub described as Cloud Platform as a Service? could anyone explain why IoTHub is PAAS?
https://azure.microsoft.com/en-in/services/iot-hub/
From the documentation:
Connect, monitor and manage billions of IoT assets—Use Azure IoT Hub to securely connect, monitor and manage billions of devices to develop Internet of Things (IoT) applications. IoT Hub is an open and flexible cloud platform as a service that supports open-source SDKs and multiple protocols.
To provide some context, the following article gives a high level overview of the various Azure IoT services, both PaaS and SaaS: Internet of Things (IoT) technologies and solutions: PaaS and SaaS

webrtc after signaling on LAN

After webrtc passes by a signaling server on Internet, how it works when two machines are running in the same network?
The data will be exchanged only on the network or will it still use internet ?
I am asking this because of our internet is not good, it's too slow. but our local network speed is very fast.. So I would like to know if the internet signal will affect the audio and video conversation.
Thanks a lot!
Depending on the network configuration, the devices should connect directly over the local network. Please note that some browsers, such as Safari, may not share with the signalling service local ICE Candidates unless configured to do so (false concern over sharing network info). The devices must share local ICE Candidates, or else they will still stream via the external network or a TURN server, if available.

Would WCF client work over USB in compact framework?

Would WCF work through normal USB connection or does it require WIFI when using the Mobile Device as a WCF client to a WCF service running on the PC?
Thanks
Did you mean over usb via activesync, or just over USB in general?
I have consumed RESTFul WCF services on WM6 devices over usb/activesync. The activesync connection gives you a network connection that supports TCP. Use the host name 'ppp_peer' if you want to address the host pc you are connected to.
I use ActiveSync and resolve the hostname "dtpt_peer" which maps to 169.254.2.2, the IP assigned by the CF device to the desktop peer, and then use WCF via TCP.
I would think that it wouldn't work over the USB connection because the USB is not a network connection. Unless you are referring to some kind of USB ethernet adapter, and not a USB cable plugged directly from your mobile to your computer, then you are most likely out of luck in this regard.