The Várgesztes Villa Park During the work commissioned by the company, the Yabune Home team participated in the smartening of the heating control in 108 houses of the complex consisting of a total of 125 houses.
The customer contacted us with the following problem:
„Residents often override the thermostat’s decision, causing the house to overheat, or disconnect it from the local Wi-Fi network, thus losing the manageability of smart thermostats.”
Our task is to create a central control interface that will allow you to:
- We combine smart WiFi thermostats from different brands into one unit.
- We monitor each WiFi thermostat and, if necessary, provide the option for manual intervention (in case of under or over heating).
- We provide automation, with the help of which the Yabune Home control center prevents over- or under-heating.
- We provide automation that notifies the park operator by email if individual thermostats are not available on the network.
- We provide automation that notifies the park operator by email if there is a risk of freezing.
- We provide a data-driven analytical interface that helps the park operator understand the heat demand of each house and where it is worth intervening/upgrading. This can help reduce gas consumption and the ecological footprint.
- We provide a separate interface and permissions for operators and system administrators.
The complex consists of 125 independent houses that serve both 'condo' and 'hotel' roles. The vast majority of the houses Computherm E280/E300 series wifi thermostat products are found (82 pieces), and a smaller proportion of Ariston Cube S Net wifi thermostats (26 pieces) are installed.
The complex has full Wi-Fi network coverage, ensuring that each smart device is located within a single network. The IP address of each Wi-Fi thermostat matches the house number, ensuring a structured design.
The task is performed by the Yabune Home system, for which an Argon One was installed. During the task, we aimed to make the system dynamically developable, so if, for example, a new thermostat is installed or replaced, the operator does not need to take any further steps, because the devices are fully automatically included in the system, both visually and from an automation point of view. The individual value points (too high, too low temperature) can also be controlled by the operator, which is also taken into account by the automation.
Computherm integration
In the course of completing this task, the official Computherm integration supported by Yabune has received several new features:
1. The integration automatically detects available Computherm devices on the network and adds them to the Yabune Home interface automatically.
2. We have improved error handling.
3. We have also reduced the system loading time.
The data visualization interface was implemented as a separate service accessible from the Yabune Home interface, which allows the operator to specify which houses and at what interval they would like to inspect.

In the future, the following will be developed based on customer demand:
- Integration of air conditioning units (Midea) with the automations mentioned above.
- All houses are equipped with a device that measures electricity consumption and regulates the house's power supply.
- It will be possible to measure the water temperature of houses with indoor pools and override the pool automation.
Professional background information
Most of the task is accomplished by three automations:
- The logic of the first line of defense is that if the system receives an event that indicates a change in the thermostat status, it examines the target temperature and, if it is too high/low, modifies it within the limits specified by the operator:
alias: Climate auto update on based on min/max temp description: Climate auto update on based on min/max temp trigger: - platform: event event_type: state_changed event_data: {} condition: - condition: template value_template: >- {{ (trigger.event.data.entity_id.startswith('climate.computherm_thermostat_') or trigger.event.data.entity_id.startswith('climate.remote_gw_thermo_')) and trigger.event.data.new_state.attributes.temperature != trigger.event.data.old_state.attributes.temperature and (trigger.event.data.new_state.attributes.temperature|float > (states("input_number.max_temp")|float) or trigger.event.data.new_state.attributes.temperature|float {% if trigger.event.data.new_state.attributes.temperature|float > (states("input_number.max_temp")|float) %} {{states("input_number.max_temp")}} {% else %} {{states("input_number.min_temp")}} {% endif %} mode: single
2. The second line of defense is based on a time-based logic, the essence of which is that at specified intervals the system iterates through all available thermostats and if it finds an unacceptable value, it modifies it according to the above logic. The purpose of this is to ensure that we are insured in the event that we did not notice the problem during the first automation, and the system can regulate the change within a foreseeable time.
3. The third automation is responsible for sending email notifications. It has two main tasks:
- sends a notification if the temperature in the house is too low – risk of freezing
- notifies you even if a given thermostat is permanently unavailable
This automation runs every morning at a predetermined time.
service: notify.email_notification data: title: Villapark Thermostat Status message: '' data: html: > Dear Villapark Operator!</br></br> {% for e in states.climate|sort(attribute='name') %} {% set temp = e.attributes.temperature %} {% if (e.entity_id.startswith('climate.computherm_thermostat_') or e.entity_id.startswith('climate.climate.remote_gw_thermo_')) and 'House' in e.name %} {% if state_attr(e.entity_id, 'temperature') is none %} The thermostat of {{e.name}} is not available!
<hr>
{% endif %} {% if state_attr(e.entity_id, 'temperature') is not none and state_attr(e.entity_id, 'current_temperature')|float < states('input_number.absolute_min_temp')|float %} It's too cold in {{e.name}}! The current temperature is: {{state_attr(e.entity_id, 'current_temperature')|float}}
<hr>
{% endif %} {% endif %} {% endfor %} </br> Best regards,</br> The Yabune Home team
From a visualization perspective, it is also a challenge to display so many values in a usable form. To solve this, we used one of our favorite add-on cards (auto-entities). As you can see from the code snippets below, we created two cards. The first one shows only the faulty thermostats (thermostat not available, low, too high target temperature), the second card gives the entire list, where we distinguish the faulty thermostats with colors.
type: custom:auto-entities card: type: entities title: Defective houses (heating) state_color: false filter: template: | {% for e in states.climate %} {% set temp = e.attributes.temperature %} {% if (e.entity_id.startswith('climate.computherm_thermostat_') or e.entity_id.startswith('climate.remote_gw_thermo_')) and 'House' in e.name %} {% if state_attr(e.entity_id, 'temperature') is none or (state_attr(e.entity_id, 'temperature') is not none and state_attr(e.entity_id, 'current_temperature')|float < states('input_number.absolute_min_temp')|float) or state_attr(e.entity_id, 'current_temperature')|float|round states('input_number.max_temp')|float) %} {{ e.entity_id}}, {% endif %} {% endif %} {% endfor %} exclude: [] sort: method: friendly_name numeric: true
type: custom:auto-entities
card:
type: entities
title: Összes ház (fűtés)
filter:
include:
- domain: climate
name: '*Ház*'
options:
style: |-
:host {
--paper-item-icon-color:
{% if state_attr('this.entity_id', 'temperature') is none %}
#CC3D40
{% elif state_attr('this.entity_id', 'temperature') is not none and
(state_attr('this.entity_id', 'current_temperature')|float <
states('input_number.absolute_min_temp')|float or
state_attr('this.entity_id', 'current_temperature')|float
states('input_number.max_temp')|float %}
#CC3D40
{% endif %}
; }
exclude: []
sort:
method: friendly_name
numeric: true
Final thought
In addition to achieving the original goal, both the operator and the park owner have received additional benefits. The maintenance of the heating system has become significantly more reliable, as the operator gets an accurate picture of the current situation and does not have to wait for the guest to report the problem. For the same reason, the chance of the house freezing in winter is reduced.
The owners of the park also get a more accurate picture of the heat demand of their houses and the heat retention factor they need to take into account. What's more, this also reduces their gas bill and ecological footprint.
Frozen sausage on the thermostat
After the system was put into operation, the Customers shared with us that the worst hack they had seen so far was when one of the residents put a frozen hot dog on the thermostat, thereby fooling the thermometer in the thermostat and exceeding the normal capacity of the circo. Human ingenuity has no limits.
If you would like similarly quality solutions or have any questions related to smart home systems, contact us at connection!