Aeotec Nanomote / aeon minimote buttons

Hello,

I’ve installed hassos on an RPi 4 (now at 5.11, core-2021.2.3, supervisor-2021.02.6) and have the Z-Wave-JS integration (Driver Version: 6.1.3, Server Version: 1.0.0-beta.5). I’ve successfully added nanomote and minimote devices but there doesn’t seem to be a way to automate using the buttons on these devices.

There are no automations available for the minimote and the only ones for the nanomote relate to the battery level.

I found https://www.home-assistant.io/docs/z-wave/device-specific/ but have been told the zwcfg files aren’t relevant for zwave-js. I’ve also found https://github.com/zwave-js/node-zwave-js/issues/1600 but this talks about adding support for various devices including the nanomote—and also the Aeon labs ZW095 energy meter. Both seem to be supported in that I can add then and the support for the ZW095 in terms of what I can access looks to be the same as for the OpenZWave integration.

So, how do I can I do anything if I press nanomote or minimote buttons? If I just have to wait, where do I look to see when things will be ready?

Thanks for any help,
bdg

I have 2 minimotes that I had working with the depricated Z-Wave 1.4 and Node Red. When I switched they stopped working, and I found that I only had to change the event type from zwave.scene_activated to zwave_js_event. If you go to Developer Tools - Events and scroll to the bottom, type in zwave_js_event to the “listen to” field and start listening. Then press your remote buttons to see which node id is responding and what value is being sent.

Thanks! Not an answer I expected but I see events for the nanomote quad buttons. Not for those of the minimote, but I can live with that—especially as it will take me a while to figure out how to use these events to turn anything on or off.

Thanks again,
bdg

Here’s my Node-Red flow for my 2 minimotes. You should be able to modify it to support your nanomote quad. Change the node numbers in the first switch node to match the nodes for your remotes. (mine are node 27 and 28). Then change the values for payload.event.value in each of the 4 switches to match your buttons.

95% of my automations are in Node-Red, so I’m not able to help with the default automations. I find it much easier to find sample source code for automations in Node-Red than I do for HA automations. Just copy/paste the code and import it into a new flow, then tweak it to match your devices and customizations.

For comparison on the minimotes, mine showed up in z-wave js as
DSA03XXX-ZW by AEON Labs Firmware: 1.19.

