Powertech Gate (EyeOpen) – gate control and live status in Home Assistant

Hi everyone!

I’d like to share Powertech Gate (EyeOpen), a custom Home Assistant integration I created for compatible Powertech / EyeOpen gate controllers.

It provides gate control and live status updates directly in Home Assistant.

Features

  • Automatic setup using your Powertech / EyeOpen account
  • Automatic discovery of compatible gate controllers
  • Full gate open / close
  • Pedestrian gate open / close
  • Stop command
  • Live gate state updates
  • Device availability monitoring
  • PIN verification during setup and reconfiguration
  • Home Assistant diagnostics support
  • HACS installation
  • Manual certificate setup for advanced users

Tested hardware

Development and testing has primarily been done with:

Powertech PS20088D

Other Powertech / EyeOpen controllers using the same platform may also work, but I haven’t been able to test other models yet.

If you have another model, I’d be very interested in your results!

Screenshots

Installation

The integration can currently be installed through HACS as a custom repository.

GitHub:

In HACS:

  1. Go to HACS → Integrations
  2. Open Custom repositories
  3. Add:
    https://github.com/miklosandras/powertech-gate-home-assistant
  4. Select Integration
  5. Install Powertech Gate (EyeOpen)
  6. Restart Home Assistant

Then go to:

Settings → Devices & services → Add integration

Search for Powertech Gate (EyeOpen) and follow the setup process.

HACS default repository

I have also submitted the integration for inclusion in the default HACS repository.

Until it is accepted, it needs to be added as a custom repository using the instructions above.

Other controllers

One of the reasons I’m sharing the integration here is to find out which other Powertech / EyeOpen controllers are compatible.

If you test another model, I’d really appreciate feedback about:

  • Controller model
  • DEV INFO, if available (with unique identifiers removed)
  • Device discovery
  • Live gate status
  • Full gate controls
  • Pedestrian gate controls

There is also a dedicated Device / model support issue template on GitHub.

Security

PINs used during verification are not stored, and sensitive identifiers are redacted from Home Assistant diagnostics and integration logs.

If you report an issue, please do not post passwords, PIN codes, authentication tokens, certificates, private keys, UUIDs, MAC addresses, or other sensitive identifiers.

About the integration

The integration was developed by analyzing the behavior of the official Powertech / EyeOpen application and the services used by compatible controllers.

It relies on undocumented vendor services and protocols, so future vendor-side changes may affect functionality.

This is an unofficial, community-developed integration and is not affiliated with or endorsed by Powertech Automation or EyeOpen.

Feedback, bug reports, contributions and reports from other Powertech / EyeOpen models are very welcome!

Great job!
Works with PSA500 except pedestrian opening.

1 Like

Thanks for testing it with the PSA500! Could you help me identify why pedestrian opening does not work on this model?

Please try the pedestrian open button once in Home Assistant and check the last_ack attribute of the pedestrian gate entity (Developer Tools → States).

It would be very useful if you could paste the exact last_ack value here.

Also, does pedestrian opening work normally from the official EyeOpen app on your PSA500?

From the official EyeOpen app it works for pedestrian opening.


The pedestrian opening does not appear in HomeAssistant. But also without this, is awesome!

Hi Aurel, thanks — I found the reason! :slightly_smiling_face:

The PSA500 was not yet marked as supporting pedestrian mode, so Home Assistant did not create the pedestrian gate entity at all.

I’ve now added PSA500 to the list of pedestrian-capable models.

Could you please update the integration and run Reconfigure for your gate? After that, a new Pedestrian gate entity should appear.

Please try opening it and let me know:

  • whether the pedestrian opening actually works;
  • and, if possible, what the last_ack attribute shows after pressing Open.

This will tell us whether the PSA500 uses the same PED OPEN command as the PS20088/PS20088D.

Thanks a lot for testing! :slightly_smiling_face:

Could you please update the integration and run Reconfigure for your gate? After that, a new Pedestrian gate entity should appear.“”
Tryed… not appearing.

in model detected it says:

Informații despre Dispozitiv

PS20040D

from Powertech

Ah, that’s the missing piece — thank you!

Your gate is sold as a PSA500, but the Powertech backend identifies the controller as PS20040D. The integration uses this detected backend model to decide whether pedestrian mode should be enabled.

