I have an element, the protocol was written in house. I'm trying to configure the element using the HTTP API, as I have a loty of these to create, that all need to propulated with specific data, so I'm using Ansible to generate all the elements I need.
There's two parameters that need to be filled, 1501, which is a string, and 1500 that is a context menu. I can not get the context menu values to populate. If I do it via the GUI, I can see in the log the values get set a a JSON string is passed to the QAction. If I try setting 1500 via the API, nothing happens, I can see in the log the sting I send is passed into the QAction but it does nothing with it.
When I set the value via the GUI, I see the following in the logs:-
2026/03/25 09:50:01.467|SLProtocol - 16212 - CCGTEST|27100|CGroup::Execute|DBG|6|Finished executing group 2
2026/03/25 09:50:01.467|SLProtocol - 16212 - CCGTEST|17924|CTimer::TimerThreadFunc|DBG|6|Last group finished.
2026/03/25 09:50:01.525|SLProtocol - 16212 - CCGTEST|16852|CParameter::RunQActions|DBG|5|Find QAction 3
2026/03/25 09:50:01.525|SLProtocol - 16212 - CCGTEST|16852|CParameter::RunQActions|DBG|5|Run QAction 3
2026/03/25 09:50:01.525|SLProtocol - 16212 - CCGTEST|16852|CQAction::Run|INF|2|QAction [3] triggered by [pid=1500/idx=-1/pk=/user=Chris Glover SYS]
Input: new = <NULL>
Input: old = <NULL>
Input: extra = (3) : da2b7284921c47bf9f27a757a3df19aa;Add Service;6f013508-0736-4164-a6ea-ec9d2f8d8ef7
2026/03/25 09:50:01.529|SLProtocol - 16212 - CCGTEST|16852|CParameter::RunQActions|DBG|5|QAction 3 finished
2026/03/25 09:50:01.534|SLProtocol - 16212 - CCGTEST|16852|CParameter::SetValue|DBG|2|-> ActionRequest set value to VT_BSTR : {"type":"AddChannelService","domInstanceId":"6f013508-0736-4164-a6ea-ec9d2f8d8ef7","id":"9d6aa31c-6220-4cbb-a756-071a69dc4ad5","triggeredBy":"Chris Glover SYS","timeoutSeconds":15} ({"type":"AddChannelService","domInstanceId":"6f013508-0736-4164-a6ea-ec9d2f8d8ef7","id":"9d6aa31c-6220-4cbb-a756-071a69dc4ad5","triggeredBy":"Chris Glover SYS","timeoutSeconds":15})
2026/03/25 09:50:01.534|SLProtocol - 16212 - CCGTEST|16852|CParameter::SetValue|DBG|2| 000000 7B22747970 65223A2241 6464436861 6E6E656C53 {"type":"AddChannelS
000020 6572766963 65222C2264 6F6D496E73 74616E6365 ervice","domInstance
000040 4964223A22 3666303133 3530382D30 3733362D34 Id":"6f013508-0736-4
000060 3136342D61 3665612D65 6339643266 3864386566 164-a6ea-ec9d2f8d8ef
000080 37222C2269 64223A2239 6436616133 31632D3632 7","id":"9d6aa31c-62
000100 32302D3463 62622D6137 35362D3037 3161363964 20-4cbb-a756-071a69d
000120 6334616435 222C227472 6967676572 6564427922 c4ad5","triggeredBy"
000140 3A22436872 697320476C 6F76657220 535953222C :"Chris Glover SYS",
000160 2274696D65 6F75745365 636F6E6473 223A31357D "timeoutSeconds":15}
2026/03/25 09:50:01.534|SLProtocol - 16212 - CCGTEST|16852|CParameter::RunQActions|DBG|5|Find QAction 2
When I set via API, the log shows the data was sent, but nothing happens with it. I've tried sending both the string "da2b7284921c47bf9f27a757a3df19aa;Add Service;6f013508-0736-4164-a6ea-ec9d2f8d8ef7" and the JSON
"{"type":"AddChannelService","domInstanceId":"6f013508-0736-4164-a6ea-ec9d2f8d8ef7","id":"9d6aa31c-6220-4cbb-a756-071a69dc4ad5","triggeredBy":"Chris Glover SYS","timeoutSeconds":15}"
Any idea how I can set this value via API?
The parameters I'm trying to set are
Parameter name
Parameter description
Read parameter ID
Write parameter ID
Table parameter ID
Type
Discreet values
Can be monitored
Allow trending
Critical low
Major low
Minor low
Warning low
Normal
Warning high
Minor high
Major high
Critical high
ToolTip text
ToolTip subtext
ChannelService_DomInstanceId
DOM Instance ID (Channel Service)
1501
1501
String
FALSE
FALSE
ChannelService_ContextMenu
Context Menu for Channel Service
1500
1500
Discreet
Add Service:Add Service...|Separator:Separator|Remove Service:Remove Service
FALSE
FALSE
Thanks very much
I found the issue, I was trying to address the wrong ID's, constructing the action JSON and calling a different method resolved my issue