@zenofmud , thanks for your help, and getting the right techno speak. Yes, I am trying to change the Context stored object, whether it is replacing a element in the object or adding new sub objects to the Parent object in Context.
@bakman2, thanks for the relevation of using the backtic in JSONata, a behaviour I had not found yet. But again it is part of JSONata, so can be used to read a variable Context variable but not set it. But it can still help, but will require three operations in a change node rather than one (ie, SET the context variable to a temporary variable, change the temporary variable by adding, changing the temporary Variable using backtick, then replace the Context Variable with the updated temporary variable. That is progress. I have managed to add a new but of structure (as in example, I added Study using $merge) but not yet managed to change an existing Value (I tried to change Kitchen.Temp but just ended up loosing data like Start and Stop!)
[{"id":"a2127890.70a508","type":"inject","z":"d05da15.a8b596","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"Study","payload":"15.5","payloadType":"num","x":195,"y":155,"wires":[["64754b1c.bb2784"]]},{"id":"64754b1c.bb2784","type":"change","z":"d05da15.a8b596","name":"","rules":[{"t":"set","p":"House","pt":"msg","to":"House","tot":"flow"},{"t":"set","p":"House","pt":"msg","to":"$merge([House, {`topic`:{\"Temp\":`payload`}}])\t","tot":"jsonata"},{"t":"set","p":"House","pt":"flow","to":"House","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":425,"y":155,"wires":[["257945c7.16b17a"]]},{"id":"257945c7.16b17a","type":"debug","z":"d05da15.a8b596","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":685,"y":155,"wires":[]},{"id":"1e4648bf.768787","type":"inject","z":"d05da15.a8b596","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"Study","payload":"","payloadType":"date","x":203,"y":209.99999237060547,"wires":[["13135251.45720e"]]},{"id":"13135251.45720e","type":"change","z":"d05da15.a8b596","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$flowContext(\"House.\"&topic&\".Temp\")","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":423,"y":209.99999237060547,"wires":[["354f8270.ffecde"]]},{"id":"354f8270.ffecde","type":"debug","z":"d05da15.a8b596","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":713,"y":209.99999237060547,"wires":[]},{"id":"ab266f1b.4a31c","type":"catch","z":"d05da15.a8b596","name":"","scope":null,"uncaught":false,"x":293,"y":309.99999237060547,"wires":[["da3e8088.d4077"]]},{"id":"da3e8088.d4077","type":"debug","z":"d05da15.a8b596","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":523,"y":309.99999237060547,"wires":[]},{"id":"3e14581f.2ac1e8","type":"inject","z":"d05da15.a8b596","name":"Initiate Flow Variable","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":93,"wires":[["88e7b4d0.31e158"]]},{"id":"88e7b4d0.31e158","type":"change","z":"d05da15.a8b596","name":"","rules":[{"t":"delete","p":"House","pt":"flow"},{"t":"set","p":"House","pt":"flow","to":"{\"Lounge\":{\"Temp\":25,\"Start\":500,\"Stop\":1600},\"Kitchen\":{\"Temp\":25,\"Start\":500,\"Stop\":1600}}","tot":"json"},{"t":"set","p":"payload","pt":"msg","to":"House","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":420,"y":93,"wires":[["257945c7.16b17a"]]}]
@Steve-Mcl, I am changing either existing elements in the structure of the Context Variable, or adding new sub elements to it. The whole idea of what I propose is that one node can process flows for several entities (ie rooms in a house) without it knowing what are the rooms when programmed, rather than having a node for each room, and needing to add a node when a new room is added to that being managed. The context flow variable would contain information in perpetual storage (like set temperature for room heating, schedule time for on/off, identity (ie MQTT topic) of any actuator to turn heat on/off etc).
I do have this working in a function node, and a bit simpler code than yours above Steve, I find flow.set() on an object will change just that part of the object if it exists, but otherwise will add it.