5 October, 2023

[flespi conf 2023] Core flespi entities: channels, devices, plugins

Our Software Engineer, Nadzeya Mikhailava speaks about the main flespi entities.

During the flespi conf 2023, we presented more than 6 hours of practical insights from our developers' team. In a series of posts, we’ll share the key presentations in case you missed the event. This will help you re-discover the platform, enhance your knowledge, and improve practical skills, even if you’re an experienced user. If you’re taking your first steps with flespi, this content will be a great starting point to grasp the core terms and definitions.

You know that flespi, as a telematics gateway, receives, parses, registers, and stores the data coming from connected devices. Understanding how data flows from layer to layer in this scheme is crucial. Channels, devices, and plugins play integral roles in this process.

A channel serves as the entry point for data, with a specific protocol acting as the transport. It provides a unique host and port for device connection. A message comprises telemetry parameters expressed in JSON format, tied to a specific timestamp. Understanding the main parameters and their specific values is essential.

Always keep in mind that you can comprehend what’s happening inside a channel using our Toolbox, implemented to add transparency to our platform. While you can always reach us in chat, debugging becomes easier with logs and a traffic viewer displaying all the data flow details, such as connections, disconnections, raw packets, and responses.

In flespi, a device is a digital copy of your physical device (here we can mention that flespi is a device-centric platform). You might wonder why you should create devices assigned to a channel. The reasons are plentiful:

For instance, consider message storage. Each device can store up to 10 GB of data and an impressive 10 years of history, a significant advantage compared to storing data in a channel, which functions solely as a buffer. Another strength is telemetry, enabling the retrieval of the last known values, initializing the device's state, and filling gaps in messages using these values. Commands can be sent in real-time, in a queue, and even by SMS. Settings, though device-specific, help with remote configuration without a direct device connection to your PC.

Plugins play a pivotal role by transforming messages before registration into the device and before they’re published. They allow various operations, including modifying information, adding new calculator parameters, incorporating missing parameters with values from devices’ telemetry, static fields, and applying reverse geocoding

Additionally, you can perform custom parsing of parameters using your own code. In the video you'll see some interesting use cases of utilizing plugins, especially those involving the attachment of multiple plugins in a chain for one device and understanding their priority.

Stay tuned! In our next post, we will share another presentation by Jan Bartnitsky, who spoke about flespi integrations.