Smoke

 
<<< Назад

Рассказ хейтера сцен в MJDM. Часть 2

Продолжу рассказ о том, как я пилю свою сцену

Привет! Это вторая часть!

Прошло полгода с моей публикации 1 части. Я много чего освоил, многое переделал. Хочу поделится тем, что есть сейчас. От вас в комменты жду ваши сценарии и шаблоны поведения умного дома, а так же предложения о том, что можно улучшить. Кода будет не так много, это скорее блог, чем "How is it"

Живые фоточки

Планшет висит на стене в прихожей, рядом с входной дверью. В качестве планшета используется Samsung Tab S5e Live Demo Unit =)

На чем висит? =)

Заказал с алика обычные пластмаски с 3М скотчем, сделал отверстие и прибил на дюбель-гвоздь. Там же был заказан USB-C магнитный провод для зарядки за 200р. Благодоря этому, можно в любой момент снять планшет и пользоватся по дому.

Что по софту?

Как уже писал ранее, я юзаю fully kiosk browser для управления планшетом и получения с него информации. Например, ночью при сработке датчика движения вывожу планшет из Ambient режима (Далее) и включаю экран. Для тех, кто будет юзать, конструкция вида:

if(typeof fully !== 'undefined') {
//Какой то код
}

Будет выполняться только на том устройстве, где запущен fully kiosk browser, а например на телефоне не будет. Я так узнаю о том, стоит ли показывать модальное окно, например с напоминанием о том, что может выключить свет?!

Здесь кто - нибудь есть?

Информацию о том, есть кто дома или нет я решил получать через модуль zyxel_lan_device, ведь WiFi включен всегда и у всех...

Сколько кода?

Да немного, всего 20 сценариев в MJDM, самый большой тот, который отдает JQ почти всю инфу из MJDM. Далее JQ разбирает и раскидывает по блокам.

Must Have!

Есть у меня топ - 3 скриптов (Функций, сценариев), без которых я не могу обойтись и которые мне очень сильно помогают экономить время:

1 - Toggle

Очень простой сценарий, который конвертит 0 в 1 и наоборот. Присылаем Bedroom_Light.chanel_1 и оно работает. Проверок нет, ибо мне они не нужны.

$object = strip_tags($_GET['getobject']);
if(empty($object)) {
    http_response_code(404);
    //Умри!
    die();
}
if(gg($object) >= 1) {
    sg($object, '0');
} else if(gg($object) == 0) {
    sg($object, '1');
}

2 - Время таймеров

Код sergejey, но он прям маст хэв, позволяет узнать время до сработки таймера.

function timerExists($timer) {
    $timerId=timeOutExists($timer);

    if($timerId) {
        $timer_job = SQLSelectOne("SELECT UNIX_TIMESTAMP(RUNTIME) as TM FROM jobs WHERE ID='".$timerId."'");
        $diff = (int)$timer_job['TM']-time();

        return $diff;
    } else {
        return 0;
    }
}

3 - SendValue

JS функция, через которую легко устанавливать значения

function sendValue(object, property, value) {
            $.ajax({
                url: '/objects/?op=set&object=' + object + '&p=' + property + '&v=' + value,
                success: function(responce) {
                    showNoty('done', 'Для ' + object + '.' + property + ' установлено значение ' + value);
                },
                error: function(responce) {
                    showNoty('error', 'Не удалось записать настройки :(');
                }
            });

        }

Ambient мод.

Т.к мой планшет с экранов amOLED он имеет свойство выгорать, поэтому мне пришлось заморочится с амбиент режимом, вся суть которого сводится к тому, что если включен ночной режим в системе и нет движения больше 30 минут - переводим планшет в этот режим. Выглядит так:

Если сработает ночью датчик движения - планшет вернется в стое стандартное состояние.

Конец!

Пишите, что реализовано у вас и что можно реализовать мне, будет интересно почитать! Да и вообще, рассказывайте о ваших реализациях УД, я точно почитаю, ибо уже все обзоры на YouTube просмотрены =)

Обсуждение (5) (16)

Смотрите так же:
13.03.2023 Debounce настройка в z2m
06.03.2023 Боремся с mysql и жором места на диске
24.10.2021 Определяем выключен ли свет по камере о_О
18.10.2021 Опять прокси WS! Теперь для KeenDNS+NGINX
19.09.2021 Хитрый MJPEG или укрощение строптивого
08.06.2021 Парсим информер с Яндекс.Погоды
13.01.2021 Не разговаривает Алиса через облако?
15.12.2020 Разгоняем Xiaomi Home
04.11.2020 Проксирование WebSocket с wss:// -> ws://
02.11.2020 Как получить время езды до работы?
02.06.2020 Стилизация штатного редактора кода, часть 2
01.06.2020 Распознавание речи - бесплатно, просто, быстро.
01.06.2020 Стилизация штатного редактора кода
29.01.2020 Парсим данные баланса из ЛК Билайн (Update)
28.01.2020 Camshoter на свой лад
21.01.2020 Google Location + Yandex Maps, на свой лад
19.01.2020 Получение Я.Погоды из сценария
17.01.2020 Как можно НЕ использовать сцены в MJDM. Часть 2
16.01.2020 Перезагружаем роутер Zyxel из MJDM
12.12.2019 Как подружить Camshoter и обычную вебку
07.10.2019 Управление планшетом из сцен/WEB
07.10.2019 Использование злосчастных WebSoccet
17.01.2020 ~DELETED~
23.07.2019 Как можно НЕ использовать сцены в MJDM. Часть 1.

Нижний Новгород, Россия

На форуме: SmoKE_xDDD