New version is cretaed based on dedicated API. For details please see https://github.com/chomupashchuk/ariston-remotethermo-home-assistant-v2.
Thin integration is a side project (my first integration) and was tested only with 1 zone climate. It logs in to Ariston website and fetches/sets data on that site. You are free to modify and distribute it, but it is distributed 'as is' with no liability (see license file).
Cimate and Water Heater components have presets to switch between off
, summer
and winter
in order to be able to control boiler from one entity.
In order not to interfere with other applications (official Ariston applications via android or web, and Google Home) fetching of data has timers to read data from 1 to 16 minutes depending on specific sensor (for example errors and temperatures are fetched more often compared to gas use or time based program) and on configuration (polling_rate
) with possible skip if some data was changed or communication error. Interfereing with other application causes their timeouts and occasionally gateway disconnection from the internet or hanging for long periods of time, thus decrease of retry intervals is not recommended.
Setting of data is perfomed immediately on request with attempts scheduled to every 1 to 2.5 minutes depending on configuration (see polling_rate
) and if there are too many errors that decreases speed of execution. Attribute max_retries
is used to identify how many more attempts to be done after initial one (might be useful in case of unstable connection). If new request comes during setting procedure, it shall be processed during next scheduled attempt.
Monitoring if change of configuration is being attempted can be viewed with changing_data
binary_sensor. To reduce number of setting requests the integration waits for reading of data to determine if to stop the procedure or if to continue.
- Ariston Clas Evo
- Ariston Genus One with Ariston BCH cylinder
- Ariston Nimbus Flex
- Ariston Velis Wifi
In /config
folder create custom_components
folder and load source files folder ariston
in it
In configuration.yaml
include:
ariston:
username: !secret ariston_username
password: !secret ariston_password
All additional attributes are described in Integration attributes
Localizations are located in corresponding .json
file within .translations
folder.
Localization consists of two main parts:
- Frontend translation (within corresponding
sensor.__.json
file), which works only with sensors due to functionality limitations. Change of frontend language automatically changes displayed value in frontend. - Backend translation (objects within
backend.__.json
file), which forces translated values to be used during components initilization forclimate
(preset) andwater_heater
(operation). Change of language can only be changed inconfiguration.yaml
and is applied during Home Assistant start. Note that services use untranslated data, use velues specified inservices.yaml
!
Supported localizations:
en
- English (default)uk
- Ukrainianpl
- Polish
Store contents of icons
folder in \config\www\icons
folder. Since builtin icons do not have similar representation as in Ariston app, this is an option to partly reflect the application view.
username
- mandatory user name used in https://www.ariston-net.remotethermo.compassword
- mandatory password used in https://www.ariston-net.remotethermo.com ! It is recommended for security purposes to not use your common password, just in case !name
- friendly name for integrationlocalization
- localization to be used. See Localizationshvac_off_present
- indicates ifHVAC OFF
shall be present in climate entity. Default value isfalse
.hvac_off
- indicates how to treatHVAC OFF
action in climate. Options areoff
andsummer
. By default it issummer
, which means that turning off would keep DHW water heating on (e.g. summer mode). Presets in climate allow switching betweenoff
,summer
andwinter
.power_on
- indicates which mode would be used forswitch.turn_on
action. Options aresummer
andwinter
. By default it issummer
.max_retries
- number of retries to set the data in boiler. Retries are made in case of communication issues for example, which take place occasionally. By default the value is '1'.store_config_files
-true
orfalse
indicating if configurationjson
files to be stored in/config
folder. Can be used for troubleshooting purposes for example. Default value isfalse
.control_from_water_heater
- ifwater_heater
entity will have controling parameters likesummer
orwinter
oroff
as part of operations. Default value isfalse
.units
- which uniots to be used. Values are:metric
(°C-bar-kW...),imperial
(°F-psi-kBtu/h...),auto
(detect automatically, which takes additional time). Default ismetric
.polling_rate
- indicates timers to be used to read or set data. Values arenormal
andlong
. Long means waiting longer for http replies and longer delays between the requests, which might be beneficial in case of slow Ariston responces due to internet connection for example. Default isnormal
to have faster responces.init_during_start
- indicates if integration data shall be fetched during Home Assistant start to have valid data when Home Assistant is started (no guarantee that it will succeeed). Valuetrue
delays the start time for longer andfalse
for lesser period of time but initially all entities will be unavailable until data is fetched. Default value istrue
.dhw_flame_unknown_as_on
- indicates if unknown value of DHW to be tretaed as ON or OFF (gateway has position for DHW flame but it is never set, so intead value is based onch_flame
anddhw_flame
and storage temperature if it is valid). Default value isfalse
.dhw_and_ch_simultaneously
indicates if DHW and CH flames can work together in specific hardware (Clas Evo and Genus One can heat only DHW or CH at one time). It affects ifch_flame
shall be turned off forcefully whendhw_flame
is suspected to be on. Default value isfalse
.
power
- turn power off and on (on value is defined bypower_on
attribute).internet_time
- turn off and on sync with internet time.internet_weather
- turn off and on fetching of weather from internet.ch_auto_function
- turn off and on Auto function.dhw_thermal_cleanse_function
- DHW thermal cleanse function enabled.
account_ch_gas
- gas use summary for CH. Not supported on all models.account_ch_electricity
- electricity use summary for CH. Not supported on all models.account_dhw_gas
- gas use summary for DHW. Not supported on all models.account_dhw_electricity
- electricity use summary for DHW. Not supported on all models.ch_antifreeze_temperature
- CH antifreeze temperature.ch_detected_temperature
- temperature measured by thermostat.ch_mode
- mode of CH (manual
orscheduled
and others).ch_comfort_temperature
- CH comfort temperature.ch_economy_temperature
- CH economy temperature.ch_set_temperature
- set CH temperature.ch_program
- CH Time Program.dhw_program
- DHW Time Program.dhw_comfort_function
- DHW comfort function.dhw_mode
- mode of DHW. Not supported on all models.dhw_comfort_temperature
- DHW storage comfort temperature. Not supported on all models.dhw_economy_temperature
- DHW storage economy temperature. Not supported on all models.dhw_set_temperature
- set DHW temperature.dhw_storage_temperature
- DHW storage temperature. Not supported on all models.dhw_thermal_cleanse_cycle
- DHW thermal cleanse cycle.electricity_cost
- Electricity cost.errors
- active errors (no errors to test on).gas_type
- Gas type.gas_cost
- Gas cost.heating_last_24h
- energy use for heating in last 24 hours. Not supported on all models.heating_last_30d
- energy use for heating in last 7 days. Not supported on all models.heating_last_365d
- energy use for heating in last 30 days. Not supported on all models.heating_last_7d
- energy use for heating in last 365 days. Not supported on all models.mode
- mode of boiler (off
orsummer
orwinter
and others).outside_temperature
- outside temperature. Not supported on all models.signal_strength
- Wifi signal strength.units
- Units of measurementwater_last_24h
- energy use for water in last 24 hours. Not supported on all models.water_last_30d
- energy use for water in last 7 days. Not supported on all models.water_last_365d
- energy use for water in last 30 days. Not supported on all models.water_last_7d
- energy use for water in last 365 days. Not supported on all models.
ch_auto_function
- if CH AUTO function is enabled.ch_flame
- if CH heating is ongoing.ch_pilot
- CH Pilot mode.changing_data
- if change of data via Home Assistant is ongoing.dhw_flame
- if DHW heating is ongoing (not fetched but calculated based onch_flame
,flame
, and if valid thendhw_storage_temperature
anddhw_set_temperature
, anddhw_flame_unknown_as_on
for invaliddhw_storage_temperature
).dhw_thermal_cleanse_function
- DHW thermal cleanse function enabled.flame
- if any type of heating water (DHW or CH).heat_pump
- if heating pump is ON. Not supported on all models.holiday_mode
- if holiday mode switch on via application or site.internet_time
- if time from the internet is used.internet_weather
- if weather from the internet is used.online
- online status.update
- if update is available for the integration.
ariston:
username: !secret ariston_user
password: !secret ariston_password
max_retries: 5
localization: 'pl'
switches:
- internet_time
- internet_weather
sensors:
- ch_detected_temperature
- ch_mode
- ch_comfort_temperature
- ch_economy_temperature
- ch_set_temperature
- dhw_set_temperature
- errors
- mode
- outside_temperature
binary_sensors:
- changing_data
- online
ariston.set_data
- sets data in the boiler. Uses max_retries
attribute from configuration.
entity_id
- mandatory entity of Aristonclimate
.- for the rest of attributes please see
Developer Tools
tabServices
within Home Assistant and selectariston.set_data
. Or you may also directly readservices.yaml
within theariston
folder.
service: ariston.set_data
data:
entity_id: 'climate.ariston'
ch_comfort_temperature: 20.5
Since integration interacts with server, which interacts with boiler directly or via gateway, it is possible that some link in the chain is not working. Integration is designed to constantly retry the connection (requests are sent more reearely in case of multiple faults to reduce load on whole chain). Mostly connection recovers in time, but sometimes restart of router or boiler can help (but not always).
Even though many functions are not accessible via integration once boiler configuration (parameter 228 in the menu) changed from 1 (boiler with water heater sensor) to 0 (default configuration without sensor), possibly due to packets corruption on the way or some specific bit sequence. It caused Genus One model not being able to handle DHW. The solution is to enter boiler menu directly and change the value of parameter 228. Also boiler might require restart (complete loss of power).
Please see files under /ariston/.translations/
and take files like backend.en.json
and sensor.en.json
as a base. Create files with corresponding name that represent desired language (must be compliant with BCP47) and input translated data into created files from the right side of the data (left side is internal values used by the integration and right side are the values to be shown in the frontend). Then please provide me with mentioned 2 files in order to be included in the integration (to include new language in LANG_LIST
within const.py
and make it available for everyone).
Since I use scanning of http requests towards web application, and web application provides only data supported by hardware, I can only test what my hardwre supports, which is very limited. So if you would like new sensors or service attributes please follow guides below.
- Set
store_config_files
totrue
inconfiguration.yaml
to generate files within/config
folder based on received data from the server. - after Home Assistant restart wait for files
data_..._get_main.json
,data_..._get_param.json
anddata_..._get_gas.json
to be generated. Store files locally, within the files is the latest configuration. - change parameter that you are interested in remotely (via Ariston web or androind or by other means) and wait for new version of files to be generated (either check modification time or delete old files within
/config
and wait for creation of new files). Compare old and new files with same names to see if parameter is reported as changed. - send me information on file name, sensor name (and short description) and parameter in json file that represents parameter. If parameter has values different from ON/OFF or TRUE/FALSE (for example 0, 1 ,5) please provide meaning behind each value. If my hardware does not support values i have no idea of how it should be represented.
Since my web application does not show more options due to heater capabilities support, there are few options:
- install traffic analyzer (like fiddler) and connect it to web browser (like chrome) and follow
Guide_for_new_requests.doc
. - Never share your password with strangers. Provide me with login and password to do everything myself with your heater and change password after i have fond corresponding requests.
This is similar case to the sensors based on new requests, see Guide_for_new_requests.doc
for details.