Hi Just asking if anyone has any information using Art-Net DMX IP.
We are looking to use the C-Bus NAC, (Similar to LM)
Art-Net is a protocol to control DMX lighting over IP Networks.
Any example on how to implement would be grateful, say like send channel 1 to 255 or channel 2 to 125 on Module IP 192.168.2.43
11.05.2018, 13:20 (This post was last modified: 11.05.2018, 14:16 by sjfp.)
WOW
Thank you, will give it go now.
Sorry for my ignorance, new to LUA, could you explain how to deploy this.
I have a group 0/56/0 to control channel 1 on DMX at 192.168.2.43
Where do I put the script, I assume it goes in the User Library and is then called from an event based script.
Where do I put the DMX Channel No, IP Address, and Port Number.
Here's a simplified function. Change universe number as needed, sequence and physical parameters can probably be zero. Value is the output channel value ranging from 0 to 255.
14.05.2018, 10:26 (This post was last modified: 14.05.2018, 10:45 by sjfp.)
(14.05.2018, 06:28)admin Wrote: Here's a simplified function. Change universe number as needed, sequence and physical parameters can probably be zero. Value is the output channel value ranging from 0 to 255.
functionartnet_dmx(ip, sequence, physical, universe, data)
localcmd = string.char(
-- null byte0,
-- ARTNET_DMX opcope0, 0x50,
-- protocol version 140, 14,
-- sequence number is used to ensure that ArtDmx packets are used in the correct orderbit.band(sequence, 0xFF),
-- physical input port from which DMX512 data was input.bit.band(physical, 0xFF),
-- 15 bit Port-Address (universe)bit.band(universe, 0xFF), bit.rshift(universe, 8),
-- Lengthbit.rshift(#data, 8), bit.band(#data, 0xFF)
)
localreq = "Art-Net" .. cmd .. string.char(unpack(data))
localsck = require("socket").udp()
sck:sendto(req, ip, 0x1936)
sck:close()
endip = '192.168.2.43'universe = 123value = 255artnet_dmx(ip, 0, 0, universe, { value })
Many thanks for the details. Works great. What do I need to change to control each DMX 512 Channels
(14.05.2018, 10:26)sjfp Wrote:
(14.05.2018, 06:28)admin Wrote: Here's a simplified function. Change universe number as needed, sequence and physical parameters can probably be zero. Value is the output channel value ranging from 0 to 255.
functionartnet_dmx(ip, sequence, physical, universe, data)
localcmd = string.char(
-- null byte0,
-- ARTNET_DMX opcope0, 0x50,
-- protocol version 140, 14,
-- sequence number is used to ensure that ArtDmx packets are used in the correct orderbit.band(sequence, 0xFF),
-- physical input port from which DMX512 data was input.bit.band(physical, 0xFF),
-- 15 bit Port-Address (universe)bit.band(universe, 0xFF), bit.rshift(universe, 8),
-- Lengthbit.rshift(#data, 8), bit.band(#data, 0xFF)
)
localreq = "Art-Net" .. cmd .. string.char(unpack(data))
localsck = require("socket").udp()
sck:sendto(req, ip, 0x1936)
sck:close()
endip = '192.168.2.43'universe = 123value = 255artnet_dmx(ip, 0, 0, universe, { value })
Many thanks for the details. Works great. What do I need to change to control each DMX 512 Channels
Found how. {value1,value2,value3) 1= Ch1 2=Ch2 3=Ch3 etc etc.
But how can I can change channels independently without affecting other channels that may of been set
You can only write full dmx-512 value array starting with the first address. So for several channels you need a script attached to all controlling groups which will write all required values.
@Erwin, it's possible to implement a simple server which only handles DMX commands. Do you have real use cases for that?
14.05.2018, 19:56 (This post was last modified: 14.05.2018, 20:03 by Erwin van der Zwart.)
Hi Admin,
We get the request for Art-Net a few times a year, often for theather and cinema projects.
In most cases there is a main DMX control in the area where they want to control the KNX lights from there main system. In theater it’s mostly the stage cleaning and blue lights and backstage area ligths and often screens for windows between public area and stage. They want to control it often from the control room’s dmx panels.
At this moment we refer to dedicated bidirectional DMX IP gateways to do this task but if we can do it by scripting i would like to run some tests to see how it performs.
PS: All new Dolby Atmos theathers in the NL are controlled by Wiser for KNX at this moment and they control quite some DMX loops for user experience in coridors (:
Here's a rudimentary server example (resident script, sleep time = 0). Only DMX command is supported, sequences are not supported, universe number is ignored.
(14.05.2018, 11:02)admin Wrote: You can only write full dmx-512 value array starting with the first address. So for several channels you need a script attached to all controlling groups which will write all required values.
@Erwin, it's possible to implement a simple server which only handles DMX commands. Do you have real use cases for that?
Thanks for the advise.
I have been looking on how to write that script you mentioned, I have it working in a fashion, but would appreciate to some advise on the best way to achieve logging all the groups.
I have started off by creating a table to store each groups current val, but wondering how to extract all the data that's contained in the table.
I have it working by bring back individual stored values, but cant find the correct way to bring back all stored in a format like
{200,50,0,255,127,100,255,0,0,0,255,0} etc. etc.
If you have many groups to control you should use a resident script which monitors all bus traffic and sends update once any group changes. I'll provide an example later on.
(22.05.2018, 06:00)admin Wrote: If you have many groups to control you should use a resident script which monitors all bus traffic and sends update once any group changes. I'll provide an example later on.
Thank you. Looking forward to seeing your example. Really appreciate your help.
Thank you for your assistance. Will have a go when i get back to the office tomorrow evening.
Did you get this solution to work. I have a similar requirement. I have a client with a DMX slider controller that they want to control Cbus controlled lights with. Where did you purchase a art-net interface from?
This script sends Art-Net commands but you need a different script which receives Art-Net commands. This is doable but first you need a DMX > Art-Net converter. I think something like this should work: https://dmxking.com/artnetsacn/edmx1-pro
(03.02.2020, 11:41)admin Wrote: This script sends Art-Net commands but you need a different script which receives Art-Net commands. This is doable but first you need a DMX > Art-Net converter. I think something like this should work: https://dmxking.com/artnetsacn/edmx1-pro
thanks for the info I will get intouch with them, how hard is it to write an art-net receiver ?
An example of Art-Net receiver. It ignores sequence and universe numbers which are not needed for general use. Edit mapping table to select which groups addresses are mapped to DMX channel numbers starting from 1. Output value for each channel is 1 byte (0..255).
(03.02.2020, 12:51)admin Wrote: An example of Art-Net receiver. It ignores sequence and universe numbers which are not needed for general use. Edit mapping table to select which groups addresses are mapped to DMX channel numbers starting from 1. Output value for each channel is 1 byte (0..255).
Thanks for the info, I’ve tried testing it with a couple of software controller, as I’m not on site, but the wiser only shows a connection to the controller (eg when I log server it shows art-net) but the data is alway nil.
can I put the art-net transmit on the wiser and test that way?