import json
from spotflow_device import DeviceClient
client = DeviceClient.start(device_id="weatherstation001",
provisioning_token="secret", db="spotflow.db")
sender = client.create_stream_sender()
payload = json.dumps({"temperatureCelsius": 21.6})
sender.send_message(payload.encode())
Spotflow Device SDK is installed on your device and integrated with your device SW, allowing your device to use all platform features without extra coding.
The secret used to connect the device to the platform can be created via API and embedded into the device during the manufacturing process. Once the device is deployed to the field, it automatically connects to the platform, so no extra configuration in the field is needed.
Devices can be connected directly to the cloud or use Spotflow IoT gateway. The gateway is a software component that can run on any server within your local network.
Devices are connected to the platform via a stateful MQTT connection that is fully managed by the Device SDK. The SDK handles situations when the connection is lost, connectivity is unreliable, or there is low bandwidth.
The platform helps you to collect data from your devices via Spotflow SDK, persist them securely and reliably in the cloud, and route the data to various storages, databases, message queues, or your apps.
The platform stores all incoming data to the platform's object storage or to your own. Data is automatically deduplicated and organized into folders according to your configuration.
The platform supports any data format that you use and does not limit the size of it. You can send a few bytes of JSON as well as tens of gigabytes of video recording.
Spotflow Device SDK is installed on your device and integrated with your device software, allowing your device to use all platform features without extra coding.
It provides device-side data buffering to ensure that data is not lost in case of power failure or unreliable connection.
Priority data is always sent first to ensure that it is available for your business-critical applications.
Need to store data in your company data lake? Or do you want to keep updating Postgresql, which you use as a storage backend of your app?
The platform is designed to be easily integrated with external software in a few clicks.
Send custom messages to devices.
You can remotely instruct devices to run functions within the device software by sending messages. Restart the device, or ask for more logs? It's up to you.
A common example use case for cloud-to-device messaging is remote restart. You can do it from anywhere in the world by clicking a button.
Sending all the logs to the cloud is ineffective in terms of cost and resources. However, if your device starts misbehaving, you need detailed logs to troubleshoot. Simply ask your device to send the recent logs to the cloud so you can start fixing the issue.
List all your devices managed by the platform. Understand your device status and check its activity. View statistics on connectivity changes, data transferred to the cloud, and more.
Grafana is part of all subscriptions. You can build your dashboards and share them with anyone. With just a few clicks, you can configure the platform to route incoming telemetry data into it, keeping your dashboards always up to date.
Already using visualization tools in your company? You can use visualization tools you already have. Grafana, Tableau, PowerBI, Looker, JupyterLab, and more.
Spotflow platform has first-class support for OpenTelemetry (OTEL). You can route logs, traces, and metrics to your observability backend to monitor your fleet. There are hundreds of backends and counting that support OTEL.
Select devices you want to monitor or set alerting on top of data streams. A monitored data stream triggers an alert in case any device recently stopped sending data to it.
Create multiple notification targets that represent your teams monitoring the solution or your incident management system.
Specify the duration when the platform considers your device unavailable and triggers an alert. Depending on your solution requirements, it can be set from minutes to days.
You can configure a few devices individually or create a configuration template that always keeps a group of your devices with the current configuration.
Get real-time reports from your devices to check current configuration and monitor custom attributes like serial number, OS version, and location.
You can configure devices based on the tags you set up in the cloud environment, such as model, hardware version, or environment. This means you can apply configuration changes to a selected group of devices.
Depending on your needs, you can choose from multiple deployment options. From a multitenant instance that is fully managed by Spotflow, your private instance managed by us, or a private instance you have fully under your control. All are powered by the secure Microsoft Azure cloud.
The platform offers low-level interfaces to help you integrate it with your ecosystem. Command-line interface to integrate with your CI/CD or the SDK and API to build your apps.
Customize the Spotflow portal to your company branding and manage access to it using your Active Directory.
Strong identity verification is ensured using a zero-trust security model for communication between devices and the platform. TLS 1.2+ secures data in transit, and 256-bit AES protects data at rest. Users interacting with the platform can be authenticated by industry-standard identity providers, including MFA, or use existing accounts from 3rd party identity providers. Administrators are provided with tools for configuring granular authorization rules, encouraging the principle of least privilege.
The platform's design allows to gracefully handle transient network issues, partial failures of the underlying infrastructure, or unexpected traffic spikes. All services providing management capabilities for users are deployed in multiple replicas for high availability. Platform architecture allows the introduction of new features with minimal risk of breaking existing functionality. Updates and fixes are deployed with zero downtime. All data is stored in multiple replicas within one data center or geographically distributed for maximum data durability.
Horizontal scalability is embedded into the platform's architecture. It can support a few devices as well as hundreds of thousands while keeping the same performance. Capacity is adjusted dynamically with regard to the current load. Components of the platform are scaled independently, which allows scaling the platform precisely for the customer's workload in a cost-efficient manner.
The platform is designed to seamlessly fit into your existing ecosystem thanks to the open standards and best engineering practices. From industry-standard transport protocols, data formats, and storage to common application interfaces. This approach is followed by not only externally facing APIs but also by platform internals, which allows extending dedicated platform instances with your custom functionality.
All management APIs provide strong consistency guarantees. Sending data from devices into the platform is an asynchronous process, so there is a short delay between the platform’s frontend accepting data from devices and the moment when the data is available in the cloud. However, we guarantee per-device in-order delivery of data and the storages used for device data is strongly consistent. Cloud-to-device operations provide strong or eventual consistency, depending on the method chosen by the user.
For us at Lely, the satisfaction of our customers is a key. Thanks to the implementation of the Spotflow IIoT platform, we gained the opportunity to offer our customers additional products and services. As an example, our customers can now individualize the care of their animals and monitor their health condition 24/7 from anywhere in the world.
We were able to introduce our paid subscription Horizon Farm management solution based on this IoT platform in >60 countries absorbing huge amounts of real-time IoT data of the machines and animals for over 90% of our customers worldwide in a scalable and reliable way. We continue to develop and scale all our Data applications build on top of this foundation.
Spotflow IIoT platform ensures that data is gathered from more than 30,000 machines in a near real-time manner. The data is securely sent to and stored on centralized cloud-based storage, which makes it immediately accessible to our teams working on various innovative projects. Our key requirement was to make this process fully autonomous and robust because we couldn’t keep supporting it manually, given the size of our fleet.
On top of data ingestion, we can remotely configure and monitor all machines using simple tools with the ultimate goal of making the process fully automated in the future, such that the need to visit them physically is dramatically reduced. For example, we can detect disruptions to our data processing pipelines and resolve issues when they occur, if not before.
Our goal is to provide the best coffee solutions to our customers. Thanks to the implementation of the Spotflow IIoT platform, we were able to start collecting data from our machines around the world continuously. Now we have a perfect overview of the state and condition of all devices and the behavior of our customers.
We understand the workload of all appliances, customer preferences, and consumption of individual types of coffee, so we can constantly improve our services, respond to trends and predict consumption. Also, we can optimize the amount of roasted coffee delivered and eliminate losses caused by coffee spoilage.
I have been working with the platform for over three years on its applications in the field. I witnessed the creators unable to stop discussing the topics of distributed systems, clouds, and technologies regardless of place, occasion, and weather. :). Yet they consistently succeeded in breaking out of their bubble and, with curiosity, listened and discussed with me the "real world" problems of our customers. They were always looking for a solution that might not be the easiest but the right one.
Over the past years, the platform went through a period of dynamic development, which wasn't always easy, but now I can confidently say that it has matured enough. The team has many ideas for what to build next, yet the foundations are solid.