Xor

 
<<< Назад

Яндекс Лампочка в Yandex Devices - добавление сцен

Досадно, что в модуле не реализована такая фича лампочки- предложен вариант доработки модуля (до передачи пр)

Яндекс мне подарил (за 1 рубль) свою лампочку, я ее подключил в умный дом Яндекса, она стала видна в модуле МДМ YandexDevices.
Но там среди видимых свойств я не увидел возможности видеть/управлять сценами лампочки. А их там много и многие там мне нравятся - чтение, свеча, океан, ночь, романтика, тревога и т.д.
л1

так выглядит управление цветом/яркостью

л2

после предлагаемой правки могу управлять сценами и из МДМ
м2

а, с точки зрения модуля, ламочка видна так:
м1

правке подвергся только один файл модуля - .\modules\yadevices\yadevices.class.php
и в нём две функции:
sendValueToYandex
после блока, обрабатывающего devices.capabilities.range добавлен ещё аналогичный для devices.capabilities.color_setting


        } else if($command_type[0].'.'.$command_type[1].'.'.$command_type[2] == 'devices.capabilities.color_setting') {
            $mode = $command_type[3];

            $data = array('actions' => array(
                array('state' => array('instance' => $mode, 'value' => $value),
                    'type' => $command_type[0].'.'.$command_type[1].'.'.$command_type[2]
                )));

            $result = $this->apiRequest($url, 'POST', $data);
            return $result;
        }

вторая функция
refreshDevicesData
код приведён к виду:

                if (is_bool($capability['state']['value']) == true) {

                    if($capability['state']['value'] == true) {
                        $value = 1;
                    } else {
                        $value = 0;
                    }
                } else if($capability['state']['instance'] == 'color') {
                                 $value = $capability['state']['value']['id'];
                } else if($capability['state']['instance'] == 'scene') {  //добавлено
                                                $value = $capability['state']['value']['id'];  //добавлено
                } else {
                    if($capability['state']['value']) {
                        $value = $capability['state']['value'];
                    } else {
                        $value = '?';
                    }
                }

я ещё, грешным делом, поменял capabilitie везде в коде на capability (так же ниже обошёлся с propertie/property)). Во-первых, это короче на одну букву, во-вторых, это говорит, что я немного помню английский)

Вот тут ещё закомментил иф, без этого у меня странно работало - лезли ? в свойства. Но это не обязательно, просто докладываю:

                        //if($new_value!=$old_value) {

                            $req_skills['VALUE'] = $new_value;
                            $req_skills['UPDATED'] = date('Y-m-d H:i:s');
                            SQLUpdate('yadevices_capabilities', $req_skills);
                        //}

И чисто косметика, это уже в темплейтах - просто поправил надписи:

м3

Если это прокатит у других, можно пуллреквест Сергею отправить.

Обсуждение (2) (3)

Смотрите так же:
12.02.2024 Китайская панель в подрозетник с экраном 480*480
29.10.2023 MQTT в МДМ - способ обработки топика через метод
03.04.2023 Todoer: обмен данными с Яндекс календарём
31.03.2023 Todoer: календарь на год
30.03.2023 Todoer: анонс + программное создание задачи
08.05.2022 Глобальный поиск - добавление своих сущностей. Upd Внедрено
18.04.2021 Переезд на мастер спустя год
24.03.2021 Ещё о старте/остановке МДМ в Винде
18.02.2021 Модуль Todoer
06.01.2021 Для виндузятников - перенос бд на рам-диск
22.11.2020 Календарь-планировщик
01.08.2020 Irbis как терминал
18.05.2020 Китайская камера rtsp + vlc как перекодировщик для html
12.05.2020 Опыт интеграции МДМ с Я.Алисой ещё одним способом - без белого адреса, москита, ПУ.(дополнено)
07.05.2020 Поправим формат даты в Панели управления
11.04.2020 Баловство с шаблонами
26.03.2020 Простые правила - вариант модуля. ч. 2
25.03.2020 Простые правила - вариант модуля
20.12.2019 расширение средств работы с events updated
20.11.2019 По следам наших выступлений - сколько мы наэкономили?
04.11.2019 Группа как объект - экономим на коде - 2
26.10.2019 Прикручиваем Grafana к Мажордому
11.10.2019 Группа как объект - экономим на коде
25.09.2019 Если у вас нет телеги...
11.09.2019 Датчик присутствия из ип камеры
30.07.2019 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
24.06.2019 Форматированный отчет в телеграм - имитация таблицы
30.04.2019 Используем зомбо-ящик в Мажордомо
24.03.2019 О среднем в Мажордомо
31.10.2018 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений
16.09.2018 Перезагрузка Мажордомо в Win-системах

Домодедово, Россия

На форуме: xor