{"_id":"@bobfrankston/wzlan","_rev":"12-b2cf1240f0cc06a17b16f01343ed352a","name":"@bobfrankston/wzlan","dist-tags":{"latest":"0.1.12"},"versions":{"0.1.1":{"name":"@bobfrankston/wzlan","version":"0.1.1","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.1","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"b6e332c702516096614eb114109c3d4fbd97a069","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.1.tgz","fileCount":16,"integrity":"sha512-kJi7PM2kpjbomhfTP6qOAe7qfZ5scy+yeQGqITaCTOHj+4lWZevfCeBDl0OMEjGgiHdrE5+RIBhdi6uGxPznow==","signatures":[{"sig":"MEYCIQCbY8wLlJqoLhr7x0uGm1vGQmAIXvzqU6148iU5LellAwIhAInXleLNnEJ+BRKwsDLyMAQXGtyaDUFF6dfoHSg7m5B6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32269},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.1.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.1.tgz","_integrity":"sha512-kJi7PM2kpjbomhfTP6qOAe7qfZ5scy+yeQGqITaCTOHj+4lWZevfCeBDl0OMEjGgiHdrE5+RIBhdi6uGxPznow==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.1_1771355700212_0.830412997273172","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bobfrankston/wzlan","version":"0.1.2","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.2","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"503653fff680fc04a91d3fde62d6f6b5a3c7f715","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.2.tgz","fileCount":16,"integrity":"sha512-UKD0a5VS3UtA0mRJVov8U9a/QXH5YhXhypb4TP2PGVzhALnuAdFdETNsoTwHHRKY6doEEbr56g/257nczynwnQ==","signatures":[{"sig":"MEUCIFQsBwQzNvoj8H9VeDssbvWZH2ScnsIiIxIFLdbbudINAiEAv1sJen09E9vbLreIMM4fXDbO6QC+KvBpTLZJ9D7ugAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32813},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.2.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.2.tgz","_integrity":"sha512-UKD0a5VS3UtA0mRJVov8U9a/QXH5YhXhypb4TP2PGVzhALnuAdFdETNsoTwHHRKY6doEEbr56g/257nczynwnQ==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.1"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.2_1771381049393_0.11300159672656562","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bobfrankston/wzlan","version":"0.1.3","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.3","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"583ab20b2c6d72d9f4ed877368fb5b1d5df1ea5f","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.3.tgz","fileCount":16,"integrity":"sha512-BuG45xZ/ldcw1uk/pvjjhx9TdIPm4L99HcmgNSx7C7bKHroNdVHURUWLSLCEpHSJlnJaIh0Hbk8AI0qyM86mHA==","signatures":[{"sig":"MEUCIHHcge4PTjdIqsj7U/ST88+InzxKUlITmOIkqm80qyLVAiEA3rZQLgbsmXHYlceJyRvt1Q9szSgLYFfaeRlugtz0c4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32711},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.3.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.3.tgz","_integrity":"sha512-BuG45xZ/ldcw1uk/pvjjhx9TdIPm4L99HcmgNSx7C7bKHroNdVHURUWLSLCEpHSJlnJaIh0Hbk8AI0qyM86mHA==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.1","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.3_1772068917832_0.9579807901272983","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@bobfrankston/wzlan","version":"0.1.4","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.4","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"598d377ba70096baa53c72e6e11020447b833fb4","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.4.tgz","fileCount":16,"integrity":"sha512-1kjWhL7nFXX7GD8c9QRT8m6D9P+raQLUrw/8sBaqR78aFsTbDzRrfaOOMXlZFjtVPZGtvDl3KLnVcRIcs4V1/A==","signatures":[{"sig":"MEYCIQCfbJJIB+6oxZJj8HUFUwOjlcL6R9e+cqKkZShTbuRDyAIhALeEFbJlbvGp6lLy07ERpMy+okI7RB8E8WS2uxgAv/17","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33041},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.4.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.4.tgz","_integrity":"sha512-1kjWhL7nFXX7GD8c9QRT8m6D9P+raQLUrw/8sBaqR78aFsTbDzRrfaOOMXlZFjtVPZGtvDl3KLnVcRIcs4V1/A==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.2","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.4_1772069369742_0.6023063187637374","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@bobfrankston/wzlan","version":"0.1.5","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.5","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"80d775057549e4e59fb9cdb795be5d15c38889cb","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.5.tgz","fileCount":16,"integrity":"sha512-wWG8zOKCkchHhIOZyeFi14/Ixf2CC0j7o9lmkDABCoJv3wE9/aqYjrspKXRuWelDElQYK1tglboxhLSZnbX47g==","signatures":[{"sig":"MEUCIFcGX3BF97pH5y41GGldPJWdy1AyQBoczi7BfK8jTDRNAiEAss9AVVxReDG73lkNh4fjo2xcQqJRFbMiqB/AkQeavEc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32820},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.5.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.5.tgz","_integrity":"sha512-wWG8zOKCkchHhIOZyeFi14/Ixf2CC0j7o9lmkDABCoJv3wE9/aqYjrspKXRuWelDElQYK1tglboxhLSZnbX47g==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.3","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.5_1772071137610_0.5073069143626392","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@bobfrankston/wzlan","version":"0.1.6","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.6","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"c21f298d6f688e3c1b976bbc5ac3a1f47420fe6b","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.6.tgz","fileCount":17,"integrity":"sha512-kWxUhGXFkOGOAodaB8xSxaXxWWWds+adr8EyrCzhO8MpDQdq4LJBViGltx8f8xySDSpbrIRPvCOvWlgTdZf5aw==","signatures":[{"sig":"MEUCIDTBVZ1siYsyYBgvj//9MDyRjzbpZQUxe51cWdw53aW/AiEA//lq0l5LeRQ0GPoEqNWSHPzU47tFEKLldGfCvO7Gupc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32895},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.6.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.6.tgz","_integrity":"sha512-kWxUhGXFkOGOAodaB8xSxaXxWWWds+adr8EyrCzhO8MpDQdq4LJBViGltx8f8xySDSpbrIRPvCOvWlgTdZf5aw==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.4","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.6_1772139220264_0.6080857366865393","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@bobfrankston/wzlan","version":"0.1.7","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.7","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"1d6193385ea0f58fadcc381e7cfb3d6574acbaab","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.7.tgz","fileCount":17,"integrity":"sha512-MnrRbfPPr3G1N2OxaFCkpOVsALHg9wGNBHTyEzkbqXBX4oMp74AuA1cgbzK9+1Hf5M817FOZmEGbhipTE9v0CA==","signatures":[{"sig":"MEUCIQCq1LyU1xDurH59yfGLj2SzvoNX4+iVyodO+sEE+mvkAAIgA14kEsb/6110XBWmFXwVBAgVyW0H16vNjCJN9k3sSQA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33830},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.7.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.7.tgz","_integrity":"sha512-MnrRbfPPr3G1N2OxaFCkpOVsALHg9wGNBHTyEzkbqXBX4oMp74AuA1cgbzK9+1Hf5M817FOZmEGbhipTE9v0CA==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.5","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.7_1772157783356_0.9760565842651598","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@bobfrankston/wzlan","version":"0.1.8","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.8","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"1126d7649889d14d03ca19d3997951a5f72f057b","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.8.tgz","fileCount":17,"integrity":"sha512-CZ87yheYFmxs5GKVpvjVFm073omb6fSm3mEo0vZD4yc275DhKuYGsTgfwQKRBAjRxLsTmUKVXljwW4BZiBD8CA==","signatures":[{"sig":"MEUCIHvUWRZA4R+UXqoO7HcQpM7fKg7SstyLOvqV7zRuhP0WAiEAqKRaA5c+iA6HAegS7PWB8C1Z6QbYCtgwPOvw+0/lR8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33857},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.8.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.8.tgz","_integrity":"sha512-CZ87yheYFmxs5GKVpvjVFm073omb6fSm3mEo0vZD4yc275DhKuYGsTgfwQKRBAjRxLsTmUKVXljwW4BZiBD8CA==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.5","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.8_1772206159325_0.804591754679687","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@bobfrankston/wzlan","version":"0.1.9","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.9","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"c50c6e4881b011e7e2ebc2b002b2e4ea4eadb2a3","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.9.tgz","fileCount":17,"integrity":"sha512-eGDlso/7a55GM7SEOw/DURx0tcMfUCIo7EPi7HzfTAuZBKnixnS1Weox+6e9/0gVbmkQmyIOirwLF/JCBgCuEA==","signatures":[{"sig":"MEQCIBJWUS0jEsAg4rC9iKktu3+YbzDdOsf65o39y52QCb9YAiA7mYhuNm0pPQPyt8OMmO49cgeu1az+Relx1YoGKd/K1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33857},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.9.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.9.tgz","_integrity":"sha512-eGDlso/7a55GM7SEOw/DURx0tcMfUCIo7EPi7HzfTAuZBKnixnS1Weox+6e9/0gVbmkQmyIOirwLF/JCBgCuEA==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.5","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.2"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.9_1772206770912_0.8803995938151816","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@bobfrankston/wzlan","version":"0.1.10","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.10","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"0350a16a2211c0e3fa7575face8f80c65dc54137","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.10.tgz","fileCount":17,"integrity":"sha512-LUb9Ar/ifTyilr3SIEhrtbNDbsxSGQvZLmEyWpYF1vISJSqDthViZ5q2P+2UJekagudl++boyk7Nsm8caA+ezg==","signatures":[{"sig":"MEYCIQDEuRx4K4CP4sXCtZ+lgYo5ar7mRhZvg+MJcu/jXnAy+AIhAOY75DWcAahWQtwAkg1zYE7gRIthLaVuhOfE4CUH0boC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33858},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.10.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.10.tgz","_integrity":"sha512-LUb9Ar/ifTyilr3SIEhrtbNDbsxSGQvZLmEyWpYF1vISJSqDthViZ5q2P+2UJekagudl++boyk7Nsm8caA+ezg==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.7.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"25.3.0","dependencies":{"@bobfrankston/devdefs":"^0.1.5","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.3"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.10_1772207016502_0.07820752379972173","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@bobfrankston/wzlan","version":"0.1.11","keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","_id":"@bobfrankston/wzlan@0.1.11","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"homepage":"https://github.com/BobFrankston/wzlan#readme","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"dist":{"shasum":"a72f108abd4ca276d017d72d079f3cab321d2e27","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.11.tgz","fileCount":16,"integrity":"sha512-qXUGUM6QZbosQllq9mW4BJl4chFx3PTEC1X+/a2vaqdAev7+vcfSDLKLnAwlXSPOFO2e6JnooB8JuX7hxkPs9w==","signatures":[{"sig":"MEUCICX62CdQk/ABcpHrsjqMhOZIESxkwFz5PAVoqKmGjmegAiEAqQwdKhZWjPHh3XsLYahbL3VD/N3BhgrWFeUUsQEiqE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38783},"main":"index.js","type":"module","_from":"file:bobfrankston-wzlan-0.1.11.tgz","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.11.tgz","_integrity":"sha512-qXUGUM6QZbosQllq9mW4BJl4chFx3PTEC1X+/a2vaqdAev7+vcfSDLKLnAwlXSPOFO2e6JnooB8JuX7hxkPs9w==","repository":{"url":"git+https://github.com/BobFrankston/wzlan.git","type":"git"},"_npmVersion":"11.17.0","description":"Wiz LAN protocol library for device control via UDP","directories":{},"_nodeVersion":"26.4.0","dependencies":{"@bobfrankston/devdefs":"^0.1.5","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.3"},".dependencies":{"@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.3.0"},".transformedSnapshot":{"dependencies":{"@bobfrankston/devdefs":"^0.1.5","@bobfrankston/colorlib":"^0.1.8","@bobfrankston/udp-transport":"^1.0.3"}},"_npmOperationalInternal":{"tmp":"tmp/wzlan_0.1.11_1784462640926_0.03839843620841821","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@bobfrankston/wzlan","version":"0.1.12","description":"Wiz LAN protocol library for device control via UDP","type":"module","main":"index.js","types":"index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"}},"scripts":{"build":"tsc","watch":"tsc -w","release":"npmglobalize"},"keywords":["wiz","lan","udp","smart-home","lighting"],"author":{"name":"Bob Frankston"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/BobFrankston/wzlan.git"},"dependencies":{"@bobfrankston/colorlib":"^0.1.9","@bobfrankston/devdefs":"^0.1.6","@bobfrankston/udp-transport":"^1.0.4"},"devDependencies":{"@types/node":"^25.3.0"},"publishConfig":{"access":"public"},".dependencies":{"@bobfrankston/colorlib":"file:../../../../utils/colorlib","@bobfrankston/devdefs":"file:../../../deviceapi/devdefs","@bobfrankston/udp-transport":"file:../../../../utils/udp/udp-transport"},".transformedSnapshot":{"dependencies":{"@bobfrankston/colorlib":"^0.1.9","@bobfrankston/devdefs":"^0.1.6","@bobfrankston/udp-transport":"^1.0.4"}},"_id":"@bobfrankston/wzlan@0.1.12","bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"homepage":"https://github.com/BobFrankston/wzlan#readme","_integrity":"sha512-SIruhYr7XCS9kkrSK306T57TdsITbVjlDlqb+hr7gsYW15sTLQb3yzKVkc81hHODmUGiQc9cGYNo1Qklg1adlg==","_resolved":"Y:\\dev\\homecontrol\\Others\\Wiz\\apps\\wzlan\\bobfrankston-wzlan-0.1.12.tgz","_from":"file:bobfrankston-wzlan-0.1.12.tgz","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-SIruhYr7XCS9kkrSK306T57TdsITbVjlDlqb+hr7gsYW15sTLQb3yzKVkc81hHODmUGiQc9cGYNo1Qklg1adlg==","shasum":"42bfdecb565ae1b9ffead925214409ceb7ec6f70","tarball":"https://registry.npmjs.org/@bobfrankston/wzlan/-/wzlan-0.1.12.tgz","fileCount":16,"unpackedSize":38839,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDMer2tDrjSTZByo1UkASB3E7Ld2Ulmhf/BDeUBQp/NZAiAehLdy7jvOqaknnwJDthXGVzKPZb3nJbTtRFywezKJvg=="}]},"_npmUser":{"name":"bobfrankston","email":"npm@bob.ma"},"directories":{},"maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wzlan_0.1.12_1784464048769_0.9429258645930472"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T19:14:59.933Z","modified":"2026-07-19T12:27:29.044Z","0.1.1":"2026-02-17T19:15:00.369Z","0.1.2":"2026-02-18T02:17:29.539Z","0.1.3":"2026-02-26T01:21:57.980Z","0.1.4":"2026-02-26T01:29:29.899Z","0.1.5":"2026-02-26T01:58:57.744Z","0.1.6":"2026-02-26T20:53:40.422Z","0.1.7":"2026-02-27T02:03:03.511Z","0.1.8":"2026-02-27T15:29:19.464Z","0.1.9":"2026-02-27T15:39:31.061Z","0.1.10":"2026-02-27T15:43:36.659Z","0.1.11":"2026-07-19T12:04:01.054Z","0.1.12":"2026-07-19T12:27:28.915Z"},"bugs":{"url":"https://github.com/BobFrankston/wzlan/issues"},"author":{"name":"Bob Frankston"},"license":"MIT","homepage":"https://github.com/BobFrankston/wzlan#readme","keywords":["wiz","lan","udp","smart-home","lighting"],"repository":{"type":"git","url":"git+https://github.com/BobFrankston/wzlan.git"},"description":"Wiz LAN protocol library for device control via UDP","maintainers":[{"name":"bobfrankston","email":"npm@bob.ma"}],"readme":"# @bobfrankston/wzlan\r\n\r\nPlatform-agnostic Wiz LAN protocol library for controlling Wiz smart bulbs via UDP.\r\n\r\n## Architecture\r\n\r\n```\r\nwzlan (protocol core, platform-agnostic)\r\n├── wzlan-node (Node.js adapter — NodeUdpTransport / dgram)\r\n└── wzlan-browser (Browser adapter — WebSocket via httpudp-client)\r\n```\r\n\r\nWiz uses JSON-over-UDP on two ports:\r\n- **38899** — Send commands, receive responses\r\n- **38900** — Receive heartbeat/syncPilot status (after registration)\r\n\r\n## Quick Start (Node.js)\r\n\r\n```typescript\r\nimport { createClient } from '@bobfrankston/wzlan-node';\r\n\r\nconst client = createClient();\r\n\r\nclient.on('device', (device) => {\r\n    console.log(`Found: ${device.mac} ${device.ip}`);\r\n});\r\n\r\nclient.on('state', (device) => {\r\n    console.log(`${device.mac} power=${device.power} dim=${device.dimming} temp=${device.temp}`);\r\n});\r\n\r\nawait client.start();   // Binds sockets, starts registration loop\r\n// Heartbeats arrive automatically (~1/sec per bulb for ~20s, re-registered every 15s)\r\n```\r\n\r\n## API\r\n\r\n### WzClient\r\n\r\nCreated via `createClient()` (wzlan-node) or `createWzlanClient()` (wzlan-browser).\r\n\r\n| Method | Description |\r\n|--------|-------------|\r\n| `start()` | Bind transport, start registration loop |\r\n| `stop()` | Close sockets, stop timers |\r\n| `register(heartbeats?)` | Broadcast registration (true=heartbeats, false=discovery only) |\r\n| `discover()` | Shorthand for `register(false)` |\r\n| `getDevice(mac)` | Look up device by MAC |\r\n| `addDevice(mac, ip?, port?)` | Add device manually |\r\n| `devices` | `Map<string, WzDevice>` of all known devices |\r\n\r\n#### Events\r\n\r\n| Event | Args | Description |\r\n|-------|------|-------------|\r\n| `device` | `(device)` | New device discovered |\r\n| `state` | `(device)` | State updated (syncPilot heartbeat or setPilot response) |\r\n| `pilot` | `(device, msg)` | getPilot response received |\r\n| `systemConfig` | `(device, msg)` | getSystemConfig response received |\r\n| `message` | `(device, msg)` | Any message received |\r\n| `error` | `(err)` | Transport or protocol error |\r\n\r\n### WzDevice\r\n\r\nExtends [`DeviceBase`](../../../deviceapi/devdefs) from `@bobfrankston/devdefs` — shared state (`mac`, `ip`, `port`, `power`, `label`, `online`, `lastSeen`, `markSeen()`) and transport plumbing. See [devdefs README](../../../deviceapi/devdefs/README.md) for base class details and MAC utilities (`mac12`, `macmac`).\r\n\r\nProperties updated automatically from heartbeats:\r\n\r\n| Property | Type | Description |\r\n|----------|------|-------------|\r\n| `mac` | `string` | MAC address (lowercase, colon-separated) |\r\n| `ip` | `string` | Current IP address |\r\n| `power` | `boolean` | On/off state |\r\n| `dimming` | `number` | Brightness 0-100 |\r\n| `color` | `WizColor` | `{ r, g, b, c, w }` channels (0-255) |\r\n| `temp` | `number` | Color temperature in Kelvin |\r\n| `sceneId` | `number` | Active scene (0 = none) |\r\n| `speed` | `number` | Animation speed |\r\n| `rssi` | `number` | WiFi signal strength (dBm) |\r\n| `fwVersion` | `string` | Firmware version |\r\n| `online` | `boolean` | Responding to messages |\r\n| `lastSeen` | `number` | Timestamp of last message |\r\n\r\n#### Control Methods (fire-and-forget)\r\n\r\n```typescript\r\ndevice.setPower(true);              // Turn on\r\ndevice.setPower(false);             // Turn off\r\ndevice.setBrightness(75);            // Set brightness 0-100\r\ndevice.setColor(255, 0, 0);        // Set RGB\r\ndevice.setColor(0, 255, 0, 50);    // Set RGB with dimming\r\ndevice.setWhite(4200);             // Set color temperature\r\ndevice.setWhite(2700, 80);         // Set temp with dimming\r\ndevice.setScene(4);                // Set scene by ID\r\ndevice.setScene(5, 100, 80);       // Scene with speed and dimming\r\ndevice.pulse(-30, 900);            // Pulse brightness\r\ndevice.getPilot();                 // Query current state\r\ndevice.getSystemConfig();          // Query system config\r\n```\r\n\r\n### Protocol Functions\r\n\r\nFor building custom messages:\r\n\r\n```typescript\r\nimport { encodeMessage, decodeMessage, createSetPilot, createRegistration } from '@bobfrankston/wzlan';\r\n\r\nconst msg = createSetPilot({ state: true, dimming: 75 });\r\nconst bytes = encodeMessage(msg);\r\n// Send bytes via UDP to port 38899\r\n\r\nconst response = decodeMessage(receivedBytes);\r\n```\r\n\r\n### Scenes\r\n\r\n| ID | Name | ID | Name |\r\n|----|------|----|------|\r\n| 1 | Ocean | 17 | True Colors |\r\n| 2 | Romance | 18 | TV Time |\r\n| 3 | Sunset | 19 | Plant Growth |\r\n| 4 | Party | 20 | Spring |\r\n| 5 | Fireplace | 21 | Summer |\r\n| 6 | Cozy | 22 | Fall |\r\n| 7 | Forest | 23 | Deep Dive |\r\n| 8 | Pastel Colors | 24 | Jungle |\r\n| 9 | Wake Up | 25 | Mojito |\r\n| 10 | Bedtime | 26 | Club |\r\n| 11 | Warm White | 27 | Christmas |\r\n| 12 | Daylight | 28 | Halloween |\r\n| 13 | Cool White | 29 | Candlelight |\r\n| 14 | Night Light | 30 | Golden White |\r\n| 15 | Focus | 31 | Pulse |\r\n| 16 | Relax | 32 | Steampunk |\r\n| 1000 | Rhythm | | |\r\n\r\n### Constants\r\n\r\n```typescript\r\nimport { WIZ_PORT, WIZ_LISTEN_PORT, WizMethod, WizScenes } from '@bobfrankston/wzlan';\r\n\r\nWIZ_PORT          // 38899 — command port\r\nWIZ_LISTEN_PORT   // 38900 — heartbeat port\r\nWizMethod.SetPilot      // 'setPilot'\r\nWizMethod.GetPilot      // 'getPilot'\r\nWizMethod.SyncPilot     // 'syncPilot'\r\nWizMethod.Registration  // 'registration'\r\nWizScenes[12]           // 'Daylight'\r\n```\r\n\r\n## wzlan-node\r\n\r\nPasses `NodeUdpTransport` as the transport factory. `WzClient` itself creates both sockets: ephemeral port for commands (→38899), port 38900 for heartbeats, merged into a single message handler.\r\n\r\n```typescript\r\nimport { createClient } from '@bobfrankston/wzlan-node';\r\n\r\nconst client = createClient({\r\n    debug: true,               // Log messages to console\r\n    discoveryInterval: 15000,  // Re-register every 15s (default)\r\n    homeId: 704603,            // Optional home ID\r\n});\r\n```\r\n\r\n## wzlan-browser\r\n\r\nWebSocket transport via httpudp proxy. The httpudp server handles dual-port proxying server-side.\r\n\r\n```typescript\r\nimport { createWzlanClient } from '@bobfrankston/wzlan-browser';\r\n\r\nconst client = await createWzlanClient({\r\n    httpudpUrl: 'ws://localhost:9321',\r\n    registrationInterval: 15000,\r\n});\r\n```\r\n\r\n## wztest CLI\r\n\r\nSimple test/control tool:\r\n\r\n```\r\nwztest                          Interactive mode\r\nwztest list                     List discovered bulbs\r\nwztest <mac> -on [dim]          Turn on\r\nwztest <mac> -off               Turn off\r\nwztest <mac> -dim 75            Set dimming\r\nwztest <mac> -color 255 0 0     Set RGB\r\nwztest <mac> -white 4200        Set white temp\r\nwztest <mac> -scene 4           Set scene (Party)\r\nwztest -v                       Verbose (show heartbeats)\r\n```\r\n\r\nDevice can be partial MAC, partial IP, or `#N` from list.\r\n\r\n## Wiz Protocol Reference\r\n\r\n### Local vs Cloud Architecture\r\n\r\nWiz bulbs expose a local UDP API on the LAN and maintain a separate cloud connection via MQTT over TLS. The local API is intentionally limited — advanced configuration is gated behind the cloud path.\r\n\r\n| Feature | Local UDP | Cloud (MQTT/App) |\r\n|---|---|---|\r\n| On/off, brightness, color, scenes | Yes (`setPilot`) | Yes |\r\n| State queries | Yes (`getPilot`) | Yes |\r\n| Discovery (broadcast) | Yes (`registration`) | No |\r\n| Read user config (fade, default dim) | Yes (`getUserConfig`) | Yes |\r\n| Write user config (fade, default dim) | **No** (returns error -32600) | Yes (`setUserConfig` via MQTT) |\r\n| Fade speed / transitions | No | Yes |\r\n| SpaceSense (Wi-Fi motion detection) | No | Yes (app → cloud → MQTT → bulb) |\r\n| PIR motion sensor config | No | Yes |\r\n| PIR motion events (passive listen) | Yes (`syncPilot` with `src: \"pir\"`) | Yes |\r\n| Schedules | Partial | Yes |\r\n| Firmware updates | No | Yes (signed, via `firmware.wiz.world`) |\r\n\r\n### UDP Methods (port 38899)\r\n\r\nAll methods use JSON. Some are read-only or disabled on UDP at the firmware level (a per-method flag byte controls UDP availability).\r\n\r\n| Method | UDP | Description |\r\n|---|---|---|\r\n| `registration` | Yes | Discovery / heartbeat registration |\r\n| `getPilot` | Yes | Query current light state |\r\n| `setPilot` | Yes | Control light (on/off, color, brightness, scene) |\r\n| `syncPilot` | Push | Heartbeat/state push from bulb (port 38900) |\r\n| `getUserConfig` | Read-only | Returns `fadeIn`, `fadeOut`, `dftDim`, `opMode`, `po`, `minDimming`, `tapSensor` |\r\n| `setUserConfig` | **Blocked** | Returns `{\"error\":{\"code\":-32600,\"message\":\"Invalid Request\"}}` |\r\n| `getSystemConfig` | Yes | Internal device config (MAC, module, etc.) |\r\n| `setSystemConfig` | Yes | Write internal config |\r\n| `getModelConfig` | Yes | Device model/capabilities |\r\n| `getDevInfo` | Yes | Device info |\r\n| `setDevInfo` | Yes | Write device info |\r\n| `getWifiConfig` | Yes | WiFi settings |\r\n| `setWifiConfig` | Yes | Write WiFi settings |\r\n| `pulse` | Yes | Pulse brightness |\r\n| `reboot` | Yes | Reboot device |\r\n| `reset` | Yes | Factory reset |\r\n| `setState` | Yes | Set state |\r\n| `setSchd` | Yes | Set schedule |\r\n| `setSchdPset` | Yes | Set schedule preset |\r\n| `setFavs` | Yes | Set favorites |\r\n| `firstBeat` | Push | Initial config announcement from bulb |\r\n\r\n### `getUserConfig` Response Example\r\n\r\n```json\r\n{\r\n  \"method\": \"getUserConfig\",\r\n  \"env\": \"pro\",\r\n  \"result\": {\r\n    \"fadeIn\": 700,\r\n    \"fadeOut\": 700,\r\n    \"dftDim\": 100,\r\n    \"opMode\": 0,\r\n    \"po\": false,\r\n    \"minDimming\": 0,\r\n    \"tapSensor\": 1\r\n  }\r\n}\r\n```\r\n\r\n### SpaceSense (Wi-Fi Motion Detection)\r\n\r\nSpaceSense uses Wi-Fi CSI (Channel State Information) between 2+ bulbs to detect movement — no PIR hardware needed. Configuration is entirely cloud-side (app → Wiz cloud → MQTT → bulbs). There is no known local API to enable, disable, or configure SpaceSense.\r\n\r\nThe separate Wiz PIR motion sensor accessory communicates via BLE and triggers `syncPilot` pushes with `\"src\": \"pir\"` that can be passively observed on the local UDP API.\r\n\r\n### Network Details\r\n\r\n- **Port 38899**: Bulb receives commands\r\n- **Port 38900**: App/client receives heartbeats and push notifications\r\n- **Port 80**: Open on bulb but no endpoints discovered\r\n- **MQTT**: `mqtt.wiz.world` / `us.mqtt.wiz.world` port 8883 (TLS) — cloud connection with device-specific credentials\r\n- **Protocol**: Unencrypted JSON over UDP (local), MQTT over TLS (cloud)\r\n- **Chip**: ESP8266 (older) / ESP32 (newer, for BLE + CSI support)\r\n\r\n### Cloud API (WiZ Pro)\r\n\r\nThe [WiZ Pro API](https://docs.pro.wizconnected.com/) uses GraphQL over HTTPS with OAuth 2.0 + PKCE. It requires a `clientId` obtained from Wiz (no self-service signup). Available mutations are limited to light state control (`changeLightState`, `changeRoomState`, etc.) — no `setUserConfig` or SpaceSense control is exposed.\r\n\r\n### References\r\n\r\n- [pywizlight](https://github.com/sbidy/pywizlight) — Python connector, most complete reverse-engineering of the UDP protocol\r\n- [OpenWiz](https://github.com/UselessMnemonic/OpenWiz) — C# library with protocol documentation\r\n- [pywizlight issue #155](https://github.com/sbidy/pywizlight/issues/155) — Reverse-engineering of UDP method flags and `setUserConfig` blocking\r\n- [wiz_light discussion #85](https://github.com/sbidy/wiz_light/discussions/85) — Cloud vs local architecture details\r\n- [Home Assistant WiZ integration](https://www.home-assistant.io/integrations/wiz/) — HA integration (passive PIR/occupancy detection)\r\n- [Espressif ESP-CSI](https://github.com/espressif/esp-csi) — Wi-Fi CSI motion detection (underlying tech for SpaceSense)\r\n- [Dammitly.net](https://blog.dammitly.net/2019/10/cheap-hackable-wifi-light-bulbs-or-iot.html) — Early hardware/protocol teardown\r\n- [WiZ SpaceSense](https://www.wizconnected.com/en-us/explore-wiz/spacesense) — Official SpaceSense product page\r\n","readmeFilename":"README.md"}