{
 "name": "Hardware Matrix compatibility dataset",
 "license": "https://creativecommons.org/licenses/by-sa/4.0/",
 "dataset_modified": "2026-08-27T10:58:26+05:30",
 "device_count": 177,
 "devices": [
  {
   "entry_id": "sh-aqara-p2-ha",
   "device_name": "Door and Window Sensor P2",
   "device_brand": "Aqara",
   "target_platform": "Home Assistant (Matter / Thread)",
   "protocol": "Matter over Thread",
   "bridge_required": false,
   "border_router_needed": "OpenThread Border Router (SkyConnect / HomePod)",
   "reset_sequence": "Press and hold the reset button for 10 seconds until the blue LED flashes three times.",
   "primary_entities": [
    "Binary Sensor (Contact)",
    "Tamper Sensor",
    "Battery Percentage"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Aqara Door and Window Sensor P2 is natively supported in Home Assistant via Matter over Thread with zero bridge required when an OpenThread Border Router is present. State changes are reported over the local Thread mesh rather than through a cloud service.",
   "local_operation": "Operates 100% offline via local Thread IPv6 mesh network even if your home WAN connection drops.",
   "power_and_wiring": "Powered by 1x CR123A battery. Expected life varies with trigger frequency, temperature and reporting interval.",
   "connectivity": "Acts as an end-device node on the Thread mesh; requires a powered Thread router (such as a smart plug) to extend range.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-hue-outdoor-ha",
   "device_name": "Outdoor Motion & Lux Sensor",
   "device_brand": "Philips Hue",
   "target_platform": "Home Assistant (ZHA)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "None (Standard Zigbee Coordinator)",
   "reset_sequence": "Hold setup button on rear for 10 seconds until LED flashes orange then red.",
   "primary_entities": [
    "Motion Binary Sensor",
    "Illuminance Lux",
    "Temperature Sensor",
    "Battery Level"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The Philips Hue Outdoor Motion Sensor pairs directly with Home Assistant over Zigbee 3.0 through ZHA or Zigbee2MQTT, with no Philips Hue Bridge required. It needs a Zigbee coordinator and its integration configured first, after which it exposes motion, illuminance, temperature and battery entities locally.",
   "local_operation": "Executes all motion automation rules locally on the Home Assistant host, with no cloud round-trip in the path.",
   "power_and_wiring": "Runs on 2x AA batteries. Expected life varies with motion activity, outdoor temperature and reporting frequency.",
   "connectivity": "Acts as a Zigbee End Device (ZED). Connects to nearby mains-powered Zigbee routers for mesh extension.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-sonoff-zbmini-st",
   "device_name": "ZBMINI R2 Smart Switch Relay",
   "device_brand": "SONOFF",
   "target_platform": "Samsung SmartThings",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "SmartThings Station / Hub v3",
   "reset_sequence": "Press and hold the pairing button for 5 seconds until the green LED blinks rapidly.",
   "primary_entities": [
    "Switch Binary State",
    "Power-on Restore State",
    "External Switch Mode"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The SONOFF ZBMINI R2 Smart Switch Relay is natively supported on Samsung SmartThings using official Zigbee Edge Drivers. It enables local in-wall switch control behind existing light switches.",
   "local_operation": "Executes automations locally on the SmartThings Hub via Edge Driver local runtime.",
   "power_and_wiring": "Mains powered (AC 100-240V). Draws under 0.2W standby power.",
   "connectivity": "Functions as a full Zigbee Router node strengthening the Zigbee mesh network for nearby battery devices.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "100–240V AC 50/60Hz",
   "gpio_logic_voltage": null,
   "ingress_protection": "PC V0 flame-retardant housing",
   "peak_current": "10A max / 2400W",
   "spec_source": "SONOFF ZBMINIR2 specifications"
  },
  {
   "entry_id": "sh-ring-doorbell-alexa",
   "device_name": "Video Doorbell Pro 2",
   "device_brand": "Ring",
   "target_platform": "Amazon Alexa Ecosystem",
   "protocol": "Wi-Fi 2.4/5GHz",
   "bridge_required": false,
   "border_router_needed": "Ring Bridge optional (Direct Wi-Fi)",
   "reset_sequence": "Press and hold the orange reset button on the side of the doorbell for 15 seconds.",
   "primary_entities": [
    "Live 1536p Video Stream",
    "3D Motion Sensor",
    "Doorbell Chime Press"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The Ring Video Doorbell Pro 2 works with Amazon Alexa for live video streaming and automatic Echo Show chime announcements, once the Ring account is linked. That link is a cloud authorisation step, and the video path runs through Ring's service rather than your own network.",
   "local_operation": "Requires active internet connection to stream video feeds to Echo Show displays via Ring Cloud API.",
   "power_and_wiring": "Hardwired via 16-24VAC transformer (or 24VDC Ring Plug-In Adapter).",
   "connectivity": "Communicates directly over Wi-Fi 2.4GHz/5GHz bands. Benefit from a Wi-Fi mesh network for outdoor range.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-tuya-plug-hk",
   "device_name": "16A Smart Energy Plug",
   "device_brand": "Tuya",
   "target_platform": "Apple HomeKit (via Homebridge/Z2M)",
   "protocol": "Zigbee 3.0",
   "bridge_required": true,
   "border_router_needed": "Zigbee2MQTT Coordinator + Homebridge",
   "reset_sequence": "Press and hold the power button for 5 seconds until the status indicator blinks rapidly.",
   "primary_entities": [
    "Switch State",
    "Real-time Power (W)",
    "Voltage (V)",
    "Current (mA)"
   ],
   "setup_complexity": "Advanced YAML",
   "overview_summary": "The Tuya 16A Smart Energy Plug requires a bridge (Zigbee2MQTT with Homebridge or Home Assistant HomeKit integration) to pair with Apple Home. Once bridged Siri controls on/off state and energy monitoring.",
   "local_operation": "Once exposed to HomeKit via local Homebridge/MQTT Siri voice commands and automations function locally.",
   "power_and_wiring": "Mains powered (AC 110-240V). This entry covers the 16A class — confirm the rating printed on your own unit.",
   "connectivity": "Operates as a high-power Zigbee mesh router to extend network coverage throughout rooms.",
   "mains_voltage": true,
   "white_label": true,
   "verdict_badge": "Bridge Needed",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-nest-thermostat-gh",
   "device_name": "Learning Thermostat (3rd Gen)",
   "device_brand": "Google Nest",
   "target_platform": "Google Home",
   "protocol": "Wi-Fi & Bluetooth",
   "bridge_required": false,
   "border_router_needed": "Google Home Hub / Nest Hub",
   "reset_sequence": "On display navigate to Settings -> Reset -> All Settings and confirm reset code.",
   "primary_entities": [
    "Climate Target Temperature",
    "Current Temperature",
    "HVAC Action Mode",
    "Eco State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Google Nest Learning Thermostat 3rd Gen is natively supported in Google Home with deep cloud integration and voice control via Google Assistant. It automates HVAC heating/cooling cycles based on occupancy.",
   "local_operation": "Requires active internet link to sync remote schedule changes and weather forecasting from Google Cloud.",
   "power_and_wiring": "Internal rechargeable Lithium-ion battery charged continuously via 24VAC HVAC C-wire power.",
   "connectivity": "Uses Wi-Fi for internet connectivity and internal Bluetooth for initial onboarding setup.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-eufy-cam-ha",
   "device_name": "eufyCam 2C Wireless Camera",
   "device_brand": "eufy",
   "target_platform": "Home Assistant (WebRTC / RTSP)",
   "protocol": "Wi-Fi & Sub-1G",
   "bridge_required": true,
   "border_router_needed": "eufy HomeBase 2",
   "reset_sequence": "Press and hold the SYNC button on top of camera until a short beep sounds.",
   "primary_entities": [
    "RTSP H.264 Stream",
    "Motion Binary Sensor",
    "Battery Level",
    "Spotlight Switch"
   ],
   "setup_complexity": "Advanced YAML",
   "overview_summary": "The eufyCam 2C requires the eufy HomeBase 2 and custom HACS integration to stream into Home Assistant. Video streams can be pulled locally via RTSP once initial authentication token is synced.",
   "local_operation": "Local RTSP video streaming functions locally during internet outages after token initialization.",
   "power_and_wiring": "Rechargeable built-in battery. Runtime per charge varies with recording frequency, streaming time and temperature.",
   "connectivity": "Communicates with HomeBase 2 via proprietary low-power Sub-1GHz wireless protocol; HomeBase connects to LAN.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Bridge Needed",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-shelly-1pm-ha",
   "device_name": "Shelly Plus 1PM Switch Relay",
   "device_brand": "Shelly",
   "target_platform": "Home Assistant (Native RPC)",
   "protocol": "Wi-Fi 2.4GHz",
   "bridge_required": false,
   "border_router_needed": "None (Direct Local Wi-Fi)",
   "reset_sequence": "Press and hold the physical reset button for 10 seconds or toggle attached switch 5 times within 60s of power-on.",
   "primary_entities": [
    "Relay Switch",
    "Power (W)",
    "Energy (kWh)",
    "Internal Device Temp",
    "Overload Alarm"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Shelly Plus 1PM is natively supported in Home Assistant with instant zero-cloud auto-discovery via local RPC WebSocket protocol. It provides sub-40ms relay switching and power metering.",
   "local_operation": "100% local operation with zero cloud dependency using native Shelly Home Assistant integration.",
   "power_and_wiring": "Mains powered (AC 110-240V / DC 24V). Over-temperature and over-power safety shutoff built-in.",
   "connectivity": "Connects directly to 2.4GHz Wi-Fi network; includes built-in Wi-Fi range extender capability.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "110–240V AC 50/60Hz",
   "gpio_logic_voltage": null,
   "ingress_protection": "Indoor use, −20°C to +40°C",
   "peak_current": "16A / 3680W max load",
   "spec_source": "Shelly Plus 1PM specifications"
  },
  {
   "entry_id": "sh-aqara-fp2-ha",
   "device_name": "Presence Sensor FP2",
   "device_brand": "Aqara",
   "target_platform": "Home Assistant",
   "protocol": "Wi-Fi (Local API)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press and hold the reset button on the back for 10 seconds until the yellow LED flashes rapidly.",
   "primary_entities": [
    "Binary Sensor (Presence)",
    "Light Sensor (Lux)",
    "Zone Occupancy"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The Aqara FP2 uses mmWave radar technology for precise presence detection in Home Assistant via the local API without cloud reliance.",
   "local_operation": "Fully local operation via local API.",
   "power_and_wiring": "Hardwired USB-C.",
   "connectivity": "N/A",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-kasa-ep25-hk",
   "device_name": "EP25 Smart Plug",
   "device_brand": "TPLink Kasa",
   "target_platform": "Apple HomeKit",
   "protocol": "Wi-Fi (HomeKit)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press and hold the power button on the side for 10 seconds until the LED flashes amber and blue.",
   "primary_entities": [
    "Switch (Power)",
    "Energy Monitoring (Watts)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Kasa EP25 provides native HomeKit support allowing local control of devices and power monitoring in the Home app.",
   "local_operation": "100% local via HomeKit framework.",
   "power_and_wiring": "Mains powered.",
   "connectivity": "N/A",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "120V AC",
   "gpio_logic_voltage": null,
   "ingress_protection": "Indoor use only; UL certified flame retardant",
   "peak_current": "15A / 1800W",
   "spec_source": "Kasa EP25 specifications"
  },
  {
   "entry_id": "sh-tuya-zgb-temp-ha",
   "device_name": "Zigbee Temperature & Humidity Sensor",
   "device_brand": "Tuya",
   "target_platform": "Home Assistant (ZHA)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "None (Zigbee Coordinator)",
   "reset_sequence": "Press and hold the reset button on the side with a pin for 5 seconds until the LED flashes 3 times.",
   "primary_entities": [
    "Temperature",
    "Humidity",
    "Battery Level"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "A low-cost Zigbee sensor providing environmental telemetry data to Home Assistant.",
   "local_operation": "Local Zigbee mesh.",
   "power_and_wiring": "CR2032 Battery.",
   "connectivity": "Acts as end-device.",
   "mains_voltage": false,
   "white_label": true,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-innov-vzm31-ha",
   "device_name": "2-in-1 Switch Blue Series",
   "device_brand": "Inovelli",
   "target_platform": "Home Assistant (Zigbee2MQTT)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "None (Zigbee Coordinator)",
   "reset_sequence": "Hold top paddle and config button for 20 seconds until LED bar turns red and flashes.",
   "primary_entities": [
    "Light (Dimmer)",
    "Power (Watts)",
    "Energy (kWh)",
    "Button Scene Controller"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "High-performance Zigbee switch with advanced scene control and energy monitoring.",
   "local_operation": "100% local Zigbee.",
   "power_and_wiring": "Mains powered.",
   "connectivity": "Acts as Zigbee Router.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "120V AC 60Hz single phase",
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": "Incandescent 600W single-gang / LED 300W / CFL 150W; not rated for inductive loads or fans",
   "spec_source": "Inovelli VZM31-SN manual"
  },
  {
   "entry_id": "sh-switchbot-bot-ha",
   "device_name": "SwitchBot Bot",
   "device_brand": "SwitchBot",
   "target_platform": "Home Assistant",
   "protocol": "Bluetooth LE",
   "bridge_required": false,
   "border_router_needed": "None (Bluetooth Adapter/Proxy)",
   "reset_sequence": "Press and hold the reset button inside the battery cover for 15 seconds until the icon flashes.",
   "primary_entities": [
    "Switch (Push/Press)",
    "Battery Level"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Physical button pusher for non-smart appliances; integrates via BLE local connection.",
   "local_operation": "Local BLE.",
   "power_and_wiring": "CR2 Battery.",
   "connectivity": "N/A",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-aqara-u100-hk",
   "device_name": "U100 Smart Lock",
   "device_brand": "Aqara",
   "target_platform": "Apple HomeKit",
   "protocol": "Matter over Thread / BLE",
   "bridge_required": false,
   "border_router_needed": "Apple HomePod or Apple TV 4K",
   "reset_sequence": "Remove battery cover and press and hold the reset button for 5 seconds until voice prompt speaks.",
   "primary_entities": [
    "Lock State",
    "Battery Level",
    "Keypad User Management"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Secure smart lock with Matter support; integrates directly with Apple Home.",
   "local_operation": "Local Thread/BLE.",
   "power_and_wiring": "4x AA Batteries.",
   "connectivity": "Thread Router/End-device.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-sonoff-nspanel-ha",
   "device_name": "NSPanel Smart Scene Wall Switch",
   "device_brand": "Sonoff",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Wi-Fi (Local)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press and hold both physical buttons for 10 seconds to enter factory reset access point mode.",
   "primary_entities": [
    "Switch (2-Channel Relay)",
    "Touch Screen UI",
    "Temperature Sensor"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Customizable smart wall controller; ideal for ESPHome integrations for deep Home Assistant control.",
   "local_operation": "100% Local.",
   "power_and_wiring": "Mains powered.",
   "connectivity": "N/A",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "100–240V AC",
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": "2A per gang / 4A total; 480W per gang / 960W total",
   "spec_source": "SONOFF NSPanel specifications"
  },
  {
   "entry_id": "sh-reolink-doorbell-ha",
   "device_name": "Video Doorbell WiFi",
   "device_brand": "Reolink",
   "target_platform": "Home Assistant",
   "protocol": "Wi-Fi (Local ONVIF/RTSP)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Use the reset needle to press and hold the reset hole on the back for 10 seconds until chime sounds.",
   "primary_entities": [
    "Camera (RTSP Stream)",
    "Binary Sensor (Doorbell Button)",
    "Motion Sensor"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "High-quality video doorbell with local RTSP and ONVIF support for Home Assistant.",
   "local_operation": "100% Local.",
   "power_and_wiring": "Hardwired.",
   "connectivity": "N/A",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-zest-ztrm3-ha",
   "device_name": "Z-TRM3 Z-Wave Thermostat",
   "device_brand": "Heatit",
   "target_platform": "Home Assistant (Z-Wave JS)",
   "protocol": "Z-Wave Plus",
   "bridge_required": false,
   "border_router_needed": "None (Z-Wave Controller)",
   "reset_sequence": "Press center button for 10 seconds, navigate to OFF, press right button for 5 seconds until rES shows.",
   "primary_entities": [
    "Thermostat (Climate)",
    "Temperature",
    "Energy (kWh)"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Reliable Z-Wave thermostat for direct integration with Home Assistant Z-Wave JS.",
   "local_operation": "100% Local.",
   "power_and_wiring": "Mains powered (230V AC). Switches up to 16A / 3600W; a contactor is required above that.",
   "connectivity": null,
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "230V AC",
   "gpio_logic_voltage": null,
   "ingress_protection": "IP21",
   "peak_current": "16A / 3600W max load; contactor required above this",
   "spec_source": "Heatit Z-TRM3 datasheet"
  },
  {
   "entry_id": "sh-ratgdo-garage-ha",
   "device_name": "ratgdo v2.5 Garage Control",
   "device_brand": "ratgdo",
   "target_platform": "Home Assistant",
   "protocol": "Wi-Fi (ESPHome)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold onboard boot button for 10 seconds to restore ESPHome default firmware Wi-Fi setup.",
   "primary_entities": [
    "Cover (Garage Door)",
    "Obstruction Sensor",
    "Light Control"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The ultimate local controller for Security+ 2.0 garage doors.",
   "local_operation": "100% Local.",
   "power_and_wiring": "Mains powered.",
   "connectivity": "N/A",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-st7789-esphome",
   "device_name": "ST7789 240x240 Color IPS Display",
   "device_brand": "Waveshare",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V GPIO",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while cycling EN button to enter USB serial flash mode.",
   "primary_entities": [
    "TFT Display Screen",
    "Backlight Dimmer",
    "Framebuffer"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The ESP32-S3 paired with the ST7789 1.54 inch 240x240 IPS TFT display provides high-fps color dashboards in Home Assistant using native ESPHome display components.",
   "local_operation": "Operates 100% locally over Wi-Fi via ESPHome native API.",
   "power_and_wiring": "USB-C 5V input; 3.3V logic level SPI bus (SCL=GPIO12 SDA=GPIO11 CS=GPIO10 DC=GPIO9 RES=GPIO8).",
   "connectivity": "Direct Wi-Fi 2.4GHz connection to Home Assistant network.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "240x240 IPS panel",
     "entry_id": "emb-esp32s3-st7789-esphome",
     "is_canonical": true,
     "device_name": "ST7789 240x240 Color IPS Display",
     "protocol": "SPI / 3.3V GPIO",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "USB-C 5V input; 3.3V logic level SPI bus (SCL=GPIO12 SDA=GPIO11 CS=GPIO10 DC=GPIO9 RES=GPIO8).",
     "primary_entities": [
      "TFT Display Screen",
      "Backlight Dimmer",
      "Framebuffer"
     ]
    },
    {
     "label": "1.28\" round panel",
     "entry_id": "emb-esp32s3-st7789-round",
     "is_canonical": false,
     "device_name": "ST7789 1.28 Round Display Module",
     "protocol": "SPI / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC SPI (CS=GPIO10 DC=GPIO9 RST=GPIO8).",
     "primary_entities": [
      "Round Dashboard",
      "Analog Clock Face"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp32c3-bme680-ha",
   "device_name": "BME680 Environmental & Gas Sensor",
   "device_brand": "Bosch Sensortec",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Short GPIO9 to GND during power-on to trigger bootloader mode.",
   "primary_entities": [
    "Temperature",
    "Relative Humidity",
    "Barometric Pressure",
    "IAQ Gas Index"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The ESP32-C3 SuperMini paired with Bosch BME680 provides accurate indoor air quality pressure and ambient humidity readings directly to Home Assistant.",
   "local_operation": "Fully local execution via ESPHome native API over Wi-Fi.",
   "power_and_wiring": "USB-C 5V input with onboard 3.3V LDO regulator; I2C SDA=GPIO8 SCL=GPIO9.",
   "connectivity": "Wi-Fi 802.11b/g/n 2.4GHz local mesh.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-pico-w-ld2410-ha",
   "device_name": "HLK-LD2410 24GHz mmWave Radar Sensor",
   "device_brand": "Hi-Link",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOTSEL button while plugging USB cable to enter mass storage flashing.",
   "primary_entities": [
    "Radar Presence State",
    "Move Distance (cm)",
    "Still Distance (cm)",
    "Signal Energy"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Raspberry Pi Pico W connected to the HLK-LD2410 24GHz radar module delivers precise micro-motion and still human presence tracking to Home Assistant.",
   "local_operation": "100% local processing over Wi-Fi via ESPHome or MicroPython socket API.",
   "power_and_wiring": "Micro-USB 5V supply; LD2410 requires 5V power (VCC=5V TX=GPIO5/UART1 RX RX=GPIO4/UART1 TX).",
   "connectivity": "Wi-Fi 4 (802.11n) 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ssd1306-ard",
   "device_name": "SSD1306 0.96 OLED Display (128x64)",
   "device_brand": "Adafruit",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold EN and BOOT buttons down for 2s then release EN.",
   "primary_entities": [
    "OLED Graphic Screen",
    "Text Buffer",
    "Brightness Control"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Compact 0.96 inch monochrome OLED connected via I2C for showing live sensor telemetry IP addresses and status icons.",
   "local_operation": "100% local rendering via I2C bus.",
   "power_and_wiring": "3.3V VCC SDA=GPIO21 SCL=GPIO22. Draws under 20mA active power.",
   "connectivity": "Wi-Fi 2.4GHz / Bluetooth 4.2.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-epaper-esphome",
   "device_name": "Waveshare 2.13 E-Paper Display",
   "device_brand": "Waveshare",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while cycling EN button.",
   "primary_entities": [
    "E-Paper Screen",
    "Low-Power Refresh",
    "Battery Voltage"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Ultra-low-power e-Paper display system showing Home Assistant sensor metrics with multi-week battery life between charges.",
   "local_operation": "Local processing with persistent image retainment during power off.",
   "power_and_wiring": "3.3V VCC SPI (CS=GPIO10 DC=GPIO9 RST=GPIO8 BUSY=GPIO7); deep sleep ~15uA.",
   "connectivity": "Wi-Fi 2.4GHz / ESP-NOW.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-pico-w-bme280-mpy",
   "device_name": "BME280 Temp Humidity Barometer",
   "device_brand": "Bosch",
   "target_platform": "Home Assistant (MicroPython)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOTSEL button while inserting USB cable.",
   "primary_entities": [
    "Temperature Sensor",
    "Relative Humidity",
    "Pressure (hPa)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High-precision environmental monitoring pairing using Pico W and Bosch BME280 sensor over MicroPython MQTT API.",
   "local_operation": "100% local MQTT telemetry over Wi-Fi.",
   "power_and_wiring": "3.3V DC VCC I2C0 (SDA=GPIO4 SCL=GPIO5).",
   "connectivity": "Wi-Fi 802.11n 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-nano328-mpu6050-ard",
   "device_name": "MPU6050 6-DOF Gyro Accelerometer",
   "device_brand": "InvenSense",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C / 5V-3.3V Level Shift",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press onboard reset button twice quickly to enter bootloader.",
   "primary_entities": [
    "X-Axis Accel",
    "Y-Axis Accel",
    "Z-Axis Accel",
    "Pitch & Roll Angles"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The Arduino Nano paired with MPU6050 provides 6-axis motion tracking vibration monitoring and inclination sensing via I2C.",
   "local_operation": "Local wired serial / I2C bus processing.",
   "power_and_wiring": "5V VCC input (onboard 3.3V regulator) I2C A4 (SDA) A5 (SCL); 4.7k ohm pull-up resistors.",
   "connectivity": "N/A (Wired Serial / SPI / I2C).",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-vl53l0x-esphome",
   "device_name": "VL53L0X Time-of-Flight Distance Sensor",
   "device_brand": "STMicroelectronics",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s to enter download mode.",
   "primary_entities": [
    "Distance Sensor (mm)",
    "Range Status",
    "Signal Rate"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Laser ToF distance sensor for precise tank level monitoring garage vehicle position detection or presence proximity sensing.",
   "local_operation": "100% local I2C polling via ESPHome.",
   "power_and_wiring": "3.3V VCC SDA=GPIO21 SCL=GPIO22; laser current peak ~20mA.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-bh1750-ha",
   "device_name": "BH1750 Ambient Light Sensor",
   "device_brand": "ROHM",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button and press RST button.",
   "primary_entities": [
    "Illuminance (Lux)",
    "Light Intensity Level"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High-resolution ambient light measurement (1 to 65535 lx) for automating smart blinds indoor lighting scenes and outdoor daylight tracking.",
   "local_operation": "Fully local execution via ESPHome native API.",
   "power_and_wiring": "3.3V VCC SDA=GPIO4 (D2) SCL=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-max30102-ard",
   "device_name": "MAX30102 Pulse Oximeter & Heart Rate Sensor",
   "device_brand": "Maxim Integrated",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Heart Rate (BPM)",
    "SpO2 Oxygen Level",
    "Infrared Reflectance"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Medical-grade optical pulse oximetry sensor connected to ESP32 for non-invasive biometric monitoring and fitness telemetry.",
   "local_operation": "Local I2C signal processing with DSP filtering.",
   "power_and_wiring": "3.3V VCC SDA=GPIO21 SCL=GPIO22 INT=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz / BLE.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ds18b20-esphome",
   "device_name": "DS18B20 Waterproof Temperature Probe",
   "device_brand": "Maxim Integrated",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Dallas 1-Wire / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3 seconds.",
   "primary_entities": [
    "Probe Temperature (C)",
    "Sensor Serial ID"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Sealed stainless steel temperature sensor probe ideal for pool aquarium soil or HVAC duct thermal tracking.",
   "local_operation": "100% local 1-Wire protocol execution.",
   "power_and_wiring": "3.3V VCC Data=GPIO4 with 4.7k ohm pull-up resistor to 3.3V.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-ws2812b-esphome",
   "device_name": "WS2812B Addressable RGB LED Strip",
   "device_brand": "WorldSemi",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "GPIO RMT / 3.3V to 5V Level Shift",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while powering on.",
   "primary_entities": [
    "Light Strip (RGB)",
    "Color Effects",
    "Brightness",
    "Speed"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High-speed addressable RGB LED driver leveraging ESP32-S3 RMT hardware peripherals for smooth ambient lighting and animations.",
   "local_operation": "Local FastLED / Light component controls over Wi-Fi.",
   "power_and_wiring": "5V power supply for LED strip; GPIO16 data output (74HCT125 level shifter to 5V recommended).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "LED strip (ESP32-S3)",
     "entry_id": "emb-esp32s3-ws2812b-esphome",
     "is_canonical": true,
     "device_name": "WS2812B Addressable RGB LED Strip",
     "protocol": "GPIO RMT / 3.3V to 5V Level Shift",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "5V power supply for LED strip; GPIO16 data output (74HCT125 level shifter to 5V recommended).",
     "primary_entities": [
      "Light Strip (RGB)",
      "Color Effects",
      "Brightness",
      "Speed"
     ]
    },
    {
     "label": "LED ring (ESP32-C3)",
     "entry_id": "emb-esp32c3-ws2812b-ha",
     "is_canonical": false,
     "device_name": "WS2812B RGB LED Ring",
     "protocol": "GPIO RMT / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "5V power for LEDs; GPIO8 data signal.",
     "primary_entities": [
      "RGB LED Ring",
      "Animation Speed",
      "Brightness"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp32-ina219-esphome",
   "device_name": "INA219 DC Voltage & Current Sensor",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 2s.",
   "primary_entities": [
    "Bus Voltage (V)",
    "Shunt Voltage (mV)",
    "Current (mA)",
    "Power (W)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "High-precision DC power monitoring sensor for solar panels battery banks and 12V automotive circuit telemetry.",
   "local_operation": "100% local I2C sampling.",
   "power_and_wiring": "3.3V VCC for IC SDA=GPIO21 SCL=GPIO22; load up to 26V DC 3.2A max.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-relay-esphome",
   "device_name": "5V Active-Low Relay Module",
   "device_brand": "Songle",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "GPIO Digital / 3.3V Transistor",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold D3/FLASH to GND while plugging in USB power.",
   "primary_entities": [
    "Relay Switch State",
    "Power Restore State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Single-channel 10A relay controller for automating appliance power garage door openers or low-voltage solenoid valves.",
   "local_operation": "100% local relay switching over Wi-Fi.",
   "power_and_wiring": "5V VCC for relay coil GPIO5 (D1) control signal; optocoupler isolated.",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "5V DC coil supply",
   "gpio_logic_voltage": "Active-low trigger input",
   "ingress_protection": "None — exposed board, enclosure required",
   "peak_current": "Coil ~71mA (0.36W); contacts 10A @ 250VAC",
   "spec_source": "Songle SRD-05VDC-SL-C datasheet"
  },
  {
   "entry_id": "emb-esp32-hcsr501-ha",
   "device_name": "HC-SR501 PIR Motion Sensor Module",
   "device_brand": "SparkFun",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Motion Binary Sensor",
    "Hold Time Slider",
    "Sensitivity Adjustment"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Low-cost motion detector with adjustable delay and sensitivity for indoor security and automatic room lighting.",
   "local_operation": "100% local GPIO interrupt execution.",
   "power_and_wiring": "5V VCC input (sensor outputs 3.3V high signal to GPIO13).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-scd30-esphome",
   "device_name": "SCD30 NDIR CO2 Air Quality Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button down while powering up.",
   "primary_entities": [
    "Carbon Dioxide (PPM)",
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Photoacoustic NDIR carbon dioxide sensor providing true CO2 PPM measurements for indoor air quality and HVAC ventilation control.",
   "local_operation": "100% local I2C sensor polling.",
   "power_and_wiring": "3.3V-5V VCC I2C SDA=GPIO8 SCL=GPIO9; peak current ~75mA during measurement cycle.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-pms5003-esphome",
   "device_name": "PMS5003 Laser Particulate Matter Sensor",
   "device_brand": "Plantower",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "PM1.0 (ug/m3)",
    "PM2.5 (ug/m3)",
    "PM10 (ug/m3)",
    "Particle Count"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Laser dust sensor measuring fine airborne particles (PM1.0 PM2.5 PM10) for air purifier automation and smoke detection.",
   "local_operation": "100% local UART serial data decoding over Wi-Fi.",
   "power_and_wiring": "5V VCC for fan motor UART TX=GPIO16 (RX2) RX=GPIO17 (TX2); 3.3V logic level UART.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-max6675-ard",
   "device_name": "MAX6675 K-Type Thermocouple Sensor",
   "device_brand": "Maxim Integrated",
   "target_platform": "Arduino Ecosystem",
   "protocol": "SPI Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 2s.",
   "primary_entities": [
    "High Temperature (C)",
    "Thermocouple Break Status"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "High-temperature thermal probe measuring up to 1024C for kiln smoker pizza oven or engine exhaust monitoring.",
   "local_operation": "Local SPI bus temperature reading.",
   "power_and_wiring": "3.3V VCC SPI (SO=GPIO19 CS=GPIO23 SCK=GPIO18).",
   "connectivity": "Wi-Fi 2.4GHz / Bluetooth.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-aht20-esphome",
   "device_name": "AHT20 Humidity & Temperature Sensor",
   "device_brand": "ASAIR",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during power-on.",
   "primary_entities": [
    "Ambient Temperature (C)",
    "Relative Humidity (%)",
    "Dew Point"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Compact ultra-reliable MEMS temperature and humidity sensor with digital I2C output for smart home environmental monitoring.",
   "local_operation": "100% local I2C telemetry via ESPHome.",
   "power_and_wiring": "3.3V VCC SDA=GPIO4 (D2) SCL=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-neo6m-ha",
   "device_name": "GY-GPS6MV2 Neo-6M GPS Receiver",
   "device_brand": "u-blox",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Latitude",
    "Longitude",
    "Altitude (m)",
    "Satellites Tracked",
    "GPS Time"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Satellite geolocation receiver module for vehicle tracking asset positioning and accurate UTC clock synchronization.",
   "local_operation": "100% local NMEA sentence parsing.",
   "power_and_wiring": "3.3V-5V VCC (3.3V logic level UART TX=GPIO16 RX=GPIO17); active antenna connection.",
   "connectivity": "Wi-Fi 2.4GHz / BLE.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-pca9685-ard",
   "device_name": "PCA9685 16-Channel 12-bit PWM Servo Driver",
   "device_brand": "NXP",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V to 5V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT and EN buttons.",
   "primary_entities": [
    "16x Servo PWM Channels",
    "Output Frequency (Hz)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "16-channel I2C-controlled PWM driver for animatronics robotic arm joint control or multi-channel LED dimming.",
   "local_operation": "Local I2C command execution.",
   "power_and_wiring": "3.3V VCC for logic 5V-6V external terminal power for servos; SDA=GPIO8 SCL=GPIO9.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sg90-esphome",
   "device_name": "SG90 Micro Servo Motor Module",
   "device_brand": "TowerPro",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "PWM GPIO / 5V Power",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 2s.",
   "primary_entities": [
    "Servo Angle (Degrees)",
    "Lock / Unlock Switch"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Micro 9g servo motor for automated deadbolt turning pet feeder dispensing or physical button actuation.",
   "local_operation": "100% local PWM signal generation via ESPHome.",
   "power_and_wiring": "5V VCC for motor power (common GND) PWM signal=GPIO18 (3.3V control signal compatible).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ec11-esphome",
   "device_name": "EC11 Rotary Encoder with Push Button",
   "device_brand": "Alps",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Quadrature GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Rotary Position Counter",
    "Encoder Push Button",
    "Volume Dial"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Quadrature rotary knob encoder for manual media volume adjustment light dimming control or menu navigation interfaces.",
   "local_operation": "100% local GPIO quadrature decoding.",
   "power_and_wiring": "3.3V VCC Pin A=GPIO25 Pin B=GPIO26 Switch=GPIO27 (internal pull-ups enabled).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hx711-ha",
   "device_name": "HX711 24-bit ADC Load Cell Amplifier",
   "device_brand": "Avia Semiconductor Semiconductor",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Weight Measurement (kg)",
    "Raw Tare Offset",
    "Calibrated Mass"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "24-bit precision ADC amplifier paired with strain gauge load cells for smart bed occupancy detection propane tank weighing or inventory scale automation.",
   "local_operation": "100% local weight sampling over Wi-Fi.",
   "power_and_wiring": "3.3V-5V VCC DT=GPIO16 SCK=GPIO17.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "Bare amplifier board",
     "entry_id": "emb-esp32-hx711-ha",
     "is_canonical": true,
     "device_name": "HX711 24-bit ADC Load Cell Amplifier",
     "protocol": "Digital Serial / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V-5V VCC DT=GPIO16 SCK=GPIO17.",
     "primary_entities": [
      "Weight Measurement (kg)",
      "Raw Tare Offset",
      "Calibrated Mass"
     ]
    },
    {
     "label": "With 5kg load cell",
     "entry_id": "emb-esp32-hx711-scale",
     "is_canonical": false,
     "device_name": "HX711 Load Cell Scale (5kg Bar)",
     "protocol": "Digital Serial / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC DT=GPIO16 SCK=GPIO17.",
     "primary_entities": [
      "Weight Mass (grams)",
      "Tare Zero Offset",
      "Scale Calibration"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp8266-bmp280-ha",
   "device_name": "BMP280 Barometric Pressure & Temp Sensor",
   "device_brand": "Bosch Sensortec",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during power-on.",
   "primary_entities": [
    "Air Pressure (hPa)",
    "Temperature (C)",
    "Altitude Estimate (m)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Precision barometric pressure and temperature sensor for weather station forecasting and indoor altitude tracking.",
   "local_operation": "100% local I2C polling via ESPHome.",
   "power_and_wiring": "3.3V VCC SDA=GPIO4 (D2) SCL=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-dfplayer-esphome",
   "device_name": "DFPlayer Mini MP3 Audio Player",
   "device_brand": "DFRobot",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Audio Track Selection",
    "Playback State",
    "Volume Level",
    "Speaker Switch"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Hardware MP3/WAV audio player module for custom smart home voice chimes doorbells and alarm announcements from MicroSD storage.",
   "local_operation": "100% local audio playback execution.",
   "power_and_wiring": "5V VCC for speaker power UART TX=GPIO16 RX=GPIO17 (1k ohm resistor on RX pin recommended).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ads1115-ard",
   "device_name": "ADS1115 16-bit 4-Channel Precision ADC",
   "device_brand": "Texas Instruments",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Analog Channel A0 (V)",
    "Channel A1 (V)",
    "Channel A2 (V)",
    "Channel A3 (V)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "16-bit high-resolution ADC expander adding 4 precision analog measurement channels with programmable gain amplifier.",
   "local_operation": "Local I2C bus analog reading.",
   "power_and_wiring": "3.3V VCC SDA=GPIO21 SCL=GPIO22 ADDR=GND.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-rc522-esphome",
   "device_name": "RC522 13.56MHz RFID NFC Reader",
   "device_brand": "NXP",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Tag ID (HEX)",
    "NFC Card Scanner State",
    "Authorization Binary"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "RFID and NFC card access control scanner for smart door locks workshop tool authorization or personal keycard arming/disarming.",
   "local_operation": "100% local SPI RFID scanning.",
   "power_and_wiring": "3.3V VCC (DO NOT APPLY 5V) SPI (SDA=GPIO5 SCK=GPIO18 MOSI=GPIO23 MISO=GPIO19 RST=GPIO22).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-soilmoisture-ha",
   "device_name": "Capacitive Soil Moisture Sensor v1.2",
   "device_brand": "DFRobot",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Analog ADC / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Soil Moisture (%)",
    "Raw Analog Voltage (V)",
    "Irrigation Threshold"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Corrosion-resistant capacitive soil moisture sensor for garden irrigation automation plant hydration alerts and greenhouse monitoring.",
   "local_operation": "100% local analog sampling.",
   "power_and_wiring": "3.3V VCC Analog Out=GPIO34 (ADC1_CH6).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "v1.2",
     "entry_id": "emb-esp32-soilmoisture-ha",
     "is_canonical": true,
     "device_name": "Capacitive Soil Moisture Sensor v1.2",
     "protocol": "Analog ADC / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC Analog Out=GPIO34 (ADC1_CH6).",
     "primary_entities": [
      "Soil Moisture (%)",
      "Raw Analog Voltage (V)",
      "Irrigation Threshold"
     ]
    },
    {
     "label": "v2.0",
     "entry_id": "emb-esp32-soil-capacitive",
     "is_canonical": false,
     "device_name": "Capacitive Soil Moisture Sensor v2.0",
     "protocol": "Analog ADC / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC Analog Out=GPIO34.",
     "primary_entities": [
      "Soil Moisture Percentage (%)",
      "Analog Volts (V)"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp32s3-ili9341-esphome",
   "device_name": "ILI9341 2.8 320x240 Color TFT Display",
   "device_brand": "Adafruit",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V GPIO",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while cycling EN button to enter serial download mode.",
   "primary_entities": [
    "Touchscreen Display",
    "Backlight Control",
    "Framebuffer"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "The ESP32-S3 paired with the ILI9341 2.8 inch 320x240 color TFT LCD display provides rich interactive graphical dashboards in Home Assistant.",
   "local_operation": "100% local rendering via ESPHome display component over Wi-Fi.",
   "power_and_wiring": "USB-C 5V input; 3.3V logic level SPI bus (CS=GPIO10 DC=GPIO9 RST=GPIO8).",
   "connectivity": "Wi-Fi 2.4GHz connection.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mcp2515-ha",
   "device_name": "MCP2515 CAN Bus Transceiver Module",
   "device_brand": "Microchip Technology",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3 seconds.",
   "primary_entities": [
    "CAN Packet Receiver",
    "OBD-II Telemetry",
    "Bus State"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "High-speed CAN bus communication interface for automotive OBD-II diagnostics solar inverter bus monitoring and industrial automation.",
   "local_operation": "100% local CAN frame decoding.",
   "power_and_wiring": "3.3V VCC for logic 5V power for TJA1050 transceiver chip; SPI (CS=GPIO5 INT=GPIO4).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-pico-w-max31855-mpy",
   "device_name": "MAX31855 Thermocouple Amplifier",
   "device_brand": "Maxim",
   "target_platform": "Home Assistant (MicroPython)",
   "protocol": "SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOTSEL while inserting USB cable.",
   "primary_entities": [
    "High Temperature (C)",
    "Fault Status",
    "Cold Junction Temp"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Cold-junction compensated K-type thermocouple amplifier measuring extreme temperatures up to 1350C with 0.25C resolution.",
   "local_operation": "100% local MicroPython sensor polling.",
   "power_and_wiring": "3.3V DC VCC SPI0 (CS=GPIO17 SCK=GPIO18 MISO=GPIO16).",
   "connectivity": "Wi-Fi 802.11n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32c3-aht10-esphome",
   "device_name": "AHT10 Precision Temp & Humidity Sensor",
   "device_brand": "ASAIR",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Short GPIO9 to GND during power-on.",
   "primary_entities": [
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Low-cost high-accuracy MEMS temperature and humidity sensor for indoor climate tracking and HVAC automation.",
   "local_operation": "100% local I2C execution.",
   "power_and_wiring": "3.3V VCC I2C (SDA=GPIO8 SCL=GPIO9).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-pn532-esphome",
   "device_name": "PN532 NFC RFID Reader-Writer",
   "device_brand": "NXP",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C / SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "NFC Card ID",
    "Tag Emulation",
    "Scanner State"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "13.56MHz NFC and RFID reader module supporting card reading phone emulation and secure access badge verification.",
   "local_operation": "100% local NFC tag scanning.",
   "power_and_wiring": "3.3V-5V VCC I2C (SDA=GPIO21 SCL=GPIO22 IRQ=GPIO19).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-camera-esphome",
   "device_name": "ESP32-S3-CAM OV2640 Camera Module",
   "device_brand": "Omnivision",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "DVP Parallel / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while resetting.",
   "primary_entities": [
    "RTSP Video Stream",
    "Snapshot Image",
    "Motion Detection"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "High-performance camera module delivering real-time RTSP video streams face detection and snapshot image capture to Home Assistant.",
   "local_operation": "100% local video stream streaming over Wi-Fi.",
   "power_and_wiring": "5V VCC input; internal 3.3V/1.8V regulators for CMOS image sensor.",
   "connectivity": "Wi-Fi 2.4GHz 802.11n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ds3231-ard",
   "device_name": "DS3231 High Precision Real-Time Clock",
   "device_brand": "Maxim Integrated",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 2s.",
   "primary_entities": [
    "Real-Time Clock",
    "Backup Battery Voltage",
    "Alarm Interrupt"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Battery-backed RTC IC maintaining sub-second clock accuracy during power outages and off-grid offline operation.",
   "local_operation": "100% local hardware clock retainment.",
   "power_and_wiring": "3.3V VCC CR2032 coin cell backup; I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz / Offline.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-dht22-esphome",
   "device_name": "DHT22 AM2302 Temp & Humidity Sensor",
   "device_brand": "Aosong",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital Single-Wire / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during power-on.",
   "primary_entities": [
    "Ambient Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Calibrated digital temperature and humidity sensor module with 0.5C accuracy for indoor room telemetry.",
   "local_operation": "100% local single-wire protocol execution.",
   "power_and_wiring": "3.3V VCC Data=GPIO4 (D2) with 4.7k pull-up resistor.",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-pico-w-sgp30-mpy",
   "device_name": "SGP30 TVOC & eCO2 Air Quality Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (MicroPython)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOTSEL button while inserting USB power.",
   "primary_entities": [
    "TVOC (ppb)",
    "eCO2 (ppm)",
    "Air Quality Index"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Multi-pixel gas sensor measuring total volatile organic compounds (TVOC) and equivalent CO2 for indoor air purification.",
   "local_operation": "100% local I2C sensor telemetry over Wi-Fi.",
   "power_and_wiring": "3.3V VCC I2C0 (SDA=GPIO4 SCL=GPIO5).",
   "connectivity": "Wi-Fi 802.11n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tcs34725-esphome",
   "device_name": "TCS34725 RGB Color Sensor with IR Filter",
   "device_brand": "ams OSRAM",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Red Intensity",
    "Green Intensity",
    "Blue Intensity",
    "Color Temp (K)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Color light sensor with IR blocking filter for measuring color temperature ambient light spectrum and surface reflection.",
   "local_operation": "100% local color sensing.",
   "power_and_wiring": "3.3V VCC I2C (SDA=GPIO21 SCL=GPIO22 LED=GPIO19).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "IR filter variant",
     "entry_id": "emb-esp32-tcs34725-esphome",
     "is_canonical": true,
     "device_name": "TCS34725 RGB Color Sensor with IR Filter",
     "protocol": "I2C Bus / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC I2C (SDA=GPIO21 SCL=GPIO22 LED=GPIO19).",
     "primary_entities": [
      "Red Intensity",
      "Green Intensity",
      "Blue Intensity",
      "Color Temp (K)"
     ]
    },
    {
     "label": "White LED variant",
     "entry_id": "emb-esp32-tcs34725-ha",
     "is_canonical": false,
     "device_name": "TCS34725 Color Sensor with White LED",
     "protocol": "I2C Bus / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 LED_EN=GPIO19.",
     "primary_entities": [
      "Color Red",
      "Color Green",
      "Color Blue",
      "Color Temp (K)"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp32-mcp4725-ard",
   "device_name": "MCP4725 12-bit DAC Converter",
   "device_brand": "Microchip Technology",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Analog Output Voltage (V)",
    "DAC EEPROM State"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "12-bit digital-to-analog converter generating precise analog control voltages for variable frequency drives (VFD) and audio synth modules.",
   "local_operation": "100% local DAC voltage generation.",
   "power_and_wiring": "3.3V-5V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-round-display",
   "device_name": "GC9A01 1.28 Round IPS Display",
   "device_brand": "Waveshare",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while toggling reset.",
   "primary_entities": [
    "Round Dial Screen",
    "Gauge UI",
    "Backlight"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Circular 240x240 pixel IPS display ideal for smart thermostat dials rotary menu displays and gauge dashboards.",
   "local_operation": "100% local SPI display rendering.",
   "power_and_wiring": "3.3V VCC SPI (CS=GPIO10 DC=GPIO9 RST=GPIO8 SCK=GPIO12 MOSI=GPIO11).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-vl53l1x-esphome",
   "device_name": "VL53L1X Long Range ToF Sensor (4m)",
   "device_brand": "STMicroelectronics",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Long Range Distance (mm)",
    "Region of Interest"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Long-range laser distance sensor measuring target distance up to 400cm regardless of surface color or reflectivity.",
   "local_operation": "100% local I2C distance measurement.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 XSHUT=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tsl2591-ha",
   "device_name": "TSL2591 HDR Ambient Lux Sensor",
   "device_brand": "ams OSRAM",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Full Spectrum Lux",
    "Infrared Light",
    "Visible Light"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High dynamic range light sensor measuring from 188uLux up to 88000Lux for indoor and direct sunlight monitoring.",
   "local_operation": "100% local light intensity polling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-pcf8574-esphome",
   "device_name": "PCF8574 8-bit I2C GPIO Expander",
   "device_brand": "NXP",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button on power up.",
   "primary_entities": [
    "8x Expanded GPIO Inputs",
    "Output Pins"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "I2C GPIO expander module adding 8 additional digital input/output pins to ESP8266 or ESP32 microcontrollers.",
   "local_operation": "100% local I2C bus I/O expander.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO4 (D2) SCL=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hmc5883l-ard",
   "device_name": "QMC5883L 3-Axis Compass Magnetometer",
   "device_brand": "QST",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Magnetic Heading (Degrees)",
    "X-Axis Field",
    "Y-Axis Field"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "3-axis digital compass for calculating magnetic orientation bearing direction and magnetic field variations.",
   "local_operation": "100% local magnetic vector calculations.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 DRDY=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mlx90614-ha",
   "device_name": "MLX90614 Contactless IR Thermal Sensor",
   "device_brand": "Melexis",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Target Object Temp (C)",
    "Sensor Ambient Temp (C)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Non-contact infrared thermometer measuring surface temperatures from -70C to +380C without physical contact.",
   "local_operation": "100% local infrared temperature sensing.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-sdcard-esphome",
   "device_name": "MicroSD Card SPI Interface Module",
   "device_brand": "Kingston",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button down.",
   "primary_entities": [
    "SD Card Storage (GB)",
    "Datalogger Status",
    "File System"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Local MicroSD card reader for offline sensor logging event recording and local image storage.",
   "local_operation": "100% local file system access.",
   "power_and_wiring": "3.3V VCC SPI (CS=GPIO10 MOSI=GPIO11 MISO=GPIO13 SCK=GPIO12).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-max31865-ard",
   "device_name": "MAX31865 RTD PT100 Temp Amplifier",
   "device_brand": "Maxim Integrated",
   "target_platform": "Arduino Ecosystem",
   "protocol": "SPI Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "PT100 Platinum Temp (C)",
    "Resistance (Ohm)",
    "Fault Status"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Industrial-grade platinum RTD resistance thermometer amplifier delivering high precision temperature readings.",
   "local_operation": "100% local SPI RTD conversion.",
   "power_and_wiring": "3.3V VCC SPI (CS=GPIO5 SCK=GPIO18 MISO=GPIO19 MOSI=GPIO23).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-st7735-esphome",
   "device_name": "ST7735 1.8 Color TFT Display (128x160)",
   "device_brand": "Adafruit",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 2s.",
   "primary_entities": [
    "Color TFT Screen",
    "Backlight Dimmer"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "1.8 inch full-color TFT display for compact sensor dashboards status monitors and menu screens.",
   "local_operation": "100% local rendering via ESPHome display.",
   "power_and_wiring": "3.3V VCC SPI (CS=GPIO5 DC=GPIO16 RST=GPIO17 SCK=GPIO18 SDA=GPIO23).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-opt3001-esphome",
   "device_name": "OPT3001 Precision Ambient Light Sensor",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Ambient Lux",
    "Light Intensity"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Single-chip lux meter matching human eye spectral response for natural display backlight auto-brightness.",
   "local_operation": "100% local I2C lux measurement.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 INT=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-relay4ch-esphome",
   "device_name": "4-Channel 5V Relay Shield Module",
   "device_brand": "Songle",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "GPIO / Optocoupler",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Relay 1 State",
    "Relay 2 State",
    "Relay 3 State",
    "Relay 4 State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "4-channel opto-isolated relay module for controlling 4 independent AC or DC high-voltage electrical circuits.",
   "local_operation": "100% local relay switching over Wi-Fi.",
   "power_and_wiring": "5V VCC for relay coils IN1=GPIO16 IN2=GPIO17 IN3=GPIO18 IN4=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "5V DC coil supply",
   "gpio_logic_voltage": "Active-low trigger inputs (4 channels)",
   "ingress_protection": "None — exposed board, enclosure required",
   "peak_current": "~71mA per energised coil (0.36W each); contacts 10A @ 250VAC",
   "spec_source": "Songle SRD-05VDC-SL-C datasheet"
  },
  {
   "entry_id": "emb-pico-w-ssd1309-mpy",
   "device_name": "SSD1309 2.42 OLED Display (128x64)",
   "device_brand": "Solomon Systech",
   "target_platform": "Home Assistant (MicroPython)",
   "protocol": "SPI / I2C / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOTSEL while plugging USB cable.",
   "primary_entities": [
    "Large OLED Screen",
    "Status Dashboard"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Large 2.42 inch high-contrast monochrome OLED display for desktop dashboards and industrial status readouts.",
   "local_operation": "100% local frame rendering via MicroPython.",
   "power_and_wiring": "3.3V VCC I2C0 (SDA=GPIO4 SCL=GPIO5).",
   "connectivity": "Wi-Fi 802.11n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-as5600-ard",
   "device_name": "AS5600 12-bit Magnetic Rotary Encoder",
   "device_brand": "ams OSRAM",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Absolute Angle (Degrees)",
    "Magnet Detected",
    "Motor Shaft Position"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Contactless magnetic rotary position sensor measuring 360-degree absolute shaft angle with 12-bit resolution.",
   "local_operation": "100% local magnetic position sensing.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 DIR=GND.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-l9110s-esphome",
   "device_name": "L9110S Dual DC Motor Driver",
   "device_brand": "HG7881",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "PWM GPIO / 5V-12V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Motor A Direction & Speed",
    "Motor B Speed"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Dual-channel H-bridge DC motor driver for controlling small motor speed direction and linear actuators.",
   "local_operation": "100% local PWM motor speed control.",
   "power_and_wiring": "5V-12V motor VCC; IA1=GPIO16 IB1=GPIO17 IA2=GPIO18 IB2=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sound-sensor-ha",
   "device_name": "High Sensitivity Audio Microphone",
   "device_brand": "Keyestudio",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Analog ADC / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Noise Level (dB)",
    "Sound Threshold Switch"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Acoustic sound level detector with adjustable potentiometer threshold for glass break detection and noise metering.",
   "local_operation": "100% local analog sampling.",
   "power_and_wiring": "3.3V VCC AO=GPIO34 (ADC1) DO=GPIO35.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-canbus-ha",
   "device_name": "SN65HVD230 TWAI CAN Transceiver",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "TWAI GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while cycling reset.",
   "primary_entities": [
    "Vehicle Telemetry",
    "CAN Frame Receiver",
    "Bus Errors"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Integrated 3.3V CAN bus transceiver leveraging ESP32-S3 TWAI peripheral for industrial CAN networks.",
   "local_operation": "100% local TWAI CAN bus processing.",
   "power_and_wiring": "3.3V VCC CTX=GPIO5 CRX=GPIO4.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-water-leak-esphome",
   "device_name": "Flood & Water Leak Resistance Detector",
   "device_brand": "RobotDyn",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Flood Alert State",
    "Moisture Resistance"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Conductive water immersion sensor for detecting sump pump overflows pipe leaks and basement flooding.",
   "local_operation": "100% local water detection.",
   "power_and_wiring": "3.3V VCC Signal=GPIO34 (pull-down enabled).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-adxl345-ard",
   "device_name": "ADXL345 3-Axis Accelerometer",
   "device_brand": "Analog Devices",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C / SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Acceleration X (g)",
    "Y (g)",
    "Z (g)",
    "Tap Detection"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Ultra-low power 3-axis accelerometer with 13-bit measurement resolution up to +/-16g for motion activity tracking.",
   "local_operation": "100% local accelerometer polling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 CS=3.3V.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-ir-esphome",
   "device_name": "KY-005 IR Transmitter & Receiver",
   "device_brand": "Vishay Intertechnology",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "GPIO Digital / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during boot.",
   "primary_entities": [
    "Universal Remote Code",
    "Climate IR Command"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Infrared emitter and receiver pair for controlling HVAC air conditioners TVs and AV receivers via IR codes.",
   "local_operation": "100% local IR signal transmission.",
   "power_and_wiring": "3.3V VCC IR_TX=GPIO4 (D2) IR_RX=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hyt271-ha",
   "device_name": "HYT271 Digital Humidity & Temp Sensor",
   "device_brand": "IST AG",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Relative Humidity (%)",
    "Temperature (C)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Calibrated MEMS humidity and temperature sensor probe with +/-1.8% RH accuracy for medical and HVAC applications.",
   "local_operation": "100% local I2C sensor telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-ili9488-esphome",
   "device_name": "ILI9488 3.5 320x480 Color Display",
   "device_brand": "FocusLCDs",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while toggling reset.",
   "primary_entities": [
    "3.5 inch Screen",
    "Touch Screen UI",
    "Backlight"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Large 3.5 inch HVGA 320x480 resolution color display for central smart home wall touch panels.",
   "local_operation": "100% local display rendering.",
   "power_and_wiring": "3.3V VCC SPI (CS=GPIO10 DC=GPIO9 RST=GPIO8 MOSI=GPIO11 SCK=GPIO12).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-dht11-ha",
   "device_name": "DHT11 Temperature & Humidity Sensor",
   "device_brand": "Aosong",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital Single-Wire / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Temperature (C)",
    "Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Entry-level digital temperature and humidity sensor module with resistor pull-up for basic room monitoring.",
   "local_operation": "100% local single-wire reading.",
   "power_and_wiring": "3.3V VCC Data=GPIO4.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-nrf24l01-ard",
   "device_name": "nRF24L01+ 2.4GHz RF Transceiver",
   "device_brand": "Nordic",
   "target_platform": "Arduino Ecosystem",
   "protocol": "SPI Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "RF Packet Transceiver",
    "Signal Strength (RSSI)",
    "Channel"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "2.4GHz ultra-low power RF transceiver module for custom long-range wireless sensor networks.",
   "local_operation": "100% local 2.4GHz RF packet processing.",
   "power_and_wiring": "3.3V VCC (10uF cap required across VCC/GND); SPI (CSN=GPIO5 CE=GPIO4 SCK=GPIO18 MOSI=GPIO23 MISO=GPIO19).",
   "connectivity": "RF 2.4GHz proprietary mesh.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-stepper-a4988",
   "device_name": "A4988 Stepper Motor Driver Shield",
   "device_brand": "Allegro",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Step/Dir GPIO / 5V-12V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Stepper Position",
    "Speed (Steps/s)",
    "Direction"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Microstepping stepper motor driver for automated window blinds 3D printers and motorized camera sliders.",
   "local_operation": "100% local step/dir pulse generation.",
   "power_and_wiring": "12V motor power supply; STEP=GPIO16 DIR=GPIO17 ENABLE=GPIO18.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-pico-w-mcp3008-mpy",
   "device_name": "MCP3008 8-Channel 10-bit SPI ADC",
   "device_brand": "Microchip",
   "target_platform": "Home Assistant (MicroPython)",
   "protocol": "SPI Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOTSEL while inserting USB cable.",
   "primary_entities": [
    "8x Analog Input Channels (V)",
    "Analog Voltage"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "8-channel 10-bit SPI analog-to-digital converter adding multiple analog inputs to Raspberry Pi Pico W.",
   "local_operation": "100% local SPI ADC polling.",
   "power_and_wiring": "3.3V VCC SPI0 (CS=GPIO17 SCK=GPIO18 MOSI=GPIO19 MISO=GPIO16).",
   "connectivity": "Wi-Fi 802.11n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tcs3200-ard",
   "device_name": "TCS3200 Color Sensor Frequency Module",
   "device_brand": "ams OSRAM",
   "target_platform": "Arduino Ecosystem",
   "protocol": "Frequency Pulse / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Red Frequency",
    "Green Frequency",
    "Blue Frequency"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Programmable color light sensor converting color intensity to pulse frequency for sorting automation.",
   "local_operation": "100% local pulse frequency counting.",
   "power_and_wiring": "5V VCC S0=GPIO16 S1=GPIO17 S2=GPIO18 S3=GPIO19 OUT=GPIO23.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-bme688-esphome",
   "device_name": "Bosch BME688 AI Gas Sensor with BSEC",
   "device_brand": "Bosch Sensortec",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "VOC Gas Index",
    "VSC Odor Scanner",
    "Temp",
    "Pressure",
    "Humidity"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "AI-enhanced gas sensor detecting VOCs VSCs and odor profiles using Bosch BSEC machine learning library.",
   "local_operation": "100% local BSEC AI sensor processing.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-current-ct-ha",
   "device_name": "SCT-013-000 AC Current Transformer",
   "device_brand": "Yhdc",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Analog ADC / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "RMS AC Current (A)",
    "Apparent Power (W)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Non-invasive split-core AC current transformer clamp measuring main breaker house load up to 100A RMS.",
   "local_operation": "100% local AC current sampling.",
   "power_and_wiring": "3.3V DC biased analog circuit into GPIO34 (ADC1).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "Passive — current transformer, no supply required",
   "gpio_logic_voltage": "0–50mA output; burden resistor required for ADC input",
   "ingress_protection": "Split-core clamp housing, 13×13mm aperture",
   "peak_current": "0–100A input range (100A:50mA ratio), ±3% linearity",
   "spec_source": "YHDC SCT-013-000 datasheet"
  },
  {
   "entry_id": "emb-esp32-vib-sw420-ha",
   "device_name": "SW-420 Motion & Vibration Sensor",
   "device_brand": "SparkFun",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Vibration Alarm State",
    "Sensitivity Switch"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Vibration trigger module with adjustable sensitivity comparator for washing machine cycle alerts and earthquake sensing.",
   "local_operation": "100% local GPIO interrupt execution.",
   "power_and_wiring": "3.3V VCC Signal=GPIO34.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-gt911-touch",
   "device_name": "GT911 Capacitive Touch Controller",
   "device_brand": "Goodix",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while cycling reset.",
   "primary_entities": [
    "Touch X Position",
    "Touch Y Position",
    "Gesture Events"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "5-point capacitive multi-touch panel controller for interactive LCD screen displays and smart switch panels.",
   "local_operation": "100% local I2C touch event decoding.",
   "power_and_wiring": "3.3V VCC I2C (SDA=GPIO8 SCL=GPIO9 INT=GPIO4 RST=GPIO5).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-flame-ha",
   "device_name": "Infrared Flame Detection Sensor",
   "device_brand": "Keyestudio",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Flame Detection State",
    "Infrared Intensity"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High sensitivity NPN phototransistor detecting infrared light wavelength from 760nm to 1100nm for fire detection safety.",
   "local_operation": "100% local flame sensing.",
   "power_and_wiring": "3.3V VCC DO=GPIO34.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sgp40-ha",
   "device_name": "Sensirion SGP40 VOC Index Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "VOC Index Signal",
    "Raw Resistance"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Digital VOC index sensor providing robust indoor air quality assessment algorithms for smart air purifiers.",
   "local_operation": "100% local I2C VOC processing.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sound-i2s-ha",
   "device_name": "INMP441 I2S Digital MEMS Microphone",
   "device_brand": "InvenSense",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2S Digital / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Local Voice Satellite",
    "Audio Stream",
    "Noise Threshold"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Omnidirectional digital MEMS microphone with I2S interface for Home Assistant local voice satellite streaming.",
   "local_operation": "100% local I2S audio capture over Wi-Fi.",
   "power_and_wiring": "3.3V VCC I2S (WS=GPIO25 SCK=GPIO33 SD=GPIO32).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32s3-i2s-dac-ha",
   "device_name": "MAX98357A I2S 3.2W Class-D Amplifier",
   "device_brand": "Maxim Integrated",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2S Digital / 3.3V to 5V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while resetting.",
   "primary_entities": [
    "Media Speaker Output",
    "Volume Control",
    "Mute Switch"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Single-chip I2S digital-input Class-D audio amplifier driving 3.2W mono speakers for smart voice notifications.",
   "local_operation": "100% local I2S audio playback.",
   "power_and_wiring": "5V VCC for speaker power I2S (LRC=GPIO25 BCLK=GPIO26 DIN=GPIO22).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hall-sens-ha",
   "device_name": "AH3503 Analog Hall Effect Magnetic Sensor",
   "device_brand": "DFRobot",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Analog ADC / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Magnetic Field Strength (Gauss)",
    "Pole Direction"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Linear Hall effect magnetic sensor for non-contact position measurement rotation counting and door proximity.",
   "local_operation": "100% local magnetic field sampling.",
   "power_and_wiring": "3.3V VCC Output=GPIO34 (ADC1).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-rain-gauge-ha",
   "device_name": "Tipping Bucket Rain Gauge Sensor",
   "device_brand": "MISOL",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Pulse Counter GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Precipitation Rate (mm/h)",
    "Total Rainfall (mm)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Magnetic reed switch tipping bucket rain collector measuring real-time rainfall rate and daily accumulation.",
   "local_operation": "100% local pulse counting.",
   "power_and_wiring": "3.3V VCC Signal=GPIO14 (pull-up resistor enabled).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-soil-ec-ha",
   "device_name": "RS485 NPK Soil Sensor (EC/Temp/Moisture)",
   "device_brand": "JXCT",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Modbus RS485 / 3.3V to 5V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Soil Nitrogen (mg/kg)",
    "Phosphorus (mg/kg)",
    "Potassium (mg/kg)",
    "EC Conductivity"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Industrial 7-in-1 soil quality probe measuring soil NPK nutrients electrical conductivity temperature and moisture via Modbus RS485.",
   "local_operation": "100% local Modbus RTU polling.",
   "power_and_wiring": "12V DC power for probe; RS485 MAX485 module (TX=GPIO16 RX=GPIO17).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-eve-energy-ha",
   "device_name": "Eve Energy Smart Plug",
   "device_brand": "Eve",
   "target_platform": "Home Assistant (Matter / Thread)",
   "protocol": "Matter over Thread",
   "bridge_required": false,
   "border_router_needed": "OpenThread Border Router (SkyConnect / HomePod)",
   "reset_sequence": "Press and hold button on plug for 10 seconds until LED blinks red.",
   "primary_entities": [
    "Energy Meter (Watts)",
    "Total Consumption (kWh)",
    "Switch State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Eve Energy Smart Plug is natively supported in Home Assistant via Matter over Thread with zero bridge required when an OpenThread Border Router is present.",
   "local_operation": "Operates 100% offline via local Thread IPv6 mesh network.",
   "power_and_wiring": "Powered by AC 100-240V mains power; built-in relay isolation.",
   "connectivity": "Acts as a Thread Router node to extend Thread mesh range.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "120V AC 60Hz (US/CA) / 230V AC (EU)",
   "gpio_logic_voltage": null,
   "ingress_protection": "Indoor use only",
   "peak_current": "15A / 1800W (US/CA); 11A / 2500W (EU)",
   "spec_source": "Eve Energy (Matter) specifications"
  },
  {
   "entry_id": "sh-tapo-p110m-hk",
   "device_name": "Tapo P110M Matter Energy Plug",
   "device_brand": "TP-Link Tapo",
   "target_platform": "Apple HomeKit",
   "protocol": "Matter over Wi-Fi / Thread",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press and hold power button for 10 seconds until LED flashes amber and blue.",
   "primary_entities": [
    "Outlet Switch State",
    "Real-Time Power (W)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The Tapo P110M provides native Apple HomeKit & Matter support allowing local control of electrical loads and live energy monitoring.",
   "local_operation": "100% local via Matter over Wi-Fi framework.",
   "power_and_wiring": "Mains powered AC 100-240V.",
   "connectivity": "N/A",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "100–125V AC 50/60Hz",
   "gpio_logic_voltage": null,
   "ingress_protection": "Indoor use only, 0°C to 40°C",
   "peak_current": "15A; 1800W resistive / 1-6 HP motor",
   "spec_source": "TP-Link Tapo P110M specifications"
  },
  {
   "entry_id": "sh-nanoleaf-bulb-ha",
   "device_name": "Nanoleaf Essentials Smart Bulb A19",
   "device_brand": "Nanoleaf",
   "target_platform": "Home Assistant (Matter / Thread)",
   "protocol": "Matter over Thread",
   "bridge_required": false,
   "border_router_needed": "OpenThread Border Router",
   "reset_sequence": "Turn bulb off and on 5 times with 1 second interval until it flashes red 3 times.",
   "primary_entities": [
    "Light Color (RGBWW)",
    "Color Temp (K)",
    "Brightness"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Smart Matter over Thread LED bulb delivering sub-50ms color adjustments and adaptive lighting controls inside Home Assistant.",
   "local_operation": "100% local Thread mesh execution.",
   "power_and_wiring": "Mains powered AC 120V/240V.",
   "connectivity": "Functions as a Thread Router node.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "E26 / A19 lamp base",
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": "9W (806 lumens)",
   "spec_source": "Nanoleaf Essentials A19 specifications"
  },
  {
   "entry_id": "sh-tuya-matter-switch-st",
   "device_name": "Tuya Matter Smart Light Switch",
   "device_brand": "Tuya",
   "target_platform": "Samsung SmartThings",
   "protocol": "Matter over Wi-Fi",
   "bridge_required": false,
   "border_router_needed": "SmartThings Hub v3",
   "reset_sequence": "Hold wall switch paddle down for 7 seconds until status light flashes rapidly.",
   "primary_entities": [
    "Light Switch State",
    "Power Restore State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "In-wall smart light switch supporting local Matter over Wi-Fi control on Samsung SmartThings and Home Assistant.",
   "local_operation": "Local Matter API execution.",
   "power_and_wiring": "Mains powered AC 100-240V.",
   "connectivity": "N/A",
   "mains_voltage": true,
   "white_label": true,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-leviton-matter-hk",
   "device_name": "Leviton Decora Smart Matter Dimmer",
   "device_brand": "Leviton",
   "target_platform": "Apple HomeKit",
   "protocol": "Matter over Wi-Fi",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold top of rocker for 7 seconds until LED locator turns amber then flashes green.",
   "primary_entities": [
    "Light Dimmer Level",
    "Switch State",
    "Minimum Fade Rate"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Decora smart in-wall dimmer with native Matter certification enabling smooth dimming control via Siri and Apple Home.",
   "local_operation": "100% local Matter framework control.",
   "power_and_wiring": "Mains powered AC 120V.",
   "connectivity": "N/A",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "120V AC 60Hz, neutral wire required",
   "gpio_logic_voltage": null,
   "ingress_protection": "Indoor, 0°C to 40°C, 10–90% RH non-condensing",
   "peak_current": "Incandescent 600W / LED-CFL 300W / MLV 600VA",
   "spec_source": "Leviton D26HD product data sheet"
  },
  {
   "entry_id": "sh-sonoff-donglep-ha",
   "device_name": "SONOFF ZBDongle-P Zigbee 3.0 Coordinator",
   "device_brand": "SONOFF",
   "target_platform": "Home Assistant (ZHA / Zigbee2MQTT)",
   "protocol": "USB Serial (CC2652P)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press onboard boot button while connecting USB to activate CC2652P serial bootloader.",
   "primary_entities": [
    "Zigbee Coordinator Node",
    "IEEE Address",
    "RF Signal Power (dBm)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High-gain Zigbee 3.0 USB coordinator dongle based on CC2652P chip for building robust Home Assistant Zigbee networks.",
   "local_operation": "100% local serial coordinator execution.",
   "power_and_wiring": "USB 5V powered from Home Assistant host.",
   "connectivity": "Primary Zigbee network coordinator root node.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-thirdreality-motion-ha",
   "device_name": "ThirdReality Zigbee Motion Sensor",
   "device_brand": "ThirdReality",
   "target_platform": "Home Assistant (ZHA)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "Standard Zigbee Coordinator",
   "reset_sequence": "Press and hold reset button for 5 seconds until red LED turns on.",
   "primary_entities": [
    "Motion Binary Sensor",
    "Battery Level (%)",
    "Occupancy Timeout"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Battery-powered Zigbee 3.0 PIR motion sensor reporting occupancy directly to Home Assistant ZHA and Zigbee2MQTT.",
   "local_operation": "100% local Zigbee 3.0 execution.",
   "power_and_wiring": "Powered by 2x AAA batteries. Expected life varies with motion activity and reporting frequency.",
   "connectivity": "Zigbee End Device (ZED).",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-moes-smart-knob-z2m",
   "device_name": "Moes Wireless Zigbee Smart Scene Knob",
   "device_brand": "Moes",
   "target_platform": "Home Assistant (Zigbee2MQTT)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "Zigbee Coordinator",
   "reset_sequence": "Long press reset button for 6 seconds until blue indicator flashes rapidly.",
   "primary_entities": [
    "Knob Rotation Step",
    "Single Press",
    "Double Press",
    "Long Press"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Wireless battery-powered rotary knob for controlling Home Assistant light dimming media volume and scene automation rules.",
   "local_operation": "100% local Zigbee2MQTT event triggering.",
   "power_and_wiring": "CR2032 coin cell battery.",
   "connectivity": "Zigbee End Device.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-aqara-water-ha",
   "device_name": "Aqara Water Leak Sensor T1",
   "device_brand": "Aqara",
   "target_platform": "Home Assistant (ZHA / Z2M)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "Standard Zigbee Coordinator",
   "reset_sequence": "Press and hold reset button on top cover for 5 seconds until LED blinks 3 times.",
   "primary_entities": [
    "Water Leak Moisture State",
    "Battery Level (%)",
    "Tamper Alarm"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Zigbee water leak detector with stainless steel sensing probes for basement and appliance flood alerts.",
   "local_operation": "100% local Zigbee mesh execution.",
   "power_and_wiring": "Powered by a CR2032 coin cell. Expected life varies with alert frequency and temperature.",
   "connectivity": "Zigbee End Device.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-sonoff-snzb02d-ha",
   "device_name": "SONOFF SNZB-02D LCD Zigbee Temp & Humidity Sensor",
   "device_brand": "SONOFF",
   "target_platform": "Home Assistant (ZHA)",
   "protocol": "Zigbee 3.0",
   "bridge_required": false,
   "border_router_needed": "Standard Zigbee Coordinator",
   "reset_sequence": "Press and hold pairing button on side for 5 seconds until Zigbee icon flashes.",
   "primary_entities": [
    "Temperature (C)",
    "Relative Humidity (%)",
    "Battery Level (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Compact Zigbee 3.0 temperature and humidity sensor featuring a high-contrast 2.5-inch LCD screen for desktop climate monitoring.",
   "local_operation": "100% local Zigbee telemetry.",
   "power_and_wiring": "CR2450 coin cell battery.",
   "connectivity": "Zigbee End Device.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-zooz-zen32-ha",
   "device_name": "Zooz Z-Wave Plus Scene Controller (ZEN32)",
   "device_brand": "Zooz",
   "target_platform": "Home Assistant (Z-Wave JS)",
   "protocol": "Z-Wave Plus v2",
   "bridge_required": false,
   "border_router_needed": "Z-Wave Controller 800 Series",
   "reset_sequence": "Tap top paddle 3 times quickly hold on 3rd tap for 15 seconds until LED turns red.",
   "primary_entities": [
    "Relay Load Switch",
    "4x Scene Buttons",
    "Multi-Tap Scene Events"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "5-button Z-Wave scene controller switch featuring 1 relay load channel and 4 customizable RGB LED scene control buttons.",
   "local_operation": "100% local Z-Wave JS command execution.",
   "power_and_wiring": "Mains powered AC 120V.",
   "connectivity": "Functions as a Z-Wave Plus mesh repeater.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-zooz-zen77-ha",
   "device_name": "Zooz ZEN77 S2 800 Series Dimmer Switch",
   "device_brand": "Zooz",
   "target_platform": "Home Assistant (Z-Wave JS)",
   "protocol": "Z-Wave 800 Series",
   "bridge_required": false,
   "border_router_needed": "Z-Wave Controller",
   "reset_sequence": "Tap upper paddle 3 times quickly and hold on 3rd tap for 10 seconds.",
   "primary_entities": [
    "Dimmer Light Level",
    "Ramp Rate Control",
    "Scene Trigger Counter"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Next-generation Z-Wave 800 series in-wall light dimmer with Long Range (LR) capability and S2 security framework.",
   "local_operation": "100% local Z-Wave JS execution.",
   "power_and_wiring": "Mains powered AC 120V.",
   "connectivity": "Z-Wave 800 series mesh repeater.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "120V AC, neutral wire required",
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": "TRIAC dimmer: LED up to 100W, incandescent up to 300W",
   "spec_source": "Zooz ZEN77 specifications"
  },
  {
   "entry_id": "sh-switchbot-hub2-ha",
   "device_name": "SwitchBot Hub 2 (Matter & IR Bridge)",
   "device_brand": "SwitchBot",
   "target_platform": "Home Assistant (Matter / BLE)",
   "protocol": "Matter over Wi-Fi / BLE",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press and hold both buttons on Hub 2 front display for 15 seconds until icon blinks.",
   "primary_entities": [
    "Thermo-Hygrometer Temp",
    "Humidity (%)",
    "IR Remote Blaster"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Matter-certified smart Wi-Fi hub featuring built-in temperature and humidity display plus universal infrared remote blaster.",
   "local_operation": "100% local Matter controller integration.",
   "power_and_wiring": "USB-C 5V powered.",
   "connectivity": "N/A",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "sh-reolink-poe-ha",
   "device_name": "Reolink Video Doorbell PoE",
   "device_brand": "Reolink",
   "target_platform": "Home Assistant (ONVIF / RTSP)",
   "protocol": "Ethernet PoE (Local API)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Use reset pin to hold reset button inside wiring box for 10 seconds.",
   "primary_entities": [
    "2K RTSP Video Stream",
    "Doorbell Chime Push",
    "Motion Detection"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "High-definition 2K 5MP PoE video doorbell with zero cloud reliance local RTSP streaming and ONVIF protocol support.",
   "local_operation": "100% local Ethernet RTSP stream execution.",
   "power_and_wiring": "Power over Ethernet (PoE 48V IEEE 802.3af) or 12-24VAC.",
   "connectivity": "High-speed wired LAN connection.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-xiao-s3-sense-esphome",
   "device_name": "Seeed Studio XIAO ESP32S3 Sense Cam & Mic",
   "device_brand": "Seeed Studio",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "DVP / I2S / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button while plugging USB cable.",
   "primary_entities": [
    "OV2640 / OV3660 Camera Stream",
    "PDM Digital Mic Audio",
    "MicroSD Card"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Thumb-sized ESP32-S3 module featuring camera expansion board with OV2640 (Early Revisions) / OV3660 (Current Revisions) 3MP sensor, PDM digital microphone, and MicroSD slot for local AI audio/video telemetry.",
   "local_operation": "100% local camera stream and audio processing.",
   "power_and_wiring": "USB-C 5V power input.",
   "connectivity": "Wi-Fi 2.4GHz / Bluetooth 5.0.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-uno-r4-wifi-ard",
   "device_name": "Arduino UNO R4 WiFi LED Matrix Board",
   "device_brand": "Arduino",
   "target_platform": "Arduino Ecosystem",
   "protocol": "SPI / I2C / 5V Native",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Double tap reset button quickly to enter bootloader.",
   "primary_entities": [
    "12x8 LED Matrix Display",
    "Wi-Fi Telemetry",
    "ESP32-S3 Co-processor"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "32-bit RA4M1 ARM Cortex-M4 microcontroller board featuring built-in 12x8 LED matrix display and ESP32-S3 Wi-Fi co-processor.",
   "local_operation": "Local hardware matrix rendering and Wi-Fi stack.",
   "power_and_wiring": "5V VCC via USB-C or 7-24V DC Barrel Jack.",
   "connectivity": "Wi-Fi 2.4GHz / BLE 5.0.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32cam-ov2640-ha",
   "device_name": "ESP32-CAM Board with OV2640 Camera",
   "device_brand": "Ai-Thinker",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "DVP Parallel / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Connect GPIO0 to GND and press Reset button to enter serial flash mode.",
   "primary_entities": [
    "Camera Motion Stream",
    "Flashlight LED",
    "Frame Rate"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Popular low-cost ESP32 camera development board with OV2640 2MP CMOS camera sensor for video streaming in Home Assistant.",
   "local_operation": "100% local video stream processing over Wi-Fi.",
   "power_and_wiring": "5V VCC input (requires stable 2A USB power supply).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-stm32-blackpill-ard",
   "device_name": "STM32F411 Black Pill MPU9250 IMU",
   "device_brand": "WeAct Studio",
   "target_platform": "Arduino Ecosystem",
   "protocol": "SPI / I2C / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT0 button down while pressing and releasing NRST reset button.",
   "primary_entities": [
    "3-Axis Accel",
    "3-Axis Gyro",
    "3-Axis Magnetometer"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "100MHz ARM Cortex-M4 STM32F411 Black Pill paired with MPU9250 9-axis motion tracking sensor for flight controllers and robotics.",
   "local_operation": "Local high-speed SPI/I2C IMU polling.",
   "power_and_wiring": "USB-C 5V input (3.3V regulator onboard).",
   "connectivity": "Wired Serial / SPI.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-teensy41-ethernet-ard",
   "device_name": "Teensy 4.1 ARM Cortex-M7 Ethernet Board",
   "device_brand": "PJRC",
   "target_platform": "Arduino Ecosystem",
   "protocol": "High-Speed SPI / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press onboard pushbutton for 1 second to flash via Teensy Loader.",
   "primary_entities": [
    "600MHz Microcontroller",
    "DP83825 PHY Ethernet",
    "MicroSD Card"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "600MHz ARM Cortex-M7 development board featuring native 100Mbit Ethernet hardware PHY and SD card slot for ultra-fast telemetry.",
   "local_operation": "100% local hardware Ethernet data processing.",
   "power_and_wiring": "Micro-USB 5V input (3.3V logic level I/O).",
   "connectivity": "Wired 100Mbit Ethernet / USB.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-lilygo-tdisplay-s3",
   "device_name": "LilyGO T-Display-S3 ST7789 Color LCD",
   "device_brand": "LilyGO",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "8-bit Parallel / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button (GPIO0) while pressing reset button.",
   "primary_entities": [
    "170x320 IPS Color Screen",
    "Battery Voltage",
    "Dual Touch Buttons"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "ESP32-S3 development board integrated with 1.91-inch 170x320 ST7789 color IPS display and dual programmable buttons.",
   "local_operation": "100% local parallel display execution.",
   "power_and_wiring": "USB-C 5V or 3.7V JST LiPo battery.",
   "connectivity": "Wi-Fi 2.4GHz / BLE 5.0.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mhz19b-esphome",
   "device_name": "MH-Z19B NDIR CO2 Sensor",
   "device_brand": "Winsen",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Carbon Dioxide CO2 (PPM)",
    "Temperature (C)",
    "Automatic Calibration"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Gold-plated NDIR carbon dioxide gas sensor measuring indoor CO2 levels from 0 to 5000 PPM with high selectivity.",
   "local_operation": "100% local UART serial data decoding.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17 (3.3V logic UART).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sen0395-ha",
   "device_name": "SEN0395 24GHz mmWave Presence Radar",
   "device_brand": "DFRobot",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Human Presence State",
    "Motion Distance (m)",
    "Radar Target Energy"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "24GHz Doppler mmWave radar module delivering instant static human presence and micro-motion tracking inside rooms.",
   "local_operation": "100% local mmWave radar processing.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ens160-esphome",
   "device_name": "ScioSense ENS160 Multi-Gas Sensor",
   "device_brand": "ScioSense",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Air Quality Index (AQI)",
    "TVOC (ppb)",
    "eCO2 (ppm)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Digital multi-gas air quality sensor calculating real-time TVOC eCO2 and AQI indices for ventilation automation.",
   "local_operation": "100% local I2C sensor reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-vl53l3cx-ha",
   "device_name": "VL53L3CX Multi-Target ToF Distance Sensor",
   "device_brand": "STMicroelectronics",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Multi-Target Distance (mm)",
    "Object 1 Distance",
    "Object 2 Distance"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Advanced Time-of-Flight distance sensor capable of detecting multiple targets simultaneously within a 3-meter range.",
   "local_operation": "100% local laser ranging.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-max30100-ard",
   "device_name": "MAX30100 Heart Rate Oximeter Sensor",
   "device_brand": "Maxim Integrated",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Heart Rate (BPM)",
    "SpO2 Blood Oxygen (%)",
    "IR LED Reflectance"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Integrated pulse oximetry and heart-rate monitor IC with ambient light cancellation for wearable health devices.",
   "local_operation": "100% local biometric signal filtering.",
   "power_and_wiring": "1.8V-3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 INT=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz / BLE.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-bmp388-esphome",
   "device_name": "BMP388 Precision Barometric Pressure Sensor",
   "device_brand": "Bosch Sensortec",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "High Precision Pressure (hPa)",
    "Temperature (C)",
    "Altitude (m)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High-precision 24-bit barometric pressure sensor providing +/- 0.5 hPa accuracy for floor-level altitude tracking.",
   "local_operation": "100% local pressure telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-bmp390-ha",
   "device_name": "Bosch BMP390 Precision Barometer Sensor",
   "device_brand": "Bosch Sensortec",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Pressure (hPa)",
    "Ambient Temperature (C)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Compact low-power pressure sensor for weather station tracking drone altitude stabilization and indoor climate monitoring.",
   "local_operation": "100% local I2C pressure polling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-nextion-esphome",
   "device_name": "Nextion HMI Touch Display Module",
   "device_brand": "Nextion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Power on board with microSD card inserted to load .tft UI firmware.",
   "primary_entities": [
    "Nextion HMI Touch UI",
    "Page Navigation",
    "Text & Gauge Components"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Smart HMI touchscreen display module offloading UI graphics rendering to onboard ARM processor over serial UART.",
   "local_operation": "100% local serial GUI control.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-sh1106-ha",
   "device_name": "SH1106 1.3 Inch OLED Display (128x64)",
   "device_brand": "SinoWealth",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during boot.",
   "primary_entities": [
    "1.3 inch OLED Display",
    "Text Buffer",
    "Brightness Control"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "1.3-inch blue/white monochrome OLED display module using SH1106 driver IC for showing Home Assistant metrics.",
   "local_operation": "100% local OLED display buffer.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO4 (D2) SCL=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mpu9250-ard",
   "device_name": "MPU9250 9-Axis MotionTracking IMU",
   "device_brand": "InvenSense",
   "target_platform": "Arduino Ecosystem",
   "protocol": "SPI / I2C / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "3-Axis Acceleration",
    "3-Axis Gyroscope",
    "3-Axis Compass Heading"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "9-axis motion tracking sensor combining 3-axis gyro 3-axis accelerometer and AK8963 3-axis magnetometer.",
   "local_operation": "100% local 9-axis sensor fusion execution.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 INT=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sht40-esphome",
   "device_name": "SHT40 High-Accuracy Temp Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Relative Humidity (%)",
    "Temperature (C)",
    "Built-in Heater"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Ultra-compact thumbnail-sized XIAO ESP32C3 board paired with SHT40 temperature and humidity sensor for miniature wireless nodes.",
   "local_operation": "100% local I2C climate reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "Bare sensor / ESP32",
     "entry_id": "emb-esp32-sht40-esphome",
     "is_canonical": true,
     "device_name": "SHT40 High-Accuracy Temp Sensor",
     "protocol": "I2C Bus / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
     "primary_entities": [
      "Relative Humidity (%)",
      "Temperature (C)",
      "Built-in Heater"
     ]
    },
    {
     "label": "Seeed XIAO ESP32-C3",
     "entry_id": "emb-xiao-c3-sht40-esphome",
     "is_canonical": false,
     "device_name": "Seeed Studio XIAO ESP32C3 SHT40 Temp Sensor",
     "protocol": "I2C Bus / 3.3V",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "USB-C 5V or 3.7V LiPo battery pad.",
     "primary_entities": [
      "High Precision Temp (C)",
      "Relative Humidity (%)"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp32-apollo-air1",
   "device_name": "Apollo Automation AIR-1 Sensor Node",
   "device_brand": "Apollo",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Wi-Fi (ESPHome)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold onboard BOOT button for 10 seconds to enter AP mode.",
   "primary_entities": [
    "PM2.5 Dust",
    "CO2 PPM",
    "SEN0395 mmWave Presence",
    "RGB Status LED"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "All-in-one open-source smart home sensor node integrating mmWave presence particulate matter CO2 and environmental sensors.",
   "local_operation": "100% local ESPHome native API.",
   "power_and_wiring": "USB-C 5V power supply.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-athom-plug",
   "device_name": "Athom ESPHome Smart Energy Plug",
   "device_brand": "Athom",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Wi-Fi (ESPHome)",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold power button for 10 seconds to reset Wi-Fi configuration.",
   "primary_entities": [
    "Energy Switch",
    "Power (W)",
    "Voltage (V)",
    "Total kWh"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Pre-flashed open-source ESPHome smart plug providing instant Home Assistant auto-discovery and high-accuracy energy metering.",
   "local_operation": "100% local native API execution.",
   "power_and_wiring": "Mains powered AC 110-240V.",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Natively Supported",
   "power_input": "100–240V AC 50/60Hz",
   "gpio_logic_voltage": null,
   "ingress_protection": "ABS+PC housing, 94-V0 flame rating, −20°C to +50°C",
   "peak_current": "16A / 3680W",
   "spec_source": "Athom ESPHome plug product specifications"
  },
  {
   "entry_id": "emb-esp32-ina226-ha",
   "device_name": "INA226 Bi-Directional Power Monitor",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Voltage (V)",
    "Current (mA)",
    "Power (W)",
    "Shunt Voltage (mV)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "High-precision 16-bit I2C current and voltage monitor measuring up to 36V DC bus lines with sub-milliamp accuracy.",
   "local_operation": "100% local current sampling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mlx90640-ard",
   "device_name": "MLX90640 32x24 IR Thermal Camera Array",
   "device_brand": "Melexis",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "32x24 Thermal Pixel Matrix",
    "Min & Max Temp (C)",
    "Thermal Frame"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "768-pixel thermal imaging sensor array generating 32x24 pixel heatmaps for non-contact hot-spot detection.",
   "local_operation": "100% local thermal frame decoding.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 (1MHz I2C speed).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-apds9960-ha",
   "device_name": "APDS9960 Proximity & Gesture Sensor",
   "device_brand": "Broadcom",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Proximity Distance",
    "Gesture Direction (UP/DOWN/LEFT/RIGHT)",
    "Ambient Lux"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Multi-function sensor array detecting hand gestures color spectrum ambient light level and physical proximity.",
   "local_operation": "100% local gesture recognition.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 INT=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mcp23017-esphome",
   "device_name": "MCP23017 16-Bit I2C GPIO Expander",
   "device_brand": "Microchip Technology",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "16x Expanded Digital GPIOs",
    "Interrupt Output Pins"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "16-bit I2C parallel port expander with configurable interrupt output pins for adding buttons and relays to microcontrollers.",
   "local_operation": "100% local I2C port expansion.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 INTA=GPIO19.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ds1307-ard",
   "device_name": "DS1307 Real-Time Clock Module",
   "device_brand": "Maxim Integrated",
   "target_platform": "Arduino Ecosystem",
   "protocol": "I2C Bus / 5V Native",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Press BOOT button while resetting.",
   "primary_entities": [
    "Real-Time Clock",
    "NVRAM Buffer",
    "Battery Backup State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "I2C real-time clock IC with 56-byte non-volatile RAM and CR2032 battery backup for off-grid logging.",
   "local_operation": "100% local timekeeping.",
   "power_and_wiring": "5V VCC I2C SDA=GPIO21 SCL=GPIO22 (requires level shifter).",
   "connectivity": "Wi-Fi 2.4GHz / Offline.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-veml7700-ha",
   "device_name": "VEML7700 Ambient Light Lux Sensor",
   "device_brand": "Vishay Intertechnology",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Illuminance (Lux)",
    "White Light Level"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "High-accuracy 16-bit digital ambient light sensor measuring lux levels up to 120000 lx for solar tracking.",
   "local_operation": "100% local lux telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-max7219-esphome",
   "device_name": "MAX7219 8x8 LED Matrix Display",
   "device_brand": "Maxim Integrated",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "SPI Bus / 3.3V to 5V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "8x8 LED Dot Matrix",
    "Scrolling Text Banner",
    "Brightness"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Cascadable 8x8 red LED dot matrix display module for scrolling text clocks stock tickers and status banners.",
   "local_operation": "100% local SPI matrix rendering.",
   "power_and_wiring": "5V VCC for LEDs; SPI (CS=GPIO5 SCK=GPIO18 MOSI=GPIO23).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hmc5883l-ha",
   "device_name": "HMC5883L 3-Axis Magnetometer Compass",
   "device_brand": "Honeywell",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Magnetic Heading (Deg)",
    "Field Vector X/Y/Z"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "3-axis digital compass IC measuring Earth magnetic field for indoor robot navigation and orientation tracking.",
   "local_operation": "100% local magnetic heading calculations.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-water-flow-ha",
   "device_name": "YF-S201 Water Flow Meter Sensor",
   "device_brand": "YFS Sensor",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Pulse Counter / 5V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Flow Rate (L/min)",
    "Total Volume Consumed (Liters)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "1/2-inch hall effect turbine water flow sensor measuring water consumption rate and total volume in Home Assistant.",
   "local_operation": "100% local pulse counting.",
   "power_and_wiring": "5V VCC Signal=GPIO14 (requires 1k/2k resistor voltage divider to 3.3V).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-current-zmpt101b",
   "device_name": "ZMPT101B AC Voltage Transformer Module",
   "device_brand": "Microchip Technology",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Analog ADC / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "RMS AC Voltage (V)",
    "Sine Wave Peak",
    "Calibration Offset"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Active single-phase AC voltage transformer module measuring grid AC voltage from 100V to 250V AC.",
   "local_operation": "100% local AC voltage sampling.",
   "power_and_wiring": "5V VCC Analog Out=GPIO34 (ADC1).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "5–30V DC module supply; 80–250V AC measured input",
   "gpio_logic_voltage": "Analog output centred on VCC/2 DC offset (LM358)",
   "ingress_protection": "None — exposed board, enclosure required",
   "peak_current": "2mA rated input/output current",
   "spec_source": "ZMPT101B transformer datasheet"
  },
  {
   "entry_id": "emb-esp32-dust-gp2y1010",
   "device_name": "Sharp GP2Y1010 Dust Sensor Module",
   "device_brand": "Sharp Electronics",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Analog ADC / 3.3V to 5V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Optical Dust Density (mg/m3)",
    "Air Cleanliness Level"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Optical dust sensor detecting airborne particulate matter and cigarette smoke using infrared emitting diode.",
   "local_operation": "100% local dust pulse sampling.",
   "power_and_wiring": "5V VCC LED_PIN=GPIO16 Analog Out=GPIO34.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-pir-am312",
   "device_name": "AM312 Mini PIR Motion Sensor Module",
   "device_brand": "Keyestudio",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Mini PIR Motion State",
    "Low Power Idle"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Ultra-small 3.3V passive infrared motion detector module for battery-powered occupancy sensors.",
   "local_operation": "100% local PIR detection.",
   "power_and_wiring": "3.3V VCC Signal=GPIO13.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-buzzer-esphome",
   "device_name": "Passive Piezo RTTTL Music Buzzer",
   "device_brand": "CUI Devices",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "PWM GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Ringtone Audio RTTTL",
    "Tone Frequency (Hz)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Piezoelectric buzzer module for playing Nokia RTTTL tunes alarm sound effects and status chimes in ESPHome.",
   "local_operation": "100% local PWM tone generation.",
   "power_and_wiring": "3.3V VCC PWM=GPIO18.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-relay-ssr",
   "device_name": "Solid State Relay (SSR-25DA) 25A Module",
   "device_brand": "Fotek",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Solid State Relay Switch",
    "Zero-Cross Switching State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "25A solid state relay module enabling silent zero-cross switching for high-power heating elements and AC loads.",
   "local_operation": "100% local SSR control.",
   "power_and_wiring": "3.3V-32V DC control input (Signal=GPIO16).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "3–32V DC control input; 24–380V AC load side",
   "gpio_logic_voltage": "3–32V DC control (ON >2.4V, OFF <1.0V)",
   "ingress_protection": "None — exposed terminals, enclosure and heatsink required",
   "peak_current": "25A max load; 7.5mA trigger @ 12V; zero-cross switching",
   "spec_source": "Fotek SSR-DA series datasheet"
  },
  {
   "entry_id": "emb-esp32-hcsr04-esphome",
   "device_name": "HC-SR04 Ultrasonic Ranging Sensor Module",
   "device_brand": "SparkFun",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "GPIO Pulse / Voltage Divider",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Distance Measurement (cm)",
    "Proximity Alarm State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Classic ultrasonic distance sensor measuring ranges from 2cm to 400cm with 3mm accuracy.",
   "local_operation": "100% local ultrasonic pulse timing.",
   "power_and_wiring": "5V VCC Trig=GPIO14 Echo=GPIO15 (requires 1k/2k voltage divider).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null,
   "variants": [
    {
     "label": "ESP32 / ESPHome",
     "entry_id": "emb-esp32-hcsr04-esphome",
     "is_canonical": true,
     "device_name": "HC-SR04 Ultrasonic Ranging Sensor Module",
     "protocol": "GPIO Pulse / Voltage Divider",
     "target_platform": "Home Assistant (ESPHome)",
     "power_and_wiring": "5V VCC Trig=GPIO14 Echo=GPIO15 (requires 1k/2k voltage divider).",
     "primary_entities": [
      "Distance Measurement (cm)",
      "Proximity Alarm State"
     ]
    },
    {
     "label": "Pico W / MicroPython",
     "entry_id": "emb-pico-w-hcsr04-mpy",
     "is_canonical": false,
     "device_name": "HC-SR04 Ultrasonic Distance Sensor",
     "protocol": "GPIO Pulse / Voltage Divider",
     "target_platform": "Home Assistant (MicroPython)",
     "power_and_wiring": "5V VCC for HC-SR04 Trig=GPIO14 Echo=GPIO15 (requires 1k/2k resistor voltage divider to 3.3V).",
     "primary_entities": [
      "Distance (cm)",
      "Proximity Alarm"
     ]
    }
   ]
  },
  {
   "entry_id": "emb-esp32-scd41-esphome",
   "device_name": "SCD41 Photoacoustic CO2 Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Carbon Dioxide CO2 (PPM)",
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Compact photoacoustic NDIR sensor measuring true CO2 from 400 to 5000 ppm with on-chip temperature and humidity compensation for ventilation automation.",
   "local_operation": "100% local I2C telemetry via ESPHome.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sht31-esphome",
   "device_name": "SHT31 Digital Temp & Humidity Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Third-generation Sensirion climate sensor with factory calibration and an ADDR pin that selects between two I2C addresses for dual-sensor installs.",
   "local_operation": "100% local I2C climate reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-htu21d-esphome",
   "device_name": "HTU21D Temp & Humidity Sensor",
   "device_brand": "TE Connectivity",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during boot.",
   "primary_entities": [
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Low-cost digital humidity and temperature sensor widely shipped on purple GY-21 breakout boards for budget room climate nodes.",
   "local_operation": "100% local I2C climate reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO4 (D2) SCL=GPIO5 (D1).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tsl2561-ha",
   "device_name": "TSL2561 Digital Lux Sensor",
   "device_brand": "ams OSRAM",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Illuminance (Lux)",
    "Infrared Level",
    "Full Spectrum Level"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Classic dual-photodiode light sensor approximating the human eye response across a 0.1 to 40000 lux range with a three-way strappable address pin.",
   "local_operation": "100% local lux telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sen55-esphome",
   "device_name": "SEN55 Environmental Sensor Node",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "PM2.5 (ug/m3)",
    "PM10 (ug/m3)",
    "VOC Index",
    "NOx Index",
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "All-in-one air quality module combining a laser particulate sensor with VOC NOx temperature and humidity sensing behind a single I2C interface.",
   "local_operation": "100% local I2C air quality telemetry.",
   "power_and_wiring": "5V VCC (3.3V logic I2C) SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ltr390-ha",
   "device_name": "LTR390 UV & Ambient Light Sensor",
   "device_brand": "Lite-On",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "UV Index",
    "Ambient Light (Lux)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Combined ultraviolet and ambient light sensor reporting UV index for sun exposure alerts and greenhouse monitoring.",
   "local_operation": "100% local UV and lux sampling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-bme280-esphome",
   "device_name": "BME280 Temp Humidity & Pressure Sensor",
   "device_brand": "Bosch Sensortec",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Temperature (C)",
    "Relative Humidity (%)",
    "Barometric Pressure (hPa)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The definitive weather station sensor combining temperature humidity and barometric pressure in one package with an SDO-strappable I2C address.",
   "local_operation": "100% local I2C environmental telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mpu6050-esphome",
   "device_name": "MPU6050 6-Axis Accel & Gyro IMU",
   "device_brand": "InvenSense",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "3-Axis Acceleration (m/s2)",
    "3-Axis Gyroscope (deg/s)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Ubiquitous 6-axis motion sensor used for vibration monitoring tilt detection and DIY motion alarms with an AD0-strappable address.",
   "local_operation": "100% local I2C motion sampling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sgp30-esphome",
   "device_name": "SGP30 TVOC & eCO2 Air Quality Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "TVOC (ppb)",
    "eCO2 (ppm)",
    "Baseline Calibration"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Metal-oxide gas sensor reporting total VOCs and CO2-equivalent readings with on-chip baseline compensation for kitchen and bathroom air automation.",
   "local_operation": "100% local I2C air quality sampling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tca9548a-esphome",
   "device_name": "TCA9548A 8-Channel I2C Multiplexer",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "8x Isolated I2C Channels",
    "Address Conflict Isolation"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Eight-channel I2C switch that lets several sensors sharing one fixed address coexist on a single host by isolating each onto its own downstream bus.",
   "local_operation": "100% local I2C bus switching.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ld2450-ha",
   "device_name": "HLK-LD2450 24GHz Multi-Target Radar",
   "device_brand": "Hi-Link",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Target Position X/Y (mm)",
    "Target Speed",
    "Presence Zones"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "24GHz mmWave radar tracking up to three moving targets with X/Y coordinates enabling zone-based presence automation beyond what a single-point sensor reports.",
   "local_operation": "100% local UART radar decoding.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17 (3.3V logic UART).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sds011-esphome",
   "device_name": "SDS011 Laser PM2.5 Dust Sensor",
   "device_brand": "Nova Fitness",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "PM2.5 (ug/m3)",
    "PM10 (ug/m3)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Laser scattering particulate sensor with an internal fan reporting PM2.5 and PM10 concentrations for outdoor air quality stations.",
   "local_operation": "100% local UART particulate decoding.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17 (3.3V logic UART).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-pzem004t-ha",
   "device_name": "PZEM-004T V3 AC Energy Monitor",
   "device_brand": "Peacefair",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Voltage (V)",
    "Current (A)",
    "Power (W)",
    "Energy (kWh)",
    "Frequency (Hz)",
    "Power Factor"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Single-phase AC energy meter measuring an 80-260V mains circuit through an isolating current transformer; the measurement side connects directly to line voltage and must be enclosed before energisation.",
   "local_operation": "100% local UART Modbus readout.",
   "power_and_wiring": "5V VCC UART TX=GPIO16 RX=GPIO17; AC terminals connect to 80-260V mains via the supplied CT — isolate supply before wiring.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "Measurement side fed from the 80–260V AC line; TTL side is passive and needs external 5V",
   "gpio_logic_voltage": "5V TTL UART (9600 8N1), optocoupler-isolated — all four pins (5V, RX, TX, GND) must be connected",
   "ingress_protection": "None — exposed board, enclosure required; −20°C to +60°C working range",
   "peak_current": "0–100A via external CT (PZEM-004T-100A); 0–23kW active power",
   "spec_source": "Peacefair PZEM-004T V3.0 user manual"
  },
  {
   "entry_id": "emb-esp32-rcwl0516-ha",
   "device_name": "RCWL-0516 Microwave Radar Motion Module",
   "device_brand": "RCWL",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Microwave Motion State",
    "Detection Hold Time"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Doppler microwave motion module detecting movement through thin walls and enclosures where a PIR lens cannot see; sold as an unbranded reference design by many vendors.",
   "local_operation": "100% local GPIO motion detection.",
   "power_and_wiring": "4-28V VIN (3.3V OUT logic) Signal=GPIO13.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": true,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp8266-ttp223-esphome",
   "device_name": "TTP223 Capacitive Touch Button Module",
   "device_brand": "Tontek",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold FLASH button during boot.",
   "primary_entities": [
    "Touch Binary State",
    "Toggle Mode Jumper"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Single-pad capacitive touch sensor module replacing mechanical buttons behind glass or acrylic panels for splash-proof control surfaces.",
   "local_operation": "100% local GPIO touch detection.",
   "power_and_wiring": "3.3V VCC Signal=GPIO12 (D6).",
   "connectivity": "Wi-Fi 802.11b/g/n.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ky040-esphome",
   "device_name": "KY-040 Rotary Encoder Module",
   "device_brand": "Keyestudio",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Digital GPIO / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Rotation Steps",
    "Push Button State"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Detented quadrature rotary encoder with push switch for volume dials brightness knobs and menu navigation in ESPHome dashboards.",
   "local_operation": "100% local quadrature decoding.",
   "power_and_wiring": "3.3V VCC CLK=GPIO25 DT=GPIO26 SW=GPIO27.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-a02yyuw-ha",
   "device_name": "A02YYUW Waterproof Ultrasonic Sensor",
   "device_brand": "DFRobot",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Distance (mm)",
    "Waterproof Probe State"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "IP67 waterproof ultrasonic ranging probe measuring 3 to 450cm over UART for water tank levels sump pits and cisterns where HC-SR04 boards corrode.",
   "local_operation": "100% local UART distance decoding.",
   "power_and_wiring": "3.3V-5V VCC UART TX=GPIO16 RX=GPIO17.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ld2412-esphome",
   "device_name": "HLK-LD2412 24GHz Presence Radar",
   "device_brand": "Hi-Link",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Presence State",
    "Moving/Still Target",
    "Target Distance (cm)",
    "Light Level"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "24GHz mmWave radar distinguishing moving from stationary presence with per-gate sensitivity tuning and an onboard light sensor; the wider-beam sibling of the LD2410.",
   "local_operation": "100% local UART radar decoding.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17 at 115200 baud (3.3V logic UART).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ld2420-esphome",
   "device_name": "HLK-LD2420 24GHz Presence Radar",
   "device_brand": "Hi-Link",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Presence State",
    "Moving Target Distance (cm)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Budget 24GHz mmWave presence module of the LD2410 family; newer firmware talks at 115200 baud where pre-v1.5.3 units ship locked to 256000.",
   "local_operation": "100% local UART radar decoding.",
   "power_and_wiring": "3.3V VCC UART TX=GPIO16 RX=GPIO17 at 115200 baud (256000 on firmware before v1.5.3).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-rd03d-esphome",
   "device_name": "Ai-Thinker RD-03D Multi-Target Radar",
   "device_brand": "Ai-Thinker",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Presence State",
    "Multi-Target Count",
    "Target Position X/Y (mm)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "24GHz mmWave radar tracking up to three targets with X/Y coordinates over a 256000-baud UART; the budget alternative to the LD2450 for zone-based presence.",
   "local_operation": "100% local UART radar decoding.",
   "power_and_wiring": "5V VCC input UART TX=GPIO16 RX=GPIO17 at 256000 baud (3.3V logic UART).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-jsn-sr04t-ha",
   "device_name": "JSN-SR04T Waterproof Ultrasonic Sensor",
   "device_brand": "Generic",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Distance (mm)",
    "Waterproof Transducer"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Sealed ultrasonic transducer on a 2.5m lead for water tank and sump level sensing where an exposed HC-SR04 corrodes; the common Mode 1 boards report over UART.",
   "local_operation": "100% local UART distance decoding.",
   "power_and_wiring": "5V VCC UART TX=GPIO16 RX=GPIO17 (3.3V logic UART).",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": true,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tof10120-ha",
   "device_name": "TOF10120 Laser Rangefinder Module",
   "device_brand": "Generic",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Distance (mm)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Compact 10-180cm time-of-flight ranging module readable over I2C for parking sensors bin-level monitors and desk occupancy.",
   "local_operation": "100% local I2C distance readout.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": true,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-ccs811-esphome",
   "device_name": "CCS811 eCO2 & TVOC Air Sensor",
   "device_brand": "ams OSRAM",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "eCO2 (ppm)",
    "TVOC (ppb)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Metal-oxide gas sensor estimating CO2-equivalent and total VOC levels; needs a 48-hour burn-in before its baseline settles which catches out first-time users.",
   "local_operation": "100% local I2C air quality sampling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22; WAKE tied to GND on most breakouts.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-sps30-esphome",
   "device_name": "SPS30 Laser Particulate Sensor",
   "device_brand": "Sensirion",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "PM1.0 (ug/m3)",
    "PM2.5 (ug/m3)",
    "PM4.0 (ug/m3)",
    "PM10 (ug/m3)"
   ],
   "setup_complexity": "Intermediate",
   "overview_summary": "Automotive-grade laser scattering particulate sensor with a self-cleaning fan and an eight-year lifetime rating; the step up from the PMS5003 for permanent installs.",
   "local_operation": "100% local I2C particulate telemetry.",
   "power_and_wiring": "5V VCC (3.3V logic I2C) SDA=GPIO21 SCL=GPIO22; SEL tied to GND for I2C mode.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-pmsa003i-ha",
   "device_name": "PMSA003I I2C Particulate Sensor",
   "device_brand": "Plantower",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "PM1.0 (ug/m3)",
    "PM2.5 (ug/m3)",
    "PM10 (ug/m3)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "The I2C variant of the Plantower PMS family popularised by Adafruit breakouts — same laser scattering cell as the PMS5003 without tying up a UART.",
   "local_operation": "100% local I2C particulate telemetry.",
   "power_and_wiring": "5V VCC (3.3V logic I2C) SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hlw8012-esphome",
   "device_name": "HLW8012 Power Monitor Module",
   "device_brand": "Hiliwei",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "Pulse Frequency / 5V Logic",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Power (W)",
    "Current (A)",
    "Voltage (V)",
    "Energy (kWh)"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "The energy metering chip inside the original Sonoff POW on a bare breakout: samples the mains line through an onboard shunt and divider and reports as pulse frequencies on CF/CF1.",
   "local_operation": "100% local pulse-frequency decoding.",
   "power_and_wiring": "5V VCC; SEL=GPIO5 CF=GPIO14 CF1=GPIO13; board sits at line potential — isolate before wiring and enclose before energising.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "5V DC supply (built-in 2.43V reference; resets below 4V); samples the mains line via onboard shunt and divider",
   "gpio_logic_voltage": "SEL/CF/CF1 logic at the 5V supply rail",
   "ingress_protection": "None — exposed board at line potential, enclosure required",
   "peak_current": null,
   "spec_source": "Hiliwei HLW8012 datasheet"
  },
  {
   "entry_id": "emb-esp32-cse7766-esphome",
   "device_name": "CSE7766 UART Energy Monitor",
   "device_brand": "Chipsea",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "UART Serial / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Power (W)",
    "Current (A)",
    "Voltage (V)",
    "Energy (kWh)",
    "Apparent Power (VA)",
    "Power Factor"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "The metering chip from the Sonoff POW R2 as a bare module: streams voltage current and power over a one-way 4800-baud UART while sitting directly on the measured line.",
   "local_operation": "100% local UART energy decoding.",
   "power_and_wiring": "3.3V VCC; RX=GPIO16 at 4800 baud 8E1 receive-only; board sits at line potential — isolate before wiring and enclose before energising.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": true,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": "3.3V DC supply; samples the mains line via onboard shunt and divider",
   "gpio_logic_voltage": "3.3V UART TX at 4800 baud, output-only",
   "ingress_protection": "None — exposed board at line potential, enclosure required",
   "peak_current": null,
   "spec_source": "Chipsea CSE7766 datasheet"
  },
  {
   "entry_id": "emb-esp32-max17043-ha",
   "device_name": "MAX17043 LiPo Fuel Gauge",
   "device_brand": "Maxim Integrated",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Battery Voltage (V)",
    "Battery Level (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Single-cell lithium fuel gauge using Maxim's ModelGauge algorithm to report an actual percentage instead of a bare voltage — the missing piece in most battery-powered ESP32 builds.",
   "local_operation": "100% local I2C battery telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22; cell connects to CELL+/CELL-.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-tmp117-esphome",
   "device_name": "TMP117 Precision Temperature Sensor",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Temperature (C)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Factory-calibrated digital thermometer accurate to 0.1C from -20C to +50C without user calibration — reference-grade readings for the price of a breakout.",
   "local_operation": "100% local I2C temperature reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-mcp9808-ha",
   "device_name": "MCP9808 Precision Temperature Sensor",
   "device_brand": "Microchip Technology",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Temperature (C)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Maximum-accuracy 0.25C digital temperature sensor with three address pins for eight-sensor installs; the long-standing Adafruit staple for fridge freezer and incubator monitoring.",
   "local_operation": "100% local I2C temperature reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-hdc1080-esphome",
   "device_name": "HDC1080 Temp & Humidity Sensor",
   "device_brand": "Texas Instruments",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Temperature (C)",
    "Relative Humidity (%)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Low-power TI climate sensor with an integrated heater for recovering the humidity element after condensation; common on the blue CJMCU-1080 breakout.",
   "local_operation": "100% local I2C climate reading.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-dps310-ha",
   "device_name": "DPS310 Precision Barometric Sensor",
   "device_brand": "Infineon",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Barometric Pressure (hPa)",
    "Temperature (C)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Miniature barometric sensor resolving 0.06hPa — enough to detect a door opening from the pressure wave — for weather stations and floor-level detection.",
   "local_operation": "100% local I2C pressure sampling.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-max44009-ha",
   "device_name": "MAX44009 Wide-Range Lux Sensor",
   "device_brand": "Maxim Integrated",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Illuminance (Lux)"
   ],
   "setup_complexity": "Plug-and-Play",
   "overview_summary": "Ambient light sensor spanning 0.045 to 188000 lux in one automatic range — from moonlight to direct summer sun without gain switching — at microamp supply currents.",
   "local_operation": "100% local lux telemetry.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  },
  {
   "entry_id": "emb-esp32-as3935-esphome",
   "device_name": "AS3935 Franklin Lightning Sensor",
   "device_brand": "ams OSRAM",
   "target_platform": "Home Assistant (ESPHome)",
   "protocol": "I2C Bus / 3.3V",
   "bridge_required": false,
   "border_router_needed": "None",
   "reset_sequence": "Hold BOOT button for 3s.",
   "primary_entities": [
    "Lightning Distance (km)",
    "Lightning Energy",
    "Storm Alert"
   ],
   "setup_complexity": "Advanced",
   "overview_summary": "Franklin lightning sensor detecting strikes up to 40km out and estimating storm-front distance — advance warning for pool alarms awnings and antenna disconnects.",
   "local_operation": "100% local I2C strike detection.",
   "power_and_wiring": "3.3V VCC I2C SDA=GPIO21 SCL=GPIO22 IRQ=GPIO27; keep the antenna away from switching supplies.",
   "connectivity": "Wi-Fi 2.4GHz.",
   "mains_voltage": false,
   "white_label": false,
   "verdict_badge": "Compatible (Manual Config Required)",
   "power_input": null,
   "gpio_logic_voltage": null,
   "ingress_protection": null,
   "peak_current": null,
   "spec_source": null
  }
 ]
}