This integration is in beta. It is safe to use, and we are still adding to it. Tell us what works and what doesn't at support@pharelabs.com or in the issue tracker. The README on GitHub is the reference for each release.
1 Before you start
You need:
- A Phare C1, C1 Core or C1 Pro set up in the Phare Protect app, in a home you own or that is shared with you.
- The Phare Protect app, version 1.2.0 or later, to create the token Home Assistant signs in with.
- Home Assistant 2025.1 or later, connected to the internet. If you don't run it yet, step 2 covers the options.
The integration talks to the Phare cloud over HTTPS. It does not connect to your alarms over your home network, so Home Assistant and your Phare devices don't need to be on the same Wi-Fi, or even in the same building.
Home Assistant adds to your alarms. It does not replace them. Your Phare alarms sound, and the app notifies you, whether or not Home Assistant is running. Automations depend on your home network, power and internet, so treat them as extra help, never as the thing that keeps you safe.
2 Install Home Assistant
Already running Home Assistant? Check its version under Settings → About and skip to step 3. If you are not sure how it was installed, Settings → System → Repairs → ⋮ → System information shows the Installation type; step 3 asks for it.
New to Home Assistant? Pick the setup that suits you. The Phare integration works the same on all of them.
Home Assistant Green or YellowEasiest
A small ready-made box from the Home Assistant project. Nothing to install.
- Connect it to your router with an Ethernet cable and plug in the power.
- After a few minutes, open
http://homeassistant.local:8123in a browser on the same network. - Create your owner account, set your home's location and finish the welcome screens.
Raspberry Pi, mini PC or virtual machineHome Assistant OS
Home Assistant OS is the full system, with apps (add-ons), backups and one-click updates. It runs on a Raspberry Pi 4 or 5, most mini PCs, and in a virtual machine such as Proxmox, VirtualBox or Hyper-V.
- Follow the guide for your hardware at home-assistant.io/installation. On a Raspberry Pi you write the system to an SD card or SSD with Raspberry Pi Imager.
- Open
http://homeassistant.local:8123, create your owner account and finish onboarding.
DockerContainer
Runs Home Assistant in a container on a computer or NAS you already have. You don't get apps (add-ons), and the Phare integration doesn't need any.
On Linux, use host networking so Home Assistant can find devices on your network:
docker run -d \
--name homeassistant \
--restart unless-stopped \
--network host \
-e TZ=Europe/London \
-v "$HOME/homeassistant:/config" \
ghcr.io/home-assistant/home-assistant:stable
On a Mac or Windows with Docker Desktop, map the port instead:
docker run -d \
--name homeassistant \
--restart unless-stopped \
-p 8123:8123 \
-e TZ=Europe/London \
-v "$HOME/homeassistant:/config" \
ghcr.io/home-assistant/home-assistant:stable
With Docker Compose, save this as compose.yaml and run docker compose up -d:
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
network_mode: host
environment:
TZ: Europe/London
volumes:
- ./homeassistant:/config
Set TZ to your own time zone, for example America/New_York. Wait about a minute, open http://localhost:8123 (or the computer's address on port 8123), and create your owner account.
Python virtual environmentCore · advanced
Home Assistant Core installed with pip, for people who manage their own Python. Follow the Home Assistant Core guide, then carry on with step 3.
3 Get the integration
Phare Protect is published on GitHub as pharelabs/phare-home-assistant. How you add it depends on your Home Assistant version.
Home Assistant 2026.11 or laterMarketplace
From 2026.11, community integrations are installed from the Marketplace built into Home Assistant. You need an administrator account.
- Go to Settings → Marketplace. The first time, read the notice about community-made items, tick I understand the risks and agree and select Continue. Then open the Add from link tab.
- Under GitHub link, enter
pharelabs/phare-home-assistantand select Add. If you are asked for a type, choose Integration and select Add again. If GitHub isn't connected yet, the Marketplace asks you to connect it first. - Open Phare Protect in the list, select Install, check the version and select Install again.
- If Home Assistant asks for a restart, select Restart Home Assistant. Otherwise a Set up button appears: get your token in step 4 first, then select it.
Home Assistant 2026.10 or olderHACS
On these versions, community integrations come from HACS, the Home Assistant Community Store. If you already use HACS, skip to Add Phare Protect below.
Install HACS
Home Assistant OS or Supervised (Green, Yellow, Raspberry Pi, virtual machine):
- Go to Settings → Apps (called Add-ons on older versions) and open the store. From its ⋮ menu choose Repositories and add
https://github.com/hacs/addons. - Find Get HACS, install it and start it.
- Open its Log tab and follow the instructions there.
Docker: run this on the computer that hosts the container:
docker exec -it homeassistant bash -c "wget -O - https://get.hacs.xyz | bash -"
Core: as the user that runs Home Assistant, run:
wget -O - https://get.hacs.xyz | bash -
Then, for every installation type:
- Restart Home Assistant: Settings → ⋮ → Restart Home Assistant, or
docker restart homeassistant. - Go to Settings → Devices & services → Add integration, search for HACS, tick the boxes and sign in to GitHub with the code it shows you (at
github.com/login/device).
The full guide is at hacs.xyz.
Add Phare Protect
- Open HACS in the sidebar, then ⋮ → Custom repositories.
- Repository:
https://github.com/pharelabs/phare-home-assistant. Type: Integration. Select Add. - Search HACS for Phare Protect, open it and select Download.
- Restart Home Assistant.
When you later upgrade to Home Assistant 2026.11, HACS becomes the Marketplace on its own. Phare Protect stays installed and keeps getting updates; you don't need to do anything.
Without HACS or the MarketplaceManual
Works on any installation, but you won't be told about updates and have to repeat these steps for each one.
- Download the latest release from GitHub releases (Source code (zip)) and unzip it.
- Copy its
custom_components/pharefolder into your Home Assistant configuration folder, so you end up with/config/custom_components/phare/manifest.json. On Home Assistant OS, the Samba share or Studio Code Server apps give you access to/config; with Docker it is the folder you mounted. - Restart Home Assistant.
4 Create a token in the Phare Protect app
Home Assistant signs in with a personal access token, not your password. You create and revoke tokens yourself in the app.
- In the Phare Protect app, go to Settings → API tokens and tap Create token.
- Give it a name you will recognise, such as Home Assistant.
- Under What may it do?, choose a scope (see below).
- Leave Expiry date empty, or pick a date if you want the token to stop on its own.
- Create it and copy the token, which starts with
phare_pat_. It is shown once. Keep it somewhere safe, such as a password manager, until you have pasted it into Home Assistant.
| Scope | Home Assistant can | Choose it if |
|---|---|---|
| Read only | Show readings, online status and alarms. | You only want sensors and alarm states for automations and dashboards. |
| Read and control | Everything above, plus arm and disarm the break-in alarm, run test, identify and silence, change device settings, and receive pushed alerts. | You want Home Assistant to act on your Phare devices, or alerts within seconds. |
Treat a Read and control token like a password: anyone who has it can arm, silence and change your devices. A token stops working after 90 days without use (Home Assistant uses it every minute, so this only happens if it stays off), or on the expiry date you chose. You can revoke it at any time: tap it in Settings → API tokens.
Use a separate token for each Home Assistant installation or script, so you can revoke one without breaking the others.
5 Connect your account
- In Home Assistant, go to Settings → Devices & services → Add integration and search for Phare Protect.
- Paste the token into Personal access token. Leave API base URL as it is.
- Select Submit.
Add Phare Protect to my Home Assistant
Within a minute, each Phare alarm appears as a device in the area of its room (Kitchen, or Kitchen (Flat 1) if you have several homes), and each home appears as a device of its own holding the home-wide controls. Readings match the app within a minute.
Have more than one Phare account? Add the integration again with a token from the other account. Each account is one entry.
6 Faster alerts Optional
Out of the box, Home Assistant asks Phare for news once a minute, so an alarm shows up within about a minute. If Phare can reach your Home Assistant from the internet over HTTPS, it pushes each alert instead, and it arrives within seconds. The once-a-minute check keeps running as a safety net, so a missed push still shows up.
| Polling only | Home Assistant Cloud | Your own address | |
|---|---|---|---|
| Alerts arrive | Within about a minute | Within seconds | Within seconds |
| You need | Nothing more | A Nabu Casa subscription | A domain name, a valid certificate, and a port forward or tunnel |
| Setup | None | Sign in, then reload the integration | Set the external URL, then reload the integration |
Push needs a Read and control token, because setting it up registers the address with your Phare account. Readings are always fetched once a minute: alarms on Wi-Fi publish every 60 seconds and on cellular (LTE-M) every 5 minutes, so asking more often would not show anything new.
With Home Assistant Cloud (Nabu Casa)Simplest
- Go to Settings → Home Assistant Cloud and sign in, or start the free trial.
- Go to Settings → Devices & services → Phare Protect → ⋮ → Reload.
The integration creates its own cloud webhook and registers it with Phare. Nothing to open on your router.
With your own HTTPS addressSelf-hosted
If you already reach Home Assistant from outside your home through your own domain, for example with a reverse proxy, the Let's Encrypt or DuckDNS apps, or a Cloudflare tunnel:
- Go to Settings → System → Network and, under Home Assistant URL, set the Internet address, for example
https://home.example.com. - Go to Settings → Devices & services → Phare Protect → ⋮ → Reload.
The address must start with https:// and use a host name, not an IP address. Phare needs to reach /api/webhook/… on it, so if your proxy or tunnel filters paths, allow that one.
Check that it works
If push could not be set up, the log says why, once, in a line starting Phare alerts arrive by polling. Look for it under Settings → System → Logs. No such line after a reload means push is on.
Every push is signed by Phare and checked before it is used: a forged or replayed one is dropped and logged. Removing the integration tells Phare to stop sending.
7 What you get
Each entity appears only when your device has the sensor or feature behind it.
On each Phare alarm
| In Home Assistant | What it shows or does |
|---|---|
| Sensors | Temperature, humidity, carbon monoxide, carbon dioxide, volatile organic compounds, air-quality index and battery level (battery level is off by default). The values are the ones the device last published. |
| Alarms | Smoke alarm, Carbon monoxide alarm and Movement: on while the alert is open. Temperature and Humidity alarms read Normal or Out of range. |
| Device health | Connectivity (Connected / Disconnected), Device health (OK / Fault), Mains power (Connected / Lost) and Battery (Normal / Low). While a device is offline, its other entities show as unavailable. |
| Buttons | Test (runs the self-test, which sounds the alarm), Identify, and Silence. Silence is off by default; turn it on per device only if you want automations to silence alarms. |
| Switches | Break-in alarm for that one device (C1 Pro), and Wireless interconnect for that one device (smoke-alarm firmware 1.2.0 or later). |
| Night path light | On all models except the C1 Core: on or off, brightness, how long it stays on, ambient light threshold and movement sensitivity. From firmware 1.1.0, also the trigger mode (dark, schedule only, dark and schedule, or dark or schedule) and the schedule's start and end, on your home's local time. |
| Alert settings | Switches for smoke, CO, mains power, battery, humidity, temperature and sound alerts, and the levels behind them. They decide what you are told, not whether the alarm sounds. The smoke and CO switches and all levels start disabled: enable the ones you want to change in the device's settings. |
| Device card | Model, firmware of all three processors, MAC address, and the SIM's ICCID on cellular models. |
On each home
| In Home Assistant | What it shows or does |
|---|---|
| Break-in alarm | An alarm panel with Arm away and Disarm, no code needed. Only in homes with a C1 Pro, which has the radar the break-in alarm uses. |
| Wireless interconnect | A switch: on, one alarm detecting smoke sounds every alarm in the home. Home owners only; needs at least two compatible devices. |
The integration's texts are in English, Catalan, Spanish and French, following your Home Assistant language.
8 Automation ideas
To use one: Settings → Automations & scenes → Create automation → Create new automation, then ⋮ → Edit in YAML, paste, and save. Replace the entity IDs with yours: find them under Settings → Devices & services → Entities (search for smoke, movement and so on), or switch back to the visual editor and pick them from the lists.
Smoke or CO: light the way out
Turns every light on full, unlocks the front door and sends a critical notification that sounds even when the phone is on silent (iPhone). Only unlock the door if that suits your home.
alias: Phare – smoke or CO, light the way out
mode: single
triggers:
- trigger: state
entity_id:
- binary_sensor.kitchen_smoke_alarm
- binary_sensor.hallway_smoke_alarm
- binary_sensor.kitchen_carbon_monoxide_alarm
to: "on"
actions:
- action: light.turn_on
target:
entity_id: all
data:
brightness_pct: 100
- action: lock.unlock
target:
entity_id: lock.front_door
- action: notify.mobile_app_your_phone
data:
title: Phare alarm
message: "{{ trigger.to_state.name }}"
data:
push:
sound:
name: default
critical: 1
volume: 1.0
Carbon monoxide: stop the boiler and ventilate
alias: Phare – CO, stop the boiler
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.kitchen_carbon_monoxide_alarm
to: "on"
actions:
- action: climate.set_hvac_mode
target:
entity_id: climate.boiler
data:
hvac_mode: "off"
- action: fan.turn_on
target:
entity_id: fan.extractor
Arm the break-in alarm when everyone leaves
Uses the people Home Assistant tracks with the Companion app. Needs a Read and control token and a C1 Pro.
alias: Phare – arm when everyone leaves
mode: single
triggers:
- trigger: numeric_state
entity_id: zone.home
below: 1
for:
minutes: 5
actions:
- action: alarm_control_panel.alarm_arm_away
target:
entity_id: alarm_control_panel.home_break_in_alarm
And the other way round:
alias: Phare – disarm when someone gets home
mode: single
triggers:
- trigger: numeric_state
entity_id: zone.home
above: 0
actions:
- action: alarm_control_panel.alarm_disarm
target:
entity_id: alarm_control_panel.home_break_in_alarm
Movement while armed: lights and siren
alias: Phare – movement while armed
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.living_room_movement
to: "on"
conditions:
- condition: state
entity_id: alarm_control_panel.home_break_in_alarm
state: armed_away
actions:
- action: light.turn_on
target:
entity_id: all
- action: siren.turn_on
target:
entity_id: siren.outdoor
Tell me when a device needs attention
Offline for 15 minutes, mains power lost, low battery or a fault.
alias: Phare – device needs attention
mode: queued
triggers:
- trigger: state
entity_id: binary_sensor.kitchen_connectivity
to: "off"
for:
minutes: 15
- trigger: state
entity_id:
- binary_sensor.kitchen_mains_power
- binary_sensor.kitchen_battery
- binary_sensor.kitchen_device_health
to: "on"
actions:
- action: notify.mobile_app_your_phone
data:
title: Phare
message: "Check {{ trigger.to_state.name }}"
Humidity out of range: run the dehumidifier
alias: Phare – humidity, dehumidifier on
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.bathroom_humidity_alarm
to: "on"
actions:
- action: switch.turn_on
target:
entity_id: switch.dehumidifier
React to the raw alert
With pushed alerts on, each alert also fires a phare_alert event carrying its fields: type_code (fire, co, mvmt, tmp, hum, flt, pwr, bat), stage, event, name, room, device_id, space_id and ts. Useful when you want the alert's own wording.
alias: Phare – log pushed alerts
mode: queued
triggers:
- trigger: event
event_type: phare_alert
event_data:
stage: new
actions:
- action: logbook.log
data:
name: Phare
message: >-
{{ trigger.event.data.event }} –
{{ trigger.event.data.name }} ({{ trigger.event.data.room }})
Be careful with Test and Silence in automations. Test sounds the alarm in your home, and an automation that silences alarms could hide a real fire. Silence is off by default for that reason.
9 Update, change or remove
Updates
New versions appear under Settings → Updates when you installed through the Marketplace or HACS. Install, then restart Home Assistant if it asks. What changed is in the release notes. Installed by hand? Repeat the manual steps with the new release.
A new token, or a different scope
When a token is revoked or expires, Home Assistant shows a re-authenticate notice under Settings → Devices & services. Create a new token in the app and paste it there. To move from Read only to Read and control (or back), create the new token, revoke the old one in the app, and paste the new one when the notice appears, within about 5 minutes. The token must belong to the same Phare account.
Diagnostics
If support asks for them: Settings → Devices & services → Phare Protect → ⋮ → Download diagnostics. The file leaves out your token, address and coordinates, and your name, email and phone.
Remove
- Settings → Devices & services → Phare Protect → ⋮ → Delete. This also tells Phare to stop pushing alerts.
- Remove Phare Protect from the Marketplace or HACS, or delete
/config/custom_components/phare, and restart. - Revoke the token in the app under Settings → API tokens.
10 Troubleshooting
Phare Protect doesn't appear in Add integration
Restart Home Assistant after installing it, then refresh the browser page (on a phone, close and reopen the app). If it still isn't there, check that /config/custom_components/phare/manifest.json exists.
"The token was refused"
Copy it again in full: it starts with phare_pat_ and has no spaces. It is shown once, so if you no longer have it, create a new one. Check it hasn't been revoked or passed its expiry date in Settings → API tokens.
"Could not reach the Phare API"
Home Assistant needs outbound HTTPS to api.pharelabs.com. Check its internet connection, and any firewall or DNS filtering on your network.
"Your Phare plan does not include API access"
API access is included in every Phare Protect plan today. If you see this, check your plan in the app, and contact support if it looks wrong.
Arm, Test or a setting fails with "the token may lack the control scope"
The token is Read only. Create a Read and control token and swap it in as described in step 9.
There is no break-in alarm panel
The break-in alarm needs the radar in the C1 Pro. Homes with only C1 or C1 Core alarms have no panel, and those devices can't be armed.
A device shows as unavailable
It is offline: check it in the app. Devices in a home that is shared with you are judged by the age of their last reading instead, and show unavailable after 15 minutes without one. Cellular alarms report every 5 minutes, so short gaps are normal.
A reading differs a little from the app
Both show the last value the device published. Home Assistant checks once a minute, so it can be up to a minute behind.
Alerts still take up to a minute
Push isn't on. Look in Settings → System → Logs for Phare alerts arrive by polling, which says why: usually a Read only token, or no HTTPS address that Phare can reach. Fix it, then reload the integration (see step 6).
My devices are in the wrong areas
Areas are set from the room in the app when a device is first added. After that, moving it in Home Assistant sticks. Move it under the device's settings, or remove and re-add the integration to start again from the app's rooms.
Some alert settings are greyed out
The smoke and CO alert switches and all alert levels start disabled so they aren't changed by accident. Open the device, find the entity under its settings, and enable it.
11 Help and feedback
- Bugs and ideas: the issue tracker on GitHub.
- Your account, your devices, or anything private: support@pharelabs.com or our contact page.
- Building something of your own? The same token works with the Phare Protect API.
Never paste your token into an issue, forum post or chat. If you did, revoke it in the app straight away. In an emergency, leave the building and call the emergency services; don't wait for Home Assistant or for us.