itavero / homebridge-z2m

Expose your Zigbee devices to HomeKit with ease, by integrating 🐝 Zigbee2MQTT with 🏠 Homebridge.
https://z2m.dev
Apache License 2.0
319 stars 49 forks source link

[Device support] IKEA STARKVIND #333

Closed smartmatic closed 1 year ago

smartmatic commented 2 years ago

Please use the template and fill in all the data requested below!

Describe the bug I've installed the latest zigbee2mqtt release 1.22.1 and with this release the IKEA STARKVIND Air Purifier is fully supported and can fully controlled within zigbee2mqtt.

https://www.zigbee2mqtt.io/devices/E2007.html#ikea-e2007

It is is not possible to switch the Air Purifier on or off or change the fan mode as only the Air Quality information is displayed in Homebridge

Related devices https://www.zigbee2mqtt.io/devices/E2007.html#ikea-e2007

To Reproduce Add device to zigbee2mqtt and try to control the device via Homebridge

Expected behavior My expectation was to get at least two Homebridge Devices. One for the Air Purifier and one for the Air Quality but Homebridge shows only the Air Quality Sensor. Therefore it is is not possible to switch the Air Purifier on or off or change the fan mode.

MQTT messages If possible (and applicable), please provide the following:

Versions used Please provide the version of the following pieces of software:

itavero commented 2 years ago

This is not a bug. Fans are not supported at the moment. Even on the page for this device it only shows the Air Quality Sensor. I do wonder if the PM10 is correct though. I thought it had a PM2.5 sensor.

Based on the issue template for Device support, please provide the following:

For each of the missing features, please mention to which HomeKit Services and Characteristics it should be mapped. The Homebridge Plugin Development documentation provides a nice overview of the standard HomeKit services and characteristics. Note that some manufacturers also use custom services and characteristics (the Elgato Eve products for instance), which could also be mimicked if they have been reverse engineered.

smartmatic commented 2 years ago

page for this device

I am a bit confused about your answer. What do you exactly mean with Fans are not supported a the moment? Not supported through this plugin?

My current understanding from this plugin is that all devices listed here https://zigbee.blakadder.com and marked with zigbee2mqtt should be available through this plugin here. Please correct me if this expectation and common understanding is wrong?

The current zigbee2mqtt integration fully supports all functionalities which the IKEA STARKVIND offers. The full integration is described here: https://www.zigbee2mqtt.io/devices/E2007.html#ikea-e2007

I observed that it is currently not possible to activate and deactivate the device and also not to control the fan with this plugin. But with FHEM in the background and appropriate homebridge mappings i am able to nearly fully control the STARKVIND except the Child Lock. But i can switch on and off the device and i change the fan speed with Apple Home App.

I used the following Homekit services and characteristics Homekit Service: Air Purifier Active Current Air Purifier State Target Air Purifier State Rotation Speed

Homekit Service: AirQualitySensor Air Quality

The IKEA STARKVIND provides PM2.5 density

Hope that helps in a first step?

itavero commented 2 years ago

Not all devices that are supported by Zigbee2MQTT, are supported homebridge-z2m. That site only shows compatibility with Zigbee2MQTT.

Can you also add the exposes info for the device?

itavero commented 2 years ago

Generated exposes info:

[
  {
    "type": "fan",
    "features": [
      {
        "type": "binary",
        "name": "state",
        "property": "fan_state",
        "access": 7,
        "value_on": "ON",
        "value_off": "OFF",
        "description": "On/off state of this fan"
      },
      {
        "type": "enum",
        "name": "mode",
        "property": "fan_mode",
        "access": 7,
        "values": [
          "off",
          "auto",
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9"
        ],
        "description": "Mode of this fan"
      }
    ]
  },
  {
    "type": "numeric",
    "name": "fan_speed",
    "property": "fan_speed",
    "access": 5,
    "value_min": 0,
    "value_max": 9,
    "description": "Current fan speed"
  },
  {
    "type": "numeric",
    "name": "pm25",
    "property": "pm25",
    "access": 5,
    "unit": "µg/m³",
    "description": "Measured PM2.5 (particulate matter) concentration"
  },
  {
    "type": "enum",
    "name": "air_quality",
    "property": "air_quality",
    "access": 5,
    "values": [
      "excellent",
      "good",
      "moderate",
      "poor",
      "unhealthy",
      "hazardous",
      "out_of_range",
      "unknown"
    ],
    "description": "Measured air quality"
  },
  {
    "type": "binary",
    "name": "led_enable",
    "property": "led_enable",
    "access": 7,
    "value_on": true,
    "value_off": false,
    "description": "Enabled LED"
  },
  {
    "type": "binary",
    "name": "child_lock",
    "property": "child_lock",
    "access": 7,
    "value_on": "LOCK",
    "value_off": "UNLOCK",
    "description": "Enables/disables physical input on the device"
  },
  {
    "type": "binary",
    "name": "replace_filter",
    "property": "replace_filter",
    "access": 5,
    "value_on": true,
    "value_off": false,
    "description": "Filter is older than 6 months and needs replacing"
  },
  {
    "type": "numeric",
    "name": "linkquality",
    "property": "linkquality",
    "access": 1,
    "unit": "lqi",
    "description": "Link quality (signal strength)",
    "value_min": 0,
    "value_max": 255
  }
]
itavero commented 2 years ago

Looking at the exposes information, there's no way to "see" that this is an air purifier. It exposes itself as a fan.

Unfortunately the fan_modes are slightly different than other fans supported by Zigbee2MQTT, but I guess I can work around that.

itavero commented 2 years ago

replace_filter can be exposed as a Filter Maintenance service.

stale[bot] commented 2 years ago

It appears that this issue did not have an update in quite some time. Please check if you can provide any additional information to help resolve this issue. If there isn't any activity in the next two weeks, this issue will be closed automatically. Thank you for your contributions!

itavero commented 1 year ago

Reopened due to duplicate issue #592 by @ComicBit.

ComicBit commented 1 year ago

Is it anyone gonna look trough this?

itavero commented 1 year ago

Is it anyone gonna look trough this?

Not sure what you mean. I look through the open issues when I have time to see if there's stuff I can do with the time I think I have available. Unfortunately I don't have that much spare time on my hands currently (still need to earn a living and spend time with my family).

Main reason I reopened this one is to keep all information on one location.

ComicBit commented 1 year ago

Is it anyone gonna look trough this?

Not sure what you mean. I look through the open issues when I have time to see if there's stuff I can do with the time I think I have available. Unfortunately I don't have that much spare time on my hands currently (still need to earn a living and spend time with my family).

Main reason I reopened this one is to keep all information on one location.

I totally get what you mean, I just wanted to understand if it makes sense to keep it open or there are no chances of developing the integration further

stale[bot] commented 1 year ago

It appears that this issue did not have an update in quite some time. Please check if you can provide any additional information to help resolve this issue. If there isn't any activity in the next two weeks, this issue will be closed automatically. Thank you for your contributions!

JeanMertz commented 1 year ago

Came here looking for this as well. Is there any way to keep "feature request" issues open, to make it easier to find them?

ComicBit commented 1 year ago

Came here looking for this as well. Is there any way to keep "feature request" issues open, to make it easier to find them?

I tried to implement it myself but it's very hard and the documentation it's pretty complicated to grasp. I would love to have the full support, because as right now it's just sitting there being barely used

JayJay-Master commented 6 months ago

I would also be interested in being able to address the other properties via homebridge-z2m. Maybe someone can take pity on it again and realize full support for homebridge.