How should I approach controlling a DALI lighting system from Helvar from Home Assistant?

Hi all,

I’m moving into a new house in a couple of months, and the house comes equipped with a DALI lighting system from Helvar called Digidim. If I remember correctly, it comes with at least two (or even three?) Digidim 910 routers to be able to support all light sources + a couple of PIRs. The routers will be connected to a local network switch that allows you to communicate with them over the local network.

I’d like to integrate this system in Home Assistant, i.e. read states (which lights are on?), listen to updates (light was dimmed), and send commands (turn off light). My challenge? I don’t have access to the system / the house yet, and there seems to very few folks here running DALI systems together with HA so there’s not much I can read up on in advance… :confused:

I did however find a brief mention of support for DALI gateways while scanning the KNX light integration in HA. Is anyone using that? I assume I’d need multiple KNX-DALI gateways since each gateway only supports 64 DALI devices… which seems like a bit of a hassle, but might be worth it if it “just works”.

In a better/perfect world, I could see my Helvar system communicating with HA over e.g. MQTT. This seems to be possible by purchasing a couple of DALI-MQTT gateways, but again - it feels a bit sad that I’d need extra equipment for that.

I also found @dgomes DALI <-> MQTT bridge, but again: that seems to require an additional USB device hooked up to the DALI bus. The bridge itself uses python-dali internally, which might be my last resort here.

Again: I do have the DALI routers from Helvar connected to the local network, so I assume (which I maybe shouldn’t, given that I can’t find any information on Helvar’s homepage) that I could communicate with the DALI lights/PIRs over TCP/IP… somehow :slight_smile:

At this point I’m somewhat confused, and would be eternally grateful for advice from folks who’s been up for similar tasks - please hit me with your best tips and tricks!

Before I forget it, I realise that I didn’t mention that HelvarNet exists - a TCP/IP protocol which allows third party devices (e.g. HA) to query and control a 905/910/920 router systems and perform some basic system configuration. Wrapping that to expose the lights and PIRs (for all routers) to MQTT would likely be the most clean setup. Anyone tried something like that?

The mention of Dali gateways in the Knx integration documentation refers to Knx-Dali-Gateways. To be able to use this you would need a functional Knx bus - Power supply, Ip-Gateway, cabling, etc. This is probably overkill (and just adds an abstraction layer) if you don’t want to use other Knx components.

Regarding the 64 device limit: I think this is some kind of Limitation of the Dali bus, but I could be totally wrong here as I have never used Dali.
However how many Dali devices/addresses does your house use? (1 per light group and 1 per PIR)

That is the way to go, I advise you to write a custom_component that speaks the HelvarNet protocol (following the specification you linked). By all means just forget that your light system is DALI, as the HelvarNet protocol is not DALI.

Yes, it does sound like overkill… and I’d love to avoid additional hardware. I think I’ll go down the HelvarNet route as discussed below.

Agreed - thanks for the push! Might expose it through mqtt to have a more generic implementation that could be used for other things than HA… time will tell.

2 Likes

Have you made any new progress on your project? I don’t know what kind of USB device to use

As for progress: no, haven’t moved yet so don’t have access to the system.
As for the USB part: Not sure I understand what you mean? The Helvar router(s) exist on the local network, so any computer/system that can talk TCP/UDP should suffice. My naïve approach would be to set up a Raspberry Pi on the local network that handles communication between the Helvar system and HA.

I’m very interested in the Helvarnet integration. Have you moved yet?

Actually, someone has made an integration with ELL-i, might be of use to create something for HA

I have moved, but haven’t had time for this yet. Still on my radar though!

I wrote a helvarnet binding for openhab:

It’s working well for me at home - but I’ve yet to polish it sufficiently for release - no docs.

You might find some of the parsing code helpful. Save some typing at least.

I may switch over to home assistant at some point in the future - at which point I’ll port this work.

Tom

@tom_tom: Cool - thanks for the pointer. Think I stumbled upon it when I searched GitHub for existing integrations :slight_smile:

I’ve got a super simple/scrappy Python app going that lets me interact with the Helvar system from the command line (listening for messages, as well as sending messages myself), but I stumbled on something that I wanted to explore further before diving deeper. It seems like if you’ve got multiple Helvar routers, you’ll need to initiate a TCP connection to each router to receive updates for all groups/devices in the system - connecting to a single router will only give you updates for any devices/groups that router handles.

I’ve reached out to Helvar to try to understand if there’s a better way to subscribe to “all” updates in the system. They seem to recommend UDP for HelvarNet in their own material, but I haven’t been able to get any updates when I use UDP - neither when doing unicast to one router, or when leveraging the multicast address.

Regardless: would be cool to at least explore the idea of sharing notes / codes / material. This might not be the best forum for it - open to any ideas you might have!

@usrlocal - I’ve not played with multi router setups - but was assuming that I’d need to initiate (and maintain) a TCP connection to each router. Not tested UDP. Might be something that needs to be enabled on the router itself?

Happy to share pointers - the code is up, and despite being Java it’s just about followable. I’d rather keep the conversation public so others can benefit. Git hub issues on the repo?