Z-Wave JS + Fibaro Keyfob FGKF-601

First of all; awesome stuff HomeAssistant, recently moved here from OpenHab and I was in luck to find this new Z-Wave JS integration to start with. All my devices are recognized (some after re-including) but works perfect, thank you!

I have one issue though which I can not get my head around (or do I simply have to be patient?);
Does the new ZWave-JS still support changing device specific settings as described here?: https://www.home-assistant.io/docs/z-wave/device-specific/

I have a Fibaro Keyfob FGKF-601 and even though I see it appearing under devices, somehow I do not see any events I can use for automation (also not after excluding/including), searching lead me to the device specific settings as mentioned above. But this describes editing a zwcfg xml. Somehow after adding the keyfob it is not listed there, I tried restart HA as I heard is needed, also restarting the zwave js addon did not help. Is this deprecated in the new ZWave JS integration somehow?
Any hints on how I could do this using the new ZwaveJS?

This is what I have:

You might have tried this already, but since you didn’t write anything about it I’m mentioning it.
In Z-Wave JS the event for scenes are now in a new event “zwave_js_event”.
I assume you want to listen for scene changes on the Keyfob and use it in an automation. You should be able to find what you need under Events if you listen for “wave_js_event”.
Also see:

Thanks for your suggestions! I will look into it to see if I can get it to work

Yes this did the job, thanks!

Captured event from developer tools in homeassistant, using that info configured automation flow in nodered to catch the event, based on message parsing was able to route messages to appropriate actions, e.g. turn lights on/off etc. Awesome :slight_smile:

Maybe it can be done smarter but this is what my nodered flow looks like (not finished yet but you get the idea):

1 Like

I am in the same situation as you, but I don’t know how to use nodered, can I know your configuration? Thank you

Yes of course!
Please note that in the meantime I have extended it a bit.
My config looks like this now:

I assume by config you mean the export of nodered, please find it below:

[
    {
        "id": "413b8e96.cea24",
        "type": "tab",
        "label": "KeyFob",
        "disabled": false,
        "info": ""
    },
    {
        "id": "8c3ab51f.0fa7e8",
        "type": "server-events",
        "z": "413b8e96.cea24",
        "name": "",
        "server": "aae67f2b.00539",
        "event_type": "zwave_js_event",
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "waitForRunning": true,
        "x": 220,
        "y": 560,
        "wires": [
            [
                "1c44fcd3.d29ca3"
            ]
        ]
    },
    {
        "id": "1c44fcd3.d29ca3",
        "type": "switch",
        "z": "413b8e96.cea24",
        "name": "IsKeyFob?",
        "property": "payload.event.node_id",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "39",
                "vt": "num"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 430,
        "y": 560,
        "wires": [
            [
                "e6d9d24d.0f7ff"
            ]
        ]
    },
    {
        "id": "e6d9d24d.0f7ff",
        "type": "switch",
        "z": "413b8e96.cea24",
        "name": "WhatKeyAction?",
        "property": "payload.event.value",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "KeyHeldDown",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "KeyPressed",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "KeyReleased",
                "vt": "str"
            }
        ],
        "checkall": "false",
        "repair": false,
        "outputs": 3,
        "x": 610,
        "y": 560,
        "wires": [
            [
                "8b7cbbd8.1b4548"
            ],
            [
                "cc2defe8.13e86"
            ],
            [
                "7f2f8b8f.1bdce4"
            ]
        ]
    },
    {
        "id": "cc2defe8.13e86",
        "type": "switch",
        "z": "413b8e96.cea24",
        "name": "WhichKeyWasPressed?",
        "property": "payload.event.property_key_name",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "001",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "002",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "003",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "004",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "005",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "006",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 6,
        "x": 870,
        "y": 560,
        "wires": [
            [
                "f68443d4.601f9"
            ],
            [
                "137c17cf.cfa4d8"
            ],
            [
                "b3c22a8c.f4bf58"
            ],
            [
                "5bc87326.c0530c"
            ],
            [
                "5b46782c.99ac18"
            ],
            [
                "2186b1f9.a8aa3e"
            ]
        ]
    },
    {
        "id": "f68443d4.601f9",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Turn On Indoor Lights",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_on",
        "entityId": "light.plant_current_value_7, light.backdoor_current_value_6, light.window_current_value, light.stairway_current_value_4, light.kitchen_current_value, light.dining_current_value_14, light.frontwindow_current_value_3",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1200,
        "y": 420,
        "wires": [
            []
        ]
    },
    {
        "id": "b3c22a8c.f4bf58",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Turn On Garden",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "switch",
        "service": "turn_on",
        "entityId": "switch.outdoor_current_value_2_2",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1180,
        "y": 540,
        "wires": [
            []
        ]
    },
    {
        "id": "5bc87326.c0530c",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Turn Off Garden",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "switch",
        "service": "turn_off",
        "entityId": "switch.outdoor_current_value_2_2",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1180,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "137c17cf.cfa4d8",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Turn Off Indoor Lights",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "light",
        "service": "turn_off",
        "entityId": "light.plant_current_value_7, light.backdoor_current_value_6, light.window_current_value, light.stairway_current_value_4, light.kitchen_current_value, light.dining_current_value_14, light.frontwindow_current_value_3",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1200,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "5b46782c.99ac18",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Fully Close Sunshade",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "cover",
        "service": "close_cover",
        "entityId": "cover.sunshade_current_value",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1200,
        "y": 660,
        "wires": [
            []
        ]
    },
    {
        "id": "2186b1f9.a8aa3e",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Fully Open Sunshade",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "cover",
        "service": "open_cover",
        "entityId": "cover.sunshade_current_value",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1200,
        "y": 720,
        "wires": [
            []
        ]
    },
    {
        "id": "8b7cbbd8.1b4548",
        "type": "switch",
        "z": "413b8e96.cea24",
        "name": "WhichKeyIsHeldDown?",
        "property": "payload.event.property_key_name",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "001",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "002",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "003",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "004",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "005",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "006",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 6,
        "x": 870,
        "y": 240,
        "wires": [
            [],
            [],
            [],
            [],
            [
                "ab5c46fe.115e28"
            ],
            [
                "cea75ddd.40ba3"
            ]
        ]
    },
    {
        "id": "ab5c46fe.115e28",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Close Sunshade",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "cover",
        "service": "close_cover",
        "entityId": "cover.sunshade_current_value",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1180,
        "y": 220,
        "wires": [
            []
        ]
    },
    {
        "id": "cea75ddd.40ba3",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Open Sunshade",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "cover",
        "service": "open_cover",
        "entityId": "cover.sunshade_current_value",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1180,
        "y": 280,
        "wires": [
            []
        ]
    },
    {
        "id": "7f2f8b8f.1bdce4",
        "type": "switch",
        "z": "413b8e96.cea24",
        "name": "WhichKeyWasReleased?",
        "property": "payload.event.property_key_name",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "001",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "002",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "003",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "004",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "005",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "006",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 6,
        "x": 870,
        "y": 840,
        "wires": [
            [],
            [],
            [],
            [],
            [
                "5e103c50.1e80f4"
            ],
            [
                "5e103c50.1e80f4"
            ]
        ]
    },
    {
        "id": "5e103c50.1e80f4",
        "type": "api-call-service",
        "z": "413b8e96.cea24",
        "name": "Stop Closing/Opening Sunshade",
        "server": "aae67f2b.00539",
        "version": 1,
        "debugenabled": false,
        "service_domain": "cover",
        "service": "stop_cover",
        "entityId": "cover.sunshade_current_value",
        "data": "",
        "dataType": "jsonata",
        "mergecontext": "",
        "output_location": "",
        "output_location_type": "none",
        "mustacheAltTags": false,
        "x": 1220,
        "y": 860,
        "wires": [
            []
        ]
    },
    {
        "id": "aae67f2b.00539",
        "type": "server",
        "name": "Home Assistant",
        "addon": true
    }
]

In order to make this work on your end probably only thing you need to do is change the node Id in the “IsKeyfob?” check to the node id of your keyfob and update the relevant actions (lights/sunshade, etc.)

Thank you very much

Hi Benjamin,

Thank you so much for providing this solution, I tried to see how I could set an entity_id value, but your solution is just as good.

For anyone coming across this, it seems the event_type string has changed to ‘zwave_js_value_notification’