Nefit easy client

First problem solved. second problem:

018-08-23 16:54:52 ERROR (SyncWorker_18) [sleekxmpp.xmlstream.resolver] All nameservers failed to answer the query wa2-mz36-qrmzh6.bosch.de. IN AAAA: Server 172.30.32.2 UDP port 53 answered DNS message is malformed.
Traceback (most recent call last):
File “/config/deps/lib/python3.6/site-packages/sleekxmpp/xmlstream/resolver.py”, line 242, in get_AAAA
recs = resolver.query(host, dns.rdatatype.AAAA)
File “/usr/local/lib/python3.6/site-packages/dns/resolver.py”, line 947, in query
raise NoNameservers(request=request, errors=errors)
dns.resolver.NoNameservers: All nameservers failed to answer the query wa2-mz36-qrmzh6.bosch.de. IN AAAA: Server 172.30.32.2 UDP port 53 answered DNS message is malformed.
2018-08-23 16:54:52 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Certificate has expired.
2018-08-23 16:54:52 WARNING (read_thread) [sleekxmpp.xmlstream.xmlstream] Failed to send b"<stream:stream to=‘wa2-mz36-qrmzh6.bosch.de’ xmlns:stream=‘http://etherx.jabber.org/streams’ xmlns=‘jabber:client’ xml:lang=‘en’ version=‘1.0’>"
2018-08-23 16:54:52 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Socket Error #9: Bad file descriptor
2018-08-23 16:54:58 ERROR (read_thread) [sleekxmpp.xmlstream.resolver] All nameservers failed to answer the query wa2-mz36-qrmzh6.bosch.de. IN AAAA: Server 172.30.32.2 UDP port 53 answered DNS message is malformed.
Traceback (most recent call last):
File “/config/deps/lib/python3.6/site-packages/sleekxmpp/xmlstream/resolver.py”, line 242, in get_AAAA
recs = resolver.query(host, dns.rdatatype.AAAA)
File “/usr/local/lib/python3.6/site-packages/dns/resolver.py”, line 947, in query
raise NoNameservers(request=request, errors=errors)
dns.resolver.NoNameservers: All nameservers failed to answer the query wa2-mz36-qrmzh6.bosch.de. IN AAAA: Server 172.30.32.2 UDP port 53 answered DNS message is malformed.
2018-08-23 16:54:59 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Certificate has expired.
2018-08-23 16:54:59 WARNING (read_thread) [sleekxmpp.xmlstream.xmlstream] Failed to send b"<stream:stream to=‘wa2-mz36-qrmzh6.bosch.de’ xmlns:stream=‘http://etherx.jabber.org/streams’ xmlns=‘jabber:client’ xml:lang=‘en’ version=‘1.0’>"
2018-08-23 16:54:59 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Socket Error #9: Bad file descriptor
2018-08-23 16:54:59 WARNING (MainThread) [homeassistant.components.climate] Setup of platform nefit is taking over 10 seconds.
2018-08-23 16:55:05 ERROR (read_thread) [sleekxmpp.xmlstream.resolver] All nameservers failed to answer the query wa2-mz36-qrmzh6.bosch.de. IN AAAA: Server 172.30.32.2 UDP port 53 answered DNS message is malformed.
Traceback (most recent call last):
File “/config/deps/lib/python3.6/site-packages/sleekxmpp/xmlstream/resolver.py”, line 242, in get_AAAA
recs = resolver.query(host, dns.rdatatype.AAAA)
File “/usr/local/lib/python3.6/site-packages/dns/resolver.py”, line 947, in query
raise NoNameservers(request=request, errors=errors)
dns.resolver.NoNameservers: All nameservers failed to answer the query wa2-mz36-qrmzh6.bosch.de. IN AAAA: Server 172.30.32.2 UDP port 53 answered DNS message is malformed.
2018-08-23 16:55:05 ERROR (MainThread) [homeassistant.components.sensor] scrape: Error on device update!
Traceback (most recent call last):
File “/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py”, line 248, in _async_add_entity
await entity.async_device_update(warning=False)
File “/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity.py”, line 322, in async_device_update
yield from self.hass.async_add_job(self.update)
File “/usr/local/lib/python3.6/concurrent/futures/thread.py”, line 56, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/local/lib/python3.6/site-packages/homeassistant/components/sensor/scrape.py”, line 120, in update
value = raw_data.select(self._select)[0].text
IndexError: list index out of range
2018-08-23 16:55:06 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Certificate has expired.
2018-08-23 16:55:06 WARNING (read_thread) [sleekxmpp.xmlstream.xmlstream] Failed to send b"<stream:stream to=‘wa2-mz36-qrmzh6.bosch.de’ xmlns:stream=‘http://etherx.jabber.org/streams’ xmlns=‘jabber:client’ xml:lang=‘en’ version=‘1.0’>"
2018-08-23 16:55:06 ERROR (read_thread) [sleekxmpp.xmlstream.xmlstream] Socket Error #9: Bad file descriptor

It works with the command line. but in homeassistant i still got the problem from above.
:frowning:

Maybe someone knows what to do?
Greetings justin

solved with this hack

nefit hassio

same here, works on cli but hass complains about missing nefit

In hassio i used this for installation… Only for hassio!

#run shell in homeassistant docker containter
docker exec -it homeassistant /bin/bash

# define user base directory
export PYTHONUSERBASE=/config/deps

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

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

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

Hi all,

first of all thanks for the great Nefit component!

Recently the Dutch language was released for Google Assistant, so I bought a couple of Google Homes. Everything in HASS is working as expected except for this custom climate component.
It is visible in the Google Home app and it will show the current measured temperature but setting a temperature is not possible. Not by voice or in the Google app. In the app it just keeps saying ‘loading’.

Does this component work for someone else from within the Google Assistant/Home app or by voice? That would mean I have something setup wrong. Or is this a shortcoming/bug in the ha-nefit component?

I tried using IFTTT the set the temperature directly on the Nefit with Google Assistant, unfortunatly IFTTT doesn’t support the Dutch assistant language yet…

Any ideas?

Thanks!

i have problems getting the settings correct I have the following settings:

climate:
  platform: nefit
  name: Heating
  serial: '12345678'
  accesskey: 'RandomString'
  password: '1234PP11'

but it does not seem to work
i have 2 spaces in front of the platform and so on. Am I doing something wrong?

I get these errors:

‘utf-8’ codec can’t decode byte 0xbd in position 7: invalid start byte
19:58 deps/lib/python3.6/site-packages/nefit/init.py (ERROR)
Error handling {jabber:client}message stanza
19:58 deps/lib/python3.6/site-packages/nefit/init.py (ERROR)
Error processing event handler: <bound method NefitCore.message of <nefit.NefitClient object at 0x72ed3d30>>
19:58 deps/lib/python3.6/site-packages/nefit/init.py (ERROR)

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