Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Please ensure all dependencies are available on the CircuitPython filesystem.
This is easily achieved by downloading
`the Adafruit library and driver bundle <https://github.com/adafruit/Adafruit_CircuitPython_Bundle>`_.

**Board Compatibility:** The following built-in modules must be available: gc, json, ssl, time
**Board Compatibility:** The following built-in modules must be available: gc, json, time

Usage Example
=============
Expand All @@ -74,8 +74,6 @@ To create an Azure IoT Hub instance or an Azure IoT Central app, you will need a
ESP32 AirLift Networking
========================

*NOTE* currently the ESP32 AirLift is not supported due to the requirment of `ssl`, which is only on boards with native WiFi.

To use this library, you will need to create an ESP32_SPI WifiManager, connected to WiFi. You will also need to set the current time, as this is used to generate time-based authentication keys. One way to do this is with the following code:

.. code-block:: python
Expand All @@ -96,7 +94,7 @@ To use this library, with boards that have native networking support, you need t

.. code-block:: python

pool = socketpool.SocketPool(wifi.radio)
pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
ntp = adafruit_ntp.NTP(pool, tz_offset=0)

# NOTE: This changes the system time so make sure you aren't assuming that time
Expand Down
13 changes: 6 additions & 7 deletions adafruit_azureiot/device_registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
"""

import json
import ssl
import time

import adafruit_logging as logging
Expand Down Expand Up @@ -45,8 +44,8 @@ class DeviceRegistration:
# pylint: disable=R0913
def __init__(
self,
socket,
iface,
socket_pool,
ssl_context,
id_scope: str,
device_id: str,
device_sas_key: str,
Expand Down Expand Up @@ -74,8 +73,8 @@ def __init__(
self._operation_id = None
self._hostname = None

self._socket = socket
self._iface = iface
self._socket_pool = socket_pool
self._ssl_context = ssl_context

# pylint: disable=W0613
# pylint: disable=C0103
Expand Down Expand Up @@ -202,8 +201,8 @@ def register_device(self, expiry: int) -> str:
client_id=self._device_id,
is_ssl=True,
keep_alive=120,
socket_pool=self._socket,
ssl_context=ssl.create_default_context(),
socket_pool=self._socket_pool,
ssl_context=self._ssl_context,
)

self._mqtt.enable_logger(logging, self._logger.getEffectiveLevel())
Expand Down
13 changes: 6 additions & 7 deletions adafruit_azureiot/iot_mqtt.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import gc
import json
import ssl
import time

import adafruit_minimqtt.adafruit_minimqtt as MQTT
Expand Down Expand Up @@ -139,8 +138,8 @@ def _create_mqtt_client(self) -> None:
client_id=self._device_id,
is_ssl=True,
keep_alive=120,
socket_pool=self._socket,
ssl_context=ssl.create_default_context(),
socket_pool=self._socket_pool,
ssl_context=self._ssl_context,
)

self._mqtts.enable_logger(logging, self._logger.getEffectiveLevel())
Expand Down Expand Up @@ -326,8 +325,8 @@ def _get_device_settings(self) -> None:
def __init__(
self,
callback: IoTMQTTCallback,
socket,
iface,
socket_pool,
ssl_context,
hostname: str,
device_id: str,
device_sas_key: str,
Expand All @@ -347,8 +346,8 @@ def __init__(
:param Logger logger: The logger
"""
self._callback = callback
self._socket = socket
self._iface = iface
self._socket_pool = socket_pool
self._ssl_context = ssl_context
self._auth_response_received = False
self._mqtts = None
self._device_id = device_id
Expand Down
10 changes: 8 additions & 2 deletions examples/azureiot_esp32spi/azureiot_central_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -103,9 +103,15 @@

# pylint: enable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTCentralDevice(
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
pool,
ssl_context,
secrets["id_scope"],
secrets["device_id"],
secrets["device_sas_key"],
)


Expand Down
10 changes: 8 additions & 2 deletions examples/azureiot_esp32spi/azureiot_central_notconnected.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -99,9 +99,15 @@

# pylint: enable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTCentralDevice(
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
pool,
ssl_context,
secrets["id_scope"],
secrets["device_id"],
secrets["device_sas_key"],
)

# don't connect
Expand Down
10 changes: 8 additions & 2 deletions examples/azureiot_esp32spi/azureiot_central_properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -100,9 +100,15 @@
# * adafruit-circuitpython-requests
from adafruit_azureiot import IoTCentralDevice # pylint: disable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTCentralDevice(
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
pool,
ssl_context,
secrets["id_scope"],
secrets["device_id"],
secrets["device_sas_key"],
)


