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

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

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

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

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

Сообщение deemjd » Ср янв 01, 2020 5:12 pm

VAD07 писал(а):
Пн дек 30, 2019 7:37 am
Я вам давал примеры куда копать чтобы все заработало. Прямо сейчас по этим примера написал себе код - все работает. Включается авторежим, включается ручной. Все срабатывает. У меня Tion O2 + MA.

Вот мой код для запроса данных:

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

$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']);
SetGlobal('TionMagicAir.device_guid', $data['zones'][1]['devices'][1]['guid']);
SetGlobal('TionMagicAir.zone_guid', $data['zones'][1]['guid']);

SetGlobal('Sensor_general01.value', $data['zones'][1]['devices'][0]['data']['co2']);
SetGlobal('Sensor_temphum04.value', $data['zones'][1]['devices'][0]['data']['temperature']);
SetGlobal('Sensor_temphum04.valueHumidity', $data['zones'][1]['devices'][0]['data']['humidity']);
SetGlobal('Sensor_temp05.value', $data['zones'][1]['devices'][1]['data']['t_in']);
SetGlobal('Sensor_temp06.value', $data['zones'][1]['devices'][1]['data']['t_out']);
Код для управления:

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

$device_guid = getGlobal('TionMagicAir.device_guid');
$zone_guid = getGlobal('TionMagicAir.zone_guid');
$token = getGlobal('TionMagicAir.access_token');
$result_zone = TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":750}');
$result_device = TionSetMode($token, 'device', $device_guid, '{"speed":3,"t_set":21,"is_on":true,"heater_enabled":true,"speed_min_set":1,"speed_max_set":4}');

echo '<pre>';
print_r($result_device); // выводим данные для диагностики;
echo 'Данные зоны<br>';
print_r($result_zone); // выводим данные для диагностики;
echo '</pre>';
Сначала в коде нужно управлятье зоной (контроллер MagicAir) затем бризером (device). Это нужно потому что если вы в зоне ставите manual, то нужно передать данные бризеру по каким конкретно настройкам работать.

Если написать "mode":"auto" то включается авто режим, если "mode":"manual" то ручной.
В авто режиме для device можно задавать настройки ограничения скорости, которые работают в авторежиме у бризера "speed_min_set":0,"speed_max_set":4
VAD07
Сообщения: 138
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 53 раза
Поблагодарили: 11 раз

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

Сообщение VAD07 » Ср янв 01, 2020 7:21 pm

deemjd писал(а):
Ср янв 01, 2020 5:12 pm
VAD07 писал(а):
Пн дек 30, 2019 7:37 am
Я вам давал примеры куда копать чтобы все заработало. Прямо сейчас по этим примера написал себе код - все работает. Включается авторежим, включается ручной. Все срабатывает. У меня Tion O2 + MA.

Вот мой код для запроса данных:

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

$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']);
SetGlobal('TionMagicAir.device_guid', $data['zones'][1]['devices'][1]['guid']);
SetGlobal('TionMagicAir.zone_guid', $data['zones'][1]['guid']);

SetGlobal('Sensor_general01.value', $data['zones'][1]['devices'][0]['data']['co2']);
SetGlobal('Sensor_temphum04.value', $data['zones'][1]['devices'][0]['data']['temperature']);
SetGlobal('Sensor_temphum04.valueHumidity', $data['zones'][1]['devices'][0]['data']['humidity']);
SetGlobal('Sensor_temp05.value', $data['zones'][1]['devices'][1]['data']['t_in']);
SetGlobal('Sensor_temp06.value', $data['zones'][1]['devices'][1]['data']['t_out']);
Код для управления:

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

$device_guid = getGlobal('TionMagicAir.device_guid');
$zone_guid = getGlobal('TionMagicAir.zone_guid');
$token = getGlobal('TionMagicAir.access_token');
$result_zone = TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":750}');
$result_device = TionSetMode($token, 'device', $device_guid, '{"speed":3,"t_set":21,"is_on":true,"heater_enabled":true,"speed_min_set":1,"speed_max_set":4}');

echo '<pre>';
print_r($result_device); // выводим данные для диагностики;
echo 'Данные зоны<br>';
print_r($result_zone); // выводим данные для диагностики;
echo '</pre>';
Сначала в коде нужно управлятье зоной (контроллер MagicAir) затем бризером (device). Это нужно потому что если вы в зоне ставите manual, то нужно передать данные бризеру по каким конкретно настройкам работать.

Если написать "mode":"auto" то включается авто режим, если "mode":"manual" то ручной.
В авто режиме для device можно задавать настройки ограничения скорости, которые работают в авторежиме у бризера "speed_min_set":0,"speed_max_set":4
С наступившим новым годом. Спасибо все получилось. еще не подскажете за что отвечает "gate":2 у Aven в примерах пробовал с ним и без него вроде ничего не меняется!?

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

