HomeKit integration of Netatmo CO2 sensors

After multiple availability issues of the CO2 sensors using the OH Netatmo binding (cloud solution), i have changed now to direct sensor access using the OH homekit binding. This binding uses the pairing numbers labelled on the CO2 sensors and direct access through sensor’s IP and port 5001.

Thus, the whole thing is independant now from the Netatmo cloud and their availability. Additionally, the poll time can now be 60 secs while the cloud variant updates at a minimum of 10 minutes only.

2 Likes

Which sensors are you using - do you have a product link?

But i bought them approx. 3 years ago for half of that price.

Thanks for mentioning this.

It turns out my Netatmo Weather Stations support HomeKit as well. I didn’t know or notice, because I use the Android app, and they don’t support HomeKit configuration there. Using my workphone I was able to get the pairing code in the iOS app, and after temporarily letting the Weather Station join my primary Wi-Fi network, I was able to discover it with the HomeKit binding. This is really awesome, especially today where the cloud service has been unavailable.

The only remaining issue I seem to have is that the Weather Station is discovered as a bridge and the additional indoor modules and outdoor module as bridged-accessory. So while I’m able to get readings from the additional modules, I can’t seem to get readings from the station itself, because the bridge doesn’t have any channels. I need to dig further into this. Also, one of my indoor modules reports 0 ppm for the sensor-carbon-dioxide#carbon-dioxide-level-13, which is strange. Another one is working correctly.

Now it started to report correctly, so maybe this was a small initial state glitch.

@AndrewFG - perhaps you can help me figure this out. I did a trace while initializing the bridge, and it seems the bridge itself exposes some characteristics. For this specific Netatmo Weather Station, in my setup I have two additional indoor modules and one outdoor module:

Bridge homekit:bridge:netatmo_family_room "Skynet Station Family Room" [ ipAddress="192.168.1.240:5001", uniqueId="XX:XX:XX:XX:XX:XX", httpHostHeader="Weather Station._hap._tcp.local.:5001" ] {
    Thing bridged-accessory carport "Outdoor Module" @ "Carport" [ accessoryID=50 ]
    Thing bridged-accessory bedroom "Indoor Module" @ "Soveværelse" [ accessoryID=51 ]
    Thing bridged-accessory bathroom "Indoor Module" @ "Badeværelse" [ accessoryID=52 ]
}

The JSON looks something like this (collapsed):

{
    "accessories": [
        {
            "aid": 1,
            "services": [
        },
        {
            "aid": 50,
            "services": [
        },
        {
            "aid": 51,
            "services": [
        },
        {
            "aid": 52,
            "services": [
        }
    ]
}

Underneath aid 50-52 everything seems fine. But underneath aid 1 there is also data, for example:

				{
					"type": "97",
					"iid": 11,
					"characteristics": [
						{
							"type": "92",
							"iid": 12,
							"perms": [
								"pr",
								"ev"
							],
							"format": "uint8",
							"value": 0,
							"minValue": 0,
							"maxValue": 1
						},
						{
							"type": "93",
							"iid": 13,
							"perms": [
								"pr",
								"ev"
							],
							"format": "float",
							"value": 463.0,
							"minValue": 0.0,
							"maxValue": 5000.0
						},
						{
							"type": "23",
							"iid": 14,
							"perms": [
								"pr"
							],
							"format": "string",
							"value": "Carbon Dioxide"
						}
					],
					"hidden": false,
					"primary": false
				},

463 ppm is an actual measurement from this main module which acts as a bridge.

Is this kind of configuration anticipated, and if so, what am I missing here in order to get access to this data?

1 Like

Interesting observation. The observation is not (currently) anticipated in the OH code. So you are not missing anything. However the observation is oddly not totally surprising to me:

  1. it does NOT comply with HomeKit specification “bridge or accessory only” semantics, but
  2. it does comply with its accessory / service / characteristic tree syntax

As a general rule even a bridge is allowed to have static data characteristics like model number (which in OH we map to properties), but bridges are NOT supposed to have dynamic data characteristics (which in OH would map to channels).

So it looks like you have discovered a kind of bridge-plus-accessory chimera. Which is not (yet) modelled in OH.

So I have some requests:

  • Can you please send me the full JSON by PM?
  • It should be possible to handle such chimera by one of two methods: a) let bridge recursively implement bridged-accessory channels directly on itself, or b) implement a “phantom” bridged-accessory within itself. Personally I think b) is probably easier to code, but a) may be easier for users to comprehend. => Can you please open a GitHub issue? And say if you prefer a) or b).

PS thinking about the OH semantic tagging schema, the “phantom” bridged-accessory model would probably work better.


EDIT .. just a wild crazy idea: could you try forcing the implementation of the phantom accessory as follows. .. Who knows, it might just work..

