Add optional base64 decoding of mqtt camera image (#71223)
Add unittest for b64 decoding of camera, fix linting
This commit is contained in:
parent
1a45e54324
commit
0fcdca2d71
2 changed files with 35 additions and 2 deletions
|
@ -1,6 +1,7 @@
|
|||
"""Camera that loads a picture from an MQTT topic."""
|
||||
from __future__ import annotations
|
||||
|
||||
from base64 import b64decode
|
||||
import functools
|
||||
|
||||
import voluptuous as vol
|
||||
|
@ -16,7 +17,7 @@ from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
|
|||
|
||||
from . import subscription
|
||||
from .. import mqtt
|
||||
from .const import CONF_QOS, CONF_TOPIC
|
||||
from .const import CONF_ENCODING, CONF_QOS, CONF_TOPIC
|
||||
from .debug_info import log_messages
|
||||
from .mixins import (
|
||||
MQTT_ENTITY_COMMON_SCHEMA,
|
||||
|
@ -102,7 +103,10 @@ class MqttCamera(MqttEntity, Camera):
|
|||
@log_messages(self.hass, self.entity_id)
|
||||
def message_received(msg):
|
||||
"""Handle new MQTT messages."""
|
||||
self._last_image = msg.payload
|
||||
if self._config[CONF_ENCODING] == "b64":
|
||||
self._last_image = b64decode(msg.payload)
|
||||
else:
|
||||
self._last_image = msg.payload
|
||||
|
||||
self._sub_state = subscription.async_prepare_subscribe_topics(
|
||||
self.hass,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue