087efe116cfa48feeea4dac09d708a92.png

Подключение sonoff к majordomo без перепрошивки

СОДЕРЖАНИЕ
0
194 просмотров
08 февраля 2020

Поддерживаемые устройства

* По состоянию на сентябрь 2020 года.

    1. Шлюз ZigBee Mi Smart Home Gateway 2
    2. Шлюз ZigBee Aqara AC Companion Gateway
    3. Розетка Mi Smart Socket Plug 2
    4. Розетка Mi Smart Socket Plug with USB
    5. Розетка Mi Smart Socket Plug with 2 USB
    6. Пылесос Mi Vacuum Cleaner
    7. Пылесос Mi Roborock S50/S51
    8. Настольная лампа Philips EyeCare Smart Desk Lamp 2
    9. Лампочка белая Е27 Philips Light Bulb
    10. Лампочка белая Е27 Yeelight White Bulb
    11. Лампочка цветная Е27 Yeelight Color Bulb
    12. Лампочки Philips Rui Chi Candle Light Bulb
    13. Настольная лампа Mi LED Desk Lamp
    14. Потолочный светильник Yeelight Ceiling Light
    15. Потолочный светильник Yeelight Square Ceiling Light
    16. Потолочный светильник Yeelight Jiaoyue 650 Ceiling Light
    17. Потолочный светильник Philips EyeCare Smart Ceiling Lamp
    18. Светодиодная лента Yeelight LED Lightstrip
    19. Удлинитель (5 розеток) Mi (Chingmi) Smart Power Strip 5 Plugs
    20. Удлинитель (6 розеток) Mi Smart Power Strip 6 Plugs
    21. Увлажнитель воздуха Mi Air Humidifier
    22. Увлажнитель воздуха Mi Air Humidifier 2
    23. Очиститель воздуха Mi Air Purifier v3
    24. Очиститель воздуха Mi Air Purifier 2S
    25. IR-контроллер Mi IR Remote 360
    26. WiFi-колонка Mi Internet Speaker
    27. Ночник Yeelight Bedside Lamp
    28. Светильник (спот) Philips Zhirui Downlight
    29. Напольный вентилятор Mi Smart Fan SA1
    30. Анализатор качества воздуха Mi ClearGrass Air Monitor S1

Abilities Edit

In all difficulty settings, Majordomo Staghelm has a hard enrage timer of 10 minutes.

  •   —Increases the caster’s attack and movement speeds by 150% and all damage it deals by 500%. Also grants immunity to Taunt effects. Cast after 10 minutes of combat.
  •   —Each player who engages Fandral on Heroic Difficulty gains a Concentration power bar. This bar fills over time, increasing damage and healing done by 25% for every 25 Concentration up to 100. Players hit by a damaging attack or spell lose all Concentration.
  • —Fandral transforms into a Cat when his enemies are not clustered together or into a Scorpion when 7 or more of his enemies are clustered together. On every third transform, Fandral briefly pauses in human form.

    • —Fandral transforms into a Cat when his enemies are not clustered together.

      •   —Fandral leaps at an enemy, leaving behind a Spirit of the Flame. He lands in a blaze of glory, igniting the ground at his destination and causing it to burn enemy enemy units for 25000 Fire damage every 0.5 sec. for 1 min. This attack costs 100 energy. On heroic mode it’s 32500 damage.
      • —These images of Fandral attack enemies until defeated.
      •   —Fandral gains a stack of Adrenaline each time he performs Leaping Flames. Adrenaline increases his energy regeneration rate by 20% per application. Fandral loses all stacks of Adrenaline when he switches forms.
      •   —Fandral gains a stack of Fury each time he transforms into a Cat or Scorpion, increasing the damage of Leaping Flames and Flame Scythe by 8% per application. This effect stacks.
    • —Fandral transforms into a Scorpion when 7 or more of his enemies are clustered together. In 25 player raids, Fandral transforms when 18 or more of his enemies are clustered together.

      •   —Fandral inflicts 750000 (25-man: 2250000) Fire damage to enemies in front of him. Damage is split equally among targets hit. This attack costs 100 energy. On heroic mode it’s 900000 and 2700000 Fire damage, respectively.
      •   —Fandral gains a stack of Adrenaline each time he performs Flame Scythe. Adrenaline increases his energy regeneration rate by 20% per application. Fandral loses all stacks of Adrenaline when he switches forms.
      •   —Fandral gains a stack of Fury each time he transforms into a Cat or Scorpion, increasing the damage of Leaping Flames and Flame Scythe by 8% per application. This effect stacks.
    • —When Fandral enters Human form, he briefly envelops his enemies in a Fiery Cyclone and casts an additional spell. When switching from Cat form to Scorpion form, Fandral unleashes Searing Seeds. When switching switching from Scorpion form to Cat form, Fandral unleashes Burning Orbs.

      •   —Fiery Cyclone tosses all enemy targets into the air, preventing all action but making them invulnerable for 3 sec.
      •   —Searing Seeds implants fiery seeds in Fandral’s enemies. Each seed grows at a different rate. When fully grown, the seeds explode, inflicting 60000 Fire damage to players within 12 yards.
      •   —Fandral summons several orbs around the room. Each orb attacks the nearest player, burning them for 5000 Fire damage every 2 sec. This effect stacks. On heroic mode it’s 9000 Fire damage.

