Device Manager (Ceefax)
As used by RockREMOTE.
Structure
As found in LingoMT or LingoMO.
ceefaxMessages
- an encoded option in LingoMT or decoded in LingoMOmessage[]
- array containing one or more messagesid
- id string to be returned by responsestatus
- boolean indicating success of request- one of the following:
- connectionStateRequest
- connectionState
- getWanRequest
- getWanResponse
- updateWanRequest
- updateWanResponse
- getLanInterfaceRequest
- getLanInterfaceResponse
- updateLanInterfaceRequest
- updateLanInterfaceResponse
- getWifiInterfaceRequest
- getWifiInterfaceResponse
- updateWifiInterfaceRequest
- updateWifiInterfaceResponse
- getLocalDevicesRequest
- getLocalDevicesResponse
- upsertLocalDeviceRequest
- upsertLocalDevicesResponse
- deleteLocalDeviceRequest
- deleteLocalDeviceResponse
- getNATConfigRequest
- getNATConfigResponse
- updateNATConfigRequest
- updateNATConfigResponse
- getSerialSettingsRequest
- getSerialSettingsResponse
- updateSerialSettingsRequest
- updateSerialSettingsResponse
- setClientStatusRequest
- setClientStatusResponse
- getSystemInfoRequest
- getSystemInfoResponse
- configExportRequest
- configExportResponse
- configImportRequest
- configImportResponse
- logExportRequest
- logExportResponse
- setLogConfigRequest
- setLogConfigResponse
- getLogConfigRequest
- getLogConfigResponse
- passwordUpdateRequest
- passwordUpdateResponse
- getCellularRequest
- getCellularResponse
- cellularUpdateRequest
- cellularUpdateResponse
- getSmartConnectionRequest
- getSmartConnectionResponse
- smartConnectionUpdateRequest
- smartConnectionUpdateResponse
- rebootRequest
- rebootResponse
- pingRequest
- pingResponse
- locationRequest
- locationResponse
- lastKnownLocationRequest
- lastKnownLocationResponse
- unsolicitedEvent
- unsolicitedEventConfigUpdateRequest
- unsolicitedEventConfigUpdateResponse
- unsolicitedEventConfigRequest
- unsolicitedEventConfigResponse
- fileTransferStartUploadRequest
- fileTransferStartUploadResponse
- fileTransferStartDownloadRequest
- fileTransferStartDownloadResponse
- fileTransferBlockRequest
- fileTransferBlockResponse
- fileTransferRetryBlockRequest
- fileTransferFinishedRequest
- fileTransferFinishedResponse
- fileTransferAbortRequest
- fileTransferAbortResponse
- setGnssConfigRequest
- setGnssConfigResponse
- getGnssConfigRequest
- getGnssConfigResponse
- updateSleepConfigRequest
- updateSleepConfigResponse
- getSleepConfigRequest
- getSleepConfigResponse
- getIdiotConfigRequest
- getIdiotConfigResponse
- setIdiotConfigRequest
- setIdiotConfigResponse
- imtRequest
- imtResponse
- updateGpioRequest
- updateGpioResponse
- getGpioConfigRequest
- getGpioConfigResponse
- getGpioStateRequest
- getGpioStateResponse
- getImtConfigRequest
- getImtConfigResponse
- updateImtConfigRequest
- updateImtConfigResponse
- getImtStateRequest
- getImtStateResponse
- clearImtMoQueueRequest
- clearImtMoQueueResponse
- eventLogRequest
- eventLogResponse
- ceefaxGetFTPConfigRequest
- ceefaxGetFTPConfigResponse
- ceefaxUpdateFTPConfigRequest
- ceefaxUpdateFTPConfigResponse
- ceefaxUpdateFTPPasswordRequest
- ceefaxUpdateFTPPasswordResponse
- ceefaxFTPCommandRequest
- ceefaxFTPCommandResponse
- ceefaxGetGlobalRulesRequest
- ceefaxGetGlobalRulesResponse
- ceefaxUpdateGlobalRulesRequest
- ceefaxUpdateGlobalRulesResponse
- ceefaxRawIMTMoStatus
- ceefaxSendRawImtRequest
- ceefaxSendRawImtResponse
- ceefaxGetRawImtRequest
- ceefaxGetRawImtResponse
- ceefaxGetRawImtStatusRequest
- ceefaxGetRawImtStatusResponse
- ceefaxCommandRawImtRequest
- ceefaxCommandRawImtResponse
- ceefaxAckRawImtRequest
- ceefaxAckRawImtResponse
- ceefaxListRawImtTopicsRequest
- ceefaxListRawImtTopicsResponse
- ceefaxGetWireguardConfigRequest
- ceefaxGetWireguardconfigResponse
- ceefaxUpdateWireguardConfigRequest
- ceefaxUpdateWireguardConfigResponse
- ceefaxGetOmniConfigRequest
- ceefaxGetOmniConfigResponse
- ceefaxUpdateOmniConfigRequest
- ceefaxUpdateOmniConfigResponse
- ceefaxGetPersistentConfigRequest
- ceefaxGetPersistentConfigResponse
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 usedINVALID_HOSTNAME
- The given string has invalid characters to be a hostnameLOCAL_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 caseLOCAL_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 controlFLOW_CONTROL_NOT_SUPPORTED_ON_PORT
- This flow control is not supported on this port, i.e. PORT C and DPORT_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 valuesMT_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 tickNET_PORT_ALREADY_USED
- Validation error to indicate if the RockREMOTE knows this port is already usedIFACE_INVALID
- Specified listen interface is invalidCONNECTION_TIMEOUT_TOO_LONG
- If the connection timeout is above 5 minutesCONNECTION_TIMEOUT_TOO_SHORT
- If the connection timeout is below 5 secondsCONNECTION_IDLE_TIMEOUT_TOO_LONG
- If the connection idle timeout is above 120 minutesCONNECTION_IDLE_TIMEOUT_TOO_SHORT
- If the connection idle timeout is below 5 secondsLISTEN_MAX_CLIENTS_TOO_LOW
- If the maximum number of clients are 0LISTEN_MAX_CLIENTS_TOO_BIG
- If the maximum number of clients are more than 64RX_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 yetTELIT_NF_ATT
- AT&T North AmericaTELIT_NF_VERIZON
- Verizon North AmericaTELIT_NF_TMOBILE
- T-Mobile North AmericaTELIT_NF_BELL
- Bell North AmericaTELIT_NF_TELUS
- Telus North AmericaTELIT_AP_TELSTRA
- Telstra, only on AP modulesTELIT_GLOBAL
- Global configuration
Cellular Update Request
{
"cellularUpdateRequest": {
"config": {}
}
}
Parameter config
is a Ceefax Cellular Config JSON object.