Skip to content

maeek/ha-solid-security

Repository files navigation

MySolid for Home Assistant

MySolid logo

Validate

An unofficial Home Assistant custom integration for Polish MySolid accounts. It polls the MySolid cloud service and exposes properties, alarms, suspensions, and transmitter relays as Home Assistant entities and actions.

Important

This project supports the Polish MySolid service only. It is not affiliated with or endorsed by Solid Security or Home Assistant.

Features

  • UI-based setup and reauthentication.
  • Configurable cloud polling from 30 to 3600 seconds.
  • Property, suspension, alarm, and relay entities.
  • Alarm arm, disarm, and partial-arm controls.
  • Actions for suspension management, relay control, alarm cancellation, and event history.
  • Source-aware availability: a failed secondary request does not turn stale alarms or suspensions into a false safe state.
  • Redacted diagnostics and translated user-facing errors.

Entities

Platform Entity Purpose
Binary sensor Armed Current armed state of a property
Binary sensor Suspended Whether a property has an active suspension
Binary sensor Active alarm Whether a property has an active alarm
Sensor Active alarm count Number of active alarms for a property
Sensor Suspension until Latest active suspension end time
Switch Relay ON/OFF transmitter relay control
Alarm control panel Alarm relay Arm, disarm, and partial-arm control

Requirements

  • Home Assistant 2026.7.0 or newer.
  • A MySolid account for the Polish service.
  • HACS for the recommended installation method.

Installation

HACS

  1. Open HACS in Home Assistant.
  2. Open the menu and select Custom repositories.
  3. Add https://github.com/maeek/ha-solid-security with the Integration category.
  4. Find MySolid, select Download, and restart Home Assistant.
  5. Go to Settings → Devices & services → Add integration, then search for MySolid.

Manual

  1. Copy custom_components/mysolid into the custom_components directory in your Home Assistant configuration directory.
  2. Restart Home Assistant.
  3. Go to Settings → Devices & services → Add integration, then search for MySolid.

Configuration

The setup flow asks for the email address and password used by the MySolid app. The integration currently uses the Polish endpoint automatically.

The mobile API requires the password for credential login and token renewal, so Home Assistant stores it in the config entry. The integration creates a stable device ID for that entry. Action PINs are accepted only for the current action and are never stored.

The polling interval can be changed under Settings → Devices & services → MySolid → Configure. The default is 60 seconds.

Actions

All actions accept config_entry_id. It is required when Home Assistant cannot unambiguously select one loaded MySolid account.

  • mysolid.create_suspension creates a timed suspension for one property.
  • mysolid.delete_suspension deletes a suspension by ID or by an unambiguous property target.
  • mysolid.set_relay_state sets a relay entity to ON, OFF, ARM, DISARM, or PARTIAL_ARM.
  • mysolid.cancel_alarm cancels an active alarm by event ID.
  • mysolid.get_event_history returns historical events for one property as an action response.

A property action targets any MySolid entity belonging to that property. create_suspension requires exactly one of duration_minutes or until.

Use the optional pin field only when the corresponding MySolid operation is PIN-protected. For PIN-protected relays, prefer mysolid.set_relay_state over the switch entity because switch actions cannot prompt for a PIN.

How updates behave

Property details are the primary account snapshot. Once they are available, the integration fetches relays and suspensions per property and active alarms for the account. Reads are limited to four concurrent requests, while mutations are serialized.

If a secondary source fails, the last known values for that source are retained and its dependent entities become unavailable. Successful writes request an immediate refresh. HTTP 401 starts reauthentication; HTTP 403 is treated as a permission error and does not discard the session token.

See Architecture for the full data flow and extension points.

Security and privacy

  • Passwords, session tokens, PINs, email addresses, device identifiers, and location fields are redacted from diagnostics.
  • Action PINs are not persisted.
  • The application authorization value in the source is a public identifier embedded in the mobile client, not an account credential.
  • No decompiled application code, private certificates, Firebase credentials, or personal data are included in this repository.

Troubleshooting

  • Invalid authentication: verify the same credentials in the MySolid mobile app, then reload the integration.
  • PIN rejected or blocked: wait for the lockout period to expire before trying again.
  • An alarm or suspension entity is unavailable: check the integration diagnostics. The source may have failed during the latest poll while its last known value was retained.
  • HTTP 403: the account does not have permission for the requested action.
  • Unexpected API behavior: enable debug logging, download diagnostics, and open an issue without including credentials, tokens, PINs, or personal data.

Known limitations

  • The MySolid API is undocumented and may change without notice.
  • Firebase push notifications are not implemented; updates use polling.
  • PINs must be supplied for each protected action.
  • Biometrics, invoices, authorized users, service ordering, schedule editing, camera streaming, and contact history are outside the current scope.

Development and contributions

Contributions are welcome. Start with CONTRIBUTING.md, then read the architecture guide and the pinned mobile API contract.

The test suite uses sanitized synthetic fixtures and currently covers the API contract, coordinator failure behavior, configuration flows, services, and all entity platforms.

Support

Use GitHub Issues for bug reports and feature requests. Include the Home Assistant version, integration version, relevant logs, and redacted diagnostics.

Removal

Remove MySolid from Settings → Devices & services, restart Home Assistant, and delete custom_components/mysolid only if it was installed manually.

Disclaimer

This project communicates with an undocumented third-party service and is provided without any guarantee that the service will remain compatible. Use it at your own risk, especially for security-sensitive automations.

About

Unofficial Home Assistant integration for the Polish MySolid security service.

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Contributors

Languages