Управление циклами (сервисами)

Интерфейс доступен через раздел XRay->Services
Для управления циклом использются глобальные переменные.
Например, есть цикл ./scripts/cycle_ping.php. Чтобы его остановить, достаточно выполнить команду в коде:setGlobal(‘cycle_pingControl’,’stop’); – ОстановкаsetGlobal(‘cycle_pingControl’,’start’); – запускsetGlobal(‘cycle_pingControl’,’restart’); – рестартsetGlobal(‘cycle_pingDisabled’,’1′); – Для запрета автозапуска (по-умолчанию он всегда разрешён)setGlobal(‘cycle_pingAutoRestart’,’1′); – Для включения авто-восстановления (по-умолчанию он всегда выключен)

QuotesEdit

Intro:

The runes of warding have been destroyed! Hunt down the infidels, my brethren!

Aggro:

Reckless mortals! None may challenge the Sons of the Living flame!

Seventh add dies:

You think you’ve won already? Perhaps you’ll need another lesson in pain!

Defeated:

Impossible! Stay your attack, mortal… I submit! I submit!

Outro:

  • Brashly, you have come to wrest the secrets of the Living Flame! You will soon regret the recklessnss of your quest.
  • I go now to summon the lord whose house this is. Should you seek an audiance with him, your paltry lives will surely be forfeit! Nevertheless, seek out his lair, if you dare!

Before summonning Ragnaros:

“The Firelord and his brethren once held sway over this entire world, mortal. As a servant of the Old Gods, he fought against the Titans for domination of this planet. The victorious Titans banished my master and his brethren to the Elemental Plane – there to remain imprisoned until the end of time.”

Tell me more.

Loot Edit

Item Type
Normal Heroic
Agility staff
Caster wand
Caster cloth bracers
Agility leather boots
Spirit leather leggings
Agility mail gloves
Strength plate chest
Spirit mail boots
Plate tank bracers
Caster necklace
Agility trinket
Caster trinket
Armor token
Armor token
Armor token
Eternal Ember Quest item
Living Ember Trade goods
Crystallized Firestone Currency
Shared boss loot
Item Type
Normal Heroic
Agility one-hand mace
Strength two-hand sword
Spirit staff
Eye of Purification Spirit one-hand axe
Avool’s Incendiary Shanker Agility dagger
Entrail Disgorger Agility dagger
Firethorn Mindslicer Caster sword

Что такое «Умный дом»

Система «Умный дом» Majordomo — проект по адаптации и автоматизации жилого помещения, который пока что доступен только небольшому кругу людей из-за довольно высокой стоимости.

Понятие «Умный дом» («Мажордомо») или smart home можно — это простой набор контроллеров и датчиков. Такие приспособления могут срабатывать на движения (например, автоматическое открытие дверей в торговых центрах) либо же на тепловую энергию. Обычно такие наборы контролируют работу бытовой и кухонной техники внутри дома, системы коммуникации или безопасности. Но и это ещё не всё. Системы уровнем выше способны сами включать и выключать отопление в определённое время года или суток, включать нагревание воды или готовить еду без вмешательства человека.

