Nefit easy client

It used to work, but after checking again, it does not anymore.

Does anyone know when this feature request will be added as default component in the HASS.IO because… i can’t install it into the HASSIO raspberry PI.

ow okay since when didn’t it work anymore and do more people have this?

Yes! finally working under HASSIO.
I first installed the dependencies in a docker home assistant image.
Then I copied the folder deps from the docker image to the hassio config folder!
It is working. HASSIO is reading the temperatures and I can manage it!

AFter the latest update it isn’t working anymore.

Sat Oct 27 2018 10:04:56 GMT+0200 (Midden-Europese zomertijd)

DNS: dnspython not found. Can not use SRV lookup.

<OctetString schema object at 0x6ead75b0 tagSet <TagSet object at 0x72ee3550 tags 0:0:4> encoding iso-8859-1>
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py”, line 1492, in _process
if not self.__read_xml():
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py”, line 1564, in __read_xml
self.__spawn_event(xml)
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py”, line 1632, in __spawn_event
handler.prerun(stanza_copy)
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/handler/callback.py”, line 64, in prerun
self.run(payload, True)
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/handler/callback.py”, line 76, in run
self._pointer(payload)
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/features/feature_starttls/starttls.py”, line 64, in _handle_starttls_proceed
if self.xmpp.start_tls():
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/xmlstream.py”, line 889, in start_tls
cert.verify(self._expected_server_name, self._der_cert)
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/cert.py”, line 134, in verify
cert_names = extract_names(raw_cert)
File “/usr/local/lib/python3.6/site-packages/sleekxmpp/xmlstream/cert.py”, line 73, in extract_names
asn1Spec=OctetString())[0]
File “/usr/local/lib/python3.6/site-packages/pyasn1/codec/ber/decoder.py”, line 1318, in call
‘%s not in asn1Spec: %r’ % (tagSet, asn1Spec)
pyasn1.error.PyAsn1Error: <TagSet object at 0x6f86f350 tags 0:32:16> not in asn1Spec: <OctetString schema object at 0x6ead75b0 tagSet <TagSet object at 0x72ee3550 tags 0:0:4> encoding iso-8859-1>

Stopped working after last update of HA
See: Nefit stopped working after 'upgrade' to HASSIO "version": "0.81.0",

Github: https://github.com/marconfus/ha-nefit/issues/15#issuecomment-433920319


“I figured out a littlebit more, it seems they updated the sleekxmpp component from 1.3.2 to 1.3.3, and this breaks the Nefit (and apparently Netflix) plugins.
Still not sure what in 1.3.3 changed to break this.”

still working on 0.81 with the SSL fix.

This is because the state isn’t correct for google home.

The state IDLE needs to replaced with COOL.

You can do this by yourself and change the following lines in the nefit.py

from homeassistant.components.climate import ( ClimateDevice, PLATFORM_SCHEMA,
STATE_AUTO, STATE_HEAT, STATE_COOL, STATE_IDLE, STATE_ON, STATE_OFF,
SUPPORT_TARGET_TEMPERATURE, SUPPORT_OPERATION_MODE )


    @property
def current_operation(self):
    state = self._data.get("boiler indicator")
    if state == 'central heating':
        return STATE_HEAT
    elif state == 'hot water':
        return STATE_HOTWATER
    elif state == 'off':
        return STATE_COOL
    else:
        return None

Thanks! This change makes the Easy work with the Google Home app, I haven’t tried it with voice commands yet though. Although I expect no issues with that.

However this does change the state reported in Home Assistant aswell though. I tried editing the trait.py in the google_assistant component. To keep the idle state in Hass but report ‘cool’ state to GHome.

hass_to_google = {
   climate.STATE_HEAT: 'heat',
   climate.STATE_COOL: 'cool',
   climate.STATE_OFF: 'off',
   climate.STATE_AUTO: 'heatcool',

   into

   hass_to_google = {
   climate.STATE_HEAT: 'heat',
   climate.STATE_COOL: 'cool',
   climate.STATE_OFF: 'off',
   climate.STATE_AUTO: 'heatcool',
   climate.STATE_IDLE: 'cool',

But since I’m running HASSio the change in the Docker container isn’t saved after a reboot and thus never becomes active. Then I tried adding google_assistant as a custom component to overwrite the default, but even without any changes the custom component fails to load with a error: importError: cannot import name ‘CLOUD_NEVER_EXPOSED_ENTITIES’

Any tips? Otherwise I will just keep it the way you suggested. It is no big deal, but it does trigger my OCD. :laughing:

Does anyone know if there is some kind of tutorial or something to get this working on Hass.io?
I have read this topic, but i’m to new at Home Assistant to get this stuff working…
Light bulb’s and buttons etc is a piece of cake in HA but this thing is a tough nut to crack :stuck_out_tongue:

Please help, i buy you a beer haha

Hi,

I dont see any response for getting is to work in hassio. I’m using this one also, and like to get my nefit easy in hassio. every google search has turned me down and still not getting is to work. unable to install pyaes in this os. please help. :smile:

hi, instructons on https://github.com/marconfus/ha-nefit/issues/6

just try this.

docker exec -it homeassistant /bin/bash 

export PYTHONUSERBASE=/usr/local

pip3 install --user --no-cache-dir --prefix= --no-dependencies pyaes

pip3 install --user --no-cache-dir --prefix= --no-dependencies nefit-client

pip3 install --user --no-cache-dir --prefix= --no-dependencies pyasn1==0.3.7

Hello,

Thank you for your reply, but…
No, it is not working. it says:

docker: command not found

Also I cannot connect ssh to the 22222 port, connection refused error

Please don‘t try to install the component at the moment if you are not 100% sure what to do.
I‘m in the process of a total rewrite that‘s easier to install and will hopefully later get integrated into Home Assistant. Unfortunately I don‘t have a lot freetime right now, so it will take some more time.

1 Like

Ahh that sounds great! Is there something i can do to help?

Ah that was also on my todo list. Are you going to make it async?

Yes, a basic async version is already working:


Unfortunately the documentation on how to write a good async component is not very extensive.

1 Like

That depends, if you are experienced in async Python and/or looked into the Bosch/Nefit protocol :slight_smile:

Actualy already knew the answer on my own question.
I’m a total newbie at this stuff. Totally depending on guys like you with the great work :zipper_mouth_face:

You said it was working, but for me it won’t connect.
This is the last event in the log:
[custom_components.climate.nefit] Waiting for connected event

I’m trying to debug now, but this async stuff is also new for me.

edit:
I found that self._client.connect() was never called. Now it works!!

For the people who also want this to work, add that on line 83 in nefit.py

    self._client = NefitCore(serial_number=serial,
                   access_key=accesskey,
                   password=password,
                   message_callback=self.parse_message)
    self._client.connect()