Bridge homekit:bridge:netatmo_family_room "Skynet Station Family Room" [ ipAddress="192.168.1.240:5001", uniqueId="XX:XX:XX:XX:XX:XX", httpHostHeader="Weather Station._hap._tcp.local.:5001" ] {
    Thing bridged-accessory phantom "Skynet Station" @ "Family Room" [ accessoryID=1 ]
    Thing bridged-accessory carport "Outdoor Module" @ "Carport" [ accessoryID=50 ]
    Thing bridged-accessory bedroom "Indoor Module" @ "Soveværelse" [ accessoryID=51 ]
    Thing bridged-accessory bathroom "Indoor Module" @ "Badeværelse" [ accessoryID=52 ]
}
1 Like

Indeed, that worked! :clap:

Are we sticking with this and just adding a discovery mechanism for it? Comparing with the Netatmo modelling, here the channels are directly on the bridge:

Bridge netatmo:account:home "Netatmo API" [ clientId="xxx", clientSecret="yyy" ] {
        Bridge weather-station indoor "Skynet Station Indoor" @ "Alrum" [ id="XX:XX:XX:XX:XX:XX" ] {
                outdoor outdoor "Skynet Station Outdoor" @ "Carport"     [ id="XX:XX:XX:XX:XX:XX" ]
                indoor indoor2 "Skynet Station Indoor 2" @ "Soveværelse" [ id="XX:XX:XX:XX:XX:XX" ]
                indoor indoor3 "Skynet Station Indoor 3" @ "Badeværelse" [ id="XX:XX:XX:XX:XX:XX" ]
        }
        Bridge weather-station indoor_small_bathroom "Skynet Station Small Bathroom" @ "Lille badeværelse" [ id="XX:XX:XX:XX:XX:XX" ] {
                outdoor outdoor_shed  "Skynet Station Shed"   @ "Skur"              [ id="XX:XX:XX:XX:XX:XX" ]
                indoor indoor_alva    "Skynet Station Alva"   @ "Alvas værelse"     [ id="XX:XX:XX:XX:XX:XX" ]
                indoor indoor_linus   "Skynet Station Linus"  @ "Linus' værelse"    [ id="XX:XX:XX:XX:XX:XX" ]
                indoor indoor_office  "Skynet Station Office" @ "Kontor"            [ id="XX:XX:XX:XX:XX:XX" ]
        }
}
1 Like

I am inclined to say “yes”. I would add discovery only in case the bridge has one or more dynamic channels. And documentation obviously. Probably the thing should have a label/description indicating the accessory thing is hosted on the bridge. .. But let me test with your json first.

This maybe a stupid question: did you distinguish between the Homekit binding and the Homekit system integration? Which one do you use?

I applied the Homekit binding which “only” imports Homekit devices into OH while the system integration exports OH accessories through a bridge to Homekit.

Only the new HomeKit binding can be used for this scenario.

I can now share my observations after running this side by side since yesterday evening.

Speed of state updates seems quite similar. This is an example of an additional indoor module, i.e. a module that isn’t on Wi-Fi directly and there doesn’t directly integrate with either Netatmo servers or HomeKit, but rather communicates through the main indoor module:

