{"_id":"homebridge-ac-http","_rev":"27-9eeab30a6c51afe88c0e0ce250b0bcc7","name":"homebridge-ac-http","dist-tags":{"latest":"1.0.21"},"versions":{"0.0.1":{"name":"homebridge-ac-http","version":"0.0.1","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@0.0.1","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"cd31b4a7a8219b03d24b4b63408e5ac49c061ebc","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-0.0.1.tgz","fileCount":23,"integrity":"sha512-gaiFbIRCEGVZDx51Op7MrWxmX8sxyS2dx9BuIv1pIGvcdFbVclPGXCVTTnWo62ISRcXbu0MM6VhqLmV/XzIVdA==","signatures":[{"sig":"MEUCIFZfluvAT+/zqPY/5Kwp3LmxOU5GfwiFkOAagtm5CwlBAiEApuLbnT2YVNT2Cy2UfTpgsTBgwa/Ig41pM6c1QabALT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69225},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"bb5f8b8b460f2ba2db29f4f168a8c2f20614ffdb","scripts":{"build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"deprecated":"Test version, do not use","repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"11.9.0","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"24.14.0","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_0.0.1_1779202239124_0.0875089743792461","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"homebridge-ac-http","version":"0.0.2","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@0.0.2","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"57446811fc04b700f8d8e4bf5340f5b6f3792eb2","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-0.0.2.tgz","fileCount":23,"integrity":"sha512-3H1Nvq+/uawNhF73nMT3pisIoFY/r5bgA7pf4JsTYINztB2MtNleuCzhHSSR+aC4GBuigfG4aS7jz8j8ZNbcaQ==","signatures":[{"sig":"MEQCIB3M93TeXq2y7w/6qo4y9iRVw+2ti6HlIaVYPemNsOEDAiBaL8QRw1MGbEkiuv3nQKhBtTVkL+FTZ/dGu1rnSbufjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":69225},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"5fbdb35a44910bcdc738066ff4885ec4d0693014","scripts":{"build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"deprecated":"Test version, do not use","repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_0.0.2_1779205915333_0.5989295384873101","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"homebridge-ac-http","version":"1.0.0","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.0","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"2222cff65a9f3389933a1b6160af241a0bedc1f3","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.0.tgz","fileCount":23,"integrity":"sha512-oY7wSOEFnDIIIor8yeO3s+MVhI7/m/aUaamHw/m5RtDK9CpVCodGACkiDInPxYMVricNpn/JHQn79NMhAyS3cA==","signatures":[{"sig":"MEQCIADfYFIRDOS+axRsKLWC9Wp5rZOQ3c15im6d4r2G3Fi8AiAMeDOfwX5uEt1YSz/GGnzXayarftnlW+wzzzqME9OpPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72427},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"15cb2c66bd0f606d507649dd858b9ab209f11e57","scripts":{"build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"deprecated":"Released in error — do not use","repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.0_1779208242035_0.40878071834655394","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"homebridge-ac-http","version":"1.0.1","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.1","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"967981501b97a8c3073daa60d24c9eaac4d1c237","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.1.tgz","fileCount":23,"integrity":"sha512-ghes3SPtTXGoyhFnd1uSoQ/sH66HLsouXXKCYWlDc87Qz5et24/zWcmfciJK6YSUE+YzsGupDA2L9/dWoM3O+Q==","signatures":[{"sig":"MEUCIFEwqdq5PLIJbRyOPiQsNxraWGic2YybtVS5aevkQOvcAiEAjM4jgO7ewAISuR8/7FI7GBNtG4B8fM0gkiCCFqQLzKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72179},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"ab3689fceb7cc192276702596460bd5d45c5c9d3","scripts":{"build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.1_1779211423050_0.7946567935974984","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"homebridge-ac-http","version":"1.0.2","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.2","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"250f6903989ebd16c275b8c3e9743e02ea944444","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.2.tgz","fileCount":23,"integrity":"sha512-I5wqYWIuSsZ3raBJTw9jXsAYFgp/T5vhCtdcR0a3AmMlpCFKVa/sxgvbXX/VeccjdNXaRsO6c3Jg16Z5F/gJiw==","signatures":[{"sig":"MEUCIC+A83SUw65juShf2/h5qXw3iupFWkFXEqigDMCuKJZYAiEAvU2j9WW9sWS4LFj7NkWZEBaP9BKS5FHH0ZQmxJhSX9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72749},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"f0699d132bec1a7f6083384d18960f62ff9dab84","scripts":{"build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.2_1779217487864_0.7814244693786021","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"homebridge-ac-http","version":"1.0.4","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.4","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"9e4df4399edbc1ddacef28f4e8ed175d439d55f5","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.4.tgz","fileCount":23,"integrity":"sha512-Gv1DOmI8WjJVPox6zixPGS6SDkCdEqdQRIacQbwBUGBW/7TNWO1CkX9fhxZ2kLtGpw0jgf4NZKCTMYsV9yTeaA==","signatures":[{"sig":"MEQCICdOMJUA6iU4qHbqLqeKUQNo/jhbSrhNOMf7Nd7xu8rtAiA+LMTZwUIlQR/emfZepe2dIu38K1Y3FufuWJ4Nkt2qfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":87859},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"4387f8af6a66cadd647b40d5d219c991483a6aca","scripts":{"build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.4_1779243220866_0.996675832115818","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"homebridge-ac-http","version":"1.0.5","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.5","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"509ff1d6333b59ec45bc31bc9d361b36427379c8","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.5.tgz","fileCount":26,"integrity":"sha512-i60urNnrFZT7GSJn6WL3BKuOrO93s9pYxVimlrBTXxdEMQ5RdFXXRtkn9nB1uts3mnJSHPd0ujMdyPJPMh9jBA==","signatures":[{"sig":"MEYCIQDuev8uqY5uUbZfQd+p+qgCS846JAURsG/sDyBsRQdzmgIhAMNyDUG+seatRxQ21MbRwtPbKRdzY+k9mavGEJVTyt+x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102193},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"b24e444f1c6a24f5689614acf2d4ffbc74c4cf3a","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.5_1779245162274_0.5113598231693401","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"homebridge-ac-http","version":"1.0.6","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.6","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"9f52fee0f0e7303bc59ba1399d82bf3544a6adc1","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.6.tgz","fileCount":23,"integrity":"sha512-iJ05yHWUMGiYoMWZtZet+XJllCRSE0AgQlcTW6U3etbjLSSAyPDGESjDkJv705Dlu72p88jSBT44+h4sojfE8A==","signatures":[{"sig":"MEQCIBkfOl+ND0g9fv6m5Z/wSWefLSfvKp5DafOt3Nof1RJpAiBMg0xoZrgvWcJ6W+gdGri51nZpI8czU4SnXXPWvwNxFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90068},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"8f4348802b385cabd82081a73e4268182d8a8559","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.6_1779245867332_0.09224495840208102","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"homebridge-ac-http","version":"1.0.7","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.7","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"d2e080600b375b3428b74f375348e322155f0490","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.7.tgz","fileCount":23,"integrity":"sha512-vNc/r71UI2G0MVBcbOuR1jrDBRGCfb7eikUqVRGh2kB0GLdSSZ0j/McGl35NcYoGPTUgr5gShjmEM/jRfkR3nw==","signatures":[{"sig":"MEUCIQDl2e9UET8dc01aVXl54KwxyiG9mLCD7PInXra5QEygfAIgXtx6WlrNriPZ47bi/Mto4XdVO2Mt0Ey4rJiOfKnKnHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90131},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"2db88810cf19529328f8f9a16759c9e19141b178","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.7_1779246366667_0.9621046756148353","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"homebridge-ac-http","version":"1.0.8","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.8","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"95f4cae02bb475dae4be0776dae6c692f213e470","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.8.tgz","fileCount":26,"integrity":"sha512-wFcu5fQggHHHVQRX+mfEA6zDDZr+ghLFxfsY3Y8qb6TskQ2gL7lyt/Te2X1/9c/UAV3Xb8SwMKITQYBgBijHSQ==","signatures":[{"sig":"MEUCIErkNCf+fQMF83GGiPXhGIu/cqNlb9QieLqBJlvTAruUAiEAuWowjCu21W2/QcE74ek0M1jFn3F9gz4iqhk+I9J3g3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101373},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"270c63f06ebd0d6a7a72d68e2fe1c9de02be0f04","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.8_1779294084736_0.6637463334580007","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"homebridge-ac-http","version":"1.0.9","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.9","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"850cd3ee7b8a964b1f8c426c9c9a39287b2cade9","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.9.tgz","fileCount":26,"integrity":"sha512-8Hea5wfSBDALH4B7CuSTQCLPdir6ZE6kfbAnekpCEQvtx/9IwphSjXbmFTjenuMAtbmdEPGaAlm4ZEfRkyFTOQ==","signatures":[{"sig":"MEQCIAVuQfBs4e9NHwfYLpvrksu9jZibB+J5Vh0BUqaCuhfBAiAk7e7cOhdeIdssEXs4HIP5bjv7QTQoMx16qCjk3cQdGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102305},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"a93319d9be36d80894f92ae06a3c250d71077372","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.9_1779295384853_0.6112563643296147","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"homebridge-ac-http","version":"1.0.10","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.10","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"dd84b50ea07bacba307aa87acbc3d8e2aa27570e","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.10.tgz","fileCount":26,"integrity":"sha512-Q/lNrEkjFPKg+NSSCF8L8i+8kDi+EVx1hfGNuiFayPzMNXoUVaQVeZIF0HFWGodUiYr2nLOU7FsRAfbUQOu9/A==","signatures":[{"sig":"MEYCIQCs9OR3SPvcIMvOzzCysQHGhsBsGjSquwSFyjHN8k8PPwIhAPwAVIUEUtZBxOIqIuhDPa4H8/w3cSeSIyGwSRL9h2xV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103521},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"a508a3429fc350d07dbbb3d82ad18e732ea62d98","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.10_1779296251936_0.48516625559089244","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"homebridge-ac-http","version":"1.0.11","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.11","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"ee2701463801a0317f71af66acf17997e847f9d6","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.11.tgz","fileCount":26,"integrity":"sha512-wU9BUsCMPMVGMHyTMURCloGLUy8aw2Iej6Avh+o7HL34laY27V9LHKA4F7pDvgyi1PbHZcD4Kb1r99qtBROWRg==","signatures":[{"sig":"MEUCICAN6en5lWsfLvaWiereK0YSwG1rqmoXrbZVVg4JUm98AiEAy1mZHivN8FrrzZdJY5dIVJulANFQPqRlp+03I17br7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105018},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"64ac57e185400d540f256d9782b835e7b49be640","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.11_1779298683968_0.2785255063822427","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"homebridge-ac-http","version":"1.0.12","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.12","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"cf489cfa42b92ac41194ac54411d4645db49540f","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.12.tgz","fileCount":26,"integrity":"sha512-eAys76A+tx1r3oDPgqg+4R9fe50TUqU7MMO40WFwVTLO5/0kfelhgq7PPEOE54SrkVuO5MA2pi3Rat+huAgrfQ==","signatures":[{"sig":"MEUCICOhhVI7+2405/bedloL6q0+ohpBF2q05Prupcb+Snu5AiEA3wF0jQGYO7FzJR/UegvOzh7ZaScIgPKUBznc78Y/QYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105625},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"2e9c643c5820220fc60d559656e6ca7d318eff56","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.12_1779300530112_0.07241476619920584","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"homebridge-ac-http","version":"1.0.13","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.13","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"6d98f30602e7bda5108f94f3fa1e53798bd8362a","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.13.tgz","fileCount":26,"integrity":"sha512-5/+szU5xynYXuUxIzK35scHVbhHnCh2wxgb/qF3gvMERsHqpdj3G/hpanuUDYJKknu9BPANq4MOwgiiBqV87Fw==","signatures":[{"sig":"MEQCIHTz3CkNWHn+DI4RkXbMLZEOW5NX891d4OBBQET+lo2WAiBjWXEwQkgrfyw+eAn+iewZwZpbkDG3wW1LopPJzmKdNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104774},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18.0.0","homebridge":">=1.6.0"},"gitHead":"9e887538792f96f6388553be6023d6c6dc93f062","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^5.4.0"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.13_1779348442430_0.7370482946179666","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"homebridge-ac-http","version":"1.0.14","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.14","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"daa861f749d2b8ee353ed441b3a803fde9b5aec3","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.14.tgz","fileCount":26,"integrity":"sha512-n9UN9sT6fqJmyza4x/Vruc3kNWFIq6YNlufsASvFeKWmsd3u2VRWOuaMwwbQI3LPCOF3V4dSOji40LAyrnN4NA==","signatures":[{"sig":"MEUCIB6zBN/bqBofSBc7ytzUab9QTqFmnOLPJzrgtAlLEo8qAiEA6N+nO5vv5smzCFhCAqL/1HBV4hIMHq45qG3PZAutZQ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110610},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"5ff2f7d7820aa419b73dd5ff1fb8447ba9bd7c42","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.7","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.2","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.14_1779440002877_0.9974807268476287","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"homebridge-ac-http","version":"1.0.15","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.15","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"681709d45c05a84f3e616dc13d8e6e18215d7b9a","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.15.tgz","fileCount":26,"integrity":"sha512-lufNduXJNGAiqIg5CVAn+yU6j0VLJSoO09SirnDIS1SdVK0R+NX0FZv7DGicG0xXdy3RI2RON7uL4U50xs4GBw==","signatures":[{"sig":"MEYCIQDqpBV6Y7rOxszoiF/j/40QvdVwCVxupRM9tjSRU4DirAIhAPb9fjeaI+ZGlP7TTO4iFC4+jDofiGq4C7qMTDLVtTeq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108932},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"22ab07f7e087299b0cdc5aa1b0ebc6a120923a94","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.15_1779452072609_0.7753084899926519","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"homebridge-ac-http","version":"1.0.16","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.16","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"5883cd9c33cbb34bc9b6f9a822bb0e58fa353189","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.16.tgz","fileCount":26,"integrity":"sha512-EUnRM2oOHgVsXegjtnR7XMiLRULNr/sCM9g5q0lfx/IUpm7hx689R++0wMzT+sAb7ZZwtTvKqQ/s2povn7TazA==","signatures":[{"sig":"MEUCIQCLMB8Ib1fVfGx2DdmXo0GDZiDpbjj4tk5tmNgePMQ2GAIgSbGe15yCc99ygW6e+cw5BF7c55pTp/CPG94Mw2ATiP0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109434},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"9589efeb967f7b5f6d9d0d19638f99741587865e","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.16_1779469399276_0.5557367762937944","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"homebridge-ac-http","version":"1.0.17","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.17","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"a840e7a182b1b7a8d4b808e2bc3db5e079f5a2e8","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.17.tgz","fileCount":26,"integrity":"sha512-V4WQY+o+/H6jSA/AD/p8BBNj45U5lKiY8aO5OgC0bCow2kK1EHJqzLCIdl6jpka141ifcLzvSGvuRwjl3ZGcjQ==","signatures":[{"sig":"MEUCICiB45oeybj4M0tJ0ryCFyar11eCNg3rtf+f+nG+O3onAiEAyiXE5yGFI3eRG4swzuTfMh4HfaBH2nvvwa/KKNxtgA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110647},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"136e7398348c9ef95dc789eef53aacf900d48777","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.17_1779550230573_0.3565015434906609","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"homebridge-ac-http","version":"1.0.18","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.18","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"9450dc30bafff604c2d8ebd1af13c8c6c0ad2064","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.18.tgz","fileCount":26,"integrity":"sha512-0n4lArH9FMpHhgo4e8kiGYSaCsKpixJGKiITCLEQM89LSTzJ0Dn1+fWYC2N33OnM0WxnqrPJT3YC/JwxedubAQ==","signatures":[{"sig":"MEUCICTJrf/Aq+IiVlE6pllZHEMWY4rDdOa2JDWhsafOa+eFAiEAt8XFK7HgyrYRw7CtEe4jBUKuANZKaaf/UWusaoX0PYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110647},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"8d7cbdf0ec4a6ddd63c1cd465982c3c550697020","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.18_1781200009888_0.24403878364333087","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"homebridge-ac-http","version":"1.0.19","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.19","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"555a4e91cb1d61064d617472bed20ae71637e512","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.19.tgz","fileCount":26,"integrity":"sha512-MMSyx+0urtpw/Abj34H1Wi/gkdS6dFASUSTqeyMqzl7NduixK2N4tut/OczIfCgrVI5TqdGB7ky5c1nYHYdGGQ==","signatures":[{"sig":"MEUCIQCi9DA/Ihe4eR7D6vG4cl2ZYfO9Uw6GVWk4wIFK9mmrJQIgI+mLU9lZlbzRHmZHYcdEMx62hpJeqLwVJDmhlCGlFlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110647},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"083937bb78d38fd9f33734b70efeca9036b55606","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.19_1781504504012_0.07031080478386897","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"homebridge-ac-http","version":"1.0.20","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"author":{"name":"emulatorchen"},"license":"MIT","_id":"homebridge-ac-http@1.0.20","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"dist":{"shasum":"d519f0512ee4ff574539125b15207bc4843d8d27","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.20.tgz","fileCount":26,"integrity":"sha512-1r5pPBxzO1HYIlBcYasf1rW3XGJc90bXLCvxMt6tkMzbWN17rNB5z1beGm2Mc0m811WTcNLdLo5hXCKpTM/W3g==","signatures":[{"sig":"MEUCIQDbUJvabmXbWNnppcjF7GOK8rp8x8abjJxWbXH+m6wBXwIgGd6ohvfOOrkT94AzGOdRkSC1JQsEyX+x1UPObdh+veE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110647},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"gitHead":"8c6262b942440cbd6e6f13121f2c9b69a24bb159","scripts":{"test":"vitest run","build":"tsc","watch":"tsc --watch","prepare":"npm run build"},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"repository":{"url":"git+https://github.com/emulatorchen/homebridge-ac-http.git","type":"git"},"_npmVersion":"10.9.8","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","directories":{},"displayName":"AC HTTP","_nodeVersion":"22.22.3","dependencies":{"axios":"^1.7.0"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.6","homebridge":"^2.0.0","typescript":"^6.0.3","@types/node":"^25.9.1"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/homebridge-ac-http_1.0.20_1782203437789_0.629372227256852","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"homebridge-ac-http","displayName":"AC HTTP","version":"1.0.21","description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","license":"MIT","author":{"name":"emulatorchen"},"main":"dist/index.js","engines":{"node":">=20.0.0","homebridge":">=1.6.0"},"scripts":{"build":"tsc","watch":"tsc --watch","test":"vitest run","prepare":"npm run build"},"keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"repository":{"type":"git","url":"git+https://github.com/emulatorchen/homebridge-ac-http.git"},"bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","dependencies":{"axios":"^1.7.0"},"devDependencies":{"@types/node":"^25.9.1","homebridge":"^2.0.0","typescript":"^6.0.3","vitest":"^4.1.6"},"peerDependencies":{"homebridge":"^1.6.0 || ^2.0.0"},"_id":"homebridge-ac-http@1.0.21","gitHead":"0706c7c0764d4f46b2ec32b63af014477e727e9d","types":"./dist/index.d.ts","_nodeVersion":"22.23.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-iGg/O7dc0OzrwT3H00+tLKNKXcrF9k/hE2ZRjIxa7N9svSw21qkAuDBRI70FQI6lZvtv2MG+5MlQPEwKsksT5w==","shasum":"58447baf3d70cf5db97b368ffa16c9c5d4aed11f","tarball":"https://registry.npmjs.org/homebridge-ac-http/-/homebridge-ac-http-1.0.21.tgz","fileCount":26,"unpackedSize":110647,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/homebridge-ac-http@1.0.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDO88ZpRtnCbmxMrOAt1G2NIZrSXzsRR09wUYej3vDaHgIgRZoy6vO0hAxpSsTq495YeA8Lvq9ifGIylvau2GZ0Phw="}]},"_npmUser":{"name":"emulatorchen","email":"emulator.chen@gmail.com"},"directories":{},"maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/homebridge-ac-http_1.0.21_1782833004594_0.6036169814446164"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T14:50:39.056Z","modified":"2026-06-30T15:23:25.076Z","0.0.1":"2026-05-19T14:50:39.298Z","0.0.2":"2026-05-19T15:51:55.528Z","1.0.0":"2026-05-19T16:30:42.197Z","1.0.1":"2026-05-19T17:23:43.179Z","1.0.2":"2026-05-19T19:04:48.009Z","1.0.4":"2026-05-20T02:13:41.009Z","1.0.5":"2026-05-20T02:46:02.446Z","1.0.6":"2026-05-20T02:57:47.483Z","1.0.7":"2026-05-20T03:06:06.829Z","1.0.8":"2026-05-20T16:21:24.888Z","1.0.9":"2026-05-20T16:43:04.994Z","1.0.10":"2026-05-20T16:57:32.095Z","1.0.11":"2026-05-20T17:38:04.157Z","1.0.12":"2026-05-20T18:08:50.274Z","1.0.13":"2026-05-21T07:27:22.577Z","1.0.14":"2026-05-22T08:53:23.039Z","1.0.15":"2026-05-22T12:14:32.825Z","1.0.16":"2026-05-22T17:03:19.473Z","1.0.17":"2026-05-23T15:30:30.704Z","1.0.18":"2026-06-11T17:46:50.022Z","1.0.19":"2026-06-15T06:21:44.145Z","1.0.20":"2026-06-23T08:30:37.929Z","1.0.21":"2026-06-30T15:23:24.737Z"},"bugs":{"url":"https://github.com/emulatorchen/homebridge-ac-http/issues"},"author":{"name":"emulatorchen"},"license":"MIT","homepage":"https://github.com/emulatorchen/homebridge-ac-http#readme","keywords":["homebridge-plugin","homebridge","homekit","apple-homekit","air-conditioner","ac","hvac","heater","cooler","climate","http","rest","rest-api","http-api","restful","ir-remote","ir-blaster","esp8266","esp32","raspberry-pi","smart-home","home-automation","heater-cooler","thermostat","temperature","fan-speed","swing","humidity"],"repository":{"type":"git","url":"git+https://github.com/emulatorchen/homebridge-ac-http.git"},"description":"Homebridge plugin for any HTTP/REST-controlled air conditioner — IR blasters, ESP8266, ESP32, and any device with a REST API. Supports composed commands, templates, dual-axis swing, humidity, fan speed mapping, and custom headers.","maintainers":[{"name":"emulatorchen","email":"emulator.chen@gmail.com"}],"readme":"# homebridge-ac-http\n\n**Homebridge plugin for any HTTP/REST-controlled air conditioner.** If your AC is controlled by an IR blaster, ESP8266, ESP32, Raspberry Pi, Tuya-local bridge, or any device with a REST API, this plugin exposes it as a native HomeKit Heater/Cooler accessory — supporting Homebridge 1.x and 2.0.\n\n[![npm](https://img.shields.io/npm/v/homebridge-ac-http)](https://www.npmjs.com/package/homebridge-ac-http)\n[![CI](https://github.com/emulatorchen/homebridge-ac-http/actions/workflows/ci.yml/badge.svg)](https://github.com/emulatorchen/homebridge-ac-http/actions/workflows/ci.yml)\n\n## Features\n\n- **IR blaster / composed command** — sends the full AC state (power + mode + temp + fan + swing) in one HTTP call, exactly how IR remotes work\n- **Granular REST API** — per-characteristic endpoints for devices that support individual commands\n- **Templates** — define endpoint config once per AC model, reuse across rooms with just a `host` change\n- **Dual-axis swing** — vertical (HomeKit SwingMode) and horizontal (linked Switch tile)\n- **Stateless swing** — IR toggle mode: fires every tap, no state polling needed\n- **Fan speed mapping** — any discrete speed names mapped to/from HomeKit 0–100% slider\n- **Humidity sensor** — optional `currentRelativeHumidity` linked to the AC tile\n- **Custom HTTP headers** — Bearer tokens, API keys, Basic auth\n- **Setter debounce** — prevents slider spam from flooding the AC controller\n- **Configurable temperature range** — override the default 16–30°C for your region\n- **Localised tile labels** — pick a language (`en` `ja` `zh-CN` `zh-TW` `ko` `de` `fr` `es` `it` `pt` `nl`) or set your own\n- **All HTTP methods** — GET, POST, PUT, PATCH, DELETE\n- **Flexible response parsing** — JSONPath extraction, bidirectional value maps\n\n## Compatibility\n\n| Homebridge | Node.js | Status     |\n|------------|---------|------------|\n| 1.x (apt-pkg ≥ 1.2.0, April 2024+) | 20 | Supported |\n| 2.0.x       | 22  | Supported  |\n\nThis plugin requires **Node.js 20**. For Homebridge 1.x, that means you need a build from April 2024 or later — specifically `homebridge-apt-pkg` v1.2.0–v1.3.12, which is the version range that shipped Node 20. These builds are available as the [`legacy` tag on Docker Hub](https://hub.docker.com/r/homebridge/homebridge/tags?name=legacy). Older 1.x installs (Node 18) are not supported.\n\n## What it looks like in HomeKit\n\n**Single AC tile** (HeaterCooler service):\n- Power on/off\n- Mode selector: Auto / Heat / Cool\n- Target temperature (configurable range, 1°C steps)\n- Fan speed slider (0–100%, mapped to your AC's discrete speeds)\n- Vertical swing toggle\n\n**Additional tiles** (only appear when configured):\n- `[name] H-Swing` — Switch tile for horizontal swing axis\n- Humidity sensor tile — shows current relative humidity\n\nAll tiles belong to the same accessory and appear together in the accessory detail view.\n\n## HomeKit Limitations\n\n- **Fan-only and Dry modes** have no HomeKit equivalent. Map them to Auto (0) via `command.map.mode` or `setValueMap`, or use a separate Switch accessory.\n- **Horizontal swing** cannot fit inside the HeaterCooler tile — it appears as a separate linked Switch.\n- **Humidity** appears as a separate linked Sensor tile, not inside the HeaterCooler panel.\n- **Fixed-angle swing** — HomeKit only shows on/off. Map the \"on\" state to your desired angle string via `swingVertical.stateless + command.map.swingVertical`.\n\n## Install\n\n**Homebridge UI (easiest)** — open the Homebridge web interface, go to the **Plugins** tab, search for `homebridge-ac-http`, and click Install. Restart Homebridge when prompted.\n\n**Command line** — run this on the machine where Homebridge is installed:\n\n```bash\nsudo npm install -g homebridge-ac-http\n```\n\nThen restart Homebridge.\n\n**Adding to your config** — after installing, go to the Homebridge UI config editor and add a platform block. The easiest way is to copy one of the examples below and fill in your AC's IP address. If you prefer to edit `config.json` directly, add the `AcHttpPlatform` block alongside any other platforms you have.\n\n## Quick Start\n\nMinimal config for an IR blaster:\n\n```json\n{\n  \"platform\": \"AcHttpPlatform\",\n  \"accessories\": [\n    {\n      \"name\": \"Living Room AC\",\n      \"command\": {\n        \"url\": \"http://192.168.1.10/api/send\",\n        \"method\": \"POST\",\n        \"body\": \"{\\\"power\\\":\\\"{active}\\\",\\\"mode\\\":\\\"{mode}\\\",\\\"temp\\\":{temperature},\\\"fan\\\":\\\"{fanSpeed}\\\",\\\"swing\\\":\\\"{swingVertical}\\\"}\",\n        \"map\": {\n          \"active\":        { \"0\": \"off\",  \"1\": \"on\"                              },\n          \"mode\":          { \"0\": \"auto\", \"1\": \"heat\", \"2\": \"cool\"               },\n          \"fanSpeed\":      { \"0\": \"auto\", \"20\": \"1\",  \"60\": \"3\",  \"100\": \"5\"     },\n          \"swingVertical\": { \"0\": \"off\",  \"1\": \"on\"                              }\n        }\n      },\n      \"swingVertical\": { \"stateless\": true }\n    }\n  ]\n}\n```\n\n## How to Configure\n\n### Mode A: IR Blaster / Composed Command\n\nFor IR-controlled ACs, the blaster must receive the **complete state** in every call. Use the `command` block:\n\n```json\n\"command\": {\n  \"url\": \"http://192.168.1.10/api/ir\",\n  \"method\": \"POST\",\n  \"body\": \"{\\\"power\\\":\\\"{active}\\\",\\\"mode\\\":\\\"{mode}\\\",\\\"temp\\\":{temperature},\\\"fan\\\":\\\"{fanSpeed}\\\",\\\"vswing\\\":\\\"{swingVertical}\\\",\\\"hswing\\\":\\\"{swingHorizontal}\\\"}\",\n  \"map\": {\n    \"active\":          { \"0\": \"off\",  \"1\": \"on\"   },\n    \"mode\":            { \"0\": \"fan\",  \"1\": \"heat\", \"2\": \"cool\" },\n    \"fanSpeed\":        { \"0\": \"auto\", \"20\": \"1\",  \"60\": \"3\", \"100\": \"5\" },\n    \"swingVertical\":   { \"0\": \"off\",  \"1\": \"30deg\" },\n    \"swingHorizontal\": { \"0\": \"off\",  \"1\": \"on\"    }\n  }\n}\n```\n\nBody template placeholders:\n\n| Placeholder         | HomeKit source                          |\n|---------------------|-----------------------------------------|\n| `{active}`          | Power on/off (mapped via `map.active`)  |\n| `{mode}`            | Target mode (mapped via `map.mode`)     |\n| `{temperature}`     | Target temperature (numeric, no map)    |\n| `{fanSpeed}`        | Fan speed % (threshold-mapped)          |\n| `{swingVertical}`   | Vertical swing 0/1 (mapped)             |\n| `{swingHorizontal}` | Horizontal swing 0/1 (mapped)           |\n\n**Fan speed map** uses threshold matching: the map key is the minimum HomeKit % that triggers that speed. Key `\"0\"` = auto, `\"20\"` = speed 1 (for 20–39%), etc.\n\n**Numeric vs string** in body: use `{temperature}` without quotes for a number, `\"{active}\"` with quotes for a string.\n\nWhen `command` is configured, all SET operations use it. Individual characteristic `set` endpoints are ignored (but `get` endpoints still work for state polling).\n\n#### What the plugin actually sends\n\nWhen you change something in Home — say, switching to Cool mode at 24°C — the plugin builds the full AC state from memory and sends one HTTP request:\n\n```\nPUT http://192.168.1.10/api/ir\nContent-Type: application/json\n\n{\n  \"power\": \"on\",\n  \"mode\": \"cool\",\n  \"temp\": 24,\n  \"fan\": \"auto\",\n  \"vswing\": \"off\",\n  \"hswing\": \"off\"\n}\n```\n\nA `200 OK` with any body (or empty body) means success. Non-2xx responses are logged as errors in the Homebridge log.\n\n#### What the plugin reads for state polling\n\nIf you configure `stateUrl` (or per-characteristic `get` endpoints), the plugin fetches the current state on a timer and updates HomeKit. Your device needs to return JSON that you can point a `jsonPath` at:\n\n```\nGET http://192.168.1.10/api/status\n\nHTTP/1.1 200 OK\nContent-Type: application/json\n\n{\n  \"power\": \"on\",\n  \"mode\": \"cool\",\n  \"setpoint\": 24,\n  \"room_temp\": 26.5,\n  \"humidity\": 62,\n  \"fan\": \"auto\"\n}\n```\n\nThen in config:\n```json\n\"stateUrl\": \"http://192.168.1.10/api/status\",\n\"active\":                      { \"get\": { \"jsonPath\": \"$.power\",    \"valueMap\": { \"on\": \"1\", \"off\": \"0\" } } },\n\"targetHeaterCoolerState\":     { \"get\": { \"jsonPath\": \"$.mode\",     \"valueMap\": { \"auto\": \"0\", \"heat\": \"1\", \"cool\": \"2\" } } },\n\"currentTemperature\":          { \"get\": { \"jsonPath\": \"$.room_temp\" } },\n\"currentRelativeHumidity\":     { \"get\": { \"jsonPath\": \"$.humidity\"  } },\n\"coolingThresholdTemperature\": { \"get\": { \"jsonPath\": \"$.setpoint\"  } }\n```\n\n`jsonPath` uses dot notation starting with `$` — `$.room_temp` extracts the `room_temp` field, `$.data.temp` goes one level deeper, and so on.\n\n### Mode B: Granular REST API\n\nFor devices that accept individual property commands:\n\n```json\n{\n  \"name\": \"Kitchen AC\",\n  \"stateUrl\": \"http://192.168.1.20/api/status\",\n  \"pollInterval\": 30,\n  \"active\": {\n    \"get\": { \"jsonPath\": \"$.power\", \"valueMap\": { \"ON\": \"1\", \"OFF\": \"0\" } },\n    \"set\": { \"url\": \"http://192.168.1.20/api/power\", \"method\": \"POST\", \"body\": \"{\\\"value\\\":\\\"{value}\\\"}\", \"setValueMap\": { \"1\": \"ON\", \"0\": \"OFF\" } }\n  },\n  \"targetHeaterCoolerState\": {\n    \"get\": { \"jsonPath\": \"$.mode\", \"valueMap\": { \"AUTO\": \"0\", \"HEAT\": \"1\", \"COOL\": \"2\" } },\n    \"set\": { \"url\": \"http://192.168.1.20/api/mode\", \"method\": \"POST\", \"body\": \"{\\\"mode\\\":\\\"{value}\\\"}\", \"setValueMap\": { \"0\": \"AUTO\", \"1\": \"HEAT\", \"2\": \"COOL\" } }\n  },\n  \"currentTemperature\":          { \"get\": { \"jsonPath\": \"$.room_temp\" } },\n  \"coolingThresholdTemperature\": {\n    \"get\": { \"jsonPath\": \"$.setpoint\" },\n    \"set\": { \"url\": \"http://192.168.1.20/api/setpoint\", \"method\": \"POST\", \"body\": \"{\\\"temp\\\":{value}}\" }\n  },\n  \"rotationSpeed\": {\n    \"get\": { \"jsonPath\": \"$.fan\", \"valueMap\": { \"AUTO\": \"0\", \"LOW\": \"33\", \"HIGH\": \"100\" } },\n    \"set\": { \"url\": \"http://192.168.1.20/api/fan\", \"method\": \"POST\" },\n    \"fanSpeedMap\": { \"valueToPercent\": { \"auto\": 0, \"low\": 33, \"high\": 100 } }\n  }\n}\n```\n\n### Same AC Model in Multiple Rooms\n\nIf you have the same AC (or IR blaster) in several rooms, you only need to write the configuration once. Put the shared settings in `templates` under a name you choose, then each room's accessory just says which template to use and supplies its own IP address.\n\nAnywhere you write `{host}` or `{port}` in a URL inside the template, the plugin fills it in from each accessory's `host` / `port` field.\n\n```json\n{\n  \"platform\": \"AcHttpPlatform\",\n  \"templates\": [\n    {\n      \"name\": \"my-ir-blaster\",\n      \"command\": {\n        \"url\": \"http://{host}/api/send\",\n        \"method\": \"POST\",\n        \"body\": \"{\\\"power\\\":\\\"{active}\\\",\\\"mode\\\":\\\"{mode}\\\",\\\"temp\\\":{temperature},\\\"fan\\\":\\\"{fanSpeed}\\\"}\",\n        \"map\": {\n          \"active\": { \"0\": \"off\", \"1\": \"on\" },\n          \"mode\":   { \"0\": \"auto\", \"1\": \"heat\", \"2\": \"cool\" },\n          \"fanSpeed\": { \"0\": \"auto\", \"20\": \"1\", \"60\": \"3\", \"100\": \"5\" }\n        }\n      },\n      \"swingVertical\": { \"stateless\": true },\n      \"minTemp\": 16,\n      \"maxTemp\": 30\n    }\n  ],\n  \"accessories\": [\n    { \"name\": \"Living Room AC\", \"serial\": \"LR-001\", \"template\": \"my-ir-blaster\", \"host\": \"192.168.1.10\" },\n    { \"name\": \"Bedroom AC\",     \"serial\": \"BR-001\", \"template\": \"my-ir-blaster\", \"host\": \"192.168.1.11\" },\n    { \"name\": \"Office AC\",      \"serial\": \"OF-001\", \"template\": \"my-ir-blaster\", \"host\": \"192.168.1.12\", \"setterDelay\": 500 }\n  ]\n}\n```\n\nEach accessory inherits everything from the template. You can override any individual field directly on the accessory — it takes priority over the template value.\n```\n\n## Full Config Reference\n\n### Platform\n\n| Field         | Type   | Default | Description |\n|---------------|--------|---------|-------------|\n| `language`    | string | `en`    | Language for tile labels. Options: `en` `ja` `zh-CN` `zh-TW` `ko` `de` `fr` `es` `it` `pt` `nl` |\n| `templates`   | array  | —       | Shared AC model configs. Each entry needs a `name` field. |\n| `accessories` | array  | —       | List of AC accessories. |\n\n### Accessory\n\n| Field          | Type    | Default | Description |\n|----------------|---------|---------|-------------|\n| `name`         | string  | required | HomeKit display name. |\n| `serial`       | string  | —        | Stable UUID seed. Strongly recommended. |\n| `model`        | string  | —        | Shown in accessory info. |\n| `template`     | string  | —        | Inherit from a named template. |\n| `host`         | string  | —        | IP address or hostname of this AC unit. Replaces `{host}` in template URLs. |\n| `port`         | integer | 80       | Port of this AC unit. Replaces `{port}` in template URLs. |\n| `stateUrl`     | string  | —        | Fallback GET URL for characteristics with no own `get.url`. |\n| `pollInterval` | integer | 30       | State refresh interval in seconds. 0 = disabled. |\n| `setterDelay`  | integer | 0        | Debounce ms for SET commands. Useful for sliders. |\n| `minTemp`      | integer | 16       | Minimum HomeKit target temperature (°C). |\n| `maxTemp`      | integer | 30       | Maximum HomeKit target temperature (°C). |\n| `command`      | object  | —        | Composed command (IR mode). See above. |\n\n### Template\n\nTemplates support the same fields as accessories **except** `name` (used as the template key), `serial`, `model`, `template`, `host`, and `port` — those belong on each AC unit. Put `{host}` and `{port}` as placeholders in URLs; each accessory supplies the real values.\n\n### Endpoint Config (used in per-characteristic `get`/`set`)\n\n| Field        | Type   | Default | Description |\n|--------------|--------|---------|-------------|\n| `url`        | string | required | Full URL. |\n| `method`     | string | POST     | HTTP method: GET, POST, PUT, PATCH, DELETE. |\n| `body`       | string | —        | Request body template. Use `{value}` as placeholder. |\n| `jsonPath`   | string | —        | Dot-notation path to extract from JSON response, e.g. `$.data.temp`. |\n| `valueMap`   | object | —        | Maps HTTP response string → HomeKit number string. Auto-reversed for SET. |\n| `setValueMap`| object | —        | Maps HomeKit value → API string. Overrides reversed `valueMap`. |\n| `headers`    | object | —        | Custom HTTP headers, e.g. `{ \"Authorization\": \"Bearer token\" }`. |\n| `timeout`    | integer | 5000    | Request timeout in ms. |\n\n### Swing Config (`swingVertical`, `swingHorizontal`)\n\n| Field      | Type    | Default | Description |\n|------------|---------|---------|-------------|\n| `get`      | object  | —       | EndpointConfig for reading state. |\n| `set`      | object  | —       | EndpointConfig for setting state (non-command mode). |\n| `stateless`| boolean | false   | Momentary trigger: fires every tap, resets to OFF, no state polling needed. Use for IR toggles. |\n| `modes`    | array   | —       | (Stateless only) Radio-button labels — one Switch tile per entry. |\n| `label`    | string  | language default | Override the tile name suffix (e.g. `\"スイング\"`). |\n\n## Local Testing\n\n### Homebridge 1.x (existing installation)\n\n```bash\nnpm install && npm run build\nnpm link\nhomebridge -D\n```\n\n### Docker (both 1.x and 2.x)\n\n```bash\nnpm run build\ndocker compose -f docker-compose.test.yml up\n```\n\n- Homebridge 1.x UI: http://localhost:8581 — uses [`homebridge/homebridge:legacy`](https://hub.docker.com/r/homebridge/homebridge/tags?name=legacy) (Node 20, apt-pkg v1.2.0–v1.3.12)\n- Homebridge 2.x UI: http://localhost:8582 — uses `homebridge/homebridge:latest`\n\nAdd your plugin config via the Homebridge UI on first run.\n\n## Known Limitations\n\n- IR devices have no state feedback — the REST API must maintain its own state store.\n- Physical remote desync is unavoidable with IR.\n- Swing state tracked in memory — resets on Homebridge restart for stateless configs.\n- Fan-only and Dry modes: map to HomeKit Auto (0) via `map.mode` or document separately.\n\n## Visual Verification with HomeKit Accessory Simulator\n\nThe CI pipeline proves tile names via the HAP protocol (the same request the iPhone makes when it pairs). For visual confirmation of how the tiles look in Apple's own rendering, there is a local script that runs the same checks inside [HomeKit Accessory Simulator](https://developer.apple.com/download/all/) (HAS) — Apple's desktop tool for testing HomeKit accessories.\n\n**This only works on macOS and is not part of CI.**\n\n### What it checks\n\nThe script shows each of the 5 tiles in HAS one at a time and saves a screenshot:\n\n| Tile | Service type |\n|------|-------------|\n| Living Room MAXE AC | HeaterCooler |\n| Living Room MAXE AC Fan Auto | Switch |\n| Living Room MAXE AC Swing | Switch |\n| Living Room MAXE AC H-Swing | Switch |\n| Living Room MAXE AC Humidity | Humidity Sensor |\n\nSeeing all 5 as separate items proves the companion-accessory pattern is working. If any tile is missing or shows the wrong name, you have found a regression.\n\n### Setup\n\nInstall **Additional Tools for Xcode** from [developer.apple.com/download/all](https://developer.apple.com/download/all/) — HomeKit Accessory Simulator is inside that package. No other setup needed; the script builds its own test files from scratch.\n\n### Run\n\n```bash\npython3 scripts/has-verify.py\n```\n\nScreenshots are saved to `docs/has-screenshots/`. Open each one and confirm the name shown in HAS matches the table above.\n\n```bash\npython3 scripts/has-verify.py /tmp/my-shots   # custom output folder\n```\n\nThe script backs up your existing HAS accessories before running and restores them when it finishes.\n","readmeFilename":"README.md"}