Skip to main content

Device Manager (Ceefax)

As used by RockREMOTE.

Structure

As found in LingoMT or LingoMO.

Connection State

Connection State Request

{
"connectionStateRequest": {}
}

Connection State

{
"connectionState": {
"state": "CONNECTED",
"duration": 30,
"Transport": "IRIDIUM",
"rxBytes": 200,
"txBytes": 70,
"wgUp": true
}
}

State options:

  • CONNECTED
  • ACTIVE
  • DISCONNECTED

Transport options:

  • NO_TRANSPORT
  • IRIDIUM
  • CELLULAR
  • WIFI

WAN

Get WAN Request

{
"getWanRequest": {}
}

Get WAN Response

{
"getWanResponse": {
"status": true,
"wan": {}
}
}

Parameter wan is a Ceefax WAN JSON object.

Update WAN Request

{
"updateWanRequest": {
"wan": {}
}
}

Parameter wan is a Ceefax WAN JSON object.

Update WAN Response

{
"updateWanResponse": {
"status": false,
"errors": ["TOO_MANY_NTP_SERVERS"]
}
}

Error options are:

  • UNKNOWN
  • TOO_MANY_NTP_SERVERS

LAN / WIFI

Get LAN Interface Request

{
"getLanInterfaceRequest": {}
}

Get LAN Interface Response

{
"getLanInterfaceResponse": {
"lan": {},
"status": true
}
}

Parameter lan is a Ceefax LAN Interface JSON object.

Update LAN Interface Request

{
"updateLanInterfaceRequest": {
"lan": {}
}
}

Parameter lan is a Ceefax LAN Interface JSON object.

Update LAN Interface Response

{
"updateLanInterfaceResponse": {
"status": false,
"errors": ["INVALID_IP"]
}
}

Error options are:

  • INVALID_IP
  • INVALID_SUBNET
  • CONFLICTING_IP
  • INVALID_DHCP_RANGE

Get Wi-Fi Interface Request

{
"getWifiInterfaceRequest": {}
}

Get Wi-Fi Interface Response

{
"getWifiInterfaceResponse": {
"status": true,
"wifi": {},
"wifiInterfacePresent": true
}
}

Parameter wifi is a Ceefax Wi-Fi Interface JSON object.

Update Wi-Fi Interface Request

{
"updateWifiInterfaceRequest": {
"wifi": {}
}
}

Parameter wifi is a Ceefax Wi-Fi Interface JSON object.

Update Wi-Fi Interface Response

{
"updateWifiInterfaceResponse": {
"status": false,
"errors": ["NO_WIFI_INTERFACE"]
}
}

Error options are:

  • NO_WIFI_INTERFACE
  • INVALID_MODE
  • INVALID_SSID
  • INVALID_PASSPHRASE
  • INVALID_CHANNEL

Local Devices

Get Local Devices Request

{
"getLocalDevicesRequest": {}
}

Get Local Devices Response

{
"getLocalDevicesResponse": {
"status": true,
"devices": []
}
}

Parameter devices is an array of Ceefax Local Device JSON objects.

Upsert Local Device Request

{
"upsertLocalDeviceRequest": {
"device": {}
}
}

Parameter device is a Ceefax Local Device JSON object.

Upsert Local Device Response

{
"upsertLocalDevicesResponse": {
"status": false,
"errors": ["NON_EXISTENT_ID"],
"device": {}
}
}

Parameter device is a Ceefax Local Device JSON object.

Error options are:

  • NON_EXISTENT_ID
  • INVALID_NAME
  • DUPLICATE_NAME
  • INVALID_IP
  • DUPLICATE_IP
  • INVALID_MAC
  • DUPLICATE_MAC
  • INVALID_OUT_PROTOCOL
  • INVALID_OUT_IP
  • INVALID_OUT_PORT
  • INVALID_PORTF_IFACE
  • INVALID_PORTF_PROTOCOL
  • INVALID_PORTF_PORT
  • NET_PORT_ALREADY_USED - Validation error to indicate if the RockREMOTE knows this port is already used
  • INVALID_HOSTNAME - The given string has invalid characters to be a hostname
  • LOCAL_DNS_NOT_SET - If a Hostname is used them allow local DNS needs to be enabled, this error is returned if that isn't the case
  • LOCAL_DNS_NOT_SUPPORTED_USE_GLOBAL - Local DNS is not supported on revisioned and the global option should be used.
  • KEEP_ALIVE_PROTO_INVALID
  • KEEP_ALIVE_INTERVAL_TOO_SMALL
  • KEEP_ALIVE_INTERVAL_TOO_BIG
  • KEEP_ALIVE_PORT_INVALID

Delete Local Device Request

