Add debug logging for MQTT templates (#79016)

pull/78216/head
Jan Bouwhuis 2022-09-27 00:36:10 +02:00 committed by GitHub
parent 9c62c55f42
commit 7216d4c636
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 0 deletions

View File

@ -6,6 +6,7 @@ from collections import deque
from collections.abc import Callable, Coroutine from collections.abc import Callable, Coroutine
from dataclasses import dataclass, field from dataclasses import dataclass, field
import datetime as dt import datetime as dt
import logging
from typing import TYPE_CHECKING, Any, TypedDict, Union from typing import TYPE_CHECKING, Any, TypedDict, Union
import attr import attr
@ -24,6 +25,8 @@ if TYPE_CHECKING:
_SENTINEL = object() _SENTINEL = object()
_LOGGER = logging.getLogger(__name__)
ATTR_THIS = "this" ATTR_THIS = "this"
PublishPayloadType = Union[str, bytes, int, float, None] PublishPayloadType = Union[str, bytes, int, float, None]
@ -138,6 +141,11 @@ class MqttCommandTemplate:
if variables is not None: if variables is not None:
values.update(variables) values.update(variables)
_LOGGER.debug(
"Rendering outgoing payload with variables %s and %s",
values,
self._command_template,
)
return _convert_outgoing_payload( return _convert_outgoing_payload(
self._command_template.async_render(values, parse_result=False) self._command_template.async_render(values, parse_result=False)
) )
@ -196,10 +204,23 @@ class MqttValueTemplate:
values[ATTR_THIS] = self._template_state values[ATTR_THIS] = self._template_state
if default == _SENTINEL: if default == _SENTINEL:
_LOGGER.debug(
"Rendering incoming payload '%s' with variables %s and %s",
payload,
values,
self._value_template,
)
return self._value_template.async_render_with_possible_json_value( return self._value_template.async_render_with_possible_json_value(
payload, variables=values payload, variables=values
) )
_LOGGER.debug(
"Rendering incoming payload '%s' with variables %s with default value '%s' and %s",
payload,
values,
default,
self._value_template,
)
return self._value_template.async_render_with_possible_json_value( return self._value_template.async_render_with_possible_json_value(
payload, default, variables=values payload, default, variables=values
) )