commit ec9a186b160e5a4f01b2c4e7cf3706b3662f747b Author: Christian Colglazier Date: Fri Aug 4 20:50:23 2023 -0400 Basic working DMX server diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27c7d2b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +settings.ini \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..0523f8a --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# AquaDMX + +A custom DMX server that integrates with Home Assistant. + +## Setup + +```sh +pip install -r requirements.txt +``` diff --git a/aquadmx.py b/aquadmx.py new file mode 100644 index 0000000..6880660 --- /dev/null +++ b/aquadmx.py @@ -0,0 +1,40 @@ +import configparser +import time +import os + +from stupidArtnet import StupidArtnetServer + +from homeassistant_api import Processing, Client +from homeassistant_api.processing import process_json + +def dmx_callback(data): + light.turn_on(entity_id='light.christian_s_bedroom_left_desk_lamp', + brightness=data[0], + transition=0, + rgb_color=[data[1], data[2], data[3]]) + light.turn_on(entity_id='light.christian_s_bedroom_lamp_right', + brightness=data[4], + transition=0, + rgb_color=[data[5], data[6], data[7]]) + +# Home Assistant +config = configparser.ConfigParser() +config.sections() +programPath = os.path.dirname(os.path.realpath(__file__)) +config.read('{}/settings.ini'.format(programPath)) +URL = 'https://{}/api'.format(config['HomeAssistant']['url']) +TOKEN = config['HomeAssistant']['token'] +client = Client(URL, TOKEN) +light = client.get_domain('light') + +# DMX +universe = 1 +server = StupidArtnetServer() +u1_listener = server.register_listener(universe, + callback_function=dmx_callback) + +# Start server +print('AquaDMX is listening') +while True: + time.sleep(1) + pass diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..417f734 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +homeassistant_api +stupidartnet