Skip to content

Commit

Permalink
v.1.8-beta
Browse files Browse the repository at this point in the history
* Включение/выключение режима разработчика на шлюзах Mijia и Aqara AC Companion.
* Ссылка на документацию в About.
* Исправлен пример flow-сценария заката.
* Добавлено изображение кубика Aqara.
  • Loading branch information
skysilver-lab committed Aug 20, 2018
1 parent ee5a5c5 commit be68471
Show file tree
Hide file tree
Showing 14 changed files with 336 additions and 141 deletions.
18 changes: 16 additions & 2 deletions languages/xiaomimiio_default.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,16 @@
'XIMI_APP_IN_DEVELOPMENT' => 'The section is under development.',
'XIMI_APP_MODULE' => 'The integration of Wi-Fi devices from Xiaomi Mihome ecosystem by miIO-protocol.',
'XIMI_APP_PROJ' => 'The project on the',
'XIMI_APP_DOCS' => 'Documentation in the',
'XIMI_APP_INKB' => 'Knowledge Base',
'XIMI_APP_DISCUS' => 'Discussion of the module on the',
'XIMI_APP_DISCUS2' => 'forume',
'XIMI_APP_DONATE' => 'Support the development of the module:',
'XIMI_APP_DONATE2' => 'Internal account in ',
'XIMI_APP_Author' => 'Author',
'XIMI_APP_THANKS' => 'Thanks',
'XIMI_APP_NAME' => 'Xiaomi miIO',
'XIMI_APP_CYCLE_STATE' => 'Cycle status',
'XIMI_APP_CYCLE_START' => 'Cycle running',
'XIMI_APP_CYCLE_STOP' => 'Cycle stopped',
'XIMI_APP_IP' => 'MajorDoMo server IP ',
Expand Down Expand Up @@ -61,8 +64,19 @@
'XIMI_APP_REQUIRED' => 'A device token is required',
'XIMI_APP_CURRENT' => 'Get current status',
'XIMI_APP_ZIGBEE_NOTICE' => 'This module allows you to only pairing, unpairing and view the list of zigbee-connected devices to the gateway. Full work with zigbee-devices is performed in the <b>Xiaomi Home</b> module. Install it from the MajorDoMo add-ons Market.',
'XIMI_APP_ATTENTION' => 'Attention'

'XIMI_APP_ATTENTION' => 'Attention',
'XIMI_APP_LAN_MODE' => 'Developer mode',
'XIMI_APP_ACTIVE' => 'Active',
'XIMI_APP_NOTACTIVE' => 'Not active',
'XIMI_APP_LAN_MODE_ON' => 'Developer mode successfully enabled',
'XIMI_APP_LAN_MODE_OFF' => 'Developer mode successfully disabled',
'XIMI_APP_LAN_MODE_ON_ASK' => 'Are you sure you want to enable developer mode on the gateway?',
'XIMI_APP_LAN_MODE_OFF_ASK' => 'Are you sure you want to disable the developer mode on the gateway?',
'XIMI_APP_ACTIVATE_LAN_MODE' => 'Activate developer mode',
'XIMI_APP_DEACTIVATE_LAN_MODE' => 'Deactivate developer mode',
'XIMI_APP_KEY' => 'Key',
'XIMI_APP_ON' => 'Enable',
'XIMI_APP_OFF' => 'Disable'
);