2026-01-04 13:13:52.868 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 501 ppm to 507 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 13:14:01.987 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 501 ppm to 507 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:23:57.559 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 507 ppm to 502 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 13:24:44.262 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 507 ppm to 502 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:33:54.465 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 502 ppm to 499 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:34:02.529 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 502 ppm to 499 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 13:44:10.692 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 499 ppm to 489 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 13:44:38.777 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 499 ppm to 489 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:54:17.961 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 489 ppm to 494 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 13:54:41.461 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 489 ppm to 494 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:04:11.722 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 494 ppm to 502 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:04:21.151 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 494 ppm to 502 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 14:14:16.218 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 502 ppm to 498 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:14:25.405 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 502 ppm to 498 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)
2026-01-04 14:24:22.599 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2_HomeKit' changed from 498 ppm to 509 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:bedroom:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:24:31.580 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_Bedroom_CO2' changed from 498 ppm to 509 ppm (source: org.openhab.core.thing$netatmo:indoor:home:indoor:indoor2:airquality#co2)

As i can be seen, sometimes HomeKit is faster, sometimes it’s slower. I don’t know why that is, but I’m actually now considering linking my items to the channels of both bindings. This redundancy would remove the dependency to the cloud, but also ensure fastest possible updates.

This approach could be a disaster if the cloud binding would ever update with old values, but I haven’t seen that happening.

The situation for a main module is similar:

2026-01-04 13:13:52.853 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 459 ppm to 451 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 13:14:01.979 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 459 ppm to 451 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:23:57.558 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 451 ppm to 458 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 13:24:44.260 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 451 ppm to 458 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:34:02.518 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 458 ppm to 478 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 13:34:34.629 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 458 ppm to 478 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:44:10.689 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 478 ppm to 451 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 13:44:38.777 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 478 ppm to 451 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 13:54:17.952 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 451 ppm to 450 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 13:54:41.459 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 451 ppm to 450 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:04:11.719 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 450 ppm to 441 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:04:21.144 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 450 ppm to 441 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 14:14:16.216 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 441 ppm to 459 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:14:25.392 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 441 ppm to 459 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 14:24:22.596 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2_HomeKit' changed from 459 ppm to 441 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 14:24:31.572 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 459 ppm to 441 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)

Next, I see that battery levels are reported differently. HomeKit reports lower levels. I don’t know why that is, and I don’t think anything can be done with that if we don’t know the formulas involved. :slight_smile: I will have a look at the Netatmo API and binding just to check if we are missing some calculation to fit the values between 0% and 100%.

Some channels are exposed as different types.

  • In HomeKit, battery levels are exposed as Dimmer rather than Number as in Netatmo. That seems a bit strange, I would assume Number as correct for battery levels.
  • In HomeKit, low battery is exposed as Contact rather than Switch. That seems also a bit strange, because that is translated in OPEN/CLOSED and is usually used for doors/windows.

Some channels are missing in HomeKit - this is documented here: What can you do with a Station paired with Apple HomeKit?

So in any case, to get pressure measurement, noise and more, the Netatmo binding is still needed.

In terms of reliability, nothing beats local integration, so this migration is really a good improvement.

1 Like

Thanks for this detailed description of your scenario. I have also linked my items to the channels of both bindings with the same intention. Will further observe this now. But can at least say that i had Homekit CO2 data for the hours of Netatmo cloud downtime on Saturday.

It looks like doing the job so far - really nice output with the new source tracking:

2026-01-04 15:14:50.253 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 458 ppm to 441 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 15:24:56.654 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 441 ppm to 458 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 15:35:09.383 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 458 ppm to 466 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 15:45:08.051 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 466 ppm to 521 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 15:55:16.786 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 521 ppm to 511 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 16:05:19.532 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 511 ppm to 482 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 16:15:24.139 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 482 ppm to 500 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 16:25:28.777 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 500 ppm to 482 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 16:35:45.691 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 482 ppm to 497 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 16:45:49.847 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 497 ppm to 482 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 16:55:55.019 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 482 ppm to 489 ppm (source: org.openhab.core.thing$netatmo:weather-station:home:indoor:airquality#co2)
2026-01-04 17:05:51.325 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 489 ppm to 502 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)
2026-01-04 17:15:57.729 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Netatmo_FamilyRoom_CO2' changed from 502 ppm to 489 ppm (source: org.openhab.core.thing$homekit:bridged-accessory:netatmo1:family_room:sensor-carbon-dioxide#carbon-dioxide-level-13)

@laursen the default Item type generally depends on the Characteristic attributes according to the following code.. (but of course you may raise a PR or Issue if you want to change this..)

        if (isReadOnly) {
            if (isBoolean) {
                itemType = CoreItemFactory.CONTACT;
                pointTag = Point.STATUS;
                category = "switch";
            } else if (isNumber) {
                itemType = isPercentage ? CoreItemFactory.DIMMER : CoreItemFactory.NUMBER;
                pointTag = isPercentage ? Point.STATUS : Point.MEASUREMENT;
            } else if (isString) {
                itemType = CoreItemFactory.STRING;
                pointTag = Point.STATUS;
            }
        } else {
            if (isBoolean) {
                itemType = CoreItemFactory.SWITCH;
                pointTag = Point.SWITCH;
                category = "switch";
            } else if (isNumber) {
                itemType = isPercentage ? CoreItemFactory.DIMMER : CoreItemFactory.NUMBER;
                pointTag = isPercentage ? Point.CONTROL : Point.SETPOINT;
            } else if (isString) {
                itemType = CoreItemFactory.STRING;
                pointTag = Point.CONTROL;
            }
        }

See [homekit] add support for bridges with hardware embedded accessory things by andrewfg · Pull Request #19965 · openhab/openhab-addons · GitHub

Thanks, I’ll have a look at the PR. The channels I was referring to with that comment were channels that exist in the Netatmo binding, but are not exposed by HomeKit. This is because they are not supported by HomeKit, or by Netatmo, or both. So there’s really nothing to do about that.

I saw the same with Velux Active with Netatmo, where for example the battery level for the departure switch and sensor switch is not exposed by HomeKit. In that case it’s a choice made by Velux or Netatmo, since it’s totally possible to expose battery levels through HomeKit.

Are they in the JSON but perhaps not translated into OH channels? I see that your JSON has some custom characteristics for example..

One channel/item for my Netatmo CO2 sensors seems not to work using the Homekit binding: the CO2 level detection contact. Purpose is the application for automations.

Acc. to the specification the contact should change in Homekit @ >1600ppm but nothing happens if the CO2 level is higher. Shown state is continuously CLOSED.

I can’t crosscheck because this channel is neither available within the Netatmo OH binding nor within the Netatmo iOS app.

Just for the avoidance of doubt: Can you confirm that the binding IS creating a channel for this datum? This confirms that the accessory IS providing a Characteristic for this. And that therefore your issue is that the accessory is NOT changing the value of that Characteristic? If so, in order to check if it is a problem in the accessory or the binding, we would need to see the JSON for that accessory both before and after the respective Characteristic should have changed its value.

1 Like

The channel is provided by the Homekit binding. Will explore the JSON and come back to you.