@@ -398,8 +398,34 @@ public Task<CMDResult> PollValue(ValueID ValueID)
398398 return Result . Task ;
399399 }
400400
401- // FIX ME
402- public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Value , int ValueSize )
401+ // CHECKED - Variant 1: Normal parameter, defined in a config file
402+ public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Value )
403+ {
404+ Guid ID = Guid . NewGuid ( ) ;
405+
406+ TaskCompletionSource < CMDResult > Result = new TaskCompletionSource < CMDResult > ( ) ;
407+ Driver . Instance . Callbacks . Add ( ID , ( JO ) =>
408+ {
409+ CMDResult Res = new CMDResult ( JO ) ;
410+ Result . SetResult ( Res ) ;
411+ } ) ;
412+
413+ Dictionary < string , object > Request = new Dictionary < string , object > ( ) ;
414+ Request . Add ( "messageId" , ID ) ;
415+ Request . Add ( "command" , Enums . Commands . SetRawConfigParameterValue ) ;
416+ Request . Add ( "nodeId" , this . id ) ;
417+ Request . Add ( "parameter" , Parameter ) ;
418+ Request . Add ( "value" , Value ) ;
419+
420+
421+ string RequestPL = Newtonsoft . Json . JsonConvert . SerializeObject ( Request ) ;
422+ Driver . Instance . ClientWebSocket . SendInstant ( RequestPL ) ;
423+
424+ return Result . Task ;
425+ }
426+
427+ // CHECKED - Variant 2: Normal parameter, not defined in a config file
428+ public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Value , int ValueSize , Enums . ConfigValueFormat ValueFormat )
403429 {
404430 Guid ID = Guid . NewGuid ( ) ;
405431
@@ -417,13 +443,42 @@ public Task<CMDResult> ZWJSS_SetRawConfigParameterValue(int Parameter, int Value
417443 Request . Add ( "parameter" , Parameter ) ;
418444 Request . Add ( "value" , Value ) ;
419445 Request . Add ( "valueSize" , ValueSize ) ;
446+ Request . Add ( "valueFormat" , ValueFormat ) ;
447+
420448
421449 string RequestPL = Newtonsoft . Json . JsonConvert . SerializeObject ( Request ) ;
422450 Driver . Instance . ClientWebSocket . SendInstant ( RequestPL ) ;
423451
424452 return Result . Task ;
425453 }
426454
455+ // CHECKED - Variant 3: Partial parameter, must be defined in a config file
456+ public Task < CMDResult > ZWJSS_SetRawConfigParameterValue ( int Parameter , int Bitmask , int Value )
457+ {
458+ Guid ID = Guid . NewGuid ( ) ;
459+
460+ TaskCompletionSource < CMDResult > Result = new TaskCompletionSource < CMDResult > ( ) ;
461+ Driver . Instance . Callbacks . Add ( ID , ( JO ) =>
462+ {
463+ CMDResult Res = new CMDResult ( JO ) ;
464+ Result . SetResult ( Res ) ;
465+ } ) ;
466+
467+ Dictionary < string , object > Request = new Dictionary < string , object > ( ) ;
468+ Request . Add ( "messageId" , ID ) ;
469+ Request . Add ( "command" , Enums . Commands . SetRawConfigParameterValue ) ;
470+ Request . Add ( "nodeId" , this . id ) ;
471+ Request . Add ( "parameter" , Parameter ) ;
472+ Request . Add ( "bitMask" , Bitmask ) ;
473+ Request . Add ( "value" , Value ) ;
474+
475+
476+ string RequestPL = Newtonsoft . Json . JsonConvert . SerializeObject ( Request ) ;
477+ Driver . Instance . ClientWebSocket . SendInstant ( RequestPL ) ;
478+
479+ return Result . Task ;
480+ }
481+
427482 // CHECKED
428483 public Task < CMDResult > RefreshValues ( )
429484 {
0 commit comments