Умная розетка Mijia Smart Wi-Fi и Philips Smart Bulb добавляем в Domoticz

04 декабря 2018, 18:18

Управление с помощью библиотеки Php-miio, Wi-Fi устройств от производителей Xiaomi и Philips

Список устройств которые есть у меня, и которые мы добавим в систему умного дома:

  1. Xiaomi Philips Smart LED Ball Lamp, лампочка цоколь E27 (токен не отдает)
  2. Xiaomi Mi Smart Power Plug, Wi-fi розетка (токен отдает)

Так как эти устройства работают через приложение Mi Home, а наша задача собрать в нашей единой системе управления Domoticz, начнем…

  • Подключитесь по SSH с помощью программы Putty к вашей Raspberry PI

  • Обновляем OS
sudo apt update
sudo apt upgrade
  • Устанавливаем PHP 7.0
sudo apt install php7.0
  • Загружаем библиотеку php-miio и переходим в папку
sudo git clone https://github.com/skysilver-lab/php-miio.git php-miio
cd php-miio
  • Запускаем сканирование устройств
php miio-cli.php --discover all
Нужен IP и Токен

Что такое Токен?

Это уникальная 32-ух значная последовательность символов, используемая для формирования ключа шифрования. Наличие и знание токена — это обязательное условие успешного управления miIO - устройством.

Внимание!!!

Если устройство не транслирует свой токен, то значение будет заполнено нулями 0 или буквами F в таком случае выяснять токен придется другими способами

  • Для проверки вводим команду, поменяйте на свой IP-адрес устройства и токен. Включаем и выключаем наше устройство
php miio-cli.php --ip 192.168.1.98 --token 5005a48281fea58325ca972c3ab02d10 --sendcmd '{"id":1,"method":"set_power","params":["on"]}'
php miio-cli.php --ip 192.168.1.98 --token 5005a48281fea58325ca972c3ab02d10 --sendcmd '{"id":1,"method":"set_power","params":["off"]}'
Проверка произведена

Переходим в Domoticz и создаем виртуальный переключатель:

  1. Настройка-Оборудование
  2. В разделе Тип: выбираете — Dummy (Does nothing, use for only virtual switch) указываете имя

  3. Нажимайте добавить, появится новая запись

  4. Выберите создать виртуальные датчики

  5. Указываете имя, Тип датчика: Переключатель - OK. Создаем столько переключателей сколько нужно.

  6. Переходим в: Настройка - Устройства в открывшемся окне находим созданные вами переключатели

  7. Переходим в меню Переключатели. В открывшемся окне видим ваши созданные переключатели. Здесь вы сможете управлять, редактировать, менять иконки и смотреть графики

  8. Выбираем: Настройка-Дополнительно - События

  9. В открывшемся окне создаем скрипт, который будет управлять вашим устройством. Для каждого переключателя нужен будет свой, отдельный скрипт! Справа выбираем dzVents - указываем имя и активируем его, event active. Вставляем код ниже указав имя вашего датчика, IP-адрес и Токен вашего устройства. Нажимаете сохранить (Save)

return {
on = {
timer = {'every minute'},
devices = {'Розетка USB'} -- имя девайса
},
logging = {
level = domoticz.LOG_ERROR
},
execute = function(dz, item)

local Device = dz.devices('Розетка USB') -- имя девайса
local Path = "/home/pi/php-miio/" -- путь, куда установлен php-miio
local IP = '192.168.1.17' -- ip девайса
local Token = '0b24d73a40a5576131cd1a403e670000' -- токен  вашего девайса

function SendCommand()
cmd = "cd "..Path.." && php miio-cli.php --ip "..IP.." --token "..Token.." --sendcmd '{\"id\":1,\"method\":\""..method.."\",\"params\":"..param.."}'"
end

if (item.isDevice) then
method = "set_power"
if (item.state == 'On') then
param = "[\"on\"]"
else
param = "[\"off\"]"
end
SendCommand()
dz.utils.osExecute('('..cmd..' > /dev/null)&')
end
if (item.isTimer) then
method = "get_prop"
param = "[\"power\"]"
SendCommand()
local h = io.popen(cmd)
local r = h:read("*a")
h:close()
if (string.find(r, '"off"')) then
if (Device.state ~= 'Off') then
Device.update(0).silent()
end
else
if (Device.state == 'Off') then
Device.update(1).silent()
end
end
end
end
}

Инструкция в картинках:


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) 11 месяцев назад

    Отличная статья=) 

  2. Дмитрий Агафонов (skysilver)
    Дмитрий Агафонов (skysilver) 11 месяцев назад

    Надо же, моей либой до сих пор пользуются, а ее на коленке писал, как прототип. )))

К списку статей

Скидки для сообщества

MI-DOM

+7 977 282-80-53
Промокод:
SPRUTAI
Размер скидки:
5%

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Тематические чаты

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

09 ноября 2018, 20:54
Кейс создания умного дома без каких либо прокладок в виде Raspberry pi
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
19 марта 2019, 22:19
Обзор долгожданного 2х канального zigbee реле от Aqara, сравнение с конкурентами и небольшой тест на Deconz, Mi Hub и Aqara Hub.
30 августа 2019, 07:28
Несколько нетривиальных способов использования датчика открытия окон/дверей от Xiaomi/Aqara.
01 ноября 2018, 09:27
Настройка Deconz USB стика ConBee от Dresden Elektronik в Hass.io и некоторые особенности эксплуатации
01 декабря 2018, 18:27
Получение токена устройств Xiaomi с помошью Windows или MacOs
11 мая 2019, 19:57
Как активировать русский язык в Google Assistant для Google Home
09 января 2019, 17:34
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик лучше отдельного шлюза.
29 мая 2019, 23:15
Добавление устройств (выключатели и свет) из Home Assistant в Умный Дом Яндекс
12 мая 2018, 07:12
Добавление выключателя Aqara zero line(LN) в HomeKit через homebridge