From 2fb23becec8726cbcace94951814debf7f872775 Mon Sep 17 00:00:00 2001 From: JonasB2497 <45214989+JonasB2497@users.noreply.github.com> Date: Wed, 2 Jul 2025 04:56:48 +0200 Subject: [PATCH] made qr_code elements optional (#8896) --- esphome/components/qr_code/__init__.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/esphome/components/qr_code/__init__.py b/esphome/components/qr_code/__init__.py index 1c5e0471b0..6ff92b8a7f 100644 --- a/esphome/components/qr_code/__init__.py +++ b/esphome/components/qr_code/__init__.py @@ -21,21 +21,24 @@ ECC = { "HIGH": qrcodegen_Ecc.qrcodegen_Ecc_HIGH, } -CONFIG_SCHEMA = cv.Schema( - { - cv.Required(CONF_ID): cv.declare_id(QRCode), - cv.Required(CONF_VALUE): cv.string, - cv.Optional(CONF_ECC, default="LOW"): cv.enum(ECC, upper=True), - } +CONFIG_SCHEMA = cv.ensure_list( + cv.Schema( + { + cv.Required(CONF_ID): cv.declare_id(QRCode), + cv.Required(CONF_VALUE): cv.string, + cv.Optional(CONF_ECC, default="LOW"): cv.enum(ECC, upper=True), + } + ) ) async def to_code(config): cg.add_library("wjtje/qr-code-generator-library", "^1.7.0") - var = cg.new_Pvariable(config[CONF_ID]) - cg.add(var.set_value(config[CONF_VALUE])) - cg.add(var.set_ecc(ECC[config[CONF_ECC]])) - await cg.register_component(var, config) + for entry in config: + var = cg.new_Pvariable(entry[CONF_ID]) + cg.add(var.set_value(entry[CONF_VALUE])) + cg.add(var.set_ecc(ECC[entry[CONF_ECC]])) + await cg.register_component(var, entry) cg.add_define("USE_QR_CODE")