[{"id":"8c3999d0.bd0068","type":"tab","label":"Minimote Test","disabled":false,"info":""},{"id":"4c876728.4d7118","type":"server-events","z":"8c3999d0.bd0068","name":"Listen for Any ZWave Scene Activated","server":"8be923df.d66f9","event_type":"zwave_js_event","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"waitForRunning":true,"x":165,"y":45,"wires":[["38b2bdf0.df93d2"]]},{"id":"38b2bdf0.df93d2","type":"switch","z":"8c3999d0.bd0068","name":"Filter on Node 27 (Minimote 1) or Node 29 (Minimote 2)","property":"payload.event.node_id","propertyType":"msg","rules":[{"t":"eq","v":"27","vt":"str"},{"t":"eq","v":"29","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":285,"y":105,"wires":[["da2f3f8f.9778f","252558a2.fc4b68","ad39b4a4.ba1eb8","a699cfb.f3ef43"],["252558a2.fc4b68","da2f3f8f.9778f","ad39b4a4.ba1eb8","a699cfb.f3ef43"]]},{"id":"252558a2.fc4b68","type":"switch","z":"8c3999d0.bd0068","name":"Filter on button 1 (1=pressed & 2=held)","property":"payload.event.value","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"},{"t":"eq","v":"2","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":235,"y":190,"wires":[["a2388593.e6e6a8"],["249ec491.718f5c"]]},{"id":"da2f3f8f.9778f","type":"switch","z":"8c3999d0.bd0068","name":"Filter on button 2 (3=pressed & 4=held)","property":"payload.event.value","propertyType":"msg","rules":[{"t":"eq","v":"3","vt":"str"},{"t":"eq","v":"4","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":235,"y":265,"wires":[["4f62fb6b.1ba3d4"],["23b71e97.949db2"]]},{"id":"ad39b4a4.ba1eb8","type":"switch","z":"8c3999d0.bd0068","name":"Filter on button 3 (5=pressed & 6=held)","property":"payload.event.value","propertyType":"msg","rules":[{"t":"eq","v":"5","vt":"str"},{"t":"eq","v":"6","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":235,"y":405,"wires":[["8a01c651.722048"],["3da97f26.9a2"]]},{"id":"a699cfb.f3ef43","type":"switch","z":"8c3999d0.bd0068","name":"Filter on button 4 (7=pressed & 8=held)","property":"payload.event.value","propertyType":"msg","rules":[{"t":"eq","v":"7","vt":"str"},{"t":"eq","v":"8","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":235,"y":465,"wires":[["9fd6f94a.b6c4d8"],["30943530.58097a"]]},{"id":"30943530.58097a","type":"api-call-service","z":"8c3999d0.bd0068","name":"Overhead Light Brightness=100","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.lamp_overhead_level_on_off","data":"{\"entity_id\":\"light.lamp_overhead_level_on_off\",\"brightness_pct\":100}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":625,"y":545,"wires":[[]]},{"id":"9fd6f94a.b6c4d8","type":"api-call-service","z":"8c3999d0.bd0068","name":"Overhead Light Toggle","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.lamp_overhead_level_on_off","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":595,"y":485,"wires":[[]]},{"id":"3da97f26.9a2","type":"api-call-service","z":"8c3999d0.bd0068","name":"Light 3 Brightness=100","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.lamp_3_level_on_off","data":"{\"entity_id\":\"light.lamp_3_level_on_off\",\"brightness_pct\":100}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":595,"y":445,"wires":[[]]},{"id":"8a01c651.722048","type":"api-call-service","z":"8c3999d0.bd0068","name":"Light 3 Toggle","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.lamp_3_level_on_off","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":575,"y":385,"wires":[[]]},{"id":"23b71e97.949db2","type":"api-call-service","z":"8c3999d0.bd0068","name":"Light 2 Brightness=100","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.lamp2_level_on_off","data":"{\"entity_id\":\"light.lamp2_level_on_off\",\"brightness_pct\":100}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":595,"y":325,"wires":[[]]},{"id":"4f62fb6b.1ba3d4","type":"api-call-service","z":"8c3999d0.bd0068","name":"Light 2 Toggle","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.lamp2_level_on_off","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":575,"y":265,"wires":[[]]},{"id":"249ec491.718f5c","type":"api-call-service","z":"8c3999d0.bd0068","name":"Light 1 Brightness=100","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.lamp1_level_on_off","data":"{\"entity_id\":\"light.lamp1_level_on_off\",\"brightness_pct\":100}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":595,"y":205,"wires":[[]]},{"id":"a2388593.e6e6a8","type":"api-call-service","z":"8c3999d0.bd0068","name":"Light 1 Toggle","server":"8be923df.d66f9","version":1,"debugenabled":false,"service_domain":"light","service":"toggle","entityId":"light.lamp1_level_on_off","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":650,"y":145,"wires":[[]]}]

Thanks for this! Holidays here though so I won’t be testing this out for a few days but I’m sure it will help.

Regards,
bdg

hello everyone,
im still very new to this i this is causing me alot of greef, so if some Gentil soul Could help me with this! i have already spent alot of money on buttons… because i thought the last ones were cheap or something, but now i have these namote motes and i have the same issue.
this is what i get from listening.

Event 1 fired 5:53 PM:
{
    "event_type": "zwave_js_event",
    "data": {
        "type": "value_notification",
        "domain": "zwave_js",
        "node_id": 58,
        "home_id": 3889200754,
        "endpoint": null,
        "device_id": "b078e1d6a79f6ee6ba98789f0138ff1d",
        "command_class": 91,
        "command_class_name": "Central Scene",
        "label": "Scene 002",
        "property_name": "scene",
        "property_key_name": "002",
        "value": "KeyPressed"
    },
    "origin": "LOCAL",
    "time_fired": "2021-02-25T17:53:10.381458+00:00",
    "context": {
        "id": "6716c1c14579e2ff29ab9d8528800dec",
        "parent_id": null,
        "user_id": null
    }
}

how can i program use this to make the buttons performe tasks?

Check this link,

I have a minimote but based on the zwave_js_event you can created automation something like this

- alias: Wallmote 1
  trigger:
    - platform: event
      event_type: zwave_js_event
      event_data:
        device_id: [OWN DEVICE ID HERE]
        label: [OWN LABEL HERE]
        value: KeyPressed (or KeyHeldDown or KeyReleased)
  action:
    - service: switch.toggle
      entity_id: light.wall

You can look for blueprints make it easier and you can do all 4 or so button presses in one automation instead of created for each button.

1 Like

Thank you So much!!!

After migrating to zwave js my Nanomote wasn’t working either. I tried listening for these zwave_js_event when pressing buttons, but nothing. The surprise is that, for whatever reason, with my setup the events are of type “zwave_js_value_notification”. Here is a sample event:

{
    "event_type": "zwave_js_value_notification",
    "data": {
        "domain": "zwave_js",
        "node_id": 14,
        "home_id": 4088498678,
        "endpoint": 0,
        "device_id": "cc06b40e63af53cd1b4a84e8b981d318",
        "command_class": 91,
        "command_class_name": "Central Scene",
        "label": "Scene 004",
        "property": "scene",
        "property_name": "scene",
        "property_key": "004",
        "property_key_name": "004",
        "value": "KeyPressed",
        "value_raw": 0
    },
    "origin": "LOCAL",
    "time_fired": "2021-05-20T10:31:06.589743+00:00",
    "context": {
        "id": "45dc455dd3424170c4b0fddae4c0aec1",
        "parent_id": null,
        "user_id": null
    }
}

So all I need to nodered is to listen to this events, then get the property_key attribute to know which key is pressed. You can also consider “value_raw”, which is 0 for short button presses, then 2 and 1 respectively for long presses and releases.

I’m here trying to figure out the Nanomote Quad myself and rather than setting up an automation that involves the controller, wouldn’t direct associations to the devices I want to control be better?

I had similar challenges getting a NanoMote Quad connected. In fact I did assume that my actual device was broken and got a new one (which behaved the same).

In my case a device was added with the Z-Wave JS procedure but there were no buttons shown, just a “Nanomote: Ping”, “Battery level”, “Low battery level” and “Nanometer: Status”.

The way I nonetheless was able to use the buttons as triggers was this (not sure if that is the most efficient but it was the only one I got to work).

Go to “Configure device”. There is a parameter 41, central scene notification. It was switched of initially. I did switch it on. In order to sync I had to get the Nanomote quad into longer wake status (5 sec button press).

Then I went into automation and selected as trigger “device”. Selected under the device line the Nanomote and under trigger “Central Scene action Endpoint 0 Scene 001” (and similar for the others).
Selecting Key press variants did not work well, sometimes there was a “value: 1 automatically added”. I believe this determines if it is a keypress action (without the value line) or or keyhole action (value: 1).

This is how my trigger section looks now and it works on key press action for all 4 keys:

trigger:
  - platform: device
    device_id: 28c2f216191e2a433e983b8fc66666
    domain: zwave_js
    type: event.value_notification.central_scene
    property: scene
    property_key: '001'
    endpoint: 0
    command_class: 91
    subtype: Endpoint 0 Scene 001
    variables:
      trigger_key: 1
  - platform: device
    device_id: 28c2f216191e2a433e983b8fc66666
    domain: zwave_js
    type: event.value_notification.central_scene
    property: scene
    property_key: '002'
    endpoint: 0
    command_class: 91
    subtype: Endpoint 0 Scene 002
    variables:
      trigger_key: 2
  - platform: device
    device_id: 28c2f216191e2a433e983b8fc66666
    domain: zwave_js
    type: event.value_notification.central_scene
    property: scene
    property_key: '003'
    endpoint: 0
    command_class: 91
    subtype: Endpoint 0 Scene 003
    variables:
      trigger_key: 3
  - platform: device
    device_id: 28c2f216191e2a433e983b8fc66666
    domain: zwave_js
    type: event.value_notification.central_scene
    property: scene
    property_key: '004'
    endpoint: 0
    command_class: 91
    subtype: Endpoint 0 Scene 004
    variables:
      trigger_key: 4

Based on “trigger_key” I build the action section to, in my case, start a water pump for a defined time depending on the button pressed.

I hope it helps others to save some time.

Took me a while too to figure this out, but that is how it is supposed to work. Buttons do not represent as entities, as there is nothing to show or control from HA. You either trigger an automation on the device or on an event.