All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for
astarte-message-hub
version0.7.0
.
- Drop support
astarte-message-hub
version0.6.x
and prior.
- Support for
astarte-message-hub
version0.6.1
.
- The MQTT samples
datastreams
,example_device
andevent_listener
have been merged into a single example.
- Client certificates are now validated through the REST APIs instead of checking their expiration. Checking only the certificate expiration would lead to deadlocks since Astarte could have rendered the certificate invalid without notifying the device.
- A new get started guide.
- Updated the examples and relative readme files.
- Streaming of empty arrays from the device to Astarte is now allowed.
- Dependency
paho-mqtt
is locked to v1.6.1 due to incompatibility with the latest version.
- Adding or removing interfaces from a device while the device is connected. If an interface is added or removed the new device introspection is immediately sent to Astarte.
- GRPC transport implementation. Connection to the Astarte message hub through GRPC is provided
by the new class
DeviceGrpc
.
- Callbacks should be set using the
set_events_callbacks
method instead of setting the attributes directly. asyncio
loop is argument ofset_events_callbacks
instead of class constructor.Device
class is now an abstract class representing a generic device with no transport implementation. The functionality previously provided byDevice
is now provided byDeviceMqtt
with identical APIs.
- False values on boolean endpoints for server owned interfaces are correctly processed.
- The following exceptions:
ValidationError
,PersistencyDirectoryNotFoundError
,InterfaceFileNotFoundError
,InterfaceFileDecodeError
,InterfaceNotFoundError
,JWTGenerationError
. - Persistency support for properties. Server and device properties values are now stored in
non volatile memory.
- The new
AstarteDatabase
abstract class has been created. This class can be derived to provide a custom database implementation for caching Astarte properties. - An optional
database
parameter has been added to the constructor of theDevice
class. It can be used to pass a custom database implementation that will be used to cache properties. If no custom database is specified, a native SQLite database will be used to store the properties in a subdirectory of thepersistency_dir
.
- The new
- Sending zero payloads for endpoints in property interfaces was unsetting the property.
- Drop support for Python 3.7.
- Initial Astarte device SDK release