Xor

 
<<< Back

Яндекс Лампочка в 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

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

Discuss (2) (3)

See also:
2024-02-12 Китайская панель в подрозетник с экраном 480*480
2023-10-29 MQTT в МДМ - способ обработки топика через метод
2023-04-03 Todoer: обмен данными с Яндекс календарём
2023-03-31 Todoer: календарь на год
2023-03-30 Todoer: анонс + программное создание задачи
2022-05-08 Глобальный поиск - добавление своих сущностей. Upd Внедрено
2021-04-18 Переезд на мастер спустя год
2021-03-24 Ещё о старте/остановке МДМ в Винде
2021-02-18 Модуль Todoer
2021-01-06 Для виндузятников - перенос бд на рам-диск
2020-11-22 Календарь-планировщик
2020-08-01 Irbis как терминал
2020-05-18 Китайская камера rtsp + vlc как перекодировщик для html
2020-05-12 Опыт интеграции МДМ с Я.Алисой ещё одним способом - без белого адреса, москита, ПУ.(дополнено)
2020-05-07 Поправим формат даты в Панели управления
2020-04-11 Баловство с шаблонами
2020-03-26 Простые правила - вариант модуля. ч. 2
2020-03-25 Простые правила - вариант модуля
2019-12-20 расширение средств работы с events updated
2019-11-20 По следам наших выступлений - сколько мы наэкономили?
2019-11-04 Группа как объект - экономим на коде - 2
2019-10-26 Прикручиваем Grafana к Мажордому
2019-10-11 Группа как объект - экономим на коде
2019-09-25 Если у вас нет телеги...
2019-09-11 Датчик присутствия из ип камеры
2019-07-30 Win-платформа-замена ffmpeg для получения скриншотов из rstp - потока
2019-06-24 Форматированный отчет в телеграм - имитация таблицы
2019-04-30 Используем зомбо-ящик в Мажордомо
2019-03-24 О среднем в Мажордомо
2018-10-31 Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений
2018-09-16 Перезагрузка Мажордомо в Win-системах

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

На форуме: xor