How to provision devices into IoT Central using DPS?
Documentation says that there is an advanced option available to provision device directly to IoT central.
But when i check in DPS application, there is no option to link to IOT contral.
I am new to IOT development.
Azure IoT Central provisions Device Provisioning Service (DPS) when an application is created. The details that will be required to provision your devices can all be retrieved from within your Azure IoT Central application. Based on your use-case, follow these instructions to connect the devices to IoT Central:
Connect a single device quickly (using Shared Access Signatures)
Connect devices at scale using Shared Access Signatures (SAS)
Connect devices at scale using X509 certificates recommended for production workloads
Connect without first registering devices
You can look into following example - https://github.com/Azure/iotc-device-bridge/blob/master/IoTCIntegration/lib/engine.js line 119
const sasToken = await getRegistrationSasToken(context, deviceId);
const registrationOptions = {
url: `https://${registrationHost}/${context.idScope}/registrations/${deviceId}/register?api-version=${registrationApiVersion}`,
method: 'PUT',
json: true,
headers: { Authorization: sasToken },
body: { registrationId: deviceId }
};
Related
Is there a maximum limit of client credentials my control integration can use ?
I would like to control the sonos devices via a small IOT device that has it's own event callback URL without using an external server.
Is this possible ?
In the client credentials I can only configure one event callback url.
I would build a tiny webservice in the IOT device that receives event callbacks for status changes. (Volume changes / Playback states / group states)
Every IOT device needs a different callback url (and different client credentials).
Is this possible ?
If this is possible can we use a self-signed certificate for our IOT webservice ?
Is there a maximum limit of client credentials my control integration
can use?
There's no maximum limit. But note that your application uses the API key and secret, not the customer, therefore you should not need more than one. You don't need to create a unique API key and secret for each customer. You may need to create multiple credentials if you wish to have a one for your development app and one for your production app.
I would like to control the sonos devices via a small IOT device that
has it's own event callback URL without using an external server. Is
this possible?
We do not currently support a redirect URI to a local device or app (for example - a Redirect URI that opens an app on the device).
I'm not able to expose a local rest API through API connect on cloud.
API Connect on Cloud : error
I created a Rest API in my laptop using IIS, and I want to expose it through API Connect on IBM Cloud. Since the "Push Rest API" option in IIB Web Admin is not working, I used the swagger.json file to get the API details manually to APIC on Cloud. I followed the following steps:
In IBM Cloud created resources for API Connect and Secure Gateway cloud foundry services
Created a Secure Gateway Destination and have the SG client running in my laptop
Created a simple Rest API using IIB V10 and deployed it to my local Integration Node.
Tried to push the Rest API using the IIB Web admin by giving host as api.us-south.apiconnect.appdomain.cloud and my IBM Cloud account username/pwd, but it failed saying unable to connect:
Unable to connect to IBM API Connect at host 'api.us-south.apiconnect.appdomain.cloud' port '443'
Then I tried to create an API manually using the swagger.json file available in the IIB RestAPI project. I used the option to create new API using "from file or URL" option in the APIC on IBM Cloud.
I gave my laptop IP as the "Host" value in APIC designer
In the "Assembly", I included a "Proxy" policy and updated its Target URL to cap-sg-prd-2.securegateway.appdomain.cloud:17041
When I try to test the above, I get the following error:
<httpMessage>Internal Server Error</httpMessage>
<moreInformation>Backside URL invalid</moreInformation>
Can you please help to resolve it?
You're missing one or both of the following:
1) The "Target URL" must be a valid URL. Looks like you just entered a hostname, so likely you need https://cap-sg-prd-2.securegateway.appdomain.cloud:17041 Doing that and republishing the API should resolve the "Backside URL invalid" error.
Once you do that, you may find that you still can't reach the backend due to either a timeout or connection refused error.
If so:
2) Did you allow access to the secure gateway destination via the client on your local machine? You have to intentionally set an ACL on the client to allow traffic to the host/port on your network.
I am trying to setup LORAWAN end device on google-cloud-iot under registry and devices which is bound to gateway.
LoRaWAN specifies security keys: NwkSKey, AppSKey and AppKey. All keys have a length of 128 bits. however google-cloud-iot requires the following keys,
Create a device in registry XXXXXXXX.
Public key format
RS256
ES256
RS256_X509
ES256_X509
has anyone used LORAWAN end device directly with google-cloud-iot ? How can we setup LORAWAN end device bound to Gateway supporting LORAWAN ? We are using LorixOne as Gateway.
your support much appreciated.
Regards
Jayesh
Currently I am using Lora-App-Server on the VM to handle the end devices however that do not fit into the my over all solution as IoT product.
Not specific to the LorixOne, but from gateway authentication methods, the "Association Only" auth method might be useful here. That is, the LorixOne can store either the RS256 or ES256 private key and authenticate to Cloud IoT Core via JWTs, while you authenticate devices to the gateway with your existing LoRaWAN security keys.
Assuming you are using the MQTT bridge to connect to Cloud IoT Core, once a device is authenticated through the gateway, the gateway can publish a message to the attach topic for the authenticated device to enable communication.
This link from the LoRaServer official docs might be useful too: Google Cloud Platform Cloud IoT Core
I try to use aws device farm tool. I have IAMuser account. I login AWS Device Farm application with my user which has devicefarm permission. But ı cant see devices on tool.
enter image description here
That desktop app is for private devices in device farm. For remote access sessions in the public offering we will need to use the web console.
Can we create an app that will receive push notification from a server, like in Phones and Glass
Since we have WiFi enabled Watches available now, we can connect to internet, but does it support push from external entity(Server)?
That is not possible AFIK.
You need to push the message to the phone and forward the message via the Data API. You need to keep in mind that the WiFi connection is only a fallback when the bluetooth connection is not available.
You can do it now from Android Wear 2.0 Developer Preview. Android can wear can directly make own network calls and same old FCM/GCM will work.
Under Network Access and Cloud Messaging
Android Wear apps can make their own network requests. When a watch has a Bluetooth connection to a phone, the watch's network traffic is proxied through the phone. When a phone is unavailable, Wi-Fi and cellular networks are used, depending on the hardware. The Wear platform handles transitions between networks. A watch's network access thus does not require the Wearable Data Layer API.
For sending notifications, apps can directly use Firebase Cloud Messaging (FCM), which replaces Google Cloud Messaging, or continue to use GCM.
No APIs for network access or FCM are specific to Android Wear. Refer to the existing documentation about connecting to a network and cloud messaging.
More details - https://developer.android.com/wear/preview/features/standalone-apps.html#network_access