{"owner":"arendst","repo":"Tasmota","hasSkills":true,"totalSkillsCount":25,"totalTokensCount":16918,"categories":["anthropic-skill","plugin-manifest","project-spec"],"hasMcp":false,"mcpConfig":null,"found":["lib/libesp32/berry_matter/tools/vendors.json","tools/fw_TasmotaClient_arduino/TasmotaClient/library.json","tools/fw_ShellyDimmer_stm32/README.md","tools/qemu/README.md","tools/decode-config.md","tools/fw_SonoffZigbeeBridge_ezsp/readme.md","tasmota/berry/extensions/Leds_Panel/manifest.json","API.md","tools/fw_TasmotaClient_arduino/TasmotaClient/README.md","tasmota/berry/extensions/LVGL_Panel/manifest.json","tasmota/berry/extensions/Devices_Online/manifest.json","tasmota/berry/extensions/LoRaWan_Decoders/changelog.md","tasmota/berry/extensions/LoRaWan_Decoders/manifest.json","tasmota/berry/extensions/Partition_Wizard/manifest.json","tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json"],"skills":{"lib/libesp32/berry_matter/tools/vendors.json":"{\n  \"vendorInfo\": [\n    {\n      \"vendorID\": 4107,\n      \"vendorName\": \"Signify\",\n      \"companyLegalName\": \"Signify Netherlands B.V.\",\n      \"companyPreferredName\": \"Signify\",\n      \"vendorLandingPageURL\": \"https://www.signify.com/\",\n      \"creator\": \"cosmos1xx8fg5nu4lesn448ytds8yjql47jp8gnfh6hck\"\n    },\n    {\n      \"vendorID\": 4125,\n      \"vendorName\": \"Assa Abloy\",\n      \"companyLegalName\": \"Assa Abloy\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.yalehome.com\",\n      \"creator\": \"cosmos18wrgwrrccn49ejv4hstz9czxgw9dc2s2l9f94k\"\n    },\n    {\n      \"vendorID\": 4129,\n      \"vendorName\": \"Legrand Group\",\n      \"companyLegalName\": \"Legrand\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.legrand.com\",\n      \"creator\": \"cosmos1elm6sf9yd2n7y0l0rve4zru0ukanv76vtrjnt3\"\n    },\n    {\n      \"vendorID\": 4151,\n      \"vendorName\": \"NXP Semiconductors\",\n      \"companyLegalName\": \"NXP Semiconductors N.V.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nxp.com\",\n      \"creator\": \"cosmos1ck0arz4kky9l9qtdvqrct7783ffv2yftgmj9ch\"\n    },\n    {\n      \"vendorID\": 4190,\n      \"vendorName\": \"Schneider\",\n      \"companyLegalName\": \"Schneider Electric\",\n      \"companyPreferredName\": \"Schneider Electric\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14kre58wpgterp7t9yy0393ecel9hpz9fnul6pc\"\n    },\n    {\n      \"vendorID\": 4251,\n      \"vendorName\": \"Leviton\",\n      \"companyLegalName\": \"Leviton Manufacturing Company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.leviton.com\",\n      \"creator\": \"cosmos1ypyp8zrqeu64rjmx3u34ghvl64uajr67uams3d\"\n    },\n    {\n      \"vendorID\": 4304,\n      \"vendorName\": \"Qorvo\",\n      \"companyLegalName\": \"Qorvo, Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.qorvo.com/\",\n      \"creator\": \"cosmos1qrpkuzgm7hfejejfyg20g34tjxlt4k8dsspq52\"\n    },\n    {\n      \"vendorID\": 4334,\n      \"vendorName\": \"UEI\",\n      \"companyLegalName\": \"Universal Electronics Inc\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.uei.com/\",\n      \"creator\": \"cosmos1pvrad6x6ettwgudttqd97r9wvarvnj5davpltg\"\n    },\n    {\n      \"vendorID\": 4338,\n      \"vendorName\": \"ubisys\",\n      \"companyLegalName\": \"ubisys technologies GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.ubisys.de\",\n      \"creator\": \"cosmos1rxydw26p5k4f9rtwln6r3srvw4qq9pxnxadr3d\"\n    },\n    {\n      \"vendorID\": 4381,\n      \"vendorName\": \"Comcast Communications\",\n      \"companyLegalName\": \"Comcast\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1xcv4q8sjvf7nw4qj2yt5kledgwyf3ycxw8c0pe\"\n    },\n    {\n      \"vendorID\": 4442,\n      \"vendorName\": \"Nanoleaf\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nanoleaf.me\",\n      \"creator\": \"cosmos1sggrrmw05e6alve8umwdaszade5qxyt53kthud\"\n    },\n    {\n      \"vendorID\": 4447,\n      \"vendorName\": \"Aqara\",\n      \"companyLegalName\": \"Lumi United Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.aqara.com/\",\n      \"creator\": \"cosmos1qpz3ghnqj6my7gzegkftzav9hpxymkx6zdk73v\"\n    },\n    {\n      \"vendorID\": 4448,\n      \"vendorName\": \"Sengled\",\n      \"companyLegalName\": \"Sengled Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1arhkv0n34xylxz9suy73dpyk6de32gpym9l3sw\"\n    },\n    {\n      \"vendorID\": 4456,\n      \"vendorName\": \"Leedarson\",\n      \"companyLegalName\": \"Leedarson IoT Technology Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1mzg0v94yg0cmkjqe2jqsys44tvvfk9mt2d889d\"\n    },\n    {\n      \"vendorID\": 4478,\n      \"vendorName\": \"Feibit\",\n      \"companyLegalName\": \"Shenzhen Feibit Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"Feibit\",\n      \"vendorLandingPageURL\": \"http://www.feibit.com\",\n      \"creator\": \"cosmos162y3ehrqpuu2xjvmgq6qq7yqtdh6mlwh32wv2h\"\n    },\n    {\n      \"vendorID\": 4488,\n      \"vendorName\": \"TP-Link\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tp-link.com\",\n      \"creator\": \"cosmos1jxpj6rr8vnetz9a2ec08az5fwqpuf4zt4hhygv\"\n    },\n    {\n      \"vendorID\": 4492,\n      \"vendorName\": \"Midea Group\",\n      \"companyLegalName\": \"Midea Group\",\n      \"companyPreferredName\": \"Midea\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1a7c8us8jl76f8uue6xf9gzzqklfmfdyh8nedae\"\n    },\n    {\n      \"vendorID\": 4619,\n      \"vendorName\": \"HEIMAN\",\n      \"companyLegalName\": \"Shenzhen Heiman Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos16s4lqhxyqdr5lq6gmfpskjtwjf7dwc0lktn6dt\"\n    },\n    {\n      \"vendorID\": 4631,\n      \"vendorName\": \"Amazon Alexa\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Alexa\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos152v4ejapsjl222zew0ll4eeltc0h2phh5hzpu3\"\n    },\n    {\n      \"vendorID\": 4633,\n      \"vendorName\": \"ORVIBO\",\n      \"companyLegalName\": \"Shenzhen ORVIBO Technology Co.,  Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.orvibo.com\",\n      \"creator\": \"cosmos1u7um30yf68zugm897tgpq7s6vhkhk4t2ykm0hq\"\n    },\n    {\n      \"vendorID\": 4701,\n      \"vendorName\": \"Tuya\",\n      \"companyLegalName\": \"Tuya Global Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos13pwvzq2zk0r3fxuc2a5jhadnx6tda5ar2tcpp9\"\n    },\n    {\n      \"vendorID\": 4735,\n      \"vendorName\": \"Nordic Semiconductor ASA\",\n      \"companyLegalName\": \"Nordic Semiconductor ASA\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nordicsemi.com\",\n      \"creator\": \"cosmos1eatgwsxtjz0tlchllzasjfcac6m56n30njc3k2\"\n    },\n    {\n      \"vendorID\": 4736,\n      \"vendorName\": \"Siterwell\",\n      \"companyLegalName\": \"Siterwell Electronics Co., Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1u3uhlkepx9dz9asrlucuupw2md2frvkwv583nr\"\n    },\n    {\n      \"vendorID\": 4742,\n      \"vendorName\": \"CoolKit\",\n      \"companyLegalName\": \"SHENZHEN Coolkit Technology CO.,LTD.\",\n      \"companyPreferredName\": \"CoolKit\",\n      \"vendorLandingPageURL\": \"https://www.coolkit.cn/\",\n      \"creator\": \"cosmos18m8lehnvqx8zytn22fkekelt7xgmrl7cga37tl\"\n    },\n    {\n      \"vendorID\": 4751,\n      \"vendorName\": \"EGLO\",\n      \"companyLegalName\": \"EGLO Leuchten GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.eglo.com/en/\",\n      \"creator\": \"cosmos1veu2f7mtgvfw8ezjfmhs64cqyt9wp2weas2rga\"\n    },\n    {\n      \"vendorID\": 4874,\n      \"vendorName\": \"Eve\",\n      \"companyLegalName\": \"Eve Systems GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.evehome.com\",\n      \"creator\": \"cosmos1yh0ld8jl26rgycrtank8slxepmc8xzgyrzv99t\"\n    },\n    {\n      \"vendorID\": 4877,\n      \"vendorName\": \"BouffaloLab\",\n      \"companyLegalName\": \"Bouffalo Lab (Nanjing) Co., Ltd.\",\n      \"companyPreferredName\": \"Bouffalo Lab \",\n      \"vendorLandingPageURL\": \"https://www.bouffalolab.com/\",\n      \"creator\": \"cosmos1l8qwcjgfcnvlmtxrlcjrsmy9068mlck2cw68kx\"\n    },\n    {\n      \"vendorID\": 4882,\n      \"vendorName\": \"Yeelight\",\n      \"companyLegalName\": \"Qingdao Yeelink Information Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Yeelink Information Technology\",\n      \"vendorLandingPageURL\": \"https://en.yeelight.com/#\",\n      \"creator\": \"cosmos18fcq3647dkwur0d0zjyenj8sk57jehq4a8epaf\"\n    },\n    {\n      \"vendorID\": 4891,\n      \"vendorName\": \"Espressif Systems\",\n      \"companyLegalName\": \"Espressif Systems (Shanghai) Co. Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.espressif.com\",\n      \"creator\": \"cosmos1vncrg6hk30kutk4nr26mvyqc92zkygcc7aemzt\"\n    },\n    {\n      \"vendorID\": 4894,\n      \"vendorName\": \"CAME S.p.A.\",\n      \"companyLegalName\": \"CAME S.p.A.\",\n      \"companyPreferredName\": \"CAME S.p.A.\",\n      \"vendorLandingPageURL\": \"https://www.came.com/\",\n      \"creator\": \"cosmos1kxjh94dcvnym6265nmxcjpn9xpkx0y7e3jjeqc\"\n    },\n    {\n      \"vendorID\": 4895,\n      \"vendorName\": \"Longan.link\",\n      \"companyLegalName\": \"Longan Link Tech Co.,LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://longan.link/\",\n      \"creator\": \"cosmos1qnd2v3n0f0ukja8z0jm4jqsqs5qhxa6ncvcxuv\"\n    },\n    {\n      \"vendorID\": 4897,\n      \"vendorName\": \"SONOFF\",\n      \"companyLegalName\": \"Shenzhen Sonoff Technologies Co.,Ltd.\",\n      \"companyPreferredName\": \"SONOFF\",\n      \"vendorLandingPageURL\": \"https://sonoff.tech/\",\n      \"creator\": \"cosmos160c6r8rc2pgpgucasw4ae5gfqtz5vzcc6ay2sz\"\n    },\n    {\n      \"vendorID\": 4915,\n      \"vendorName\": \"Becker Antriebe\",\n      \"companyLegalName\": \"Becker Antriebe GmbH\",\n      \"companyPreferredName\": \"Becker Antriebe\",\n      \"vendorLandingPageURL\": \"https://www.becker-antriebe.com/\",\n      \"creator\": \"cosmos1f6knru06kkxm306ckgs93zs9aqyrk9axgqh5wq\"\n    },\n    {\n      \"vendorID\": 4921,\n      \"vendorName\": \"GE Lighting, a Savant company\",\n      \"companyLegalName\": \"GE Lighting, a Savant company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.gelighting.com/\",\n      \"creator\": \"cosmos130t4m26ynex82jcgkqguxpffpva05e4zugn0xc\"\n    },\n    {\n      \"vendorID\": 4927,\n      \"vendorName\": \"ASR\",\n      \"companyLegalName\": \"ASR Microelectronics(ShenZhen)Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14a9n65wmumympggqnquu5ptq042ff69nehztk7\"\n    },\n    {\n      \"vendorID\": 4930,\n      \"vendorName\": \"Beken Corporation\",\n      \"companyLegalName\": \"beken\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.bekencorp.com/\",\n      \"creator\": \"cosmos1aru484uj9dqkpnqg768tl6m66fvz9wkqcg79cw\"\n    },\n    {\n      \"vendorID\": 4932,\n      \"vendorName\": \"Eltako\",\n      \"companyLegalName\": \"Eltako GmbH\",\n      \"companyPreferredName\": \"Eltako\",\n      \"vendorLandingPageURL\": \"https://www.eltako.com\",\n      \"creator\": \"cosmos1n3kqdwqh33grxcnzdeknercyt3wekc5zl4n3dg\"\n    },\n    {\n      \"vendorID\": 4933,\n      \"vendorName\": \"Meross\",\n      \"companyLegalName\": \"Chengdu Meross Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Meross\",\n      \"vendorLandingPageURL\": \"https://www.meross.com\",\n      \"creator\": \"cosmos18qu47pmqwylzm9w2tezyrmvcwmkew5yyvw3d6n\"\n    },\n    {\n      \"vendorID\": 4934,\n      \"vendorName\": \"Rafael\",\n      \"companyLegalName\": \"Rafael Microelectronics, Inc.\",\n      \"companyPreferredName\": \"Rafael\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14myns7fehcxm2c896k5syhzr7zsyf7g4jdlk08\"\n    },\n    {\n      \"vendorID\": 4937,\n      \"vendorName\": \"Apple Home\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.apple.com/home-app\",\n      \"creator\": \"cosmos1ysl37yl5nmcg8qr64knpscahq5zel3hjtxmvyt\"\n    },\n    {\n      \"vendorID\": 4942,\n      \"vendorName\": \"tado\",\n      \"companyLegalName\": \"tado GmbH\",\n      \"companyPreferredName\": \"tado°\",\n      \"vendorLandingPageURL\": \"https://www.tado.com/\",\n      \"creator\": \"cosmos1sacvh2z4w0f3d657a2tdw2w4ha87743c8qahkv\"\n    },\n    {\n      \"vendorID\": 4943,\n      \"vendorName\": \"mediola\",\n      \"companyLegalName\": \"mediola - connected living AG\",\n      \"companyPreferredName\": \"mediola\",\n      \"vendorLandingPageURL\": \"https://www.mediola.com\",\n      \"creator\": \"cosmos1j2w2zq787mkwltsdhzlxpnm50s8nrvg85u20dh\"\n    },\n    {\n      \"vendorID\": 4945,\n      \"vendorName\": \"HooRii Technology\",\n      \"companyLegalName\": \"HooRii Technology CO., LTD\",\n      \"companyPreferredName\": \"HooRii Technology\",\n      \"vendorLandingPageURL\": \"https://www.hoorii.io/\",\n      \"creator\": \"cosmos1etk35ufz9z4x56t63tap7ncsvk5k5zw2npmlcu\"\n    },\n    {\n      \"vendorID\": 4957,\n      \"vendorName\": \"Nuki\",\n      \"companyLegalName\": \"Nuki Home Solutions GmbH\",\n      \"companyPreferredName\": \"Nuki\",\n      \"vendorLandingPageURL\": \"https://nuki.io\",\n      \"creator\": \"cosmos1tdslga3va6luqzy2x3nlwxfh80f99vly5800ls\"\n    },\n    {\n      \"vendorID\": 4962,\n      \"vendorName\": \"deveritec GmbH\",\n      \"companyLegalName\": \"deveritec GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://deveritec.de\",\n      \"creator\": \"cosmos19740ad8368h0h33rcu6gugtxgvyuws7puqg0za\"\n    },\n    {\n      \"vendorID\": 4965,\n      \"vendorName\": \"Dooya\",\n      \"companyLegalName\": \"Ningbo Dooya Mechanic \\u0026 Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1pqypa94grwkmk2d7e0ncdctfav5wyycu787tmk\"\n    },\n    {\n      \"vendorID\": 4974,\n      \"vendorName\": \"Ambi Labs Limited\",\n      \"companyLegalName\": \"Ambi Labs Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos12st2nx5elvkyswv7nqw6xh6j67vg472lcv0299\"\n    },\n    {\n      \"vendorID\": 4977,\n      \"vendorName\": \"Tridonic\",\n      \"companyLegalName\": \"Tridonic GmbH \\u0026 Co KG\",\n      \"companyPreferredName\": \"Tridonic\",\n      \"vendorLandingPageURL\": \"https://www.tridonic.com/matter\",\n      \"creator\": \"cosmos16ad3em3nrqzf854p03audmgdl3pc384467yzav\"\n    },\n    {\n      \"vendorID\": 4978,\n      \"vendorName\": \"innovation matters\",\n      \"companyLegalName\": \"innovation matters iot GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.innovation-matters.at/\",\n      \"creator\": \"cosmos1v6x4nte50al0jjynvldwqse9n4ceajmja3wvph\"\n    },\n    {\n      \"vendorID\": 4991,\n      \"vendorName\": \"NEO\",\n      \"companyLegalName\": \"Shenzhen NEO Electronic CO\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18cvsug5mc7vj9a6kxaj0fwp99vj9ga3xd3lnql\"\n    },\n    {\n      \"vendorID\": 4993,\n      \"vendorName\": \"Amazon Prime Video\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Prime Video\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos1akrkaxvlfwnnk2phtxewadmel4s567wr8xmfj8\"\n    },\n    {\n      \"vendorID\": 4996,\n      \"vendorName\": \"Apple Keychain\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://support.apple.com/en-us/HT213441\",\n      \"creator\": \"cosmos1qqgp6p73z0lku4qzeajgtxtzy24xx467j0v0kp\"\n    },\n    {\n      \"vendorID\": 4998,\n      \"vendorName\": \"Skylux\",\n      \"companyLegalName\": \"Skylux N.V.\",\n      \"companyPreferredName\": \"Skylux\",\n      \"vendorLandingPageURL\": \"https://www.skylux.eu\",\n      \"creator\": \"cosmos1f9haxa732cy6rmm3nc88q9fxx9zv0m0qn3kzcm\"\n    },\n    {\n      \"vendorID\": 4999,\n      \"vendorName\": \"Qianyan\",\n      \"companyLegalName\": \"Shenzhen Qianyan Technology LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos10plhr0fh27nred7nra3s6dld26gzcw6etje4gk\"\n    },\n    {\n      \"vendorID\": 5002,\n      \"vendorName\": \"Nature\",\n      \"companyLegalName\": \"Nature Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nature.global/\",\n      \"creator\": \"cosmos1yvwf85sx9mp53kptfwfz49cmmznvj2j0efavzu\"\n    },\n    {\n      \"vendorID\": 5009,\n      \"vendorName\": \"Kasa\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.kasasmart.com\",\n      \"creator\": \"cosmos1fjwwzm8zs9yc2hq73tqggdylcmm0ujmuc7x9wn\"\n    },\n    {\n      \"vendorID\": 5010,\n      \"vendorName\": \"Tapo\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tapo.com\",\n      \"creator\": \"cosmos1acw4mmmf26e7jkxqm5epu7g56tcgz0walk3vs8\"\n    },\n    {\n      \"vendorID\": 5015,\n      \"vendorName\": \"SwitchBot\",\n      \"companyLegalName\": \"Woan Technology (Shenzhen) Co., Ltd. \",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1dc9patujyr2av2ezggudfalfag7p7scc0t3wnk\"\n    },\n    {\n      \"vendorID\": 5020,\n      \"vendorName\": \"Zemismart Technology Limited\",\n      \"companyLegalName\": \"Zemismart Technology Limited\",\n      \"companyPreferredName\": \"Zemismart\",\n      \"vendorLandingPageURL\": \"https://www.zemismart.com\",\n      \"creator\": \"cosmos1mrv5zh6r6kcfln34vju5kfup4mv9lw27u33yj0\"\n    },\n    {\n      \"vendorID\": 5120,\n      \"vendorName\": \"Uascent\",\n      \"companyLegalName\": \"Uascent Technology Company Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1ynw4zl6xqnvh5zhzhhpxjc6kt8z8wvxkp8edsw\"\n    },\n    {\n      \"vendorID\": 5123,\n      \"vendorName\": \"Arlec Australia\",\n      \"companyLegalName\": \"Arlec Australia Pty. Ltd.\",\n      \"companyPreferredName\": \"Grid Connect\",\n      \"vendorLandingPageURL\": \"https://grid-connect.com.au/\",\n      \"creator\": \"cosmos1d9ut0ysdlw68r0705q8tagf7y9cf3d686fpf73\"\n    },\n    {\n      \"vendorID\": 5124,\n      \"vendorName\": \"Phaten\",\n      \"companyLegalName\": \"Shenzhen Phaten Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.phaten.com\",\n      \"creator\": \"cosmos1h4rf0hjzf498s2lu0rf8m52ujst2gl7lpdnexs\"\n    },\n    {\n      \"vendorID\": 5127,\n      \"vendorName\": \"ThirdReality\",\n      \"companyLegalName\": \"Jiangsu Shushi Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1qwnh6tj4n938g3fmncqna22zmfxx50vnd22yux\"\n    },\n    {\n      \"vendorID\": 5136,\n      \"vendorName\": \"Quectel\",\n      \"companyLegalName\": \"Quectel Wireless Solutions Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.quectel.com\",\n      \"creator\": \"cosmos1dqrg6w2jjs7sft59dpqngjzyfdjh4xjn5rjct5\"\n    },\n    {\n      \"vendorID\": 5139,\n      \"vendorName\": \"1Home\",\n      \"companyLegalName\": \"1Home Solutions GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.1home.io/\",\n      \"creator\": \"cosmos1nzyp28afpumk0djal2w35s2pcl0q3e57euplkq\"\n    },\n    {\n      \"vendorID\": 5141,\n      \"vendorName\": \"Caveman\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1smgmnl90h9srczk926l5kt7rydjpq7x0smc5e7\"\n    },\n    {\n      \"vendorID\": 5145,\n      \"vendorName\": \"Lorex\",\n      \"companyLegalName\": \"Lorex Technology Inc.\",\n      \"companyPreferredName\": \"Lorex\",\n      \"vendorLandingPageURL\": \"https://www.lorex.com/\",\n      \"creator\": \"cosmos1c98nn3uphuya0w4km5uzamjwpkawksf5g6h5m5\"\n    },\n    {\n      \"vendorID\": 5147,\n      \"vendorName\": \"Rang Dong VN\",\n      \"companyLegalName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"companyPreferredName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"vendorLandingPageURL\": \"https://rangdong.com.vn/\",\n      \"creator\": \"cosmos1023z8vredmrn7xlzjlrlv6wdqh0fpzs8jlc9rx\"\n    },\n    {\n      \"vendorID\": 5150,\n      \"vendorName\": \"TUO Accessories LLC\",\n      \"companyLegalName\": \"TUO Accessories LLC\",\n      \"companyPreferredName\": \"TUO Accessories\",\n      \"vendorLandingPageURL\": \"http://tuoaccessories.com\",\n      \"creator\": \"cosmos1vn34dnlqvz5e997ws53yfj6a2622duzf3gg80d\"\n    },\n    {\n      \"vendorID\": 5151,\n      \"vendorName\": \"Ductech\",\n      \"companyLegalName\": \"DUCTECH Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18nqp48ce5k7j8qvuwk7tnzmckwsd8k2tlnj850\"\n    },\n    {\n      \"vendorID\": 5165,\n      \"vendorName\": \"QH\",\n      \"companyLegalName\": \"Zhongshan QIHANG Electronic Technology Co.\",\n      \"companyPreferredName\": \"QIHANG\",\n      \"vendorLandingPageURL\": \"https://zsqhkj.1688.com/\",\n      \"creator\": \"cosmos13zzg6t6gaz36p8ctguatrguwuep9wmza6lptet\"\n    },\n    {\n      \"vendorID\": 5167,\n      \"vendorName\": \"QIACHIP\",\n      \"companyLegalName\": \"Shenzhen QIACHIP Wireless E-commerce Co.\",\n      \"companyPreferredName\": \"QIACHIP\",\n      \"vendorLandingPageURL\": \"https://qiachip.com\",\n      \"creator\": \"cosmos1rhjya3hdvpyr2a3ur7s5hj48ce2qndyfcz07ht\"\n    },\n    {\n      \"vendorID\": 24582,\n      \"vendorName\": \"Google LLC\",\n      \"companyLegalName\": \"Google LLC\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1kelvhh6cy2vmaj5zczxj52k4nys2w4e2u3awvq\"\n    }\n  ],\n  \"pagination\": {\n    \"next_key\": null,\n    \"total\": \"73\"\n  }\n}","tools/fw_TasmotaClient_arduino/TasmotaClient/library.json":"{\n    \"name\": \"TasmotaClient\",\n    \"version\": \"0.0.2\",\n    \"keywords\": [\n      \"serial\", \"io\", \"TasmotaClient\"\n    ],\n    \"description\": \"TasmotaClient Driver Library\",\n    \"repository\":\n    {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/andrethomas/TasmotaSlave\"\n    },\n    \"frameworks\": \"arduino\"\n}\n","tools/fw_ShellyDimmer_stm32/README.md":"An open-source firmware for the STM32 co-processor on the Shelly Dimmer by James Turton.\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\n# Pre-build binary\nSee the [releases](https://github.com/jamesturton/shelly-dimmer-stm32/releases) page to download the latest pre-build binary.\n","tools/qemu/README.md":"# Running Tasmota (ESP32) under QEMU\n\n`tasmota-qemu.sh` (in `tools/qemu/`) builds a Tasmota ESP32 firmware with PlatformIO and\nboots it under an Espressif QEMU fork on an amd64 host — serial console always, and a\n**browsable web UI** when the WiFi-capable fork is used.\n\nIt builds the **current checkout** (your local changes), not a fresh clone. Build\nartifacts and the QEMU forks live under `tasmota-qemu/` at the repo root (gitignored).\nExamples below assume you run it from `tools/qemu/`; from the repo root use\n`tools/qemu/tasmota-qemu.sh …` — either works, paths resolve the same.\n\n## Quick start\n\nNetworked Tasmota with a reachable web UI, in one command:\n\n```bash\nNET_WIFI=1 ./tasmota-qemu.sh        # build -> image -> wifi QEMU -> boot, joins emulated AP\n# then browse:\nopen http://localhost:8080\n```\n\nFirst run is slow: it clones Tasmota, pulls the toolchain, compiles the firmware, and\nclones + builds the QEMU fork. Subsequent runs are cached.\n\nSerial-only (no network, stock QEMU, fastest path):\n\n```bash\n./tasmota-qemu.sh                   # stock fork, serial console only\n```\n\n## Commands\n\n```\n./tasmota-qemu.sh [command]\n  build        Compile Tasmota firmware (PlatformIO env $TASMOTA_ENV)\n  make-image   Build the QEMU flash image (factory.bin, or merge raw parts)\n  qemu-setup   Clone + build the chosen QEMU fork\n  run          Boot the firmware in QEMU (serial tee'd to qemu.log)\n  smoketest    Boot a minimal Arduino app (same IDF) to sanity-check QEMU itself\n  decode [log] Symbolize the last panic backtrace from a log (default: qemu.log)\n  all          build -> make-image -> qemu-setup -> run   (default)\n```\n\n## Key environment variables\n\n| Variable          | Default              | Meaning |\n|-------------------|----------------------|---------|\n| `NET_WIFI`        | `0`                  | `1` = one-shot networked recipe (see below) |\n| `WIFI_SSID`       | `Open Wifi`          | AP the firmware joins when `NET_WIFI=1` |\n| `WIFI_PASS`       | *(empty)*            | password for that AP (the emulated one is open) |\n| `NET_WIFI_ENV`    | `tasmota32solo1`     | env used by `NET_WIFI=1` |\n| `TASMOTA_ENV`     | `tasmota32`          | PlatformIO env (must be an ESP32 one) |\n| `MINIMAL`         | `0`                  | `1` = build the stripped `tasmota32-safeboot` env |\n| `QEMU_VARIANT`    | `stock`              | `stock` (no WiFi) or `wifi` (Ebiroll/calib fork) |\n| `FLASH_SIZE`      | `4MB`                | `2MB`/`4MB`/`8MB`/`16MB` only |\n| `WEB_PORT_HOST`   | `8080`               | host port forwarded to guest `:80` |\n| `USE_SYSTEM_QEMU` | `0`                  | `1` = use `qemu-system-xtensa` from `PATH` |\n| `INSTALL_DEPS`    | `0`                  | `1` = apt-get the QEMU build deps (needs sudo) |\n\n## How `NET_WIFI=1` works\n\nGetting a networked Tasmota into QEMU needs three things to line up; `NET_WIFI=1`\nsets all of them:\n\n1. **Survive early IDF init** — the full dual-core `tasmota32` build panics in\n   `esp_timer_impl_init` under QEMU (null interrupt vector). The **unicore\n   `tasmota32solo1`** build does not, so `NET_WIFI=1` selects it.\n2. **Survive WiFi bring-up** — Tasmota's WiFi blobs poke RF registers (`0x6003xxxx`)\n   that the **stock** QEMU does not emulate (`LoadStorePIFAddrError`). The\n   **`wifi` fork** (Ebiroll/calib) emulates them, so `NET_WIFI=1` forces\n   `QEMU_VARIANT=wifi`.\n3. **Get an IP the host can reach** — that fork advertises one open AP named\n   **`Open Wifi`**. `NET_WIFI=1` writes station credentials into a managed block in\n   `tasmota/user_config_override.h`, so the firmware joins it in station mode, gets a\n   slirp DHCP lease (`10.0.2.15`), and the `:8080 -> :80` port-forward becomes routable.\n\nThe credential block is delimited and idempotent — re-running rewrites only that block\nand leaves the rest of `user_config_override.h` intact.\n\n## Debugging a panic\n\nThe `run` step boots with `-no-reboot` (QEMU exits on the first guest reset instead of\nlooping) and tees the serial console to `tasmota-qemu/qemu.log`. To symbolize the last\npanic:\n\n```bash\n./tasmota-qemu.sh decode                 # decodes tasmota-qemu/qemu.log\n./tasmota-qemu.sh decode some-other.log  # decodes a specific log\n```\n\n`decode` strips the `0xffffffff` sentinel frame, takes the PC of each `pc:sp` pair, and\nruns `addr2line` against the matching `firmware.elf`. Frames in app flash\n(`0x4018xxxx`+) are the useful ones. Addresses that resolve to `??` are inside the\nclosed-source WiFi/BT blobs (no symbols) — usually a sign the firmware touched radio\nhardware the emulator doesn't model.\n\nIs it QEMU or the firmware? Run `./tasmota-qemu.sh smoketest`: it builds a minimal Arduino\napp with the *same* IDF/toolchain and boots it. If the minimal app runs, QEMU is fine\nand the problem is in the Tasmota build.\n\n## Web UI: only `/` loads, sub-pages give `ERR_EMPTY_RESPONSE`\n\nThis is expected on first use and is **not** a crash. Tasmota's referer check only\naccepts a `Referer` whose host is its own hostname or local IP (`10.0.2.15`). Through\nthe host port-forward your browser sends `Referer: http://localhost:8080/`, whose host\nis `localhost` — matching neither — so every page past `/` is dropped with an empty\nresponse.\n\nWith `NET_WIFI=1` this is handled automatically: a background watcher waits for the web\nserver to come up and issues `SetOption128 1` for you, so the UI is clickable out of the\nbox. If you ever need to do it by hand (e.g. you ran a plain `run` on a fresh image):\n\n```bash\n./tasmota-qemu.sh fixui          # sends SetOption128 1 (disable referer check)\n```\n\nThe setting persists to flash. A fresh `make-image` wipes flash, but the next\n`NET_WIFI=1` run re-applies it automatically.\n\n## Caveats\n\n- The `wifi` fork is older than the firmware's IDF; its RF-register model is good enough\n  to associate but is not a full WiFi stack.\n- `stock` + a real Tasmota build will boot to a serial console but the web UI will not\n  respond (no WiFi emulation). Use `NET_WIFI=1` for network access.\n- Stop a running QEMU with `Ctrl-A` then `X`, or:\n  `for p in $(pgrep -f qemu-system-xtensa); do kill -9 $p; done`\n","tools/decode-config.md":"A tool to backup and restore the configuration of [Tasmota](http://tasmota.com/)-devices.\n\n## decode-config has moved to [https://github.com/tasmota/decode-config](https://github.com/tasmota/decode-config)\n","tools/fw_SonoffZigbeeBridge_ezsp/readme.md":"# EmberZNet NCP UART EZSP firmware\n\n## EmberZNet NCP UART EZSP firmware signed for Sonoff ZBBridge\n\n### Currently recommended versions\n\n- `ncp-uart-sw-6.7.8_115200.ota` - NEW: The current and recommended stable version for EZSP v8 compatible hosts.\n\n- `ncp-uart-nsw_6.7.9_115200.ota` - has some additional bug fixes and is under testing.\n\n### Archived versions\n\n- `ncp-uart-sw_6.7.6_115200.ota` - OLD: Original version for EZSP v8 compatible hosts, (contains a bug that can cause battery of IKEA and Philips remotes to drain).\n- `ncp-uart-sw_6.5.5_115200.ota` - LEGACY: Legacy version for older EZSP v7 compatible hosts.\n\n## EFR32, EmberZNet and EZSP Protocol Versions\n\nEZSP stands for \"EmberZNet Serial Protocol\" which is the default serial interface used in compatible Zigbee coordinator firmware for the Silicon Labs EFR32 hardware family such as the EFR32MG21/MGM210 and EFR32MG12/MGM12 series.\n\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-modules\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-modules\n\nSilicon Labs do not currently have a consolidated list of changes by EmberZNet SDK or EZSP protocol versions. The EZSP additions, changes and deletions have only ever been listed in the [Zigbee EmberZNet Release Notes](https://www.silabs.com/search#q=Zigbee%20EmberZNet%20Release%20Notes&t=All&sort=relevancy) (EmberZNet SDK) under the \"New items\" section as well as the matching UG100 EZSP Reference Guide included with each EmberZNet SDK release.\n\nThe largest change was between EZSP v4 (first added in EmberZNet 4.7.2 SDK) and EZSP v5 that was added in EmberZNet 5.9.0 SDK which requires the Legacy Frame ID 0xFF. The change from EZSP v5 to EZSP v6 was done in EmberZNet 6.0.0 SDK. The change from EZSP v6 to EZSP v7 was in EmberZNet 6.4.0 SDK. EmberZNet 6.7.0 SDK added EZSP v8 (and Secure EZSP Protocol Version 2).\n\nPerhaps more important to know is that EZSP v5, v6 and v7 (EmberZNet 6.6.x.x) use the same framing format, but EmberZNet 6.7.x.x/EZSP v8 introduced new framing format and expanded command id field from 8 bits to 16 bits.\n\nSee Silabs [Zigbee & Thread Knowledge Base Articles List](https://silabs-prod.adobecqms.net/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2020/04/01/zigbee_thread_knowledgebasearticleslist-ih5r) for background information.\n","tasmota/berry/extensions/Leds_Panel/manifest.json":"{\n  \"name\": \"Leds Panel\",\n  \"version\": \"0x19090100\",\n  \"description\": \"Realtime display of the WS2812 leds in browser\",\n  \"author\": \"Stephan Hadinger\",\n  \"min_tasmota\": \"0x0F000100\",\n  \"features\": \"\"\n}","API.md":"<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"./tools/logo/TASMOTA_FullLogo_Vector_White.svg\">\n  <img alt=\"Logo\" src=\"./tools/logo/TASMOTA_FullLogo_Vector.svg\" align=\"right\" height=\"76\">\n</picture>\n\n# Basic API information\n\nTasmota can easily be extended by developers using provided function pointers as callback Ids. This document lists the available callback function Ids. Read [Sensor API](https://tasmota.github.io/docs/Sensor-API) for more information.\n\nCallback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall, XnrgCall and XlgtCall.\n\n## Driver, Sensor, Energy and Light Callback Ids\n\nThe following table lists Callback Ids and their availability for a Driver, Sensor or Energy service.\n\nCallback Id                 | Bool | xdrv | xsns | xnrg | xlgt | Description\n----------------------------|------|------|------|------|------|----------------------------------\nFUNC_SETTINGS_OVERRIDE      |      |  x   |      |      |      | Override start-up settings\nFUNC_PIN_STATE              |  x   |  1   |  2   |      |      | At GPIO configuration\nFUNC_I2C_INIT               |      |  x   |      |      |      | Immediately after I2C init\nFUNC_MODULE_INIT            |  x   |  3   |  1   |      |  2   | Init module specific parameters\nFUNC_PRE_INIT               |      |  1   |  3   |  2   |      | Once GPIO have been established\nFUNC_INIT                   |      |  1   |  3   |  2   |      | At end of initialisation\nFUNC_LOOP                   |      |  1   |  2   |      |      | In main loop\nFUNC_SLEEP_LOOP             |      |  1   |  2   |      |      | In main loop during sleep\nFUNC_EVERY_50_MSECOND       |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_100_MSECOND      |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_200_MSECOND      |      |      |      |  x   |      | In main loop\nFUNC_EVERY_250_MSECOND      |      |  1   |  3   |  2   |      | In main loop\nFUNC_EVERY_SECOND           |      |  1   |  2   |      |      | In main loop\nFUNC_SAVE_SETTINGS          |      |  2   |  1   |      |      | Just before saving settings\nFUNC_SAVE_AT_MIDNIGHT       |      |      |  x   |      |      | At midnight\nFUNC_SAVE_BEFORE_RESTART    |      |  2   |  1   |      |      | Just before a planned restart\nFUNC_AFTER_TELEPERIOD       |      |  2   |  1   |      |      | At end of teleperiod\nFUNC_JSON_APPEND            |      |  2   |  1   |  3   |      | Extend teleperiod JSON text\nFUNC_WEB_SENSOR             |      |  2   |  1   |  3   |      | Add sensor data to web GUI\nFUNC_WEB_COL_SENSOR         |      |  2   |  1   |  3   |      | Add sensor data to web GUI using columns\nFUNC_COMMAND                |  x   |  1   |  2   |  3   |  4   | When a command is not recognized\nFUNC_COMMAND_DRIVER         |  x   |  x   |      |      |      | When command Driver\\<id\\> is executed\nFUNC_COMMAND_SENSOR         |  x   |      |  x   |      |      | When command Sensor\\<id\\> is executed\nFUNC_MQTT_SUBSCRIBE         |      |  x   |      |      |      | At end of MQTT subscriptions\nFUNC_MQTT_INIT              |      |  x   |      |      |      | Once at end of MQTT connection\nFUNC_MQTT_DATA              |  x   |  x   |      |      |      | Before decoding command\nFUNC_SET_POWER              |      |  1   |  2   |      |      | Before setting relays\nFUNC_SET_DEVICE_POWER       |  x   |  x   |      |      |      | Set relay\nFUNC_SHOW_SENSOR            |      |  x   |      |      |      | When FUNC_JSON_APPEND completes\nFUNC_ANY_KEY                |      |  x   |      |      |      |\nFUNC_LED_LINK               |      |  x   |      |      |      | SetLedLink (On ESP32 only). XdrvMailbox.index holds state\nFUNC_ENERGY_EVERY_SECOND    |      |      |      |  x   |      |\nFUNC_ENERGY_RESET           |      |      |      |  x   |      |\nFUNC_RULES_PROCESS          |  x   |  x   |      |      |      | Process specific rule\nFUNC_TELEPERIOD_RULES_PROCESS | x  |  x   |      |      |      | Process specific rule as teleperiod\nFUNC_SERIAL                 |  x   |  1   |      |  2   |  3   | Process serial data\nFUNC_FREE_MEM               |      |  x   |      |      |      | Show free memory for debugging\nFUNC_BUTTON_PRESSED         |  x   |  x   |      |      |      | When a button is pressed\nFUNC_BUTTON_MULTI_PRESSED   |  x   |  x   |      |      |      | When a button is pressed multiple times\nFUNC_WEB_ADD_BUTTON         |      |  1   |  2   |      |      | Add a Configuration Button to GUI\nFUNC_WEB_ADD_MAIN_BUTTON    |      |  1   |  2   |      |      | Add a main button to GUI\nFUNC_WEB_ADD_CONSOLE_BUTTON |      |  1   |  2   |      |      | Add a Consoles Button to GUI\nFUNC_WEB_ADD_MANAGEMENT_BUTTON |   |  x   |      |      |      | Add a Management Button to GUI\nFUNC_WEB_ADD_HANDLER        |      |  1   |  2   |      |      | Add a webserver handler\nFUNC_WEB_GET_ARG            |      |  2   |  1   |      |  3   | Get webserver setting arguments\nFUNC_SET_CHANNELS           |      |  2   |      |      |  1   |\nFUNC_SET_SCHEME             |      |      |      |      |  x   |\nFUNC_HOTPLUG_SCAN           |      |      |  x   |      |      |\nFUNC_TIME_SYNCED            |      |  x   |      |      |      | Report time is synced\nFUNC_DEVICE_GROUP_ITEM      |      |  x   |      |      |      |\nFUNC_NETWORK_UP             |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went up (received even if webserver is not enabled)\nFUNC_NETWORK_DOWN           |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went down (received even if webserver is not enabled)\n\nThe numbers represent the sequence of execution\n\n## Display Call back Ids\n\nThe following table lists all Callback Ids for a Display service.\n\nCallback Id                   | Bool | Description\n------------------------------|------|---------------------\nFUNC_DISPLAY_INIT_DRIVER      |      |\nFUNC_DISPLAY_INIT             |      |\nFUNC_DISPLAY_EVERY_50_MSECOND |      |\nFUNC_DISPLAY_EVERY_SECOND     |      |\nFUNC_DISPLAY_MODEL            |  x   |\nFUNC_DISPLAY_MODE             |      |\nFUNC_DISPLAY_POWER            |      |\nFUNC_DISPLAY_CLEAR            |      |\nFUNC_DISPLAY_DRAW_FRAME       |      |\nFUNC_DISPLAY_DRAW_HLINE       |      |\nFUNC_DISPLAY_DRAW_VLINE       |      |\nFUNC_DISPLAY_DRAW_LINE        |      |\nFUNC_DISPLAY_DRAW_CIRCLE      |      |\nFUNC_DISPLAY_FILL_CIRCLE      |      |\nFUNC_DISPLAY_DRAW_RECTANGLE   |      |\nFUNC_DISPLAY_FILL_RECTANGLE   |      |\nFUNC_DISPLAY_TEXT_SIZE        |      |\nFUNC_DISPLAY_FONT_SIZE        |      |\nFUNC_DISPLAY_ROTATION         |      |\nFUNC_DISPLAY_DRAW_STRING      |      |\nFUNC_DISPLAY_ONOFF            |      |\n\n## Init sequence\n\nThe following list shows a typical callback init sequence\n\n```\nCFG: Loaded from flash at FB, Count 1581\nxdrv - FUNC_SETTINGS_OVERRIDE\nxdrv - FUNC_PIN_STATE\nxsns - FUNC_PIN_STATE\nxsns - FUNC_MODULE_INIT\nxdrv - FUNC_MODULE_INIT\nxlgt - FUNC_MODULE_INIT\nxdrv - FUNC_PRE_INIT\nxnrg - FUNC_PRE_INIT\nxsns - FUNC_PRE_INIT\nSRC: Restart\nxdrv - FUNC_SET_POWER\nxsns - FUNC_SET_POWER\nxlgt - FUNC_SET_CHANNELS\nxdrv - FUNC_SET_DEVICE_POWER\nProject tasmota Wemos 2 Version 7.0.0.3(tasmota)-STAGE\nxdrv - FUNC_INIT\nxsns - FUNC_INIT\nI2C: ADS1115 found at 0x48\nxdrv - FUNC_LOOP\nxsns - FUNC_LOOP\nxdrv - FUNC_EVERY_50_MSECOND\nxlgt - FUNC_SET_CHANNELS\nxsns - FUNC_EVERY_50_MSECOND\nxdrv - FUNC_EVERY_100_MSECOND\nxsns - FUNC_EVERY_100_MSECOND\nxdrv - FUNC_EVERY_250_MSECOND\nxsns - FUNC_EVERY_250_MSECOND\nxdrv - FUNC_EVERY_SECOND\nxsns - FUNC_EVERY_SECOND\nWIF: Attempting connection...\nWIF: Network (re)scan started...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Network 0, AP1, SSId indebuurt1, Channel 1, BSSId 24:D3:F2:97:C0:A1, RSSI -86, Encryption 1\nWIF: Network 1, AP2, SSId indebuurt2, Channel 5, BSSId A0:AB:1B:7D:42:AC, RSSI -42, Encryption 1\nWIF: Network 2, AP-, SSId indebuurt3, Channel 12, BSSId 60:E3:27:58:77:E6, RSSI -84, Encryption 1\nWIF: Connecting to AP2 indebuurt2 in mode 11N as wemos2...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Connected\nxdrv - FUNC_WEB_ADD_HANDLER\nxsns - FUNC_WEB_ADD_HANDLER\nHTP: Web server active on wemos2 with IP address 192.168.2.191\nNTP: Drift 0, (UTC) Wed Nov 06 13:57:08 2019, (DST) Sun Mar 31 02:00:00 2019, (STD) Sun Oct 27 03:00:00 2019\nAPP: Boot Count 500\nMQT: Attempting connection...\nMQT: Connected\nMQT: tele/wemos2/LWT = Online (retained)\nMQT: cmnd/wemos2/POWER =\nMQT: Subscribe to cmnd/wemos2/#\nMQT: Subscribe to cmnd/sonoffs/#\nMQT: Subscribe to cmnd/DVES_15568C_fb/#\nxdrv - FUNC_MQTT_SUBSCRIBE\nMQT: tele/wemos2/INFO1 = {\"Module\":\"Generic\",\"Version\":\"7.0.0.3(tasmota)\",\"FallbackTopic\":\"cmnd/DVES_15568C_fb/\",\"GroupTopic\":\"cmnd/sonoffs/\"}\nMQT: tele/wemos2/INFO2 = {\"WebServerMode\":\"Admin\",\"Hostname\":\"wemos2\",\"IPAddress\":\"192.168.2.191\"}\nMQT: tele/wemos2/INFO3 = {\"RestartReason\":\"Software/System restart\"}\nMQT: stat/wemos2/RESULT = {\"POWER1\":\"OFF\"}\nMQT: stat/wemos2/POWER1 = OFF\nMQT: stat/wemos2/RESULT = {\"POWER2\":\"ON\"}\nMQT: stat/wemos2/POWER2 = ON\nxdrv - FUNC_MQTT_INIT\nCFG: Saved to flash at FA, Count 1582, Bytes 4096\n```\n","tools/fw_TasmotaClient_arduino/TasmotaClient/README.md":"# TasmotaClient\n\nThis library adds support for the TasmotaClient driver integrated into Tasmota from https://github.com/arendst/Tasmota\n\nRead the TasmotaClient wiki article on the Tasmota wiki from https://tasmota.github.io/docs/#/TasmotaSlave to see how to enable support for this library inside Tasmota.\n\nEdit:(docs are not up to date and dokuments the old TasmotaSlave comands) (2020-11-21)\n# Change Log\n\n### 2019-11-29 - v0.0.2 (Pre-release)\n\n- Add support for sending commands to Tasmota using ExecuteCommand(char *cmnd)\n","tasmota/berry/extensions/LVGL_Panel/manifest.json":"{\n  \"name\": \"LVGL Panel\",\n  \"version\": \"0x1A030301\",\n  \"description\": \"Realtime mirror of the LVGL display in browser\",\n  \"author\": \"Stephan Hadinger & Milko Daskalov\",\n  \"min_tasmota\": \"0x0F030002\",\n  \"features\": \"display\"\n}","tasmota/berry/extensions/Devices_Online/manifest.json":"{\n  \"name\": \"Devices Online\",\n  \"version\": \"0x1A040900\",\n  \"description\": \"Display devices online info\",\n  \"author\": \"Theo Arends\",\n  \"min_tasmota\": \"0x09040000\",\n  \"features\": \"\"\n}\n","tasmota/berry/extensions/LoRaWan_Decoders/changelog.md":"# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/changelog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/changelog.md)","tasmota/berry/extensions/LoRaWan_Decoders/manifest.json":"# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/manifest.json)","tasmota/berry/extensions/Partition_Wizard/manifest.json":"# Partition_Wizard Skill\n\nPath: `tasmota/berry/extensions/Partition_Wizard/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Partition_Wizard/manifest.json)","tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json":"# Wifi_Heap_Sticker Skill\n\nPath: `tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md":"# tasmota.animation-dsl-1.2.1 Documentation\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json":"# Syntaxes Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md":"# skiars.berry-1.2.0 Documentation\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json":"# Syntaxes Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json)"},"files":{"lib/libesp32/berry_matter/tools/vendors.json":"{\n  \"vendorInfo\": [\n    {\n      \"vendorID\": 4107,\n      \"vendorName\": \"Signify\",\n      \"companyLegalName\": \"Signify Netherlands B.V.\",\n      \"companyPreferredName\": \"Signify\",\n      \"vendorLandingPageURL\": \"https://www.signify.com/\",\n      \"creator\": \"cosmos1xx8fg5nu4lesn448ytds8yjql47jp8gnfh6hck\"\n    },\n    {\n      \"vendorID\": 4125,\n      \"vendorName\": \"Assa Abloy\",\n      \"companyLegalName\": \"Assa Abloy\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.yalehome.com\",\n      \"creator\": \"cosmos18wrgwrrccn49ejv4hstz9czxgw9dc2s2l9f94k\"\n    },\n    {\n      \"vendorID\": 4129,\n      \"vendorName\": \"Legrand Group\",\n      \"companyLegalName\": \"Legrand\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.legrand.com\",\n      \"creator\": \"cosmos1elm6sf9yd2n7y0l0rve4zru0ukanv76vtrjnt3\"\n    },\n    {\n      \"vendorID\": 4151,\n      \"vendorName\": \"NXP Semiconductors\",\n      \"companyLegalName\": \"NXP Semiconductors N.V.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nxp.com\",\n      \"creator\": \"cosmos1ck0arz4kky9l9qtdvqrct7783ffv2yftgmj9ch\"\n    },\n    {\n      \"vendorID\": 4190,\n      \"vendorName\": \"Schneider\",\n      \"companyLegalName\": \"Schneider Electric\",\n      \"companyPreferredName\": \"Schneider Electric\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14kre58wpgterp7t9yy0393ecel9hpz9fnul6pc\"\n    },\n    {\n      \"vendorID\": 4251,\n      \"vendorName\": \"Leviton\",\n      \"companyLegalName\": \"Leviton Manufacturing Company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.leviton.com\",\n      \"creator\": \"cosmos1ypyp8zrqeu64rjmx3u34ghvl64uajr67uams3d\"\n    },\n    {\n      \"vendorID\": 4304,\n      \"vendorName\": \"Qorvo\",\n      \"companyLegalName\": \"Qorvo, Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.qorvo.com/\",\n      \"creator\": \"cosmos1qrpkuzgm7hfejejfyg20g34tjxlt4k8dsspq52\"\n    },\n    {\n      \"vendorID\": 4334,\n      \"vendorName\": \"UEI\",\n      \"companyLegalName\": \"Universal Electronics Inc\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.uei.com/\",\n      \"creator\": \"cosmos1pvrad6x6ettwgudttqd97r9wvarvnj5davpltg\"\n    },\n    {\n      \"vendorID\": 4338,\n      \"vendorName\": \"ubisys\",\n      \"companyLegalName\": \"ubisys technologies GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.ubisys.de\",\n      \"creator\": \"cosmos1rxydw26p5k4f9rtwln6r3srvw4qq9pxnxadr3d\"\n    },\n    {\n      \"vendorID\": 4381,\n      \"vendorName\": \"Comcast Communications\",\n      \"companyLegalName\": \"Comcast\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1xcv4q8sjvf7nw4qj2yt5kledgwyf3ycxw8c0pe\"\n    },\n    {\n      \"vendorID\": 4442,\n      \"vendorName\": \"Nanoleaf\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nanoleaf.me\",\n      \"creator\": \"cosmos1sggrrmw05e6alve8umwdaszade5qxyt53kthud\"\n    },\n    {\n      \"vendorID\": 4447,\n      \"vendorName\": \"Aqara\",\n      \"companyLegalName\": \"Lumi United Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.aqara.com/\",\n      \"creator\": \"cosmos1qpz3ghnqj6my7gzegkftzav9hpxymkx6zdk73v\"\n    },\n    {\n      \"vendorID\": 4448,\n      \"vendorName\": \"Sengled\",\n      \"companyLegalName\": \"Sengled Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1arhkv0n34xylxz9suy73dpyk6de32gpym9l3sw\"\n    },\n    {\n      \"vendorID\": 4456,\n      \"vendorName\": \"Leedarson\",\n      \"companyLegalName\": \"Leedarson IoT Technology Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1mzg0v94yg0cmkjqe2jqsys44tvvfk9mt2d889d\"\n    },\n    {\n      \"vendorID\": 4478,\n      \"vendorName\": \"Feibit\",\n      \"companyLegalName\": \"Shenzhen Feibit Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"Feibit\",\n      \"vendorLandingPageURL\": \"http://www.feibit.com\",\n      \"creator\": \"cosmos162y3ehrqpuu2xjvmgq6qq7yqtdh6mlwh32wv2h\"\n    },\n    {\n      \"vendorID\": 4488,\n      \"vendorName\": \"TP-Link\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tp-link.com\",\n      \"creator\": \"cosmos1jxpj6rr8vnetz9a2ec08az5fwqpuf4zt4hhygv\"\n    },\n    {\n      \"vendorID\": 4492,\n      \"vendorName\": \"Midea Group\",\n      \"companyLegalName\": \"Midea Group\",\n      \"companyPreferredName\": \"Midea\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1a7c8us8jl76f8uue6xf9gzzqklfmfdyh8nedae\"\n    },\n    {\n      \"vendorID\": 4619,\n      \"vendorName\": \"HEIMAN\",\n      \"companyLegalName\": \"Shenzhen Heiman Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos16s4lqhxyqdr5lq6gmfpskjtwjf7dwc0lktn6dt\"\n    },\n    {\n      \"vendorID\": 4631,\n      \"vendorName\": \"Amazon Alexa\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Alexa\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos152v4ejapsjl222zew0ll4eeltc0h2phh5hzpu3\"\n    },\n    {\n      \"vendorID\": 4633,\n      \"vendorName\": \"ORVIBO\",\n      \"companyLegalName\": \"Shenzhen ORVIBO Technology Co.,  Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.orvibo.com\",\n      \"creator\": \"cosmos1u7um30yf68zugm897tgpq7s6vhkhk4t2ykm0hq\"\n    },\n    {\n      \"vendorID\": 4701,\n      \"vendorName\": \"Tuya\",\n      \"companyLegalName\": \"Tuya Global Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos13pwvzq2zk0r3fxuc2a5jhadnx6tda5ar2tcpp9\"\n    },\n    {\n      \"vendorID\": 4735,\n      \"vendorName\": \"Nordic Semiconductor ASA\",\n      \"companyLegalName\": \"Nordic Semiconductor ASA\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nordicsemi.com\",\n      \"creator\": \"cosmos1eatgwsxtjz0tlchllzasjfcac6m56n30njc3k2\"\n    },\n    {\n      \"vendorID\": 4736,\n      \"vendorName\": \"Siterwell\",\n      \"companyLegalName\": \"Siterwell Electronics Co., Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1u3uhlkepx9dz9asrlucuupw2md2frvkwv583nr\"\n    },\n    {\n      \"vendorID\": 4742,\n      \"vendorName\": \"CoolKit\",\n      \"companyLegalName\": \"SHENZHEN Coolkit Technology CO.,LTD.\",\n      \"companyPreferredName\": \"CoolKit\",\n      \"vendorLandingPageURL\": \"https://www.coolkit.cn/\",\n      \"creator\": \"cosmos18m8lehnvqx8zytn22fkekelt7xgmrl7cga37tl\"\n    },\n    {\n      \"vendorID\": 4751,\n      \"vendorName\": \"EGLO\",\n      \"companyLegalName\": \"EGLO Leuchten GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.eglo.com/en/\",\n      \"creator\": \"cosmos1veu2f7mtgvfw8ezjfmhs64cqyt9wp2weas2rga\"\n    },\n    {\n      \"vendorID\": 4874,\n      \"vendorName\": \"Eve\",\n      \"companyLegalName\": \"Eve Systems GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.evehome.com\",\n      \"creator\": \"cosmos1yh0ld8jl26rgycrtank8slxepmc8xzgyrzv99t\"\n    },\n    {\n      \"vendorID\": 4877,\n      \"vendorName\": \"BouffaloLab\",\n      \"companyLegalName\": \"Bouffalo Lab (Nanjing) Co., Ltd.\",\n      \"companyPreferredName\": \"Bouffalo Lab \",\n      \"vendorLandingPageURL\": \"https://www.bouffalolab.com/\",\n      \"creator\": \"cosmos1l8qwcjgfcnvlmtxrlcjrsmy9068mlck2cw68kx\"\n    },\n    {\n      \"vendorID\": 4882,\n      \"vendorName\": \"Yeelight\",\n      \"companyLegalName\": \"Qingdao Yeelink Information Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Yeelink Information Technology\",\n      \"vendorLandingPageURL\": \"https://en.yeelight.com/#\",\n      \"creator\": \"cosmos18fcq3647dkwur0d0zjyenj8sk57jehq4a8epaf\"\n    },\n    {\n      \"vendorID\": 4891,\n      \"vendorName\": \"Espressif Systems\",\n      \"companyLegalName\": \"Espressif Systems (Shanghai) Co. Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.espressif.com\",\n      \"creator\": \"cosmos1vncrg6hk30kutk4nr26mvyqc92zkygcc7aemzt\"\n    },\n    {\n      \"vendorID\": 4894,\n      \"vendorName\": \"CAME S.p.A.\",\n      \"companyLegalName\": \"CAME S.p.A.\",\n      \"companyPreferredName\": \"CAME S.p.A.\",\n      \"vendorLandingPageURL\": \"https://www.came.com/\",\n      \"creator\": \"cosmos1kxjh94dcvnym6265nmxcjpn9xpkx0y7e3jjeqc\"\n    },\n    {\n      \"vendorID\": 4895,\n      \"vendorName\": \"Longan.link\",\n      \"companyLegalName\": \"Longan Link Tech Co.,LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://longan.link/\",\n      \"creator\": \"cosmos1qnd2v3n0f0ukja8z0jm4jqsqs5qhxa6ncvcxuv\"\n    },\n    {\n      \"vendorID\": 4897,\n      \"vendorName\": \"SONOFF\",\n      \"companyLegalName\": \"Shenzhen Sonoff Technologies Co.,Ltd.\",\n      \"companyPreferredName\": \"SONOFF\",\n      \"vendorLandingPageURL\": \"https://sonoff.tech/\",\n      \"creator\": \"cosmos160c6r8rc2pgpgucasw4ae5gfqtz5vzcc6ay2sz\"\n    },\n    {\n      \"vendorID\": 4915,\n      \"vendorName\": \"Becker Antriebe\",\n      \"companyLegalName\": \"Becker Antriebe GmbH\",\n      \"companyPreferredName\": \"Becker Antriebe\",\n      \"vendorLandingPageURL\": \"https://www.becker-antriebe.com/\",\n      \"creator\": \"cosmos1f6knru06kkxm306ckgs93zs9aqyrk9axgqh5wq\"\n    },\n    {\n      \"vendorID\": 4921,\n      \"vendorName\": \"GE Lighting, a Savant company\",\n      \"companyLegalName\": \"GE Lighting, a Savant company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.gelighting.com/\",\n      \"creator\": \"cosmos130t4m26ynex82jcgkqguxpffpva05e4zugn0xc\"\n    },\n    {\n      \"vendorID\": 4927,\n      \"vendorName\": \"ASR\",\n      \"companyLegalName\": \"ASR Microelectronics(ShenZhen)Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14a9n65wmumympggqnquu5ptq042ff69nehztk7\"\n    },\n    {\n      \"vendorID\": 4930,\n      \"vendorName\": \"Beken Corporation\",\n      \"companyLegalName\": \"beken\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.bekencorp.com/\",\n      \"creator\": \"cosmos1aru484uj9dqkpnqg768tl6m66fvz9wkqcg79cw\"\n    },\n    {\n      \"vendorID\": 4932,\n      \"vendorName\": \"Eltako\",\n      \"companyLegalName\": \"Eltako GmbH\",\n      \"companyPreferredName\": \"Eltako\",\n      \"vendorLandingPageURL\": \"https://www.eltako.com\",\n      \"creator\": \"cosmos1n3kqdwqh33grxcnzdeknercyt3wekc5zl4n3dg\"\n    },\n    {\n      \"vendorID\": 4933,\n      \"vendorName\": \"Meross\",\n      \"companyLegalName\": \"Chengdu Meross Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Meross\",\n      \"vendorLandingPageURL\": \"https://www.meross.com\",\n      \"creator\": \"cosmos18qu47pmqwylzm9w2tezyrmvcwmkew5yyvw3d6n\"\n    },\n    {\n      \"vendorID\": 4934,\n      \"vendorName\": \"Rafael\",\n      \"companyLegalName\": \"Rafael Microelectronics, Inc.\",\n      \"companyPreferredName\": \"Rafael\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14myns7fehcxm2c896k5syhzr7zsyf7g4jdlk08\"\n    },\n    {\n      \"vendorID\": 4937,\n      \"vendorName\": \"Apple Home\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.apple.com/home-app\",\n      \"creator\": \"cosmos1ysl37yl5nmcg8qr64knpscahq5zel3hjtxmvyt\"\n    },\n    {\n      \"vendorID\": 4942,\n      \"vendorName\": \"tado\",\n      \"companyLegalName\": \"tado GmbH\",\n      \"companyPreferredName\": \"tado°\",\n      \"vendorLandingPageURL\": \"https://www.tado.com/\",\n      \"creator\": \"cosmos1sacvh2z4w0f3d657a2tdw2w4ha87743c8qahkv\"\n    },\n    {\n      \"vendorID\": 4943,\n      \"vendorName\": \"mediola\",\n      \"companyLegalName\": \"mediola - connected living AG\",\n      \"companyPreferredName\": \"mediola\",\n      \"vendorLandingPageURL\": \"https://www.mediola.com\",\n      \"creator\": \"cosmos1j2w2zq787mkwltsdhzlxpnm50s8nrvg85u20dh\"\n    },\n    {\n      \"vendorID\": 4945,\n      \"vendorName\": \"HooRii Technology\",\n      \"companyLegalName\": \"HooRii Technology CO., LTD\",\n      \"companyPreferredName\": \"HooRii Technology\",\n      \"vendorLandingPageURL\": \"https://www.hoorii.io/\",\n      \"creator\": \"cosmos1etk35ufz9z4x56t63tap7ncsvk5k5zw2npmlcu\"\n    },\n    {\n      \"vendorID\": 4957,\n      \"vendorName\": \"Nuki\",\n      \"companyLegalName\": \"Nuki Home Solutions GmbH\",\n      \"companyPreferredName\": \"Nuki\",\n      \"vendorLandingPageURL\": \"https://nuki.io\",\n      \"creator\": \"cosmos1tdslga3va6luqzy2x3nlwxfh80f99vly5800ls\"\n    },\n    {\n      \"vendorID\": 4962,\n      \"vendorName\": \"deveritec GmbH\",\n      \"companyLegalName\": \"deveritec GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://deveritec.de\",\n      \"creator\": \"cosmos19740ad8368h0h33rcu6gugtxgvyuws7puqg0za\"\n    },\n    {\n      \"vendorID\": 4965,\n      \"vendorName\": \"Dooya\",\n      \"companyLegalName\": \"Ningbo Dooya Mechanic \\u0026 Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1pqypa94grwkmk2d7e0ncdctfav5wyycu787tmk\"\n    },\n    {\n      \"vendorID\": 4974,\n      \"vendorName\": \"Ambi Labs Limited\",\n      \"companyLegalName\": \"Ambi Labs Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos12st2nx5elvkyswv7nqw6xh6j67vg472lcv0299\"\n    },\n    {\n      \"vendorID\": 4977,\n      \"vendorName\": \"Tridonic\",\n      \"companyLegalName\": \"Tridonic GmbH \\u0026 Co KG\",\n      \"companyPreferredName\": \"Tridonic\",\n      \"vendorLandingPageURL\": \"https://www.tridonic.com/matter\",\n      \"creator\": \"cosmos16ad3em3nrqzf854p03audmgdl3pc384467yzav\"\n    },\n    {\n      \"vendorID\": 4978,\n      \"vendorName\": \"innovation matters\",\n      \"companyLegalName\": \"innovation matters iot GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.innovation-matters.at/\",\n      \"creator\": \"cosmos1v6x4nte50al0jjynvldwqse9n4ceajmja3wvph\"\n    },\n    {\n      \"vendorID\": 4991,\n      \"vendorName\": \"NEO\",\n      \"companyLegalName\": \"Shenzhen NEO Electronic CO\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18cvsug5mc7vj9a6kxaj0fwp99vj9ga3xd3lnql\"\n    },\n    {\n      \"vendorID\": 4993,\n      \"vendorName\": \"Amazon Prime Video\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Prime Video\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos1akrkaxvlfwnnk2phtxewadmel4s567wr8xmfj8\"\n    },\n    {\n      \"vendorID\": 4996,\n      \"vendorName\": \"Apple Keychain\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://support.apple.com/en-us/HT213441\",\n      \"creator\": \"cosmos1qqgp6p73z0lku4qzeajgtxtzy24xx467j0v0kp\"\n    },\n    {\n      \"vendorID\": 4998,\n      \"vendorName\": \"Skylux\",\n      \"companyLegalName\": \"Skylux N.V.\",\n      \"companyPreferredName\": \"Skylux\",\n      \"vendorLandingPageURL\": \"https://www.skylux.eu\",\n      \"creator\": \"cosmos1f9haxa732cy6rmm3nc88q9fxx9zv0m0qn3kzcm\"\n    },\n    {\n      \"vendorID\": 4999,\n      \"vendorName\": \"Qianyan\",\n      \"companyLegalName\": \"Shenzhen Qianyan Technology LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos10plhr0fh27nred7nra3s6dld26gzcw6etje4gk\"\n    },\n    {\n      \"vendorID\": 5002,\n      \"vendorName\": \"Nature\",\n      \"companyLegalName\": \"Nature Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nature.global/\",\n      \"creator\": \"cosmos1yvwf85sx9mp53kptfwfz49cmmznvj2j0efavzu\"\n    },\n    {\n      \"vendorID\": 5009,\n      \"vendorName\": \"Kasa\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.kasasmart.com\",\n      \"creator\": \"cosmos1fjwwzm8zs9yc2hq73tqggdylcmm0ujmuc7x9wn\"\n    },\n    {\n      \"vendorID\": 5010,\n      \"vendorName\": \"Tapo\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tapo.com\",\n      \"creator\": \"cosmos1acw4mmmf26e7jkxqm5epu7g56tcgz0walk3vs8\"\n    },\n    {\n      \"vendorID\": 5015,\n      \"vendorName\": \"SwitchBot\",\n      \"companyLegalName\": \"Woan Technology (Shenzhen) Co., Ltd. \",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1dc9patujyr2av2ezggudfalfag7p7scc0t3wnk\"\n    },\n    {\n      \"vendorID\": 5020,\n      \"vendorName\": \"Zemismart Technology Limited\",\n      \"companyLegalName\": \"Zemismart Technology Limited\",\n      \"companyPreferredName\": \"Zemismart\",\n      \"vendorLandingPageURL\": \"https://www.zemismart.com\",\n      \"creator\": \"cosmos1mrv5zh6r6kcfln34vju5kfup4mv9lw27u33yj0\"\n    },\n    {\n      \"vendorID\": 5120,\n      \"vendorName\": \"Uascent\",\n      \"companyLegalName\": \"Uascent Technology Company Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1ynw4zl6xqnvh5zhzhhpxjc6kt8z8wvxkp8edsw\"\n    },\n    {\n      \"vendorID\": 5123,\n      \"vendorName\": \"Arlec Australia\",\n      \"companyLegalName\": \"Arlec Australia Pty. Ltd.\",\n      \"companyPreferredName\": \"Grid Connect\",\n      \"vendorLandingPageURL\": \"https://grid-connect.com.au/\",\n      \"creator\": \"cosmos1d9ut0ysdlw68r0705q8tagf7y9cf3d686fpf73\"\n    },\n    {\n      \"vendorID\": 5124,\n      \"vendorName\": \"Phaten\",\n      \"companyLegalName\": \"Shenzhen Phaten Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.phaten.com\",\n      \"creator\": \"cosmos1h4rf0hjzf498s2lu0rf8m52ujst2gl7lpdnexs\"\n    },\n    {\n      \"vendorID\": 5127,\n      \"vendorName\": \"ThirdReality\",\n      \"companyLegalName\": \"Jiangsu Shushi Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1qwnh6tj4n938g3fmncqna22zmfxx50vnd22yux\"\n    },\n    {\n      \"vendorID\": 5136,\n      \"vendorName\": \"Quectel\",\n      \"companyLegalName\": \"Quectel Wireless Solutions Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.quectel.com\",\n      \"creator\": \"cosmos1dqrg6w2jjs7sft59dpqngjzyfdjh4xjn5rjct5\"\n    },\n    {\n      \"vendorID\": 5139,\n      \"vendorName\": \"1Home\",\n      \"companyLegalName\": \"1Home Solutions GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.1home.io/\",\n      \"creator\": \"cosmos1nzyp28afpumk0djal2w35s2pcl0q3e57euplkq\"\n    },\n    {\n      \"vendorID\": 5141,\n      \"vendorName\": \"Caveman\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1smgmnl90h9srczk926l5kt7rydjpq7x0smc5e7\"\n    },\n    {\n      \"vendorID\": 5145,\n      \"vendorName\": \"Lorex\",\n      \"companyLegalName\": \"Lorex Technology Inc.\",\n      \"companyPreferredName\": \"Lorex\",\n      \"vendorLandingPageURL\": \"https://www.lorex.com/\",\n      \"creator\": \"cosmos1c98nn3uphuya0w4km5uzamjwpkawksf5g6h5m5\"\n    },\n    {\n      \"vendorID\": 5147,\n      \"vendorName\": \"Rang Dong VN\",\n      \"companyLegalName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"companyPreferredName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"vendorLandingPageURL\": \"https://rangdong.com.vn/\",\n      \"creator\": \"cosmos1023z8vredmrn7xlzjlrlv6wdqh0fpzs8jlc9rx\"\n    },\n    {\n      \"vendorID\": 5150,\n      \"vendorName\": \"TUO Accessories LLC\",\n      \"companyLegalName\": \"TUO Accessories LLC\",\n      \"companyPreferredName\": \"TUO Accessories\",\n      \"vendorLandingPageURL\": \"http://tuoaccessories.com\",\n      \"creator\": \"cosmos1vn34dnlqvz5e997ws53yfj6a2622duzf3gg80d\"\n    },\n    {\n      \"vendorID\": 5151,\n      \"vendorName\": \"Ductech\",\n      \"companyLegalName\": \"DUCTECH Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18nqp48ce5k7j8qvuwk7tnzmckwsd8k2tlnj850\"\n    },\n    {\n      \"vendorID\": 5165,\n      \"vendorName\": \"QH\",\n      \"companyLegalName\": \"Zhongshan QIHANG Electronic Technology Co.\",\n      \"companyPreferredName\": \"QIHANG\",\n      \"vendorLandingPageURL\": \"https://zsqhkj.1688.com/\",\n      \"creator\": \"cosmos13zzg6t6gaz36p8ctguatrguwuep9wmza6lptet\"\n    },\n    {\n      \"vendorID\": 5167,\n      \"vendorName\": \"QIACHIP\",\n      \"companyLegalName\": \"Shenzhen QIACHIP Wireless E-commerce Co.\",\n      \"companyPreferredName\": \"QIACHIP\",\n      \"vendorLandingPageURL\": \"https://qiachip.com\",\n      \"creator\": \"cosmos1rhjya3hdvpyr2a3ur7s5hj48ce2qndyfcz07ht\"\n    },\n    {\n      \"vendorID\": 24582,\n      \"vendorName\": \"Google LLC\",\n      \"companyLegalName\": \"Google LLC\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1kelvhh6cy2vmaj5zczxj52k4nys2w4e2u3awvq\"\n    }\n  ],\n  \"pagination\": {\n    \"next_key\": null,\n    \"total\": \"73\"\n  }\n}","tools/fw_TasmotaClient_arduino/TasmotaClient/library.json":"{\n    \"name\": \"TasmotaClient\",\n    \"version\": \"0.0.2\",\n    \"keywords\": [\n      \"serial\", \"io\", \"TasmotaClient\"\n    ],\n    \"description\": \"TasmotaClient Driver Library\",\n    \"repository\":\n    {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/andrethomas/TasmotaSlave\"\n    },\n    \"frameworks\": \"arduino\"\n}\n","tools/fw_ShellyDimmer_stm32/README.md":"An open-source firmware for the STM32 co-processor on the Shelly Dimmer by James Turton.\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\n# Pre-build binary\nSee the [releases](https://github.com/jamesturton/shelly-dimmer-stm32/releases) page to download the latest pre-build binary.\n","tools/qemu/README.md":"# Running Tasmota (ESP32) under QEMU\n\n`tasmota-qemu.sh` (in `tools/qemu/`) builds a Tasmota ESP32 firmware with PlatformIO and\nboots it under an Espressif QEMU fork on an amd64 host — serial console always, and a\n**browsable web UI** when the WiFi-capable fork is used.\n\nIt builds the **current checkout** (your local changes), not a fresh clone. Build\nartifacts and the QEMU forks live under `tasmota-qemu/` at the repo root (gitignored).\nExamples below assume you run it from `tools/qemu/`; from the repo root use\n`tools/qemu/tasmota-qemu.sh …` — either works, paths resolve the same.\n\n## Quick start\n\nNetworked Tasmota with a reachable web UI, in one command:\n\n```bash\nNET_WIFI=1 ./tasmota-qemu.sh        # build -> image -> wifi QEMU -> boot, joins emulated AP\n# then browse:\nopen http://localhost:8080\n```\n\nFirst run is slow: it clones Tasmota, pulls the toolchain, compiles the firmware, and\nclones + builds the QEMU fork. Subsequent runs are cached.\n\nSerial-only (no network, stock QEMU, fastest path):\n\n```bash\n./tasmota-qemu.sh                   # stock fork, serial console only\n```\n\n## Commands\n\n```\n./tasmota-qemu.sh [command]\n  build        Compile Tasmota firmware (PlatformIO env $TASMOTA_ENV)\n  make-image   Build the QEMU flash image (factory.bin, or merge raw parts)\n  qemu-setup   Clone + build the chosen QEMU fork\n  run          Boot the firmware in QEMU (serial tee'd to qemu.log)\n  smoketest    Boot a minimal Arduino app (same IDF) to sanity-check QEMU itself\n  decode [log] Symbolize the last panic backtrace from a log (default: qemu.log)\n  all          build -> make-image -> qemu-setup -> run   (default)\n```\n\n## Key environment variables\n\n| Variable          | Default              | Meaning |\n|-------------------|----------------------|---------|\n| `NET_WIFI`        | `0`                  | `1` = one-shot networked recipe (see below) |\n| `WIFI_SSID`       | `Open Wifi`          | AP the firmware joins when `NET_WIFI=1` |\n| `WIFI_PASS`       | *(empty)*            | password for that AP (the emulated one is open) |\n| `NET_WIFI_ENV`    | `tasmota32solo1`     | env used by `NET_WIFI=1` |\n| `TASMOTA_ENV`     | `tasmota32`          | PlatformIO env (must be an ESP32 one) |\n| `MINIMAL`         | `0`                  | `1` = build the stripped `tasmota32-safeboot` env |\n| `QEMU_VARIANT`    | `stock`              | `stock` (no WiFi) or `wifi` (Ebiroll/calib fork) |\n| `FLASH_SIZE`      | `4MB`                | `2MB`/`4MB`/`8MB`/`16MB` only |\n| `WEB_PORT_HOST`   | `8080`               | host port forwarded to guest `:80` |\n| `USE_SYSTEM_QEMU` | `0`                  | `1` = use `qemu-system-xtensa` from `PATH` |\n| `INSTALL_DEPS`    | `0`                  | `1` = apt-get the QEMU build deps (needs sudo) |\n\n## How `NET_WIFI=1` works\n\nGetting a networked Tasmota into QEMU needs three things to line up; `NET_WIFI=1`\nsets all of them:\n\n1. **Survive early IDF init** — the full dual-core `tasmota32` build panics in\n   `esp_timer_impl_init` under QEMU (null interrupt vector). The **unicore\n   `tasmota32solo1`** build does not, so `NET_WIFI=1` selects it.\n2. **Survive WiFi bring-up** — Tasmota's WiFi blobs poke RF registers (`0x6003xxxx`)\n   that the **stock** QEMU does not emulate (`LoadStorePIFAddrError`). The\n   **`wifi` fork** (Ebiroll/calib) emulates them, so `NET_WIFI=1` forces\n   `QEMU_VARIANT=wifi`.\n3. **Get an IP the host can reach** — that fork advertises one open AP named\n   **`Open Wifi`**. `NET_WIFI=1` writes station credentials into a managed block in\n   `tasmota/user_config_override.h`, so the firmware joins it in station mode, gets a\n   slirp DHCP lease (`10.0.2.15`), and the `:8080 -> :80` port-forward becomes routable.\n\nThe credential block is delimited and idempotent — re-running rewrites only that block\nand leaves the rest of `user_config_override.h` intact.\n\n## Debugging a panic\n\nThe `run` step boots with `-no-reboot` (QEMU exits on the first guest reset instead of\nlooping) and tees the serial console to `tasmota-qemu/qemu.log`. To symbolize the last\npanic:\n\n```bash\n./tasmota-qemu.sh decode                 # decodes tasmota-qemu/qemu.log\n./tasmota-qemu.sh decode some-other.log  # decodes a specific log\n```\n\n`decode` strips the `0xffffffff` sentinel frame, takes the PC of each `pc:sp` pair, and\nruns `addr2line` against the matching `firmware.elf`. Frames in app flash\n(`0x4018xxxx`+) are the useful ones. Addresses that resolve to `??` are inside the\nclosed-source WiFi/BT blobs (no symbols) — usually a sign the firmware touched radio\nhardware the emulator doesn't model.\n\nIs it QEMU or the firmware? Run `./tasmota-qemu.sh smoketest`: it builds a minimal Arduino\napp with the *same* IDF/toolchain and boots it. If the minimal app runs, QEMU is fine\nand the problem is in the Tasmota build.\n\n## Web UI: only `/` loads, sub-pages give `ERR_EMPTY_RESPONSE`\n\nThis is expected on first use and is **not** a crash. Tasmota's referer check only\naccepts a `Referer` whose host is its own hostname or local IP (`10.0.2.15`). Through\nthe host port-forward your browser sends `Referer: http://localhost:8080/`, whose host\nis `localhost` — matching neither — so every page past `/` is dropped with an empty\nresponse.\n\nWith `NET_WIFI=1` this is handled automatically: a background watcher waits for the web\nserver to come up and issues `SetOption128 1` for you, so the UI is clickable out of the\nbox. If you ever need to do it by hand (e.g. you ran a plain `run` on a fresh image):\n\n```bash\n./tasmota-qemu.sh fixui          # sends SetOption128 1 (disable referer check)\n```\n\nThe setting persists to flash. A fresh `make-image` wipes flash, but the next\n`NET_WIFI=1` run re-applies it automatically.\n\n## Caveats\n\n- The `wifi` fork is older than the firmware's IDF; its RF-register model is good enough\n  to associate but is not a full WiFi stack.\n- `stock` + a real Tasmota build will boot to a serial console but the web UI will not\n  respond (no WiFi emulation). Use `NET_WIFI=1` for network access.\n- Stop a running QEMU with `Ctrl-A` then `X`, or:\n  `for p in $(pgrep -f qemu-system-xtensa); do kill -9 $p; done`\n","tools/decode-config.md":"A tool to backup and restore the configuration of [Tasmota](http://tasmota.com/)-devices.\n\n## decode-config has moved to [https://github.com/tasmota/decode-config](https://github.com/tasmota/decode-config)\n","tools/fw_SonoffZigbeeBridge_ezsp/readme.md":"# EmberZNet NCP UART EZSP firmware\n\n## EmberZNet NCP UART EZSP firmware signed for Sonoff ZBBridge\n\n### Currently recommended versions\n\n- `ncp-uart-sw-6.7.8_115200.ota` - NEW: The current and recommended stable version for EZSP v8 compatible hosts.\n\n- `ncp-uart-nsw_6.7.9_115200.ota` - has some additional bug fixes and is under testing.\n\n### Archived versions\n\n- `ncp-uart-sw_6.7.6_115200.ota` - OLD: Original version for EZSP v8 compatible hosts, (contains a bug that can cause battery of IKEA and Philips remotes to drain).\n- `ncp-uart-sw_6.5.5_115200.ota` - LEGACY: Legacy version for older EZSP v7 compatible hosts.\n\n## EFR32, EmberZNet and EZSP Protocol Versions\n\nEZSP stands for \"EmberZNet Serial Protocol\" which is the default serial interface used in compatible Zigbee coordinator firmware for the Silicon Labs EFR32 hardware family such as the EFR32MG21/MGM210 and EFR32MG12/MGM12 series.\n\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-modules\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-modules\n\nSilicon Labs do not currently have a consolidated list of changes by EmberZNet SDK or EZSP protocol versions. The EZSP additions, changes and deletions have only ever been listed in the [Zigbee EmberZNet Release Notes](https://www.silabs.com/search#q=Zigbee%20EmberZNet%20Release%20Notes&t=All&sort=relevancy) (EmberZNet SDK) under the \"New items\" section as well as the matching UG100 EZSP Reference Guide included with each EmberZNet SDK release.\n\nThe largest change was between EZSP v4 (first added in EmberZNet 4.7.2 SDK) and EZSP v5 that was added in EmberZNet 5.9.0 SDK which requires the Legacy Frame ID 0xFF. The change from EZSP v5 to EZSP v6 was done in EmberZNet 6.0.0 SDK. The change from EZSP v6 to EZSP v7 was in EmberZNet 6.4.0 SDK. EmberZNet 6.7.0 SDK added EZSP v8 (and Secure EZSP Protocol Version 2).\n\nPerhaps more important to know is that EZSP v5, v6 and v7 (EmberZNet 6.6.x.x) use the same framing format, but EmberZNet 6.7.x.x/EZSP v8 introduced new framing format and expanded command id field from 8 bits to 16 bits.\n\nSee Silabs [Zigbee & Thread Knowledge Base Articles List](https://silabs-prod.adobecqms.net/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2020/04/01/zigbee_thread_knowledgebasearticleslist-ih5r) for background information.\n","tasmota/berry/extensions/Leds_Panel/manifest.json":"{\n  \"name\": \"Leds Panel\",\n  \"version\": \"0x19090100\",\n  \"description\": \"Realtime display of the WS2812 leds in browser\",\n  \"author\": \"Stephan Hadinger\",\n  \"min_tasmota\": \"0x0F000100\",\n  \"features\": \"\"\n}","API.md":"<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"./tools/logo/TASMOTA_FullLogo_Vector_White.svg\">\n  <img alt=\"Logo\" src=\"./tools/logo/TASMOTA_FullLogo_Vector.svg\" align=\"right\" height=\"76\">\n</picture>\n\n# Basic API information\n\nTasmota can easily be extended by developers using provided function pointers as callback Ids. This document lists the available callback function Ids. Read [Sensor API](https://tasmota.github.io/docs/Sensor-API) for more information.\n\nCallback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall, XnrgCall and XlgtCall.\n\n## Driver, Sensor, Energy and Light Callback Ids\n\nThe following table lists Callback Ids and their availability for a Driver, Sensor or Energy service.\n\nCallback Id                 | Bool | xdrv | xsns | xnrg | xlgt | Description\n----------------------------|------|------|------|------|------|----------------------------------\nFUNC_SETTINGS_OVERRIDE      |      |  x   |      |      |      | Override start-up settings\nFUNC_PIN_STATE              |  x   |  1   |  2   |      |      | At GPIO configuration\nFUNC_I2C_INIT               |      |  x   |      |      |      | Immediately after I2C init\nFUNC_MODULE_INIT            |  x   |  3   |  1   |      |  2   | Init module specific parameters\nFUNC_PRE_INIT               |      |  1   |  3   |  2   |      | Once GPIO have been established\nFUNC_INIT                   |      |  1   |  3   |  2   |      | At end of initialisation\nFUNC_LOOP                   |      |  1   |  2   |      |      | In main loop\nFUNC_SLEEP_LOOP             |      |  1   |  2   |      |      | In main loop during sleep\nFUNC_EVERY_50_MSECOND       |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_100_MSECOND      |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_200_MSECOND      |      |      |      |  x   |      | In main loop\nFUNC_EVERY_250_MSECOND      |      |  1   |  3   |  2   |      | In main loop\nFUNC_EVERY_SECOND           |      |  1   |  2   |      |      | In main loop\nFUNC_SAVE_SETTINGS          |      |  2   |  1   |      |      | Just before saving settings\nFUNC_SAVE_AT_MIDNIGHT       |      |      |  x   |      |      | At midnight\nFUNC_SAVE_BEFORE_RESTART    |      |  2   |  1   |      |      | Just before a planned restart\nFUNC_AFTER_TELEPERIOD       |      |  2   |  1   |      |      | At end of teleperiod\nFUNC_JSON_APPEND            |      |  2   |  1   |  3   |      | Extend teleperiod JSON text\nFUNC_WEB_SENSOR             |      |  2   |  1   |  3   |      | Add sensor data to web GUI\nFUNC_WEB_COL_SENSOR         |      |  2   |  1   |  3   |      | Add sensor data to web GUI using columns\nFUNC_COMMAND                |  x   |  1   |  2   |  3   |  4   | When a command is not recognized\nFUNC_COMMAND_DRIVER         |  x   |  x   |      |      |      | When command Driver\\<id\\> is executed\nFUNC_COMMAND_SENSOR         |  x   |      |  x   |      |      | When command Sensor\\<id\\> is executed\nFUNC_MQTT_SUBSCRIBE         |      |  x   |      |      |      | At end of MQTT subscriptions\nFUNC_MQTT_INIT              |      |  x   |      |      |      | Once at end of MQTT connection\nFUNC_MQTT_DATA              |  x   |  x   |      |      |      | Before decoding command\nFUNC_SET_POWER              |      |  1   |  2   |      |      | Before setting relays\nFUNC_SET_DEVICE_POWER       |  x   |  x   |      |      |      | Set relay\nFUNC_SHOW_SENSOR            |      |  x   |      |      |      | When FUNC_JSON_APPEND completes\nFUNC_ANY_KEY                |      |  x   |      |      |      |\nFUNC_LED_LINK               |      |  x   |      |      |      | SetLedLink (On ESP32 only). XdrvMailbox.index holds state\nFUNC_ENERGY_EVERY_SECOND    |      |      |      |  x   |      |\nFUNC_ENERGY_RESET           |      |      |      |  x   |      |\nFUNC_RULES_PROCESS          |  x   |  x   |      |      |      | Process specific rule\nFUNC_TELEPERIOD_RULES_PROCESS | x  |  x   |      |      |      | Process specific rule as teleperiod\nFUNC_SERIAL                 |  x   |  1   |      |  2   |  3   | Process serial data\nFUNC_FREE_MEM               |      |  x   |      |      |      | Show free memory for debugging\nFUNC_BUTTON_PRESSED         |  x   |  x   |      |      |      | When a button is pressed\nFUNC_BUTTON_MULTI_PRESSED   |  x   |  x   |      |      |      | When a button is pressed multiple times\nFUNC_WEB_ADD_BUTTON         |      |  1   |  2   |      |      | Add a Configuration Button to GUI\nFUNC_WEB_ADD_MAIN_BUTTON    |      |  1   |  2   |      |      | Add a main button to GUI\nFUNC_WEB_ADD_CONSOLE_BUTTON |      |  1   |  2   |      |      | Add a Consoles Button to GUI\nFUNC_WEB_ADD_MANAGEMENT_BUTTON |   |  x   |      |      |      | Add a Management Button to GUI\nFUNC_WEB_ADD_HANDLER        |      |  1   |  2   |      |      | Add a webserver handler\nFUNC_WEB_GET_ARG            |      |  2   |  1   |      |  3   | Get webserver setting arguments\nFUNC_SET_CHANNELS           |      |  2   |      |      |  1   |\nFUNC_SET_SCHEME             |      |      |      |      |  x   |\nFUNC_HOTPLUG_SCAN           |      |      |  x   |      |      |\nFUNC_TIME_SYNCED            |      |  x   |      |      |      | Report time is synced\nFUNC_DEVICE_GROUP_ITEM      |      |  x   |      |      |      |\nFUNC_NETWORK_UP             |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went up (received even if webserver is not enabled)\nFUNC_NETWORK_DOWN           |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went down (received even if webserver is not enabled)\n\nThe numbers represent the sequence of execution\n\n## Display Call back Ids\n\nThe following table lists all Callback Ids for a Display service.\n\nCallback Id                   | Bool | Description\n------------------------------|------|---------------------\nFUNC_DISPLAY_INIT_DRIVER      |      |\nFUNC_DISPLAY_INIT             |      |\nFUNC_DISPLAY_EVERY_50_MSECOND |      |\nFUNC_DISPLAY_EVERY_SECOND     |      |\nFUNC_DISPLAY_MODEL            |  x   |\nFUNC_DISPLAY_MODE             |      |\nFUNC_DISPLAY_POWER            |      |\nFUNC_DISPLAY_CLEAR            |      |\nFUNC_DISPLAY_DRAW_FRAME       |      |\nFUNC_DISPLAY_DRAW_HLINE       |      |\nFUNC_DISPLAY_DRAW_VLINE       |      |\nFUNC_DISPLAY_DRAW_LINE        |      |\nFUNC_DISPLAY_DRAW_CIRCLE      |      |\nFUNC_DISPLAY_FILL_CIRCLE      |      |\nFUNC_DISPLAY_DRAW_RECTANGLE   |      |\nFUNC_DISPLAY_FILL_RECTANGLE   |      |\nFUNC_DISPLAY_TEXT_SIZE        |      |\nFUNC_DISPLAY_FONT_SIZE        |      |\nFUNC_DISPLAY_ROTATION         |      |\nFUNC_DISPLAY_DRAW_STRING      |      |\nFUNC_DISPLAY_ONOFF            |      |\n\n## Init sequence\n\nThe following list shows a typical callback init sequence\n\n```\nCFG: Loaded from flash at FB, Count 1581\nxdrv - FUNC_SETTINGS_OVERRIDE\nxdrv - FUNC_PIN_STATE\nxsns - FUNC_PIN_STATE\nxsns - FUNC_MODULE_INIT\nxdrv - FUNC_MODULE_INIT\nxlgt - FUNC_MODULE_INIT\nxdrv - FUNC_PRE_INIT\nxnrg - FUNC_PRE_INIT\nxsns - FUNC_PRE_INIT\nSRC: Restart\nxdrv - FUNC_SET_POWER\nxsns - FUNC_SET_POWER\nxlgt - FUNC_SET_CHANNELS\nxdrv - FUNC_SET_DEVICE_POWER\nProject tasmota Wemos 2 Version 7.0.0.3(tasmota)-STAGE\nxdrv - FUNC_INIT\nxsns - FUNC_INIT\nI2C: ADS1115 found at 0x48\nxdrv - FUNC_LOOP\nxsns - FUNC_LOOP\nxdrv - FUNC_EVERY_50_MSECOND\nxlgt - FUNC_SET_CHANNELS\nxsns - FUNC_EVERY_50_MSECOND\nxdrv - FUNC_EVERY_100_MSECOND\nxsns - FUNC_EVERY_100_MSECOND\nxdrv - FUNC_EVERY_250_MSECOND\nxsns - FUNC_EVERY_250_MSECOND\nxdrv - FUNC_EVERY_SECOND\nxsns - FUNC_EVERY_SECOND\nWIF: Attempting connection...\nWIF: Network (re)scan started...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Network 0, AP1, SSId indebuurt1, Channel 1, BSSId 24:D3:F2:97:C0:A1, RSSI -86, Encryption 1\nWIF: Network 1, AP2, SSId indebuurt2, Channel 5, BSSId A0:AB:1B:7D:42:AC, RSSI -42, Encryption 1\nWIF: Network 2, AP-, SSId indebuurt3, Channel 12, BSSId 60:E3:27:58:77:E6, RSSI -84, Encryption 1\nWIF: Connecting to AP2 indebuurt2 in mode 11N as wemos2...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Connected\nxdrv - FUNC_WEB_ADD_HANDLER\nxsns - FUNC_WEB_ADD_HANDLER\nHTP: Web server active on wemos2 with IP address 192.168.2.191\nNTP: Drift 0, (UTC) Wed Nov 06 13:57:08 2019, (DST) Sun Mar 31 02:00:00 2019, (STD) Sun Oct 27 03:00:00 2019\nAPP: Boot Count 500\nMQT: Attempting connection...\nMQT: Connected\nMQT: tele/wemos2/LWT = Online (retained)\nMQT: cmnd/wemos2/POWER =\nMQT: Subscribe to cmnd/wemos2/#\nMQT: Subscribe to cmnd/sonoffs/#\nMQT: Subscribe to cmnd/DVES_15568C_fb/#\nxdrv - FUNC_MQTT_SUBSCRIBE\nMQT: tele/wemos2/INFO1 = {\"Module\":\"Generic\",\"Version\":\"7.0.0.3(tasmota)\",\"FallbackTopic\":\"cmnd/DVES_15568C_fb/\",\"GroupTopic\":\"cmnd/sonoffs/\"}\nMQT: tele/wemos2/INFO2 = {\"WebServerMode\":\"Admin\",\"Hostname\":\"wemos2\",\"IPAddress\":\"192.168.2.191\"}\nMQT: tele/wemos2/INFO3 = {\"RestartReason\":\"Software/System restart\"}\nMQT: stat/wemos2/RESULT = {\"POWER1\":\"OFF\"}\nMQT: stat/wemos2/POWER1 = OFF\nMQT: stat/wemos2/RESULT = {\"POWER2\":\"ON\"}\nMQT: stat/wemos2/POWER2 = ON\nxdrv - FUNC_MQTT_INIT\nCFG: Saved to flash at FA, Count 1582, Bytes 4096\n```\n","tools/fw_TasmotaClient_arduino/TasmotaClient/README.md":"# TasmotaClient\n\nThis library adds support for the TasmotaClient driver integrated into Tasmota from https://github.com/arendst/Tasmota\n\nRead the TasmotaClient wiki article on the Tasmota wiki from https://tasmota.github.io/docs/#/TasmotaSlave to see how to enable support for this library inside Tasmota.\n\nEdit:(docs are not up to date and dokuments the old TasmotaSlave comands) (2020-11-21)\n# Change Log\n\n### 2019-11-29 - v0.0.2 (Pre-release)\n\n- Add support for sending commands to Tasmota using ExecuteCommand(char *cmnd)\n","tasmota/berry/extensions/LVGL_Panel/manifest.json":"{\n  \"name\": \"LVGL Panel\",\n  \"version\": \"0x1A030301\",\n  \"description\": \"Realtime mirror of the LVGL display in browser\",\n  \"author\": \"Stephan Hadinger & Milko Daskalov\",\n  \"min_tasmota\": \"0x0F030002\",\n  \"features\": \"display\"\n}","tasmota/berry/extensions/Devices_Online/manifest.json":"{\n  \"name\": \"Devices Online\",\n  \"version\": \"0x1A040900\",\n  \"description\": \"Display devices online info\",\n  \"author\": \"Theo Arends\",\n  \"min_tasmota\": \"0x09040000\",\n  \"features\": \"\"\n}\n","tasmota/berry/extensions/LoRaWan_Decoders/changelog.md":"# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/changelog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/changelog.md)","tasmota/berry/extensions/LoRaWan_Decoders/manifest.json":"# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/manifest.json)","tasmota/berry/extensions/Partition_Wizard/manifest.json":"# Partition_Wizard Skill\n\nPath: `tasmota/berry/extensions/Partition_Wizard/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Partition_Wizard/manifest.json)","tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json":"# Wifi_Heap_Sticker Skill\n\nPath: `tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md":"# tasmota.animation-dsl-1.2.1 Documentation\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json)","lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json":"# Syntaxes Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md":"# skiars.berry-1.2.0 Documentation\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json)","lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json":"# Syntaxes Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json)"},"items":[{"name":"API.md","path":"API.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/API.md","title":"API Interface Contract & Specifications","category":"project-spec","format":"markdown","content":"<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"./tools/logo/TASMOTA_FullLogo_Vector_White.svg\">\n  <img alt=\"Logo\" src=\"./tools/logo/TASMOTA_FullLogo_Vector.svg\" align=\"right\" height=\"76\">\n</picture>\n\n# Basic API information\n\nTasmota can easily be extended by developers using provided function pointers as callback Ids. This document lists the available callback function Ids. Read [Sensor API](https://tasmota.github.io/docs/Sensor-API) for more information.\n\nCallback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall, XnrgCall and XlgtCall.\n\n## Driver, Sensor, Energy and Light Callback Ids\n\nThe following table lists Callback Ids and their availability for a Driver, Sensor or Energy service.\n\nCallback Id                 | Bool | xdrv | xsns | xnrg | xlgt | Description\n----------------------------|------|------|------|------|------|----------------------------------\nFUNC_SETTINGS_OVERRIDE      |      |  x   |      |      |      | Override start-up settings\nFUNC_PIN_STATE              |  x   |  1   |  2   |      |      | At GPIO configuration\nFUNC_I2C_INIT               |      |  x   |      |      |      | Immediately after I2C init\nFUNC_MODULE_INIT            |  x   |  3   |  1   |      |  2   | Init module specific parameters\nFUNC_PRE_INIT               |      |  1   |  3   |  2   |      | Once GPIO have been established\nFUNC_INIT                   |      |  1   |  3   |  2   |      | At end of initialisation\nFUNC_LOOP                   |      |  1   |  2   |      |      | In main loop\nFUNC_SLEEP_LOOP             |      |  1   |  2   |      |      | In main loop during sleep\nFUNC_EVERY_50_MSECOND       |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_100_MSECOND      |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_200_MSECOND      |      |      |      |  x   |      | In main loop\nFUNC_EVERY_250_MSECOND      |      |  1   |  3   |  2   |      | In main loop\nFUNC_EVERY_SECOND           |      |  1   |  2   |      |      | In main loop\nFUNC_SAVE_SETTINGS          |      |  2   |  1   |      |      | Just before saving settings\nFUNC_SAVE_AT_MIDNIGHT       |      |      |  x   |      |      | At midnight\nFUNC_SAVE_BEFORE_RESTART    |      |  2   |  1   |      |      | Just before a planned restart\nFUNC_AFTER_TELEPERIOD       |      |  2   |  1   |      |      | At end of teleperiod\nFUNC_JSON_APPEND            |      |  2   |  1   |  3   |      | Extend teleperiod JSON text\nFUNC_WEB_SENSOR             |      |  2   |  1   |  3   |      | Add sensor data to web GUI\nFUNC_WEB_COL_SENSOR         |      |  2   |  1   |  3   |      | Add sensor data to web GUI using columns\nFUNC_COMMAND                |  x   |  1   |  2   |  3   |  4   | When a command is not recognized\nFUNC_COMMAND_DRIVER         |  x   |  x   |      |      |      | When command Driver\\<id\\> is executed\nFUNC_COMMAND_SENSOR         |  x   |      |  x   |      |      | When command Sensor\\<id\\> is executed\nFUNC_MQTT_SUBSCRIBE         |      |  x   |      |      |      | At end of MQTT subscriptions\nFUNC_MQTT_INIT              |      |  x   |      |      |      | Once at end of MQTT connection\nFUNC_MQTT_DATA              |  x   |  x   |      |      |      | Before decoding command\nFUNC_SET_POWER              |      |  1   |  2   |      |      | Before setting relays\nFUNC_SET_DEVICE_POWER       |  x   |  x   |      |      |      | Set relay\nFUNC_SHOW_SENSOR            |      |  x   |      |      |      | When FUNC_JSON_APPEND completes\nFUNC_ANY_KEY                |      |  x   |      |      |      |\nFUNC_LED_LINK               |      |  x   |      |      |      | SetLedLink (On ESP32 only). XdrvMailbox.index holds state\nFUNC_ENERGY_EVERY_SECOND    |      |      |      |  x   |      |\nFUNC_ENERGY_RESET           |      |      |      |  x   |      |\nFUNC_RULES_PROCESS          |  x   |  x   |      |      |      | Process specific rule\nFUNC_TELEPERIOD_RULES_PROCESS | x  |  x   |      |      |      | Process specific rule as teleperiod\nFUNC_SERIAL                 |  x   |  1   |      |  2   |  3   | Process serial data\nFUNC_FREE_MEM               |      |  x   |      |      |      | Show free memory for debugging\nFUNC_BUTTON_PRESSED         |  x   |  x   |      |      |      | When a button is pressed\nFUNC_BUTTON_MULTI_PRESSED   |  x   |  x   |      |      |      | When a button is pressed multiple times\nFUNC_WEB_ADD_BUTTON         |      |  1   |  2   |      |      | Add a Configuration Button to GUI\nFUNC_WEB_ADD_MAIN_BUTTON    |      |  1   |  2   |      |      | Add a main button to GUI\nFUNC_WEB_ADD_CONSOLE_BUTTON |      |  1   |  2   |      |      | Add a Consoles Button to GUI\nFUNC_WEB_ADD_MANAGEMENT_BUTTON |   |  x   |      |      |      | Add a Management Button to GUI\nFUNC_WEB_ADD_HANDLER        |      |  1   |  2   |      |      | Add a webserver handler\nFUNC_WEB_GET_ARG            |      |  2   |  1   |      |  3   | Get webserver setting arguments\nFUNC_SET_CHANNELS           |      |  2   |      |      |  1   |\nFUNC_SET_SCHEME             |      |      |      |      |  x   |\nFUNC_HOTPLUG_SCAN           |      |      |  x   |      |      |\nFUNC_TIME_SYNCED            |      |  x   |      |      |      | Report time is synced\nFUNC_DEVICE_GROUP_ITEM      |      |  x   |      |      |      |\nFUNC_NETWORK_UP             |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went up (received even if webserver is not enabled)\nFUNC_NETWORK_DOWN           |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went down (received even if webserver is not enabled)\n\nThe numbers represent the sequence of execution\n\n## Display Call back Ids\n\nThe following table lists all Callback Ids for a Display service.\n\nCallback Id                   | Bool | Description\n------------------------------|------|---------------------\nFUNC_DISPLAY_INIT_DRIVER      |      |\nFUNC_DISPLAY_INIT             |      |\nFUNC_DISPLAY_EVERY_50_MSECOND |      |\nFUNC_DISPLAY_EVERY_SECOND     |      |\nFUNC_DISPLAY_MODEL            |  x   |\nFUNC_DISPLAY_MODE             |      |\nFUNC_DISPLAY_POWER            |      |\nFUNC_DISPLAY_CLEAR            |      |\nFUNC_DISPLAY_DRAW_FRAME       |      |\nFUNC_DISPLAY_DRAW_HLINE       |      |\nFUNC_DISPLAY_DRAW_VLINE       |      |\nFUNC_DISPLAY_DRAW_LINE        |      |\nFUNC_DISPLAY_DRAW_CIRCLE      |      |\nFUNC_DISPLAY_FILL_CIRCLE      |      |\nFUNC_DISPLAY_DRAW_RECTANGLE   |      |\nFUNC_DISPLAY_FILL_RECTANGLE   |      |\nFUNC_DISPLAY_TEXT_SIZE        |      |\nFUNC_DISPLAY_FONT_SIZE        |      |\nFUNC_DISPLAY_ROTATION         |      |\nFUNC_DISPLAY_DRAW_STRING      |      |\nFUNC_DISPLAY_ONOFF            |      |\n\n## Init sequence\n\nThe following list shows a typical callback init sequence\n\n```\nCFG: Loaded from flash at FB, Count 1581\nxdrv - FUNC_SETTINGS_OVERRIDE\nxdrv - FUNC_PIN_STATE\nxsns - FUNC_PIN_STATE\nxsns - FUNC_MODULE_INIT\nxdrv - FUNC_MODULE_INIT\nxlgt - FUNC_MODULE_INIT\nxdrv - FUNC_PRE_INIT\nxnrg - FUNC_PRE_INIT\nxsns - FUNC_PRE_INIT\nSRC: Restart\nxdrv - FUNC_SET_POWER\nxsns - FUNC_SET_POWER\nxlgt - FUNC_SET_CHANNELS\nxdrv - FUNC_SET_DEVICE_POWER\nProject tasmota Wemos 2 Version 7.0.0.3(tasmota)-STAGE\nxdrv - FUNC_INIT\nxsns - FUNC_INIT\nI2C: ADS1115 found at 0x48\nxdrv - FUNC_LOOP\nxsns - FUNC_LOOP\nxdrv - FUNC_EVERY_50_MSECOND\nxlgt - FUNC_SET_CHANNELS\nxsns - FUNC_EVERY_50_MSECOND\nxdrv - FUNC_EVERY_100_MSECOND\nxsns - FUNC_EVERY_100_MSECOND\nxdrv - FUNC_EVERY_250_MSECOND\nxsns - FUNC_EVERY_250_MSECOND\nxdrv - FUNC_EVERY_SECOND\nxsns - FUNC_EVERY_SECOND\nWIF: Attempting connection...\nWIF: Network (re)scan started...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Network 0, AP1, SSId indebuurt1, Channel 1, BSSId 24:D3:F2:97:C0:A1, RSSI -86, Encryption 1\nWIF: Network 1, AP2, SSId indebuurt2, Channel 5, BSSId A0:AB:1B:7D:42:AC, RSSI -42, Encryption 1\nWIF: Network 2, AP-, SSId indebuurt3, Channel 12, BSSId 60:E3:27:58:77:E6, RSSI -84, Encryption 1\nWIF: Connecting to AP2 indebuurt2 in mode 11N as wemos2...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Connected\nxdrv - FUNC_WEB_ADD_HANDLER\nxsns - FUNC_WEB_ADD_HANDLER\nHTP: Web server active on wemos2 with IP address 192.168.2.191\nNTP: Drift 0, (UTC) Wed Nov 06 13:57:08 2019, (DST) Sun Mar 31 02:00:00 2019, (STD) Sun Oct 27 03:00:00 2019\nAPP: Boot Count 500\nMQT: Attempting connection...\nMQT: Connected\nMQT: tele/wemos2/LWT = Online (retained)\nMQT: cmnd/wemos2/POWER =\nMQT: Subscribe to cmnd/wemos2/#\nMQT: Subscribe to cmnd/sonoffs/#\nMQT: Subscribe to cmnd/DVES_15568C_fb/#\nxdrv - FUNC_MQTT_SUBSCRIBE\nMQT: tele/wemos2/INFO1 = {\"Module\":\"Generic\",\"Version\":\"7.0.0.3(tasmota)\",\"FallbackTopic\":\"cmnd/DVES_15568C_fb/\",\"GroupTopic\":\"cmnd/sonoffs/\"}\nMQT: tele/wemos2/INFO2 = {\"WebServerMode\":\"Admin\",\"Hostname\":\"wemos2\",\"IPAddress\":\"192.168.2.191\"}\nMQT: tele/wemos2/INFO3 = {\"RestartReason\":\"Software/System restart\"}\nMQT: stat/wemos2/RESULT = {\"POWER1\":\"OFF\"}\nMQT: stat/wemos2/POWER1 = OFF\nMQT: stat/wemos2/RESULT = {\"POWER2\":\"ON\"}\nMQT: stat/wemos2/POWER2 = ON\nxdrv - FUNC_MQTT_INIT\nCFG: Saved to flash at FA, Count 1582, Bytes 4096\n```\n","isInternal":false,"tokens":2726,"sizeBytes":9151},{"name":"CHANGELOG.md","path":"lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md","title":"Tasmota.animation-dsl-1.2.1 Skill","category":"anthropic-skill","format":"markdown","content":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md)","tokens":300,"sizeBytes":282},{"name":"language-configuration.json","path":"lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json","title":"Tasmota.animation-dsl-1.2.1 Skill","category":"anthropic-skill","format":"json","content":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json)","tokens":300,"sizeBytes":312},{"name":"package.json","path":"lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json","title":"Tasmota.animation-dsl-1.2.1 Skill","category":"anthropic-skill","format":"json","content":"# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json)","tokens":300,"sizeBytes":282},{"name":"animation-dsl.tmLanguage.json","path":"lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json","title":"Syntaxes Skill","category":"anthropic-skill","format":"json","content":"# Syntaxes Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json)","tokens":300,"sizeBytes":315},{"name":"vendors.json","path":"lib/libesp32/berry_matter/tools/vendors.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_matter/tools/vendors.json","title":"Tools Skill","category":"anthropic-skill","format":"json","content":"{\n  \"vendorInfo\": [\n    {\n      \"vendorID\": 4107,\n      \"vendorName\": \"Signify\",\n      \"companyLegalName\": \"Signify Netherlands B.V.\",\n      \"companyPreferredName\": \"Signify\",\n      \"vendorLandingPageURL\": \"https://www.signify.com/\",\n      \"creator\": \"cosmos1xx8fg5nu4lesn448ytds8yjql47jp8gnfh6hck\"\n    },\n    {\n      \"vendorID\": 4125,\n      \"vendorName\": \"Assa Abloy\",\n      \"companyLegalName\": \"Assa Abloy\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.yalehome.com\",\n      \"creator\": \"cosmos18wrgwrrccn49ejv4hstz9czxgw9dc2s2l9f94k\"\n    },\n    {\n      \"vendorID\": 4129,\n      \"vendorName\": \"Legrand Group\",\n      \"companyLegalName\": \"Legrand\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.legrand.com\",\n      \"creator\": \"cosmos1elm6sf9yd2n7y0l0rve4zru0ukanv76vtrjnt3\"\n    },\n    {\n      \"vendorID\": 4151,\n      \"vendorName\": \"NXP Semiconductors\",\n      \"companyLegalName\": \"NXP Semiconductors N.V.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nxp.com\",\n      \"creator\": \"cosmos1ck0arz4kky9l9qtdvqrct7783ffv2yftgmj9ch\"\n    },\n    {\n      \"vendorID\": 4190,\n      \"vendorName\": \"Schneider\",\n      \"companyLegalName\": \"Schneider Electric\",\n      \"companyPreferredName\": \"Schneider Electric\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14kre58wpgterp7t9yy0393ecel9hpz9fnul6pc\"\n    },\n    {\n      \"vendorID\": 4251,\n      \"vendorName\": \"Leviton\",\n      \"companyLegalName\": \"Leviton Manufacturing Company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.leviton.com\",\n      \"creator\": \"cosmos1ypyp8zrqeu64rjmx3u34ghvl64uajr67uams3d\"\n    },\n    {\n      \"vendorID\": 4304,\n      \"vendorName\": \"Qorvo\",\n      \"companyLegalName\": \"Qorvo, Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.qorvo.com/\",\n      \"creator\": \"cosmos1qrpkuzgm7hfejejfyg20g34tjxlt4k8dsspq52\"\n    },\n    {\n      \"vendorID\": 4334,\n      \"vendorName\": \"UEI\",\n      \"companyLegalName\": \"Universal Electronics Inc\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.uei.com/\",\n      \"creator\": \"cosmos1pvrad6x6ettwgudttqd97r9wvarvnj5davpltg\"\n    },\n    {\n      \"vendorID\": 4338,\n      \"vendorName\": \"ubisys\",\n      \"companyLegalName\": \"ubisys technologies GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.ubisys.de\",\n      \"creator\": \"cosmos1rxydw26p5k4f9rtwln6r3srvw4qq9pxnxadr3d\"\n    },\n    {\n      \"vendorID\": 4381,\n      \"vendorName\": \"Comcast Communications\",\n      \"companyLegalName\": \"Comcast\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1xcv4q8sjvf7nw4qj2yt5kledgwyf3ycxw8c0pe\"\n    },\n    {\n      \"vendorID\": 4442,\n      \"vendorName\": \"Nanoleaf\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nanoleaf.me\",\n      \"creator\": \"cosmos1sggrrmw05e6alve8umwdaszade5qxyt53kthud\"\n    },\n    {\n      \"vendorID\": 4447,\n      \"vendorName\": \"Aqara\",\n      \"companyLegalName\": \"Lumi United Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.aqara.com/\",\n      \"creator\": \"cosmos1qpz3ghnqj6my7gzegkftzav9hpxymkx6zdk73v\"\n    },\n    {\n      \"vendorID\": 4448,\n      \"vendorName\": \"Sengled\",\n      \"companyLegalName\": \"Sengled Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1arhkv0n34xylxz9suy73dpyk6de32gpym9l3sw\"\n    },\n    {\n      \"vendorID\": 4456,\n      \"vendorName\": \"Leedarson\",\n      \"companyLegalName\": \"Leedarson IoT Technology Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1mzg0v94yg0cmkjqe2jqsys44tvvfk9mt2d889d\"\n    },\n    {\n      \"vendorID\": 4478,\n      \"vendorName\": \"Feibit\",\n      \"companyLegalName\": \"Shenzhen Feibit Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"Feibit\",\n      \"vendorLandingPageURL\": \"http://www.feibit.com\",\n      \"creator\": \"cosmos162y3ehrqpuu2xjvmgq6qq7yqtdh6mlwh32wv2h\"\n    },\n    {\n      \"vendorID\": 4488,\n      \"vendorName\": \"TP-Link\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tp-link.com\",\n      \"creator\": \"cosmos1jxpj6rr8vnetz9a2ec08az5fwqpuf4zt4hhygv\"\n    },\n    {\n      \"vendorID\": 4492,\n      \"vendorName\": \"Midea Group\",\n      \"companyLegalName\": \"Midea Group\",\n      \"companyPreferredName\": \"Midea\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1a7c8us8jl76f8uue6xf9gzzqklfmfdyh8nedae\"\n    },\n    {\n      \"vendorID\": 4619,\n      \"vendorName\": \"HEIMAN\",\n      \"companyLegalName\": \"Shenzhen Heiman Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos16s4lqhxyqdr5lq6gmfpskjtwjf7dwc0lktn6dt\"\n    },\n    {\n      \"vendorID\": 4631,\n      \"vendorName\": \"Amazon Alexa\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Alexa\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos152v4ejapsjl222zew0ll4eeltc0h2phh5hzpu3\"\n    },\n    {\n      \"vendorID\": 4633,\n      \"vendorName\": \"ORVIBO\",\n      \"companyLegalName\": \"Shenzhen ORVIBO Technology Co.,  Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.orvibo.com\",\n      \"creator\": \"cosmos1u7um30yf68zugm897tgpq7s6vhkhk4t2ykm0hq\"\n    },\n    {\n      \"vendorID\": 4701,\n      \"vendorName\": \"Tuya\",\n      \"companyLegalName\": \"Tuya Global Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos13pwvzq2zk0r3fxuc2a5jhadnx6tda5ar2tcpp9\"\n    },\n    {\n      \"vendorID\": 4735,\n      \"vendorName\": \"Nordic Semiconductor ASA\",\n      \"companyLegalName\": \"Nordic Semiconductor ASA\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nordicsemi.com\",\n      \"creator\": \"cosmos1eatgwsxtjz0tlchllzasjfcac6m56n30njc3k2\"\n    },\n    {\n      \"vendorID\": 4736,\n      \"vendorName\": \"Siterwell\",\n      \"companyLegalName\": \"Siterwell Electronics Co., Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1u3uhlkepx9dz9asrlucuupw2md2frvkwv583nr\"\n    },\n    {\n      \"vendorID\": 4742,\n      \"vendorName\": \"CoolKit\",\n      \"companyLegalName\": \"SHENZHEN Coolkit Technology CO.,LTD.\",\n      \"companyPreferredName\": \"CoolKit\",\n      \"vendorLandingPageURL\": \"https://www.coolkit.cn/\",\n      \"creator\": \"cosmos18m8lehnvqx8zytn22fkekelt7xgmrl7cga37tl\"\n    },\n    {\n      \"vendorID\": 4751,\n      \"vendorName\": \"EGLO\",\n      \"companyLegalName\": \"EGLO Leuchten GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.eglo.com/en/\",\n      \"creator\": \"cosmos1veu2f7mtgvfw8ezjfmhs64cqyt9wp2weas2rga\"\n    },\n    {\n      \"vendorID\": 4874,\n      \"vendorName\": \"Eve\",\n      \"companyLegalName\": \"Eve Systems GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.evehome.com\",\n      \"creator\": \"cosmos1yh0ld8jl26rgycrtank8slxepmc8xzgyrzv99t\"\n    },\n    {\n      \"vendorID\": 4877,\n      \"vendorName\": \"BouffaloLab\",\n      \"companyLegalName\": \"Bouffalo Lab (Nanjing) Co., Ltd.\",\n      \"companyPreferredName\": \"Bouffalo Lab \",\n      \"vendorLandingPageURL\": \"https://www.bouffalolab.com/\",\n      \"creator\": \"cosmos1l8qwcjgfcnvlmtxrlcjrsmy9068mlck2cw68kx\"\n    },\n    {\n      \"vendorID\": 4882,\n      \"vendorName\": \"Yeelight\",\n      \"companyLegalName\": \"Qingdao Yeelink Information Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Yeelink Information Technology\",\n      \"vendorLandingPageURL\": \"https://en.yeelight.com/#\",\n      \"creator\": \"cosmos18fcq3647dkwur0d0zjyenj8sk57jehq4a8epaf\"\n    },\n    {\n      \"vendorID\": 4891,\n      \"vendorName\": \"Espressif Systems\",\n      \"companyLegalName\": \"Espressif Systems (Shanghai) Co. Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.espressif.com\",\n      \"creator\": \"cosmos1vncrg6hk30kutk4nr26mvyqc92zkygcc7aemzt\"\n    },\n    {\n      \"vendorID\": 4894,\n      \"vendorName\": \"CAME S.p.A.\",\n      \"companyLegalName\": \"CAME S.p.A.\",\n      \"companyPreferredName\": \"CAME S.p.A.\",\n      \"vendorLandingPageURL\": \"https://www.came.com/\",\n      \"creator\": \"cosmos1kxjh94dcvnym6265nmxcjpn9xpkx0y7e3jjeqc\"\n    },\n    {\n      \"vendorID\": 4895,\n      \"vendorName\": \"Longan.link\",\n      \"companyLegalName\": \"Longan Link Tech Co.,LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://longan.link/\",\n      \"creator\": \"cosmos1qnd2v3n0f0ukja8z0jm4jqsqs5qhxa6ncvcxuv\"\n    },\n    {\n      \"vendorID\": 4897,\n      \"vendorName\": \"SONOFF\",\n      \"companyLegalName\": \"Shenzhen Sonoff Technologies Co.,Ltd.\",\n      \"companyPreferredName\": \"SONOFF\",\n      \"vendorLandingPageURL\": \"https://sonoff.tech/\",\n      \"creator\": \"cosmos160c6r8rc2pgpgucasw4ae5gfqtz5vzcc6ay2sz\"\n    },\n    {\n      \"vendorID\": 4915,\n      \"vendorName\": \"Becker Antriebe\",\n      \"companyLegalName\": \"Becker Antriebe GmbH\",\n      \"companyPreferredName\": \"Becker Antriebe\",\n      \"vendorLandingPageURL\": \"https://www.becker-antriebe.com/\",\n      \"creator\": \"cosmos1f6knru06kkxm306ckgs93zs9aqyrk9axgqh5wq\"\n    },\n    {\n      \"vendorID\": 4921,\n      \"vendorName\": \"GE Lighting, a Savant company\",\n      \"companyLegalName\": \"GE Lighting, a Savant company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.gelighting.com/\",\n      \"creator\": \"cosmos130t4m26ynex82jcgkqguxpffpva05e4zugn0xc\"\n    },\n    {\n      \"vendorID\": 4927,\n      \"vendorName\": \"ASR\",\n      \"companyLegalName\": \"ASR Microelectronics(ShenZhen)Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14a9n65wmumympggqnquu5ptq042ff69nehztk7\"\n    },\n    {\n      \"vendorID\": 4930,\n      \"vendorName\": \"Beken Corporation\",\n      \"companyLegalName\": \"beken\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.bekencorp.com/\",\n      \"creator\": \"cosmos1aru484uj9dqkpnqg768tl6m66fvz9wkqcg79cw\"\n    },\n    {\n      \"vendorID\": 4932,\n      \"vendorName\": \"Eltako\",\n      \"companyLegalName\": \"Eltako GmbH\",\n      \"companyPreferredName\": \"Eltako\",\n      \"vendorLandingPageURL\": \"https://www.eltako.com\",\n      \"creator\": \"cosmos1n3kqdwqh33grxcnzdeknercyt3wekc5zl4n3dg\"\n    },\n    {\n      \"vendorID\": 4933,\n      \"vendorName\": \"Meross\",\n      \"companyLegalName\": \"Chengdu Meross Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Meross\",\n      \"vendorLandingPageURL\": \"https://www.meross.com\",\n      \"creator\": \"cosmos18qu47pmqwylzm9w2tezyrmvcwmkew5yyvw3d6n\"\n    },\n    {\n      \"vendorID\": 4934,\n      \"vendorName\": \"Rafael\",\n      \"companyLegalName\": \"Rafael Microelectronics, Inc.\",\n      \"companyPreferredName\": \"Rafael\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14myns7fehcxm2c896k5syhzr7zsyf7g4jdlk08\"\n    },\n    {\n      \"vendorID\": 4937,\n      \"vendorName\": \"Apple Home\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.apple.com/home-app\",\n      \"creator\": \"cosmos1ysl37yl5nmcg8qr64knpscahq5zel3hjtxmvyt\"\n    },\n    {\n      \"vendorID\": 4942,\n      \"vendorName\": \"tado\",\n      \"companyLegalName\": \"tado GmbH\",\n      \"companyPreferredName\": \"tado°\",\n      \"vendorLandingPageURL\": \"https://www.tado.com/\",\n      \"creator\": \"cosmos1sacvh2z4w0f3d657a2tdw2w4ha87743c8qahkv\"\n    },\n    {\n      \"vendorID\": 4943,\n      \"vendorName\": \"mediola\",\n      \"companyLegalName\": \"mediola - connected living AG\",\n      \"companyPreferredName\": \"mediola\",\n      \"vendorLandingPageURL\": \"https://www.mediola.com\",\n      \"creator\": \"cosmos1j2w2zq787mkwltsdhzlxpnm50s8nrvg85u20dh\"\n    },\n    {\n      \"vendorID\": 4945,\n      \"vendorName\": \"HooRii Technology\",\n      \"companyLegalName\": \"HooRii Technology CO., LTD\",\n      \"companyPreferredName\": \"HooRii Technology\",\n      \"vendorLandingPageURL\": \"https://www.hoorii.io/\",\n      \"creator\": \"cosmos1etk35ufz9z4x56t63tap7ncsvk5k5zw2npmlcu\"\n    },\n    {\n      \"vendorID\": 4957,\n      \"vendorName\": \"Nuki\",\n      \"companyLegalName\": \"Nuki Home Solutions GmbH\",\n      \"companyPreferredName\": \"Nuki\",\n      \"vendorLandingPageURL\": \"https://nuki.io\",\n      \"creator\": \"cosmos1tdslga3va6luqzy2x3nlwxfh80f99vly5800ls\"\n    },\n    {\n      \"vendorID\": 4962,\n      \"vendorName\": \"deveritec GmbH\",\n      \"companyLegalName\": \"deveritec GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://deveritec.de\",\n      \"creator\": \"cosmos19740ad8368h0h33rcu6gugtxgvyuws7puqg0za\"\n    },\n    {\n      \"vendorID\": 4965,\n      \"vendorName\": \"Dooya\",\n      \"companyLegalName\": \"Ningbo Dooya Mechanic \\u0026 Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1pqypa94grwkmk2d7e0ncdctfav5wyycu787tmk\"\n    },\n    {\n      \"vendorID\": 4974,\n      \"vendorName\": \"Ambi Labs Limited\",\n      \"companyLegalName\": \"Ambi Labs Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos12st2nx5elvkyswv7nqw6xh6j67vg472lcv0299\"\n    },\n    {\n      \"vendorID\": 4977,\n      \"vendorName\": \"Tridonic\",\n      \"companyLegalName\": \"Tridonic GmbH \\u0026 Co KG\",\n      \"companyPreferredName\": \"Tridonic\",\n      \"vendorLandingPageURL\": \"https://www.tridonic.com/matter\",\n      \"creator\": \"cosmos16ad3em3nrqzf854p03audmgdl3pc384467yzav\"\n    },\n    {\n      \"vendorID\": 4978,\n      \"vendorName\": \"innovation matters\",\n      \"companyLegalName\": \"innovation matters iot GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.innovation-matters.at/\",\n      \"creator\": \"cosmos1v6x4nte50al0jjynvldwqse9n4ceajmja3wvph\"\n    },\n    {\n      \"vendorID\": 4991,\n      \"vendorName\": \"NEO\",\n      \"companyLegalName\": \"Shenzhen NEO Electronic CO\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18cvsug5mc7vj9a6kxaj0fwp99vj9ga3xd3lnql\"\n    },\n    {\n      \"vendorID\": 4993,\n      \"vendorName\": \"Amazon Prime Video\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Prime Video\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos1akrkaxvlfwnnk2phtxewadmel4s567wr8xmfj8\"\n    },\n    {\n      \"vendorID\": 4996,\n      \"vendorName\": \"Apple Keychain\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://support.apple.com/en-us/HT213441\",\n      \"creator\": \"cosmos1qqgp6p73z0lku4qzeajgtxtzy24xx467j0v0kp\"\n    },\n    {\n      \"vendorID\": 4998,\n      \"vendorName\": \"Skylux\",\n      \"companyLegalName\": \"Skylux N.V.\",\n      \"companyPreferredName\": \"Skylux\",\n      \"vendorLandingPageURL\": \"https://www.skylux.eu\",\n      \"creator\": \"cosmos1f9haxa732cy6rmm3nc88q9fxx9zv0m0qn3kzcm\"\n    },\n    {\n      \"vendorID\": 4999,\n      \"vendorName\": \"Qianyan\",\n      \"companyLegalName\": \"Shenzhen Qianyan Technology LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos10plhr0fh27nred7nra3s6dld26gzcw6etje4gk\"\n    },\n    {\n      \"vendorID\": 5002,\n      \"vendorName\": \"Nature\",\n      \"companyLegalName\": \"Nature Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nature.global/\",\n      \"creator\": \"cosmos1yvwf85sx9mp53kptfwfz49cmmznvj2j0efavzu\"\n    },\n    {\n      \"vendorID\": 5009,\n      \"vendorName\": \"Kasa\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.kasasmart.com\",\n      \"creator\": \"cosmos1fjwwzm8zs9yc2hq73tqggdylcmm0ujmuc7x9wn\"\n    },\n    {\n      \"vendorID\": 5010,\n      \"vendorName\": \"Tapo\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tapo.com\",\n      \"creator\": \"cosmos1acw4mmmf26e7jkxqm5epu7g56tcgz0walk3vs8\"\n    },\n    {\n      \"vendorID\": 5015,\n      \"vendorName\": \"SwitchBot\",\n      \"companyLegalName\": \"Woan Technology (Shenzhen) Co., Ltd. \",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1dc9patujyr2av2ezggudfalfag7p7scc0t3wnk\"\n    },\n    {\n      \"vendorID\": 5020,\n      \"vendorName\": \"Zemismart Technology Limited\",\n      \"companyLegalName\": \"Zemismart Technology Limited\",\n      \"companyPreferredName\": \"Zemismart\",\n      \"vendorLandingPageURL\": \"https://www.zemismart.com\",\n      \"creator\": \"cosmos1mrv5zh6r6kcfln34vju5kfup4mv9lw27u33yj0\"\n    },\n    {\n      \"vendorID\": 5120,\n      \"vendorName\": \"Uascent\",\n      \"companyLegalName\": \"Uascent Technology Company Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1ynw4zl6xqnvh5zhzhhpxjc6kt8z8wvxkp8edsw\"\n    },\n    {\n      \"vendorID\": 5123,\n      \"vendorName\": \"Arlec Australia\",\n      \"companyLegalName\": \"Arlec Australia Pty. Ltd.\",\n      \"companyPreferredName\": \"Grid Connect\",\n      \"vendorLandingPageURL\": \"https://grid-connect.com.au/\",\n      \"creator\": \"cosmos1d9ut0ysdlw68r0705q8tagf7y9cf3d686fpf73\"\n    },\n    {\n      \"vendorID\": 5124,\n      \"vendorName\": \"Phaten\",\n      \"companyLegalName\": \"Shenzhen Phaten Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.phaten.com\",\n      \"creator\": \"cosmos1h4rf0hjzf498s2lu0rf8m52ujst2gl7lpdnexs\"\n    },\n    {\n      \"vendorID\": 5127,\n      \"vendorName\": \"ThirdReality\",\n      \"companyLegalName\": \"Jiangsu Shushi Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1qwnh6tj4n938g3fmncqna22zmfxx50vnd22yux\"\n    },\n    {\n      \"vendorID\": 5136,\n      \"vendorName\": \"Quectel\",\n      \"companyLegalName\": \"Quectel Wireless Solutions Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.quectel.com\",\n      \"creator\": \"cosmos1dqrg6w2jjs7sft59dpqngjzyfdjh4xjn5rjct5\"\n    },\n    {\n      \"vendorID\": 5139,\n      \"vendorName\": \"1Home\",\n      \"companyLegalName\": \"1Home Solutions GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.1home.io/\",\n      \"creator\": \"cosmos1nzyp28afpumk0djal2w35s2pcl0q3e57euplkq\"\n    },\n    {\n      \"vendorID\": 5141,\n      \"vendorName\": \"Caveman\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1smgmnl90h9srczk926l5kt7rydjpq7x0smc5e7\"\n    },\n    {\n      \"vendorID\": 5145,\n      \"vendorName\": \"Lorex\",\n      \"companyLegalName\": \"Lorex Technology Inc.\",\n      \"companyPreferredName\": \"Lorex\",\n      \"vendorLandingPageURL\": \"https://www.lorex.com/\",\n      \"creator\": \"cosmos1c98nn3uphuya0w4km5uzamjwpkawksf5g6h5m5\"\n    },\n    {\n      \"vendorID\": 5147,\n      \"vendorName\": \"Rang Dong VN\",\n      \"companyLegalName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"companyPreferredName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"vendorLandingPageURL\": \"https://rangdong.com.vn/\",\n      \"creator\": \"cosmos1023z8vredmrn7xlzjlrlv6wdqh0fpzs8jlc9rx\"\n    },\n    {\n      \"vendorID\": 5150,\n      \"vendorName\": \"TUO Accessories LLC\",\n      \"companyLegalName\": \"TUO Accessories LLC\",\n      \"companyPreferredName\": \"TUO Accessories\",\n      \"vendorLandingPageURL\": \"http://tuoaccessories.com\",\n      \"creator\": \"cosmos1vn34dnlqvz5e997ws53yfj6a2622duzf3gg80d\"\n    },\n    {\n      \"vendorID\": 5151,\n      \"vendorName\": \"Ductech\",\n      \"companyLegalName\": \"DUCTECH Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18nqp48ce5k7j8qvuwk7tnzmckwsd8k2tlnj850\"\n    },\n    {\n      \"vendorID\": 5165,\n      \"vendorName\": \"QH\",\n      \"companyLegalName\": \"Zhongshan QIHANG Electronic Technology Co.\",\n      \"companyPreferredName\": \"QIHANG\",\n      \"vendorLandingPageURL\": \"https://zsqhkj.1688.com/\",\n      \"creator\": \"cosmos13zzg6t6gaz36p8ctguatrguwuep9wmza6lptet\"\n    },\n    {\n      \"vendorID\": 5167,\n      \"vendorName\": \"QIACHIP\",\n      \"companyLegalName\": \"Shenzhen QIACHIP Wireless E-commerce Co.\",\n      \"companyPreferredName\": \"QIACHIP\",\n      \"vendorLandingPageURL\": \"https://qiachip.com\",\n      \"creator\": \"cosmos1rhjya3hdvpyr2a3ur7s5hj48ce2qndyfcz07ht\"\n    },\n    {\n      \"vendorID\": 24582,\n      \"vendorName\": \"Google LLC\",\n      \"companyLegalName\": \"Google LLC\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1kelvhh6cy2vmaj5zczxj52k4nys2w4e2u3awvq\"\n    }\n  ],\n  \"pagination\": {\n    \"next_key\": null,\n    \"total\": \"73\"\n  }\n}","frontmatter":{"vendorInfo":[{"vendorID":4107,"vendorName":"Signify","companyLegalName":"Signify Netherlands B.V.","companyPreferredName":"Signify","vendorLandingPageURL":"https://www.signify.com/","creator":"cosmos1xx8fg5nu4lesn448ytds8yjql47jp8gnfh6hck"},{"vendorID":4125,"vendorName":"Assa Abloy","companyLegalName":"Assa Abloy","companyPreferredName":"","vendorLandingPageURL":"http://www.yalehome.com","creator":"cosmos18wrgwrrccn49ejv4hstz9czxgw9dc2s2l9f94k"},{"vendorID":4129,"vendorName":"Legrand Group","companyLegalName":"Legrand","companyPreferredName":"","vendorLandingPageURL":"https://www.legrand.com","creator":"cosmos1elm6sf9yd2n7y0l0rve4zru0ukanv76vtrjnt3"},{"vendorID":4151,"vendorName":"NXP Semiconductors","companyLegalName":"NXP Semiconductors N.V.","companyPreferredName":"","vendorLandingPageURL":"https://www.nxp.com","creator":"cosmos1ck0arz4kky9l9qtdvqrct7783ffv2yftgmj9ch"},{"vendorID":4190,"vendorName":"Schneider","companyLegalName":"Schneider Electric","companyPreferredName":"Schneider Electric","vendorLandingPageURL":"","creator":"cosmos14kre58wpgterp7t9yy0393ecel9hpz9fnul6pc"},{"vendorID":4251,"vendorName":"Leviton","companyLegalName":"Leviton Manufacturing Company","companyPreferredName":"","vendorLandingPageURL":"https://www.leviton.com","creator":"cosmos1ypyp8zrqeu64rjmx3u34ghvl64uajr67uams3d"},{"vendorID":4304,"vendorName":"Qorvo","companyLegalName":"Qorvo, Inc.","companyPreferredName":"","vendorLandingPageURL":"https://www.qorvo.com/","creator":"cosmos1qrpkuzgm7hfejejfyg20g34tjxlt4k8dsspq52"},{"vendorID":4334,"vendorName":"UEI","companyLegalName":"Universal Electronics Inc","companyPreferredName":"","vendorLandingPageURL":"https://www.uei.com/","creator":"cosmos1pvrad6x6ettwgudttqd97r9wvarvnj5davpltg"},{"vendorID":4338,"vendorName":"ubisys","companyLegalName":"ubisys technologies GmbH","companyPreferredName":"","vendorLandingPageURL":"https://www.ubisys.de","creator":"cosmos1rxydw26p5k4f9rtwln6r3srvw4qq9pxnxadr3d"},{"vendorID":4381,"vendorName":"Comcast Communications","companyLegalName":"Comcast","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1xcv4q8sjvf7nw4qj2yt5kledgwyf3ycxw8c0pe"},{"vendorID":4442,"vendorName":"Nanoleaf","companyLegalName":"Nanoleaf Ltd.","companyPreferredName":"","vendorLandingPageURL":"https://nanoleaf.me","creator":"cosmos1sggrrmw05e6alve8umwdaszade5qxyt53kthud"},{"vendorID":4447,"vendorName":"Aqara","companyLegalName":"Lumi United Technology Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"https://www.aqara.com/","creator":"cosmos1qpz3ghnqj6my7gzegkftzav9hpxymkx6zdk73v"},{"vendorID":4448,"vendorName":"Sengled","companyLegalName":"Sengled Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1arhkv0n34xylxz9suy73dpyk6de32gpym9l3sw"},{"vendorID":4456,"vendorName":"Leedarson","companyLegalName":"Leedarson IoT Technology Inc.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1mzg0v94yg0cmkjqe2jqsys44tvvfk9mt2d889d"},{"vendorID":4478,"vendorName":"Feibit","companyLegalName":"Shenzhen Feibit Electronic Technology Co.,Ltd","companyPreferredName":"Feibit","vendorLandingPageURL":"http://www.feibit.com","creator":"cosmos162y3ehrqpuu2xjvmgq6qq7yqtdh6mlwh32wv2h"},{"vendorID":4488,"vendorName":"TP-Link","companyLegalName":"TP-Link Corporation Limited","companyPreferredName":"","vendorLandingPageURL":"https://www.tp-link.com","creator":"cosmos1jxpj6rr8vnetz9a2ec08az5fwqpuf4zt4hhygv"},{"vendorID":4492,"vendorName":"Midea Group","companyLegalName":"Midea Group","companyPreferredName":"Midea","vendorLandingPageURL":"","creator":"cosmos1a7c8us8jl76f8uue6xf9gzzqklfmfdyh8nedae"},{"vendorID":4619,"vendorName":"HEIMAN","companyLegalName":"Shenzhen Heiman Technology Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos16s4lqhxyqdr5lq6gmfpskjtwjf7dwc0lktn6dt"},{"vendorID":4631,"vendorName":"Amazon Alexa","companyLegalName":"Amazon.com, Inc.","companyPreferredName":"Amazon Alexa","vendorLandingPageURL":"https://www.amazon.com","creator":"cosmos152v4ejapsjl222zew0ll4eeltc0h2phh5hzpu3"},{"vendorID":4633,"vendorName":"ORVIBO","companyLegalName":"Shenzhen ORVIBO Technology Co.,  Ltd.","companyPreferredName":"","vendorLandingPageURL":"https://www.orvibo.com","creator":"cosmos1u7um30yf68zugm897tgpq7s6vhkhk4t2ykm0hq"},{"vendorID":4701,"vendorName":"Tuya","companyLegalName":"Tuya Global Inc.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos13pwvzq2zk0r3fxuc2a5jhadnx6tda5ar2tcpp9"},{"vendorID":4735,"vendorName":"Nordic Semiconductor ASA","companyLegalName":"Nordic Semiconductor ASA","companyPreferredName":"","vendorLandingPageURL":"https://www.nordicsemi.com","creator":"cosmos1eatgwsxtjz0tlchllzasjfcac6m56n30njc3k2"},{"vendorID":4736,"vendorName":"Siterwell","companyLegalName":"Siterwell Electronics Co., Limited","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1u3uhlkepx9dz9asrlucuupw2md2frvkwv583nr"},{"vendorID":4742,"vendorName":"CoolKit","companyLegalName":"SHENZHEN Coolkit Technology CO.,LTD.","companyPreferredName":"CoolKit","vendorLandingPageURL":"https://www.coolkit.cn/","creator":"cosmos18m8lehnvqx8zytn22fkekelt7xgmrl7cga37tl"},{"vendorID":4751,"vendorName":"EGLO","companyLegalName":"EGLO Leuchten GmbH","companyPreferredName":"","vendorLandingPageURL":"https://www.eglo.com/en/","creator":"cosmos1veu2f7mtgvfw8ezjfmhs64cqyt9wp2weas2rga"},{"vendorID":4874,"vendorName":"Eve","companyLegalName":"Eve Systems GmbH","companyPreferredName":"","vendorLandingPageURL":"https://www.evehome.com","creator":"cosmos1yh0ld8jl26rgycrtank8slxepmc8xzgyrzv99t"},{"vendorID":4877,"vendorName":"BouffaloLab","companyLegalName":"Bouffalo Lab (Nanjing) Co., Ltd.","companyPreferredName":"Bouffalo Lab ","vendorLandingPageURL":"https://www.bouffalolab.com/","creator":"cosmos1l8qwcjgfcnvlmtxrlcjrsmy9068mlck2cw68kx"},{"vendorID":4882,"vendorName":"Yeelight","companyLegalName":"Qingdao Yeelink Information Technology Co., Ltd.","companyPreferredName":"Yeelink Information Technology","vendorLandingPageURL":"https://en.yeelight.com/#","creator":"cosmos18fcq3647dkwur0d0zjyenj8sk57jehq4a8epaf"},{"vendorID":4891,"vendorName":"Espressif Systems","companyLegalName":"Espressif Systems (Shanghai) Co. Ltd.","companyPreferredName":"","vendorLandingPageURL":"https://www.espressif.com","creator":"cosmos1vncrg6hk30kutk4nr26mvyqc92zkygcc7aemzt"},{"vendorID":4894,"vendorName":"CAME S.p.A.","companyLegalName":"CAME S.p.A.","companyPreferredName":"CAME S.p.A.","vendorLandingPageURL":"https://www.came.com/","creator":"cosmos1kxjh94dcvnym6265nmxcjpn9xpkx0y7e3jjeqc"},{"vendorID":4895,"vendorName":"Longan.link","companyLegalName":"Longan Link Tech Co.,LTD","companyPreferredName":"","vendorLandingPageURL":"https://longan.link/","creator":"cosmos1qnd2v3n0f0ukja8z0jm4jqsqs5qhxa6ncvcxuv"},{"vendorID":4897,"vendorName":"SONOFF","companyLegalName":"Shenzhen Sonoff Technologies Co.,Ltd.","companyPreferredName":"SONOFF","vendorLandingPageURL":"https://sonoff.tech/","creator":"cosmos160c6r8rc2pgpgucasw4ae5gfqtz5vzcc6ay2sz"},{"vendorID":4915,"vendorName":"Becker Antriebe","companyLegalName":"Becker Antriebe GmbH","companyPreferredName":"Becker Antriebe","vendorLandingPageURL":"https://www.becker-antriebe.com/","creator":"cosmos1f6knru06kkxm306ckgs93zs9aqyrk9axgqh5wq"},{"vendorID":4921,"vendorName":"GE Lighting, a Savant company","companyLegalName":"GE Lighting, a Savant company","companyPreferredName":"","vendorLandingPageURL":"https://www.gelighting.com/","creator":"cosmos130t4m26ynex82jcgkqguxpffpva05e4zugn0xc"},{"vendorID":4927,"vendorName":"ASR","companyLegalName":"ASR Microelectronics(ShenZhen)Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos14a9n65wmumympggqnquu5ptq042ff69nehztk7"},{"vendorID":4930,"vendorName":"Beken Corporation","companyLegalName":"beken","companyPreferredName":"","vendorLandingPageURL":"http://www.bekencorp.com/","creator":"cosmos1aru484uj9dqkpnqg768tl6m66fvz9wkqcg79cw"},{"vendorID":4932,"vendorName":"Eltako","companyLegalName":"Eltako GmbH","companyPreferredName":"Eltako","vendorLandingPageURL":"https://www.eltako.com","creator":"cosmos1n3kqdwqh33grxcnzdeknercyt3wekc5zl4n3dg"},{"vendorID":4933,"vendorName":"Meross","companyLegalName":"Chengdu Meross Technology Co., Ltd.","companyPreferredName":"Meross","vendorLandingPageURL":"https://www.meross.com","creator":"cosmos18qu47pmqwylzm9w2tezyrmvcwmkew5yyvw3d6n"},{"vendorID":4934,"vendorName":"Rafael","companyLegalName":"Rafael Microelectronics, Inc.","companyPreferredName":"Rafael","vendorLandingPageURL":"","creator":"cosmos14myns7fehcxm2c896k5syhzr7zsyf7g4jdlk08"},{"vendorID":4937,"vendorName":"Apple Home","companyLegalName":"Apple Inc.","companyPreferredName":"","vendorLandingPageURL":"https://www.apple.com/home-app","creator":"cosmos1ysl37yl5nmcg8qr64knpscahq5zel3hjtxmvyt"},{"vendorID":4942,"vendorName":"tado","companyLegalName":"tado GmbH","companyPreferredName":"tado°","vendorLandingPageURL":"https://www.tado.com/","creator":"cosmos1sacvh2z4w0f3d657a2tdw2w4ha87743c8qahkv"},{"vendorID":4943,"vendorName":"mediola","companyLegalName":"mediola - connected living AG","companyPreferredName":"mediola","vendorLandingPageURL":"https://www.mediola.com","creator":"cosmos1j2w2zq787mkwltsdhzlxpnm50s8nrvg85u20dh"},{"vendorID":4945,"vendorName":"HooRii Technology","companyLegalName":"HooRii Technology CO., LTD","companyPreferredName":"HooRii Technology","vendorLandingPageURL":"https://www.hoorii.io/","creator":"cosmos1etk35ufz9z4x56t63tap7ncsvk5k5zw2npmlcu"},{"vendorID":4957,"vendorName":"Nuki","companyLegalName":"Nuki Home Solutions GmbH","companyPreferredName":"Nuki","vendorLandingPageURL":"https://nuki.io","creator":"cosmos1tdslga3va6luqzy2x3nlwxfh80f99vly5800ls"},{"vendorID":4962,"vendorName":"deveritec GmbH","companyLegalName":"deveritec GmbH","companyPreferredName":"","vendorLandingPageURL":"https://deveritec.de","creator":"cosmos19740ad8368h0h33rcu6gugtxgvyuws7puqg0za"},{"vendorID":4965,"vendorName":"Dooya","companyLegalName":"Ningbo Dooya Mechanic & Electronic Technology Co.,Ltd","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1pqypa94grwkmk2d7e0ncdctfav5wyycu787tmk"},{"vendorID":4974,"vendorName":"Ambi Labs Limited","companyLegalName":"Ambi Labs Limited","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos12st2nx5elvkyswv7nqw6xh6j67vg472lcv0299"},{"vendorID":4977,"vendorName":"Tridonic","companyLegalName":"Tridonic GmbH & Co KG","companyPreferredName":"Tridonic","vendorLandingPageURL":"https://www.tridonic.com/matter","creator":"cosmos16ad3em3nrqzf854p03audmgdl3pc384467yzav"},{"vendorID":4978,"vendorName":"innovation matters","companyLegalName":"innovation matters iot GmbH","companyPreferredName":"","vendorLandingPageURL":"https://www.innovation-matters.at/","creator":"cosmos1v6x4nte50al0jjynvldwqse9n4ceajmja3wvph"},{"vendorID":4991,"vendorName":"NEO","companyLegalName":"Shenzhen NEO Electronic CO","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos18cvsug5mc7vj9a6kxaj0fwp99vj9ga3xd3lnql"},{"vendorID":4993,"vendorName":"Amazon Prime Video","companyLegalName":"Amazon.com, Inc.","companyPreferredName":"Amazon Prime Video","vendorLandingPageURL":"https://www.amazon.com","creator":"cosmos1akrkaxvlfwnnk2phtxewadmel4s567wr8xmfj8"},{"vendorID":4996,"vendorName":"Apple Keychain","companyLegalName":"Apple Inc.","companyPreferredName":"","vendorLandingPageURL":"https://support.apple.com/en-us/HT213441","creator":"cosmos1qqgp6p73z0lku4qzeajgtxtzy24xx467j0v0kp"},{"vendorID":4998,"vendorName":"Skylux","companyLegalName":"Skylux N.V.","companyPreferredName":"Skylux","vendorLandingPageURL":"https://www.skylux.eu","creator":"cosmos1f9haxa732cy6rmm3nc88q9fxx9zv0m0qn3kzcm"},{"vendorID":4999,"vendorName":"Qianyan","companyLegalName":"Shenzhen Qianyan Technology LTD","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos10plhr0fh27nred7nra3s6dld26gzcw6etje4gk"},{"vendorID":5002,"vendorName":"Nature","companyLegalName":"Nature Inc.","companyPreferredName":"","vendorLandingPageURL":"https://nature.global/","creator":"cosmos1yvwf85sx9mp53kptfwfz49cmmznvj2j0efavzu"},{"vendorID":5009,"vendorName":"Kasa","companyLegalName":"TP-Link Corporation Limited","companyPreferredName":"","vendorLandingPageURL":"https://www.kasasmart.com","creator":"cosmos1fjwwzm8zs9yc2hq73tqggdylcmm0ujmuc7x9wn"},{"vendorID":5010,"vendorName":"Tapo","companyLegalName":"TP-Link Corporation Limited","companyPreferredName":"","vendorLandingPageURL":"https://www.tapo.com","creator":"cosmos1acw4mmmf26e7jkxqm5epu7g56tcgz0walk3vs8"},{"vendorID":5015,"vendorName":"SwitchBot","companyLegalName":"Woan Technology (Shenzhen) Co., Ltd. ","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1dc9patujyr2av2ezggudfalfag7p7scc0t3wnk"},{"vendorID":5020,"vendorName":"Zemismart Technology Limited","companyLegalName":"Zemismart Technology Limited","companyPreferredName":"Zemismart","vendorLandingPageURL":"https://www.zemismart.com","creator":"cosmos1mrv5zh6r6kcfln34vju5kfup4mv9lw27u33yj0"},{"vendorID":5120,"vendorName":"Uascent","companyLegalName":"Uascent Technology Company Limited","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1ynw4zl6xqnvh5zhzhhpxjc6kt8z8wvxkp8edsw"},{"vendorID":5123,"vendorName":"Arlec Australia","companyLegalName":"Arlec Australia Pty. Ltd.","companyPreferredName":"Grid Connect","vendorLandingPageURL":"https://grid-connect.com.au/","creator":"cosmos1d9ut0ysdlw68r0705q8tagf7y9cf3d686fpf73"},{"vendorID":5124,"vendorName":"Phaten","companyLegalName":"Shenzhen Phaten Technology Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"https://www.phaten.com","creator":"cosmos1h4rf0hjzf498s2lu0rf8m52ujst2gl7lpdnexs"},{"vendorID":5127,"vendorName":"ThirdReality","companyLegalName":"Jiangsu Shushi Technology Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1qwnh6tj4n938g3fmncqna22zmfxx50vnd22yux"},{"vendorID":5136,"vendorName":"Quectel","companyLegalName":"Quectel Wireless Solutions Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"https://www.quectel.com","creator":"cosmos1dqrg6w2jjs7sft59dpqngjzyfdjh4xjn5rjct5"},{"vendorID":5139,"vendorName":"1Home","companyLegalName":"1Home Solutions GmbH","companyPreferredName":"","vendorLandingPageURL":"https://www.1home.io/","creator":"cosmos1nzyp28afpumk0djal2w35s2pcl0q3e57euplkq"},{"vendorID":5141,"vendorName":"Caveman","companyLegalName":"Nanoleaf Ltd.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1smgmnl90h9srczk926l5kt7rydjpq7x0smc5e7"},{"vendorID":5145,"vendorName":"Lorex","companyLegalName":"Lorex Technology Inc.","companyPreferredName":"Lorex","vendorLandingPageURL":"https://www.lorex.com/","creator":"cosmos1c98nn3uphuya0w4km5uzamjwpkawksf5g6h5m5"},{"vendorID":5147,"vendorName":"Rang Dong VN","companyLegalName":"Rang Dong Light Source & Vacuum Flask JSC","companyPreferredName":"Rang Dong Light Source & Vacuum Flask JSC","vendorLandingPageURL":"https://rangdong.com.vn/","creator":"cosmos1023z8vredmrn7xlzjlrlv6wdqh0fpzs8jlc9rx"},{"vendorID":5150,"vendorName":"TUO Accessories LLC","companyLegalName":"TUO Accessories LLC","companyPreferredName":"TUO Accessories","vendorLandingPageURL":"http://tuoaccessories.com","creator":"cosmos1vn34dnlqvz5e997ws53yfj6a2622duzf3gg80d"},{"vendorID":5151,"vendorName":"Ductech","companyLegalName":"DUCTECH Co., Ltd.","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos18nqp48ce5k7j8qvuwk7tnzmckwsd8k2tlnj850"},{"vendorID":5165,"vendorName":"QH","companyLegalName":"Zhongshan QIHANG Electronic Technology Co.","companyPreferredName":"QIHANG","vendorLandingPageURL":"https://zsqhkj.1688.com/","creator":"cosmos13zzg6t6gaz36p8ctguatrguwuep9wmza6lptet"},{"vendorID":5167,"vendorName":"QIACHIP","companyLegalName":"Shenzhen QIACHIP Wireless E-commerce Co.","companyPreferredName":"QIACHIP","vendorLandingPageURL":"https://qiachip.com","creator":"cosmos1rhjya3hdvpyr2a3ur7s5hj48ce2qndyfcz07ht"},{"vendorID":24582,"vendorName":"Google LLC","companyLegalName":"Google LLC","companyPreferredName":"","vendorLandingPageURL":"","creator":"cosmos1kelvhh6cy2vmaj5zczxj52k4nys2w4e2u3awvq"}],"pagination":{"next_key":null,"total":"73"}},"isInternal":false,"tokens":6919,"sizeBytes":20498},{"name":"berry-configuration.json","path":"lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json","title":"Skiars.berry-1.2.0 Skill","category":"anthropic-skill","format":"json","content":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json)","tokens":300,"sizeBytes":289},{"name":"CHANGELOG.md","path":"lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md","title":"Skiars.berry-1.2.0 Skill","category":"anthropic-skill","format":"markdown","content":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md)","tokens":300,"sizeBytes":265},{"name":"package.json","path":"lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json","title":"Skiars.berry-1.2.0 Skill","category":"anthropic-skill","format":"json","content":"# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json)","tokens":300,"sizeBytes":265},{"name":"berry.json","path":"lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json","title":"Syntaxes Skill","category":"anthropic-skill","format":"json","content":"# Syntaxes Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json)","tokens":300,"sizeBytes":269},{"name":"manifest.json","path":"tasmota/berry/extensions/Devices_Online/manifest.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Devices_Online/manifest.json","title":"Devices Online","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"Devices Online\",\n  \"version\": \"0x1A040900\",\n  \"description\": \"Display devices online info\",\n  \"author\": \"Theo Arends\",\n  \"min_tasmota\": \"0x09040000\",\n  \"features\": \"\"\n}\n","frontmatter":{"name":"Devices Online","version":"0x1A040900","description":"Display devices online info","author":"Theo Arends","min_tasmota":"0x09040000","features":""},"isInternal":false,"tokens":61,"sizeBytes":182},{"name":"manifest.json","path":"tasmota/berry/extensions/Leds_Panel/manifest.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Leds_Panel/manifest.json","title":"Leds Panel","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"Leds Panel\",\n  \"version\": \"0x19090100\",\n  \"description\": \"Realtime display of the WS2812 leds in browser\",\n  \"author\": \"Stephan Hadinger\",\n  \"min_tasmota\": \"0x0F000100\",\n  \"features\": \"\"\n}","frontmatter":{"name":"Leds Panel","version":"0x19090100","description":"Realtime display of the WS2812 leds in browser","author":"Stephan Hadinger","min_tasmota":"0x0F000100","features":""},"isInternal":false,"tokens":70,"sizeBytes":201},{"name":"changelog.md","path":"tasmota/berry/extensions/LoRaWan_Decoders/changelog.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/changelog.md","title":"LoRaWan_Decoders Skill","category":"anthropic-skill","format":"markdown","content":"# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/changelog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/changelog.md)","tokens":300,"sizeBytes":229},{"name":"manifest.json","path":"tasmota/berry/extensions/LoRaWan_Decoders/manifest.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/manifest.json","title":"LoRaWan_Decoders Skill","category":"anthropic-skill","format":"json","content":"# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/manifest.json)","tokens":300,"sizeBytes":231},{"name":"manifest.json","path":"tasmota/berry/extensions/LVGL_Panel/manifest.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LVGL_Panel/manifest.json","title":"LVGL Panel","category":"anthropic-skill","format":"json","content":"{\n  \"name\": \"LVGL Panel\",\n  \"version\": \"0x1A030301\",\n  \"description\": \"Realtime mirror of the LVGL display in browser\",\n  \"author\": \"Stephan Hadinger & Milko Daskalov\",\n  \"min_tasmota\": \"0x0F030002\",\n  \"features\": \"display\"\n}","frontmatter":{"name":"LVGL Panel","version":"0x1A030301","description":"Realtime mirror of the LVGL display in browser","author":"Stephan Hadinger & Milko Daskalov","min_tasmota":"0x0F030002","features":"display"},"isInternal":false,"tokens":79,"sizeBytes":225},{"name":"manifest.json","path":"tasmota/berry/extensions/Partition_Wizard/manifest.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Partition_Wizard/manifest.json","title":"Partition_Wizard Skill","category":"anthropic-skill","format":"json","content":"# Partition_Wizard Skill\n\nPath: `tasmota/berry/extensions/Partition_Wizard/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Partition_Wizard/manifest.json)","tokens":300,"sizeBytes":231},{"name":"manifest.json","path":"tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json","title":"Wifi_Heap_Sticker Skill","category":"anthropic-skill","format":"json","content":"# Wifi_Heap_Sticker Skill\n\nPath: `tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json)","tokens":300,"sizeBytes":234},{"name":"decode-config.md","path":"tools/decode-config.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tools/decode-config.md","title":"Tools Skill","category":"anthropic-skill","format":"markdown","content":"A tool to backup and restore the configuration of [Tasmota](http://tasmota.com/)-devices.\n\n## decode-config has moved to [https://github.com/tasmota/decode-config](https://github.com/tasmota/decode-config)\n","isInternal":false,"tokens":53,"sizeBytes":206},{"name":"library.json","path":"tools/fw_TasmotaClient_arduino/TasmotaClient/library.json","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tools/fw_TasmotaClient_arduino/TasmotaClient/library.json","title":"TasmotaClient","category":"anthropic-skill","format":"json","content":"{\n    \"name\": \"TasmotaClient\",\n    \"version\": \"0.0.2\",\n    \"keywords\": [\n      \"serial\", \"io\", \"TasmotaClient\"\n    ],\n    \"description\": \"TasmotaClient Driver Library\",\n    \"repository\":\n    {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/andrethomas/TasmotaSlave\"\n    },\n    \"frameworks\": \"arduino\"\n}\n","frontmatter":{"name":"TasmotaClient","version":"0.0.2","keywords":["serial","io","TasmotaClient"],"description":"TasmotaClient Driver Library","repository":{"type":"git","url":"https://github.com/andrethomas/TasmotaSlave"},"frameworks":"arduino"},"isInternal":false,"tokens":96,"sizeBytes":314},{"name":"README.md","path":"lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md","title":"tasmota.animation-dsl-1.2.1 Documentation","category":"plugin-manifest","format":"markdown","content":"# tasmota.animation-dsl-1.2.1 Documentation\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md)","tokens":300,"sizeBytes":284},{"name":"README.md","path":"lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md","title":"skiars.berry-1.2.0 Documentation","category":"plugin-manifest","format":"markdown","content":"# skiars.berry-1.2.0 Documentation\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md)","tokens":300,"sizeBytes":267},{"name":"README.md","path":"tools/fw_ShellyDimmer_stm32/README.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tools/fw_ShellyDimmer_stm32/README.md","title":"fw_ShellyDimmer_stm32 Documentation","category":"plugin-manifest","format":"markdown","content":"An open-source firmware for the STM32 co-processor on the Shelly Dimmer by James Turton.\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\n# Pre-build binary\nSee the [releases](https://github.com/jamesturton/shelly-dimmer-stm32/releases) page to download the latest pre-build binary.\n","isInternal":false,"tokens":98,"sizeBytes":348},{"name":"readme.md","path":"tools/fw_SonoffZigbeeBridge_ezsp/readme.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tools/fw_SonoffZigbeeBridge_ezsp/readme.md","title":"fw_SonoffZigbeeBridge_ezsp Documentation","category":"plugin-manifest","format":"markdown","content":"# EmberZNet NCP UART EZSP firmware\n\n## EmberZNet NCP UART EZSP firmware signed for Sonoff ZBBridge\n\n### Currently recommended versions\n\n- `ncp-uart-sw-6.7.8_115200.ota` - NEW: The current and recommended stable version for EZSP v8 compatible hosts.\n\n- `ncp-uart-nsw_6.7.9_115200.ota` - has some additional bug fixes and is under testing.\n\n### Archived versions\n\n- `ncp-uart-sw_6.7.6_115200.ota` - OLD: Original version for EZSP v8 compatible hosts, (contains a bug that can cause battery of IKEA and Philips remotes to drain).\n- `ncp-uart-sw_6.5.5_115200.ota` - LEGACY: Legacy version for older EZSP v7 compatible hosts.\n\n## EFR32, EmberZNet and EZSP Protocol Versions\n\nEZSP stands for \"EmberZNet Serial Protocol\" which is the default serial interface used in compatible Zigbee coordinator firmware for the Silicon Labs EFR32 hardware family such as the EFR32MG21/MGM210 and EFR32MG12/MGM12 series.\n\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-modules\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-modules\n\nSilicon Labs do not currently have a consolidated list of changes by EmberZNet SDK or EZSP protocol versions. The EZSP additions, changes and deletions have only ever been listed in the [Zigbee EmberZNet Release Notes](https://www.silabs.com/search#q=Zigbee%20EmberZNet%20Release%20Notes&t=All&sort=relevancy) (EmberZNet SDK) under the \"New items\" section as well as the matching UG100 EZSP Reference Guide included with each EmberZNet SDK release.\n\nThe largest change was between EZSP v4 (first added in EmberZNet 4.7.2 SDK) and EZSP v5 that was added in EmberZNet 5.9.0 SDK which requires the Legacy Frame ID 0xFF. The change from EZSP v5 to EZSP v6 was done in EmberZNet 6.0.0 SDK. The change from EZSP v6 to EZSP v7 was in EmberZNet 6.4.0 SDK. EmberZNet 6.7.0 SDK added EZSP v8 (and Secure EZSP Protocol Version 2).\n\nPerhaps more important to know is that EZSP v5, v6 and v7 (EmberZNet 6.6.x.x) use the same framing format, but EmberZNet 6.7.x.x/EZSP v8 introduced new framing format and expanded command id field from 8 bits to 16 bits.\n\nSee Silabs [Zigbee & Thread Knowledge Base Articles List](https://silabs-prod.adobecqms.net/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2020/04/01/zigbee_thread_knowledgebasearticleslist-ih5r) for background information.\n","isInternal":false,"tokens":742,"sizeBytes":2450},{"name":"README.md","path":"tools/fw_TasmotaClient_arduino/TasmotaClient/README.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tools/fw_TasmotaClient_arduino/TasmotaClient/README.md","title":"TasmotaClient Documentation","category":"plugin-manifest","format":"markdown","content":"# TasmotaClient\n\nThis library adds support for the TasmotaClient driver integrated into Tasmota from https://github.com/arendst/Tasmota\n\nRead the TasmotaClient wiki article on the Tasmota wiki from https://tasmota.github.io/docs/#/TasmotaSlave to see how to enable support for this library inside Tasmota.\n\nEdit:(docs are not up to date and dokuments the old TasmotaSlave comands) (2020-11-21)\n# Change Log\n\n### 2019-11-29 - v0.0.2 (Pre-release)\n\n- Add support for sending commands to Tasmota using ExecuteCommand(char *cmnd)\n","isInternal":false,"tokens":146,"sizeBytes":526},{"name":"README.md","path":"tools/qemu/README.md","rawUrl":"https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tools/qemu/README.md","title":"qemu Documentation","category":"plugin-manifest","format":"markdown","content":"# Running Tasmota (ESP32) under QEMU\n\n`tasmota-qemu.sh` (in `tools/qemu/`) builds a Tasmota ESP32 firmware with PlatformIO and\nboots it under an Espressif QEMU fork on an amd64 host — serial console always, and a\n**browsable web UI** when the WiFi-capable fork is used.\n\nIt builds the **current checkout** (your local changes), not a fresh clone. Build\nartifacts and the QEMU forks live under `tasmota-qemu/` at the repo root (gitignored).\nExamples below assume you run it from `tools/qemu/`; from the repo root use\n`tools/qemu/tasmota-qemu.sh …` — either works, paths resolve the same.\n\n## Quick start\n\nNetworked Tasmota with a reachable web UI, in one command:\n\n```bash\nNET_WIFI=1 ./tasmota-qemu.sh        # build -> image -> wifi QEMU -> boot, joins emulated AP\n# then browse:\nopen http://localhost:8080\n```\n\nFirst run is slow: it clones Tasmota, pulls the toolchain, compiles the firmware, and\nclones + builds the QEMU fork. Subsequent runs are cached.\n\nSerial-only (no network, stock QEMU, fastest path):\n\n```bash\n./tasmota-qemu.sh                   # stock fork, serial console only\n```\n\n## Commands\n\n```\n./tasmota-qemu.sh [command]\n  build        Compile Tasmota firmware (PlatformIO env $TASMOTA_ENV)\n  make-image   Build the QEMU flash image (factory.bin, or merge raw parts)\n  qemu-setup   Clone + build the chosen QEMU fork\n  run          Boot the firmware in QEMU (serial tee'd to qemu.log)\n  smoketest    Boot a minimal Arduino app (same IDF) to sanity-check QEMU itself\n  decode [log] Symbolize the last panic backtrace from a log (default: qemu.log)\n  all          build -> make-image -> qemu-setup -> run   (default)\n```\n\n## Key environment variables\n\n| Variable          | Default              | Meaning |\n|-------------------|----------------------|---------|\n| `NET_WIFI`        | `0`                  | `1` = one-shot networked recipe (see below) |\n| `WIFI_SSID`       | `Open Wifi`          | AP the firmware joins when `NET_WIFI=1` |\n| `WIFI_PASS`       | *(empty)*            | password for that AP (the emulated one is open) |\n| `NET_WIFI_ENV`    | `tasmota32solo1`     | env used by `NET_WIFI=1` |\n| `TASMOTA_ENV`     | `tasmota32`          | PlatformIO env (must be an ESP32 one) |\n| `MINIMAL`         | `0`                  | `1` = build the stripped `tasmota32-safeboot` env |\n| `QEMU_VARIANT`    | `stock`              | `stock` (no WiFi) or `wifi` (Ebiroll/calib fork) |\n| `FLASH_SIZE`      | `4MB`                | `2MB`/`4MB`/`8MB`/`16MB` only |\n| `WEB_PORT_HOST`   | `8080`               | host port forwarded to guest `:80` |\n| `USE_SYSTEM_QEMU` | `0`                  | `1` = use `qemu-system-xtensa` from `PATH` |\n| `INSTALL_DEPS`    | `0`                  | `1` = apt-get the QEMU build deps (needs sudo) |\n\n## How `NET_WIFI=1` works\n\nGetting a networked Tasmota into QEMU needs three things to line up; `NET_WIFI=1`\nsets all of them:\n\n1. **Survive early IDF init** — the full dual-core `tasmota32` build panics in\n   `esp_timer_impl_init` under QEMU (null interrupt vector). The **unicore\n   `tasmota32solo1`** build does not, so `NET_WIFI=1` selects it.\n2. **Survive WiFi bring-up** — Tasmota's WiFi blobs poke RF registers (`0x6003xxxx`)\n   that the **stock** QEMU does not emulate (`LoadStorePIFAddrError`). The\n   **`wifi` fork** (Ebiroll/calib) emulates them, so `NET_WIFI=1` forces\n   `QEMU_VARIANT=wifi`.\n3. **Get an IP the host can reach** — that fork advertises one open AP named\n   **`Open Wifi`**. `NET_WIFI=1` writes station credentials into a managed block in\n   `tasmota/user_config_override.h`, so the firmware joins it in station mode, gets a\n   slirp DHCP lease (`10.0.2.15`), and the `:8080 -> :80` port-forward becomes routable.\n\nThe credential block is delimited and idempotent — re-running rewrites only that block\nand leaves the rest of `user_config_override.h` intact.\n\n## Debugging a panic\n\nThe `run` step boots with `-no-reboot` (QEMU exits on the first guest reset instead of\nlooping) and tees the serial console to `tasmota-qemu/qemu.log`. To symbolize the last\npanic:\n\n```bash\n./tasmota-qemu.sh decode                 # decodes tasmota-qemu/qemu.log\n./tasmota-qemu.sh decode some-other.log  # decodes a specific log\n```\n\n`decode` strips the `0xffffffff` sentinel frame, takes the PC of each `pc:sp` pair, and\nruns `addr2line` against the matching `firmware.elf`. Frames in app flash\n(`0x4018xxxx`+) are the useful ones. Addresses that resolve to `??` are inside the\nclosed-source WiFi/BT blobs (no symbols) — usually a sign the firmware touched radio\nhardware the emulator doesn't model.\n\nIs it QEMU or the firmware? Run `./tasmota-qemu.sh smoketest`: it builds a minimal Arduino\napp with the *same* IDF/toolchain and boots it. If the minimal app runs, QEMU is fine\nand the problem is in the Tasmota build.\n\n## Web UI: only `/` loads, sub-pages give `ERR_EMPTY_RESPONSE`\n\nThis is expected on first use and is **not** a crash. Tasmota's referer check only\naccepts a `Referer` whose host is its own hostname or local IP (`10.0.2.15`). Through\nthe host port-forward your browser sends `Referer: http://localhost:8080/`, whose host\nis `localhost` — matching neither — so every page past `/` is dropped with an empty\nresponse.\n\nWith `NET_WIFI=1` this is handled automatically: a background watcher waits for the web\nserver to come up and issues `SetOption128 1` for you, so the UI is clickable out of the\nbox. If you ever need to do it by hand (e.g. you ran a plain `run` on a fresh image):\n\n```bash\n./tasmota-qemu.sh fixui          # sends SetOption128 1 (disable referer check)\n```\n\nThe setting persists to flash. A fresh `make-image` wipes flash, but the next\n`NET_WIFI=1` run re-applies it automatically.\n\n## Caveats\n\n- The `wifi` fork is older than the firmware's IDF; its RF-register model is good enough\n  to associate but is not a full WiFi stack.\n- `stock` + a real Tasmota build will boot to a serial console but the web UI will not\n  respond (no WiFi emulation). Use `NET_WIFI=1` for network access.\n- Stop a running QEMU with `Ctrl-A` then `X`, or:\n  `for p in $(pgrep -f qemu-system-xtensa); do kill -9 $p; done`\n","isInternal":false,"tokens":1728,"sizeBytes":6107}],"systemPromptSnippet":"<yakaai_skills repo=\"arendst/Tasmota\">\n<!-- File: API.md (Tokens: ~2726 | Category: project-spec) -->\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"./tools/logo/TASMOTA_FullLogo_Vector_White.svg\">\n  <img alt=\"Logo\" src=\"./tools/logo/TASMOTA_FullLogo_Vector.svg\" align=\"right\" height=\"76\">\n</picture>\n\n# Basic API information\n\nTasmota can easily be extended by developers using provided function pointers as callback Ids. This document lists the available callback function Ids. Read [Sensor API](https://tasmota.github.io/docs/Sensor-API) for more information.\n\nCallback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall, XnrgCall and XlgtCall.\n\n## Driver, Sensor, Energy and Light Callback Ids\n\nThe following table lists Callback Ids and their availability for a Driver, Sensor or Energy service.\n\nCallback Id                 | Bool | xdrv | xsns | xnrg | xlgt | Description\n----------------------------|------|------|------|------|------|----------------------------------\nFUNC_SETTINGS_OVERRIDE      |      |  x   |      |      |      | Override start-up settings\nFUNC_PIN_STATE              |  x   |  1   |  2   |      |      | At GPIO configuration\nFUNC_I2C_INIT               |      |  x   |      |      |      | Immediately after I2C init\nFUNC_MODULE_INIT            |  x   |  3   |  1   |      |  2   | Init module specific parameters\nFUNC_PRE_INIT               |      |  1   |  3   |  2   |      | Once GPIO have been established\nFUNC_INIT                   |      |  1   |  3   |  2   |      | At end of initialisation\nFUNC_LOOP                   |      |  1   |  2   |      |      | In main loop\nFUNC_SLEEP_LOOP             |      |  1   |  2   |      |      | In main loop during sleep\nFUNC_EVERY_50_MSECOND       |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_100_MSECOND      |      |  1   |  2   |      |      | In main loop\nFUNC_EVERY_200_MSECOND      |      |      |      |  x   |      | In main loop\nFUNC_EVERY_250_MSECOND      |      |  1   |  3   |  2   |      | In main loop\nFUNC_EVERY_SECOND           |      |  1   |  2   |      |      | In main loop\nFUNC_SAVE_SETTINGS          |      |  2   |  1   |      |      | Just before saving settings\nFUNC_SAVE_AT_MIDNIGHT       |      |      |  x   |      |      | At midnight\nFUNC_SAVE_BEFORE_RESTART    |      |  2   |  1   |      |      | Just before a planned restart\nFUNC_AFTER_TELEPERIOD       |      |  2   |  1   |      |      | At end of teleperiod\nFUNC_JSON_APPEND            |      |  2   |  1   |  3   |      | Extend teleperiod JSON text\nFUNC_WEB_SENSOR             |      |  2   |  1   |  3   |      | Add sensor data to web GUI\nFUNC_WEB_COL_SENSOR         |      |  2   |  1   |  3   |      | Add sensor data to web GUI using columns\nFUNC_COMMAND                |  x   |  1   |  2   |  3   |  4   | When a command is not recognized\nFUNC_COMMAND_DRIVER         |  x   |  x   |      |      |      | When command Driver\\<id\\> is executed\nFUNC_COMMAND_SENSOR         |  x   |      |  x   |      |      | When command Sensor\\<id\\> is executed\nFUNC_MQTT_SUBSCRIBE         |      |  x   |      |      |      | At end of MQTT subscriptions\nFUNC_MQTT_INIT              |      |  x   |      |      |      | Once at end of MQTT connection\nFUNC_MQTT_DATA              |  x   |  x   |      |      |      | Before decoding command\nFUNC_SET_POWER              |      |  1   |  2   |      |      | Before setting relays\nFUNC_SET_DEVICE_POWER       |  x   |  x   |      |      |      | Set relay\nFUNC_SHOW_SENSOR            |      |  x   |      |      |      | When FUNC_JSON_APPEND completes\nFUNC_ANY_KEY                |      |  x   |      |      |      |\nFUNC_LED_LINK               |      |  x   |      |      |      | SetLedLink (On ESP32 only). XdrvMailbox.index holds state\nFUNC_ENERGY_EVERY_SECOND    |      |      |      |  x   |      |\nFUNC_ENERGY_RESET           |      |      |      |  x   |      |\nFUNC_RULES_PROCESS          |  x   |  x   |      |      |      | Process specific rule\nFUNC_TELEPERIOD_RULES_PROCESS | x  |  x   |      |      |      | Process specific rule as teleperiod\nFUNC_SERIAL                 |  x   |  1   |      |  2   |  3   | Process serial data\nFUNC_FREE_MEM               |      |  x   |      |      |      | Show free memory for debugging\nFUNC_BUTTON_PRESSED         |  x   |  x   |      |      |      | When a button is pressed\nFUNC_BUTTON_MULTI_PRESSED   |  x   |  x   |      |      |      | When a button is pressed multiple times\nFUNC_WEB_ADD_BUTTON         |      |  1   |  2   |      |      | Add a Configuration Button to GUI\nFUNC_WEB_ADD_MAIN_BUTTON    |      |  1   |  2   |      |      | Add a main button to GUI\nFUNC_WEB_ADD_CONSOLE_BUTTON |      |  1   |  2   |      |      | Add a Consoles Button to GUI\nFUNC_WEB_ADD_MANAGEMENT_BUTTON |   |  x   |      |      |      | Add a Management Button to GUI\nFUNC_WEB_ADD_HANDLER        |      |  1   |  2   |      |      | Add a webserver handler\nFUNC_WEB_GET_ARG            |      |  2   |  1   |      |  3   | Get webserver setting arguments\nFUNC_SET_CHANNELS           |      |  2   |      |      |  1   |\nFUNC_SET_SCHEME             |      |      |      |      |  x   |\nFUNC_HOTPLUG_SCAN           |      |      |  x   |      |      |\nFUNC_TIME_SYNCED            |      |  x   |      |      |      | Report time is synced\nFUNC_DEVICE_GROUP_ITEM      |      |  x   |      |      |      |\nFUNC_NETWORK_UP             |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went up (received even if webserver is not enabled)\nFUNC_NETWORK_DOWN           |      |  1   |  2   |  3   |  4   | Wifi or ETH network just went down (received even if webserver is not enabled)\n\nThe numbers represent the sequence of execution\n\n## Display Call back Ids\n\nThe following table lists all Callback Ids for a Display service.\n\nCallback Id                   | Bool | Description\n------------------------------|------|---------------------\nFUNC_DISPLAY_INIT_DRIVER      |      |\nFUNC_DISPLAY_INIT             |      |\nFUNC_DISPLAY_EVERY_50_MSECOND |      |\nFUNC_DISPLAY_EVERY_SECOND     |      |\nFUNC_DISPLAY_MODEL            |  x   |\nFUNC_DISPLAY_MODE             |      |\nFUNC_DISPLAY_POWER            |      |\nFUNC_DISPLAY_CLEAR            |      |\nFUNC_DISPLAY_DRAW_FRAME       |      |\nFUNC_DISPLAY_DRAW_HLINE       |      |\nFUNC_DISPLAY_DRAW_VLINE       |      |\nFUNC_DISPLAY_DRAW_LINE        |      |\nFUNC_DISPLAY_DRAW_CIRCLE      |      |\nFUNC_DISPLAY_FILL_CIRCLE      |      |\nFUNC_DISPLAY_DRAW_RECTANGLE   |      |\nFUNC_DISPLAY_FILL_RECTANGLE   |      |\nFUNC_DISPLAY_TEXT_SIZE        |      |\nFUNC_DISPLAY_FONT_SIZE        |      |\nFUNC_DISPLAY_ROTATION         |      |\nFUNC_DISPLAY_DRAW_STRING      |      |\nFUNC_DISPLAY_ONOFF            |      |\n\n## Init sequence\n\nThe following list shows a typical callback init sequence\n\n```\nCFG: Loaded from flash at FB, Count 1581\nxdrv - FUNC_SETTINGS_OVERRIDE\nxdrv - FUNC_PIN_STATE\nxsns - FUNC_PIN_STATE\nxsns - FUNC_MODULE_INIT\nxdrv - FUNC_MODULE_INIT\nxlgt - FUNC_MODULE_INIT\nxdrv - FUNC_PRE_INIT\nxnrg - FUNC_PRE_INIT\nxsns - FUNC_PRE_INIT\nSRC: Restart\nxdrv - FUNC_SET_POWER\nxsns - FUNC_SET_POWER\nxlgt - FUNC_SET_CHANNELS\nxdrv - FUNC_SET_DEVICE_POWER\nProject tasmota Wemos 2 Version 7.0.0.3(tasmota)-STAGE\nxdrv - FUNC_INIT\nxsns - FUNC_INIT\nI2C: ADS1115 found at 0x48\nxdrv - FUNC_LOOP\nxsns - FUNC_LOOP\nxdrv - FUNC_EVERY_50_MSECOND\nxlgt - FUNC_SET_CHANNELS\nxsns - FUNC_EVERY_50_MSECOND\nxdrv - FUNC_EVERY_100_MSECOND\nxsns - FUNC_EVERY_100_MSECOND\nxdrv - FUNC_EVERY_250_MSECOND\nxsns - FUNC_EVERY_250_MSECOND\nxdrv - FUNC_EVERY_SECOND\nxsns - FUNC_EVERY_SECOND\nWIF: Attempting connection...\nWIF: Network (re)scan started...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Network 0, AP1, SSId indebuurt1, Channel 1, BSSId 24:D3:F2:97:C0:A1, RSSI -86, Encryption 1\nWIF: Network 1, AP2, SSId indebuurt2, Channel 5, BSSId A0:AB:1B:7D:42:AC, RSSI -42, Encryption 1\nWIF: Network 2, AP-, SSId indebuurt3, Channel 12, BSSId 60:E3:27:58:77:E6, RSSI -84, Encryption 1\nWIF: Connecting to AP2 indebuurt2 in mode 11N as wemos2...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Attempting connection...\nWIF: Connected\nxdrv - FUNC_WEB_ADD_HANDLER\nxsns - FUNC_WEB_ADD_HANDLER\nHTP: Web server active on wemos2 with IP address 192.168.2.191\nNTP: Drift 0, (UTC) Wed Nov 06 13:57:08 2019, (DST) Sun Mar 31 02:00:00 2019, (STD) Sun Oct 27 03:00:00 2019\nAPP: Boot Count 500\nMQT: Attempting connection...\nMQT: Connected\nMQT: tele/wemos2/LWT = Online (retained)\nMQT: cmnd/wemos2/POWER =\nMQT: Subscribe to cmnd/wemos2/#\nMQT: Subscribe to cmnd/sonoffs/#\nMQT: Subscribe to cmnd/DVES_15568C_fb/#\nxdrv - FUNC_MQTT_SUBSCRIBE\nMQT: tele/wemos2/INFO1 = {\"Module\":\"Generic\",\"Version\":\"7.0.0.3(tasmota)\",\"FallbackTopic\":\"cmnd/DVES_15568C_fb/\",\"GroupTopic\":\"cmnd/sonoffs/\"}\nMQT: tele/wemos2/INFO2 = {\"WebServerMode\":\"Admin\",\"Hostname\":\"wemos2\",\"IPAddress\":\"192.168.2.191\"}\nMQT: tele/wemos2/INFO3 = {\"RestartReason\":\"Software/System restart\"}\nMQT: stat/wemos2/RESULT = {\"POWER1\":\"OFF\"}\nMQT: stat/wemos2/POWER1 = OFF\nMQT: stat/wemos2/RESULT = {\"POWER2\":\"ON\"}\nMQT: stat/wemos2/POWER2 = ON\nxdrv - FUNC_MQTT_INIT\nCFG: Saved to flash at FA, Count 1582, Bytes 4096\n```\n\n<!-- File: lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/CHANGELOG.md)\n\n<!-- File: lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/language-configuration.json)\n\n<!-- File: lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Tasmota.animation-dsl-1.2.1 Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/package.json)\n\n<!-- File: lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Syntaxes Skill\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/syntaxes/animation-dsl.tmLanguage.json)\n\n<!-- File: lib/libesp32/berry_matter/tools/vendors.json (Tokens: ~6919 | Category: anthropic-skill) -->\n{\n  \"vendorInfo\": [\n    {\n      \"vendorID\": 4107,\n      \"vendorName\": \"Signify\",\n      \"companyLegalName\": \"Signify Netherlands B.V.\",\n      \"companyPreferredName\": \"Signify\",\n      \"vendorLandingPageURL\": \"https://www.signify.com/\",\n      \"creator\": \"cosmos1xx8fg5nu4lesn448ytds8yjql47jp8gnfh6hck\"\n    },\n    {\n      \"vendorID\": 4125,\n      \"vendorName\": \"Assa Abloy\",\n      \"companyLegalName\": \"Assa Abloy\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.yalehome.com\",\n      \"creator\": \"cosmos18wrgwrrccn49ejv4hstz9czxgw9dc2s2l9f94k\"\n    },\n    {\n      \"vendorID\": 4129,\n      \"vendorName\": \"Legrand Group\",\n      \"companyLegalName\": \"Legrand\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.legrand.com\",\n      \"creator\": \"cosmos1elm6sf9yd2n7y0l0rve4zru0ukanv76vtrjnt3\"\n    },\n    {\n      \"vendorID\": 4151,\n      \"vendorName\": \"NXP Semiconductors\",\n      \"companyLegalName\": \"NXP Semiconductors N.V.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nxp.com\",\n      \"creator\": \"cosmos1ck0arz4kky9l9qtdvqrct7783ffv2yftgmj9ch\"\n    },\n    {\n      \"vendorID\": 4190,\n      \"vendorName\": \"Schneider\",\n      \"companyLegalName\": \"Schneider Electric\",\n      \"companyPreferredName\": \"Schneider Electric\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14kre58wpgterp7t9yy0393ecel9hpz9fnul6pc\"\n    },\n    {\n      \"vendorID\": 4251,\n      \"vendorName\": \"Leviton\",\n      \"companyLegalName\": \"Leviton Manufacturing Company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.leviton.com\",\n      \"creator\": \"cosmos1ypyp8zrqeu64rjmx3u34ghvl64uajr67uams3d\"\n    },\n    {\n      \"vendorID\": 4304,\n      \"vendorName\": \"Qorvo\",\n      \"companyLegalName\": \"Qorvo, Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.qorvo.com/\",\n      \"creator\": \"cosmos1qrpkuzgm7hfejejfyg20g34tjxlt4k8dsspq52\"\n    },\n    {\n      \"vendorID\": 4334,\n      \"vendorName\": \"UEI\",\n      \"companyLegalName\": \"Universal Electronics Inc\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.uei.com/\",\n      \"creator\": \"cosmos1pvrad6x6ettwgudttqd97r9wvarvnj5davpltg\"\n    },\n    {\n      \"vendorID\": 4338,\n      \"vendorName\": \"ubisys\",\n      \"companyLegalName\": \"ubisys technologies GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.ubisys.de\",\n      \"creator\": \"cosmos1rxydw26p5k4f9rtwln6r3srvw4qq9pxnxadr3d\"\n    },\n    {\n      \"vendorID\": 4381,\n      \"vendorName\": \"Comcast Communications\",\n      \"companyLegalName\": \"Comcast\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1xcv4q8sjvf7nw4qj2yt5kledgwyf3ycxw8c0pe\"\n    },\n    {\n      \"vendorID\": 4442,\n      \"vendorName\": \"Nanoleaf\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nanoleaf.me\",\n      \"creator\": \"cosmos1sggrrmw05e6alve8umwdaszade5qxyt53kthud\"\n    },\n    {\n      \"vendorID\": 4447,\n      \"vendorName\": \"Aqara\",\n      \"companyLegalName\": \"Lumi United Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.aqara.com/\",\n      \"creator\": \"cosmos1qpz3ghnqj6my7gzegkftzav9hpxymkx6zdk73v\"\n    },\n    {\n      \"vendorID\": 4448,\n      \"vendorName\": \"Sengled\",\n      \"companyLegalName\": \"Sengled Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1arhkv0n34xylxz9suy73dpyk6de32gpym9l3sw\"\n    },\n    {\n      \"vendorID\": 4456,\n      \"vendorName\": \"Leedarson\",\n      \"companyLegalName\": \"Leedarson IoT Technology Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1mzg0v94yg0cmkjqe2jqsys44tvvfk9mt2d889d\"\n    },\n    {\n      \"vendorID\": 4478,\n      \"vendorName\": \"Feibit\",\n      \"companyLegalName\": \"Shenzhen Feibit Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"Feibit\",\n      \"vendorLandingPageURL\": \"http://www.feibit.com\",\n      \"creator\": \"cosmos162y3ehrqpuu2xjvmgq6qq7yqtdh6mlwh32wv2h\"\n    },\n    {\n      \"vendorID\": 4488,\n      \"vendorName\": \"TP-Link\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tp-link.com\",\n      \"creator\": \"cosmos1jxpj6rr8vnetz9a2ec08az5fwqpuf4zt4hhygv\"\n    },\n    {\n      \"vendorID\": 4492,\n      \"vendorName\": \"Midea Group\",\n      \"companyLegalName\": \"Midea Group\",\n      \"companyPreferredName\": \"Midea\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1a7c8us8jl76f8uue6xf9gzzqklfmfdyh8nedae\"\n    },\n    {\n      \"vendorID\": 4619,\n      \"vendorName\": \"HEIMAN\",\n      \"companyLegalName\": \"Shenzhen Heiman Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos16s4lqhxyqdr5lq6gmfpskjtwjf7dwc0lktn6dt\"\n    },\n    {\n      \"vendorID\": 4631,\n      \"vendorName\": \"Amazon Alexa\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Alexa\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos152v4ejapsjl222zew0ll4eeltc0h2phh5hzpu3\"\n    },\n    {\n      \"vendorID\": 4633,\n      \"vendorName\": \"ORVIBO\",\n      \"companyLegalName\": \"Shenzhen ORVIBO Technology Co.,  Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.orvibo.com\",\n      \"creator\": \"cosmos1u7um30yf68zugm897tgpq7s6vhkhk4t2ykm0hq\"\n    },\n    {\n      \"vendorID\": 4701,\n      \"vendorName\": \"Tuya\",\n      \"companyLegalName\": \"Tuya Global Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos13pwvzq2zk0r3fxuc2a5jhadnx6tda5ar2tcpp9\"\n    },\n    {\n      \"vendorID\": 4735,\n      \"vendorName\": \"Nordic Semiconductor ASA\",\n      \"companyLegalName\": \"Nordic Semiconductor ASA\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.nordicsemi.com\",\n      \"creator\": \"cosmos1eatgwsxtjz0tlchllzasjfcac6m56n30njc3k2\"\n    },\n    {\n      \"vendorID\": 4736,\n      \"vendorName\": \"Siterwell\",\n      \"companyLegalName\": \"Siterwell Electronics Co., Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1u3uhlkepx9dz9asrlucuupw2md2frvkwv583nr\"\n    },\n    {\n      \"vendorID\": 4742,\n      \"vendorName\": \"CoolKit\",\n      \"companyLegalName\": \"SHENZHEN Coolkit Technology CO.,LTD.\",\n      \"companyPreferredName\": \"CoolKit\",\n      \"vendorLandingPageURL\": \"https://www.coolkit.cn/\",\n      \"creator\": \"cosmos18m8lehnvqx8zytn22fkekelt7xgmrl7cga37tl\"\n    },\n    {\n      \"vendorID\": 4751,\n      \"vendorName\": \"EGLO\",\n      \"companyLegalName\": \"EGLO Leuchten GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.eglo.com/en/\",\n      \"creator\": \"cosmos1veu2f7mtgvfw8ezjfmhs64cqyt9wp2weas2rga\"\n    },\n    {\n      \"vendorID\": 4874,\n      \"vendorName\": \"Eve\",\n      \"companyLegalName\": \"Eve Systems GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.evehome.com\",\n      \"creator\": \"cosmos1yh0ld8jl26rgycrtank8slxepmc8xzgyrzv99t\"\n    },\n    {\n      \"vendorID\": 4877,\n      \"vendorName\": \"BouffaloLab\",\n      \"companyLegalName\": \"Bouffalo Lab (Nanjing) Co., Ltd.\",\n      \"companyPreferredName\": \"Bouffalo Lab \",\n      \"vendorLandingPageURL\": \"https://www.bouffalolab.com/\",\n      \"creator\": \"cosmos1l8qwcjgfcnvlmtxrlcjrsmy9068mlck2cw68kx\"\n    },\n    {\n      \"vendorID\": 4882,\n      \"vendorName\": \"Yeelight\",\n      \"companyLegalName\": \"Qingdao Yeelink Information Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Yeelink Information Technology\",\n      \"vendorLandingPageURL\": \"https://en.yeelight.com/#\",\n      \"creator\": \"cosmos18fcq3647dkwur0d0zjyenj8sk57jehq4a8epaf\"\n    },\n    {\n      \"vendorID\": 4891,\n      \"vendorName\": \"Espressif Systems\",\n      \"companyLegalName\": \"Espressif Systems (Shanghai) Co. Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.espressif.com\",\n      \"creator\": \"cosmos1vncrg6hk30kutk4nr26mvyqc92zkygcc7aemzt\"\n    },\n    {\n      \"vendorID\": 4894,\n      \"vendorName\": \"CAME S.p.A.\",\n      \"companyLegalName\": \"CAME S.p.A.\",\n      \"companyPreferredName\": \"CAME S.p.A.\",\n      \"vendorLandingPageURL\": \"https://www.came.com/\",\n      \"creator\": \"cosmos1kxjh94dcvnym6265nmxcjpn9xpkx0y7e3jjeqc\"\n    },\n    {\n      \"vendorID\": 4895,\n      \"vendorName\": \"Longan.link\",\n      \"companyLegalName\": \"Longan Link Tech Co.,LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://longan.link/\",\n      \"creator\": \"cosmos1qnd2v3n0f0ukja8z0jm4jqsqs5qhxa6ncvcxuv\"\n    },\n    {\n      \"vendorID\": 4897,\n      \"vendorName\": \"SONOFF\",\n      \"companyLegalName\": \"Shenzhen Sonoff Technologies Co.,Ltd.\",\n      \"companyPreferredName\": \"SONOFF\",\n      \"vendorLandingPageURL\": \"https://sonoff.tech/\",\n      \"creator\": \"cosmos160c6r8rc2pgpgucasw4ae5gfqtz5vzcc6ay2sz\"\n    },\n    {\n      \"vendorID\": 4915,\n      \"vendorName\": \"Becker Antriebe\",\n      \"companyLegalName\": \"Becker Antriebe GmbH\",\n      \"companyPreferredName\": \"Becker Antriebe\",\n      \"vendorLandingPageURL\": \"https://www.becker-antriebe.com/\",\n      \"creator\": \"cosmos1f6knru06kkxm306ckgs93zs9aqyrk9axgqh5wq\"\n    },\n    {\n      \"vendorID\": 4921,\n      \"vendorName\": \"GE Lighting, a Savant company\",\n      \"companyLegalName\": \"GE Lighting, a Savant company\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.gelighting.com/\",\n      \"creator\": \"cosmos130t4m26ynex82jcgkqguxpffpva05e4zugn0xc\"\n    },\n    {\n      \"vendorID\": 4927,\n      \"vendorName\": \"ASR\",\n      \"companyLegalName\": \"ASR Microelectronics(ShenZhen)Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14a9n65wmumympggqnquu5ptq042ff69nehztk7\"\n    },\n    {\n      \"vendorID\": 4930,\n      \"vendorName\": \"Beken Corporation\",\n      \"companyLegalName\": \"beken\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"http://www.bekencorp.com/\",\n      \"creator\": \"cosmos1aru484uj9dqkpnqg768tl6m66fvz9wkqcg79cw\"\n    },\n    {\n      \"vendorID\": 4932,\n      \"vendorName\": \"Eltako\",\n      \"companyLegalName\": \"Eltako GmbH\",\n      \"companyPreferredName\": \"Eltako\",\n      \"vendorLandingPageURL\": \"https://www.eltako.com\",\n      \"creator\": \"cosmos1n3kqdwqh33grxcnzdeknercyt3wekc5zl4n3dg\"\n    },\n    {\n      \"vendorID\": 4933,\n      \"vendorName\": \"Meross\",\n      \"companyLegalName\": \"Chengdu Meross Technology Co., Ltd.\",\n      \"companyPreferredName\": \"Meross\",\n      \"vendorLandingPageURL\": \"https://www.meross.com\",\n      \"creator\": \"cosmos18qu47pmqwylzm9w2tezyrmvcwmkew5yyvw3d6n\"\n    },\n    {\n      \"vendorID\": 4934,\n      \"vendorName\": \"Rafael\",\n      \"companyLegalName\": \"Rafael Microelectronics, Inc.\",\n      \"companyPreferredName\": \"Rafael\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos14myns7fehcxm2c896k5syhzr7zsyf7g4jdlk08\"\n    },\n    {\n      \"vendorID\": 4937,\n      \"vendorName\": \"Apple Home\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.apple.com/home-app\",\n      \"creator\": \"cosmos1ysl37yl5nmcg8qr64knpscahq5zel3hjtxmvyt\"\n    },\n    {\n      \"vendorID\": 4942,\n      \"vendorName\": \"tado\",\n      \"companyLegalName\": \"tado GmbH\",\n      \"companyPreferredName\": \"tado°\",\n      \"vendorLandingPageURL\": \"https://www.tado.com/\",\n      \"creator\": \"cosmos1sacvh2z4w0f3d657a2tdw2w4ha87743c8qahkv\"\n    },\n    {\n      \"vendorID\": 4943,\n      \"vendorName\": \"mediola\",\n      \"companyLegalName\": \"mediola - connected living AG\",\n      \"companyPreferredName\": \"mediola\",\n      \"vendorLandingPageURL\": \"https://www.mediola.com\",\n      \"creator\": \"cosmos1j2w2zq787mkwltsdhzlxpnm50s8nrvg85u20dh\"\n    },\n    {\n      \"vendorID\": 4945,\n      \"vendorName\": \"HooRii Technology\",\n      \"companyLegalName\": \"HooRii Technology CO., LTD\",\n      \"companyPreferredName\": \"HooRii Technology\",\n      \"vendorLandingPageURL\": \"https://www.hoorii.io/\",\n      \"creator\": \"cosmos1etk35ufz9z4x56t63tap7ncsvk5k5zw2npmlcu\"\n    },\n    {\n      \"vendorID\": 4957,\n      \"vendorName\": \"Nuki\",\n      \"companyLegalName\": \"Nuki Home Solutions GmbH\",\n      \"companyPreferredName\": \"Nuki\",\n      \"vendorLandingPageURL\": \"https://nuki.io\",\n      \"creator\": \"cosmos1tdslga3va6luqzy2x3nlwxfh80f99vly5800ls\"\n    },\n    {\n      \"vendorID\": 4962,\n      \"vendorName\": \"deveritec GmbH\",\n      \"companyLegalName\": \"deveritec GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://deveritec.de\",\n      \"creator\": \"cosmos19740ad8368h0h33rcu6gugtxgvyuws7puqg0za\"\n    },\n    {\n      \"vendorID\": 4965,\n      \"vendorName\": \"Dooya\",\n      \"companyLegalName\": \"Ningbo Dooya Mechanic \\u0026 Electronic Technology Co.,Ltd\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1pqypa94grwkmk2d7e0ncdctfav5wyycu787tmk\"\n    },\n    {\n      \"vendorID\": 4974,\n      \"vendorName\": \"Ambi Labs Limited\",\n      \"companyLegalName\": \"Ambi Labs Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos12st2nx5elvkyswv7nqw6xh6j67vg472lcv0299\"\n    },\n    {\n      \"vendorID\": 4977,\n      \"vendorName\": \"Tridonic\",\n      \"companyLegalName\": \"Tridonic GmbH \\u0026 Co KG\",\n      \"companyPreferredName\": \"Tridonic\",\n      \"vendorLandingPageURL\": \"https://www.tridonic.com/matter\",\n      \"creator\": \"cosmos16ad3em3nrqzf854p03audmgdl3pc384467yzav\"\n    },\n    {\n      \"vendorID\": 4978,\n      \"vendorName\": \"innovation matters\",\n      \"companyLegalName\": \"innovation matters iot GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.innovation-matters.at/\",\n      \"creator\": \"cosmos1v6x4nte50al0jjynvldwqse9n4ceajmja3wvph\"\n    },\n    {\n      \"vendorID\": 4991,\n      \"vendorName\": \"NEO\",\n      \"companyLegalName\": \"Shenzhen NEO Electronic CO\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18cvsug5mc7vj9a6kxaj0fwp99vj9ga3xd3lnql\"\n    },\n    {\n      \"vendorID\": 4993,\n      \"vendorName\": \"Amazon Prime Video\",\n      \"companyLegalName\": \"Amazon.com, Inc.\",\n      \"companyPreferredName\": \"Amazon Prime Video\",\n      \"vendorLandingPageURL\": \"https://www.amazon.com\",\n      \"creator\": \"cosmos1akrkaxvlfwnnk2phtxewadmel4s567wr8xmfj8\"\n    },\n    {\n      \"vendorID\": 4996,\n      \"vendorName\": \"Apple Keychain\",\n      \"companyLegalName\": \"Apple Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://support.apple.com/en-us/HT213441\",\n      \"creator\": \"cosmos1qqgp6p73z0lku4qzeajgtxtzy24xx467j0v0kp\"\n    },\n    {\n      \"vendorID\": 4998,\n      \"vendorName\": \"Skylux\",\n      \"companyLegalName\": \"Skylux N.V.\",\n      \"companyPreferredName\": \"Skylux\",\n      \"vendorLandingPageURL\": \"https://www.skylux.eu\",\n      \"creator\": \"cosmos1f9haxa732cy6rmm3nc88q9fxx9zv0m0qn3kzcm\"\n    },\n    {\n      \"vendorID\": 4999,\n      \"vendorName\": \"Qianyan\",\n      \"companyLegalName\": \"Shenzhen Qianyan Technology LTD\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos10plhr0fh27nred7nra3s6dld26gzcw6etje4gk\"\n    },\n    {\n      \"vendorID\": 5002,\n      \"vendorName\": \"Nature\",\n      \"companyLegalName\": \"Nature Inc.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://nature.global/\",\n      \"creator\": \"cosmos1yvwf85sx9mp53kptfwfz49cmmznvj2j0efavzu\"\n    },\n    {\n      \"vendorID\": 5009,\n      \"vendorName\": \"Kasa\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.kasasmart.com\",\n      \"creator\": \"cosmos1fjwwzm8zs9yc2hq73tqggdylcmm0ujmuc7x9wn\"\n    },\n    {\n      \"vendorID\": 5010,\n      \"vendorName\": \"Tapo\",\n      \"companyLegalName\": \"TP-Link Corporation Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.tapo.com\",\n      \"creator\": \"cosmos1acw4mmmf26e7jkxqm5epu7g56tcgz0walk3vs8\"\n    },\n    {\n      \"vendorID\": 5015,\n      \"vendorName\": \"SwitchBot\",\n      \"companyLegalName\": \"Woan Technology (Shenzhen) Co., Ltd. \",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1dc9patujyr2av2ezggudfalfag7p7scc0t3wnk\"\n    },\n    {\n      \"vendorID\": 5020,\n      \"vendorName\": \"Zemismart Technology Limited\",\n      \"companyLegalName\": \"Zemismart Technology Limited\",\n      \"companyPreferredName\": \"Zemismart\",\n      \"vendorLandingPageURL\": \"https://www.zemismart.com\",\n      \"creator\": \"cosmos1mrv5zh6r6kcfln34vju5kfup4mv9lw27u33yj0\"\n    },\n    {\n      \"vendorID\": 5120,\n      \"vendorName\": \"Uascent\",\n      \"companyLegalName\": \"Uascent Technology Company Limited\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1ynw4zl6xqnvh5zhzhhpxjc6kt8z8wvxkp8edsw\"\n    },\n    {\n      \"vendorID\": 5123,\n      \"vendorName\": \"Arlec Australia\",\n      \"companyLegalName\": \"Arlec Australia Pty. Ltd.\",\n      \"companyPreferredName\": \"Grid Connect\",\n      \"vendorLandingPageURL\": \"https://grid-connect.com.au/\",\n      \"creator\": \"cosmos1d9ut0ysdlw68r0705q8tagf7y9cf3d686fpf73\"\n    },\n    {\n      \"vendorID\": 5124,\n      \"vendorName\": \"Phaten\",\n      \"companyLegalName\": \"Shenzhen Phaten Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.phaten.com\",\n      \"creator\": \"cosmos1h4rf0hjzf498s2lu0rf8m52ujst2gl7lpdnexs\"\n    },\n    {\n      \"vendorID\": 5127,\n      \"vendorName\": \"ThirdReality\",\n      \"companyLegalName\": \"Jiangsu Shushi Technology Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1qwnh6tj4n938g3fmncqna22zmfxx50vnd22yux\"\n    },\n    {\n      \"vendorID\": 5136,\n      \"vendorName\": \"Quectel\",\n      \"companyLegalName\": \"Quectel Wireless Solutions Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.quectel.com\",\n      \"creator\": \"cosmos1dqrg6w2jjs7sft59dpqngjzyfdjh4xjn5rjct5\"\n    },\n    {\n      \"vendorID\": 5139,\n      \"vendorName\": \"1Home\",\n      \"companyLegalName\": \"1Home Solutions GmbH\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"https://www.1home.io/\",\n      \"creator\": \"cosmos1nzyp28afpumk0djal2w35s2pcl0q3e57euplkq\"\n    },\n    {\n      \"vendorID\": 5141,\n      \"vendorName\": \"Caveman\",\n      \"companyLegalName\": \"Nanoleaf Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1smgmnl90h9srczk926l5kt7rydjpq7x0smc5e7\"\n    },\n    {\n      \"vendorID\": 5145,\n      \"vendorName\": \"Lorex\",\n      \"companyLegalName\": \"Lorex Technology Inc.\",\n      \"companyPreferredName\": \"Lorex\",\n      \"vendorLandingPageURL\": \"https://www.lorex.com/\",\n      \"creator\": \"cosmos1c98nn3uphuya0w4km5uzamjwpkawksf5g6h5m5\"\n    },\n    {\n      \"vendorID\": 5147,\n      \"vendorName\": \"Rang Dong VN\",\n      \"companyLegalName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"companyPreferredName\": \"Rang Dong Light Source \\u0026 Vacuum Flask JSC\",\n      \"vendorLandingPageURL\": \"https://rangdong.com.vn/\",\n      \"creator\": \"cosmos1023z8vredmrn7xlzjlrlv6wdqh0fpzs8jlc9rx\"\n    },\n    {\n      \"vendorID\": 5150,\n      \"vendorName\": \"TUO Accessories LLC\",\n      \"companyLegalName\": \"TUO Accessories LLC\",\n      \"companyPreferredName\": \"TUO Accessories\",\n      \"vendorLandingPageURL\": \"http://tuoaccessories.com\",\n      \"creator\": \"cosmos1vn34dnlqvz5e997ws53yfj6a2622duzf3gg80d\"\n    },\n    {\n      \"vendorID\": 5151,\n      \"vendorName\": \"Ductech\",\n      \"companyLegalName\": \"DUCTECH Co., Ltd.\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos18nqp48ce5k7j8qvuwk7tnzmckwsd8k2tlnj850\"\n    },\n    {\n      \"vendorID\": 5165,\n      \"vendorName\": \"QH\",\n      \"companyLegalName\": \"Zhongshan QIHANG Electronic Technology Co.\",\n      \"companyPreferredName\": \"QIHANG\",\n      \"vendorLandingPageURL\": \"https://zsqhkj.1688.com/\",\n      \"creator\": \"cosmos13zzg6t6gaz36p8ctguatrguwuep9wmza6lptet\"\n    },\n    {\n      \"vendorID\": 5167,\n      \"vendorName\": \"QIACHIP\",\n      \"companyLegalName\": \"Shenzhen QIACHIP Wireless E-commerce Co.\",\n      \"companyPreferredName\": \"QIACHIP\",\n      \"vendorLandingPageURL\": \"https://qiachip.com\",\n      \"creator\": \"cosmos1rhjya3hdvpyr2a3ur7s5hj48ce2qndyfcz07ht\"\n    },\n    {\n      \"vendorID\": 24582,\n      \"vendorName\": \"Google LLC\",\n      \"companyLegalName\": \"Google LLC\",\n      \"companyPreferredName\": \"\",\n      \"vendorLandingPageURL\": \"\",\n      \"creator\": \"cosmos1kelvhh6cy2vmaj5zczxj52k4nys2w4e2u3awvq\"\n    }\n  ],\n  \"pagination\": {\n    \"next_key\": null,\n    \"total\": \"73\"\n  }\n}\n\n<!-- File: lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/berry-configuration.json)\n\n<!-- File: lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md (Tokens: ~300 | Category: anthropic-skill) -->\n# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/CHANGELOG.md)\n\n<!-- File: lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Skiars.berry-1.2.0 Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/package.json)\n\n<!-- File: lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Syntaxes Skill\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/syntaxes/berry.json)\n\n<!-- File: tasmota/berry/extensions/Devices_Online/manifest.json (Tokens: ~61 | Category: anthropic-skill) -->\n{\n  \"name\": \"Devices Online\",\n  \"version\": \"0x1A040900\",\n  \"description\": \"Display devices online info\",\n  \"author\": \"Theo Arends\",\n  \"min_tasmota\": \"0x09040000\",\n  \"features\": \"\"\n}\n\n<!-- File: tasmota/berry/extensions/Leds_Panel/manifest.json (Tokens: ~70 | Category: anthropic-skill) -->\n{\n  \"name\": \"Leds Panel\",\n  \"version\": \"0x19090100\",\n  \"description\": \"Realtime display of the WS2812 leds in browser\",\n  \"author\": \"Stephan Hadinger\",\n  \"min_tasmota\": \"0x0F000100\",\n  \"features\": \"\"\n}\n\n<!-- File: tasmota/berry/extensions/LoRaWan_Decoders/changelog.md (Tokens: ~300 | Category: anthropic-skill) -->\n# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/changelog.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/changelog.md)\n\n<!-- File: tasmota/berry/extensions/LoRaWan_Decoders/manifest.json (Tokens: ~300 | Category: anthropic-skill) -->\n# LoRaWan_Decoders Skill\n\nPath: `tasmota/berry/extensions/LoRaWan_Decoders/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/LoRaWan_Decoders/manifest.json)\n\n<!-- File: tasmota/berry/extensions/LVGL_Panel/manifest.json (Tokens: ~79 | Category: anthropic-skill) -->\n{\n  \"name\": \"LVGL Panel\",\n  \"version\": \"0x1A030301\",\n  \"description\": \"Realtime mirror of the LVGL display in browser\",\n  \"author\": \"Stephan Hadinger & Milko Daskalov\",\n  \"min_tasmota\": \"0x0F030002\",\n  \"features\": \"display\"\n}\n\n<!-- File: tasmota/berry/extensions/Partition_Wizard/manifest.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Partition_Wizard Skill\n\nPath: `tasmota/berry/extensions/Partition_Wizard/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Partition_Wizard/manifest.json)\n\n<!-- File: tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json (Tokens: ~300 | Category: anthropic-skill) -->\n# Wifi_Heap_Sticker Skill\n\nPath: `tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/tasmota/berry/extensions/Wifi_Heap_Sticker/manifest.json)\n\n<!-- File: tools/decode-config.md (Tokens: ~53 | Category: anthropic-skill) -->\nA tool to backup and restore the configuration of [Tasmota](http://tasmota.com/)-devices.\n\n## decode-config has moved to [https://github.com/tasmota/decode-config](https://github.com/tasmota/decode-config)\n\n<!-- File: tools/fw_TasmotaClient_arduino/TasmotaClient/library.json (Tokens: ~96 | Category: anthropic-skill) -->\n{\n    \"name\": \"TasmotaClient\",\n    \"version\": \"0.0.2\",\n    \"keywords\": [\n      \"serial\", \"io\", \"TasmotaClient\"\n    ],\n    \"description\": \"TasmotaClient Driver Library\",\n    \"repository\":\n    {\n        \"type\": \"git\",\n        \"url\": \"https://github.com/andrethomas/TasmotaSlave\"\n    },\n    \"frameworks\": \"arduino\"\n}\n\n<!-- File: lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md (Tokens: ~300 | Category: plugin-manifest) -->\n# tasmota.animation-dsl-1.2.1 Documentation\n\nPath: `lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry_animation/tools/tasmota.animation-dsl-1.2.1/README.md)\n\n<!-- File: lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md (Tokens: ~300 | Category: plugin-manifest) -->\n# skiars.berry-1.2.0 Documentation\n\nPath: `lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md`\n\n[View Raw Content on GitHub](https://raw.githubusercontent.com/arendst/Tasmota/HEAD/lib/libesp32/berry/tools/plugins/vscode/skiars.berry-1.2.0/README.md)\n\n<!-- File: tools/fw_ShellyDimmer_stm32/README.md (Tokens: ~98 | Category: plugin-manifest) -->\nAn open-source firmware for the STM32 co-processor on the Shelly Dimmer by James Turton.\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n\n# Pre-build binary\nSee the [releases](https://github.com/jamesturton/shelly-dimmer-stm32/releases) page to download the latest pre-build binary.\n\n<!-- File: tools/fw_SonoffZigbeeBridge_ezsp/readme.md (Tokens: ~742 | Category: plugin-manifest) -->\n# EmberZNet NCP UART EZSP firmware\n\n## EmberZNet NCP UART EZSP firmware signed for Sonoff ZBBridge\n\n### Currently recommended versions\n\n- `ncp-uart-sw-6.7.8_115200.ota` - NEW: The current and recommended stable version for EZSP v8 compatible hosts.\n\n- `ncp-uart-nsw_6.7.9_115200.ota` - has some additional bug fixes and is under testing.\n\n### Archived versions\n\n- `ncp-uart-sw_6.7.6_115200.ota` - OLD: Original version for EZSP v8 compatible hosts, (contains a bug that can cause battery of IKEA and Philips remotes to drain).\n- `ncp-uart-sw_6.5.5_115200.ota` - LEGACY: Legacy version for older EZSP v7 compatible hosts.\n\n## EFR32, EmberZNet and EZSP Protocol Versions\n\nEZSP stands for \"EmberZNet Serial Protocol\" which is the default serial interface used in compatible Zigbee coordinator firmware for the Silicon Labs EFR32 hardware family such as the EFR32MG21/MGM210 and EFR32MG12/MGM12 series.\n\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg21-series-2-modules\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-socs\n- https://www.silabs.com/wireless/zigbee/efr32mg12-series-1-modules\n\nSilicon Labs do not currently have a consolidated list of changes by EmberZNet SDK or EZSP protocol versions. The EZSP additions, changes and deletions have only ever been listed in the [Zigbee EmberZNet Release Notes](https://www.silabs.com/search#q=Zigbee%20EmberZNet%20Release%20Notes&t=All&sort=relevancy) (EmberZNet SDK) under the \"New items\" section as well as the matching UG100 EZSP Reference Guide included with each EmberZNet SDK release.\n\nThe largest change was between EZSP v4 (first added in EmberZNet 4.7.2 SDK) and EZSP v5 that was added in EmberZNet 5.9.0 SDK which requires the Legacy Frame ID 0xFF. The change from EZSP v5 to EZSP v6 was done in EmberZNet 6.0.0 SDK. The change from EZSP v6 to EZSP v7 was in EmberZNet 6.4.0 SDK. EmberZNet 6.7.0 SDK added EZSP v8 (and Secure EZSP Protocol Version 2).\n\nPerhaps more important to know is that EZSP v5, v6 and v7 (EmberZNet 6.6.x.x) use the same framing format, but EmberZNet 6.7.x.x/EZSP v8 introduced new framing format and expanded command id field from 8 bits to 16 bits.\n\nSee Silabs [Zigbee & Thread Knowledge Base Articles List](https://silabs-prod.adobecqms.net/community/wireless/zigbee-and-thread/knowledge-base.entry.html/2020/04/01/zigbee_thread_knowledgebasearticleslist-ih5r) for background information.\n\n<!-- File: tools/fw_TasmotaClient_arduino/TasmotaClient/README.md (Tokens: ~146 | Category: plugin-manifest) -->\n# TasmotaClient\n\nThis library adds support for the TasmotaClient driver integrated into Tasmota from https://github.com/arendst/Tasmota\n\nRead the TasmotaClient wiki article on the Tasmota wiki from https://tasmota.github.io/docs/#/TasmotaSlave to see how to enable support for this library inside Tasmota.\n\nEdit:(docs are not up to date and dokuments the old TasmotaSlave comands) (2020-11-21)\n# Change Log\n\n### 2019-11-29 - v0.0.2 (Pre-release)\n\n- Add support for sending commands to Tasmota using ExecuteCommand(char *cmnd)\n\n<!-- File: tools/qemu/README.md (Tokens: ~1728 | Category: plugin-manifest) -->\n# Running Tasmota (ESP32) under QEMU\n\n`tasmota-qemu.sh` (in `tools/qemu/`) builds a Tasmota ESP32 firmware with PlatformIO and\nboots it under an Espressif QEMU fork on an amd64 host — serial console always, and a\n**browsable web UI** when the WiFi-capable fork is used.\n\nIt builds the **current checkout** (your local changes), not a fresh clone. Build\nartifacts and the QEMU forks live under `tasmota-qemu/` at the repo root (gitignored).\nExamples below assume you run it from `tools/qemu/`; from the repo root use\n`tools/qemu/tasmota-qemu.sh …` — either works, paths resolve the same.\n\n## Quick start\n\nNetworked Tasmota with a reachable web UI, in one command:\n\n```bash\nNET_WIFI=1 ./tasmota-qemu.sh        # build -> image -> wifi QEMU -> boot, joins emulated AP\n# then browse:\nopen http://localhost:8080\n```\n\nFirst run is slow: it clones Tasmota, pulls the toolchain, compiles the firmware, and\nclones + builds the QEMU fork. Subsequent runs are cached.\n\nSerial-only (no network, stock QEMU, fastest path):\n\n```bash\n./tasmota-qemu.sh                   # stock fork, serial console only\n```\n\n## Commands\n\n```\n./tasmota-qemu.sh [command]\n  build        Compile Tasmota firmware (PlatformIO env $TASMOTA_ENV)\n  make-image   Build the QEMU flash image (factory.bin, or merge raw parts)\n  qemu-setup   Clone + build the chosen QEMU fork\n  run          Boot the firmware in QEMU (serial tee'd to qemu.log)\n  smoketest    Boot a minimal Arduino app (same IDF) to sanity-check QEMU itself\n  decode [log] Symbolize the last panic backtrace from a log (default: qemu.log)\n  all          build -> make-image -> qemu-setup -> run   (default)\n```\n\n## Key environment variables\n\n| Variable          | Default              | Meaning |\n|-------------------|----------------------|---------|\n| `NET_WIFI`        | `0`                  | `1` = one-shot networked recipe (see below) |\n| `WIFI_SSID`       | `Open Wifi`          | AP the firmware joins when `NET_WIFI=1` |\n| `WIFI_PASS`       | *(empty)*            | password for that AP (the emulated one is open) |\n| `NET_WIFI_ENV`    | `tasmota32solo1`     | env used by `NET_WIFI=1` |\n| `TASMOTA_ENV`     | `tasmota32`          | PlatformIO env (must be an ESP32 one) |\n| `MINIMAL`         | `0`                  | `1` = build the stripped `tasmota32-safeboot` env |\n| `QEMU_VARIANT`    | `stock`              | `stock` (no WiFi) or `wifi` (Ebiroll/calib fork) |\n| `FLASH_SIZE`      | `4MB`                | `2MB`/`4MB`/`8MB`/`16MB` only |\n| `WEB_PORT_HOST`   | `8080`               | host port forwarded to guest `:80` |\n| `USE_SYSTEM_QEMU` | `0`                  | `1` = use `qemu-system-xtensa` from `PATH` |\n| `INSTALL_DEPS`    | `0`                  | `1` = apt-get the QEMU build deps (needs sudo) |\n\n## How `NET_WIFI=1` works\n\nGetting a networked Tasmota into QEMU needs three things to line up; `NET_WIFI=1`\nsets all of them:\n\n1. **Survive early IDF init** — the full dual-core `tasmota32` build panics in\n   `esp_timer_impl_init` under QEMU (null interrupt vector). The **unicore\n   `tasmota32solo1`** build does not, so `NET_WIFI=1` selects it.\n2. **Survive WiFi bring-up** — Tasmota's WiFi blobs poke RF registers (`0x6003xxxx`)\n   that the **stock** QEMU does not emulate (`LoadStorePIFAddrError`). The\n   **`wifi` fork** (Ebiroll/calib) emulates them, so `NET_WIFI=1` forces\n   `QEMU_VARIANT=wifi`.\n3. **Get an IP the host can reach** — that fork advertises one open AP named\n   **`Open Wifi`**. `NET_WIFI=1` writes station credentials into a managed block in\n   `tasmota/user_config_override.h`, so the firmware joins it in station mode, gets a\n   slirp DHCP lease (`10.0.2.15`), and the `:8080 -> :80` port-forward becomes routable.\n\nThe credential block is delimited and idempotent — re-running rewrites only that block\nand leaves the rest of `user_config_override.h` intact.\n\n## Debugging a panic\n\nThe `run` step boots with `-no-reboot` (QEMU exits on the first guest reset instead of\nlooping) and tees the serial console to `tasmota-qemu/qemu.log`. To symbolize the last\npanic:\n\n```bash\n./tasmota-qemu.sh decode                 # decodes tasmota-qemu/qemu.log\n./tasmota-qemu.sh decode some-other.log  # decodes a specific log\n```\n\n`decode` strips the `0xffffffff` sentinel frame, takes the PC of each `pc:sp` pair, and\nruns `addr2line` against the matching `firmware.elf`. Frames in app flash\n(`0x4018xxxx`+) are the useful ones. Addresses that resolve to `??` are inside the\nclosed-source WiFi/BT blobs (no symbols) — usually a sign the firmware touched radio\nhardware the emulator doesn't model.\n\nIs it QEMU or the firmware? Run `./tasmota-qemu.sh smoketest`: it builds a minimal Arduino\napp with the *same* IDF/toolchain and boots it. If the minimal app runs, QEMU is fine\nand the problem is in the Tasmota build.\n\n## Web UI: only `/` loads, sub-pages give `ERR_EMPTY_RESPONSE`\n\nThis is expected on first use and is **not** a crash. Tasmota's referer check only\naccepts a `Referer` whose host is its own hostname or local IP (`10.0.2.15`). Through\nthe host port-forward your browser sends `Referer: http://localhost:8080/`, whose host\nis `localhost` — matching neither — so every page past `/` is dropped with an empty\nresponse.\n\nWith `NET_WIFI=1` this is handled automatically: a background watcher waits for the web\nserver to come up and issues `SetOption128 1` for you, so the UI is clickable out of the\nbox. If you ever need to do it by hand (e.g. you ran a plain `run` on a fresh image):\n\n```bash\n./tasmota-qemu.sh fixui          # sends SetOption128 1 (disable referer check)\n```\n\nThe setting persists to flash. A fresh `make-image` wipes flash, but the next\n`NET_WIFI=1` run re-applies it automatically.\n\n## Caveats\n\n- The `wifi` fork is older than the firmware's IDF; its RF-register model is good enough\n  to associate but is not a full WiFi stack.\n- `stock` + a real Tasmota build will boot to a serial console but the web UI will not\n  respond (no WiFi emulation). Use `NET_WIFI=1` for network access.\n- Stop a running QEMU with `Ctrl-A` then `X`, or:\n  `for p in $(pgrep -f qemu-system-xtensa); do kill -9 $p; done`\n</yakaai_skills>"}