Integrate your BTicino Classe 100X or 300X video intercom system with Home Assistant! π This custom component allows you to monitor calls, open doors, and view the status of your intercom devices directly within Home Assistant.
This integration relies on the BTicino/Netatmo cloud API and utilizes a persistent WebSocket connection for real-time updates, particularly for call events. βοΈπ
Important
This component works only with netatmo cloud connected devices.
If your device works with bticino shitty poor written cloud you
can just hope for a firmware upgrade.
At the date of writing this (April 2025) they sent out a mail that they will migrate users to a new cloud (probably the NetAtmo one)
If you are in doubt on which firmware you are using look at the app on your phone. The right one is called Home+Security:
If you are using one called BTicino Door Entry app I'm sorry.
- Lock Control: (
lockentity) Open external and internal door locks connected to your BTicino system (BNDL modules). Uses optimistic state updates. π - Incoming Call Sensor: (
binary_sensorentity) Get notified when someone rings your external unit (BNEU modules). The sensor stays 'on' for a configurable duration (default 30 seconds). π - Last Event Sensor: (
sensorentity) See the last relevant call event (Incoming Call, Answered Elsewhere, Terminated) along with its timestamp. Linked to the main bridge module (e.g., BNC1). π
- A compatible BTicino Classe 100X or 300X video intercom system configured and connected to the BTicino/Netatmo cloud.
- Your BTicino/Netatmo account credentials (username/email and password).
- Home Assistant instance (obviously! π).
- Ensure you have HACS installed.
- Go to HACS -> Integrations -> Click the three dots menu -> Custom Repositories.
- Enter
https://github.com/k-the-hidden-hero/bticino_intercomas the repository URL. - Select
Integrationas the category. - Click "Add".
- The "BTicino Intercom" integration should now appear. Click "Install".
- Restart Home Assistant. π
- Download the latest release from the Releases page.
- Copy the
custom_components/bticino_intercomfolder into your Home Assistant<config>/custom_components/directory. - Restart Home Assistant. π
Configuration is done entirely through the Home Assistant user interface:
- Go to Settings -> Devices & Services.
- Click + Add Integration.
- Search for "BTicino Intercom" and select it.
- Enter your BTicino/Netatmo Username (Email) and Password.
- Click Submit.
- If multiple "Homes" are found associated with your account, you will be prompted to select the correct one. π‘
- The integration will set up entities for your compatible locks and external units. π
Some BTicino installations use the lighting relay to control the door lock instead of a dedicated lock module. If this is your case:
- Go to the integration settings
- Click on "Configure"
- Enable the "Use lighting relay as lock" option
This will make the integration use the lighting relay to control the door lock instead of looking for a dedicated lock module.
The integration currently creates the following entities based on the modules discovered in your selected BTicino Home:
- Lock (
lock.external_door,lock.internal_door, etc.):- Represents a door lock module (type BNDL).
- Allows you to
Open(unlock) the door latch. The state will show as 'Unlocking' briefly due to optimistic updates before reverting to 'Locked' after a short delay (API confirmation follows). - Provides attributes like module ID, firmware version, reachability, etc.
- Binary Sensor (
binary_sensor.external_unit_xyz_call):- Represents the call status of an external unit module (type BNEU).
- State is
onwhen a call is actively ringing,offotherwise. - The sensor automatically turns
offafter 30 seconds if no termination event is received. - Provides attributes like module ID, firmware version, reachability, etc.
- Sensor (
sensor.bridge_xyz_last_event):- Represents the last significant call-related event detected via WebSocket or polling.
- The state shows the event type (e.g.,
incoming_call,answered_elsewhere,terminated). - Attributes include the timestamp of the event and the ID/name of the module involved.
(Entity IDs might vary based on your device names and Home Assistant configuration)
The integration fires events that are recorded in the Home Assistant Logbook:
bticino_intercom_incoming_call: Fired when a call is detected.bticino_intercom_answered_elsewhere: Fired when a call is answered by another device/app.bticino_intercom_terminated: Fired when a call is terminated (hung up).
- Cloud Dependent: This integration requires a working internet connection and access to the BTicino/Netatmo cloud services. π
- WebSocket Reliability: Real-time call events depend on a stable WebSocket connection. If the connection drops, events might be delayed until the next poll or missed entirely. The integration attempts to automatically reconnect.
- Optimistic Lock State: The lock entity uses optimistic updates. When you trigger 'Open', the state immediately shows 'Unlocking' and then 'Locked' after a few seconds. The actual lock state is confirmed during the next coordinator update.
- API Rate Limits: Excessive use might potentially lead to temporary blocks by the BTicino API (though specific limits are unknown). The default polling interval is set conservatively.
Found a bug or have a feature request? Please open an issue on the GitHub repository. Pull requests are also welcome! π
- This integration relies heavily on the fantastic pybticino library. Many thanks to the original author(s)!
This project is licensed under the MIT License - see the LICENSE file for details (assuming MIT, please add a LICENSE file if you haven't!).