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.
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.
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.
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.
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:
To address these issues, we introduce a new geofence concept while retaining the old one.
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.
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
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.
New REST API methods have been introduced to manage deleted items. Deleted items are retained in the trash for 30 days.
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.
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.
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'
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
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
}
We've implemented some changes to storage containers:
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.
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.
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
}
We enhanced device media transparency with new log message (event code = 28) that is published when the media file is accessed via HTTP.
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:
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.