mirror of
https://github.com/home-assistant/core.git
synced 2025-08-04 02:58:23 +00:00
Fix MQTT debug info for subscriptions with wildcard. (#33744)
This commit is contained in:
parent
8392406476
commit
8a68b1a3a9
@ -389,7 +389,7 @@ def wrap_msg_callback(msg_callback: MessageCallbackType) -> MessageCallbackType:
|
||||
|
||||
@wraps(msg_callback)
|
||||
async def async_wrapper(msg: Any) -> None:
|
||||
"""Catch and log exception."""
|
||||
"""Call with deprecated signature."""
|
||||
await msg_callback(msg.topic, msg.payload, msg.qos)
|
||||
|
||||
wrapper_func = async_wrapper
|
||||
@ -397,7 +397,7 @@ def wrap_msg_callback(msg_callback: MessageCallbackType) -> MessageCallbackType:
|
||||
|
||||
@wraps(msg_callback)
|
||||
def wrapper(msg: Any) -> None:
|
||||
"""Catch and log exception."""
|
||||
"""Call with deprecated signature."""
|
||||
msg_callback(msg.topic, msg.payload, msg.qos)
|
||||
|
||||
wrapper_func = wrapper
|
||||
@ -809,7 +809,10 @@ class MQTT:
|
||||
|
||||
if will_message is not None:
|
||||
self._mqttc.will_set( # pylint: disable=no-value-for-parameter
|
||||
*attr.astuple(will_message)
|
||||
*attr.astuple(
|
||||
will_message,
|
||||
filter=lambda attr, value: attr.name != "subscribed_topic",
|
||||
)
|
||||
)
|
||||
|
||||
async def async_publish(
|
||||
@ -941,7 +944,10 @@ class MQTT:
|
||||
if self.birth_message:
|
||||
self.hass.add_job(
|
||||
self.async_publish( # pylint: disable=no-value-for-parameter
|
||||
*attr.astuple(self.birth_message)
|
||||
*attr.astuple(
|
||||
self.birth_message,
|
||||
filter=lambda attr, value: attr.name != "subscribed_topic",
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@ -977,7 +983,8 @@ class MQTT:
|
||||
continue
|
||||
|
||||
self.hass.async_run_job(
|
||||
subscription.callback, Message(msg.topic, payload, msg.qos, msg.retain)
|
||||
subscription.callback,
|
||||
Message(msg.topic, payload, msg.qos, msg.retain, subscription.topic),
|
||||
)
|
||||
|
||||
def _mqtt_on_disconnect(self, _mqttc, _userdata, result_code: int) -> None:
|
||||
|
@ -21,7 +21,7 @@ def log_messages(hass: HomeAssistantType, entity_id: str) -> MessageCallbackType
|
||||
def _log_message(msg):
|
||||
"""Log message."""
|
||||
debug_info = hass.data[DATA_MQTT_DEBUG_INFO]
|
||||
messages = debug_info["entities"][entity_id]["topics"][msg.topic]
|
||||
messages = debug_info["entities"][entity_id]["topics"][msg.subscribed_topic]
|
||||
messages.append(msg.payload)
|
||||
|
||||
def _decorator(msg_callback: MessageCallbackType):
|
||||
|
@ -14,6 +14,7 @@ class Message:
|
||||
payload = attr.ib(type=PublishPayloadType)
|
||||
qos = attr.ib(type=int)
|
||||
retain = attr.ib(type=bool)
|
||||
subscribed_topic = attr.ib(type=str, default=None)
|
||||
|
||||
|
||||
MessageCallbackType = Callable[[Message], None]
|
||||
|
Loading…
x
Reference in New Issue
Block a user