Cистема домашней автоматизации MajorDoMo

Работа таких датчиков и контроллеров мало чем отличается от работы обычных систем безопасности, таких как «сигнализация», которые так же реагирует на движение. Оборудование же «Умного дома» может считывать информацию с движения, резких звуков, температуры. После этого система обрабатывает его при помощи специальной программы и передаёт команду непосредственно на техническое устройство, отвечающее за выполнение операции.

Majordomo — это бесплатная общедоступная программа, которая поможет быстро обучиться комплексному управлению «Умным домом». Благодаря поддержке двух основных платформ (Windows или Linux) такая система может быть установлена фактически на любой персональный компьютер, поскольку потребляет относительно мало ресурсов. Даже имея малопроизводительный ПК, вы сможете позволить себе пользоваться этой системой.

Система управления «Умным домом” MajorDoMo

Сделать из своего дома «умный» объект довольно просто — вам не нужно обладать какими-либо знаниями языков программирования или прилагать к этому особые усилия. С системой «Мажордомо» вы можете программировать просто с помощью мышки, перетаскивая готовые блоки команд. Либо найти на официальном сайте Majordomo в разделе объявлений исполнителя, который будет готов помочь вам с вашим проектом на базе нашей адаптационной платформы Majordomo.

Общие функции

DebMes($errorMessage, $logLevel) — записывает сообщение в главный лог файл. Параметр $logLevel не является обязательным, и по умолчанию установлен как “debug”.

say($ph,$level,$from_user_id) — говорит фразу (использует глобальные переменные $voicemode” и $commandLine ).
$level – указывает уровень важности фразы (в зависимости от текущих настроек минимального уровня произношения, фраза может быть либо озвучена голосом либо просто записана в историю сообщений).
$from_user_id – от имени кого будет сказана фраза ($from_user_id в данном случае будет равен идентификатору текущего пользователя). sayTo (ФРАЗА, УРОВЕНЬ, НАЗНАЧЕНИЕ) – в качестве НАЗНАЧЕНИЯ можно использовать системное имя терминала и если это терминал на MajorDroid, то ему отправится команда для произношения

В любом случае из этой функции создаётся событие SAYTO (вида: processSubscriptions(‘SAYTO’, array(‘level’ => $level, ‘message’ => $ph, ‘destination’ => $destination));), которое может быть перехвачено сторонними модулями — на заметку тем, кто захочет создать свой модуль для организации работы с различными устройствами доставки сообщений на определённый канал

sayTo (ФРАЗА, УРОВЕНЬ, НАЗНАЧЕНИЕ) – в качестве НАЗНАЧЕНИЯ можно использовать системное имя терминала и если это терминал на MajorDroid, то ему отправится команда для произношения. В любом случае из этой функции создаётся событие SAYTO (вида: processSubscriptions(‘SAYTO’, array(‘level’ => $level, ‘message’ => $ph, ‘destination’ => $destination));), которое может быть перехвачено сторонними модулями — на заметку тем, кто захочет создать свой модуль для организации работы с различными устройствами доставки сообщений на определённый канал.

sayReply(ФРАЗА, УРОВЕНЬ, ОТВЕТ_НА_ЧТО) — последние два параметра не обязательны. Эта функция ведёт себя следующим образом:

  1. Если указан параметр ОТВЕТ_НА_ЧТО, то система попытается найти терминал, с которого был запрос, содержащий данную фразу
  2. Если не указан параметр ОТВЕТ_НА_ЧТО, то система выберет терминал, с которого был любой запрос в течении последних 5 секунд
  3. Если терминал найден, то ответ будет направлен на него (с помощью той же функции sayTo)
  4. Если терминал не найден, то ответ будет озвучен в обычном порядке (аналогично просто использованию функции say).

processCommand($command) — отправляет текстовую команду на исполнение (например, “скажи сколько время”). Сами команды настраиваются методе ThisComputer->commandReceived.

getGlobal($varname); — получения значения глобального свойства

setGlobal($varname,$value); — установка глобального свойства

processLine($line); — запуск скрипта синхронизации

getRandomLine($filename); — взятие случайной строки из текстового файла. $filename может быть сокращённым, например file1 и тогда будет браться файл ./texts/file1.txt

