Warning
The upstream maintainer moved out of their SmartRent apartment and no longer has access to SmartRent hardware. They continue to accept contributed bug-fix pull requests.
This is a basic Home Assistant component supporting SmartRent locks,
thermostats, leak sensors, motion sensors, and light switches. It is based on
the original
homeassistant-smartrent
component and uses the
smartrent-py library.
Feel free to star this repository to get notified about the latest features.
Important
Do not control a thermostat with version 0.5.7. That version treats
SmartRent's Celsius API values as Fahrenheit and can drive a requested
setpoint to the thermostat's 99 degree Fahrenheit limit. Upgrade to 0.5.8
first.
Configure both the physical thermostat and Home Assistant to use
Fahrenheit. The physical setting avoids SmartRent maintenance automation
treating a normal Celsius value such as 24.5 as an abnormally low Fahrenheit
reading and creating repeated "Abnormal temperature sensed by Thermostat"
service requests.
Set Home Assistant's temperature unit to Fahrenheit under **Settings > System
General**. SmartRent's resident API still returns and accepts Celsius values even with the physical thermostat set to Fahrenheit, so the integration lets Home Assistant convert at the API boundary:
- A SmartRent reading of 24 degrees Celsius is displayed near 75 degrees Fahrenheit.
- A 75 degree Fahrenheit command is converted and sent to SmartRent as 24 degrees Celsius.
- Outbound values are rounded to SmartRent's 0.5 degree Celsius resolution.
- The target-temperature step is 1 degree Fahrenheit.
- The supported thermostat range is 60 to 90 degrees Fahrenheit.
- Heat mode writes the heating setpoint and cool mode writes the cooling setpoint.
- Auto mode supports separate low and high targets.
The fractional-value fix lives in the matching
Abas-Tim/smartrent-py fork. This
integration installs that version directly from its manifest.json. No Home
Assistant monkey patch, File Editor change, or manual Python package edit is
required.
You can install this integration as an HACS custom component or manually.
To add the repository manually:
- Back up Home Assistant.
- Go to HACS, open the menu, and select Custom repositories.
- Enter
https://github.com/Abas-Tim/homeassistant-smartrent. - Select Integration as the category and click Add.
- Open SmartRent and select Download.
- Restart Home Assistant.
- Go to Settings > Devices & services > Add integration, search for SmartRent, and enter your SmartRent credentials.
Only this repository needs to be added to HACS. Home Assistant installs the
patched smartrent-py dependency automatically during startup.
# How your HA config directory should look
config
|-- ...
|-- configuration.yaml
|-- secrets.yaml
`-- custom_components
`-- smartrent
|-- climate.py
|-- lock.py
|-- manifest.json
`-- ...
Move all content in custom_components/smartrent to the same location in Home
Assistant. If a custom_components directory does not already exist in your
Home Assistant instance, create one. You can learn more in Home Assistant's
integration file structure documentation.
After the files are in place, restart Home Assistant so the component can load.
Go to Settings > Devices & services > Add integration, search for SmartRent, and enter your email and password in the dialog.
- Create a Home Assistant backup.
- Remove the original SmartRent repository from HACS, but do not delete the SmartRent config entry under Devices & services.
- Add and download this fork using the HACS instructions above.
- Restart Home Assistant.
- Confirm that
/config/custom_components/smartrentcontains this fork and does not contain the old temporarythermostat_float_patch.pyfile.
After installation, repeat the checks that exercise each data path:
- Confirm the physical thermostat is set to Fahrenheit before restarting Home Assistant.
- Confirm Home Assistant is set to Fahrenheit under Settings > System > General.
- Confirm a physical reading near 77 degrees appears as 77 degrees Fahrenheit in Home Assistant.
- Set cooling to 75 degrees Fahrenheit in Home Assistant and confirm the physical thermostat receives approximately 75 degrees Fahrenheit, not 99 degrees Fahrenheit.
- Set heating to a whole-degree Fahrenheit value.
- In auto mode, set whole-degree
target_temp_lowandtarget_temp_highvalues. - Change a setpoint on the physical thermostat and confirm Home Assistant shows the same Fahrenheit value.
- Restart Home Assistant and confirm the values survive initial state loading.
The climate entity should report temperature_unit: °F and
target_temp_step: 1.
The original integration and library were created by Zachery Thomas:
This downstream fork is maintained by Abas-Tim. The original authorship, MIT copyright, Git history, project information, screenshot, and acknowledgements are retained.
