Пример #1
0
def set_light_position(tunnel, x, y, color):
    addresses = []
    print(range(x + constants.RADIUS, x - constants.RADIUS))

    for j in range(0, len(constants.LED_POSITION)):
        if constants.LED_POSITION[j][0] <= x + constants.RADIUS and (
                constants.LED_POSITION[j][0] >= x - constants.RADIUS):
            if y + constants.RADIUS >= constants.LED_POSITION[j][
                    1] >= y - constants.RADIUS:
                print(constants.LED_POSITION[j][2])
                for i in range(0, len(constants.LIGHT_LOOKUP_TABLE)):
                    if constants.LIGHT_LOOKUP_TABLE[i][
                            0] == constants.LED_POSITION[j][2]:
                        print(constants.LIGHT_LOOKUP_TABLE[i][1])
                        if constants.LIGHT_LOOKUP_TABLE[i][2] == 1:
                            if set_led(
                                    tunnel,
                                    toknx(constants.LIGHT_LOOKUP_TABLE[i][1]),
                                    color[3]):
                                return 1
                        elif constants.LIGHT_LOOKUP_TABLE[i][2] == 4:
                            if set_rgb(
                                    tunnel,
                                    toknx(constants.LIGHT_LOOKUP_TABLE[i][1]),
                                    color):
                                return 1
    return 0
Пример #2
0
def flic_test():
    light_info_deveui = file_WR.RW_light_info_read()
    sensor_id = 'A81758FFFE030461'
    status = light_info_deveui[sensor_id]["flic_status"]
    if status == 1:
        addresses = [['14/2/41', 1, 0], ['14/2/46', 1, 0], ['14/3/81', 4, 0],
                     ['14/3/101', 4, 0], ['14/3/121', 4, 190],
                     ['14/3/141', 4, 190], ['14/3/161', 4, 230],
                     ['14/3/181', 4, 230], ['14/3/201', 4, 230],
                     ['14/3/221', 4, 230]]
        for add in addresses:
            if add[1] == 1:
                if sdl_knx.set_led(tunnel, toknx(add[0]), add[2]):
                    print('1')
                    return 1
            else:
                if sdl_knx.set_rgb(tunnel, toknx(add[0]), [0, 0, 0, add[2]]):
                    print('1')
                    return 1
        file_WR.RW_light_info_update('presentation', 'flic_status', 0)
        return "All lights"
    else:
        zone_name = "presentation"
        color = [0, 0, 0, 253]
        file_WR.RW_light_info_update('presentation', 'flic_status', 1)
        if sdl_knx.set_light_zone(tunnel, zone_name, color):
            restart()
            return "Unable to write to the KNX bus"
        else:
            return "All lights were set successfully"
Пример #3
0
def set_light_zone(tunnel, zone_name, color):
    addresses = []
    if len(zone_name.split('_')) == 3:
        name0 = zone_name.split('_')[0].upper()
        name1 = zone_name.split('_')[1].upper()
        name2 = zone_name.split('_')[2].upper()

        i = 0
        for x in range(0, len(constants.LIGHT_LOOKUP_TABLE)):
            if constants.LIGHT_LOOKUP_TABLE[x][0].split('_')[0] == name0:
                if constants.LIGHT_LOOKUP_TABLE[x][0].split('_')[1] == name1:
                    if constants.LIGHT_LOOKUP_TABLE[x][0].split(
                            '_')[2] == name2:
                        addresses.append([
                            constants.LIGHT_LOOKUP_TABLE[x][1],
                            constants.LIGHT_LOOKUP_TABLE[x][2]
                        ])
                        i = i + 1

    elif len(zone_name.split('_')) == 2:
        name0 = zone_name.split('_')[0].upper()
        name1 = zone_name.split('_')[1].upper()

        i = 0
        for x in range(0, len(constants.LIGHT_LOOKUP_TABLE)):
            if constants.LIGHT_LOOKUP_TABLE[x][0].split('_')[0] == name0:
                if constants.LIGHT_LOOKUP_TABLE[x][0].split('_')[1] == name1:
                    addresses.append([
                        constants.LIGHT_LOOKUP_TABLE[x][1],
                        constants.LIGHT_LOOKUP_TABLE[x][2]
                    ])
                    i = i + 1

    elif len(zone_name.split('_')) == 1:
        name0 = zone_name.split('_')[0].upper()

        i = 0
        for x in range(0, len(constants.LIGHT_LOOKUP_TABLE)):
            if constants.LIGHT_LOOKUP_TABLE[x][0].split('_')[0] == name0:
                addresses.append([
                    constants.LIGHT_LOOKUP_TABLE[x][1],
                    constants.LIGHT_LOOKUP_TABLE[x][2]
                ])
                i = i + 1

    for x in range(0, len(addresses)):
        print(addresses[x][0])
        if addresses[x][1] == 1:
            if set_led(tunnel, toknx(addresses[x][0]), color[3]):
                print('1')
                return 1
        elif addresses[x][1] == 4:
            if set_rgb(tunnel, toknx(addresses[x][0]), color):
                print('1')
                return 1
    file_WR.RW_light_info_update(zone_name, "brightness_level", color[3])
    return 0
Пример #4
0
def on_message(client, userdata, msg):
    #print(msg.topic+" "+str(msg.payload))
    rcv_euid = str(msg.topic).split('/')[4]
    if rcv_euid in [row[0] for row in constants.DSL_MOTION_SENSORS]:
        rcv_euid_index = [row[0] for row in constants.DSL_MOTION_SENSORS
                          ].index(rcv_euid)
        print("SDL sensor motion detected." + " Location: " +
              constants.DSL_MOTION_SENSORS[rcv_euid_index][1])
        if constants.DSL_MOTION_SENSORS[rcv_euid_index][1] is 'Wiki_1':
            print("Switching on lights Wiki 1")
            sdl_knx.setled(tunnel, toknx(constants.WIKIHOUSE_1), 255)
        if constants.DSL_MOTION_SENSORS[rcv_euid_index][1] is 'Wiki_2':
            print("Switching on lights Wiki 2")
            sdl_knx.setled(tunnel, toknx(constants.WIKIHOUSE_2), 255)
Пример #5
0
from flask import Flask
from knxip.ip import KNXIPTunnel
from random import randint
from knxip.core import parse_group_address as toknx
import time
import threading
import src.constants as constants
import src.file_WR as file_WR

# All SDL constants
rgb_first = toknx(constants.RGB_FIRST_KNX)

led_first = toknx(constants.LED_FIRST_KNX)

save_var_rgb = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],
                [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]


class Animation(threading.Thread):
    def __init__(self, tunnel):
        threading.Thread.__init__(self)
        self.tunnel = tunnel
        self.method_name = 'stop'
        self.exit_method = 'all_on'
        print('anim init')

    def run(self):
        """Code that execute during the thread
        Change the "method_name" to a valid animation name before starting the thread,
        if not the thread will stop immediately.