Scheduled removal of the parameters: image.name and image.timestamp.
Date of deletion: February 27, 2024

Now those values stored in fields "name" and "created" of the the media.image object parameter.

    14 days later

    As announced by kial , now parameters image.name and image.timestamp are no longer added to messages that already contain the media.image media file parameter in the new form.

      a month later

      We adjusted the output of our JSON generating engine to prevent escaping of forward slash ‘/’ inside string values.

      Forward slash character escaping is not required by JSON format and if you are parsing JSON by any modern parsing library this change will not be visible for you. However if you rely on pure textual output from a REST API call and parse our JSON somehow manually in the code you may need to adjust your parsing scheme.

        10 days later

        The process of resending commands in case of no response from devices on the TCP and MQTT channels has been updated. Previously, commands were resent without checking that the device connection was still active. Now, commands are resent only if the server has received data from the device since the command was initially sent.
        This change aims to improve the accuracy of assessing communication availability with the device, to avoid sending traffic to dead connection.

        a month later

        Update to Geofence Experience

        We have rolled out an update that significantly enhances the geofence experience. Previously, geofences were maintained within plugin or calculator configurations, leading to several issues:

        • Updating a single geofence required updating the entire list of geofences.
        • Sharing geofences between calculators was not possible.

        To address these issues, we introduce a new geofence concept while retaining the old one.

        Key Features of the New Geofence System

        • Independent Entity: A geofence is now an independent entity characterized by an id, name, geometry (polygon, circle, or corridor), and metadata.
        • Enhanced Integration: Geofences can be linked with various components such as plugins, calculators, or streams.
          • Streams: Linked geofences enable selective message transmission within or outside designated geofences.
          • Plugins: Linked geofences enrich message parameters with geofence names and metadata.
          • Calculators: Linked geofences are utilized within selectors, validators, and counters.

        Additional Features

        • Grouping: Geofences can be organized into groups, similar to the grouping of devices.
        • Access Management: Geofence access can be managed through ACLs.
        • Subaccount Access: Access to geofences from unrelated subaccounts can be granted.
        • Priority System: Geofences have a priority range from 0 to 100, with higher priority geofences being checked first in case of intersections.

        This update enhances your telematics solution by incorporating robust geocoding functionality, improving usability, and enabling more flexible and powerful geofence management.

        You can find more technical details here.

        12 days later
        • Edited

        We have added a new REST API method to manually check whether a point is inside or outside selected geofences.
        Corresponding REST API method:

        HTTP Method: GET
        Endpoint: gw/geofences/{geofences-selector}/hittest

        • Edited

        Media traffic in channels is now measured separately from standard channel traffic for telematics data and is not limited by channel restrictions.

        From now on, we measure and limit combined in/out media traffic on a per-device basis. With much higher limits compared to telematics traffic, this makes video telematics features much more affordable for any flespi tariff. Even in the Free tariff, we allow 100 MB of media traffic per minute for each device.

        When this limit is exceeded, the device will temporarily block media (video and photo) functionality only, leaving normal telematics (messages, commands, etc) functionality operating in the usual mode.

        19 days later
        • Edited

        New REST API methods have been introduced to manage deleted items. Deleted items are retained in the trash for 30 days.

        Methods

        • Fetch deleted items:

          • GET /platform/deleted/{items-selector}
        • Fetch logs of deleted items:

          • GET /platform/deleted/{items-selector}/logs
        • Restore deleted items:

          • POST /platform/deleted/{items-selector}/restore

        Recently deleted items retain a backup that can be used for restoration. The restored item inherits the ID, storage, and properties of the original item.

        Limitations

        The restoration process requires a Master token.

        There are some limitations when restoring deleted channels. A restored channel will attempt to use the same URI, which may already be in use. If the URI is occupied, the channel will not be restored.

        The restoration process is performed under the subaccount to which the item belongs. If the subaccount is fully deleted, you must first restore the subaccount before operating within it.

        Supported Item Types

        • Devices
        • Channels
        • Streams
        • Plugins
        • Calcs
        • Groups
        • Modems
        • Subaccounts
        • Webhooks

        Examples

        • Restore all deleted devices:

            curl -X POST --header 'Authorization: FlespiToken XXXX' 'https://flespi.io/platform/deleted/origin%3Dgw%2Fdevices%2F*'
        • Restore a channel with ID 123:

            curl -X POST --header 'Authorization: FlespiToken XXXX' 'https://flespi.io/platform/deleted/gw%2Fchannels%2F123/restore'
        10 days later

        We've added a configurable delay before sending a webhook request. It could be helpful in some cases where the peer is not ready to process the request immediately.

          YuryAheichyk 1NCE modem has been updated, added Source address optional configuration field, which allows to check the SMS sender when receiving a message additionally

            13 days later
            • Edited

            We have added the ability to disable devices. This feature can help mitigate channel loading bursts caused by channel inaccessibility or connectivity issues. Once a device is disabled, existing connections will be closed and new connections will be rejected. Only disabled devices can be moved between subaccounts.

            Corresponding REST API method:

            HTTP Method: PUT

            Endpoint: gw/devices/{devices-selector}

            Request body:

            {
              "enabled": false
            }
              14 days later

              We've implemented some changes to storage containers:

              1. You can attach custom metadata to storage containers. Image Preview
              2. We removed a restriction that prevented access to subaccount's containers or CDNs with the owner's token.
              3. You can grant access to the containers to subaccounts.
                6 days later
                • Edited

                We've extended the functionality of the storage containers by publishing all posted messages to the MQTT bus. This way, you can subscribe to the topic flespi/message/storage/containers/+ to receive all new container messages.

                  15 days later

                  We are deprecating Snapshots functionality in devices.

                  If you were using this system to retrieve device messages snapshots please make sure you switch to GET /gw/devices/XXX/messages call instead. The call without parameters will return all messages currently stored in the device in the same format as snapshot, just not archived.

                  On Monday, August 19 any REST API call to snapshots will return deprecated warning.

                  On Monday, September 23 REST API calls with access to snapshots will be not available to use anymore.

                    a month later

                    We have extended the REST API method by adding an optional command ID. This makes it convenient to query the result of a specific command using the following endpoint:

                    GET /gw/devices/{devices-selector}/commands-result/{command-id}

                    Additionally, the ability to fetch multiple command results remains available:

                    GET /gw/devices/{devices-selector}/commands-result

                    We have introduced the ability to assign geofences to individual devices, simplifying configurations on top of flespi. Now, each device can have its own unique set of geofences. For example, a plugin can combine its own assigned set of geofences with the device's geofence set.

                    GET, POST, DELETE /gw/devices/{device-selector}/geofences/{geofence-selector}

                    We will also support such assignments for calculators.

                    We have added an alternative set of parameters to the hit test geofences REST API method.

                    The first set tests whether the coordinate hits the selected geofences.

                    GET /gw/geofences/{geofences-selector}/hittest
                    {
                     "lat": 0,
                     "lon": 0
                    }

                    The second set returns a set of geofences that are within the specified boundary.

                    GET /gw/geofences/{geofences-selector}/hittest
                    {
                     "max_lat": 0,
                     "max_lon": 0,
                     "min_lat": 0,
                     "min_lon": 0
                    }
                    11 days later

                    We've implemented some changes to CDNs:

                    1. You can attach custom metadata to CDN.
                    2. You can grant access to the CDNs to subaccounts.
                    5 days later

                    We enhanced device media transparency with new log message (event code = 28) that is published when the media file is accessed via HTTP.

                      14 days later

                      For those who are using method POST /gw/devices/{device-id}/calculate we have important change that requires from your an action.

                      There are 2 variants how to trigger this API call and provide to flespi configuration for calculation:

                      1. Providing all configuration for counters, selectors, validators directly in the REST API call.
                      2. Providing calc_id (ID of calculator) from which this selectors, counters, validators will be used during the actual calculation.

                      We are deprecating a second variant of data provisioning in this API call - when calculation configuration is provided via referenced calc_id. On January 14, 2025 an attempt to use this method with calc_id in the parameters will return an error. From today when you are calling this REST API method with second variant configuration it adds deprecated warning into REST API call response.

                      Please modify your integration and provide into this API method all selectors, counters and validation configuration directly. You can add a GET /gw/calculators/{calc_id} call to retrieve calculator configuration beforehand and supplying its parameters to the calculation call. Or just hard code the configuration to calculate in the code directly.