“Central Scene” Command Class - Fibaro Swipe, HomeSeer WS-100D Switches

Nice! Does anybody know what the future of the permanent fix for this is? Still trying to work out what needs to be patched to make these features work natively. Cheers!

@bruhautomation - To avoid any manual configuration editing for the HS-WD100+, one would need to submit an updated hs-wd100plus.xml to the OpenZWave project and have them accept it, wait for a new release of both OpenZWave and python_openzwave, modify Home Assistant to reference the released version of python_openzwave, submit a pull request for that and have it accepted, then wait for a new release of Home Assistant.

To shortcut some of that, you could manually modify your local site-packages/python_openzwave/ozw_config/homeseer/hs-wd100plus.xml to include the command class, remove the nodes from your zwcfg xml, then relaunch Home Assistant and add them via the UI, at which point it’ll pull the command class from the XML for any nodes of that type.

I believe there is still an open pull request for a more complete implementation of the central scene command class in OpenZWave. I’m unsure if that better performs discovery of the scenes available from a device, thus negating the need for the manual definition in the xml. If so, that would be ideal, and would require no more changes in Home Assistant aside from referencing whatever version of OpenZWave contains the update.

1 Like

Gotcha. Nice! Sorry for the delay responding. Always see these from my inbox and forget to hit respond. Thanks for the info. Pumped for the progress on this front. Looking forward to implementing and making more videos soon. Cheers!

1 Like

Here is the PR from @robbiet480 on the openzwave GitHub, unfortunately it’s been open for 8 months without the maintainer doing much work on it.

https://github.com/OpenZWave/open-zwave/pull/1125

@sirmalloc

Is there somewhere to get the required changes for these files, that includes the central scene detail?
I have another 12 or so of these to add, and as I’m having a horrible time getting my zwconf*.xml to hold the changes (stopping hass, making the change, restarting hass (or rebooting, etc.) doesn’t hold the changes).

I’d happy mod the hs-wd100plus.xml and hs-ws100plus.xml, add all my devices to save the hassle, just need to know what changes are required.

Nevermind, I just put the entries that I would have put in the zwcfg*.xml file into the xml files for the switch and dimmer, then removed and re-added a couple switches and dimmers to test, and they’re working well.

With help from sixreeves (discord chat) and @sirmalloc (From: Trying to efficiently write automation using trigger.entity_id - can't seem to get syntax right) my automations work after simply adding and renaming the switches/dimmers.

For example, all of my HS Dimmers go to full brightness on double tap up, dim very low on double tap down (I also have single tap up turn them on to different levels based on time of day…).

#### - HS DIMMER Automation - ################
- alias: 'HSDimmer DBLTap Up'
  trigger:
    platform: event
    event_type: zwave.scene_activated
    event_data:
      scene_id: 1
      scene_data: 3
  action:
    service: light.turn_on
    data_template:
      entity_id: '{{"light." + trigger.event.data.entity_id.split(".")[1] + "_level" }}'
    data:
      brightness: 255
1 Like

Thanks for the example, this works for my switches now

 - alias: 'HomeSeer Switch Fix On'
    trigger:
      platform: event
      event_type: zwave.scene_activated
      event_data:
        scene_id: 1
        scene_data: 0
    action:
      - service: switch.turn_on
        data_template:
          entity_id: '{{"switch." + trigger.event.data.entity_id.split(".")[1] + "_switch" }}'
  - alias: 'HomeSeer Switch Fix Off'
    trigger:
      platform: event
      event_type: zwave.scene_activated
      event_data:
        scene_id: 2
        scene_data: 0
    action:
      - service: switch.turn_off
        data_template:
          entity_id: '{{"switch." + trigger.event.data.entity_id.split(".")[1] + "_switch" }}'

Hello,

I’m trying to setup a scene command for a WS-100D but it doesn’t work and I don’t know why:

  • zwcfg xml has been updated
  • event is received
    Nov 28 21:50:01 pi hass[730]: 2017-11-28 21:50:01 INFO (MainThread) [homeassistant.core] Bus:Handling <Event zwave.scene_activated[L]: node_id=3, scene_id=1, entity_id=zwave.homeseer_hswd100_wall_dimmer, scene_data=3>
  • I can manually fire an event (from developper tool) that will trigger my automation rule with success:
    • event type: zwave.scene_activated
    • event data { “entity_id”: “light.homeseer_hswd100_wall_dimmer_level”, “scene_data”: 3, “scene_id”: 1})
  • but the rule doesn’t work when I actually double tap the dimmer:
- id: a0009
  alias: Double tap 
  trigger:
    - platform: event
      event_type: zwave.scene_activated
      event_data:
        entity_id: light.homeseer_hswd100_wall_dimmer
        scene_id: 1
        scene_data: 3
  action:
    - service: light.turn_on
      data:
        entity_id: light.commode
        color_name: red
        brightness: 40
        transition: 10

I can’t figure why the rule works with a manual test event and doesn’t work with a real event.
Any clue?

got it fixed, entity_id must be the zwave device not the light device. I based my rule on some examples that can not cleary work.

What is this for ? to fix the delay and the communication of this switches ?

The switches just send the scene command, no the switch on/off so this forces the switch into the right state so automations are easier. Instead of catching the scene change you can just check on/off like usual.

You just create that automation and that fixes the problem on the ON/OFF ?

Or do we need to do any other change ?

Because its not working for me as is .

Thanks

Assuming your devices are firing the scene correctly it should work. You can check your zwave logs when you press the on/off button on the switch to see what it’s sending

