Good approach. There is a good chance the parser functionality is sufficient for what we need. You can now continue extracting more and more data from it.
We shouldn't log it, just skip it, or we should first test if the file exists or is readable to filter the obvious exceptions.
There is way more information to be obtained from dmidecode. The process of opening and parsing the output would need to be repeated, so is better to extract it.
There are multiple approaches…
I think this is a good start. In the next steps, you can think about how to generalise the approach, so you don't have to copy & paste the glue all the time. And also there are cases where…
notes
I don't see it in the api either: https://github.com/cp6/my-idlers/blob/main/routes/api.php . It probably needs to be implemented. Don't worry about it now, just work on the client.