mirror of
https://github.com/home-assistant/core.git
synced 2025-08-04 11:08:17 +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)
|
@wraps(msg_callback)
|
||||||
async def async_wrapper(msg: Any) -> None:
|
async def async_wrapper(msg: Any) -> None:
|
||||||
"""Catch and log exception."""
|
"""Call with deprecated signature."""
|
||||||
await msg_callback(msg.topic, msg.payload, msg.qos)
|
await msg_callback(msg.topic, msg.payload, msg.qos)
|
||||||
|
|
||||||
wrapper_func = async_wrapper
|
wrapper_func = async_wrapper
|
||||||
@ -397,7 +397,7 @@ def wrap_msg_callback(msg_callback: MessageCallbackType) -> MessageCallbackType:
|
|||||||
|
|
||||||
@wraps(msg_callback)
|
@wraps(msg_callback)
|
||||||
def wrapper(msg: Any) -> None:
|
def wrapper(msg: Any) -> None:
|
||||||
"""Catch and log exception."""
|
"""Call with deprecated signature."""
|
||||||
msg_callback(msg.topic, msg.payload, msg.qos)
|
msg_callback(msg.topic, msg.payload, msg.qos)
|
||||||
|
|
||||||
wrapper_func = wrapper
|
wrapper_func = wrapper
|
||||||
@ -809,7 +809,10 @@ class MQTT:
|
|||||||
|
|
||||||
if will_message is not None:
|
if will_message is not None:
|
||||||
self._mqttc.will_set( # pylint: disable=no-value-for-parameter
|
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(
|
async def async_publish(
|
||||||
@ -941,7 +944,10 @@ class MQTT:
|
|||||||
if self.birth_message:
|
if self.birth_message:
|
||||||
self.hass.add_job(
|
self.hass.add_job(
|
||||||
self.async_publish( # pylint: disable=no-value-for-parameter
|
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
|
continue
|
||||||
|
|
||||||
self.hass.async_run_job(
|
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:
|
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):
|
def _log_message(msg):
|
||||||
"""Log message."""
|
"""Log message."""
|
||||||
debug_info = hass.data[DATA_MQTT_DEBUG_INFO]
|
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)
|
messages.append(msg.payload)
|
||||||
|
|
||||||
def _decorator(msg_callback: MessageCallbackType):
|
def _decorator(msg_callback: MessageCallbackType):
|
||||||
|
@ -14,6 +14,7 @@ class Message:
|
|||||||
payload = attr.ib(type=PublishPayloadType)
|
payload = attr.ib(type=PublishPayloadType)
|
||||||
qos = attr.ib(type=int)
|
qos = attr.ib(type=int)
|
||||||
retain = attr.ib(type=bool)
|
retain = attr.ib(type=bool)
|
||||||
|
subscribed_topic = attr.ib(type=str, default=None)
|
||||||
|
|
||||||
|
|
||||||
MessageCallbackType = Callable[[Message], None]
|
MessageCallbackType = Callable[[Message], None]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user