{
"deleteLocalDeviceRequest": {
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
}

Delete Local Device Response

{
"deleteLocalDeviceResponse": {
"status": false,
"errors": ["NON_EXISTENT_ID"],
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
}

NAT

Get NAT Config Request

{
"getNATConfigRequest": {}
}

Get NAT Config Response

{
"getNATConfigResponse": {
"status": true,
"natConfig": {
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}
}
}

Iface options:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Update NAT Config Request

{
"updateNATConfigRequest": {
"natConfig": {
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}
}
}

Iface options:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Update NAT Config Response

{
"updateNATConfigResponse": {
"status": false,
"errors": ["DUPLICATE_NAT1TO1_INTERFACE"]
}
}

Error options:

  • DUPLICATE_NAT1TO1_INTERFACE
  • NON_EXISTENT_NAT1TO1_DEVICE_ID

Serial

Get Serial Settings Request

{
"getSerialSettingsRequest": {}
}

Get Serial Settings Response

{
"getSerialSettingsResponse": {
"status": true,
"settings": {},
"capabilities": {
"serialPort": "PORT_A",
"is4xx": true,
"tx": true,
"rx": true,
"rts": true,
"cts": true,
"dtr": true,
"dsr": false,
"dcd": false,
"ri": true
}
}
}

Parameter settings is a Ceefax Serial Settings JSON object.

Serial Port options are:

  • PORT_A
  • PORT_B
  • PORT_C
  • PORT_D

Update Serial Settings Request

{
"updateSerialSettingsRequest": {
"settings": {}
}
}

Parameter settings is a Ceefax Serial Settings JSON object.

Update Serial Settings Response

{
"updateSerialSettingsResponse": {
"status": false,
"errors": ["RX_EOL_INVALID"]
}
}

Error options are:

  • FLOW_CONTROL_NOT_SUPPORTED_IN_MODE - This flow control is not support in the current mode. i.e. 4xx modes can't support CTS_RTS flow control
  • FLOW_CONTROL_NOT_SUPPORTED_ON_PORT - This flow control is not supported on this port, i.e. PORT C and D
  • PORT_OUT_OF_RANGE
  • MODE_NOT_SUPPORTED_ON_PORT
  • RX_BUFFER_SIZE_TOO_BIG
  • TOO_MANY_EOL_CHARACTERS
  • RX_IDLE_TIMEOUT_TOO_LONG - 10000 ms, this should be more than enough, setting this to prevent stupid values
  • MT_TRANSPORT_INVALID - Returned when MO is configured as server and MT is not off (as it shares the settings with MO)
  • MO_TRANSPORT_INVALID - Returned when MT is configured as client and MO is not off (as it shares the settings with MO)
  • RX_IDLE_TIMEOUT_TOO_SHORT - Less than 100 ms, this fixed and related to our poll tick
  • NET_PORT_ALREADY_USED - Validation error to indicate if the RockREMOTE knows this port is already used
  • IFACE_INVALID - Specified listen interface is invalid
  • CONNECTION_TIMEOUT_TOO_LONG - If the connection timeout is above 5 minutes
  • CONNECTION_TIMEOUT_TOO_SHORT - If the connection timeout is below 5 seconds
  • CONNECTION_IDLE_TIMEOUT_TOO_LONG - If the connection idle timeout is above 120 minutes
  • CONNECTION_IDLE_TIMEOUT_TOO_SHORT - If the connection idle timeout is below 5 seconds
  • LISTEN_MAX_CLIENTS_TOO_LOW - If the maximum number of clients are 0
  • LISTEN_MAX_CLIENTS_TOO_BIG - If the maximum number of clients are more than 64
  • RX_EOL_INVALID - Error handling the RX EOL escape string

Set Client Status Request

{
"setClientStatusRequest": {
"ready": true
}
}

Set Client Status Response

{
"setClientStatusResponse": {}
}

System Info

Get System Info Request

{
"getSystemInfoRequest": {}
}

Get System Info Response

{
"getSystemInfoResponse": {
"status": true,
"info": {}
}
}

Parameter info is a Ceefax System Info JSON object.

Config

Config Export Request

{
"configExportRequest": {
"stripSecrets": true
}
}

Config Export Response

{
"configExportResponse": {
"status": false,
"errors": ["IMPORT_EXPORT_ALREADY_IN_PROGRESS"],
"path": "/etc/logs/20250324-log.zip"
}
}

Config Import Request

{
"configImportRequest": {
"path": "/etc/store/logs/logs-for-import.zip"
}
}

Absolute path, but must be under xferTmpDir, backend will delete this file (even if error) ZIP file generated from previous export.

Config Import Response

{
"configImportResponse": {
"status": false,
"errors": ["ZIP_ERROR"],
"restarting": false
}
}

Error options:

  • ZIP_ERROR
  • FORMAT_ERROR
  • IMPORT_EXPORT_ALREADY_IN_PROGRESS

Logging

Log Export Request

{
"logExportRequest": {
"type": "LOG_ALL",
"days": 30
}
}

Set parameter days to 0 for all.

Log Type options:

  • LOG_ALL
  • LOG_RR_SERVICE
  • LOG_IRIDIUM_SIGNAL
  • LOG_CELLULAR_SIGNAL
  • LOG_RR_SUPPORT_BUNDLE

Log Export Response

{
"logExportResponse": {
"status": true,
"errors": [],
"path": "/etc/logs/log_all.txt"
}
}

Error Options:

  • IMPORT_EXPORT_ALREADY_IN_PROGRESS

Set Log Config Request

{
"setLogConfigRequest": {
"config": {
"level": "FW_LOG_INFO"
}
}
}

Level options:

  • FW_LOG_INFO
  • FW_LOG_TRACE
  • FW_LOG_DEBUG
  • FW_LOG_WARNING
  • FW_LOG_ERROR

Set Log Config Response

{
"setLogConfigResponse": {
"status": true
}
}

Get Log Config Request

{
"getLogConfigRequest": {}
}

Get Log Config Response

{
"getLogConfigResponse": {
"status": true,
"config": {
"level": "FW_LOG_INFO"
}
}
}

Level options:

  • FW_LOG_INFO
  • FW_LOG_TRACE
  • FW_LOG_DEBUG
  • FW_LOG_WARNING
  • FW_LOG_ERROR

Password

Password Update Request

{
"passwordUpdateRequest": {
"currentPassword": "weak-password",
"newPassword": "extra-strong-password"
}
}

Password Update Response

{
"passwordUpdateResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_CURRENT_PASSWORD
  • INSECURE_NEW_PASSWORD

Cellular

Get Cellular Request

{
"getCellularRequest": {}
}

Get Cellular Response

{
"getCellularResponse": {
"status": true,
"config": {},
"supportedProfiles": ["TELIT_NF_ATT"]
}
}

Parameter config is a Ceefax Cellular Config JSON object.

Supported Profile options:

  • TELIT_PROFILE_UNKNOWN - This would be return if the telit module is initalising and firmware hasn't been able to request it yet
  • TELIT_NF_ATT - AT&T North America
  • TELIT_NF_VERIZON - Verizon North America
  • TELIT_NF_TMOBILE - T-Mobile North America
  • TELIT_NF_BELL - Bell North America
  • TELIT_NF_TELUS - Telus North America
  • TELIT_AP_TELSTRA - Telstra, only on AP modules
  • TELIT_GLOBAL - Global configuration

Cellular Update Request

{
"cellularUpdateRequest": {
"config": {}
}
}

Parameter config is a Ceefax Cellular Config JSON object.

Cellular Update Response

{
"cellularUpdateResponse": {
"status": true,
"errors": []
}
}

Error options:

  • APN_NOT_SET
  • CARRIER_NOT_SUPPORTED

Smart Connection

Get Smart Connection Request

{
"getSmartConnectionRequest": {}
}

Get Smart Connection Response

{
"getSmartConnectionResponse": {
"status": true,
"config": {},
"state": {
"iface": "IFACE_ETHERNET",
"downCount": 1,
"upCount": 2
}
}
}

Parameter config is a Ceefax Smart Connection Config JSON object.

Iface options:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Smart Connection Update Request

{
"smartConnectionUpdateRequest": {
"config": {}
}
}

Parameter config is a Ceefax Smart Connection Config JSON object.

Smart Connection Update Response

{
"smartConnectionUpdateResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_PRIMARY_IFACE
  • INVALID_SECONDARY_IFACE
  • TIMEOUT_TOO_LONG
  • INTERVAL_TOO_LONG
  • DOWN_COUNT_TOO_LARGE
  • UP_COUNT_TOO_LARGE
  • NO_TRACKING_IP_SET

System

Reboot Request

{
"rebootRequest": {}
}

Reboot Response

{
"rebootResponse": {
"status": true
}
}

Ping Request

{
"pingRequest": {}
}

Ping Response

{
"pingResponse": {
"status": true,
"version": 146534
}
}

Location Request

{
"locationRequest": {
"fixes": "LOCATION_FIXES_1"
}
}

Fixes options:

  • LOCATION_FIXES_1
  • LOCATION_FIXES_5
  • LOCATION_FIXES_10
  • LOCATION_FIXES_20

Location Response

{
"locationResponse": {
"status": true,
"location": {},
"errors": []
}
}

The location parameter is a Ceefax Location JSON object.

Error options:

  • GNSS_MODULE_ERROR - Error occurred enabling the GNSS module
  • LOCATION_FIX_FAILED - Failed to aquire a location meeting the requested fixes requirement
  • ANOTHER_REQUEST_IN_PROGRESS

Last Known Location Request

{
"lastKnownLocationRequest": {}
}

Last Known Location Response

{
"lastKnownLocationResponse": {
"status": true,
"location": {},
"errors": []
}
}

The location parameter is a Ceefax Location JSON object.

Error options:

  • NO_FIX_AVAILABLE - The RockREMOTE doesn't have a location fix, if this is case location will not be populated

Events

Unsolicited Event

{
"unsolicitedEvent": {
"at": {},
"location": {},
"pinState": {},
"bootUp": {},
"status": {}
}
}
ParameterJSON Object
atRosetta Date Time
locationCeefax Location
pinStateCeefax Gpio Pin State
bootUpCeefax System Info
statusCeefax System Info

Only one of location, pinState, bootUp or status parameters can be populated.

Unsolicited Event Config Update Request

{
"unsolicitedEventConfigUpdateRequest": {
"config": {}
}
}

Parameter config is a Ceefax Unsolicited Event Config JSON object.

Unsolicited Event Config Update Response

{
"unsolicitedEventConfigUpdateResponse": {
"status": true,
"errors": []
}
}

Error options:

  • UNKNOWN_EVENT_TYPE
  • TIME_NOT_SET - Can't report periodic status as time is unknown, enable NTP or perform a GNSS fix
  • MULTIPLE_STATUS_PERIODS - Multiple EVENT_STATUS have been provided
  • GPIO_NOT_SUPPORTED - When EVENT_GPIO is enabled on Hardware revision 1 (where GPIO is not supported)

Unsolicited Event Config Request

{
"unsolicitedEventConfigRequest": {
}
}

Unsolicited Event Config Response

{
"unsolicitedEventConfigResponse": {
"status": true,
"config": {}
}
}

Parameter config is a Ceefax Unsolicited Event Config JSON object.

Event Log Request

{
"eventLogRequest": {
"maxLogs": 10
}
}

Event Log Response

{
"eventLogResponse": {
"status": true,
"events": [],
"errors": []
}
}

Parameter events is an array of Ceefax Event JSON objects.

Error options:

  • LIMIT_TOO_SMALL
  • LIMIT_TOO_BIG

File Transfer

File Transfer Start Upload Request

For transferring files to the RockREMOTE.

{
"fileTransferStartUploadRequest": {
"fileId": "file-upload-1",
"name": "my-file.txt",
"size": 500,
"blockSize": 100,
"checksum": "my-file-checksum",
"compression": "NONE",
"flow": "FLOW_REQUEST"
}
}

Compression options:

  • NONE
  • GZIP
  • XZ

Flow options:

  • FLOW_REQUEST - Block Request and Response (default and initial implementation)
  • FLOW_UNSOLICITED - Block responses are sent unsolicited once configured and started

File Transfer Start Upload Response

{
"fileTransferStartUploadResponse": {
"fileId": "file-upload-1",
"status": true,
"errors": [],
"blockNumber": 0
}
}

Parameter blockNumber should be 0 unless resuming an upload.

Error options:

  • ANOTHER_TRANSFER_IN_PROGRESS
  • META_FILE_DOES_NOT_EXIST
  • FAILED_TO_PARSE_META_DATA
  • BASE_DIRECTORY_DOES_NOT_EXIST
  • NOT_ENOUGH_SPACE
  • FILENAME_INVALID
  • FILE_ALREADY_EXISTS
  • COMPRESSION_TYPE_NOT_SUPPORTED
  • BLOCK_SIZE_TOO_BIG

File Transfer Start Download Request

{
"fileTransferStartDownloadRequest": {
"fileId": "file-download-1",
"name": "my-file.txt",
"blockSize": 1000,
"checksum": "",
"compression": "NONE",
"flow": "FLOW_REQUEST"
}
}

Checksum should only be set if resuming a download to ensure no file changes.

Compression options:

  • NONE
  • GZIP
  • XZ

Flow options:

  • FLOW_REQUEST - Block Request and Response (default and initial implementation)
  • FLOW_UNSOLICITED - Block responses are sent unsolicited once configured and started

File Transfer Start Download Response

{
"fileTransferStartDownloadResponse": {
"fileId": "file-download-1",
"checksum": "",
"size": 5000,
"status": true,
"errors": []
}
}

Error options:

  • ANOTHER_TRANSFER_IN_PROGRESS
  • META_FILE_DOES_NOT_EXIST - Can only occur when resuming a download
  • FAILED_TO_PARSE_META_DATA - Can only occur when resuming a download
  • FILENAME_INVALID
  • FILE_DOES_NOT_EXIST
  • FILE_HAS_ZERO_SIZE
  • FILE_SIZE_DOES_NOT_MATCH_EXPECTED - Can only occur when resuming a download
  • CHECKSUM_DOES_NOT_MATCH_EXPECTED - Can only occur when resuming a download
  • BASE_DIRECTORY_DOES_NOT_EXIST
  • COMPRESSION_TYPE_NOT_SUPPORTED
  • BLOCK_SIZE_TOO_BIG

File Transfer Block Request

Only used when transfer flow is FLOW_REQUEST

{
"fileTransferBlockRequest": {
"fileId": "file-upload-1",
"blockNumber": 3,
"blockData": "RXFFQkNqZDBlWEJsTG1kdmIyZHNaM1JsZWdBZ2ZkeGhzZHM="
}
}

Block data should only be populated when uploading to the RockREMOTE.

File Transfer Block Response

Send in response to a File Transfer Block Request when using FLOW_REQUEST, otherwise sent unsolicited.

{
"fileTransferBlockResponse": {
"fileId": "file-download-1",
"blockNumber": 1,
"status": true,
"blockData": "RXFFQkNqZDBlWEJsTG1kdmIyZHNaM1JsZWdBZ2ZkeGhzZHM=",
"errors": []
}
}

Block data is only populated when downloading from the RockREMOTE.

Error options:

  • WRITE_FAILED
  • READ_FAILED
  • TRANSFER_NOT_IN_PROGRESS

File Transfer Retry Block Request

Requests a File Transfer Block Response for a specific block.

{
"fileTransferRetryBlockRequest": {
"fileId": "file-download-1",
"blockNumber": 3
}
}

File Transfer Finished Request

{
"fileTransferFinishedRequest": {
"fileId": "file-download-1"
}
}

File Transfer Finished Response

{
"fileTransferFinishedResponse": {
"fileId": "file-download-1",
"status": true,
"errors": []
}
}

Error options:

  • TRANSFER_NOT_IN_PROGRESS
  • CHECHSUMS_DO_NOT_MATCH

File Transfer Abort Request

{
"fileTransferAbortRequest": {
"fileId": "file-download-1"
}
}

File Transfer Abort Response

{
"fileTransferAbortResponse": {
"fileId": "file-download-1",
"status": true,
"errors": []
}
}

Error options:

  • TRANSFER_NOT_IN_PROGRESS

GNSS

Set GNSS Config Request

{
"setGnssConfigRequest": {
"config": {}
}
}

The config parameter is a Ceefax GNSS Config JSON object.

Set GNSS Config Response

{
"setGnssConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • TIMEOUT_INVALID - If timoutSecs is larger than intervalSecs
  • INTERVAL_TOO_SMALL - < 60
  • INTERVAL_TOO_BIG - > 86400
  • TIMEOUT_TOO_SMALL - < 30
  • TIMEOUT_TOO_BIG - > 3600

Get GNSS Config Request

{
"getGnssConfigRequest": {}
}

Get GNSS Config Response

{
"getGnssConfigResponse": {
"status": true,
"config": {}
}
}

The config parameter is a Ceefax GNSS Config JSON object.

Sleep

Update Sleep Config Request

{
"updateSleepConfigRequest": {
"config": {
"level": "SLEEP_LEVEL_1"
}
}
}

Sleep options:

  • SLEEP_DISABLED
  • SLEEP_LEVEL_1 - Keeps Super caps charging and checks sleep pin frequently
  • SLEEP_LEVEL_2 - Disables Super caps from charging and checks sleep pin frequently
  • SLEEP_LEVEL_3 - Disables Super caps from charging and checks the sleep pin infrequently, there might be a longer delay detecting a positive voltage to wake-up

Update Sleep Config Response

{
"updateSleepConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • SLEEP_PIN_LOW - The sleep pin is below the threshold so sleep could not be enabled as it would go to sleep straight away
  • SLEEP_NOT_SUPPORTED - Returns if the AVR MCU firmware version is not equal to and greater than 2.0.1

Get Sleep Config Request

{
"getSleepConfigRequest": {}
}

Get Sleep Config Response

{
"getSleepConfigResponse": {
"status": true,
"config": {
"level": "SLEEP_LEVEL_1"
},
"sleepInputValid": true,
"errors": []
}
}

Sleep options:

  • SLEEP_DISABLED
  • SLEEP_LEVEL_1 - Keeps Super caps charging and checks sleep pin frequently
  • SLEEP_LEVEL_2 - Disables Super caps from charging and checks sleep pin frequently
  • SLEEP_LEVEL_3 - Disables Super caps from charging and checks the sleep pin infrequently, there might be a longer delay detecting a positive voltage to wake-up

Error options:

  • SLEEP_NOT_SUPPORTED - Returns if the AVR MCU firmware version is not equal to and greater than 2.0.1

IOT Gateway

Get Idiot Config Request

{
"getIdiotConfigRequest": {}
}

Get Idiot Config Response

{
"getIdiotConfigResponse": {
"status": true,
"idiotConfig": {}
}
}

The idiotConfig parameter is an IdIot Config JSON object.

Set Idiot Config Request

{
"setIdiotConfigRequest": {
"idiotConfig": {}
}
}

The idiotConfig parameter is an IdIot Config JSON object.

Set Idiot Config Response

{
"setIdiotConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_MQTT_BROKER_PORT
  • INVALID_MQTT_USERNAME
  • INVALID_MQTT_PASSWORD
  • IDIOT_ENABLED_BUT_MQTT_DISABLED - If idiotEnabled is true, then mqttBrokerEnabled needs to be true
  • INVALID_IDIOT_BATCH_MAX_SIZE
  • INVALID_IDIOT_BATCH_MAX_TIME

IMT

IMT Request

{
"imtRequest": {
"topic": 123,
"delaySeconds": 60,
"repeats": 0,
"filename": "stored_file.txt",
"payload": "SGVsbG8sIHdvcmxkIQ=="
}
}

Only one of filename or payload can be provided.

The payload parameter is a Base64 encoded string.

IMT Response

{
"imtResponse": {
"status": true,
"errors": []
}
}

Error options:

  • MO_ALREADY_IN_PROGRESS
  • READING_DATA_FILE_FAILED
  • NO_PAYLOAD
  • PAYLOAD_TOO_BIG
  • NOT_SUBSCRIBED_TO_TOPIC
  • DELAY_SECONDS_OUT_OF_RANGE
  • REPEATS_OUT_OF_RANGE
  • NOT_PROVISIONED

Get IMT Config Request

{
"getImtConfigRequest": {}
}

Get IMT Config Response

{
"getImtConfigResponse": {
"status": true,
"config": {}
}
}

Parameter config is a Ceefax IMT Config JSON object.

Update IMT Config Request

{
"updateImtConfigRequest": {
"config": {}
}
}

Parameter config is a Ceefax IMT Config JSON object.

Update IMT Config Response

{
"updateImtConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • MO_TTL_TOO_SMALL - Less than 1 day
  • MO_TLL_TOO_BIG - More than 7 days
  • MO_RETRY_COUNT_TOO_BIG - More than 2000

Get IMT State Request

{
"getImtStateRequest": {}
}

Get IMT State Response

{
"getImtStateResponse": {
"status": true,
"topicStats": [{
"topic": 255,
"topicName": "Custom Topic",
"moCount": 245,
"mtCount": 12,
"moDropCount": 55,
"mtDropCount": 0
}],
"moQueueState": {
"currentState": "IRIDIUM_IMT_MO_IDLE",
"length": 3,
"bytes": 71332
}
}
}

Current State options:

  • IRIDIUM_IMT_MO_IDLE
  • IRIDIUM_IMT_MO_SCHEDULED
  • IRIDIUM_IMT_MO_QUEUED
  • IRIDIUM_IMT_MO_TRANSFERRING

Clear IMT MO Queue Request

{
"clearImtMoQueueRequest": {}
}

Clear IMT MO Queue Response

{
"clearImtMoQueueResponse": {
"status": true,
"errors": []
}
}

Error options:

  • MO_QUEUE_ALREADY_EMPTY

GPIO

Update GPIO Request

{
"updateGpioRequest": {
"default": false,
"gpio": []
}
}

Parameter gpio is an array of GPIO Pin Config JSON objects.

Update GPIO Response

{
"updateGpioResponse": {
"status": true,
"errors": []
}
}

Error options:

  • GPIO_NOT_SUPPORTED
  • INVALID_GPIO_MODE - Configured mode on a GPIO mode is not supported
  • INVALID_GPIO_VALUE - GPIO_HIGH on Rev2 outputs or value given to a GPIO input
  • INVALID_GPIO_FILTER - GPIO Filter given to GPIO output
  • GPIO_ID_OUT_OF_RANGE - A given GPIO ID was beyound the number of GPIOs supported on the RR

Get GPIO Config Request

{
"getGpioConfigRequest": {}
}

Get GPIO Config Response

{
"getGpioConfigResponse": {
"status": true,
"gpio": [],
"capabilities": [{
"id": 0,
"supported_modes": ["GPIO_MODE_INPUT", "GPIO_MODE_OUTPUT"]
}],
"errors": []
}
}

Parameter gpio is an array of GPIO Pin Config JSON objects.

Supported mode options:

  • GPIO_MODE_INPUT
  • GPIO_MODE_OUTPUT
  • GPIO_MODE_INT_RISING
  • GPIO_MODE_INT_FALLING
  • GPIO_MODE_INT_CHANGE

Error options:

  • GPIO_NOT_SUPPORTED

Get GPIO State Request

{
"getGpioStateRequest": {
"all": false,
"id": 3
}
}

Parameter id is only required if all is false.

Get GPIO State Response

{
"getGpioStateResponse": {
"status": true,
"gpioState": [],
"errors": []
}
}

Parameter gpioState is an array of GPIO Pin State JSON objects.

Error options:

  • GPIO_NOT_SUPPORTED
  • GPIO_ID_OUT_OF_RANGE

FTP

Get FTP Config Request

{
"ceefaxGetFTPConfigRequest": {}
}

Get FTP Config Response

{
"ceefaxGetFTPConfigResponse": {
"status": true,
"config": {}
}
}

Parameter config is a Ceefax FTP Config JSON object.

Update FTP Config Request

{
"ceefaxUpdateFTPConfigRequest": {
"config": {}
}
}

Parameter config is a Ceefax FTP Config JSON object.

Update FTP Config Response

{
"ceefaxUpdateFTPConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • TRANSFER_TO_SEND_TIME_TOO_SMALL - Less than 10 seconds
  • TRANSFER_TO_SEND_TIME_TOO_BIG - 1 hour
  • INVALID_GLOB_PATTERN - Characters in which means the glob pattern is not valid
  • TOO_MANY_GLOB_PATTERNS - Initial limit to 10
  • USERNAME_INVALID - Doesn't match the Linux rules for a username
  • INVALID_PORT - Invalid port numbers for the range

Update FTP Password Request

{
"ceefaxUpdateFTPPasswordRequest": {
"currentPassword": "weak-password",
"newPassword": "strong-password"
}
}

Update FTP Password Response

{
"ceefaxUpdateFTPPasswordResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_CURRENT_PASSWORD - Current password given doesn't match the current. Default is rockremote
  • INVALID_NEW_PASSWORD - 7-bit ASCII and 6 to 255 characters
  • FAILED_CHANGE_PASSWORD - OS issues setting password, shouldn't happen but could

FTP Command Request

{
"ceefaxFTPCommandRequest": {
"command": "DELETE_ALL"
}
}

Command options:

  • DELETE_ALL

FTP Command Response

{
"ceefaxFTPCommandResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_CURRENT_PASSWORD - Current password given doesn't match the current. Default is rockremote
  • INVALID_NEW_PASSWORD - 7-bit ASCII and 6 to 255 characters
  • FAILED_CHANGE_PASSWORD - OS issues setting password, shouldn't happen but could

Global Rules

Get Global Rules Request

{
"ceefaxGetGlobalRulesRequest": {}
}

Get Global Rules Response

{
"ceefaxGetGlobalRulesResponse": {
"status": true,
"rules": {}
}
}

The rules parameter is a Ceefax Global Rules JSON object.

Update Global Rules Request

{
"ceefaxUpdateGlobalRulesRequest": {
"rules": {}
}
}

The rules parameter is a Ceefax Global Rules JSON object.

Update Global Rules Response

{
"ceefaxUpdateGlobalRulesResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_OUT_PROTOCOL - Invalid protocol should only be TCP/UDP/ICMP
  • INVALID_OUT_IP - The IP is invalid or the CIDR is invalid
  • INVALID_HOSTNAME - The hostname is not a domain name (invalid characters)
  • INVALID_OUT_PORT - The port is out of range
  • LOCAL_DNS_NOT_SET - If the hostname is used local DNS forwarding needs to be set

Raw IMT

Raw IMT MO Status

{
"ceefaxRawIMTMoStatus": {
"topic": 244,
"at": {},
"state": "IMT_MO_STATE_QUEUED"
}
}

Parameter at is a Rosetta Date Time JSON object.

State options:

  • IMT_MO_STATE_QUEUED
  • IMT_MO_STATE_SENDING
  • IMT_MO_STATE_DROPPED
  • IMT_MO_STATE_CANCELLED
  • IMT_MO_STATE_SENT

Send Raw IMT Request

{
"ceefaxSendRawImtRequest": {
"topic": 244,
"payload": "SGVsbG8sIHdvcmxkIQ==",
"emplace": "BACK"
}
}

The payload parameter is a Base64 encoded string.

Emplace options:

  • BACK - Default, places the message to back of the MO Queue
  • FRONT - Will place the message to the front of the MO Queue

Send Raw IMT Response

{
"ceefaxSendRawImtResponse": {
"status": true,
"messageId": 34621,
"errors": []
}
}

Error options:

  • TOPIC_NOT_PROVISIONED
  • PAYLOAD_TOO_LARGE

Get Raw IMT Request

{
"ceefaxGetRawImtRequest": {
"topic": 244
}
}

Get Raw IMT Response

{
"ceefaxGetRawImtResponse": {
"status": true,
"messageId": 24656,
"payload": "SGVsbG8sIHdvcmxkIQ==",
"at": {},
"errors": []
}
}

The payload parameter is a Base64 encoded string.

Parameter at is a Rosetta Date Time JSON object.

Error options:

  • TOPIC_NOT_PROVISIONED
  • NO_MESSAGES

Get Raw IMT Status Request

{
"ceefaxGetRawImtStatusRequest": {
"messageId": 24576
}
}

Get Raw IMT Status Response

{
"ceefaxGetRawImtStatusResponse": {
"status": true,
"imtStatus": {
"topic": 245,
"at": {},
"state": "IMT_MO_STATE_QUEUED"
},
"errors": []
}
}

Parameter at is a Rosetta Date Time JSON object.

State options:

  • IMT_MO_STATE_QUEUED
  • IMT_MO_STATE_SENDING
  • IMT_MO_STATE_DROPPED
  • IMT_MO_STATE_CANCELLED
  • IMT_MO_STATE_SENT

Error options:

  • INVALID_MESSAGE_ID

Command Raw IMT Request

{
"ceefaxCommandRawImtRequest": {
"topic": 255,
"messageId": 26652,
"command": "CLEAR_MT_QUEUE"
}
}

Parameter messageId should only be provided when using command option CANCEL_MO, topic should not be provided at the same time.

Command options:

  • CLEAR_MT_QUEUE - provide only topic
  • CLEAR_MO_QUEUE - provide only topic
  • CANCEL_MO - provide only messageId

Command Raw IMT Response

{
"ceefaxCommandRawImtResponse": {
"status": true,
"errors": []
}
}

Error options:

  • MO_CANCELLATION_FAILED
  • INVALID_MESSAGE_ID
  • TOPIC_NOT_PROVISIONED

Ack Raw IMT Request

{
"ceefaxAckRawImtRequest": {
"messageId": 54426
}
}

Ack Raw IMT Response

{
"ceefaxAckRawImtResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_MESSAGE_ID

List Raw IMT Topics Request

{
"ceefaxListRawImtTopicsRequest": {}
}

List Raw IMT Topics Response

{
"ceefaxListRawImtTopicsResponse": {
"status": true,
"topics": [
{
"id": 244,
"name": "RAW_TOPIC"
}
],
"errors": []
}
}

Error options:

  • NO_TOPICS_PROVISIONED

Wireguard

Get Wireguard Config Request

{
"ceefaxGetWireguardConfigRequest": {}
}

Get Wireguard Config Response

{
"ceefaxGetWireguardconfigResponse": {
"status": true,
"config": {}
}
}

Parameter config is a Ceefax Wireguard Config JSON object.

Update Wireguard Config Request

{
"ceefaxUpdateWireguardConfigRequest": {
"config": {}
}
}

Parameter config is a Ceefax Wireguard Config JSON object.

Update Wireguard Config Response

{
"ceefaxUpdateWireguardConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • INVALID_IFACE_PRIVATE_KEY
  • INVALID_IFACE_PUBLIC_KEY
  • INVALID_IFACE_KEY_MISMATCH
  • NO_ALLOWED_IPS_FOR_PEER
  • INVALID_PEER_PUBLIC_KEY
  • INVALID_PEER_IP
  • INVALID_PEER_CIDR
  • INVALID_PEER_ENDPOINT_PORT
  • INVALID_PEER_ENDPOINT_IP
  • MTU_TOO_SMALL - Anything below 500 is probably too low
  • MTU_TOO_BIG - RR can't really do more than 1500
  • INVALID_IFACE_IP

Omni

Get Omni Config Request

{
"ceefaxGetOmniConfigRequest": {}
}

Get Omni Config Response

{
"ceefaxGetOmniConfigResponse": {
"status": true,
"config": {}
}
}

Parameter config is a Ceefax Omni Config JSON object.

Update Omni Config Request

{
"ceefaxUpdateOmniConfigRequest": {
"config": {}
}
}

Parameter config is a Ceefax Omni Config JSON object.

Update Omni Config Response

{
"ceefaxUpdateOmniConfigResponse": {
"status": true,
"errors": []
}
}

Error options:

  • OMNI_COMPRESSOR_NOT_INSTALLED
  • INVALID_SERVER_PORT
  • INVALID_SERVER_IP
  • INVALID_SERVER_HOSTNAME

Persistent Config

Get Persistent Config Request

{
"ceefaxGetPersistentConfigRequest": {}
}

Get Persistent Config Response

{
"ceefaxGetPersistentConfigResponse": {
"status": true,
"config": {
"confVersion": 10,
"wan": {},
"lan": {},
"localDevices": [],
"natConfig": {},
"cellularConfig": {},
"smartConnectionConfig": {},
"sleepConfig": {
"level": "SLEEP_DISABLED"
},
"serialSettings": [],
"idiotConfig": {},
"wifi": {},
"logConfig": {
"level": "FW_LOG_INFO"
},
"gnssConfig": {},
"gpioPinConfig": [],
"eventConfig": {},
"imtConfig": {},
"ftpConfig": {},
"globalRules": {},
"wireguardConfig": {},
"omniConfig": {}
}
}
}
ParameterJSON Object
wanCeefax WAN
lanCeefax LAN Interface
localDevicesCeefax Local Device Array
natConfigCeefax NAT Config
cellularConfigCeefax Cellular Config
smartConnectionConfigCeefax Smart Connection Config
serialSettingsCeefax Serial Settings Array
idiotConfigCeefax Idiot Config
wifiCeefax Wi-Fi Interface
gnssConfigCeefax GNSS Config
gpioPinConfigCeefax GPIO Pin Config Array
eventConfigCeefax Unsolicited Event Config
imtConfigCeefax IMT Config
ftpConfigCeefax FTP Config
globalRulesCeefax Global Rules
wireguardConfigCeefax Wireguard Config
omniConfigCeefax Omni Config

Sleep level options:

  • SLEEP_DISABLED
  • SLEEP_LEVEL_1 - Keeps Super caps charging and checks sleep pin frequently
  • SLEEP_LEVEL_2 - Disables Super caps from charging and checks sleep pin frequently
  • SLEEP_LEVEL_3 - Disables Super caps from charging and checks the sleep pin in-frequently

Log level options:

  • FW_LOG_INFO - default
  • FW_LOG_TRACE - Debug with extra verbose logs like Iridium JSPR, ModemManager and GNSS NMEA sentences
  • FW_LOG_DEBUG
  • FW_LOG_WARNING
  • FW_LOG_ERROR

Shared JSON Structures

Rosetta Date Time

{
"date": {
"Day": 1,
"Month": 1,
"Year": 2025
},
"time": {
"Hour": 12,
"Minute": 0,
"Second": 10,
"Milisecond": 100
}
}

Ceefax Location

{
"source": "GGA_GPS",
"at": {},
"latitude": 12.4566,
"longitude": 2.57543,
"fix": "LOCATION_FIX_STANDARD",
"numSatellites": 3,
"hdop": 0.1245,
"altitude": 13.563,
"geodialSeparation": 54.67,
"dgpsAge": 12,
"dgpsId": 153,
"speed": 12.54,
"heading": 179.2
}

The at parameter is a Rosetta Date Time JSON object.

Source options:

  • GGA_NONE
  • GGA_GPS
  • GGA_GALILEO
  • GGA_GLONASS
  • GGA_GNSS

Fix options:

  • LOCATION_FIX_NONE
  • LOCATION_FIX_STANDARD - Stand-alone location gathering
  • LOCATION_FIX_DGPS - Differential GPS. Additional correction from base station is used

Parameter units are:

  • dgpsAge - Seconds since last update from differential reference station
  • dgpsId - DGPS station id
  • speed - Speed over ground in knots
  • heading - Degrees true

Ceefax Gpio Pin State

{
"id": 1,
"mode": "GPIO_MODE_INPUT",
"value": "GPIO_VALUE_LOW",
"count": 5
}

Mode options:

  • GPIO_MODE_INPUT
  • GPIO_MODE_OUTPUT
  • GPIO_MODE_INT_RISING
  • GPIO_MODE_INT_FALLING
  • GPIO_MODE_INT_CHANGE

Value options:

  • GPIO_VALUE_LOW
  • GPIO_VALUE_HIGH
  • GPIO_VALUE_FLOATING

Ceefax IPV4

{
"octet0": 25,
"octet1": 97,
"octet2": 11,
"octet3": 42
}

Ceefax WAN

{
"mode": "CONNECTION_AUTO",
"dns1": {},
"dns2": {},
"dns3": {},
"ntp": [
{
"address": "pi.local",
"port": 22
}
],
"ntpEnabled": true,
"cellularImtEnabled": false
}

Parameters dns1, dns2 and dns3 are Ceefax IPV4 json objects.

Mode options are:

  • CONNECTION_AUTO
  • CONNECTION_CELLULAR
  • CONNECTION_IRIDIUM
  • DISCONNECT

Ceefax LAN Interface

{
"enabled": true,
"routerIp": {},
"subnet": {},
"dhcpEnabled": true,
"dhcpFrom": {},
"dhcpTo": {},
"leaseTime": 254325
}

Parameters routerIp, subnet, dhcpFrom and dhcpTo are Ceefax IPV4 json objects.

Ceefax Wi-Fi Interface

{
"mode": "ACCESS_POINT_BRIDGED",
"ssid": "My RockBLOCK Network",
"passphrase": "jb3kb2jdnm65l",
"channel": "CH_AUTO"
}

Mode options are:

  • DISABLED
  • ACCESS_POINT_BRIDGED

Channel options are:

  • CH_AUTO
  • CH_2G_1
  • CH_2G_6
  • CH_2G_11

Ceefax Local Device

{
"id": "2a89b194-ecbc-4bef-a7a9-b02e6cf957ac",
"name": "My Local Device",
"ip": {},
"outbound": {
"proto": "PROTOCOL_ICMP",
"oldDestIp": {},
"destSubnet": 3233,
"destPortStart": 25565,
"destPortEnd": 3301,
"iface": ["IFACE_ETHERNET"],
"destIp": {},
"hostname": "Either hostname or destIp provided"
},
"portForward": {
"iface": "IFACE_IRIDIUM",
"proto": "PROTOCOL_TCP",
"destPort": 25566,
"targetPort": 25565
},
"allowLocalDNS": false,
"autoAdded": true,
"keepalive": {
"proto": "PROTOCOL_ICMP",
"port": 3307,
"intervalSecs": 30
}
}

Parameters ip, oldDestIp and destIp are Ceefax IPV4 json objects.

Proto options are:

  • PROTOCOL_NULL
  • PROTOCOL_ICMP
  • PROTOCOL_TCP
  • PROTOCOL_UDP

Iface options are:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Ceefax Serial Net

{
"transport": "SER_TRANS_TCP_CLIENT",
"listen": {
"port": 25565,
"allowedIps": [{
"ip": {},
"subnet": 30
}],
"maxClients": 5,
"iface": "IFACE_ETHERNET"
},
"connect": {
"port": 25566,
"ip": {},
"connectionTimeout": 1000,
"idleTimeout": 1000
}
}

The ip parameter is a Ceefax IPV4 json object.

Parameters listen and connect are mutually exclusive.

Transport options are:

  • SER_TRANS_OFF
  • SER_TRANS_TCP_CLIENT
  • SER_TRANS_TCP_SERVER
  • SER_TRANS_UDP

Iface options are:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Ceefax Serial Settings

{
"enabled": true,
"serialPort": "PORT_A",
"serialMode": "MODE_RS232",
"baudRate": "BAUD_RATE_4800",
"flowControl": "FLOW_NONE",
"characterType": "CHARACTER_TYPE_8N1",
"rxEol": "\\r\\n",
"rxIdleTimout": 1000,
"rxBufferSize": 1000,
"mo": {},
"mt": {},
"appMode": "SER_APP_NET"
}

Parameters mo and mt are Ceefax Serial Net json objects.

Serial Port options are:

  • PORT_A
  • PORT_B
  • PORT_C
  • PORT_D

Serial Mode options are:

  • MODE_RS232
  • MODE_RS4XX_FULL_DUPLEX
  • MODE_RS4XX_HALF_DUPLEX

Baud Rate options are:

  • BAUD_RATE_4800
  • BAUD_RATE_9600
  • BAUD_RATE_19200
  • BAUD_RATE_38400
  • BAUD_RATE_57600
  • BAUD_RATE_115200
  • BAUD_RATE_230400
  • BAUD_RATE_460800
  • BAUD_RATE_921600

Flow Control options are:

  • FLOW_NONE
  • FLOW_SOFTWARE
  • FLOW_RTS_CTS

Character Type options are:

  • CHARACTER_TYPE_8N1
  • CHARACTER_TYPE_8E1
  • CHARACTER_TYPE_8O1
  • CHARACTER_TYPE_8M1
  • CHARACTER_TYPE_8S1
  • CHARACTER_TYPE_8N2
  • CHARACTER_TYPE_8E2
  • CHARACTER_TYPE_8O2
  • CHARACTER_TYPE_8M2
  • CHARACTER_TYPE_8S2
  • CHARACTER_TYPE_7N1
  • CHARACTER_TYPE_7E1
  • CHARACTER_TYPE_7O1
  • CHARACTER_TYPE_7M1
  • CHARACTER_TYPE_7S1
  • CHARACTER_TYPE_7N2
  • CHARACTER_TYPE_7E2
  • CHARACTER_TYPE_7O2
  • CHARACTER_TYPE_7M2
  • CHARACTER_TYPE_7S2

App Mode options are:

  • SER_APP_NET
  • SER_APP_GNSS

Ceefax Firmware Info

{
"type": "FIRMWARE_MAIN",
"version": "3.4.2",
"isUpdatable": true,
"updateInProgress": false
}

Firmware Type options:

  • FIRMWARE_MAIN
  • FIRMWARE_MCU
  • FIRMWARE_IRIDIUM
  • FIRMWARE_CELLULAR

Ceefax System Info

{
"processor": "ARM Cortex-A76",
"serial": "5132",
"xferTmpDir": "/etc/store",
"fwMain": {},
"fwMCU": {},
"fwIridium": {},
"appServerConfDir": "/etc/conf",
"platform": {},
"modems": [{
"imei": "30054365346909",
"serial": "6436",
"iccid": "749339770148334",
"manufacturer": "Iridium",
"model": "9770",
"signalLevel": 5,
"signalStrength": 4
}],
"networkInterfaces": [{
"name": "eth0",
"interface": "IFACE_ETHERNET",
"mac": {
"octet0": "8A",
"octet1": "1C",
"octet2": "F6",
"octet3": "75",
"octet4": "D2",
"octet5": "BB"
},
"up": true,
"carrier": true,
"mtu": 1500
}],
"voltages": {
"input":22.900625,
"v12":11.613125,
"v5":4.897460375,
"cap1":11.56939375,
"cap2":8.6933375,
"cap3":5.862346875,
"cap4":2.809375
},
"fwCellular": {}
}

Parameters fwMain, fwMCU, fwIridium and fwCellular are Ceefax Firmware Info json objects.

Interface options:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Ceefax Cellular Config

{
"apn": "internet.mnc012.mcc345.gprs",
"username": "username-example",
"password": "password-example",
"roaming": false,
"carrierProfile": "TELIT_PROFILE_UNKNOWN"
}

Carrier Profile options:

  • TELIT_PROFILE_UNKNOWN - This would be return if the telit module is initalising and firmware hasn't been able to request it yet
  • TELIT_NF_ATT - AT&T North America
  • TELIT_NF_VERIZON - Verizon North America
  • TELIT_NF_TMOBILE - T-Mobile North America
  • TELIT_NF_BELL - Bell North America
  • TELIT_NF_TELUS - Telus North America
  • TELIT_AP_TELSTRA - Telstra, only on AP modules
  • TELIT_GLOBAL - Global configuration

Ceefax Smart Connection Config

{
"primary": "IFACE_ETHERNET",
"secondary": "IFACE_IRIDIUM",
"trackIp": [],
"interval": 1000,
"timeout": 10000,
"downCount": 3,
"upCount": 1
}

Parameters primary and secondary refer to the main and secondary network interface connections being used, options are:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

The trackIp parameter is a Ceefax IPV4 json object.

Ceefax Unsolicited Event Config

{
"eventsEnabled": ["EVENT_LOCATION", "EVENT_STATUS_1H"]
}

Events enabled options:

  • EVENT_LOCATION - GNSS related event
  • EVENT_GPIO - GPIO related event, usually related to input event (change, falling, rising)
  • EVENT_BOOT_UP - The RR has booted and brought up the Iridium IMT connection, this can be used after OTA upgrades

These periodic reports will only work if the RockREMOTE has a valid time, so NTP needs to be enabled or GNSS enabled:

  • EVENT_STATUS_1H - Hourly reporting status of the RockREMOTE (synced with midnight UTC)
  • EVENT_STATUS_8H - Status reporting of the RockREMOTE every 8 hours (synced with midnight UTC)
  • EVENT_STATUS_1D - Status reporting of the RockREMOTE every day (midnight UTC)

Ceefax GNSS Config

{
"mode": "LOCATION_START_UP",
"fixes": "LOCATION_FIXES_1",
"intervalSecs": 60,
"timeoutSecs": 120
}

Mode options:

  • LOCATION_DISABLED
  • LOCATION_START_UP
  • LOCATION_PERIODIC
  • LOCATION_CONTINUOUS

Fixes options:

  • LOCATION_FIXES_1
  • LOCATION_FIXES_5
  • LOCATION_FIXES_10
  • LOCATION_FIXES_20

The intervalSecs parameter is the interval in seconds the GNSS modules is woken up for a fix. Only applies when mode is LOCATION_PERIODIC. 60-86400 (1 minute to 1 day)

The timeoutSecs parameter is the timeout in seconds when the location fixing will abandoned if it doesn't meet the fixes criteria. 30-3600 (30 seconds to 1 hours)

Ceefax IdIot Config

{
"mqttBrokerEnabled": true,
"mqttBrokerPort": 8883,
"mqttBrokerUsername": "example-user",
"mqttBrokerPassword": "strong-password",
"idiotEnabled": "true",
"idiotBatchMaxSizeBytes": 10000,
"idiotBatchMaxTimeSecs": 60
}

The idiotEnabled parameter enables the MQTT over IMT gateway functionality.

The idiotBatchMaxSizeBytes parameter sets the total size of queued messages at which a batch message is sent.

The idiotBatchMaxTimeSecs parameter sets the maximum number of seconds after first receiving a message that a batch is sent.

Ceefax GPIO Pin Config

{
"id": 0,
"mode": "GPIO_MODE_INPUT",
"value": "GPIO_VALUE_LOW",
"filter": "GPIO_DEBOUNCE_LOW"
}

Mode options:

  • GPIO_MODE_INPUT
  • GPIO_MODE_OUTPUT
  • GPIO_MODE_INT_RISING
  • GPIO_MODE_INT_FALLING
  • GPIO_MODE_INT_CHANGE

Value options:

  • GPIO_VALUE_LOW
  • GPIO_VALUE_HIGH
  • GPIO_VALUE_FLOATING

Filter options:

  • GPIO_DEBOUNCE_LOW
  • GPIO_DEBOUNCE_MEDIUM
  • GPIO_DEBOUNCE_HIGH

Only one of value or filter should be provided.

Ceefax IMT Config

{
"moTTL": 1000000,
"moRetryCount": 3
}

Parameter moTTL is the Time To Live (TTL) of MO, this value is in seconds but it recommend to be in magnitude of day(s) in the UI

Parameter moRetryCount is the number of times a MO message will be retried before it is thrown away. 0 is default and will be unlimited retries

Ceefax Event

{
"at": {},
"type": "EVENT_CONNECTING",
"description": "A wonderful description"
}

Event type options:

  • EVENT_CONNECTING
  • EVENT_CONNECTED
  • EVENT_CONNECT_ERROR
  • EVENT_DISCONNECTING
  • EVENT_DISCONNECTED
  • EVENT_DISCONNECT_ERROR
  • EVENT_SERIAL_RX
  • EVENT_REMOTE_RX
  • EVENT_REMOTE_CONNECTED
  • EVENT_REMOTE_DISCONNECT
  • EVENT_FIREWALL_RULE
  • EVENT_IMT_MQTT
  • EVENT_IMT_CDM
  • EVENT_IMT_FTP
  • EVENT_IMT - Generic event related to IMT MO

Ceefax FTP Config

{
"ftpLocalServerEnabled": true,
"ftpUsername": "username",
"passiveModeEnabled": true,
"passiveMinPort": 335,
"passiveMaxPort": 338,
"fileGlobPattern": ["*.txt"],
"transferToSentTime": 60,
"rule": "FTP_COMPLETE_RULE_NONE"
}

Rule options:

  • FTP_COMPLETE_RULE_NONE
  • FTP_COMPLETE_RULE_DELETE_WHEN_SENT

Ceefax IPV4 Destination Rule

{
"proto": "PROTOCOL_ICMP",
"oldDestIp": {},
"destSubnet": 32,
"destPortStart": 25565,
"destPortEnd": 25570,
"iface": []
}

Proto options:

  • PROTOCOL_ICMP
  • PROTOCOL_TCP
  • PROTOCOL_UDP

Iface options are:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD

Ceefax Global Rules

{
"outbound": [],
"allowLocalDNS": true
}

The outbound parameter is an array of Ceefax IPV4 Destination Rule json objects.

Ceefax Wireguard Config

{
"enabled": true,
"iface": {
"ip": {},
"mtu": 1500,
"privateKey": "",
"publicKey": ""
},
"peer": {
"publicKey": "",
"allowedIps": [{
"ip": {},
"subnet": 32
}],
"endPointPort": 25565,
"endPointIp": {},
"keepAlive": 300
}
}

Parameters ip and endPointIp are Ceefax IPV4 Address JSON objects.

Ceefax Omni Config

{
"supported": true,
"server": {
"address": "25.162.623.11",
"port": 22
}
}

Ceefax NAT Config

{
"nat1to1": [
{
"iface": "IFACE_ETHERNET",
"id": "0768d717-31af-41d2-a66d-6b6ff530b2c5"
}
]
}

Iface options:

  • IFACE_ETHERNET
  • IFACE_WLAN
  • IFACE_LOOPBACK
  • IFACE_LAN_BRIDGE
  • IFACE_IRIDIUM
  • IFACE_LTE
  • IFACE_WIREGUARD