Homekit does not see aeotec nanomote buttons (z-wave)

homekit does not see aeotec nanomote z-wave buttons
Homekit does see my other z-wave devices.
I came across some vague notes to ensure the command_class is set such that Homekit recognizes it.
The nanomote has several command classes, some contain the word ‘switch’.
Is there an additional command_class section that needs to be manually added to the nanomote config?
My main yaml config contains only:
homekit:
i.e. no filters to confuse things.
Is the nanomote capable of being exported to Homekit?

You will need to include entities for Homekit to work. Something like this. Also make sure Homekit doesn’t start immediately after a HA start as z-wave is most likely not ready yet when Homekit would start. If homekit starts without entities being ready they won’t appear until the next homekit start (the best way to do this is to add auto_start: false in the config and set up an automation like this:

homekit:
  auto_start: False
  filter:
    include_domains:
      - alarm_control_panel
      - scene
      - light
      - switch
    include_entities:
      - alarm_control_panel.home_alarm
      - media_player.samsung_tv_ue65ku6000

And an automation like this:

automation:
  - alias: 'Start HomeKit'
    trigger:
      - platform: event
        event_type: zwave.network_ready
      - platform: event
        event_type: zwave.network_complete
      - platform: event
        event_type: zwave.network_complete_some_dead
    action:
      - service: homekit.start

Thanks for the info.
I had been going on the statement that the include is not necessary by default.
With or without the include statements my Leviton dimmer plug-in module is visible in HK.
With or without the include statements, the nanomote is still not visible.
I have now included the automation you suggest.
I note that watching my HK screen, when I restart hassio, the Leviton module goes red (i.e. not available) and when hassio comes back the Leviton module returns to HK in real time. So something is working.
For the nanomote I have also replaced the command_class id=91 section per HA z-wave instructions.

This nanomote appears to be a different beast …

What domain does the entity live in?
E.g.

  • light
  • switch
  • climate
    Etc.

You can find the devices domain easily by looking at the entity_id (it is the first bit). E.g. light.office_lamp is in a light domain and media_player.livingroon is in a media_player domain.

Still no luck. I added another z-wave Leviton module and it automatically showed up in HK right away. The nanomote buttons work by triggering automations. In the Developer Tools page, the nanomote shows constantly ‘initializing’. On the z-wave management page I tested the node, and the logs showed it looks ok, I believe.

Following are some copy/pastes of entity_id:

zwave.aeotec_limited_zwa003_nanomote_quad
sensor.aeotec_limited_zwa003_nanomote_quad_battery_level

zwave.leviton_dzpd3_2bw_decora_300w_plug_in_smart_dimmer
light.leviton_dzpd3_2bw_decora_300w_plug_in_smart_dimmer_level

The following is an automation that works, involving both the nanomote, and the Leviton: (the paste did not preserve the yaml syntax)

  • id: ‘1579652832’
    alias: lev_on_170
    description: ‘’
    trigger:
    • event_data:
      entity_id: zwave.aeotec_limited_zwa003_nanomote_quad
      scene_data: 7680
      scene_id: 2
      event_type: zwave.scene_activated
      platform: event
      condition: []
      action:
    • data:
      brightness: 170
      entity_id: light.leviton_dzpd3_2bw_decora_300w_plug_in_smart_dimmer_level
      service: light.turn_on

The above entity_ids are exactly in the configuration.yaml file
The domains: sensor, light, switch are listed as well under domains, per the copy below. I also tried including zwave as a domain, since it prefixes entities.

homekit:
auto_start: False
filter:
include_domains:
- light
- switch
- sensor
include_entities:
- zwave.aeotec_limited_zwa003_nanomote_quad
- zwave.leviton_dzpd3_2bw_decora_300w_plug_in_smart_dimmer
- sensor.aeotec_limited_zwa003_nanomote_quad_battery_level

I’m not 100% sure on the homekit side, but I’m assuming because the entity is an event and not a switch then it can’t see it. To get around it, you need to create a template switch, so I would create a couple of automations like

- id: '1579667683843'
  alias: Dimmer Button On
  description: ''
  trigger:
  - device_id: d26292a8deda425ca6e2c59585ebc5e6
    domain: deconz
    platform: device
    subtype: turn_on
    type: remote_button_short_press
  condition: []
  action:
  - entity_id: light.philips_hue_light
    service: light.turn_on
- id: '1579667990692'
  alias: Dimmer Button Off
  description: ''
  trigger:
  - device_id: d26292a8deda425ca6e2c59585ebc5e6
    domain: deconz
    platform: device
    subtype: turn_off
    type: remote_button_short_release
  condition: []
  action:
  - data: {}
    entity_id: light.philips_hue_light
    service: light.turn_off

Then in configuration.yaml I would do something like

  - platform: template
    switches:
      skylight:
        value_template: "{{ is_state('switch.skylight', 'on') }}"
        turn_on:
          service: automation.trigger
          data:
            entity_id: automation.dimmer_button_on
        turn_off:
          service: automation.trigger
          data:
            entity_id: automation.dimmer_button_off

That should create a switch that is now available to be used in HomeKit.

Note, this is using an example automation from my system. You would need to change it based on your automation you included in a post above.

OK, thanks. Actually I had read your suggestion when searching for solutions. I had not thought of the fact that the button itself cannot be exposed, because it is really an event trigger. So you wrap that in a switch template. I was unable to get myself to focus in on that as a solution.
I will take a break tonight, and go at it again in the next day or so.
Thanks again; I hope it works! It’s also a great learning … :slight_smile:

Hi Folks.
I set up the switch template as shown further below.
Results:

  1. The switch shows up in HK
  2. Activating the switch in HK results in activating the automation in HA
  3. Activating the switch template in HA, activates the automation in HA
  4. The HK switch state is usable in HK automations. I.e. to activate HK specific devices (wifi, BT).
  5. Activating the nanomote button in HA (z-wave) still activates the HA automation, but it does not change the status of the switch template, nor the HK tile representation of the switch.

This would be the most sought after goal. I figured that maybe it is a sub-second transition that HK would pick up, and then activate an automation in HK in which I used the HK switch as a trigger (#4 above), but that does not happen.
This may be an unrealizable goal. But I recall reading that Lutron can do this with their pro hub to HK. Not sure; I didn’t go that route.

  1. Note the new switch template only shows up in HA in the Developer Tools list. There is no sign of it in the Entities, Devices, etc listings. It is however possible to access it in Customizations, where there are a few fields that can be adjusted; which I did not alter.
switch:  
  - platform: template
    switches:
      bedtable:
        value_template: "{{ is_state('switch.bedtable', 'on') }}"
        turn_on:
          service: automation.trigger
          data:
            entity_id: automation.Lev_on
        turn_off:
          service: automation.trigger
          data:
            entity_id: automation.Leviton_off
- id: '1579406125423'
  alias: Lev_on
  description: ''
  trigger:
  - event_data:
      entity_id: zwave.aeotec_limited_zwa003_nanomote_quad
      scene_data: 7680
      scene_id: 3
    event_type: zwave.scene_activated
    platform: event
  condition: []
  action:
  - data:
      brightness: 255
      entity_id: light.leviton_dzpd3_2bw_decora_300w_plug_in_smart_dimmer_level
    service: light.turn_on

The Leviton_off is similar …

If you set the value template of the switch to point to the light you’re turning on rather than the switch itself, the on/off status then be accurately reflected.

That did it!
Now I will have to go back and learn some basics.
Many thanks!