I’ve updated the model detection to include PS20040D instead.

Could you please update the integration once more and run Reconfigure again?

After that, the Pedestrian gate entity should appear. If it does, please try opening it and let me know whether it works. :slightly_smiling_face:


The gate works, but pedestrian still not showing.
I unninstalled, deleted and reinstalled the integration.

Hi, thanks for creating this integration.
I would like to test it with a Powertech PS20083A controller. In the EyeOpen app the device is shown as PW200.
The gate works normally in the EyeOpen app, including remote access.
My original EyeOpen account was created using Google login, so I created a second standard EyeOpen account with username/password and shared the gate with this account as a Manager. The shared account can see and control the gate normally in the EyeOpen app.
When I use this account with the Home Assistant integration, setup returns:
“No compatible Powertech/EyeOpen AWS IoT gate device was found.”
Could this be because the gate is shared with this account rather than owned by it, or is the PS20083A / PW200 not yet supported?
I can provide additional DEV INFO or Home Assistant diagnostics if needed, with private identifiers removed. Thanks!

Hi Marek, thanks again for the detailed report — we were able to reproduce the same issue.

The problem was not your PS20083A/PW200 itself, but the way EyeOpen returns devices that are shared to another account.

For shared/Manager accounts, the actual gate metadata is nested inside share_devices[].devies_info, while the integration previously only checked the top-level fields. Because of that, the gate was skipped and Home Assistant showed:

No compatible Powertech/EyeOpen AWS IoT gate device was found.

This has now been fixed in v0.9.1.

Please update the integration to 0.9.1, restart Home Assistant, and try adding the integration again with your shared account.

If it still fails, please send the privacy-safe Powertech discovery and Powertech candidate validation log lines.

Thanks for helping us catch this! :slightly_smiling_face:

Hi Andras,
thanks for the v0.9.1 fix. I have now tested again with v0.9.2 and also completely re-paired the gate in EyeOpen.

The gate is now owned by the account again and works normally in the EyeOpen app, but Home Assistant still reports:

No compatible Powertech/EyeOpen AWS IoT gate device was found.

I enabled the requested debug logging and found the following privacy-safe discovery information:

Powertech discovery bucket=admin_devices entries=1
device_type='PS20088'
product_type='13'
has_iot_endpoint=False
admin_user_present=True
Powertech discovery bucket=user_devices entries=0
Powertech discovery bucket=share_devices entries=0
Powertech discovery custom_info list_items=1
Powertech device list parsed; candidate_devices=0

Looking at backend.py, it seems the device is skipped here because the AWS IoT endpoint is missing:

if not uuid or not endpoint or uuid in seen:
continue

So the EyeOpen API does return the gate under admin_devices, and the backend identifies it as PS20088, but no iot_endpoint appears to be present in that device entry.

Could the IoT endpoint for this controller be returned somewhere else in the EyeOpen API response, for example in custom_info, or does this variant require a different discovery method?

I can provide additional privacy-safe debug information if useful. Thanks!

Szia András! Gondolom tudsz magyarul a nevedből ítélve :grinning_face:
Nagyon jó a hacs integráció, nekem a powertech pw230 kétszárnyas kap esetén működik hibátlanul, a kétszárnyas, illetve a kiskapu mód is! Gratula, köszi fejlesztést!:wink:

Ha jol értem jelenleg ugyanúgy a powertech szerverén keresztül megy a kommunikáció!

Megoldható hogy a Homeassitantal a helyi hálózaton menjen csak, és ne csatlakozzon a tajvani powertech szerverre?

Köszi, Üdv Janesmoon

@aurelgh Thanks for confirming that the latest update is working well.
@marekhusar I just released verson 0.9.4 Would you please try it?
@janesmoon Szia :slight_smile: Igen jelenleg a cloud -on keresztül megy, de dolgozom a local verzión is, de ehhez még kell idő. In english: Yes, currently it is working thru cliud, but I am working on local version to, but need more time to develop.

Szia, Miklosandras!

A kapu távirányítóval történő nyitás-záráskor, nem jelezi vissza a homeassistantba az állapotot, így nem lehetett autómatizációt rá létrehozni!

Saját HA-ban az integráció kódban változtattam, azóta jó működik!

