Nefit easy client

Hello,
I am looking for an addon for the Nefit Easy thermostaat.
I have installed HomeAssistant using the HA-image.
There are a few old posts about about it, tried them but still no luck.
Can anybody help ?
Thanks !
:wink: Arthur

Im getting the same timeout error as @Roelofk85 and this one as well:
CERT: Invalid certificate trust chain.

Seems there is an SSL problem somewhere?

Maybe you should elaborate a little bit more about the problems you’re experiencing… What did you do so far? What’s not working?

The problem started with the update to 96 and the changes to the climate component,
I expected that everyone ran into this issue as it is an invalid SSL from the Bosch servers. I stripped the config down to isolate the issue nad this is the logging which is left when I only use the latest nefit component from gitlab:

2019-08-12 10:44:04 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for nefit which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if $
2019-08-12 10:44:04 WARNING (MainThread) [slixmpp.stringprep] Using slower stringprep, consider compiling the faster cython/libidn one.
2019-08-12 10:44:04 ERROR (MainThread) [homeassistant.core] Error doing job: SSL handshake failed
Traceback (most recent call last):
  File "uvloop/sslproto.pyx", line 500, in uvloop.loop.SSLProtocol._on_handshake_complete
  File "uvloop/sslproto.pyx", line 484, in uvloop.loop.SSLProtocol._do_handshake
  File "/usr/local/lib/python3.7/ssl.py", line 774, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1076)
2019-08-12 10:44:04 ERROR (MainThread) [slixmpp.xmlstream.xmlstream] CERT: Invalid certificate trust chain.
2019-08-12 10:44:14 WARNING (MainThread) [homeassistant.components.climate] Setup of platform nefit is taking over 10 seconds.
2019-08-12 10:44:14 WARNING (MainThread) [homeassistant.components.climate] Platform nefit not ready yet. Retrying in 30 seconds.
2019-08-12 10:44:45 ERROR (MainThread) [homeassistant.core] Error doing job: SSL handshake failed
Traceback (most recent call last):
  File "uvloop/sslproto.pyx", line 500, in uvloop.loop.SSLProtocol._on_handshake_complete
  File "uvloop/sslproto.pyx", line 484, in uvloop.loop.SSLProtocol._do_handshake
  File "/usr/local/lib/python3.7/ssl.py", line 774, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1076)
2019-08-12 10:44:45 ERROR (MainThread) [slixmpp.xmlstream.xmlstream] CERT: Invalid certificate trust chain.
2019-08-12 10:44:55 WARNING (MainThread) [homeassistant.components.climate] Setup of platform nefit is taking over 10 seconds.
2019-08-12 10:44:55 WARNING (MainThread) [homeassistant.components.climate] Platform nefit not ready yet. Retrying in 60 seconds.

Anyone have an suggestion where to look next?

So I setup a whole new Home Assistant instance with just the nefit component, and I get the same error as above. @marconfus do you have any suggestion?

Did you copy manifest.json from https://github.com/marconfus/ha-nefit-ng to /config/custom_components/nefit?

That did the trick for me.

@tomster Yep, did that one, otherwise I got the message at aionefit wasn’t found.

By the way, I run Home Assistant in Docker, don’t know if that matters

I have the exact same issue with the official Home Assistant Docker image and the latest version of the component.
It is SSL related and started after upgrade to 0.97. The only change I see in the release-notes that might have something to do with this is: " * Upgrades Dockerfiles to Debian Buster (@frenck - #25208)".
This might have upgraded some packages that deprecated some SSL stuff that is needed to connect to the Nefit website to retreive the information. Could also be the bump to minimal Python version 3.6.

Unfortunately I don’t have the (Python) knowledge to debug further and fix this.
It appears to be only an issue with the Docker image, or is anybody running the component with a Docker image and the latest Home Assistant (0.97.2 at the time I’m writing this) without any issues?

I have the same issue. Also upgraded to 0.97.2 and running HA on Docker.

