We plan to get rid of duplicate messages if the stream is subscribed to both the device and the channel. In this case, only the device message will be sent. The update will take place on December 8th.

a month later

If you want to restrict access to devices only from groups, you must use the newly added in-groups selector instead of all in the token ACL.

a month later
  • Edited

We found out that device groups are becoming quite popular tool to simplify and automate bulk management of device connections with various plugins, streams and calculators. That's why we decided to increase the number of included device groups by an order of magnitude per each Commercial Plan:

This change extends flespi functionality and does not add any extra fee. We already implemented it and welcome our commercial users to enjoy more device groups available in their plan.

    We enabled the possibility to store JSON arrays in device telemetry. Previously message parameters that contained JSON array as a value were skipped from telemetry publications and now this feature is unlocked.

    Mostly the change will be visible for users of BLE-enabled devices.

    a month later

    shal
    We discovered that we left the method by mistake during this update. The method is GET gw/channel-protocols/{selector}/commands/{selector}. We will mark it as deprecated and give it one month to transition to the GET gw/channel-protocols/{selector}/device-types/{selector}?fields=commands method.

      5 days later

      We are on the half way to start flespi operations from the second datacenter.

      Second datacenter will contain a set of all flespi services but with dedicated set of IP addresses to split traffic between datacenters. Thus you may need to adjust IP whitelisting configuration on your side. Please update any such configuration before next week (up to April 3).

      For those who do not use any kind of IP whitelisting there won't be any noticable changes.

      For those who protected their integration with IP filter (this is mostly related to streams and some channels) please be informed that flespi may use alternative source IP for its requests towards your integration. Thus any kind of firewall or IP filter where you previously configured 185.213.2.10 as whitelisted IP address please also add 185.213.2.110 which is an alternative source IP for flespi services or just specify our whole subnet 185.213.2.0/24 which is operated solely by flespi.

      For those who are filtering traffic on MNO towards flespi channel's IP 185.213.2.30 please be aware that starting from next week channel host may also resolve to an alternative address 185.213.2.130.

      2 months later

      We have resolved the issue where two channels at the same hierarchy level were simultaneously processing TCP connections from a single device. Now, when a connection is established to any channel, it will break the existing connection.

      16 days later

      We have added a new field to the device called "groups," which contains a list of groups that the device is a member of. The field can be used to select devices based on group name or ID. The field format is as follows:

      [
        {"id": 1, "name": "group1"},
        {"id": 2, "name": "group2"},
      ]

      Examples:

      • To get a list of groups: GET /gw/devices/all?fields=groups
      • To send a command to all members of a group (by name): POST /gw/devices/groups.name=group1/commands
      • To send a command to all members of a group (by ID): POST /gw/devices/groups.id=1/commands
      • To send a command to all devices that are not in any group: POST /gw/devices/groups=[]/commands
      4 days later
      • Edited

      We have improved the response format of the GET gw/channels/{ch-selector}/idents/{idents-selector} method. It now includes the device ID and the last time when this ident was active:

      [...{
            "channel_id": 123,
            "device_id": 321,
            "ident": "1234567890123456",
            "last_active": 1686040736.261311,
            "source": "127.0.0.1:48993" 
      },...]

      The same information is available in the MQTT state. The topic format is: flespi/state/gw/channels/XXX/idents/YYY

      adsa We have added new fields to the device that function similarly to the previously added groups field. The newly added fields include: plugins, streams and calcs.

      • adsa replied to this.
        7 days later

        We have enhanced the error output for REST requests. The error message now includes the specific field or selector that caused the error.:

        GET https://gw.flespi.io/gw/channels/all?fields=xxxx'
        {"result":[],"errors":[{"field":"xxxx","reason":"field is not allowed"}]
        7 days later

        adsa We have supported plugin fields. It is useful to filter out devices by field value:
        GET gw/devices/plugins.fields.serial=XXXX

        8 days later

        We have enhanced the webhooks functionality by introducing new features:

        HTTP Requests chain: Now, you can send up to 5 sequential HTTP requests for each message. The responses from the finished requests will be available for the subsequent requests.

        Requests Validation Expression: Each request includes a validation expression. If the expression fails, several options are available to handle the situation.

        22 days later

        Similar to what was initially done with channels we implemented access to raw traffic for streams. Now you can explore full traffic exchange between flespi and 3rd party platform. Access to traffic is available for all types of streams: AWS, Azure, Google Pub/Sub, HTTP, MQTT, AMQP and so on.

        a month later

        We have added warnings to logs if messages from devices contain invalid data or cannot be registered. Such warnings are yellow and mean:

        • parameters quantity max limit - the number of parameters in the message exceeds the maximum limit
        • timestamp parameter invalid - the timestamp parameter in the message is out of range of valid values
        • position related parameters (latitude, longitude, altitude, speed) filtered out from the message due to invalid values - position related parameters have been discarded, since having invalid values

        We implemented device media storage. This is a separate storage where flespi telematics hub can automatically place files upon reception from device. Some examples of such files are: images and video data from connected camera, ddd files from connected tachograph and so so on.

        Currently all pictures received from devices are automatically placed on this storage and public link to the file is added to the message JSON. To test how it works you may use a channel with telegram protocol.

        Stored media data can affect your monthly bill. To control it you may fine-tune media files TTL and media files rotation size settings in device properties:

        2 months later
        • Edited

        New REST API methods to control device connections were added:

        • Get a list of device connections:

          HTTP Method: GET
          Endpoint: gw/devices/{dev-selector}/connections/{conn-selector}
          Example Response:

               "result": [
                 {
                   "channel_id": XXX,
                   "meta": null,
                   "id": 2757994813524,
                   "source": "127.0.0.1:15659",
                   "established": 1699447504.38722,
                   "secondary": false,
                   "device_id": YYYY,
                   "ident": "IMEI"
                 }
               ]
             }

          Each connection has its own MQTT topics:
          Connection state topic: flespi/state/gw/devices/{device-id}/connections/{conn-id}
          Connection counters topic: flespi/state/gw/devices/{device-id}/connections/{conn-id}/counters

          {
            "bytes_in": 1844,
            "bytes_out": 130,
            "commands_executed": 3,
            "commands_failed": 0,
            "errors": 0,
            "messages": 9,
            "messages_skipped": 0,
            "settings_processed": 2,
            "warnings": 0
          }
        • Close device connections:
          HTTP Method: DELETE
          Endpoint: gw/devices/{dev-selector}/connections/{conn-selector}

        6 days later
        21 days later

        We have expanded the capabilities of the Convert message option in Streams. Now, you can also specify the parameters that will be added to the final message