{"id":21196697,"url":"https://github.com/sandervandevelde/nonsdkazureiotclient","last_synced_at":"2025-07-10T05:30:46.589Z","repository":{"id":55125271,"uuid":"522903898","full_name":"sandervandevelde/NonSDKAzureIoTClient","owner":"sandervandevelde","description":"Demonstration of an Azure IoT Device Client based on MQTT only, without Azure IoT Device SDK","archived":false,"fork":false,"pushed_at":"2023-03-31T22:19:18.000Z","size":30,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-05T10:51:12.171Z","etag":null,"topics":["azure","iot","mqtt","non-sdk"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sandervandevelde.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-08-09T10:33:39.000Z","updated_at":"2022-12-18T22:55:03.000Z","dependencies_parsed_at":"2022-08-14T12:40:58.492Z","dependency_job_id":null,"html_url":"https://github.com/sandervandevelde/NonSDKAzureIoTClient","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sandervandevelde/NonSDKAzureIoTClient","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandervandevelde%2FNonSDKAzureIoTClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandervandevelde%2FNonSDKAzureIoTClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandervandevelde%2FNonSDKAzureIoTClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandervandevelde%2FNonSDKAzureIoTClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandervandevelde","download_url":"https://codeload.github.com/sandervandevelde/NonSDKAzureIoTClient/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandervandevelde%2FNonSDKAzureIoTClient/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264535989,"owners_count":23624404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","iot","mqtt","non-sdk"],"created_at":"2024-11-20T19:41:03.309Z","updated_at":"2025-07-10T05:30:46.359Z","avatar_url":"https://github.com/sandervandevelde.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Demonstration of Azure IoT Hub access without SDK\n\n## Disclaimer\n\nThis repo is just a demonstration regarding the logic needed to communicate against the (limited) MQTT broker capabilities of the Azure IoT Hub.\n\nThis demonstration is not feature complete or production ready.\n\nI personally recommend to use the Azure IoT Device SDKs if possible. \n\nThese are production ready, production tested by many users and devices are resilient against many issues that can occur in the lifetime of an IoT device.\n\n## Deprecated Baltimore certificate? \n\nThis example still shows the use of the now deprecated Baltimore TLS certificate.\n\nPlease check [this post](https://sandervandevelde.wordpress.com/2023/01/25/does-your-azure-iot-edge-ubuntu-device-survive-the-baltimore-certificate-migration/) regarding the TLS certificate replacement. \n\n## Credits\n\nThis repo is inspired by this [blog post](https://www.petecodes.co.uk/connecting-a-raspberry-pi-pico-w-to-microsoft-azure-iot-hub-using-micropython-and-mqtt/) written by my friend Pete Gallagher @pete_codes.\n\n## Demonstrated logic\n\nThe following logic is demonstrated\n\n- Connecting the device to the MQTT broker as part of the IoT Hub\n- Sending device messages\n- Sending user properties alongside of device messages\n- Receiving Direct Methods as event, and responding to it\n- Receiving cloud messages as event\n- Getting cloud messages on startup, being sent while the device was offline\n- Receiving user properties alongside cloud messages\n- Receiving desired properties as event\n- Reading desired properties at the start of the application\n- Sending Reported properties\n\n## Missing logic\n\nThe following logic is missing:\n\n- Supporting another certificate while the baltimore certificate is deprecated soon\n- Creating the SAS token on the device itself so it can be refresh once the current one expires\n- No error handling\n\n## Links\n\n### Docs\n\nhttps://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-mqtt-support\n\n### Samples\n\nhttps://github.com/Azure-Samples/IoTMQTTSample/tree/master/src\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandervandevelde%2Fnonsdkazureiotclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandervandevelde%2Fnonsdkazureiotclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandervandevelde%2Fnonsdkazureiotclient/lists"}