playSound($filename); — проигрывание файла (mp3,wav,etc.). $filename может быть сокращённым, например file1 и тогда будет браться файл ./sounds/file1.mp3

playMedia($path); — играть музыку из каталога $path

runScript($id,$data); — выполняет скрипт с заданным id. В качестве id может использоваться имя

runScriptSafe($id,$data); — выполняет скрипт безопасно в фоне

isOnLine($host) — проверяет доступность хоста из Устройства OnLine (1/0).

ConnectPack

Пакет интеграции системы MajorDoMo с сервисом Сonnect.

Основная задача пакета — обеспечить простой доступ к управлению системой через Интернет без необходимости каких-либо дополнительных настроек домашнего сетевого окружения.

Подключенные возможности:

  • CloudSync — синхронизация меню управления
  • CloudBackup — облачная резервная копия системы
  • Push-уведомления для приложения MajorDroid Official (https://play.google.com/store/apps/details?id=ru.s…)
  • MQTT broker — брокер данных MQTT
  • Яндекс.Диалоги/Google.Ассистент/Amazon.Alexa — интеграция с сервисами

CloudSync

Сервис синхронизации меню управления. Данный сервис активируется через настройки системы (Панель управления > Система > CONNECT > Настройки > Enable CloudSync). После его активации, пользователь может использовать адрес http://connect.smartliving.ru/menu.html для доступа к своей системе с использованием имени пользователя и пароля профиля в CONNECT-е

CloudBackup

Сервис резервного копирования данных на сервер CONNECT. При активации данного сервис (Панель управления > Система > CONNECT > Настройки > Enable CloudBackup) раз в сутки локальная система сохраняет резервную копию всех своих настроек на сервер CONNECT-а. Пользователь через личный кабинет может зайти, скачать эти данные и восстановить через раздел Резервного копирования. Таким образом, всегда есть возможность восстановить накопленные данные и настройки, независимо от локального окружения.

MQTT broker

Сервис внешнего MQTT-брокера для работы любого оборудования пользователя. Протокол MQTT широко применяется в различных системах Интернета Вещей, поэтому данный сервис может быть использован для организации обмена данными между любыми устройствами пользователя через Интернет. Поддержка этого протокола реализована в как большом количестве оборудования и прошивок для контроллеров, так и в самой системе MajorDoMo.

MQTT-брокер может быть использован независимо от MajorDoMo.
Данные доступа:
сервер: connect.smartliving.ru
порт: 1883 (8883 для шифрованного TLS-соединения)
имя пользователя:
пароль:

Для подписки/записи доступны топики, начинающиеся с имени пользователя. Например, если у вас в connect-е имя пользователя myUsername, то вы можете подписываться на топики myUsername/# и писать соответственно в топики такого же вида.

Яндекс.Диалоги

Можно управлять своим домом через систему Яндекс.Диалоги.
Фраза активации: “дом мажордом” (пример активации: “включи дом мажордом”).
Для работы сервиса необходимо пройти авторизацию по коду, код выдаётся в процессе диалога и привязывается к пользовательскому аккаунту через раздел Мой кабинет > Yandex.Dialog

Google.Ассистент

Можно управлять своим домом через систему Google.Ассистент. Авторизация происходит в процессе добавления навыка “Дом мажордом” (для русского ассистента) или MajorDoMo (для английского)

Amazon.Alexa

Можно управлять своим домом через систему Amazon.Alexa. Авторизация происходит в процессе добавления навыка Major Domo

Подробнее о настройке голосовых ассистентов: https://kb.smartliving.ru/category/oborudovanie/go…

Quotes Edit

Baleroc slain
Well well… I admire your tenacity. Baleroc stood guard over this keep for a thousand mortal lifetimes.
But NONE may enter the Firelord’s abode!
Beg for mercy now, and I may yet allow you to live. Well, “heroes”, what is your answer?
Druids of the Flame slain
Very well. Witness the raw power of my new lord!
Scorpion Form
The master’s power takes on many forms…
Cat Form
Behold the rage of the Firelands!
Searing Seeds
Blaze of Glory!
Burning Orbs
Nothing but ash!
Killing a player
  • Burn.
  • Soon, ALL of Azeroth will burn!
  • So much power!
  • You stood in the fire!
Death
My studies… had only just begun…

Классы

Класс объединяет определенную группу объектов и определяет определенные свойства, которые должны присутствовать у всех объектов данного класса.
Например, Класс – “датчики движения”.Состоит из Объектов – “датчик движения в коридоре”, “датчик движения в спальне” и т.д.

Класс не является объектом и не может сам по себе содержать значения этих свойств, он лишь описывает признаки и варианты поведения объектов.  “Датчики движения” могут иметь описание свойства “Статус” (сработал датчик или нет), но непосредственное значение может быть установлено только для конкретного объекта, но не для класса.

Важное свойство классов это возможность создания под-классов, наследующих все свойства и методы “родительского” класса, но при этом способные обладать собственными свойствами и методами. Либо имеющие свои особенные реализации “родительских” методов

Пример:

Attacks and abilitiesEdit

Majordomo ExecutusEdit

  • Does not hit particularly hard, but must still be tanked as he can do serious damage to the lower armor class characters in the raid.
  • Aegis of Ragnaros : Majordomo frequently casts this spell on himself, absorbing 30,000 damage, reflecting 250 damage on successful melee attacks, and healing himself to full. This means that it is literally impossible to kill him.
  • Shield : The shield spells last for 10 seconds before fading. Majordomo will give the shield to all his followers.
    • Purple Shield – While this shield is up, up to 100 melee damage per hit reflects back to those inflicting it.
    • White Shield – While this shield is up, Each magic attack has a 50% chance to reflect back to the attacker.
  • Teleport – Any enemy Majordomo is engaged with can be targeted with this random spell that teleports its target into the nearby fiery pit of Molten Core. There is nothing to counter this ability aside from running back. You’ll also get randomly hit with 1-2K fire damage while standing on it, so move out quickly. Whoever has been teleported to the center should be overhealed as not to die.
  • Blast Wave – A damaging area of effect flame attack which hits nearby players with moderate fire damage.
  • Separation – If you separate the adds too far from Majordomo he will trigger all the adds to enrage effectively wiping your raid.

ElitesEdit

  • Hits a tank for 800 – 1000 damage
  • Fire Blast deals 900 – 1200 fire damage
  • Shield – Same as Majordomo.
  • Blast Wave – Same as Majordomo.

HealersEdit

  • Shield – Same as Majordomo. Do not have your groups’ Mages cast Polymorph on the healers while the white shield is up, as they can sheep themselves.
  • Random Shadowbolts – The Healer’s will also hit random secondary targets with ~1000 damage shadow bolts at raid members in range.

Описание

В основе EM кластеризации лежит масштабируемый алгоритм EM, который опирается на предположение, что исследуемое множество данных может быть смоделировано с помощью линейной комбинации многомерных нормальных распределений. Целью при этом является оценка параметров распределения, которые максимизируют логарифмическую функцию правдоподобия, используемую в качестве меры качества модели. Иными словами, предполагается, что данные в каждом кластере подчиняются определенному закону распределения, а именно, нормальному распределению.

Таким образом, любое наблюдение (объект) принадлежит ко всем кластерам, но с разной вероятностью. Объект должен быть отнесен к тому кластеру, для которого данная вероятность выше.

«Умные» устройства

  1. Девайс вещь совершенно в себе и управлять им извне не выйдет. Можно только внешним реле отключить или посмотреть энергопотребление. В некоторых случаях — да и фиг с ним… В категорию входят холодильники, микроволновки, чайники, стиралки и т.д. и т.п.
  2. В принципе девайсом можно рулить извне: ик- или радио-пультом. Тут обычно кондеи и телевизоры. Рулить вроде и можно, но обратной связи нет…
  3. Устройства с двунаправленной связью — ты дал команду, он отреагировал и ответил. Их мало, но они есть. Просто чаще всего такие устройства идут уже по группе «экосистем» от брендов. Тут в основном висят умные телевизоры и приставки…

Функционал Public Calls в Connect-е

В разделе CONNECT панели управления есть закладка Public Calls

Самое важное в настройках — связанный объект и метод, который будет вызван. Ссылка будет с уникальным ключём, но можно дополнительно её защитить заданным паролем

Ссылку можно открывать просто в браузере или даже из скрипта.

К ссылке можно добавлять свои параметры и они будут доступны в методе в массиве $params Важно: очень аккуратно используйте эту опцию и старайтесь не “раскидываться” ссылками, которые могут навредить, попадая в

Идеи использования:

  1. Обмен данными между несколькими системами MajorDoMo (одна система через getURL может инициировать событие в другой, причём у первой даже может не быть аккаунта в Connect-е)
  2. Интеграция со сторонними системами и интернет-сервисами (сторонняя система “дёргает” ссылку и MajorDoMo об этом узнаёт)
  3. Выдача прав на использование некоторых функций системы третьим лицам (передайте ссылку кому-нибудь, попросите добавить в закладки и объясните, что будет происходить при переходе — реализация сценария полностью на ваше усмотрение)

getURLBackground(‘URL’); – Запрос URL в фоне (если не важен результат

Модуль дискретного ввода M854D

Интеллектуальный модуль дискретного ввода M854D (с каналами с общей точкой) предназначен для ввода дискретных сигналов напряжения постоянного тока (полярность любая).

Технические характеристики модуля M854D:

Тип модуля M843D M843D-S M854D
Тип канала DI-12, CI-DI-12, 
DI-24, CI-DI-24
DI-24-C DI-12-P, CI-DI-12-P,
DI-24-P, CI-DI-24-P,
DI-12-N, CI-DI-12-N,
DI-24-N, CI-DI-24-N
Количество каналов 16 32
Взрывозащищенное исполнение есть

Характеристики каналов модуля M854D:

ДИСКРЕТНЫЙ ВВОД

Обозначение канала DI-12 DI-24 DI-24-C DI-12-N DI-24-N DI-12-P DI-24-P
Тип входа изолированный с общим «минусом» с общим «плюсом»
Род тока Постоянный
Номинальное
напряжение, В 
Порог, В: 
-лог 0, не менее 
-лог 1, не более

12 
2,5
8

24 
5
15

24
5
15

12
2,5
8

24
5
15

12
2,5
8

24 
5
15

Входной ток канала, мА 8,8 6,8 9,3 7,2 6,1 7,2 6,1
Контроль обрыва линии есть
Применяемость на модулях M843D M843D-S M854D

ИМПУЛЬСНЫЙ ВВОД

Обозначение канала для подсчета импульсов CI-DI-12 CI-DI-24 CI-DI-12-N CI-DI-24-N CI-DI-12-P CI-DI-24-P
Тип входа изолированный с общим «минусом» с общим «плюсом»
Номинальное 
напряжение, В 
Порог, В: 
-лог 0, не менее 
-лог 1, не более

12
2,5
8

24
5
15

12
2,5 
8

24
5
15

12 
2,5
8

24 
5
15

Диапазон измерения числа импульсов От 0 до (232-1)
Вероятность пропуска импульсов 1*10-5
Минимальная длительность импульса и паузы, мкс, не менее 100
Максимальная входная частота, кГц, не более 5
Применяемость на модулях M843D M854D

Код заказа модуля M854D:

M854D –
тип канала: 2 – DI-12-P (CI-DI-12-P) / 3 – DI-24-P (CI-DI-24-P) (опционально DI-12-N (CI-DI-12-N) / DI-24-N (CI-DI-24-N))
наличие FRAM (8 Kб), RTC: 0 – без FRAM, RTC / 1 – есть FRAM, RTC / 2 – только FRAM
питание: 0 – 5 В / 1 – 5 В, с дублированием / 2 – 24 В / 3 – 24 В, с дублированием
температурный диапазон, °С: 0 – 0…+60 / 1 – -40…+60

Необходимость поставки модулей с каналами DI-12-N (CI-DI-12-N)/ DI-24-N (CI-DI-24-N) необходимо указать при заказе.

Технические характеристики
Рабочая температура -40°C ~ +60°C
Тип модуля (TREI) Дискретного ввода-вывода
Входное напряжение (U вх.), В 5 В

Описание

Модуль предназначен для интеграции Wi-Fi устройств из экосистемы Xiaomi Mihome, взаимодействующих по протоколу miIO.

miIO – проприетарный сетевой протокол Xiaomi с шифрованием, по которому взаимодействуют wifi-устройства из экосистемы Xiaomi и приложение Mihome на смартфоне. В качестве транспорта используется UDP и порт 54321. Содержимое пакетов шифруется. Ключи шифрования формируются на основе уникальных токенов. Для контроля корректности принимаемых пакетов используется контрольная сумма на основе алгоритма MD5.

Использование этого протокола позволяет управлять теми устройствами, которые не имеют открытого API (режима разработчика). Например, пылесосы, лампы, светильники, увлажнители и очистители воздуха, розетки и многие другие. Также позволяет расширить имеющиеся возможности открытого API у xiaomi-шлюза, в частности переводить его в режим сопряжения, привязывать и отвязывать zigbee-устройства, управлять радио и др.

В основе модуля лежит библиотека php-miio.

Обсуждение модуля на Форуме.
Исходный код модуля на Github.
Модуль в Connect.

Модуль Xiaomi miIO

Мастер настройки

  • Выбор полей для кластеризации.

    • Для полей, участвующих в кластеризации, выставить назначение “Используемое” (“Активное”).
    • Для прочих полей оставить “Не задано”.
  • Автоопределение числа кластеров. При установлении флага становится доступен для настройки блок параметров “Автоматическое определение числа кластеров”.

    • Минимальное число кластеров. По умолчанию — 1.
    • Максимальное число кластеров. По умолчанию — 10.
    • Порог разделения кластеров (в интервале от 0,1 до 5). Чем больше порог разделения, тем больше кластеров будет сгенерировано при кластеризации. По умолчанию — 1.
  • Заданное число кластеров.

    Число кластеров. По умолчанию — 3.

    Блок параметров, доступный для настройки, при неактивном флаге “Автоопределение числа кластеров”.

  • Параметры EM-кластеризации.

    • Переменные независимы. Учет зависимости между переменными. Если флаг активен, зависимости нет.
    • Медианная модификация. Включение флага означает, что на втором М-шаге алгоритма моментные оценки максимального правдоподобия заменяются более устойчивыми оценками медианного типа. Это может повысить устойчивость алгоритма по отношению к начальным данным.

Quotes (12)

  • Majordomo Executus yells: Ashes to ashes!
  • Majordomo Executus yells: Behold Ragnaros – the Firelord! He who was ancient when this world was young! Bow before him, mortals! Bow before your ending!
  • Majordomo Executus yells: Brashly, you have come to wrest the secrets of the Living Flame! You will soon regret the recklessness of your quest.
  • Majordomo Executus yells: I go now to summon the lord whose house this is. Should you seek an audience with him, your paltry lives will surely be forfeit! Nevertheless, seek out his lair, if you dare!
  • Majordomo Executus yells: Impossible! Stay your attack, mortals… I submit! I submit!
  • Majordomo Executus yells: Impudent whelps! You’ve rushed headlong to your own deaths! See now, the master stirs!
  • Majordomo Executus yells: Reckless mortals! None may challenge the Sons of the Living flame!
  • Majordomo Executus yells: These mortal infidels, my lord! They have invaded your sanctum and seek to steal your secrets!
  • Majordomo Executus yells: You think you’ve won already? Perhaps you’ll need another lesson in pain!
  • Majordomo Executus says: Very well, .
  • Majordomo Executus says: Very well, Boy.
  • Majordomo Executus says: Very well, DolkdÃ¥ren.

Общие направления

  • «Я купил реле Livolo и теперь гашу свет с пультика!» — это ниша всяческого «тупого» управления, автоматического поддержания температуры котла, автоматического проветривания и т.д. Это то, на что морщатся вообще все «Умнодомщики», но когда-то мы все проходили этот шаг. Некоторые — бегом и не оглядываясь.
  • «БРЭнДЫ» — Сяоми, Рубитек, Сименс и еще с десяток компаний, производящих оборудование для умного дома… Есть релешки от них, есть датчики от них, можно на их сервере или их железке расписать логику взаимодействия и будет вам щазтье… Пока не рухнет сервер, производитель не выпустит новую версию базового блока, или еще какая фигня… Делятся на три подгруппы: с закрытым API, с открытым API и «мне пофиг, я поменял в нем прошивку!»… Дело иметь лучше с 2 и 3, в идеале — вообще с 3
  • «А у меня есть бензольное колечко свой сервер!» — собственно вариант для продвинутых. Мы почти ни от кого не зависим и можем делать почти что захотим…

Сеть в докере

Как вы, наверное, успели заметить в том же портэйнере отображаются адреса контейнеров. По скольку контейнеры это изолированные среды, а изолированные среды должны как то общаться между собой и с пользователем – связывает их виртуальная сеть, поднятая прямо на сервере. У сети есть своё пространство имён, каждый контейнер имеет свой адрес. Нет, есть, конечно, и другие типы интерфейсов сети, но о них я не упоминаю, т.к. в текущей статье использовался только тип интерфейса bridge. Если мы обращаемся к приложению в контейнере прямо с серверной машины – надо обращаться не к localhost (127.0.0.1), как мы привыкли это делать, а к ip адресу, присвоенному контейнеру. Так же некоторые контейнеры позволяют для подключения использовать DNS имя, чем мы собственно и воспользовались при настройке mosquitto и mariadb. Например чтобы подключиться модулем zigbee2mqtt к брокеру mosquitto надо указать примерно следующие настройки

PhpMyAdmin

Многим нужен для комфортной работы phpmyadmin (интерфейс для доступа к базе данных). Решил показать на всякий случай, как его тоже добавить. Но я думаю суть вы уже уловили))) Добавляем очередной сервис в docker-compose.yml

