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]]) def configList(key): return [i.strip(' ') for i in config['Lights'][key].split(',')] def configOptionalList(config, key): if 'dimmer' in config: return configList('dimmer') else: return [] # Configs config = configparser.ConfigParser() config.sections() programPath = os.path.dirname(os.path.realpath(__file__)) config.read('{}/settings.ini'.format(programPath)) # Home Assistant URL = '{}/api'.format(config['HomeAssistant']['url']) TOKEN = config['HomeAssistant']['token'] client = Client(URL, TOKEN) light = client.get_domain('light') # Lights configOptionalList(config['Lights'], 'dimmer') configOptionalList(config['Lights'], 'rgb') # 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