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

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Kutuzoff
Сообщения: 14
Зарегистрирован: Пт ноя 20, 2015 1:43 pm
Благодарил (а): 3 раза
Поблагодарили: 0

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

Сообщение Kutuzoff » Чт апр 05, 2018 11:29 am

directman66 спасибо, на сцены получилось разместить. Только почему то встало вот так:
Вложения
Безымянный.png
Безымянный.png (927.32 КБ) 4567 просмотров
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Чт апр 05, 2018 2:51 pm

Видимо нужно поиграть с со значениями left top скрипте. По моему кнопка еще не дописана (нет подписки OnCLick). Честно не помню уже, пока проверить нет возможности.

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

зыж А в чем рендер рисовали?
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
Kutuzoff
Сообщения: 14
Зарегистрирован: Пт ноя 20, 2015 1:43 pm
Благодарил (а): 3 раза
Поблагодарили: 0

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

Сообщение Kutuzoff » Чт апр 05, 2018 6:14 pm

А в чем рендер рисовали?
Если мне не изменяет память Sweet Home 3D называлась программа
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Пт апр 13, 2018 1:38 pm

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

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

1) сканируем сеть на наличие устройств
СпойлерПоказать

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

 
 $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) Установить кастомный свет:
СпойлерПоказать
из кода на 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)        
Начало положено.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Пт апр 13, 2018 3:15 pm

опа, протокол то очень похож на mi-light https://majordomo.smartliving.ru/forum/ ... EAD#p49056
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
ebramariys
Сообщения: 34
Зарегистрирован: Вс апр 15, 2018 1:26 pm
Откуда: Харьков
Благодарил (а): 18 раз
Поблагодарили: 3 раза

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

Сообщение ebramariys » Вс апр 15, 2018 3:31 pm

Доброго времени ссуток :) Покопался,но так и не смог понять,как реализовать данное решение под вариант сервера Мажорика на Windows.Так же не совсем понятны ip-адреса в коде,где,чьи-192.168.1.100 в файле питона чей и 192.168.1.16- в методе onchange? И как тогда правильно прописать строку вызова для винды,вот эту - $cmd="python /home/pi/flux_led.py"; ? Извините,если вопросы тупые :lol:
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Пн апр 16, 2018 12:04 pm

Все адреса в коде - адреса контроллера. Вообще я его запрашиваю из переменной, которая заполняется линукс командой arp.

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

зыж Плагин mi-light не подошел. Видимо на его основе можно будет сделать аналогичный для этого контроллера. Стоит в далеких планах.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
ebramariys
Сообщения: 34
Зарегистрирован: Вс апр 15, 2018 1:26 pm
Откуда: Харьков
Благодарил (а): 18 раз
Поблагодарили: 3 раза

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

Сообщение ebramariys » Вт апр 17, 2018 8:50 am

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
directman66
Сообщения: 2801
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 380 раз
Поблагодарили: 693 раза
Контактная информация:

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

Сообщение directman66 » Сб апр 21, 2018 3:57 pm

для винды команду print можно и закоментировать )
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
ebramariys
Сообщения: 34
Зарегистрирован: Вс апр 15, 2018 1:26 pm
Откуда: Харьков
Благодарил (а): 18 раз
Поблагодарили: 3 раза

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

Сообщение ebramariys » Сб апр 21, 2018 11:54 pm

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