This should be useful for diagnostic purposes. It's not brought out
into a proper sensor in HA, but it can be seen using the MQTT message
viewer in the HA device configuration tool.
It really isn't necessary to have minute-level granularity of soil
moisture (especially since it's just been sitting at "max" for 2
weeks!). Updating frequently is helpful for diagnostics, though. To
compromise, the sensor will now publish data every minute for the first
few minutes after it starts up, then reduce its update frequency to once
every hour.
Populating these options helps Home Assistant display the sensors better
in the UI.
The `publish_client` function has too many parameters as it is, making
it difficult to keep track of which value is passed as which argument.
Using a structure and designated initializers makes this a lot cleaner.