[Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Работа с конкретным оборудованием

Модераторы: immortal, newz20

deemjd
Сообщения: 52
Зарегистрирован: Чт сен 13, 2018 10:20 pm
Благодарил (а): 28 раз
Поблагодарили: 3 раза

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение deemjd » Чт дек 26, 2019 11:24 pm

В коде на запрос данных можете раскомментировать строки диагностики и посмотреть вывод

Код: Выделить всё

$token = getGlobal('TionMagicAir.access_token');
$data = TionGetData($token);
//echo '<pre>';
//print_r($data);// выводим данные для диагностики;
//echo '</pre>';
SetGlobal('TionMagicAir.CO2', $data['zones'][1]['devices'][0]['data']['co2']);
SetGlobal('TionMagicAir.temperature', $data['zones'][1]['devices'][0]['data']['temperature']);
SetGlobal('TionMagicAir.humidity', $data['zones'][1]['devices'][0]['data']['humidity']);
SetGlobal('TionMagicAir.t_in', $data['zones'][1]['devices'][1]['data']['t_in']);
SetGlobal('TionMagicAir.t_set', $data['zones'][1]['devices'][1]['data']['t_set']);
SetGlobal('TionMagicAir.t_out', $data['zones'][1]['devices'][1]['data']['t_out']);
Он вам выдаст все массивы параметров доступные на чтение. Насколько я понимаю за автоуправление отвечает сама станция magicair, ищите параметры которые за это отвечают, передаете и пробуете.
Судя по всему настройки автоуправления находятся в зоне

Код: Выделить всё

                    [guid] => 09e577af-f0c8-6e84-addb-fd2e38239566
                    [name] => Гостиная
                    [type] => unkown
                    [color] => 00ccff
                    [is_virtual] => 
                    [mode] => Array
                        (
                            [current] => manual
                            [auto_set] => Array
                                (
                                    [co2] => 800
                                    [temperature] => 0
                                    [humidity] => 0
                                    [noise] => 0
                                    [pm25] => 0
                                    [pm10] => 0
                                )


также в массиве для зоны выдаются какие-то настройки расписания [schedule] => Array
Можно руками попереключать с приложения и посмотреть скриптом что меняется и на какие параметры.

Потом попробовать самому передать, по аналогии как мы скорость передавали, только другие guid подставить (можно руками прямо в код вписать а не через свойства).

Ну и таким макаром экспериментировать, я пока до этого не дошел)

Обновил пост
VAD07
Сообщения: 155
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 55 раз
Поблагодарили: 11 раз

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение VAD07 » Пт дек 27, 2019 12:36 am

deemjd писал(а):
Чт дек 26, 2019 11:24 pm
В коде на запрос данных можете раскомментировать строки диагностики и посмотреть вывод

Код: Выделить всё

$token = getGlobal('TionMagicAir.access_token');
$data = TionGetData($token);
//echo '<pre>';
//print_r($data);// выводим данные для диагностики;
//echo '</pre>';
SetGlobal('TionMagicAir.CO2', $data['zones'][1]['devices'][0]['data']['co2']);
SetGlobal('TionMagicAir.temperature', $data['zones'][1]['devices'][0]['data']['temperature']);
SetGlobal('TionMagicAir.humidity', $data['zones'][1]['devices'][0]['data']['humidity']);
SetGlobal('TionMagicAir.t_in', $data['zones'][1]['devices'][1]['data']['t_in']);
SetGlobal('TionMagicAir.t_set', $data['zones'][1]['devices'][1]['data']['t_set']);
SetGlobal('TionMagicAir.t_out', $data['zones'][1]['devices'][1]['data']['t_out']);
Он вам выдаст все массивы параметров доступные на чтение. Насколько я понимаю за автоуправление отвечает сама станция magicair, ищите параметры которые за это отвечают, передаете и пробуете.
Судя по всему настройки автоуправления находятся в зоне

Код: Выделить всё

                    [guid] => 09e577af-f0c8-6e84-addb-fd2e38239566
                    [name] => Гостиная
                    [type] => unkown
                    [color] => 00ccff
                    [is_virtual] => 
                    [mode] => Array
                        (
                            [current] => manual
                            [auto_set] => Array
                                (
                                    [co2] => 800
                                    [temperature] => 0
                                    [humidity] => 0
                                    [noise] => 0
                                    [pm25] => 0
                                    [pm10] => 0
                                )


также в массиве для зоны выдаются какие-то настройки расписания [schedule] => Array
Можно руками попереключать с приложения и посмотреть скриптом что меняется и на какие параметры.

Потом попробовать самому передать, по аналогии как мы скорость передавали, только другие guid подставить (можно руками прямо в код вписать а не через свойства).

Ну и таким макаром экспериментировать, я пока до этого не дошел)

Обновил пост
на данный момент получилось только получить состояние авто или ручное.... управлять пока ни как((((
добавил в сценарий SetGlobal('TionMagicAir.mode', $data['zones'][1]['mode'][current]);
VAD07
Сообщения: 155
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 55 раз
Поблагодарили: 11 раз

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение VAD07 » Пт дек 27, 2019 9:08 pm

не получается перевести в ручной режим когда стоит в приложении режим авто. И так же не получается включить режим авто. Нашел еще интересную особенность когда бризер выключен (или опустил уровень CO2 ) скорость рисует какая была последняя в 0 не переходит а вот параметр [speed_m3h] в 0 устанавливается....
Прошу помощи по реализации ручного и авто режима..... ранее писали что настраивается за 5 минут не очень получается.... либо что то не так делаю!? :|
deemjd
Сообщения: 52
Зарегистрирован: Чт сен 13, 2018 10:20 pm
Благодарил (а): 28 раз
Поблагодарили: 3 раза

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение deemjd » Пт дек 27, 2019 9:24 pm

VAD07 писал(а):
Пт дек 27, 2019 12:36 am
на данный момент получилось только получить состояние авто или ручное.... управлять пока ни как((((
добавил в сценарий SetGlobal('TionMagicAir.mode', $data['zones'][1]['mode'][current]);
Неправильно, тут вы не передаете параметры.
1. Берете пример который дал aven, добавляете туда чтение токена из свойства:

Код: Выделить всё

$zone_guid = 'd7c622ec-630e-4a54-86dd-09accfa84f60';
$token = getGlobal('TionMagicAir.access_token');
TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":900}');
2. Изучаете массив информации который выдает облако тион при считывании данных (TionGetdata), ищите в этом массиве раздел где указывается mode, смотрите zone_guid, заменяете в коде выше на свой. Там скорее всего будет две зоны, одна виртуальная и одна с названием вашей комнаты, пробуйте по разному.
По идее после выполнения код должен работать и включать авто режим с уровнем со2 900.

Для диагностики в конце кода добавьте
echo '<pre>';
print_r($result);
echo '</pre>';

будет видно команда выполнилась ли и что вернул сервер.
VAD07
Сообщения: 155
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 55 раз
Поблагодарили: 11 раз

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение VAD07 » Пт дек 27, 2019 9:35 pm

deemjd писал(а):
Пт дек 27, 2019 9:24 pm
VAD07 писал(а):
Пт дек 27, 2019 12:36 am
на данный момент получилось только получить состояние авто или ручное.... управлять пока ни как((((
добавил в сценарий SetGlobal('TionMagicAir.mode', $data['zones'][1]['mode'][current]);
Неправильно, тут вы не передаете параметры.
1. Берете пример который дал aven, добавляете туда чтение токена из свойства:

Код: Выделить всё

$zone_guid = 'd7c622ec-630e-4a54-86dd-09accfa84f60';
$token = getGlobal('TionMagicAir.access_token');
TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":900}');
2. Изучаете массив информации который выдает облако тион при считывании данных (TionGetdata), ищите в этом массиве раздел где указывается mode, смотрите zone_guid, заменяете в коде выше на свой. Там скорее всего будет две зоны, одна виртуальная и одна с названием вашей комнаты, пробуйте по разному.
По идее после выполнения код должен работать и включать авто режим с уровнем со2 900.

Для диагностики в конце кода добавьте
echo '<pre>';
print_r($result);
echo '</pre>';

будет видно команда выполнилась ли и что вернул сервер.
авто режим включается разобрался..... но все же переключение с авто в ручное не работает
deemjd
Сообщения: 52
Зарегистрирован: Чт сен 13, 2018 10:20 pm
Благодарил (а): 28 раз
Поблагодарили: 3 раза

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение deemjd » Пт дек 27, 2019 9:51 pm

а каким кодом пробуете ручной включить? ТАм что то типа mode manual должно быть
VAD07
Сообщения: 155
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 55 раз
Поблагодарили: 11 раз

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение VAD07 » Пт дек 27, 2019 9:58 pm

deemjd писал(а):
Пт дек 27, 2019 9:51 pm
а каким кодом пробуете ручной включить? ТАм что то типа mode manual должно быть

Код: Выделить всё

$zone_guid = 'c---------2-bb0b-4e28-928b-27de2e25ea32';
$device_guid = getGlobal('TionMagicAir.device_guid');
$token = getGlobal('TionMagicAir.access_token');
$result = TionSetMode($token, 'device', $device_guid, $zone_guid, '{"mode":"manual","speed":6,"t_set":20,"is_on":true,"heater_enabled":true,"speed_min_set":0,"speed_max_set":6,"gate":2}');
этим
пробовал и так

Код: Выделить всё

$device_guid = getGlobal('TionMagicAir.device_guid');
$token = getGlobal('TionMagicAir.access_token');
$result = TionSetMode($token, 'device', $device_guid,'{"mode":"manual","speed":6,"t_set":20,"is_on":true,"heater_enabled":true,"speed_min_set":0,"speed_max_set":6,"gate":2}');
deemjd
Сообщения: 52
Зарегистрирован: Чт сен 13, 2018 10:20 pm
Благодарил (а): 28 раз
Поблагодарили: 3 раза

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение deemjd » Пт дек 27, 2019 10:09 pm

Я думаю что оба неправильные.
Функция должна вызываться отдельно для управления бризером и для управления зоной. Там передаются разные параметры, не мешайте в кучу. Какие параметры можно передавать - смотрите через getdata

Управление самим бризером
TionSetMode($token, 'device',$device_guid,'{"mode":"manual","speed":6,..........');

управление зоной (режим, уровни со и тд)
TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":900}');
VAD07
Сообщения: 155
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 55 раз
Поблагодарили: 11 раз

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение VAD07 » Вс дек 29, 2019 11:55 am

Так и ничего не получается. Aven если есть у вас возможность может сможете помочь!?

Отправлено с моего ZB602KL через Tapatalk

VAD07
Сообщения: 155
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 55 раз
Поблагодарили: 11 раз

Re: [Железо] Tion MagicAir - Интеграция с облаком (Неофициальное API)

Сообщение VAD07 » Пн дек 30, 2019 7:37 am

deemjd писал(а):Я думаю что оба неправильные.
Функция должна вызываться отдельно для управления бризером и для управления зоной. Там передаются разные параметры, не мешайте в кучу. Какие параметры можно передавать - смотрите через getdata

Управление самим бризером
TionSetMode($token, 'device',$device_guid,'{"mode":"manual","speed":6,..........');

управление зоной (режим, уровни со и тд)
TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":900}');
Вы сами пробовали это настроить? У вас тион 2 или 3?

Отправлено с моего ZB602KL через Tapatalk

Ответить