OPC UA fully accomplishes all tasks. It's even possible, without creating a database, to make a variable that will remember readings over time. (Say, 10,000 points per hour). There is also a library for working with Python. You can use it to create your own client.
If you need to create buttons for local use, you need to scan the HAL environment using the rtapi_mutex_get() function. Then, by name or other parameters, find the address of the pin, signal, or parameter you need. This address can be used for a button, for recording in a database, or for displaying on a graph. Perhaps OPC UA history can record data faster than 50 milliseconds, but I haven't tried it.