Below you will find the history of new feature changes to the Tartabit IoT Bridge
endpoint.storageDelete()
function for deleting storage objects.cache.set()
.directToQueue
, if true, request will not be sent via CoAP and will be added directly to the queue for the device for the next time it sends a notification or update.data
to the lwm2m-result event for read operations.values.yaml
for private deployments.metrics/fields
available to collect usage of specific fields in objects like services and endpoints.convert.objectToCbor()
for converting javascript objects to CBOR binary buffers.endpoint.X()
functions where errors were not properly returned and instead a blank object was returned.metrics/status
API has a new parameter resolve=true
which will add the associated trigger, endpoint, or service objects to their respective status return.metrics/status
API now supports limit and sort parameters.imex/import
API now will use real-time API for first 500 items instead of first 50 items before switching to bulk import mode.endpoint.create()
to set endpoint parameters only if an endpoint was passed into the trigger.activity.getAll()
for querying the activity counters in the IoT Bridge.output events
that show the events generated using exec.now()
and exec.sync()
within the trigger.engpoint.update()
and endpoint.updateTags()
will now update the event.endpoint object as well as saving the requested changes. This means that subsequent exec.now()
calls will have the new updated information resulting from these function calls.exec.now()
with an optional appToken
parameter containing an app token from another account to generate cross-account events.k.
prefix to select the key instead of id.generic
service and endpoints for custom applications that can't use other service oriented endpoint strategies.convert.intToHex()
to quickly print a number as a hex string.endpoint.attach()
to attach an endpoint to an event during trigger execution, useful when the service cannot automatically attach an endpoint to an event.endpoint.delete()
for deleting endpoints.email.send()
now supports attaching table data.report.listEntries()
to retrieve a list of entries in a report that match a search query.file
apis for managing file repositoryhistory.one()
now returns null
if no record is found.endpoint.storageGet()
now returns null
if no data is found.cache.set2()
and cache.get2()
that will automatically encode and decode javascript objects reducing the need to read and parse the returns.status()
functions to binary and bit readers to return streaming status.file.info()
to retrieve information about a file in the file repository.file.read()
to read small files directly into a trigger.endpoint lookup
to aid with finding endpoints and not going back and forth from the endpoint list.advanced->files
for managing file inventories.middle-mouse-click
to open many links in new tabs. Works in navigation menu and many of the event viewer
and log viewer
buttons.notes
core-api 1.4.14
core-bootstrap 1.1.15
core-events 1.1.28
core-trigger 1.5.17
endpoint.create()
to create endpoints from triggers.endpoint.storeGet()
and endpoint.storeSet()
to get/set values from endpoint storage.once-event
that fires exactly once after being started, useful for executing logic after importing a solution template.geospatial.geodist()
to calculate the distance between two points.has-tag
custom filter now allows tag key
or key:value
matches to allow for more use cases.missing-tag
custom filter fires the trigger if the associated endpoint does NOT have the specified tag
or tag:value
.has-status-detail
custom filter fires the trigger if it has the specified status detail key or value.missing-status-detail
custom filter fires the trigger if it does not have the status detail key or value.has-endpoint
custom filter to filter for events that have a valid endpoint.email.send()
action to send an email from a trigger.endpoint.searchOne()
action to retrieve a single endpoint.trigger.ratelimit()
action to return true/false if the rate limit conditions are met.core-ui 1.7.11
new page Endpoints/Entrypoints
that shows all available addresses to communicate from devices to your IoT Bridge instance.
new page for geofences
.
look and feel now served from core-api instead of mounted in azure storage (private instance only).
templates now support cloud formation launches.
tag lists have been updated to dropdowns for easier management with large numbers of tag keys and values.
adding and editing tags will now suggest tag keys and values based on your selection.
event viewer has new option for data fields to aggregate and show field distribution.
users can now edit status details directly from the endpoint editor.
tags have been added to alerts to allow for better organization.
generic triggers can now specify a form to provide an enhanced user interface.
generic events will now have proper auto-completion based on analyzing recent event history
endpoints now have button to view any associated storage (expand from the list).
users can now view events for multiple devices by selecting them and choosing View event history
from the Bulk
menu in the endpoint list view.
added support for new trigger custom filters missing-tag
, has-status-detail
, missing-status-detail
, and has-endpoint
.
svc-aws-dynamo-db 1.0.3
svc-aws-iot 1.0.2
svc-aws-kinesis 1.0.2
svc-azure-iot 1.3.22
svc-cdp-bics 1.0.0
svc-gcp-pubsub 1.0.22
svc-geofence 1.0.1
geofence.eval()
to generate geofence events.svc-mongodb 1.0.2
svc-mqtt 1.1.16
svc-udp 1.2.0
udp.send()
can now be used with endpoint keys instead of a remote IP (if endpoints are used).udp.queue()
to queue a packet to be sent after the device sends its next communication.''
and will be derived from the endpoint.history.one()
and history.search()
for finding events from the event history.endpoint.update()
setting params.mqtt-subscribe
that fires when the client subscribes to a topic.mqtt-unsubscribe
that fires when a client unsubscribes from a topic.mqtt.subscribe()
to dynamically subscribe to a new topic.network.isIpInCidrs()
to check if an IP address is within a network.network.splitHostPort()
to split the host and port portion of an address.convert.mccmnc()
to network.decodeMccMnc()
(backwards compatible).trigger.waitReset()
to reset the signal/wait sequence to avoid synchronization issues.date.now()
function to return the current date, accepts a single argument with the timezone for the date.convert.imeisvToimei()
function for converting IMEI formats.seconds before missing
, trace mode
, add tags
, and remove tags
from selected endpoints, or all endpoints matching a query.azure_blob.upload()
and azure_blob.download()
for interacting with blob storage.date.format()
now aceptes a 3rd parameter with the target timezone.endpoint.update()
.Super-Admin
section for platform administrators (private instance only)convert.binReader()
to read arbitray binary buffers.
convert.bitReader()
to read bit-packed structures like ASN.1 UPER encodings
api.post()
, api.put()
, api.delete()
, and api.get()
functions to allow calling APIs within the IoT Bridge to automate provisioning and configuration of the platformdatetime
format for date.format() function to support SQL syntaxhash.crc32()
, hash.crc64()
, hash.crc64signed()
, and hash.sha256()
functions to allow for inline hash generation on input data.on-create
, on-connect
, and on-disconnect
events do better expose the connection lifecycle of a devicelastKnown()
data. Now variables with a ~
will contain a timestamp when a resource was last updateddraft-ietf-tls-dtls-connection-id-05
connection ID supportMicrosoft SQL Server
MySQL
, and PostgreSQL
sql.execute()
and sql.select()
to interact with remote SQL databasessuper
API for future use.trigger
APIs to svc-trigger
.me
query.convert.*
APIs.convert.protobufToObject()
and convert.objectToProtobuf()
for Protobuf transcoding.trigger
APIs from core-api
.fCnt
field for the uplink counter to generic uplink event.translateIds
field to event so events can filter for specific formatting.last known value
to support translateIds
.lwm2m-result
for any async action that has a context supplied to it enabling closed loop processing of write and exec operations.s_remapped
sub-document.json.patchCreate()
and json.patchApply()
functions for manipulating JSON-Patch objects, especially useful with Azure Digital Twins.random.int()
and random.float()
functions.lwm2m-error
event, and replaced with lwm2m-result
event that returns both successes and failures.lwm2m-result
that will be generated on asynchronous calls to read
, write
, exec
, create
, and delete
operations that have a context specified. This is useful for getting guaranteed acknowledgement of an operation if it has been queued waiting for the device to become available.mqtt-publish
that is generated when a device publishes to a topic.mqtt.publish()
that can be used to publish to one or more devices.convert.binToStr()
and convert.strToBin()
functions.convert.delimitedStringToObject()
function with support for arrays of fields.queue.get()
, queue.put()
, and queue.flush()
functions for managing FIFO queues within triggers.trigger.wait()
and trigger.signal()
functions for synchronizing trigger execution.Object.assign()
in javascript engine.exec.now()
events to other accounts.convert.msgPackToObject()
decoder.ArrayBuffer
and DataView
objects in javascript engine.set()
, get()
, update()
, push()
, and delete()
functions.location.geolocate()
function for wifi/cell based geolocation using UnwiredLabs.LORA Uplink
and LORA Join
events to trigger system.lora.downlink()
function to schedule a downlink message to a device.lwm2m.lastKnown()
to retrieve the last known values for all resources within a trigger.resetSearch
to clear search indexes and re-index them.endpoint.updateTags()
for dynamic updates to tags via triggers.string.delimitedStringToObject()
for fast parsing of ASCII delimited payloads.has-tag
, one-of
, contains
, !=
, >
, >=
, <=
, <
write
, writeMulti
, exec
, and create
functions.convert.mccmnc()
function that accepts numerical MCC/MNC codes and translates them into country/network operator strings for easy display.trigger.exit()
function to immediately stop executing a trigger.trigger.reply()
function to return data on bi-directional events that expect a response.azure_iot.twin_retrieve()
to query and return the current device twin for an IoT device.The server certificate for the LWM2M server has been updated, please download the new self-signed certificate to authenticate our servers.
queclink.queue()
for sending commands to Queclink devices on their next communication.library
triggers that can be imported into other triggers to make it easier to manage common functions, global variables, and reduce the copy/pasting between triggers.Azure Maps
and OpenCageData
with support for reverse-geocoding.