Integration to Zimi / Powermesh

I think I’m going to pick up the garage door control + ZCC hub bundle pack from steel line. Christmas special $346. :slight_smile:

Happy New Year everyone. I hope 2022 is the Year of the Zimi Integration. :smiley:

We are getting a Steel-line garage door soon, so I was looking at smart controller options.

The interesting thing is that their basic sectional door motors. E.g.:
https://www.steel-line.com.au/wp-content/uploads/2021/10/SD800-Sectional-Door-Opener-brochure_01-950-0381.pdf

Don’t have momentary push button terminals hence these types oh hacks:

But their Marantec controllers do have push button wiring terminals, so would be compatible with Zimi.

Just wondering what other people are experiencing with Zimi compatibility with Steel-line controllers.

And if I had a Zimi, I would have a crack at it via RestFul Sensor. E.g.

sensor:
  - platform: rest
    name: Garage Door Position
    resource: 'http://IP_ADDRESS:5003/api/v1/controlpoint/states'
    value_template: "{{ value_json.response.controlpoint_states[0].states.controlState.garagedoor.openpercentage }}"

rest_command:
  open_garage_door:
    url: http://IP_ADDRESS:5003/api/v1/controlpoint/actions
    method: POST
    payload: '{"actions":[  {  "id": "product0004_1",  "action": "OpenDoor",  "actionParams": {}  }  ]}'
    content_type:  'application/json; charset=utf-8'

rest_command:
  close_garage_door:
    url: http://IP_ADDRESS:5003/api/v1/controlpoint/actions
    method: POST
    payload: '{"actions":[  {  "id": "product0004_1",  "action": "CloseDoor",  "actionParams": {}  }  ]}'
    content_type:  'application/json; charset=utf-8'

rest_command:
  set_garage_door_position:
    url: http://IP_ADDRESS:5003/api/v1/controlpoint/actions
    method: POST
    payload: '{"actions":[  {  "id": "product0004_1",  "action": "OpenToPercentage",  "actionParams": {    "openpercentage": 50  }  }  ]}'
    content_type:  'application/json; charset=utf-8'
1 Like

All - apologies for going silent, had a few real world issues push this to the back burner, coupled with the fact I have outsourced to someone competent :grinning_face_with_smiling_eyes: While I am reticent to build too much anticipation I wanted to update and let you know much progress has been made, and we are still working at it.

The HA integration is largely built - lights and switch (incl dimmer) are working, just sorting out the garagedoor which is almost complete.

Focus will then shift to performance and state awareness. This might be trivial, or not… the zcc can be slow and is currently prone to locking up / becoming unresponsive. It is too unstable at the moment to consider releasing. This phase could take a bit of time as the zcc API is limited and it is difficult to trace what is causing behaviour. Lots of trial and error…

Anyway, here are a few images to show progress.
image

1 Like

That’s great news to hear, as cautious as you are to build expectations.

A little concerning - when that happens does it effect all inputs (i.e. from app, wireless switches too?)

I hope real life settles down for you and that you can return to your regular activities.

The acc appears to operate independently of the app (that is another rabbit hole … android vs. apple app stability has proven to be an interesting topic). The mobile app bridges to the closest(?) endpoint via bluetooth. I have seen the devices state take a little while to update in the app but I suspect this is more to do with the number of devices rather than the zcc.

In terms of performance there are a few things planned for testing.

  1. don’t have a reference on how the number of connected devices may impact performance. Once we are happy with all the base functionally I’ll have to remove a bunch of devices from my network (currently at 49) and start adding a few at a time to see if this impacts performance. This action obviously has a low WAF so needs to be planned carefully!

  2. the socket management on the zcc appears to be rudimentary so the plan is to try and actively manage

  3. the current build is conservative in timings due to above, perhaps we can tune up wait times a bit once we get the socket management under control.

1 Like

so glad youve come back lol, Just bought enough devices to fit two houses so was looking forward to your integration, nice to see some progress still happening, Hopefully the life issues manage to take a backseat

1 Like

Thank you for the update, very much appreciated.
I cannot tell you how grateful I am for this and I hope your other real life get resolved without too much pain.

llundberg

More progress over the weekend:

  • Garage door is pretty much done. One bug to be squashed but not a major issue, have a good idea on what the problem is and it has a workaround for now
  • Integration now automatically assigns entities to an area based on Zimi name / data. Obviously this can be overwritten in HA as required. Makes large installs much easier to manage
  • Refresh of integration picks up changes (add / remove / rename) - most of the time…
  • Added some more debugging to help with next phase of performance testing
  • Config flow updated, more robust discovery and no longer need to provide IP of zcc

Next steps:

  • Performance optimisation - some improvement already made, chipping away
  • Event logging - perhaps… basic HA logging is working fine however may add more in debug mode to help users if experiencing issues / unexpected behaviour, especially on initial release
  • Code clean up / adherence to style guidelines
  • Add support for Fan Controller and Dimmer (I don’t have these to test but based on learnings so far this shouldn’t be too difficult) - will need to find someone to test, or wait for the bug report
  • Engage with zimi team to discuss some suggested potential API updates to improve overall functionality

