Zigbee & Z-Wave Local Device Database
Pricing
$2.00 / 1,000 results
Zigbee & Z-Wave Local Device Database
Zigbee and Z-Wave devices that work locally with Zigbee2MQTT or Z-Wave JS: vendor, model, Zigbee model IDs, Z-Wave product IDs, capabilities. From the MIT-licensed device databases.
Pricing
$2.00 / 1,000 results
Rating
0.0
(0)
Developer
Home Lab Mobile
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Smart Home Local Compatibility Device Database (Zigbee, Z-Wave)
Find out whether a Zigbee or Z-Wave device works locally (no vendor cloud) with Zigbee2MQTT or Z-Wave JS, and get its identifiers as clean JSON: vendor, model, Zigbee model IDs and fingerprints, Z-Wave manufacturer/product IDs, device type, capabilities and firmware notes. The data comes from the open, MIT-licensed device databases those two projects publish on npm; no website is scraped.
What it does
- Searches about 8,200 devices: 5,800 Zigbee rows (including rebranded "white-label" variants) from
zigbee-herdsman-converters, the device library behind Zigbee2MQTT, and 2,400 Z-Wave device config files from@zwave-js/config, the device database behind Z-Wave JS. - Filters by protocol, vendor and keyword. The keyword search also matches identifiers, so you can
look up a device by the Zigbee model ID it reports (e.g.
TS0601,_TZE200_...) or by its Z-WavemanufacturerId:productType:productId(e.g.0x0086:0x0002:0x0064). - Returns one row per device with a
worksLocallyWithflag, the source package version and a link to the exact definition file on GitHub, so every row can be checked. - Useful as a join key: match a shop or deal listing to a device that runs without the vendor cloud.
- Returns one result per device. You pay only for valid results; malformed rows are dropped and not charged.
- Fails loudly: if a source cannot be downloaded or its layout changes (suspiciously few devices), the run fails instead of returning an empty or partial dataset.
Input
| Field | Type | Required | Description |
|---|---|---|---|
protocols | array of "zigbee", "zwave" | no | Databases to search. Empty = both. |
vendors | array of strings | no | Keep devices whose vendor contains one of these (case-insensitive). Empty = all. |
keyword | string | no | Space-separated words that must all appear in vendor, model, description, IDs, device types or capabilities. |
includeWhiteLabels | boolean | no | Include rebranded Zigbee variants (default true). |
maxResults | integer | no | Stop after this many devices (default 100, max 10,000). Caps the cost of a run. |
Results are sorted by vendor, then model. Examples:
{ "keyword": "motion sensor", "maxResults": 20 }
{ "protocols": ["zwave"], "vendors": ["Zooz"], "maxResults": 200 }
{ "protocols": ["zigbee"], "keyword": "_TZE200_ztc6ggyl" }
Calling from an AI agent (MCP)
This Actor works as a tool through the Apify MCP server. Example tool call:
{ "actor": "homelabmobile/smart-home-device-db", "input": { "vendors": ["IKEA"], "keyword": "remote", "maxResults": 10 } }
Output
One JSON object per device. Real rows from a local run (Zigbee, then Z-Wave; the Z-Wave product list is shortened here):
{"protocol": "zigbee","vendor": "IKEA","model": "E2134","description": "VALLHORN wireless motion sensor","whiteLabelOf": null,"zigbeeModelIds": ["VALLHORN Wireless Motion Sensor"],"zigbeeFingerprints": [],"zwaveManufacturerId": null,"zwaveProducts": [],"deviceTypes": ["sensor"],"capabilities": ["occupancy", "illuminance", "identify", "battery", "voltage", "lux_value", "timer"],"zwaveConfigParameters": [],"firmwareVersionRange": null,"otaUpdates": true,"notes": [],"zwaveInclusion": null,"manualUrl": null,"worksLocallyWith": ["Zigbee2MQTT"],"sourceVersion": "zigbee-herdsman-converters@26.119.0","sourceUrl": "https://github.com/Koenkk/zigbee-herdsman-converters/blob/v26.119.0/src/devices/ikea.ts","scrapedAt": "2026-10-14T02:39:18.296Z"}
{"protocol": "zwave","vendor": "AEON Labs","model": "ZW117","description": "Range Extender 6","whiteLabelOf": null,"zigbeeModelIds": [],"zigbeeFingerprints": [],"zwaveManufacturerId": "0x0086","zwaveProducts": [{ "productType": "0x0004", "productId": "0x0075", "zwaveAllianceIds": [1998] },{ "productType": "0x0104", "productId": "0x0075", "zwaveAllianceIds": [1966] }],"deviceTypes": [],"capabilities": null,"zwaveConfigParameters": ["LED Indicator", "Partner ID", "Lock Configuration", "Device Tag", "Reset to Factory Default Setting"],"firmwareVersionRange": { "min": "0.0", "max": "255.255" },"otaUpdates": null,"notes": [],"zwaveInclusion": "Press the Z-Wave Button on Range Extender 6","manualUrl": "https://products.z-wavealliance.org/ProductManual/File?folder=&filename=MarketCertificationFiles/2520/Range%20Extender%206%20manual.pdf","worksLocallyWith": ["Z-Wave JS"],"sourceVersion": "@zwave-js/config@15.31.1","sourceUrl": "https://github.com/zwave-js/zwave-js/blob/256c0ad1214947be013828bf9e636455cab4ff9b/packages/config/config/devices/0x0086/zw117.json","scrapedAt": "2026-10-14T02:38:46.869Z"}
Field notes:
deviceTypesandcapabilitiesare Zigbee only. They are derived from the Zigbee2MQTT "exposes":light,switch,cover,lock,climate,fancome straight from the exposes;remotemeans the device sends buttonactions;sensormeans it has read-only readings other than battery, voltage and link quality. For about 270 Zigbee rows the exposes depend on the paired unit, socapabilitiesisnullandnotessays so.- Z-Wave config files do not list device classes or command classes (Z-Wave JS discovers them when the device is included), so Z-Wave rows carry configuration parameter labels instead.
worksLocallyWithlists only what the source data supports:Zigbee2MQTTfor devices defined inzigbee-herdsman-converters,Z-Wave JSfor devices with a Z-Wave JS config file. ZHA support is not claimed, because no MIT-licensed source covers it.
Each run also writes a RUN_SUMMARY record (status, counts) and a SOURCES record (package
versions and device counts) to its key-value store.
Data sources, freshness and licences
| Protocol | Source | How it is read | Freshness |
|---|---|---|---|
| Zigbee | npm package zigbee-herdsman-converters | Pinned dependency of the Actor build (currently 26.119.0). The Actor imports the per-vendor definition modules and reads their data fields. | As of the last Actor build. Upstream releases several times a week; we rebuild to pick them up. |
| Z-Wave | npm package @zwave-js/config | Latest published tarball downloaded from registry.npmjs.org at the start of each run (2 requests), checked against its sha512 integrity, parsed as JSON5 in memory. No package code is run. | Latest release at run time. |
Why this split: the Z-Wave package is pure JSON data, so reading the newest tarball each run is both
fresh and safe. The Zigbee device data is TypeScript compiled to JavaScript and has to be imported to
read capabilities; importing a different, unpinned version on every run would run unreviewed code
and could break the run whenever upstream changes its dependencies, so it is pinned. Every row
carries sourceVersion so you always know which release it came from.
Not used: zigbee2mqtt.io documentation pages (GPL-3.0), csa-iot.org product pages (their terms forbid republishing) and the CSA Distributed Compliance Ledger (terms not yet verified). Matter devices are therefore not included in this version.
Licence notices
The device data is derived from the following MIT-licensed works. Their copyright and permission notices are reproduced here as the licence requires.
zigbee-herdsman-converters (https://github.com/Koenkk/zigbee-herdsman-converters)
MIT LicenseCopyright (c) 2018 Koen KantersPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.
zwave-js / @zwave-js/config (https://github.com/zwave-js/zwave-js), including manufacturers.json
and the device configuration files
MIT LicenseCopyright (c) 2018-2024 AlCalzonePermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in allcopies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THESOFTWARE.
This Actor is not affiliated with or endorsed by the Zigbee2MQTT or Z-Wave JS projects, the Connectivity Standards Alliance or the Z-Wave Alliance. Product and brand names belong to their owners.
Pricing
Pay per event:
| Event | Price | Per 1,000 |
|---|---|---|
| Result (one valid row) | $0.002 | $2.00 |
Plus Apify's standard Actor start charge. A typical run of 20 results costs about $0.04; the whole database (about 8,200 rows) costs about $16.40.
Known limits
- Zigbee and Z-Wave only. Matter / Thread devices are not included yet (see "Data sources").
- "Works locally" means the device has a definition in the Zigbee2MQTT or Z-Wave JS database. It does not test the device, and some features may still need a recent firmware or a specific coordinator. ZHA compatibility is not reported.
- Zigbee data is as fresh as the last Actor build (the pinned package version is in every row); Z-Wave data is the latest npm release at run time.
- No prices, shop links or images: the sources do not carry them.
- Z-Wave rows have no
deviceTypesorcapabilities; the config files do not contain them. - Vendor names are as the sources spell them (e.g. Aeotec Z-Wave devices are listed as "AEON Labs").
- Personal data: the sources contain none in the fields we output; free-text fields are additionally scrubbed of e-mail addresses.
- Network use per run: at most 2 requests to registry.npmjs.org (none for Zigbee-only runs).
Support
Open an issue on the Actor's Issues tab. We reply within 2 business days.