PHP

phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
– PMA_HOST=mysql
– PMA_PORT=3306
restart: always
ports:
– 8085:80
depends_on:
– mysql

1
2
3
4
5
6
7
8
9
10
11

phpmyadmin

imagephpmyadminphpmyadmin

container_namephpmyadmin

environment

-PMA_HOST=mysql

-PMA_PORT=3306

restartalways

ports

-808580

depends_on

-mysql

И поднимаем всю связку

PHP

docker-compose up -d

1 docker-compose up-d

Phpmyadmin доступен на порту http://:8085.

Для входа можно использовать юзера root или же пользователя под которым входит majordomo. Оба пароля мы прописывали при поднятии контейнера mysql/mariadb.

Время/интервалы

time() — возвращает текущее время в формате timestamp.

timeConvert($tm) — конвертирует время из hh:mm в формат time() на сегодняшнее число

timeNow($tm) — возвращает в текстовом виде время типа “16 часов 40 минут”. Если $tm не задан, то возвращает текущее время. $tm в формате time.

isWeekEnd() — выходной да/нет = 1/0

isWeekDay() — будний день да/нет = 1/0

timeIs($tm) — проверяет совпадает ли текущее время с передаваемым в формате hh:mm

timeBefore($tm) — сравнивает время $tm (hh:mm) и текущее. Если текущее меньше, то 1 иначе 0