A powertech_gate/api.py fájlban a
távirányító üzeneteket kezelő részben (
if msg.topic == self._topic_cmd_tx)
végeztem egy módosítást.

 Így volt korábban:
 A kód csak rögzítette a kapott üzenetet
 a last_ack változóban, majd jelezte a
 változást. Ez azt jelentette, hogy a
 Home Assistant tudta, hogy érkezett egy
 válasz a kaputól, de a kapu állapotát (
 gate_state) nem változtatta meg.

 Így változtattam:
 Beépítettem egy logikát, amely elemzi a
 kapott üzenet tartalmát, és annak
 megfelelően azonnal aktualizálja a kapu
 állapotát!

Hi Andras,
thanks! I tested version 0.9.4 after updating HACS and restarting Home Assistant.

There is definitely progress. The previous discovery error is gone and the integration now finds an AWS IoT endpoint.

However, setup now stops with:

The device has an AWS IoT endpoint, but the required Powertech gate DEV INFO / DEV STATUS shadow fields were not received. Gate control was not enabled for safety.

The HA log shows:

Powertech shadow request rejected

followed by:

Powertech candidate rejected after passive shadow validation; capabilities={'dev_info': False, 'dev_status': False, 'wbt_version': False, 'uart_version': False, 'pin_verification': False}

So v0.9.4 appears to have fixed discovery / IoT endpoint detection for my PS20088, but passive shadow validation is now failing.

Please let me know if you would like me to enable any additional debug logging or provide privacy-safe diagnostics from this step.

Hi Marek,

I’ve prepared v0.9.5 with improved diagnostics for the AWS IoT shadow rejection you’re experiencing.

Once the release is available in HACS, please update to 0.9.5, restart Home Assistant and try adding the integration again.

The log should now show the AWS rejection code, which will help us determine whether this is a permissions issue or a missing shadow.

This is a diagnostic update, so it won’t resolve the underlying issue yet, but it should give us the information we need for the next fix.

Please send me the new Powertech shadow request rejected; code=... line when you’ve tested it.

Thanks again for your help!

Andras

Hi Andras,

I tested v0.9.5 after updating the integration and restarting Home Assistant.

Interestingly, I do not get the expected:

Powertech shadow request rejected; code=...

line anywhere in the full Home Assistant log.

The AWS IoT provisioning appears to complete and MQTT connects successfully, but after the passive shadow validation timeout the candidate is rejected with:

Powertech candidate rejected after passive shadow validation; capabilities={'dev_info': False, 'dev_status': False, 'wbt_version': False, 'uart_version': False, 'pin_verification': False}

I also searched the complete downloaded HA log for both Powertech shadow request rejected and code=, but neither is present.

So it looks like my PS20088 may not be returning an explicit shadow rejection at all — the integration simply receives none of the expected DEV INFO / DEV STATUS fields before the validation timeout.

If useful, I can provide additional privacy-safe debug output or test another diagnostic build.

Thanks!

Hi Marek,

thanks again for testing and for the detailed feedback.

I’ve now released version 0.9.6, which improves the AWS IoT shadow validation flow.

This version now:

  • waits for the MQTT subscription acknowledgements before requesting the device shadow,
  • retries the shadow request during validation if no response is received,
  • adds additional privacy-safe diagnostic logging around the subscription and shadow request process.

Please update to 0.9.6 through HACS, restart Home Assistant, and try adding the integration again.

If setup still fails, please send the new Powertech debug lines from the log. Those should help us determine whether the issue is with the subscription, the shadow request itself, or the response from AWS IoT.

Thanks again for helping test this — your feedback has been very useful.

Andras

Hi Andras,

I tested v0.9.6. The new diagnostics now show a clear result.

MQTT connects successfully, subscriptions are ready, but every shadow GET request is rejected with:

Powertech shadow request rejected; code=404

The final diagnostic is:

Powertech shadow validation timed out; mqtt_connected=True subscriptions_ready=True confirmed=['command_ack', 'position', 'shadow_accepted', 'shadow_rejected', 'shadow_updated'] failed=[] get_attempts=4 get_accepted=0 get_rejected=4 publish_failures=0

Passive validation then fails with all capabilities set to False.

So on my device the AWS IoT connection itself appears to work, but all four shadow GET requests return 404.

Let me know if you would like me to test another build or collect any additional privacy-safe diagnostics.