The following documentation is for the Solo device CFLink protocol messages.
Note that the Solo does NOT feature an on-board CFLink port, but it still uses the same protocol for communication over Ethernet.
By default, the Solo communicates the CFLink Protocol via:
The Solo has IR ports, for which documentation is available in the IR Port docs.
Note: To send IR signals via the on-board blaster, you use the same IR Port commands described above, targeting P07
(Port 7).
The Solo has RS232 ports, for which documentation is available in the On-Board RS232 docs.
The WHO
query is used to discover what device is at a specific address.
The WHO
reply will be automatically broadcast as a notification to the network when a device is powered up or reset.
The WHO
query does not have any associated data.
> [F2]<ID>[F3]QCFXWHO[F4][F5][F5]
< [F2]<ID>[F3]RSOLWHO[F4]CFSOLO:<SERIAL#>:<APP_VER>:<CFLINK_VER>:<IP4>:<MAC>:<DEVICE_NAME>,M1:<CARD_1>,M2:<CARD_2>[F5][F5]
SOLO
, but you can name the device anything you desire for your identification purposes.BLANK
if no card is detected.BLANK
if no card is detected.
// Request the details for the device at CFLink ID [03] > [F2][03][F3]QCFXWHO[F4][F5][F5] // The Reply if a Solo is found, with no cards inserted, and the default device name < [F2][03][F3]RSOLWHO[F4]CFSOLO:0004A3C4EBA2:1.0.1:1.0.4:192.168.0.100:00.04.A3.C4.EB.A2:SOLO,M1:BLANK,M2:BLANK[F5][F5]
The CFG
query is used to obtain details about the configuration of a specific Solo unit.
The CFG
query does not have any associated data.
> [F2]<ID>[F3]QSOLCFG[F4][F5][F5]
< [F2]<ID>[F3]RSOLCFG[F4]<IPADDRESS>:<SUBNETMASK>:<GATEWAY>:<DNS>:<DHCP>:<UDPBROADCAST>:<CONNECTIONS>[F5][F5]
0
or 1
).0
or 1
).
// Query configuration of Solo on ID [03] > [F2][03][F3]QSOLCFG[F4][F5][F5] // Configuration query reply < [F2][03][F3]RSOLCFG[F4]192.168.0.100:255.255.255.0:192.168.0.1:1:1[F5][F5]
The NAM
query is used to query friendly names given to each port on the Solo.
The NAM
query can be targeted at any of the port types as follows:
SOL
= Query the on-board dry contact input port namesCOM
= Query the on-board RS232 port namesIRX
= Query the on-board IR port names
The NAM
query does not have any associated data. Simply change the target type from the list above to get the name of the specific port types.
> [F2]<ID>[F3]Q<TARGET>NAM[F4][F5][F5]
< [F2]<ID>[F3]R<TARGET>NAM[F4]<PORT>:<NAME>|<PORT>:<NAME>|<PORT>:<NAME>|<PORT>:<NAME>[F5][F5]
P##
, eg. P01
, P02
, etc.
// Request the names for the IR ports in the Solo at CFLink ID [03] > [F2][03][F3]QIRXNAM[F4][F5][F5] // The reply, with the default names for each port < [F2][03][F3]RIRXNAM[F4]P01:IR 1|P02:IR 2|P03:IR 3|P04:IR 4|P05:IR 5|P06:IR 6|P07:IR 7[F5][F5] // Request the names for the dry contact ports in the Solo at CFLink ID [03] > [F2][03][F3]QSOLNAM[F4][F5][F5] // The reply, with the default names for each port < [F2][03][F3]RSOLNAM[F4]P01:DRY 1|P02:DRY 2|P03:DRY 3|P04:DRY 4[F5][F5] // Request the names for the RS232 ports in the Solo at CFLink ID [03] > [F2][03][F3]QCOMNAM[F4][F5][F5] // The reply, with the default names for each port < [F2][03][F3]RCOMNAM[F4]P01:COM 1|P02:COM 2[F5][F5]
The Solo features 5 communication slots that can be used to connect to third party networked devices.
Each slot also has a dedicated bridging port, allowing TCP Clients (such as iPads, other control systems, etc) to send/receive data to the third part networked device.
The SLT query returns the configuration of a specific communication slot.
If not slot number is given, then all slots will report their configuration in separate replies.
> [F2]<ID>[F3]QSOLSLT[F4]<SLOT#>[F5][F5]
< [F2]<ID>[F3]RSOLSLT[F4]<SLOT#>:<MODE>:<IPADDRESS>:<PORT>:<TIMEOUT>:<RECONNECT>:<MAX_BRIDGE_SOCKETS>:<NUM_BRIDGE_CONNECTIONS>:<CONNECTED>:<STARTUP_MACRO>[F5][F5]
OFF
, TCP Client TCP
, UDP Bi-directional UDP
, UDP Transmit Only UDPT
.0
= Disable timeout. Minimum of 5 seconds to avoid network overhead. Maximum of 65535 seconds.0
for immediate connection retry. Maximum of 65535 seconds.10301
for slot 1, 10305
for slot 5). A maximum of 10 bridged connections can be statically shared between all 5 communication slots.
// Query the configuration for slot 1 of Solo on ID [03] > [F2][03][F3]QSOLSLT[F4]1[F5][F5] // Reply when slot configured as a TCP Client < [F2][03][F3]RSOLSLT[F4]1:TCP:192.168.0.10:23:0:0:2:0:1:Macro Name[F5][F5] // Query the configuration for slot 2 of Solo on ID [03] > [F2][03][F3]QSOLSLT[F4]2[F5][F5] // Reply when slot configured for UDP Bi-directional < [F2][03][F3]RSOLSLT[F4]12:UDP:255.255.255.255:49155:0:0:0:0:1[F5][F5]
The TME
query will return the current configuration of the real time clock on-board the Solo.
The TME
query does not have any associated data.
> [F2]<ID>[F3]QSOLTME[F4][F5][F5]
< [F2]<ID>[F3]RSOLTME[F4]<YEAR>:<MONTH>:<DATE>:<DAYOFWEEK>:<HOUR>:<MINUTE>:<SECOND>:<UTCTIMEZONE>:<UTCTIMEZONESTR>:<NTP_SYNC>:<NTP_SERVER_ID>[F5][F5]
01
-12
).01
-31
).1
, Saturday = 7
(1
-7
)00
-23
)00
-59
)00
-59
)Available time server IDs:
1
= pool.ntp.org2
= europe.pool.ntp.org3
= asia.pool.ntp.org4
= oceania.pool.ntp.org5
= north-america.pool.ntp.org6
= south-america.pool.ntp.org7
= africa.pool.ntp.org
// Query time from Solo on CFLink ID [03] > [F2][03][F3]QSOLTME[F4][F5][F5] // Reply < [F2][03][F3]RSOLTME[F4]2015:05:27:3:18:12:12:29:UTC+8.00:1:4[F5][F5]
Query the list of variables stored on the device. List of variable names, separated by colons :
will be returned.
A maximum of 50 variables can be stored and will all be returned by name.
The VARLST
query does not have any associated data.
> [F2]<ID>[F3]QVARLST[F4][F5][F5]
< [F2]<ID>[F3]RVARLST[F4]<VAR_NAME_1>:<VAR_NAME_2>:<VAR_NAME_3>[F5][F5]
// Query list of variables from Solo on CFLink ID [03] > [F2][03][F3]QVARLST[F4][F5][F5] // Reply < [F2][03][F3]RVARLST[F4]variable1:variable2:someName[F5][F5]
Query the current value of a variable stored on the device.
> [F2]<ID>[F3]QVARGET[F4]<VAR_NAME>[F5][F5]
< [F2]<ID>[F3]RVARGET[F4]<VAR_NAME>:<VALUE>[F5][F5]
// Query value of variable named 'room_state' from Solo on CFLink ID [03] > [F2][03][F3]QVARGET[F4]room_state[F5][F5] // Reply < [F2][03][F3]RVARGET[F4]room_state:on[F5][F5]
The CFG
command will configure the network settings used by the Solo.
The changes will not take effect until the Solo is rebooted.
> [F2]<ID>[F3]CSOLCFG[F4]<IPADDRESS>:<SUBNETMASK>:<GATEWAY>:<DNS>:<DHCP>:<UDPBROADCAST>[F5][F5]
1
or 0
).1
or 0
).
// The reply is an echo of the command in reply format, with no data. < [F2]<ID>[F3]RSOLCFG[F4][F5][F5]
// Configure network settings of Solo on CFLink ID [03] > [F2][03][F3]CSOLCFG[F4]192.168.0.59:255.255.255.0:192.168.0.1:192.168.0.1:0:1[F5][F5] // Reply < [F2][03][F3]RSOLCFG[F4]0[F5][F5]
The SLT
(Slot) command is used to configure a communication slot on the Solo.
The change will not take effect until the Solo is rebooted.
> [F2]<ID>[F3]CSOLSLT[F4]<SLOT#>:<MODE>:<IPADDRESS>:<PORT>:<TIMEOUT>:<RECONNECT>:<MAX_BRIDGE_SOCKETS>:<STARTUP_MACRO>[F5][F5]
OFF
, TCP Client TCP
, UDP Bi-directional UDP
, UDP Transmit Only UDPT
.0
= Disable timeout. Minimum of 5 seconds to avoid network overhead. Maximum of 65535 seconds.0
for immediate connection retry. Maximum of 65535 seconds.10301
for slot 1, 10305
for slot 5). A maximum of 10 bridged connections can be statically shared between all 5 communication slots.
// The reply is an echo of the command in reply format. // The change does not take effect until the Solo is rebooted, so the reply will not contain any data. < [F2]<ID>[F3]RSOLSLT[F4][F5][F5]
// Configure slot 1 to be a TCP Client, on Solo ID [03]. Connect to IP address 192.168.0.10 on port 23. Allow up to 5 bridged clients to connect to this bridged socket. > [F2][03][F3]CSOLSLT[F4]1:TCP:192.168.0.10:23:0:10:5[F5][F5] // Reply < [F2][03][F3]RSOLSLT[F4]1[F5][F5]
The TME command is used to set the time and date settings for the real time clock on-board the Solo.
> [F2]<ID>[F3]CSOLTME[F4]<YEAR>:<MONTH>:<DATE>:<DAYOFWEEK>:<HOUR>:<MINUTE>:<SECOND>:<UTCTIMEZONE>:<NTP_SYNC>:<NTP_SERVER_ID>[F5][F5]
01
-12
).01
-31
).1
, Saturday = 7
(1
-7
)00
-23
)00
-59
)00
-59
)Available time server IDs:
1
= pool.ntp.org2
= europe.pool.ntp.org3
= asia.pool.ntp.org4
= oceania.pool.ntp.org5
= north-america.pool.ntp.org6
= south-america.pool.ntp.org7
= africa.pool.ntp.org
// Reply with the data used to configure the time/date. < [F2]<ID>[F3]RSOLTME[F4]<YEAR>:<MONTH>:<DATE>:<DAYOFWEEK>:<HOUR>:<MINUTE>:<SECOND>:<UTCTIMEZONE>:<UTCTIMEZONESTR>:<NTP_SYNC>:<NTP_SERVER_ID>[F5][F5]
// Configure the real time clock on a Solo ID [03] > [F2][03][F3]CSOLTME[F4]2015:05:27:3:18:12:12:29:1:4[F5][F5] // Reply < [F2][03][F3]RSOLTME[F4]2015:05:27:3:18:12:12:29:UTC+8.00:1:4[F5][F5]
The SPC command is used to configure the RS232 settings for the on-board serial ports.
For the 2 on-board bi-directional RS232 ports, follow the protocol documentation for on-board serial ports.
For the one way (transmit only) RS232 port functionality of the onboard IR ports, use the same protocol documentation as the on-board bi-directional RS232 ports, but replace SOL
or CFX
CFLink target data with IRX
.
// Configure the on-board 1-way serial port for a Solo on ID [03] to enable IR Port 1 to transmit RS232 commands at 9600 baud, 8:None:1. > [F2][03][F3]CIRXSPC[F4]P01:232:9600:8:N:1:0[F5][F5] // Reply contains settings for all 1-way RS232 configurations for each IR port < [F2][03][F3]RIRXSPC[F4]P01:232:9600:8:N:1:0|P02:232:115200:8:N:1:0|P03:232:115200:8:N:1:0|P04:232:115200:8:N:1:0|P05:232:115200:8:N:1:0|P06:232:115200:8:N:1:0[F5][F5]
The SND
(Send) command allows you to send data to a specific communication slot defined on the Solo.
> [F2]<ID>[F3]TSOLSND[F4]<SLOT#>:<DATA>[F5][F5]
// In an effort to reduce network traffic, the reply will not contain the <DATA> sent, only the slot it was sent to. < [F2]<ID>[F3]RSOLSND[F4]<SLOT#>[F5][F5]
// Send a command to an ethernet device connected to slot 1, for Solo on CFLink ID [03] > [F2][03][F3]TSOLSND[F4]1:Hello World!\x0D[F5][F5] // Reply < [F2][03][F3]RSOLSND[F4]1[F5][F5]
The HTP
(HTTP) command allows you to send a HTTP request from the Solo and receive a response which can be processed by the rules engine.
> [F2]<ID>[F3]TSOLHTP[F4]<URL>|<METHOD>|<HEADERS>|<BODY>[F5][F5]
GET
if only a <URL>
is defined. Options are: GET
, POST
. Other methods might be added in future.
// Any replies to the HTTP request will be reported via CFLink formatted command: < [F2]<ID>[F3]RSOLHTP[F4]<URL>|<STATUS>|<HEADERS>|<BODY>[F5][F5]
// Send HTTP POST request to a local device on the network (without any header data) > [F2][03][F3]TSOLHTP[F4]http://192.168.0.100/device/1|POST||id=10&action=on[F5][F5] // Reply < [F2][03][F3]RSOLHTP[F4]http://192.168.0.100/device/1|200||id=10&status=on[F5][F5]
The RUN
command allows you to trigger a macro defined on the Solo to instantly run.
> [F2]<ID>[F3]TSOLRUN[F4]<MACRO_NAME>[F5][F5]
< [F2]<ID>[F3]RSOLRUN[F4]<MACRO_NAME>[F5][F5]
// Trigger a macro called 'Good Night' to run > [F2][03][F3]TSOLRUN[F4]Good Night[F5][F5] // Reply < [F2][03][F3]RSOLRUN[F4]Good Night[F5][F5]
Set the current value of a variable stored on the device. If no variable is already defined using the given variable name, a new variable will be created. A max of 50 variables can be stored on the device.
> [F2]<ID>[F3]CVARSET[F4]<VAR_NAME>:<VALUE>[F5][F5]
:
.
< [F2]<ID>[F3]RVARSET[F4]<VAR_NAME>:<VALUE>[F5][F5]
// Set the value of variable named 'room_state' to 'off' from Solo on CFLink ID [03] > [F2][03][F3]CVARSET[F4]room_state:off[F5][F5] // Reply < [F2][03][F3]RVARSET[F4]room_state:off[F5][F5]
01
- UTC-120002
- UTC-110003
- UTC-100004
- UTC-93005
- UTC-90006
- UTC-80007
- UTC-70008
- UTC-60009
- UTC-50010
- UTC-43011
- UTC-40012
- UTC-33013
- UTC-30014
- UTC-20015
- UTC-10016
- UTC-017
- UTC+10018
- UTC+20019
- UTC+30020
- UTC+33021
- UTC+40022
- UTC+43023
- UTC+50024
- UTC+53025
- UTC+54526
- UTC+60027
- UTC+63028
- UTC+70029
- UTC+80030
- UTC+84531
- UTC+90032
- UTC+93033
- UTC+100034
- UTC+103035
- UTC+110036
- UTC+113037
- UTC+120038
- UTC+124539
- UTC+130040
- UTC+1400