I have been busy with a new version. It is far from ready but it should basically work. I am currently on holiday, but see you all having problems, so I upload this and hope it works.
Although the principle is the same as the current component…

Configuration should be changed to

nefiteasy:
    serial: xxxx
    password: xxx
    accesskey: xxx

Hi @ksya,

Thanks for looking into this and responding on your holiday, really appreciate it!
The updated component gives me the same errors, likely becauset it is based on the same version of the aionefit component. I don’t think the problem is with the HA component, buth on the dependend libraries such as the XMPP library. Based on the errors seems that in the docker builds there is a certificate not trusted in the cert chain from Bosch. If we could simply ignore this at the XMPP protocol level then the component will work again (however it can be vulnerable to man in the middle attacks)

Note, the manifest.json in the dropbox link is not entirely correct as the domain should be changed from nefit to nefiteasy.

Enjoy your holiday and hope you can take a crack at this when you have time :slight_smile:

@ksya your component works great after some updates to the config. It looks like you added some sensors that I created using templates. I might be doing something wrong, but I only see this in the climate.nefit_easy entity:

hvac_modes: heat
current_temperature: 27.3
min_temp: 10
max_temp: 35
target_temp_step: 0.5
temperature: 20.5
hvac_action: idle
preset_mode: Clock
preset_modes: Manual,Clock
last_update: 2019-08-28T20:10:51+01:00 We
friendly_name: Nefit Easy
supported_features: 17

And I see just 2 sensors:

sensor.nefit_cv_pressure
sensor.nefit_supply_temperature

<-------------------->

To get this working with the official HA docker image you need to change the openssl.cnf file in the Docker image:
Edit the file /etc/ssl/openssl.cnf and change the following keys to these values:
MinProtocol = None
CipherString = DEFAULT

This was suggested by squindahr in the git-hub issue I created for this:
https://github.com/marconfus/ha-nefit-ng/issues/21

You can do this by adding something like this in your docker-compose.yml:

    volumes:
      - <location_of_file>/openssl.cnf:/etc/ssl/openssl.cnf

It’s possible to get the component up and running (probably with some extra vulnerabilities as @thastealth suggests) using this ‘hack’ and the HA Docker image.

1 Like

Any progress on integrating this command in the climate component?

I will add more sensors when I’m back from my holiday. You will be able to choose which ones to add.

Using this new setup, also switches will be possible, for instance switching the hot water.

1 Like

That’s great to hear. Enjoy your holiday!

I get the error that the netfiteasy component is unknown. Do I need to install an integration?
“Component error: nefiteasy - Integration nefiteasy not found.”

Did you use the dropbox files @ksya provided? If so; read my previous comment, the manifest.json is not correct and needs 1 small change

@ksya/@svheel thanks, by overriding the docker file I was able to get it up and running again

I changed the manifest.json but still keep the errors:
1st error
The following components and platforms could not be set up:

  • nefiteasy
    2nd error
    Invalid credentials while connecting to Bosch cloud.

And I know for a fact that the credentials are correct. These work on my mobile app.

You are using Docker?
If so, read @svheel’s post:

To get this working with the official HA docker image you need to change the openssl.cnf file in the Docker image:
Edit the file /etc/ssl/openssl.cnf and change the following keys to these values:
MinProtocol = None
CipherString = DEFAULT

This was suggested by squindahr in the git-hub issue I created for this:

You can do this by adding something like this in your docker-compose.yml:

Copy to clipboard

    volumes:
      - <location_of_file>/openssl.cnf:/etc/ssl/openssl.cnf

After I did this it worked for me (had the same error)

Hey guys,

I got an error with SSL too but I got Hass.io. I cant find those two parameters on openssl.cnf. I need to add the parameters or they should be in there ?

My error:

2019-09-03 12:07:16 ERROR (SyncWorker_5) [homeassistant.util.package] Unable to install package aionefit==0.3: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError("bad handshake: SysCallError(104, 'ECONNRESET')"))': /simple/aionefit/

I used the dropbox files. the __init__.py should be empty like the github instructions or with the same content that the file in dropbox ?