foreach ($dictionary as $k=>$v)
Expand Down
18 changes: 16 additions & 2 deletions languages/xiaomimiio_ru.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@
'XIMI_APP_IN_DEVELOPMENT' => 'Раздел находится в разработке.',
'XIMI_APP_MODULE' => 'Модуль поддержки Wi-Fi устройств из экосистемы Xiaomi Mihome, взаимодействующих по протоколу miIO.',
'XIMI_APP_PROJ' => 'Проект в',
'XIMI_APP_DOCS' => 'Документация в',
'XIMI_APP_INKB' => 'Базе знаний',
'XIMI_APP_DISCUS' => 'Обсуждение модуля на',
'XIMI_APP_DISCUS2' => 'форуме',
'XIMI_APP_DONATE' => 'Поддержать разработку и развитие модуля:',
'XIMI_APP_DONATE2' => 'Внутренний счет в ',
'XIMI_APP_Author' => 'Автор',
'XIMI_APP_THANKS' => 'Благодарности',
'XIMI_APP_NAME' => 'Xiaomi miIO',
'XIMI_APP_CYCLE_STATE' => 'Статус цикла',
'XIMI_APP_CYCLE_START' => 'Цикл запущен',
'XIMI_APP_CYCLE_STOP' => 'Цикл остановлен',
'XIMI_APP_IP' => 'IP сервера MajorDoMo ',
Expand Down Expand Up @@ -62,8 +65,19 @@
'XIMI_APP_REQUIRED' => 'Требуется токен устройства',
'XIMI_APP_CURRENT' => 'Получить актуальное состояние',
'XIMI_APP_ZIGBEE_NOTICE' => 'Данный модуль позволяет только привязать, отвязать и просмотреть список привязанных к шлюзу zigbee-устройств. Работа с zigbee-устройствами в полном объеме осуществляется в модуле <b>Xiaomi Home</b>. Установите его из маркета дополнений MajorDoMo.',
'XIMI_APP_ATTENTION' => 'Внимание'

'XIMI_APP_ATTENTION' => 'Внимание',
'XIMI_APP_LAN_MODE' => 'Режим разработчика',
'XIMI_APP_ACTIVE' => 'Активен',
'XIMI_APP_NOTACTIVE' => 'Не активен',
'XIMI_APP_LAN_MODE_ON' => 'Режим разработчика успешно включен',
'XIMI_APP_LAN_MODE_OFF' => 'Режим разработчика успешно выключен',
'XIMI_APP_LAN_MODE_ON_ASK' => 'Вы действительно хотите включить режим разработчика на шлюзе?',
'XIMI_APP_LAN_MODE_OFF_ASK' => 'Вы действительно хотите выключить режим разработчика на шлюзе?',
'XIMI_APP_ACTIVATE_LAN_MODE' => 'Активировать режим разработчика',
'XIMI_APP_DEACTIVATE_LAN_MODE' => 'Деактивировать режим разработчика',
'XIMI_APP_KEY' => 'Ключ',
'XIMI_APP_ON' => 'Включить',
'XIMI_APP_OFF' => 'Выключить'
);

foreach ($dictionary as $k=>$v)
Expand Down
18 changes: 16 additions & 2 deletions languages/xiaomimiio_ua.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@
'XIMI_APP_IN_DEVELOPMENT' => 'Розділ знаходиться в розробці.',
'XIMI_APP_MODULE' => 'Модуль підтримки Wi-Fi пристроїв з екосистеми Xiaomi Mihome, взаємодіючих по протоколу miIO.',
'XIMI_APP_PROJ' => 'Проект у',
'XIMI_APP_DOCS' => 'Документація в',
'XIMI_APP_INKB' => 'Базі знань',
'XIMI_APP_DISCUS' => 'Обговорення модуля на ',
'XIMI_APP_DISCUS2' => 'форумі',
'XIMI_APP_DONATE' => 'Підтримати розробку і розвиток модуля:',
'XIMI_APP_DONATE2' => 'Внутрішній рахунок у',
'XIMI_APP_Author' => 'Автор',
'XIMI_APP_THANKS' => 'Подяки',
'XIMI_APP_NAME' => 'Xiaomi miIO',
'XIMI_APP_CYCLE_STATE' => 'Статус циклу',
'XIMI_APP_CYCLE_START' => 'Цикл увімкнено',
'XIMI_APP_CYCLE_STOP' => 'Цикл зупинений',
'XIMI_APP_IP' => 'IP сервера MajorDoMo ',
Expand Down Expand Up @@ -62,8 +65,19 @@
'XIMI_APP_REQUIRED' => 'Потрібен токен пристрою',
'XIMI_APP_CURRENT' => 'Отримати актуальний стан',
'XIMI_APP_ZIGBEE_NOTICE' => 'Даний модуль дозволяє тільки прив&#39;язати, відв&#39;язати і переглянути список прив&#39;язаних до шлюзу zigbee-пристроїв. Робота з zigbee-пристроями в повному обсязі здійснюється в модулі <b>Xiaomi Home</b>. Встановіть його з маркету доповнень MajorDoMo.',
'XIMI_APP_ATTENTION' => 'Увага'