It’s getting closer. Have made more progress in the last 2 weeks than in the previous 2 months which is nice.

Unplanned feature is the ability to use scripts and automations with any switch point (ideally a “spare”), to trigger some other HA entity e.g. I have a spare switch on a 2 point light switch in the WIR that I can now use to run a couple of scripts to put the blinds up and down :sunglasses:

Still work required to be “production ready”, I suspect we will go down the HACS Custom repositories path in the early days when we need some more testing.

have a heap of fan controllers to be installed shortly so will be able to test those ones out when a release is available

Have all versions to be installed except the garage one

@jamesbj348 How many total points do you think you will have? Are you intending to run exhaust fans off a power mesh switch?

about 35 between Power points, Light switches 1,2,3 and fan controllers connected to ceiling fans no exhaust fans

Update: Massive performance improvements made. The integration is fast and stable now, it is also state aware of external activity (app / physical switch).

Good news is that we are moving onto documentation as many of the outstanding items are not blockers and can be ticked off as minor updates. I’m getting close to deploying it in my main instance of HA. Won’t be too much longer before it can be released for further testing and feedback…

2 Likes

Awesome! Congrats to the two of you.

Congrats on the work, Looking forward to release :grinning_face_with_smiling_eyes:

Incredible work mate, I was just in the phone to a support rep about weird inconsistent set up issues which sorted themselves out with a new account. Also just emailed the developers asking for API information to get to work on a HomeAssistant integration and eventually HomeBridge for my more simplistic household. Excited to see the results as I’d love to get working on a HomeBridge plugin from your work!

How are we looking 11 days in for release :joy:

All,

Our intention is to release an Beta version to interested people this week. The purpose of this release is to get more feedback and test a variety of environments to help build towards a v1 release.

This initial release will be by way of a public repository, it is suggested to install this via HACS:

If you are self-managing your install you could manually add to your custom_components/ directory.

A few things to note:

  • It is strongly suggested that you trial the integration in a test environment, if you don’t have one setting up a Development Environment is easy - Set up Development Environment | Home Assistant Developer Docs

  • We are aware that there is an API update in the works, this may (or may not) break the integration, we will address issues as they become evident

Supported devices

There is currently support for the following device types within Home Assistant:

  • Light (Multi Purpose Switch)

  • Dimmer (Dimmable Light Switch)

  • Switch (Power Point)

  • Cover (Garage Door Controller)

ControlPoints

A Zimi Powermesh is made up of a number of ControlPoints. A ControlPoint is an individually controllable output on a Zimi Powermesh device. One device can have up to 4 ControlPoints (in the case of a 4 point Multi Purpose Switch).

ControlPoints are assigned to a Room and given a Name via the Zimi App.

Behaviour Link can be used in the Zimi App to link an unused ControlPoint to another ControlPoint allowing multiple physical switching points for the same endpoint (light).

Naming

Entities will be created in Home Assistant based naming in the Zimi App. Some consideration should be given to establishing a structured naming scheme in the Zimi App prior to discovery for a cleaner and more manageable experience in Home Assistant.

  • Entities will be placed in a Home Assistant Area base on the Room Name in the Zimi App. If the Area does not exist it will be created.

  • Entity name in Home Assistant will be the ControlPoint Name in the Zimi App

  • Entity ID in Home Assistant will be type.name (i.e. switch.downlights)

If the same name is given to multiple ControlPoints a numeric will automatically be appended during the creation of the Entity. For example, if Downlights is used in the Zimi App to identify similar devices in multiple rooms the Entity ID(s) in Home Assistant would be:

  • light.downlights

  • light.downlights_2

  • light.downlights_3

Each of these Entities be uniquely identifiable via it’s Area assignment.

Automatic setup via UDP discovery

The integration can attempt to discover a ZCC device on the local network if the user does not enter data into the IP Address and Port fields. If a ZCC is discovered, the IP address and port will be used to interrogate the ZCC to identify all ControlPoints. This data includes Properties, States and Actions which is used to create an Entities within Home Assistant.

Manual setup via IP and Port

If the automatic discovery is unsuccessful the user can enter a known IP Address and Port during configuration. The IP will need to be ascertained by the user via their respective network, the default port is 5003.

Note: this feature has been added to address a scenario where more than one ZCC exist on the network (untested).

Zimi Network Updates

Changes in the Zimi network (naming and addition of devices) can be picked up by doing a Reload of the integration.

Compatibility

Integration has been tested on: ZCC Firmware version 20210714010012

This can be checked in the Zimi App check under: Settings → Manage Network → Cloud Connect

Known issues

  • The initial creation of Entities within Home Assistant can be slow for meshes with a high ControlPoint count

  • Occasionally the UI may become out of sync if user inputs rapid change of states - UI should recover to correct state

  • Garage Door Controller does not accept 0 via the UI slider, can be closed via down action

  • Switch (Power Point) icons do not update status, this can be resolved by adding state_color: true to the entity card

  • If unexpected behaviour is observed try power cycling the ZCC

1 Like

My hacs is ready :grinning: Been in bed sick for the last week so this will give me something to play with