Nello.IO Remote Intercom Integration (Solved)

Nello.IO is a pretty nifty device that adds remote capabilities to your old in-building intercom. In lieu of writing a full binding I built a small MQTT bridge that allows you to buzz people in using a MQTT message.

By simply running this bridge in a Docker container and using the OpenHAB MQTT binding you can buzz people in.

Switch EntryBuzzer { mqtt=“>[mybroker:home/nello:command:ON:OPEN a95a788a-e774-4561-8fc8-2225b3dccc21]” expire=“5s,command=OFF”

I hope this can come in handy for someone else!

1 Like

Hi,
I tried it today.
But I´ve problem, docker container is always restarting.

Log

2018-01-07T10:02:04.859555090Z Traceback (most recent call last):
2018-01-07T10:02:04.859603991Z   File "nello.py", line 41, in <module>
2018-01-07T10:02:04.859609192Z     client.connect(os.environ['MQTT_BROKER'], port, 60)
2018-01-07T10:02:04.859612592Z   File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 768, in connect
2018-01-07T10:02:04.859618292Z     return self.reconnect()
2018-01-07T10:02:04.859621492Z   File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 895, in reconnect
2018-01-07T10:02:04.859725496Z     sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
2018-01-07T10:02:04.859736996Z   File "/usr/local/lib/python2.7/socket.py", line 557, in create_connection
2018-01-07T10:02:04.859783397Z     for res in getaddrinfo(host, port, 0, SOCK_STREAM):
2018-01-07T10:02:04.859789398Z socket.gaierror: [Errno -2] Name or service not known
2018-01-07T10:02:09.114746167Z Traceback (most recent call last):
2018-01-07T10:02:09.114781969Z   File "nello.py", line 41, in <module>
2018-01-07T10:02:09.114786469Z     client.connect(os.environ['MQTT_BROKER'], port, 60)
2018-01-07T10:02:09.114789569Z   File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 768, in connect
2018-01-07T10:02:09.114795269Z     return self.reconnect()
2018-01-07T10:02:09.114798369Z   File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 895, in reconnect
2018-01-07T10:02:09.114904173Z     sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
2018-01-07T10:02:09.114917173Z   File "/usr/local/lib/python2.7/socket.py", line 557, in create_connection
2018-01-07T10:02:09.114956174Z     for res in getaddrinfo(host, port, 0, SOCK_STREAM):
2018-01-07T10:02:09.114988675Z socket.gaierror: [Errno -2] Name or service not known

any idea?

That looks like it can’t connect to your mqtt broker. Do you have one set up? Otherwise you can get one up by simply docker run --restart=always --name mosquitto -t -d -p 1883:1883 -p 9001:9001 eclipse-mosquitto. Then set MQTT_BROKER to the IP of your machine, localhost should also work.

Thx, I found the problem.
One small thing… something is wrong in this line:

Switch EntryBuzzer { mqtt=">[mybroker:home/nello:command:ON:OPEN a95a788a-e774-4561-8fc8-2225b3dccc21]" expire="5s,command=OFF" }

without

expire="5s,command=OFF"

it´s working.

Ok, found it :slight_smile:

Switch EntryBuzzer { mqtt=">[mybroker:home/nello:command:ON:OPEN a95a788a-e774-4561-8fc8-2225b3dccc21]" , expire="5s,command=OFF" }

Thx for the nello-integration

There is now also an API available for Nello.
https://nellopublicapi.docs.apiary.io/#

Hi,
I am also trying to use this binding but I’m not successful. The container is always restarting
(seems the underlying pynello has some problems with unicode characters).

Traceback (most recent call last):
  File "nello.py", line 43, in <module>
    client.loop_forever()
  File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1481, in loop_forever
    rc = self.loop(timeout, max_packets)
  File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1003, in loop
    rc = self.loop_read(max_packets)
  File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1284, in loop_read
    rc = self._packet_read()
  File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 1849, in _packet_read
    rc = self._packet_handle()
  File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 2311, in _packet_handle
    return self._handle_connack()
  File "/usr/local/lib/python2.7/site-packages/paho/mqtt/client.py", line 2372, in _handle_connack
    self.on_connect(self, self._userdata, flags_dict, result)
  File "nello.py", line 12, in on_connect
    data = { "type": "location", "location_id": location.location_id, "address": location.address }
  File "/usr/local/lib/python2.7/site-packages/pynello/nello.py", line 115, in address
    country)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xdf' in position 13: ordinal not in range(128)
Connected to MQTT with result code 0
{"location_id": "redacted-752b-4dea-9c6d-redactedfbb4", "type": "location", "address": "redactedStr 123a  12345 Entenhausen, Deutschland"}

Someone knows what to do?
Also are there any plans to implement the new API?

Sounds great.
Do you get a signal if someone rings the bell as well or is this just about the buzzer?

Hi =) I have a Nello here and would be interessted in a solution to see if someone rings and where I can buzz people in =). Did someone make A binding therefore? =)