From d42e43c1d7488f376ee98356507b9cc077ac429d Mon Sep 17 00:00:00 2001 From: Vladimir Sobolev Date: Wed, 4 Jun 2025 02:57:57 +0300 Subject: [PATCH 1/5] fix: correct typo in CO2 sensor accessory class name - Fixed typo in require statement: HttpWebHookCarbonDioxideSensoryAccessory -> HttpWebHookCarbonDioxideSensorAccessory - Fixed constructor call to use correct class name - This resolves issue where CO2 sensors were not appearing in HomeKit despite webhook updates working --- src/homekit/HttpWebHooksPlatform.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/homekit/HttpWebHooksPlatform.js b/src/homekit/HttpWebHooksPlatform.js index d0f6bdb..69308b7 100644 --- a/src/homekit/HttpWebHooksPlatform.js +++ b/src/homekit/HttpWebHooksPlatform.js @@ -14,7 +14,7 @@ var HttpWebHookStatelessSwitchAccessory = require('./accessories/HttpWebHookStat var HttpWebHookLockMechanismAccessory = require('./accessories/HttpWebHookLockMechanismAccessory'); var HttpWebHookWindowCoveringAccessory = require('./accessories/HttpWebHookWindowCoveringAccessory'); var HttpWebHookFanv2Accessory = require('./accessories/HttpWebHookFanv2Accessory'); -var HttpWebHookCarbonDioxideSensoryAccessory = require('./accessories/HttpWebHookCarbonDioxideSensorAccessory'); +var HttpWebHookCarbonDioxideSensorAccessory = require('./accessories/HttpWebHookCarbonDioxideSensorAccessory'); var HttpWebHookValveAccessory = require('./accessories/HttpWebHookValveAccessory'); var Service, Characteristic; @@ -118,7 +118,7 @@ HttpWebHooksPlatform.prototype.accessories = function(callback) { } for (var i = 0; i < this.co2sensors.length; i++) { - var co2sensorAccessory = new HttpWebHookCarbonDioxideSensoryAccessory(Service, Characteristic, this, this.co2sensors[i]); + var co2sensorAccessory = new HttpWebHookCarbonDioxideSensorAccessory(Service, Characteristic, this, this.co2sensors[i]); accessories.push(co2sensorAccessory); } From be02b6fde302d76587178c4f94d5e5171aa63ce4 Mon Sep 17 00:00:00 2001 From: Vladimir Sobolev Date: Wed, 4 Jun 2025 03:07:07 +0300 Subject: [PATCH 2/5] fix: resolve CO2 sensor caching and variable scope issues - Fixed variable declarations for Service and Characteristic to use proper scoping - Corrected cache key consistency for carbon dioxide level storage - Added parseFloat conversion for urlValue to ensure numeric comparison - This should fully resolve CO2 sensors not appearing in HomeKit --- .../HttpWebHookCarbonDioxideSensorAccessory.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js b/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js index faec619..338685c 100644 --- a/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js +++ b/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js @@ -1,8 +1,8 @@ const Constants = require('../../Constants'); function HttpWebHookCarbonDioxideSensorAccessory(ServiceParam, CharacteristicParam, platform, sensorConfig) { - Service = ServiceParam; - Characteristic = CharacteristicParam; + var Service = ServiceParam; + var Characteristic = CharacteristicParam; this.platform = platform; this.log = platform.log; @@ -24,7 +24,10 @@ function HttpWebHookCarbonDioxideSensorAccessory(ServiceParam, CharacteristicPar } HttpWebHookCarbonDioxideSensorAccessory.prototype.changeFromServer = function(urlParams) { - var cached = this.storage.getItemSync("http-webhook-" + this.id) || 0; + var cached = this.storage.getItemSync("http-webhook-carbon-dioxide-level-" + this.id); + if (cached === undefined) { + cached = 0; + } if (urlParams.value === undefined) { this.log.debug(this.name + ": No urlValue"); return { @@ -32,7 +35,7 @@ HttpWebHookCarbonDioxideSensorAccessory.prototype.changeFromServer = function(ur "state" : cached }; } - var urlValue = urlParams.value; + var urlValue = parseFloat(urlParams.value); var co2Detected = urlValue > this.co2PeakLevel; this.log.debug(this.name + ": urlValue: "+ urlValue); this.log.debug(this.name + ": co2Detected: "+ co2Detected); From 662107d6ecdaedf5fe904929e37f039851a34da8 Mon Sep 17 00:00:00 2001 From: Vladimir Sobolev Date: Wed, 4 Jun 2025 03:12:23 +0300 Subject: [PATCH 3/5] fix: correct CO2 sensor accessory registration in index.js - Fixed typo in variable name: HttpWebHookCarbonDioxideSensoryAccessory -> HttpWebHookCarbonDioxideSensorAccessory - Fixed accessory registration which prevented CO2 sensors from being available in Homebridge - This was the missing piece preventing CO2 sensors from appearing in HomeKit --- index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 2e0fd1b..784a5ee 100755 --- a/index.js +++ b/index.js @@ -12,7 +12,7 @@ var HttpWebHookStatelessSwitchAccessory = require('./src/homekit/accessories/Htt var HttpWebHookLockMechanismAccessory = require('./src/homekit/accessories/HttpWebHookLockMechanismAccessory'); var HttpWebHookWindowCoveringAccessory = require('./src/homekit/accessories/HttpWebHookWindowCoveringAccessory'); var HttpWebHookFanv2Accessory = require('./src/homekit/accessories/HttpWebHookFanv2Accessory'); -var HttpWebHookCarbonDioxideSensoryAccessory = require('./src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory'); +var HttpWebHookCarbonDioxideSensorAccessory = require('./src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory'); var HttpWebHookValveAccessory = require('./src/homekit/accessories/HttpWebHookValveAccessory'); module.exports = function(homebridge) { @@ -30,6 +30,6 @@ module.exports = function(homebridge) { homebridge.registerAccessory("homebridge-http-webhooks", "HttpWebHookLockMechanism", HttpWebHookLockMechanismAccessory); homebridge.registerAccessory("homebridge-http-webhooks", "HttpWebHookWindowCovering", HttpWebHookWindowCoveringAccessory); homebridge.registerAccessory("homebridge-http-webhooks", "HttpWebHookFanv2", HttpWebHookFanv2Accessory); - homebridge.registerAccessory("homebridge-http-webhooks", "HttpWebHookCarbonDioxideSensor", HttpWebHookCarbonDioxideSensoryAccessory); + homebridge.registerAccessory("homebridge-http-webhooks", "HttpWebHookCarbonDioxideSensor", HttpWebHookCarbonDioxideSensorAccessory); homebridge.registerAccessory("homebridge-http-webhooks", "HttpWebHookValve", HttpWebHookValveAccessory); }; From fbf73e1afe26fe55928aac80a479adb23e922b80 Mon Sep 17 00:00:00 2001 From: Vladimir Sobolev Date: Thu, 5 Jun 2025 00:08:17 +0300 Subject: [PATCH 4/5] Update .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 6829bcd..b9b5a86 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ package-lock.json .cache .idea .DS_Store +/tmp +.cursor +*.icloud From 5221b3e10b6ab25a32784cc6af7b2980e0627a08 Mon Sep 17 00:00:00 2001 From: Vladimir Sobolev Date: Thu, 5 Jun 2025 00:08:54 +0300 Subject: [PATCH 5/5] Update HttpWebHookCarbonDioxideSensorAccessory.js --- .../accessories/HttpWebHookCarbonDioxideSensorAccessory.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js b/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js index 338685c..c64f9b2 100644 --- a/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js +++ b/src/homekit/accessories/HttpWebHookCarbonDioxideSensorAccessory.js @@ -1,8 +1,8 @@ const Constants = require('../../Constants'); function HttpWebHookCarbonDioxideSensorAccessory(ServiceParam, CharacteristicParam, platform, sensorConfig) { - var Service = ServiceParam; - var Characteristic = CharacteristicParam; + Service = ServiceParam; + Characteristic = CharacteristicParam; this.platform = platform; this.log = platform.log;