GUIDE: Interfacing QLC+ to Homeseer (or other non-Websocket freindly apps)

This is a place for sharing with the community the results you achieved with QLC+, as a sort of use case collection.
You can share photos, videos, personal hardware/software projects, interesting HOWTO that might help other users to achieve great results.
Post Reply
frunk
Posts: 10
Joined: Fri Mar 17, 2017 12:55 pm
Real Name: Alex Clark

Hi all,

Just giving back to the community. I did struggle with this for a while - Homeseer like many similar tools does not have a Websocket interface.

I used MQTT and Node-Red to provide a very reliable interface. Since both of these are 2 minute installs on a Raspberry PI it is quite a useful solution and very flexible.

It is a great mix - Homeseer does the broad home integration stuff and it just "presses the buttons" on QLC+ to recall presets and lets it do the fancy stuff with the DMX or LED light strips.

If this is something that interests anyone I wrote up what I did on the HS forum: https://forums.homeseer.com/showthread.php?p=1293433

Alex
ninno
Posts: 3
Joined: Mon Feb 20, 2023 7:40 am
Real Name: Luigi

Hi Alex, great guide.
One question, do you think the opposite could also be done?

Let me explain.... From Qlc+ I enable a scenario or a dimmer and control the lights connected to a sonoff....
Or better yet a shelly that also has http api.

Thank you
RKtech
Posts: 2
Joined: Sun Feb 26, 2017 3:57 pm
Real Name: Rainer Koch

Hi,
if I had to controll things from QLC+ which have not a fitting interface I did this with a smal python (OSC-server) script with pythonosc https://github.com/attwad/python-osc. You can use the Simple Server example https://github.com/attwad/python-osc#simple-server. The only thing to know is the channel address and the mapping to OSC.
If you like to get values of the first and second QLC+ DMX channel in OSC Universe 5 you need the dispatcher configuration lines (OSC adress = "/<QLCpUniverse - 1>/dmx/<QLCpChannel - 1>")

Code: Select all

dispatcher.map("/4/dmx/0", dmx_handler, "U5C001")
dispatcher.map("/4/dmx/1", dmx_handler, "U5C002")
in the python script and a handler function which is called every time when in QLC+ the value changes and where you get a floating number from 0.0 to 1.0 based on the DMX value (0..100%).

Code: Select all

def dmx_handler(unused_addr, args, value):
  if args[0] == "U5C001":
    print("Universe 5 channel 1 is {0}".format(value))
    # Do watherver you like with the value
  if args[0] == "U5C002":
    print("Universe 5 channel 2 is {0}".format(value))
    # Do watherver you like with the value
    # ....
in the handler you can call the shally API or what ever you want
Post Reply