APIs

Devices and protocols

Helpers for device, plant, and telecom payloads. They parse and build envelopes; they do not open sockets by themselves. Wire a matching connector (MQTT, CoAP, OPC UA, BACnet/IP, SIP, SMPP) as the source or destination, then use these calls inside the transform.

const env = sirius.mqtt.parse(sirius.json.decode(msg.raw));
if (!sirius.mqtt.topic_match("orders/+/created", env.topic)) {
  result = { message: msg.raw };
} else {
  result = { message: env.payload };
}

This page lists 44 symbols. The same catalog drives Studio autocomplete.

See also: Overview · Core · Standards · I/O and runtime

sirius.mqtt

SymbolSignatureReturnsSummary
sirius.mqtt.buildsirius.mqtt.build(envelope)objectvalidate + build a canonical publish envelope (errors on bad topic/qos)
sirius.mqtt.parsesirius.mqtt.parse(envelope)objectnormalize a loose publish envelope into { topic, qos, retained, payload, properties }
sirius.mqtt.props_getsirius.mqtt.props_get(properties, key)stringread an MQTT5 user property by key (object or [{key,value}] form)
sirius.mqtt.props_setsirius.mqtt.props_set(properties, key, value)objectset an MQTT5 user property, returning the updated property object
sirius.mqtt.qos_validsirius.mqtt.qos_valid(qos)boolreport whether a QoS value is 0, 1, or 2
sirius.mqtt.topic_matchsirius.mqtt.topic_match(filter, topic)boolmatch an MQTT subscription filter (+/# wildcards) against a topic
sirius.mqtt.topic_validsirius.mqtt.topic_valid(name, is_filter?){ ok, error? }validate a topic name, or a subscription filter when is_filter=true

sirius.coap

SymbolSignatureReturnsSummary
sirius.coap.buildsirius.coap.build(message)string (base64)encode a structured message into a base64 CoAP datagram
sirius.coap.code_namesirius.coap.code_name(code)stringrender a CoAP code as a method name or dotted c.dd form
sirius.coap.code_numsirius.coap.code_num(name)intparse a method name / dotted code / integer into a CoAP code number
sirius.coap.content_formatsirius.coap.content_format(value)stringint`
sirius.coap.option_namesirius.coap.option_name(number)stringreturn the registered name for a CoAP option number
sirius.coap.parsesirius.coap.parse(raw_b64)objectdecode a base64 CoAP datagram into a structured message
sirius.coap.validatesirius.coap.validate(raw_b64){ ok, error? }structurally validate a base64 CoAP datagram

sirius.opcua

SymbolSignatureReturnsSummary
sirius.opcua.nodeid_formatsirius.opcua.nodeid_format(node_id)stringrender a NodeId object back to a string
sirius.opcua.nodeid_parsesirius.opcua.nodeid_parse(node_id)objectparse an OPC UA NodeId string into { ns, type, id }
sirius.opcua.samplesirius.opcua.sample(sample)objectnormalize/validate a Sample object
sirius.opcua.status_namesirius.opcua.status_name(code)stringmap an OPC UA StatusCode to a symbolic name
sirius.opcua.variant_decodesirius.opcua.variant_decode(variant)valuenormalize a { type, value } variant to its native value
sirius.opcua.variant_encodesirius.opcua.variant_encode(value, type){ type, value }validate + normalize a value against a Variant built-in type

sirius.bacnet

SymbolSignatureReturnsSummary
sirius.bacnet.cov_samplessirius.bacnet.cov_samples(notification)arrayflatten a COV notification into [{ object_id, property, value }]
sirius.bacnet.objectid_formatsirius.bacnet.objectid_format(object_id)stringrender { type, instance } to ‘type-name:instance’
sirius.bacnet.objectid_parsesirius.bacnet.objectid_parse(object_id)objectparse ‘analog-value:1’ into { type, type_name, instance }
sirius.bacnet.priority_arraysirius.bacnet.priority_array(array)objectnormalize a 16-slot priority array + resolve the active slot
sirius.bacnet.property_parsesirius.bacnet.property_parse(property){ id, name }map a property name<->enum, returning { id, name }
sirius.bacnet.value_decodesirius.bacnet.value_decode(value)valuereturn the native value from a { type, value } object
sirius.bacnet.value_encodesirius.bacnet.value_encode(value, type){ type, value }coerce a value to a BACnet datatype, returning { type, value }

sirius.sip

SymbolSignatureReturnsSummary
sirius.sip.buildsirius.sip.build(message)stringbuild a SIP request/response from a structured object
sirius.sip.header_getsirius.sip.header_get(raw, name)stringread the first value of a header (case-insensitive)
sirius.sip.header_setsirius.sip.header_set(raw, name, value)stringset a header value and return the rebuilt message
sirius.sip.parsesirius.sip.parse(raw)objectparse a raw SIP message into a structured object
sirius.sip.uri_formatsirius.sip.uri_format(uri)stringrender a SIP URI object back to a string
sirius.sip.uri_parsesirius.sip.uri_parse(uri)objectparse a SIP/SIPS URI into { scheme, user, host, port, params }
sirius.sip.validatesirius.sip.validate(raw){ ok, error?, missing? }validate a SIP request carries the required headers

sirius.smpp

SymbolSignatureReturnsSummary
sirius.smpp.command_namesirius.smpp.command_name(command_id)stringmap an SMPP command_id to its name
sirius.smpp.dcs_decodesirius.smpp.dcs_decode(data_b64, coding)stringdecode base64 message bytes to UTF-8 per data_coding (0/3/8)
sirius.smpp.dcs_encodesirius.smpp.dcs_encode(text, coding)string (base64)encode UTF-8 to base64 message bytes per data_coding (0/3/8)
sirius.smpp.dlr_parsesirius.smpp.dlr_parse(text)objectparse an SMPP delivery-receipt short_message into fields
sirius.smpp.messagesirius.smpp.message(pdu)objectextract src/dst/text/is_dlr from a submit_sm/deliver_sm PDU object
sirius.smpp.pdu_parsesirius.smpp.pdu_parse(raw_b64)objectdecode a base64 SMPP PDU header + body
sirius.smpp.tlv_getsirius.smpp.tlv_get(tlv_b64, tag)string (hex)read an optional-parameter (TLV) value (hex) by tag
sirius.smpp.tlv_setsirius.smpp.tlv_set(tlv_b64, tag, value_hex)string (base64)append/replace a TLV (value hex) and return updated base64
sirius.smpp.udh_joinsirius.smpp.udh_join(parts)stringreassemble concatenated-SMS parts into the original text
sirius.smpp.udh_splitsirius.smpp.udh_split(text, ref, coding?)arraysegment a long message into concatenated-SMS parts