https://github.com/openremote/Documentation/wiki/OpenRemote-Rules-examples
$evt:Event(source matches "^.*_Temp_Mode-\\d+$", $source : temperature);
String TempStatus = $evt.getValue().toString();
Temperature_KNX = TempStatus
System.out.println(TempStatus);
$evt:Event(source matches "^.*_Temp_Mode-\\d+$")
I.e. remove $source: temperature and ;
I do this by using the value within the execute command.
IE.
execute.command( "DMX_Channel-set-by-HEX", hex.toString() );
Where "DMX_Channel....." Is the command I use to set a DMX value using a ${param}.
Then inject the value from the regex search, in this case "hex"
So, if I understand your role syntax correctly, you'd need something like :-
execute.command( "KNX_Temp_Set", TempStatus);
These example rules might be of help :-
https://github.com/openremote/Documentation/wiki/OpenRemote-Rules-examples
package org.openremote.controller.protocol;
global org.openremote.controller.statuscache.CommandFacade execute;
import java.util.*;import java.util.regex.*;
Rule "Temperature"Timer (int: 0s 1m) when eval(true) then
String TempStatus = "15.0";execute.command( "temperature_outside", TempStatus.toString() );
execute.command("Eetplaats aux (OFF)")end