//$result = TionSetMode($token, 'device', $device_guid, '{"speed":6,"t_set":20,"is_on":true,"heater_enabled":true,"speed_min_set":0,"speed_max_set":6,"gate":2}');
VAD07
Сообщения: 138
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 53 раза
Поблагодарили: 11 раз

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

Сообщение VAD07 » Ср янв 01, 2020 7:25 pm

VAD07 писал(а):
Ср янв 01, 2020 7:21 pm
deemjd писал(а):
Ср янв 01, 2020 5:12 pm
VAD07 писал(а):
Пн дек 30, 2019 7:37 am
Я вам давал примеры куда копать чтобы все заработало. Прямо сейчас по этим примера написал себе код - все работает. Включается авторежим, включается ручной. Все срабатывает. У меня Tion O2 + MA.

Вот мой код для запроса данных:

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

$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']);
SetGlobal('TionMagicAir.device_guid', $data['zones'][1]['devices'][1]['guid']);
SetGlobal('TionMagicAir.zone_guid', $data['zones'][1]['guid']);

SetGlobal('Sensor_general01.value', $data['zones'][1]['devices'][0]['data']['co2']);
SetGlobal('Sensor_temphum04.value', $data['zones'][1]['devices'][0]['data']['temperature']);
SetGlobal('Sensor_temphum04.valueHumidity', $data['zones'][1]['devices'][0]['data']['humidity']);
SetGlobal('Sensor_temp05.value', $data['zones'][1]['devices'][1]['data']['t_in']);
SetGlobal('Sensor_temp06.value', $data['zones'][1]['devices'][1]['data']['t_out']);
Код для управления:

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

$device_guid = getGlobal('TionMagicAir.device_guid');
$zone_guid = getGlobal('TionMagicAir.zone_guid');
$token = getGlobal('TionMagicAir.access_token');
$result_zone = TionSetMode($token, 'zone', $zone_guid, '{"mode":"auto","co2":750}');
$result_device = TionSetMode($token, 'device', $device_guid, '{"speed":3,"t_set":21,"is_on":true,"heater_enabled":true,"speed_min_set":1,"speed_max_set":4}');

echo '<pre>';
print_r($result_device); // выводим данные для диагностики;
echo 'Данные зоны<br>';
print_r($result_zone); // выводим данные для диагностики;
echo '</pre>';
Сначала в коде нужно управлятье зоной (контроллер MagicAir) затем бризером (device). Это нужно потому что если вы в зоне ставите manual, то нужно передать данные бризеру по каким конкретно настройкам работать.

Если написать "mode":"auto" то включается авто режим, если "mode":"manual" то ручной.
В авто режиме для device можно задавать настройки ограничения скорости, которые работают в авторежиме у бризера "speed_min_set":0,"speed_max_set":4
С наступившим новым годом. Спасибо все получилось. еще не подскажете за что отвечает "gate":2 у Aven в примерах пробовал с ним и без него вроде ничего не меняется!?

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

//$result = TionSetMode($token, 'device', $device_guid, '{"speed":6,"t_set":20,"is_on":true,"heater_enabled":true,"speed_min_set":0,"speed_max_set":6,"gate":2}');
нашел "gate" отвечает за режим забора воздуха 0 из комнаты, 1 смешанный, 2 с улицы.
если нагреватель включен он не дает включать режимы забора воздуха 0 и 1
Последний раз редактировалось VAD07 Чт янв 02, 2020 11:47 pm, всего редактировалось 1 раз.
За это сообщение автора VAD07 поблагодарил:
deemjd (Ср янв 01, 2020 10:54 pm)
Рейтинг: 1.23%
VAD07
Сообщения: 138
Зарегистрирован: Ср май 31, 2017 10:54 pm
Откуда: Киров
Благодарил (а): 53 раза
Поблагодарили: 11 раз

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

Сообщение VAD07 » Ср янв 01, 2020 11:21 pm

мало ли кому пригодится: run_seconds Время наработки в секундах, filter_time_seconds до замены фильтра осталось в секундах.
перевел в дни с помощью кода

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

$run_seconds = $this->getProperty('run_seconds');
$second="87840";
$run_day1 = ($run_seconds/$second);
$run_day = round($run_day1);
$this->setProperty('run_day',$run_day);
не ругайте еще учусь)))
За это сообщение автора VAD07 поблагодарил:
ipc2002 (Пн янв 13, 2020 12:16 am)
Рейтинг: 1.23%
Ответить