Zwave Binding OH2.5.11 Manual Command Poll Period in things file

There are two devices that I have when added are “Unknown Device”

They are the new version of Smart Fan controls: GE 12730 (ZW4002) In-Wall Smart Fan Control

They are supported in the " Things Supported by the Z-Wave Binding" Page

I got the devices working by adding them manually in the .things file:

ge_12730zw4002_00_000 MasterBedroomFan "Master Bedroom Fan" [ node_id=23 ]

The only problem with this is when I try to changed the “Command Poll Period” in Paper UI , or HABmin I get an error "Error: 409-Conflict "

Is there a way to define this parameter in the things file along the lines of…

ge_12730zw4002_00_000 MasterBedroomFan "Master Bedroom Fan" [ node_id=23, command_Poll_period=5000 ]

I have tried this above but it down not change from the default 1500ms and have not found any documentation about what config name to use…

Thanks for the help!

Using a .things file is not recommended because it is too error-prone. In 2 years I nage never needed to do that.

If the device is not being recognized as it should, you need to follow the binding documentation and collect DEBUG logs to determine what is happening.

Are you sure that it is called

?

Could it be that you are looking for binding_pollperiod like used in this thread

or for binding_cmdrepollperiod ?
See also Z-Wave binding_cmdrepollperiod cannot exceed 15 seconds

The way I did it, is by defining a rule which sends a REFRESH command at regular time intervals (e.g. by defining a cron trigger).

My understanding is that with modern Z-Wave devices polling is usually not needed. The devices report changes to the controller.

That is true, but there are still many “Z-Wave version 1” devices. There are also Z-Wave 2 devices which don’t report their state. In either case, the Z-Wave binding won’t be able to offer you polling, unless you write a rule which explicitly issues a REFRESH command to the devices to be polled.

Here’s an example of such rule written in Jython/ (Python):

LogTitle = "Blinds Automation"

# Item registry items used in this rule:
class my_ir_items:
    ALL_Z_WAVE_ROLLER_SHUTTERS_GROUP = "Group_Item_containing_ZWave_devices_to_be_polled_periodically"

@rule(
    "Refresh Z-Wave state",
    description="Poll the Z-Wave state every 5 minutes (for managing older Z-Wave shutters that don't report their state to the controller)",
    tags=["roller shutter automation", "polling"],
)
@when("Time cron 1 0/5 * * * ?")  # Poll item state each 5 minutes, starting at 00:00:01
def Rule_poll_state(event):
    global logTitle
    logPrefix = "Rule_refresh_state(): "

    # First retrieve the group item from the item registry:
    gShutter = get_item(my_ir_items.ALL_Z_WAVE_ROLLER_SHUTTERS_GROUP)
    if gShutter is None:
        # Group item not found: rule will not run
        LogAction.logError(
            logTitle,
            logPrefix
            + "Group '{grp}' not found - nothing to do".format(
                grp=my_ir_items.ALL_Z_WAVE_ROLLER_SHUTTERS_GROUP
            ),
        )
        return

    LogAction.logDebug(
        logTitle,
        logPrefix
        + "Refresh Z-Wave state of {cnt} blind(s)".format(
            cnt=gShutter.getAllMembers().size()
        ),
    )

    # Send REFRESH to each member of the gShutter group:
    for x in gShutter.getAllMembers():
        LogAction.logDebug(
            logTitle,
            logPrefix + "Refresh Z-Wave state of '{name}'".format(name=x.getName()),
        )
        events.sendCommand(x, "REFRESH")

Replace Group_Item_containing_ZWave_devices_to_be_polled_periodically with the name of the Group Item containing the (Z-Wave) devices to be polled.

I’m performing this rule-based approach on all Z-Wave blinds (Fakro ARZ Z-WAVE and Fibaro FGR-223) at home. What you can also do, is add a 2nd rule which performs the command re-poll some time after the command is supposed to have been executed (e.g. 30 seconds if your blinds need 20 seconds to be operated). That second rule is then triggered when an Item received a command (different from REFRESH) and fires a timer after which the REFRESH command will be issued. I implemented the latter in Node-RED (so I could expose my blinds to Apple Homekit).