'XIMI_APP_ATTENTION' => 'Увага',
'XIMI_APP_LAN_MODE' => 'Режим розробника',
'XIMI_APP_ACTIVE' => 'Активний',
'XIMI_APP_NOTACTIVE' => 'Не активний',
'XIMI_APP_LAN_MODE_ON' => 'Режим розробника успішно включений',
'XIMI_APP_LAN_MODE_OFF' => 'Режим розробника успішно вимкнений',
'XIMI_APP_LAN_MODE_ON_ASK' => 'Ви дійсно хочете включити режим розробника на шлюзі?',
'XIMI_APP_LAN_MODE_OFF_ASK' => 'Ви дійсно хочете вимкнути режим розробника на шлюзі?',
'XIMI_APP_ACTIVATE_LAN_MODE' => 'Активувати режим розробника',
'XIMI_APP_DEACTIVATE_LAN_MODE' => 'Деактивувати режим розробника',
'XIMI_APP_KEY' => 'Ключ',
'XIMI_APP_ON' => 'Включити',
'XIMI_APP_OFF' => 'Вимкнути'
);

foreach ($dictionary as $k=>$v)
Expand Down
16 changes: 14 additions & 2 deletions modules/xiaomimiio/miio_devices_edit.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
/*
* @author <[email protected]>
* @copyright 2017-2018 Agaphonov Dmitri aka skysilver <[email protected]> (c)
* @version 1.7b
* @version 1.8b
*/

if ($this->owner->name == 'panel') {
Expand Down Expand Up @@ -221,7 +221,7 @@
elseif ($properties[$i]['TITLE'] == 'limit_hum') $properties[$i]['SDEVICE_TYPE'] = 'sensor_humidity';
}
}
$out['PROPERTIES'] = $properties;
$out['PROPERTIES'] = $properties;
}

if ($this->tab == 'gwradio' && (($rec['DEVICE_TYPE'] == 'lumi.gateway.v3') || ($rec['DEVICE_TYPE'] == 'lumi.acpartner.v3'))) {
Expand Down Expand Up @@ -271,6 +271,18 @@

}

if ($this->tab == '' && (($rec['DEVICE_TYPE'] == 'lumi.gateway.v3') || ($rec['DEVICE_TYPE'] == 'lumi.acpartner.v3'))) {

$lanKey = SQLSelectOne("SELECT VALUE FROM miio_commands WHERE DEVICE_ID='" . $rec['ID'] . "' AND TITLE='lumi_dpf_aes_key'");

if (!empty($lanKey) && isset($lanKey['VALUE']) && $lanKey['VALUE'] != '') {
$out['LAN_KEY'] = $lanKey['VALUE'];
} else {
$out['LAN_KEY'] = '';
}
//$out['LAN_KEY'] = '';
}

