Files
home-information/docs/Integrations.md
Thiago Trautwein Santos 10444fc165 Feature/234 homebox integration (#249)
* finished Items and Locations
* finish maintenance, labels and start notifier
* finish v1 of HomeBox Client API
* sync now creates and updates entities and entities attributes
* create sync for homebox item attachments
* finish homebox integration
* finish test implementation

* Improve Homebox API client quality and pattern conformance

Align the Homebox integration with patterns established by the existing
Home Assistant (HASS) integration, and fix several minor issues found
during code review of PR #249:

- Assert required API options in HbClient.__init__ instead of silently
  logging a warning, matching the HASS client's defensive pattern
- Add warning log when login response lacks a token to aid debugging
- Translate Portuguese log message to English for consistency
- Reference HbClient constants in factory instead of magic strings
- Initialize all cache lists in HomeBoxManager.__init_singleton__
- Update factory test to work with constant references on mock class

* Fix sync bugs and remove dead code in Homebox converter

- Fix attachment order_id overlap: fields and attachments each
  enumerated from 0 independently, causing interleaved display since
  EntityAttribute orders by order_id. Attachments now start after the
  last field index.
- Fix variable shadowing in _sync_helper_entity_attributes where the
  loop variable 'hb_attachment' was immediately reassigned by tuple
  unpacking on the next line.
- Remove unused _create_entity_attributes_from_hb_fields method, which
  was superseded by the sync code using hb_item_to_attribute_field_list.

* Fix entity edit dialog for externally managed entities

HomeBox entities have non-editable attributes with disabled HTML form
fields. Browsers omit disabled fields from POST data, which caused
AttributeForm.clean() to see empty values and raise spurious validation
errors when updating the EntityType.

- Skip validation for non-editable attributes in AttributeForm.clean(),
  since save() already short-circuits without writing for these
- Add suppress_add_new property to AttributeForm to control whether the
  "Add New" attribute card is shown, following the existing pattern of
  display-hint properties (suppress_history, show_as_editable, etc.)
- Pass can_add_custom_attributes through form_kwargs in the entity
  formset so the form can suppress the add-new card for externally
  managed entities even after a bound form re-render

* Add HomeBox integration to documentation

Add HomeBox alongside Home Assistant and ZoneMinder across all
user-facing and developer documentation: Integrations guide, Features,
FAQ, Installation, architecture overview, integration guidelines, and
service patterns.

Also remove stale reference to non-existent hi.services.weather module
from integration guidelines example list.

---------

Co-authored-by: Anthony Cassandra <github@cassandra.org>
2026-03-28 09:53:46 -05:00

2.3 KiB

Home Information Logo

Integrations

We will add more integrations as there is demand, but presently the current supported integrations are:

  • Home Assistant - General home automation platform for many types of devices and protocols. Requires installation and setup.
  • ZoneMinder - For managing security cameras with motion detection. Requires installation and setup.
  • HomeBox - Home inventory management system for tracking household items, warranties, and documentation. Requires installation and setup.

To enable an integration, go to "Settings > Integrations > Add Integrations".

When you enable one of these integrations, you will need to provide the necessary connection information, usually in the way of API endpoints and credentials.

Home Assistant

You will need install and set this up by following all their documentation. Start at the Home Assistant Home Page.

ZoneMinder

You will need install and set this up by following all their documentation. Start at the ZoneMinder Home Page.

HomeBox

You will need to install and set this up by following all their documentation. Start at the HomeBox Home Page. The API credentials are the same username and password you use to log into the HomeBox web interface.

CORS Issues

If you are going to use the ZoneMinder integration, then viewing the camera video streams requires the server to authorize the browser to allow the ZoneMinder server to be an allowed off-site "origin". You will need to add the ZoneMinder URL to an envirornment variable to have Django server up the right headers to the browser:

export HI_EXTRA_CSP_URLS="${SCHEME}://${HOST}:${PORT}"

HTTPS/SSL Issues

Another potential issue with viewing the ZoneMinder camera streams can happen if your Home Information server runs trhrough HTTP and the ZoneMinder server streams are served thruogh HTTPS/SSL. Browsers prevent that due to the security implications. This can be made worse if the ZoneMinder server is using a self-signed SSL cert (the default?). A workaround we found was to stand up an nginx server to proxy the HTTPS/SSL urls and serve them as plain HTTP in Home Information pages by changing the ZoneMinder setting "Portal URL".