RogerSelwyn/mqtt_discoverystream_ha

Integration holds Home Assistant shutdown for 60s

Closed this issue · 7 comments

During HA shutdown procedure, mqtt_discoverystream_ha holds the shutdown procedure for 60 seconds (must be a timeout). This appeared following upgrades to:
. HA 2024.4
. mqtt_discoverystream_ha 1.1.3

Config:

mqtt_discoverystream:
  base_topic: homeassistant-discoverystream
  publish_attributes: false
  publish_timestamps: true
  publish_discovery: true
  include:
    entities:
      - switch.home_occupied
      - climate.dining_room
      - switch.homekit_geofence_arrive
      - switch.homekit_geofence_leave

Logs during shutdown:

2024-04-06 14:47:46.808 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51955)
2024-04-06 14:47:46.810 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51956)
2024-04-06 14:47:46.810 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51957)
2024-04-06 14:47:46.811 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51958)
2024-04-06 14:47:46.812 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51959)
2024-04-06 14:47:46.813 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51960)
2024-04-06 14:47:46.813 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51961)
2024-04-06 14:47:46.814 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51962)
2024-04-06 14:47:46.815 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51963)
2024-04-06 14:47:46.816 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51964)
2024-04-06 14:47:56.827 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51966)
2024-04-06 14:47:56.829 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51967)
2024-04-06 14:47:56.836 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51968)
2024-04-06 14:47:56.841 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51969)
2024-04-06 14:47:56.844 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51970)
2024-04-06 14:47:56.846 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51971)
2024-04-06 14:47:56.849 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51972)
2024-04-06 14:47:56.851 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51973)
2024-04-06 14:47:56.853 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51974)
2024-04-06 14:47:56.855 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51975)
2024-04-06 14:48:06.830 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51976)
2024-04-06 14:48:06.832 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51977)
2024-04-06 14:48:06.839 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51978)
2024-04-06 14:48:06.843 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51979)
2024-04-06 14:48:06.846 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51980)
2024-04-06 14:48:06.850 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51981)
2024-04-06 14:48:06.852 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51982)
2024-04-06 14:48:06.854 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51983)
2024-04-06 14:48:06.856 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51984)
2024-04-06 14:48:06.857 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51985)
2024-04-06 14:48:16.838 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51986)
2024-04-06 14:48:16.845 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51987)
2024-04-06 14:48:16.847 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51988)
2024-04-06 14:48:16.850 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51989)
2024-04-06 14:48:16.852 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51990)
2024-04-06 14:48:16.853 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51991)
2024-04-06 14:48:16.858 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51992)
2024-04-06 14:48:16.862 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51993)
2024-04-06 14:48:16.864 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51994)
2024-04-06 14:48:26.846 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51995)
2024-04-06 14:48:26.852 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51996)
2024-04-06 14:48:26.856 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51997)
2024-04-06 14:48:26.859 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51998)
2024-04-06 14:48:26.864 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 51999)
2024-04-06 14:48:26.868 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52000)
2024-04-06 14:48:26.872 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52001)
2024-04-06 14:48:26.874 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52002)
2024-04-06 14:48:26.875 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52003)
2024-04-06 14:48:36.850 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52004)
2024-04-06 14:48:36.856 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52005)
2024-04-06 14:48:36.859 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52006)
2024-04-06 14:48:36.865 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52007)
2024-04-06 14:48:36.869 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52008)
2024-04-06 14:48:36.873 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52009)
2024-04-06 14:48:36.879 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52010)
2024-04-06 14:48:36.882 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52011)
2024-04-06 14:48:36.883 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52012)
2024-04-06 14:48:46.854 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52013)
2024-04-06 14:48:46.858 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52014)
2024-04-06 14:48:46.861 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52015)
2024-04-06 14:48:46.867 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52016)
2024-04-06 14:48:46.871 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52017)
2024-04-06 14:48:46.874 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52018)
2024-04-06 14:48:46.885 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52019)
2024-04-06 14:48:46.885 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52020)
2024-04-06 14:48:56.856 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52021)
2024-04-06 14:48:56.868 WARNING (MainThread) [homeassistant.components.mqtt.client] No ACK from MQTT server in 10 seconds (mid: 52022)

I’ll take a look. Didn’t think it should be waiting for ack at QoS 0.

Do you just have 4 entities, or 67?

I indeed have 67 entities in total ... but only 4 of them are exposed to mqtt_discoverystream_ha per include/entities configuration.

I don't see why you are getting 67 mqtt acks then, since at shutdown the integration only sends messages for the included items, so if there was going to be anything it should just be 4. Have you tried disabling the integration (just comment it out in your config), then rebooting to bring the config into play and then trying a restart/shutdown.

Also have you looked in something like MQTT explorer to see what messages are being sent, even without an ack, they are probably getting through.

I'll re-check my filtering logic to make sure I haven't missed anything.

Closing this as it does not look like it is related to this integration but rather HA Core. I will keep investigating.

Remarks:

  1. My issue is similar to home-assistant/core#63763 which occured in 2022 ... and was solved in between. Hopefully upcoming HA release will fix it.
  2. The 67 missing ACK warnings are actually bound to another integration enable on my system: mqtt_statestream (which exposes to MQTT all my entities). If I comment the mqtt_statestream, then I only see the missing ACK warning for the entities exposed to mqtt_discoverystream_ha.
    See conf:
mqtt_statestream:
  base_topic: homeassistant
  publish_attributes: true
  publish_timestamps: true

Sorry for the annonyance.

No probs. You shouldn't need both integrations. But that may not be true if there are entities discovery stream won't handle. Not tried it for all entities...

For future reference the issue is fixed in HA 2024.5 (was introduced in 2024.4).