Added support for Vaillant Thermostat, how to integrate in official release

can you give key for api and secret ?

Hi, great job anyway keeping the changes updated.

With regards to manual temperature request. Can you set up the way once temp manually change ot is kept until next schedule change ? Example: when temp in schedule is set to 21C until 23:00 then 18C until 6:00 next day. When I change temp manually to 23C at 20:00 it will keep temp until 23:00 (in this case at 23:00 manual temp request finish and regular schedule continues).

What do you think ?


Hi all
is it possible to have the api_key and secret_key?
Thanks a lot

This this an amazing job!
I have just bought a MiGo device. Could it be possible to have the API_KEY and SECRET? I have tried to decompile the apk but I couldn’t find it!

Hi all
is it possible to have the api_key and secret_key?
Thanks a lot

Awesome work, I’ve put off upgrading for a while. All done and working. previously i used to get two climate entities created with this addon and I had the second one with an _2 suffix in my frontend. That worked on the 1st start after the upgrade then it became unavailable. Now I only have one climate entity for this add on and its all working fine. Thanks again!


Seems that update 0.100.2 breaks the support (again). Got this message:

Log Details (ERROR)

Unable to prepare setup for platform vaillant.climate: Unable to set up component.

Log Details (ERROR)
Sun Oct 13 2019 19:30:31 GMT+0200 (Midden-Europese zomertijd)

Error during setup of component vaillant
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/urllib3/", line 421, in _make_request
    six.raise_from(e, None)
  File "<string>", line 3, in raise_from
  File "/usr/local/lib/python3.7/site-packages/urllib3/", line 416, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/local/lib/python3.7/http/", line 1336, in getresponse
  File "/usr/local/lib/python3.7/http/", line 306, in begin
    version, status, reason = self._read_status()
  File "/usr/local/lib/python3.7/http/", line 267, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/local/lib/python3.7/", line 589, in readinto
    return self._sock.recv_into(b)
  File "/usr/local/lib/python3.7/site-packages/urllib3/contrib/", line 326, in recv_into
    raise timeout("The read operation timed out")
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/requests/", line 449, in send
  File "/usr/local/lib/python3.7/site-packages/urllib3/", line 720, in urlopen
    method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
  File "/usr/local/lib/python3.7/site-packages/urllib3/util/", line 400, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/usr/local/lib/python3.7/site-packages/urllib3/packages/", line 735, in reraise
    raise value
  File "/usr/local/lib/python3.7/site-packages/urllib3/", line 672, in urlopen
  File "/usr/local/lib/python3.7/site-packages/urllib3/", line 423, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/usr/local/lib/python3.7/site-packages/urllib3/", line 331, in _raise_timeout
    self, url, "Read timed out. (read timeout=%s)" % timeout_value
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='', port=443): Read timed out. (read timeout=10)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/", line 171, in _async_setup_component
    component.setup, hass, processed_config  # type: ignore
  File "/usr/local/lib/python3.7/concurrent/futures/", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/vaillant/", line 60, in setup
  File "/usr/local/lib/python3.7/site-packages/", line 61, in __init__
    resp = postRequest(_AUTH_REQ, postParams)
  File "/usr/local/lib/python3.7/site-packages/smart_home/", line 25, in postRequest
    resp =, data=params, timeout=timeout)
  File "/usr/local/lib/python3.7/site-packages/requests/", line 116, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/requests/", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='', port=443): Read timed out. (read timeout=10)

@Derk I haven’t upgraded yet to 0.100.2, so I’m not sure if that’s the reason it’s broken. From the traceback, it looks likes the netatmo API was unreachable (timeout), but I should add a handler for that so that it doesn’t crash the component.

@fabiolastra @jcss2503 @Hunty send me a DM if you are still searching for them.

@pjmaenh I restarted Hassio a couple of times and now it works. Only now my thermostat card in lovelace seems strange. But that’s a different problem.

Thanks for the quick reply! Next time i should restart first, instead of post first :wink:

@Derk No problem! I just upgraded to 0.100.2, and everything seems to be working fine here… no issues whatsoever with the lovelace thermostat card. Are you using the default thermostate card, or a custom component?

@pjmaenh It is the default card. But, that is also sorted out now.

Hey @pjmaenh,
could you please tell me the Key?
I’m new here and have no Android.
THX :slight_smile:

api_key: na_client_android_vaillant
secret_key: Find it or ask me
username: Login used in the app
password: Password used in the app
discovery: False

1 Like

@pjmaenh - can I have the keys as well ? I’ve decompiled apk using apktool, found some “strings” but none of them seems to work … BTW I have a MiGo thermostat … thanks

@Rollo @kkoouu check your messages.

Note that you don’t need an Android device, in order to find the keys yourself you just need to find the apk and decompile it (can be done on any computer).

@pjmaenh I just got a vsmart thermostat and would like to integrate it in to HA. I have decompiled the apk file but can’t find the secret_key. Could you point out the files I need to investigate or send me the keys? Thanks!

Hi, could you please tell me the api_key?.. I’ve decompiled the apk and found the string na_client_android_vaillant, inside classes.dex file, but no key near.


@pjmaenh Can i have the right secret key and api key for my bulex migo app ? thanks


I’m using latest stable HomeAssistant docker image (homeassistant/home-assistant:stable) and I’ve got the following error :

$ docker-compose logs homeassistant | grep -i vaillant
homeassistant    | 2019-12-19 00:29:39 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for vaillant which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
homeassistant    | 2019-12-19 00:29:39 INFO (MainThread) [homeassistant.loader] Loaded vaillant from custom_components.vaillant
homeassistant    | 2019-12-19 00:29:40 INFO (MainThread) [homeassistant.setup] Setting up vaillant
homeassistant    | 2019-12-19 00:29:40 INFO (MainThread) [homeassistant.setup] Setup of domain vaillant took 0.7 seconds.
homeassistant    | 2019-12-19 00:29:40 INFO (MainThread) [homeassistant.components.climate] Setting up climate.vaillant
homeassistant    |   File "/config/custom_components/vaillant/", line 82, in name
homeassistant    | AttributeError: 'VaillantThermostatData' object has no attribute 'name'

I can’t see any Vaillant options after logging on HA.

Any ideas ?

Thank you very much.

Awesome job @pjmaenh ! Thanks a lot, just updated from 0.95 (I was scared that it will broke the Vaillant component) but with your update it works like charm. Once again thank you.

@gguest64 my guess is that this authentication failed. Either your credentials are incorrect, or the combination of <API_KEY> , <SECRET_KEY> , <APP_VERSION> and <USER_PREFIX> is wrong.

Feel free to send me a direct message if you want to verify your configuration.

1 Like