You are right.
To prevent issues with the % sign, we should use the HTML entity as you said.
We need to change that in the next ebook update.
Thanks for your comment.
Having experimented with this projected I learned that the sensor values are only written to the serial monitor when a browser is actively connected to the ESP32 web server. I suppose that’s because the commands to read the sensors are initiated by the Javacode that has been uploaded to the browser. This would make asynchronous unsuitable for a system intended to take regular measurements independent of a browser.
In that specific example, getting the readings is triggered by the browser. It makes a request to the ESP32, it gets the readings and sends them back to the browser.
If you want to get readings independent of a browser, you need to set up your code in a different way.