A Home Assistant custom component that integrates with Listonic shopping list app.
- View all your Listonic shopping lists as Home Assistant todo entities
- Add items to lists
- Check/uncheck items
- Delete items
- Create new lists
- Real-time sync with Listonic
Click the button above or:
- Open HACS in Home Assistant
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add this repository URL:
https://github.com/omelhus/ha-listonic - Select "Integration" as the category
- Click "Add"
- Search for "Listonic" and install it
- Restart Home Assistant
- Copy the
custom_components/listonicfolder to your Home Assistant'scustom_componentsdirectory - Restart Home Assistant
- Go to Settings > Devices & Services
- Click "Add Integration"
- Search for "Listonic"
- Enter your Listonic email and password
- Click "Submit"
After setup, your Listonic shopping lists will appear as todo entities in Home Assistant. You can:
- View lists in the Todo dashboard
- Add items using the todo.add_item service
- Check off items
- Remove items
Add an item to a Listonic list.
service: todo.add_item
target:
entity_id: todo.listonic_grocery_list
data:
item: "Milk"Update an item's status.
service: todo.update_item
target:
entity_id: todo.listonic_grocery_list
data:
item: "Milk"
status: completedRemove an item from a list.
service: todo.remove_item
target:
entity_id: todo.listonic_grocery_list
data:
item: "Milk"- Ensure you're using the correct email and password for your Listonic account
- The integration uses the same credentials as the Listonic web app
- The integration polls for updates every 30 seconds by default
- Changes made in Home Assistant are synced immediately
# Clone the repository
git clone https://github.com/omelhus/ha-listonic.git
cd ha-listonic
# Install dependencies with uv
uv sync --all-extras
# Run unit tests
uv run pytest tests/test_api.py
# Run integration tests (requires credentials)
export LISTONIC_EMAIL="your@email.com"
export LISTONIC_PASSWORD="yourpassword"
uv run pytest tests/test_integration.py
# Run all tests with coverage
uv run pytest --cov=custom_components/listonicThe repository uses GitHub Actions for CI/CD:
- Unit Tests: Run on every push and PR
- Integration Tests: Run on PRs against real API (requires secrets)
- Lint: Ruff and mypy checks
- Credential Check: Hourly check for API credential changes
Add these secrets to your repository settings:
| Secret | Description |
|---|---|
LISTONIC_TEST_EMAIL |
Test account email |
LISTONIC_TEST_PASSWORD |
Test account password |
Integration tests automatically clean up any test data created during runs.
MIT License - see LICENSE file for details.
This project is not affiliated with, endorsed by, or connected to Listonic in any way. This is an unofficial integration created by reverse-engineering the Listonic web app API for personal use.
Use at your own risk. The API may change at any time without notice.
This integration was created by reverse-engineering the Listonic web app API.