Страница 6 из 9

Re: управление RGB лентами

Добавлено: Чт апр 05, 2018 11:29 am
Kutuzoff
directman66 спасибо, на сцены получилось разместить. Только почему то встало вот так:

Re: управление RGB лентами

Добавлено: Чт апр 05, 2018 2:51 pm
directman66
Видимо нужно поиграть с со значениями left top скрипте. По моему кнопка еще не дописана (нет подписки OnCLick). Честно не помню уже, пока проверить нет возможности.

Также для таких элементов предлагаю проголосовать за маркет элементов сцены. Ссылка для голосования https://connect.smartliving.ru/tasks/1.html

зыж А в чем рендер рисовали?

Re: управление RGB лентами

Добавлено: Чт апр 05, 2018 6:14 pm
Kutuzoff
А в чем рендер рисовали?
Если мне не изменяет память Sweet Home 3D называлась программа

Re: управление RGB лентами

Добавлено: Пт апр 13, 2018 1:38 pm
directman66
Vovix писал(а): Ср апр 05, 2017 11:32 pm заказал такой-же модуль!
придет - буду разбираться...
Установили? Будем код переносить с python на php? Нет никакого смысла шить альтернативные прошивки. При наличии готового протокола управления.

Анализируя код https://connect.smartliving.ru/profile/1502/blog61.html

1) сканируем сеть на наличие устройств
SPOILERSPOILER_SHOW

Код: Выделить всё

 
 $ip = "255.255.255.255";
$port = 48899;

$str  = 'HF-A11ASSISTHREAD';


$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); 
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1); 
socket_sendto($sock, $str, strlen($str), 0, $ip, $port);

socket_recvfrom($sock, $buf, 20, 0, $ip, $port);
echo "Messagge : < $buf > , $ip : $port <br>";

socket_close($sock);
пришел ответ
< 192.168.1.82,A020A61 > , 192.168.1.82 : 48899

2) Установить кастомный свет:
SPOILERSPOILER_SHOW
из кода на python

Код: Выделить всё

def setCustomPattern(self, rgb_list, speed, transition_type):

        # truncate if more than 16
        if len(rgb_list) > 16:
            print "too many colors, truncating list"
            del rgb_list[16:]

        # quit if too few
        if len(rgb_list) == 0:
            print "no colors, aborting"
            return

        msg = bytearray()

        first_color = True
        for rgb in rgb_list:
            if first_color:
                lead_byte = 0x51
                first_color = False
            else:
                lead_byte = 0
            r,g,b = rgb
            msg.extend(bytearray([lead_byte, r,g,b]))

        # pad out empty slots
        if len(rgb_list) != 16:
            for i in range(16-len(rgb_list)):
                msg.extend(bytearray([0, 1, 2, 3]))

        msg.append(0x00)
        msg.append(utils.speedToDelay(speed))

        if transition_type =="gradual":
            msg.append(0x3a)
        elif transition_type =="jump":
            msg.append(0x3b)
        elif transition_type =="strobe":
            msg.append(0x3c)
        else:
            #unknown transition string: using 'gradual'
            msg.append(0x3a)
        msg.append(0xff)
        msg.append(0x0f)

        self.__write(msg)    

    def __writeRaw(self, bytes):
        self.socket.send(bytes)

    def __write(self, bytes):
        # calculate checksum of byte array and add to end
        csum = sum(bytes) & 0xFF
        bytes.append(csum)
        #print "-------------",utils.dump_bytes(bytes)
        self.__writeRaw(bytes)
        #time.sleep(.4)        
Начало положено.

Re: управление RGB лентами

Добавлено: Пт апр 13, 2018 3:15 pm
directman66
опа, протокол то очень похож на mi-light https://majordomo.smartliving.ru/forum/ ... EAD#p49056

Re: управление RGB лентами

Добавлено: Вс апр 15, 2018 3:31 pm
ebramariys
Доброго времени ссуток :) Покопался,но так и не смог понять,как реализовать данное решение под вариант сервера Мажорика на Windows.Так же не совсем понятны ip-адреса в коде,где,чьи-192.168.1.100 в файле питона чей и 192.168.1.16- в методе onchange? И как тогда правильно прописать строку вызова для винды,вот эту - $cmd="python /home/pi/flux_led.py"; ? Извините,если вопросы тупые :lol:

Re: управление RGB лентами

Добавлено: Пн апр 16, 2018 12:04 pm
directman66
Все адреса в коде - адреса контроллера. Вообще я его запрашиваю из переменной, которая заполняется линукс командой arp.

Под windows python код должен работать аналогично. Проверьте, чтобы python был доступен из любого места и попробуйте вызвать скрипт из командной строки или far.

зыж Плагин mi-light не подошел. Видимо на его основе можно будет сделать аналогичный для этого контроллера. Стоит в далеких планах.

Re: управление RGB лентами

Добавлено: Вт апр 17, 2018 8:50 am
ebramariys
directman66 писал(а): Пн апр 16, 2018 12:04 pm Все адреса в коде - адреса контроллера. Вообще я его запрашиваю из переменной, которая заполняется линукс командой arp.

Под windows python код должен работать аналогично. Проверьте, чтобы python был доступен из любого места и попробуйте вызвать скрипт из командной строки или far.

зыж Плагин mi-light не подошел. Видимо на его основе можно будет сделать аналогичный для этого контроллера. Стоит в далеких планах.
Извините,просто в питоне совсем ни гу-гу.На апельсине все заработало. На винде
C:\WINDOWS\system32>python /_majordomo/htdocs/flux_led.py 192.168.1.115 -c 18,52,221
File "/_majordomo/htdocs/flux_led.py", line 118
print ''.join('{:02x} '.format(x) for x in bytearray(bytes))
^
SyntaxError: invalid syntax

Re: управление RGB лентами

Добавлено: Сб апр 21, 2018 3:57 pm
directman66
для винды команду print можно и закоментировать )

Re: управление RGB лентами

Добавлено: Сб апр 21, 2018 11:54 pm
ebramariys
directman66 писал(а): Сб апр 21, 2018 3:57 pm для винды команду print можно и закоментировать )
Попробовал.Начало выдавать ошибки на каждое print в файле и если только print комментировать-на все ближайшие строки кода дает ошибку. Дошел до 1189 строки и бросил,ибо получается вырезанным куча кода. :cry: