Its state is unavailable (which is certain to cause “Entity is non-numeric” for the Gauge card).
I then publish {"temperature": 23 } to inkbird_f8300232744d/temperatures. However, the sensor’s reported state remains the same: unavailable
Why? Because it has not yet received information for the availability_topic.
Finally, I publish Online to inkbird_f8300232744d/availability. Now it knows the sensor’s availability status (Online) and its state (23) and displays the following:
In practice, both the temperature and the availability should be published as retained messages. It instructs the broker to store the values. If Home Assistant disconnects from the broker and then reconnects (like after a restart) it will immediately receive the stored values (as opposed to waiting for the next time the physical sensor reports its state and availability).
That will become inconvenient because whenever Home Assistant restarts and re-subscribes to the state_topic it will receive no payload (and the sensor will have no numeric value to report).
You might make the Gauge card part of a Conditional card. The condition would be the the sensor’s state is not unavailable.