Does anyone have this working with the docker image of hass? I’ve added two Aeotec Wallmotes (ZW-129B, non-quad) to my zwave network and configured zwcfg.xml accordingly. Unfortunately, I see no messages in OZW_Log.txt when pressing the touchpad on either wallmote.

Hi Guys,

I wanted to share my findings based on this thread for getting my Fibaro Keyfob (FGKF-601) to work.

Im running HA 0.58.1

I followed similar steps to those above in associating the keyfob, shutting down HA and updating the zwcfg_xxxxxx.xml file with:

			<CommandClass id="91" name="COMMAND_CLASS_CENTRAL_SCENE" version="1" request_flags="4" innif="true" scenecount="6">
				<Instance index="1" />
				<Value type="int" genre="system" instance="1" index="0" label="Scene Count" units="" read_only="true" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="6" />
				<Value type="int" genre="user" instance="1" index="1" label="Square" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="user" instance="1" index="2" label="Circle" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="user" instance="1" index="3" label="X" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="user" instance="1" index="4" label="Triangle" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="user" instance="1" index="5" label="Minus" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
				<Value type="int" genre="user" instance="1" index="6" label="Plus" units="" read_only="false" write_only="false" verify_changes="false" poll_intensity="0" min="-2147483648" max="2147483647" value="0" />
			</CommandClass>

from there I have created a test to see if the key fob worked with an automation file that contained:

  - alias: "Master Bedroom Light On"
    hide_entity: False
    initial_state: on
    trigger:
      - platform: event
        event_type: zwave.scene_activated
        event_data:
          entity_id: zwave.fibaro_system_fgkf601_keyfob
          scene_id: 6
          scene_data: 7680
    action:
      - service: light.turn_on
        data:
          entity_id: light.master_bedroom_lamp
          brightness: 76

  - alias: "Master Bedroom Light Off"
    hide_entity: False
    initial_state: on
    trigger:
      - platform: event
        event_type: zwave.scene_activated
        event_data:
          entity_id: zwave.fibaro_system_fgkf601_keyfob
          scene_id: 6
          scene_data: 7740
    action:
      - service: light.turn_off
        data:
          entity_id: light.master_bedroom_lamp

Note the scene_id and scene_data for both on and off automations.

When I press the plus key, the light turns on and when I hold the plus key, the light turns off. - scene_id and scene_data can be seen in the logs when a key is pressed if your wondering how I guessed the id and data for both actions :slight_smile:

So happy that @sirmalloc was able to figure out a patch and the required lines that were needed for zwcfg_xxxxxx.xml

Thank you very much!!

Now how do we get these workarounds that people have submitted to be part of OZW?? Is it a matter of adding the command class blocks to the approbate ozw_config file i.e. /srv/homeassistant/lib/python3.4/site-packages/python_openzwave/ozw_config/fibaro/fgkf601.xml

1 Like

I’m finding that my edits in the zwcfg…xml file are not surviving a reboot and get overwritten.
How to persist the changes?
Re-reading this post more closely, I see I’d missed to stop hass before making the edits, and start up afterwards. This now gets them to persist.
Is it expected to not have zwave.scene_changed as an option in the developer tools, service ?

Before editing you zwcfg file stop the hass server

1 Like

Good morning. I’m trying for days now how to get this working but I fail. I just see scene_I’d in logs. When I add the keyfob it just adds an unknown device

No configuration options in ozwcp nothing. How rir u know what to put in the zwcfg.xxxx.XML?
{
“receivedDups”: 0,
“averageResponseRTT”: 0,
“is_failed”: false,
“averageRequestRTT”: 0,
“node_name”: “FIBARO System Unknown: type=1001, id=1000”,
“is_info_received”: true,
“manufacturer_name”: “FIBARO System”,
“receivedTS”: "2018-01-04 00:53:01:780 ",
“lastResponseRTT”: 0,
“is_ready”: false,
“node_id”: 35,
“sentTS”: "2018-01-04 01:02:38:540 ",
“query_stage”: “CacheLoad”,
“battery_level”: 35,
“receivedUnsolicited”: 0,
“max_baud_rate”: 40000,
“sentCnt”: 1,
“wake_up_interval”: 0,
“receivedCnt”: 0,
“capabilities”: [
“beaming”,
“routing”
],
“friendly_name”: “FIBARO System Unknown: type=1001, id=1000”,
“old_entity_id”: “zwave.fibaro_system_unknown_type1001_id1000_35”,
“new_entity_id”: “zwave.fibaro_system_unknown_type1001_id1000”,
“product_name”: “Unknown: type=1001, id=1000”,
“lastRequestRTT”: 0,
“sentFailed”: 1,
“is_zwave_plus”: true,
“retries”: 0,
“is_awake”: false
}

I have the /srv/homeassistant/lib/python3.4/site-packages/python_openzwave/ozw_config/fibaro/fgkf601.xml file but ozwcp won’t recognize the device . how does pip list look like in your hass venv? I might have some packages installed I don’t need?

I just realized that I wrongly changed zwcfg and did not add the scenecount to 6. Made my changes and will have to wait till tonight as I’m at work soon.thanks so far. Anyway my keyfob will just show up as unknown. I’m have the feeling ozwcp does not use the appropriated srv/homeassistant/lib/python3.4/site-packages/python_openzwave/ozw_config/fibaro/fgkf601.xml file?

I also just saw that the example on home assistant page is different

Here u see scenecount=0

How did u figure out how to set your parameters?