Hello @Konstantinos Krikelis,
the Azure IoT Hub is perfect for sending data to the cloud and optionally sending commands back for a full control loop.
I'm not sure where the HMI is living, but I expect this is some solution in the cloud.
Then you want:
industrial router -> Azure IoT Hub -> [something] -> HMI
It's not clear from what you share how data is provided to the HMI.
If the HMI can read data from databases eg. Sql Server or Azure Data Explorer (just like Grafana) then you need to persist the incoming data in that database:
industrial router -> Azure IoT Hub -> Azure Stream Analytics|Azure Function -> DB <- HMI
But perhaps your HMI can ingest streaming data (like using a REST endpoint or MQTT endpoint).
In that case, you need to call the endpoint for each incoming message.
An Azure Function is most convenient:
industrial router -> Azure IoT Hub -> Azur function -> HMI endpoint -> HMI
An alternative is using an HMI in the local network.
In that case, why should you use the IoT Hub between the router and HMI?
How about using an edge solution.
Here is an example of using Azure IoT Edge for local logic.
If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.