Is ring-mqtt-hassio-addon ONLY for Hass.IO? Is it any different from what I’ve already done “manually”?
Yes, it’s just a simple way for users of Hass.IO to install the script via the addon capability in Hass.IO, functionally there is no difference and I don’t personally use Hass.IO as I really find it just makes things more complex for me, which is weirdly the opposite of it’s goal.
I’m using docker-compose. Should ring-mqtt wait for any other services to start?
MQTTHASSTOPIC=hass/status - I never see this in my MQTT topics in the HA developer tools. What is it?
Birth and Last WIll - I don’t understand the purpose of this.
I’m going to answer all of these together because they are really inter-related. Since the script uses MQTT it has no way to know anything about HASS at all, no idea whether it’s running or not and no method to know if it is restarted and needs to re-send discovery/state data. In general you’d want to start HASS before starting the script. However, the script does have some methods to mitigate if it’s started prior to HASS, when the script first starts and connects to MQTT (or any time it reconnects to MQTT) it starts sending autodiscovery messages and updated state. It does this 10 times at 30 second intervals so, even if the script starts prior to HASS, as long as HASS starts within 5 minutes it’s still OK.
However, what happens, for example, if a configuration error keeps HASS from starting, or HASS is restarted later manually? In this case the script has no idea about this so you either have to manually restart it OR you can configure HASS to send MQTT birth messages. If you configure HASS to enable MQTT birth messages then, when HASS starts and is ready to receive device/state updates, it will send a message to hass/status of “online”. The script looks for this by default, if it sees a new “online” message it knows that HASS was restarted and it re-sends discovery/state info for all devices.
Basically, configuring HASS with birth/last will messages lets the script monitor and be aware of the running state of HASS itself and take appropriate action. It makes the integration more automatic, but isn’t technically required, you just might have to manually restart ring-mqtt after a HASS restart if state information is out-of-data. Since you haven’t enabled birth/last will in HASS, that’s why you’ve seen no messages there (I argue it should be enabled by default because it doesn’t hurt anything but what do I know).
Where is the config file? I currently configure this in my docker-compose.yaml, but would it be better to put the env variables in a ring-mqtt config?
Currently if using the docker version there is no config file, on the environment variables. Originally this was because I didn’t want to require any persistent storage for the docker version, but this may change in the next version since I will likely need to include a mount for persistent storage anyway to store new refresh tokens whenever it’s updated.
Hope that answers your questions.