Expand Down
10 changes: 8 additions & 2 deletions examples/azureiot_esp32spi/azureiot_central_simpletest.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -101,9 +101,15 @@
# * adafruit-circuitpython-requests
from adafruit_azureiot import IoTCentralDevice # pylint: disable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTCentralDevice(
socket, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
pool,
ssl_context,
secrets["id_scope"],
secrets["device_id"],
secrets["device_sas_key"],
)

print("Connecting to Azure IoT Central...")
Expand Down
6 changes: 4 additions & 2 deletions examples/azureiot_esp32spi/azureiot_hub_directmethods.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -97,8 +97,10 @@

# pylint: enable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])


# Subscribe to direct method calls
Expand Down
6 changes: 4 additions & 2 deletions examples/azureiot_esp32spi/azureiot_hub_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -95,8 +95,10 @@
# * adafruit-circuitpython-requests
from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])


# Subscribe to cloud to device messages
Expand Down
6 changes: 4 additions & 2 deletions examples/azureiot_esp32spi/azureiot_hub_simpletest.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -95,8 +95,10 @@
# * adafruit-circuitpython-requests
from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])

print("Connecting to Azure IoT Hub...")

Expand Down
6 changes: 4 additions & 2 deletions examples/azureiot_esp32spi/azureiot_hub_twin_operations.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import neopixel
import rtc
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
import adafruit_connection_manager

# Get wifi details and more from a secrets.py file
try:
Expand Down Expand Up @@ -97,8 +97,10 @@
# * adafruit-circuitpython-requests
from adafruit_azureiot import IoTHubDevice # pylint: disable=wrong-import-position

pool = adafruit_connection_manager.get_radio_socketpool(esp)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(esp)
# Create an IoT Hub device client and connect
device = IoTHubDevice(socket, esp, secrets["device_connection_string"])
device = IoTHubDevice(pool, ssl_context, secrets["device_connection_string"])


# Subscribe to device twin desired property updates
Expand Down
14 changes: 9 additions & 5 deletions examples/azureiot_native_networking/azureiot_central_commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import time

import rtc
import socketpool
import wifi

import adafruit_connection_manager
import adafruit_ntp
from adafruit_azureiot import IoTCentralDevice
from adafruit_azureiot.iot_mqtt import IoTResponse
Expand All @@ -21,11 +21,13 @@
print("Connecting to WiFi...")
wifi.radio.connect(secrets["ssid"], secrets["password"])

pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(wifi.radio)

print("Connected to WiFi!")

if time.localtime().tm_year < 2022:
print("Setting System Time in UTC")
pool = socketpool.SocketPool(wifi.radio)
ntp = adafruit_ntp.NTP(pool, tz_offset=0)

# NOTE: This changes the system time so make sure you aren't assuming that time
Expand Down Expand Up @@ -69,10 +71,12 @@


# Create an IoT Hub device client and connect
esp = None
pool = socketpool.SocketPool(wifi.radio)
device = IoTCentralDevice(
pool, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
pool,
ssl_context,
secrets["id_scope"],
secrets["device_id"],
secrets["device_sas_key"],
)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
import time

import rtc
import socketpool
import wifi

import adafruit_connection_manager
import adafruit_ntp
from adafruit_azureiot import (
IoTCentralDevice,
Expand All @@ -25,11 +25,13 @@
print("Connecting to WiFi...")
wifi.radio.connect(secrets["ssid"], secrets["password"])

pool = adafruit_connection_manager.get_radio_socketpool(wifi.radio)
ssl_context = adafruit_connection_manager.get_radio_ssl_context(wifi.radio)

print("Connected to WiFi!")

if time.localtime().tm_year < 2022:
print("Setting System Time in UTC")
pool = socketpool.SocketPool(wifi.radio)
ntp = adafruit_ntp.NTP(pool, tz_offset=0)

# NOTE: This changes the system time so make sure you aren't assuming that time
Expand Down Expand Up @@ -73,10 +75,12 @@


# Create an IoT Hub device client and connect
esp = None
pool = socketpool.SocketPool(wifi.radio)
device = IoTCentralDevice(
pool, esp, secrets["id_scope"], secrets["device_id"], secrets["device_sas_key"]
pool,
ssl_context,
secrets["id_scope"],
secrets["device_id"],
secrets["device_sas_key"],
)

# don't connect
Expand Down
Loading