DivanX10

<<< Назад

Blockly. Режим "Кто-то дома" | "Дома никого нет" | "Дома спят"

Статья рассчитана для тех, кто начинает знакомится с majordomo и не знает как нужно настраивать, для не программистов, которые не знают код PHP и встали на путь освоения majordomo. На форуме нет подробной инструкции, есть какие-то наброски в виде кода и чтобы начинающему понять, ему нужно задать кучу вопросов. Здесь я наглядно покажу и расскажу как с помощью Blockly можно настроить режим кто-то дома, дома нет никого или дома спят.

Для того чтобы настроить данную функцию "Кто-то дома", лучше всего использовать bluetooth устройство, это самый надежный вариант. WiFi в некоторых моделях смартфонов уходит в режим сна и будучи находясь дома, система будет считать что вы не дома и переведет режим "Кто-то дома" в статус "Дома никого нет". GPS тоже не надежен, данные приходят с задержкой и будучи дома это может сработать через какое-то время или не сработать вообще. С bluetooth все работает четко, сбоев нет, пришли домой, система вас опознает, ушли из дома, система встала на охрану. В смартфоне bluetooth не уходит в режим сна. В качестве смарт ключа Вы можете использовать любое устройство с технологией bluetooth, будь то смартфон или брелок iTag. После создания этой функции, в сценариях вы можете добавлять эти режимы. Если вас не будет дома или вы спите, значит сценарии не будут работать, если вы дома, то сценарии будут работать или вы ушли из дома и система встала на охрану.

Что мы будем делать?

  1. Создадим простое устройство
  2. Устанавим из маркета модуль "Устройство bluetooth", если не установлен
  3. Добавим устройство
  4. Настроим устройство
  5. Создадим свой подобъект "Кто-то дома"
  6. Настроим "Кто-то дома"
  7. Настроим "Ночной режим"

1) Создаем простое устройство

2) Так будет выглядеть устройство в простых устройствах (сокращенно ПУ), таким образом вы будете видеть, что устройство онлайн\оффлайн

3) Создадим подобъект (указываем свое имя)HomeMode в объекте OperationalModes

4) В методе "modeChanged" подобъекта (ваше название)HomeMode мы добавляем код в виде Blockly.

5) Собираем код с помощью блокли, ниже я приведу примеры зачем мы в блоках указали title, а также такой блок "DivanHomeMode" появился после того, как вы создали свой подобъект.

a) Если HomeMode имеет статус 0, значит вас нет дома, в строке TITLE будет добавлена запись что вас нет дома

b) Если HomeMode имеет статус 1, значит вы дома, в строке TITLE будет добавлена запись что вы дома

c) Если HomeMode имеет статус 2, значит вы спите, в строке TITLE будет добавлена запись, что вы спите

6) Установим из маркета модуль "Устройство bluetooth", если не установлен

7) Настроим модуль "Устройство bluetooth"

8) Добавляем устройство в модуле "Устройство bluetooth"

9) После того как добавили устройство, данное устройство будет автоматически добавлено в объекты

10) Заходим в метод добавленного устройства (объекта)

11) В методе Found, подобъекта SmartKey_Divan и объекта BluetoothDevices мы добавляем код, который при обнаружении устройства, простое устройство будет иметь статус онлайн (значение = 1), а режим "Кто-то дома" будет активирован

12) В методе Lost, подобъекта SmartKey_Divan и объекта BluetoothDevices мы добавляем код, который при отсутствии с устройством связи, простое устройство будет иметь статус оффлайн (значение = 0), а режим "Кто-то дома" будет деактивирован

13) Теперь нам нужно настроить "Ночной режим", чтобы кроме статусов "Я дома" или "Я не дома" был статус "Я сплю" или "Дома спят". Находим подобъект ThisComputer в объекте Computer

14) Создадим такой блок, где мы можем выставить время когда будет включаться\выключаться "Ночной режим". Когда "Ночной режим" будет активирован, он переведет режим "Кто-то дома" в режим сна, когда будет деактивирован, то переведет в режим "Кто-то дома есть"

15) Создадим в подобъекте ThisComputer свойства NightModeStart и NightModeEnd, они нам нужны, чтобы мы в меню могли указать в какое время должен активироваться или деактивироваться "Ночной режим"

16) После того, как создали свойства, идем в "Меню управления" и там создаем вот такой список, включение "Ночного режима"\запуск(начало) "Ночного режима"\окончание (конец) "Ночного режима"

17) Создаем выключатель для "Ночного режима"

18) Создаем начало "Ночного режима" - когда включится "Ночного режима"

<#LANG_GENERAL_NIGHT_MODE#> (<#LANG_GENERAL_STARTING#>)

19) Создаем окончание "Ночного режима" - когда выключится "Ночного режима"

<#LANG_GENERAL_NIGHT_MODE#> (<#LANG_GENERAL_ENDING#>)

20) Теперь нам нужно настроить, чтобы при активации "Ночного режима", режим "Кто-то дома" переключался на "Дома спят" или наоборот. Для этого нужно перейти в объект OperationalModes и в подобъект NightMode

21) В методе подобъекта NightMode мы добавим код, который при активации или деактивации будет переводить режим "Кто-то дома" в "Дома спят" или "Кто-то дома"

22) В методе activate вставляем код, который установит значение 2 для объекта "HomeMode" и переведет режим "Кто-то дома" в режим "Дома спят"

setGlobal('DivanHomeMode.active', '2');

23) В методе deactivate вставляем код, который установит значение 1 для объекта "HomeMode" и переведет режим "Дома спят" в режим "Кто-то дома"

setGlobal('DivanHomeMode.active', '1');

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

Смотрите так же:
17.10.2019 Блог чайника. Простое устройство. Выключатель.
12.10.2019 Blockly. Вариант 2 - Адаптивный "Ночной режим"
12.10.2019 Blockly. Вариант 1 - Если я ушел из дома, а "Ночной режим" еще не выключен
08.10.2019 Blockly. Рабочий/выходной/отпуск - немного укоротил сборку кода в блоках
07.10.2019 Blockly. Создаем сценарии рабочий/выходной/отпуск для нестандартного рабочего графика
12.10.2019 Blockly. Мои блоки - месяц
12.10.2019 Blockly. Мои блоки - дни недели

Москва, Россия