timeAfter($tm) — сравнивает время $tm (hh:mm) и текущее. Если текущее больше, то 1 иначе 0

timeBetween($tm1, $tm2) — проверяет входит ли текущее время в заданный интервал (каждое hh:mm, причем $tm1 может быть больше чем $tm2, например 23:00 05:00)

recognizeTime($text) — функция пытается из фразы извлечь конкретное время/дату. Например $text может быть “завтра в 9:30” или “через 5 минут”

При вызове любого метода (но не сценария!) доступны переменные:

$prevRun — время последнего вызова (в формате timestamp)

$prevRunPassed — сколько секунд прошло с последнего вызова

$this — Указатель на себя. Используется в методах классов. Например:

PHP

$this->setProperty(“status”,1); // устанавливает свойство status в 1, объекту для которого вызван

1 $this->setProperty(“status”,1);// устанавливает свойство status в 1, объекту для которого вызван

Список источников

  • help.loginom.ru
  • kb.mjdm.ru
  • proumnyjdom.ru
  • wowwiki.fandom.com
  • habr.com
  • classic.wowhead.com
  • connect.smartliving.ru
  • insat.ru

Похожие статьи

Комментировать
0
194 просмотров

Если Вам нравятся статьи, подпишитесь на наш канал в Яндекс Дзене, чтобы не пропустить свежие публикации. Вы с нами?

Adblock
detector