if ($this->tab == 'help') {
$out['LANG'] = SETTINGS_SITE_LANGUAGE;
if ($rec['DEVICE_TYPE'] != '') {
Expand Down
76 changes: 46 additions & 30 deletions modules/xiaomimiio/xiaomimiio.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* @package project
* @author <[email protected]>
* @copyright 2017-2018 Agaphonov Dmitri aka skysilver <[email protected]> (c)
* @version 1.7b
* @version 1.8b
*/

define ('MIIO_YEELIGHT_WHITE_BULB_PROPS', 'power,bright,flow_params,flowing');
Expand Down Expand Up @@ -636,9 +636,9 @@ function requestStatus($device_id) {
*
* @access public
*/

function usual(&$out) {

if ($this->ajax) {
global $op;
if ($op == 'process') {
Expand All @@ -652,62 +652,73 @@ function usual(&$out) {
$this->discover();
if ($this->config['API_LOG_DEBMES']) DebMes('Periodic search for devices in the network is finished', 'xiaomimiio');
} else if ($op == 'get_miio_info') {

$dip = $_GET['dip'];
$dtoken = $_GET['dtoken'];

header("HTTP/1.0: 200 OK\n");
header('Content-Type: text/html; charset=utf-8');

if (!class_exists('miIO', false)) {
include_once(DIR_MODULES . 'xiaomimiio/lib/miio.class.php');
}
$this->getConfig();

if ($miio_module->config['API_IP']) $bind_ip = $miio_module->config['API_IP'];
else $bind_ip = '0.0.0.0';
if ($miio_module->config['API_LOG_MIIO']) $miio_debug = true;
else $miio_debug = false;

$dev = new miIO($dip, $bind_ip, $dtoken, $miio_debug);

if ($dev->getInfo(time())) {
if ($dev->data == '') $info = 'Сведения miIO.info не получены. Вероятно, указан неверный токен.';
else $info = $dev->data;
} else $info = 'Что-то пошло не так...';

echo $info;
exit;
} else if ($op == 'test_api_cmd') {

$dip = $_GET['dip'];
$dtoken = $_GET['dtoken'];
$cmd = $_GET['dcmd'];
$opt = $_GET['dopt'];

header("HTTP/1.0: 200 OK\n");
header('Content-Type: text/html; charset=utf-8');

if (!class_exists('miIO', false)) {
include_once(DIR_MODULES . 'xiaomimiio/lib/miio.class.php');
}
$this->getConfig();

if ($miio_module->config['API_IP']) $bind_ip = $miio_module->config['API_IP'];
else $bind_ip = '0.0.0.0';
if ($miio_module->config['API_LOG_MIIO']) $miio_debug = true;
else $miio_debug = false;

$dev = new miIO($dip, $bind_ip, $dtoken, $miio_debug);

if ($dev->msgSendRcv($cmd, $opt, time())) {
if ($dev->data == '') $info = 'Результат выполнения команды не получен. Вероятно, указан неверный токен.';
else $info = $dev->data;
} else $info = 'Что-то пошло не так...';

echo $info;
exit;
}
} else if ($op == 'prop_update') {
$did = $_GET['did'];
$this->requestStatus($did);
if ($this->config['API_LOG_DEBMES']) DebMes('Manual update the properties of the device ' . $did, 'xiaomimiio');
} else if ($op == 'single_prop_update') {
$did = $_GET['did'];
$cmd = $_GET['dcmd'];
$opt = $_GET['dopt'];
$this->addToQueue($did, $cmd, $opt);
$this->getConfig();
if ($this->config['API_LOG_DEBMES']) DebMes('Manual update the one propertie ' . $cmd . 'of the device ' . $did, 'xiaomimiio');
}
echo 'OK';
exit;
}
Expand Down Expand Up @@ -1081,7 +1092,12 @@ function processMessage($message, $command, $device_id) {

$data = json_decode($message, true);

if ($command == 'discover_all') {
if (isset($data['error']) && $data['error'] == 'Device not answered') {
if ($device['ID']) {
$res_commands[] = array('command' => 'online', 'value' => 0);
$res_commands[] = array('command' => 'message', 'value' => $message);
}
} elseif ($command == 'discover_all') {
if (is_array($data['devices'])) {
foreach($data['devices'] as $dev) {
$dev = json_decode($dev, true);
Expand Down Expand Up @@ -1349,18 +1365,18 @@ function processMessage($message, $command, $device_id) {
$res_commands[] = array('command' => 'rel_time', 'value' => $data['result'][2]);
}
}

foreach ($res_commands as $c) {
$cmd = $c['command'];
$val = $c['value'];
if ($cmd == 'power' || $cmd == 'wifi_led' || $cmd == 'buzzer' || $cmd == 'led' || $cmd == 'child_lock'|| $cmd == 'dry') {
if ($val == 'on') $val = 1;
else if ($val == 'off') $val = 0;
}
$this->processCommand($device['ID'], $cmd, $val);
}

}
foreach ($res_commands as $c) {
$cmd = $c['command'];
$val = $c['value'];
if ($cmd == 'power' || $cmd == 'wifi_led' || $cmd == 'buzzer' || $cmd == 'led' || $cmd == 'child_lock'|| $cmd == 'dry') {
if ($val == 'on') $val = 1;
else if ($val == 'off') $val = 0;
}
$this->processCommand($device['ID'], $cmd, $val);
}

}

/**
* Install
Expand Down
Loading

0 comments on commit be68471

Please sign in to comment.