Dobiss NXT support

Hi all,

My first post here, to let you know I’m working towards integrating the Dobiss NXT (https://www.dobiss.com/en) recently published developer API into home assistant, and wanted to check if someone else is working on this as well.

I’ve already created a python module that allows connecting to my dobiss NXT server, discover all outputs, sensors, scenario’s, etc, and allows changing outputs. It also allows you to register for status updates through their websockets api. This is available here: https://pypi.org/project/pydobiss/. Feedback is of course very welcome…

I’m now working towards the integration in home assistant. As it’s my first development work in home assistant, it can take a bit of time though :slight_smile:

Hope this can be useful for others…

Regards,
Kester

1 Like

I’ve created a home assistant integration now for dobiss NXT: https://github.com/kesteraernoudt/core. It’s in the homeassistant/components/dobiss folder.

I’ve implemented support for lights (dimmable and normal), switches, automations (showing up as switches with a different icon), flags (also switches with diferent icon), scenarios (switches with differerent icon), temperature and light sensors and binary inputs.

I’ve been testing this for a while now, and seems to work stable enough to share.

If you want to give this a try, add the integration in the web interface:
image
Then provide your API secret (don’t forget to enable this in the dobiss NXT web interface first), and your hostname or ip address:
image

Once this is done, you should see your dobiss entities appear on your frontend:

One thing I’d like to do is to automatically create groups, reflecting the groups of the dobiss web interface. The data is already present (and I’ve added it in the device_info replay for now), but haven’t figured out how groups can be created programmatically.

I’d love to hear your feedback and suggestions.

Regards,
Kester

2 Likes

Is it also possible to make it available for older systems, or is the API complete different?

this is the API for dobiss NXT: http://support.dobiss.com/books/nl-dobiss-nxt/page/developer-api

Not sure if the older dobiss systems have such. If so, I could look into it - which system do you have?

I have the older evolution SX, i use the older API, based on TCP commands, some other guys on community forums have the pro models, it’s basically the same api , only the hex values are different…
We also now started to capture the canbus directly, some people like me are now using esphome with an mcp2515 to capture and send real time traffic on the dobiss canbus

The underlying system is still using a CAN bus to communicate between the modules, so your older style might still work (or at least would work with some changes, but the principle is still the same). The other way around I depends really whether dobiss will release a similar API for the older systems…

I guess the advantage of using the official API is that I can automatically discover all items (lights, switches, sensors, etc) in my system, with the names and all properties, and use these to automatically populate home assistant.
Also, the API supports push notifications, so there is no pulling needed. I leveraged that and used the asynchronous api in home assistant together with callbacks for any state changes, so no pulling is needed at all. Also, doing this, the standard dobiss web interface is still available and usable, both are happily running and being used at my place…

Yeah, ,we are stuck with polling, it works though, I don’t mind that the states are updated a few sec later…

Would be great if you could use our older API, to maken an custom …
I think the api is different though, we are sending netcat strings to send and receive commands

Is there a python lib implementing the older api? I can have a look at that. All of the dobiss communication for my module is happening in the pydobiss module. So if I could swap out that module for the other… Although the polling will make a big difference of course.
Is there a way to ‘discover’ stuff using your way of working, or did you have to hard code all devices?

Gonna post the api soon, no python lib, we just use shell commands from HA

Hoi @kester
Super dat je een integratie voor de NXT hebt gemaakt!
Ik heb nog een Evolution Pro :face_with_raised_eyebrow:

Ik veronderstel dat je realtime je status updates binnenkrijgt in HA via push en dat je niet meer aan polling hoeft te doen?

Weet een NXT systeem trouwens de status van je rolluik? Eventueel adhv die flags? Flags zitten er bij ons volgens mij niet in.
Bij de oudere modellen heb je gewoon een relais open en een relais sluiten. In HA hang je die dan manueel aan een cover template.
Heb jij de integratie opgezet dat hij meteen de rolluiken zelf als cover in HA zet? Of breng je de 2 relais open en sluiten binnen?

Hey @tvds,

Via de dobiss NXT API krijg ik inderdaad status updates in realtime binnen - geen polling nodig.
Ivm die rolluiken: dit is nieuw in de dobiss NXT 2.30 update. Het systeem houdt zelf de status bij. Ik denk niet dat dit zichtbaar is via de API trouwens, dus enkel te gebruiken via drukknoppen gekoppelt aan dobiss zelf.

Ik heb de rolluiken/screens nog niet als cover in HA gezet neen, momenteel idd gewoon 2 switches. Ik heb er wel al naar gekeken, en de moeilijkheid momenteel ligt hem in het feit dat via de discovery API, je niet echt info krijgt over zulks. Maar ik bekijk het nog es meer in detail of ik toch niet iets kan puzzelen.

Ik heb wat zitten rommelen, en heb een implementatie van covers kunnen toevoegen. Dit ziet er zo uit:

.

Ziet er goed uit !
Ook handig dat je flags en scenes gewoon kan integreren :+1:

@kester
Ohh lees ik nu goed?
Dobiss NXT support ?
Ik ken iemand die ZEER blij zal zijn.
Gewoon de dobiss integratie toevoegen? API secret en host en gaan?
ALLE entiteiten komen binnen HA en je kan beginnen?

Wauw, hoe komt het dat we dit niet gezien hebben in de releases… ik zat hierop te wachten voor mn schoonbroer, erg mooi dit !

Hoe krijg ik die integratie te zien? Dit toevoegen? https://github.com/kesteraernoudt/core

Omdat dit een custom component is, nog geen officiële release :slight_smile:

What do i add now as repository?
https://github.com/kesteraernoudt/core or https://github.com/kesteraernoudt/core/tree/dev/homeassistant/components/dobiss

and under hacs or under supervisor > addon

When i add it to hacs > integration it says “Repostitory structure for dev is not compliant”

No, you need to load it as custom component, I don’t think you need hacs at all

Can you tell me how?
aha
Home Assistant custom components work also on non-hassio HA. You create a folder named custom_components under /config, and install the custom components there

i added it in custom_components and rebooted but still not there

@skank ik heb dit nog niet via hacs beschikbaar gesteld omdat er tot hiertoe nog niemand interesse getoond had om dit te proberen. Wat ik zelf doe is het inderdaad manueel in je custom components folder zetten. Dit is het scriptje dat ik daarvoor gebruik - waarschijnlijk kan je dit ook zo gebruiken:

echo "Downloading Dobiss"
curl -LO "https://github.com/kesteraernoudt/core/archive/dev.zip"

if [ -d "$PWD/dobiss" ]; then
    echo "Dobiss directory already exists, cleaning up"
    rm -R dobiss
fi

echo "Creating dobiss directory"
mkdir dobiss

echo "Unpacking dobiss"
unzip dev.zip -d dobiss_temp
mv dobiss_temp/core-dev/homeassistant/components/dobiss .

echo "Removing dobiss zip file"
rm -rf dev.zip dobiss_temp
echo "Installation completed"
echo
echo "Remember to restart Home Assistant before you configure it"

Laat maar weten als je problemen hebt met de installatie of configuratie!