Same problem:
Injecting 200 => Payload is 3
Injecting 600 => Payload is 0
So my solution is now based on your great idea with rbe:
[{"id":"a20ce12b.85f888","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"74ad1327.c11174","type":"function","z":"a20ce12b.85f888","name":"if raining => park","func":"if(msg.payload < 300){\n msg.payload = 3\n}else if(msg.payload > 500){\n msg.payload = 0\n}else{\n return null;\n}\nmsg.topic=\"husq-automower/0/mower/action\"\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":373.16668701171875,"y":172.16665649414062,"wires":[["ae75dc8c.80b3c8"]]},{"id":"8dfe9f6c.5345a8","type":"inject","z":"a20ce12b.85f888","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"200","payloadType":"num","x":163.16668701171875,"y":112.16665649414062,"wires":[["74ad1327.c11174"]]},{"id":"d80b219d.55aa38","type":"inject","z":"a20ce12b.85f888","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"400","payloadType":"num","x":173.16668701171875,"y":172.16665649414062,"wires":[["74ad1327.c11174"]]},{"id":"622a5cfc.acb8ec","type":"inject","z":"a20ce12b.85f888","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"600","payloadType":"num","x":173.16668701171875,"y":232.16665649414062,"wires":[["74ad1327.c11174"]]},{"id":"ae75dc8c.80b3c8","type":"rbe","z":"a20ce12b.85f888","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":573.1666870117188,"y":172.16665649414062,"wires":[["786bc850.6662a"]]},{"id":"9478755d.244bf8","type":"debug","z":"a20ce12b.85f888","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":577.1666870117188,"y":311.1666564941406,"wires":[]},{"id":"786bc850.6662a","type":"function","z":"a20ce12b.85f888","name":"if raining => park","func":"if(msg.payload > 0){\n msg.payload = msg.payload\n}else{\n return null;\n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":563.1666870117188,"y":239.16665649414062,"wires":[["9478755d.244bf8"]]}]
Will test it and thanks for the helpful inspiration,
Frank