PDA

Просмотр полной версии : API для OwenCloud



capzap
03.04.2018, 13:41
Здравствуйте. API в открытом доступе - что мешает получать данные напрямую с сервиса?
c API всё в порядке, не отключен, что бы не опросил такая запись приходит, токен получал с личного кабинета, а не через авторизацию, потому что тоже не работает
{"name":"Unauthorized","message":"Your request was made with invalid credentials.","code":0,"status":401}

dsyabitov
03.04.2018, 14:07
c API всё в порядке, не отключен, что бы не опросил такая запись приходит, токен получал с личного кабинета, а не через авторизацию, потому что тоже не работает
{"name":"Unauthorized","message":"Your request was made with invalid credentials.","code":0,"status":401}

Здравствуйте.
Вероятно Вы используете доступ через http, а не https.
Правильный url - https://api.owencloud.ru/v1/auth/open
Пример:
Получаем токен авторизации http://joxi.ru/4AkoGN7iywV9RA
Получаем список устройств http://joxi.ru/ZrJYp7ac9jkOzA

capzap
03.04.2018, 14:24
крайни раз на этот адрес заходил HttpPost("https://api.owencloud.ru/v1/parameters/last-data")

dsyabitov
03.04.2018, 14:43
крайни раз на этот адрес заходил HttpPost("https://api.owencloud.ru/v1/parameters/last-data")

http://joxi.ru/brR5Y01tJl89NA

capzap
03.04.2018, 14:47
виноват, всё работает, просто Bearer не в ту строчку записал

dsyabitov
03.04.2018, 20:33
виноват, всё работает, просто Bearer не в ту строчку записал

Ничего. Бывает...

capzap
04.04.2018, 21:03
http://joxi.ru/brR5Y01tJl89NA

в чем магия? У меня возвращает пустые скобки, при чем если я сделаю как на скрине пробел перед ids выдает ошибку Bad request

dsyabitov
05.04.2018, 06:53
в чем магия? У меня возвращает пустые скобки, при чем если я сделаю как на скрине пробел перед ids выдает ошибку Bad request

Здравствуйте.
Пришлите в личку скрин с запросом.

capzap
05.04.2018, 15:36
спасибо за подсказку на предыдущий вопрос, ошибку свою увидел, данные поучаю

еще вопрос по поводу фильтрации, есть у меня два объекта "name":"МК210-302" и "name":"пр200"
пробую фильтровать

post("https://api.owencloud.ru/v1/device/index", "{\"filter\":\"200\"}")
возвращаются пустые скобки, без фильтра оба прибора возвращаются

capzap
05.04.2018, 22:11
{"data":[{"id":560909,"value":"6057"}],"sms_code":"","sms_tag":"","sync":false,"timeout":60}
{"name":"Bad Request","message":"You should provide ids","code":0,"status":400}ответы вообще не информативны, плохой запрос заключался не в ИД, а в url-е, тест копировал с чтения и не поменял на write , теперь
{"data":[{"id":560909,"value":"1059"}],"sms_code":"","sms_tag":"","sync":false,"timeout":60}
{"writeGroupId":306213,"writeParams":[{"paramId":560909,"writeParamId":325013}]}

dsyabitov
06.04.2018, 09:40
спасибо за подсказку на предыдущий вопрос, ошибку свою увидел, данные поучаю

еще вопрос по поводу фильтрации, есть у меня два объекта "name":"МК210-302" и "name":"пр200"
пробую фильтровать

post("https://api.owencloud.ru/v1/device/index", "{\"filter\":\"200\"}")
возвращаются пустые скобки, без фильтра оба прибора возвращаются

Здравствуйте.

Запрос действительно не работает. Будем исправлять. Спасибо за найденную ошибку.

dsyabitov
06.04.2018, 09:42
ответы вообще не информативны, плохой запрос заключался не в ИД, а в url-е, тест копировал с чтения и не поменял на write , теперь

Чуть больше подробностей. Какой запрос некорректно работал? Или Вы перепутали урлы?

capzap
06.04.2018, 09:58
Чуть больше подробностей. Какой запрос некорректно работал? Или Вы перепутали урлы?
да я перепутал url, а "message":"You should provide ids" направляет меня искать проблему в другую сторону

dsyabitov
06.04.2018, 12:01
да я перепутал url, а "message":"You should provide ids" направляет меня искать проблему в другую сторону

Ну, тут Вы перепутали урл. Тому урлу нужны ID. Он же не может догадаться, что к нему по ошибке пришли и указать точный адрес, куда нужно обратиться клиенту.

capzap
06.04.2018, 12:26
если постараться то можно, понятно что тяжело и отчасти бесполезно прописывать всё, но я же не углублялся в тонкости, простые же команды чтения и записи. Валидация POST-запроса наверняка имеется, в любом чтении обязательно присутствует ids, так же только в записи имеется data. Раз уж пришел некорректный запрос, серверу не составит труда разобрать пост запрос, чтоб вернуть нужную ошибку. Соглашусь конечно что подобного рода ошибки возникают один раз в самом начале но вернуть в этой строчке path и сам post-запрос было бы информативнее

nix13
22.08.2018, 09:47
Непонятки с терминологией. Где в API опрос текущего состояния входов модуля дискретного ввода?
:confused:
Вот через gsm шлюз подключён модуль дискретного ввода, и у него на входе1 допустим, поплавок водяного бака.
Как опросить вход1 чтобы понять - полон бак или пуст?

Я так понимаю, как-то можно получить 16-битное число, с отображением текущего состояния входов, типа 1100000010001111 ? Нет? Период опроса(связи с прибором) особо некритичен.

capzap
22.08.2018, 10:46
Непонятки с терминологией. Где в API опрос текущего состояния входов модуля дискретного ввода?
:confused:
Вот через gsm шлюз подключён модуль дискретного ввода, и у него на входе1 допустим, поплавок водяного бака.
Как опросить вход1 чтобы понять - полон бак или пуст?

Я так понимаю, как-то можно получить 16-битное число, с отображением текущего состояния входов, типа 1100000010001111 ? Нет? Период опроса(связи с прибором) особо некритичен.

так в самом облаке есть параметр, который считывает маску входов с прибора. Сперва облако опрашивает прибор, а потом уже по API можно получить значение параметра, если есть с чего брать

nix13
22.08.2018, 11:44
bitmask_value - это оно? оно доступно и для модулей дискретного ввода, и для модулей дискретного вывода?

krollcbas
26.09.2018, 19:13
Если параметр уже в облаке, в сети. Полагаю что существует возможность вывода значения на html странице.
Зачем нужно?
Например, есть демонстрационная задача прям на сайте демонстрировать в онлайне, например, значения температур.

Возможно ли вывести значение на стороннем сайте?

capzap
26.09.2018, 19:33
это (https://www.google.ru/search?newwindow=1&source=hp&ei=h7SrW_L-F8GwsQHkoKKYBg&q=php+%D0%B8+oauth2&oq=php+%D0%B8+qauth) должно помочь

Scream
26.09.2018, 20:29
Нужно воспользоваться API облака.

Одесса
12.10.2018, 15:49
Необходима консультация. Обращался к куратору темы. Ноль в ответ. Проблема такая. Хочу,не вникая в кучу
функций АПИ, записать показания с модуля МВ 110 ТД1(аналоговые показания тензодатчика) на овеновский
сервер. Может ли кто то написать в двух форматах этот запрос? С ответом разберусь сам. Спасибо.

capzap
12.10.2018, 18:46
вот что у меня осталось после ознакомления с документацией

MrNobody
14.10.2018, 19:45
Добрый вечер! Прошу помощи.
Не получается получить token для авторизации.
С помощью программы Postman сформировался URL "https://api.owencloud.ru/v1/auth/open?{"login"="demo@owen.ru","password":"demo123", но в ответ приходит или ошибка 400 или 401.
39200
39201
39202

MrNobody
14.10.2018, 20:39
это не POST запрос, а ближе к GET
Возможно, но я сделал все по примеру как в этом сообщении (http://www.owen.ru/forum/showthread.php?t=28578&p=274744&viewfull=1#post274744), а там указан POST запрос (http://joxi.ru/4AkoGN7iywV9RA)
Поменял Post на Get, но получил также ошибку 401

capzap
14.10.2018, 20:48
Возможно, но я сделал все по примеру как в этом сообщении (http://www.owen.ru/forum/showthread.php?t=28578&p=274744&viewfull=1#post274744), а там указан POST запрос (http://joxi.ru/4AkoGN7iywV9RA)
Поменял Post на Get, но получил также ошибку 401

не туда Вы вставляете JSON

MrNobody
14.10.2018, 20:56
нет не всё, Вы взяли логин пароль из документации, а dsyabitov использует другую пару для входа. И как я говорил, не туда Вы вставляете JSON
Спасибо за помощь!

Одесса
14.10.2018, 22:09
прибор через шлюз или плк с новой прошивкой общаются с облаком посредством токенов тоже, поэтому говорить о том чтоб обойти эту систему я смысла не вижу, а МАС адрес определяет уникальность прибора во всей подключаемой базе устройств облака

Та я все это понимаю. МАС адрес ихнего прибора овеновского?

melky
15.10.2018, 09:27
речь о МАС адресе не любого прибора Овен а только ПЕ или ПЛК с новой прошивкой для работы с облаком. Простые приборы Овен тусуются в стороне.
Так что оставьте свои желания просто присуропить любые приборы Овен к облаку без ПЕ. тем более у приборов и сетевой карты нет, чтобы что-то прикручивать.

желание сменить адрес в планшете ?

e.filatov
15.10.2018, 16:27
Необходима консультация. Обращался к куратору темы. Ноль в ответ. Проблема такая. Хочу,не вникая в кучу
функций АПИ, записать показания с модуля МВ 110 ТД1(аналоговые показания тензодатчика) на овеновский
сервер. Может ли кто то написать в двух форматах этот запрос? С ответом разберусь сам. Спасибо.

Ну в принципе есть вариант как это сделать:
1) Подключить 1ТД к планшету, преобразовав чистый UART в RS485;
2) Организовать опрос 1ТД приложением с планшета по его карте регистров;
3) Узнать у разрабов порядок соединения, принцип идентификации и формат запросов.
4) Зарегать планшет на облаке, в качестве ID использовать MAC планшета
5) Создать произвольное устройство Modbus
6) Придумать карту регистров, которую облако будет опрашивать
7) Отвечать на запросы сервера.

В принципе всё, кроме пункта 3, вы можете сделать. Или же просто купить один из шлюзов, в котором всё сделали за Вас

В дополнение ответа про "Наврали про все приборы".

В мире давно гуляет куча облаков, которые позволяют подключать устройства с различными протоколами обмена. И поверьте, из них я как то не припоминаю бесплатных. Бывал на одной конференции. Рассказывали про стратегию их облака "Абсолютно любое устройство". На их платформе реализована диспетчеризации производства самолётов Airbus. А теперь самое веселое - минимальная годовая подписка с лимитом по количеству устройств порядка 30 000 у.е. Если же Вам необходимо добавить своё устройство - придётся платить за разработку модуля.
Так что либо платить приличные деньги, на которые будут содержатся кучи серверов и разработчков, либо использовать бесплатные аналоги, но узкопрофильные (точнее заточенные под ограниченный спикок устройств/протоколов).

MrNobody
16.10.2018, 09:52
в чем магия? У меня возвращает пустые скобки, при чем если я сделаю как на скрине пробел перед ids выдает ошибку Bad request

capzap, а можете подсказать в чем проблема была (http://www.owen.ru/forum/showthread.php?t=28578&p=274935&viewfull=1#post274935) с запросом https://api.owencloud.ru/v1/parameters/last-data ? Мне также приходит ответ "[]".

capzap
16.10.2018, 10:20
если честно, то я это делал "на коленке", особо не вникал, значит просто синтаксис. Вы бы показали скрин запроса, только вместо id прибора нули поставте и токен сотрите

MrNobody
16.10.2018, 11:34
если честно, то я это делал "на коленке", особо не вникал, значит просто синтаксис. Вы бы показали скрин запроса, только вместо id прибора нули поставте и токен сотрите

Токен ставлю тот, который приходит в ответ на https://api.owencloud.ru/v1/auth/open.
А вот, где смотреть ids параметров в cloud, так и не разобрался...

capzap
16.10.2018, 11:39
ну я имел ввиду, здесь на форуме не "светите" токеном и прибором. А так у Вас не правильный Content TYpe

MrNobody
18.10.2018, 09:25
ну я имел ввиду, здесь на форуме не "светите" токеном и прибором. А так у Вас не правильный Content TYpe

Спасибо, capzap. Разобрался с проблемой.

1С1С
07.11.2018, 19:50
Здравствуйте!
Такой вопрос:
Подключаюсь к api из 1С, получаю токен, список приборов, а запрос Получения последних данных с прибора - POST parameters/last-data возвращает статус 200, и пустой ответ. Что это может быть?

dsyabitov
08.11.2018, 06:17
Здравствуйте!
Такой вопрос:
Подключаюсь к api из 1С, получаю токен, список приборов, а запрос Получения последних данных с прибора - POST parameters/last-data возвращает статус 200, и пустой ответ. Что это может быть?

Здравствуйте.
В id's надо подавать ID параметров, по которым хотите получить данные. Вы, вероятнее всего, подаете id устройств. Вот пример: http://joxi.ru/n2YaO6QCoXxkl2

1С1С
08.11.2018, 09:16
Хорошо, благодарю за быстрый ответ.
Тогда другой вопрос: каким запросом мне получить показания счетчиков?

dsyabitov
08.11.2018, 09:32
Хорошо, благодарю за быстрый ответ.
Тогда другой вопрос: каким запросом мне получить показания счетчиков?

Каких счетчиков? У вас есть прибор, у прибора есть параметры. Вот значение параметра Вы и получите через last-data

1С1С
08.11.2018, 10:10
Каких счетчиков? У вас есть прибор, у прибора есть параметры. Вот значение параметра Вы и получите через last-data

У меня есть Терморегулятор ТРМ-201, как мне получить показания этого прибора за последние сутки?
Может я конечно глупые вопросы задаю, прошу простить за это, я специалист по 1С и стоит задача забрать данные и сравнить с данными производства.

dsyabitov
08.11.2018, 11:28
У меня есть Терморегулятор ТРМ-201, как мне получить показания этого прибора за последние сутки?
Может я конечно глупые вопросы задаю, прошу простить за это, я специалист по 1С и стоит задача забрать данные и сравнить с данными производства.

Если хотите получить данные за сутки - используйте запрос parameters/data .

1С1С
08.11.2018, 12:09
Если хотите получить данные за сутки - используйте запрос parameters/data .

Спасибо. В ids мне что передать? Я получила список приборов компании в parameters/data мне передавать id или identifier по приборам по которым я хочу получить данные? Или мне по каждому прибору отдельно запрашивать показания?

dsyabitov
08.11.2018, 13:22
Спасибо. В ids мне что передать? Я получила список приборов компании в parameters/data мне передавать id или identifier по приборам по которым я хочу получить данные? Или мне по каждому прибору отдельно запрашивать показания?

Документация и даже с примером здесь - https://api.owencloud.ru/

1С1С
08.11.2018, 13:45
Документация и даже с примером здесь - https://api.owencloud.ru/

Именно ее я и читаю, я получила список приборов, передаю в ids id прибора по которому хочу получить данные, api возвращает мне код возврата 200 и пустой ответ [].
Мы вернулись к тому с чего я начала, что из того, что я получила при выполнении запроса со списком приборов, мне необходимо передать в параметре ids запроса POST parameters/data, чтоб получить не пустой ответ, а ответ с показаниями?

dsyabitov
08.11.2018, 14:23
Именно ее я и читаю, я получила список приборов, передаю в ids id прибора по которому хочу получить данные, api возвращает мне код возврата 200 и пустой ответ [].
Мы вернулись к тому с чего я начала, что из того, что я получила при выполнении запроса со списком приборов, мне необходимо передать в параметре ids запроса POST parameters/data, чтоб получить не пустой ответ, а ответ с показаниями?

http://joxi.ru/a2XZO5qI1EXywr

1С1С
08.11.2018, 15:10
http://joxi.ru/a2XZO5qI1EXywr

Что такое идентификатор параметра и где мне его взять? В личном кабинете или отдельным запросом?

dsyabitov
08.11.2018, 18:24
Что такое идентификатор параметра и где мне его взять? В личном кабинете или отдельным запросом?

В ответе запроса информации по устройству. Читайте внимательно документацию по API, там все есть.

Sayland
15.11.2018, 23:19
Господа!!! Кто может помочь? Нужен простенький пример обращения к api на HTML.

capzap
20.11.2018, 06:44
так всё зависит от постановки вопроса, какой на фиг HTML, этот язык не умеет посылать такие запросы

Sayland
23.11.2018, 19:20
[QUOTE=capzap;293095]так всё зависит от постановки вопроса, какой на фиг HTML, этот язык не умеет посылать такие запросы[/QUOT

И скрипты из него не запускаются...
"Спасибо за помочь" Наверное самый содержательный ответ, Учитывая что он единственный.

capzap
23.11.2018, 19:28
так всё зависит от постановки вопроса, какой на фиг HTML, этот язык не умеет посылать такие запросы[/QUOT

И скрипты из него не запускаются...
"Спасибо за помочь" Наверное самый содержательный ответ, Учитывая что он единственный.
т.е. мы должны догадываться что Вы хотите на скриптах это сделать, а потом окажется что свою страничку Вы где нибудь на php делаете и т.д.. HTML это язык разметки

вот еще более содержательная информация https://developers.google.com/identity/protocols/OAuth2UserAgent для Вас

Sayland
23.11.2018, 19:37
Да, пробую сделать страничку. Я пытаюсь разобраться как это работает. Для начала отправить запрос и получить ответ из браузера.
Вы можете помочь.

Sayland
10.12.2018, 13:46
Спасибо, господа за помочь. Разобрался сам. Но столкнулся с другой проблемой. Браузер блокирует запросы из за отсутствия заголовка "Access-Control-Allow-Origin: *". Как это можно обойти.

capzap
10.12.2018, 14:05
https://imapo.ru/%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-no-access-control-allow-origin/ и что ни один из способов не помогает?

StanZelen
11.12.2018, 15:29
Присоединяюсь к теме, та же проблема. Возможно ли получить данные через ajax ?
var rec = [{ "login": "login", "password":"password"}];
$.ajax({
type: "POST",
url: "https://api.owencloud.ru/v1/auth/open",
data: rec,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
dataType: "json",
success: function (data) { alert(data); }
});
не возвращает ровным счетом ничего

dsyabitov
12.12.2018, 08:44
Спасибо, господа за помочь. Разобрался сам. Но столкнулся с другой проблемой. Браузер блокирует запросы из за отсутствия заголовка "Access-Control-Allow-Origin: *". Как это можно обойти.

Здравствуйте.

CORS разрешен для протокола HTTPS и работает. Соответствующие изменения внесены на сервер.

dsyabitov
12.12.2018, 08:57
<!DOCTYPE html>
<html lang="ru-RU">

<head>
<meta charset="UTF-8">

<meta name="Access-Control-Allow-Origin" content="*">
<meta name="Access-Control-Allow-Headers" content="*">
</head>

<body>
<script type="text/javascript">

function transferComplete(evt) {
console.log(this.responseText);
}

function transferFailed(evt) {
console.log("An error occurred while transferring the file.");
console.log(this.responseText);
console.log(evt);
}

var oReq = new XMLHttpRequest();

oReq.addEventListener("load", transferComplete);
oReq.addEventListener("error", transferFailed);

oReq.open("POST", "https://api.owencloud.ru/v1/auth/open", true);

oReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

oReq.send('{"login":"demo@owen.ru","password":"demo123"}');
</script>
</body>

</html>

StanZelen
12.12.2018, 15:08
dsyabitov, спасибо большое, все заработало )

Sayland
12.12.2018, 19:17
Здравствуйте.

CORS разрешен для протокола HTTPS и работает. Соответствующие изменения внесены на сервер.

Спасибо!!! буду пробовать.

Sayland
12.12.2018, 19:33
https://imapo.ru/%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-no-access-control-allow-origin/ и что ни один из способов не помогает?

Это и сделали господа из тех поддержки, а у меня доступа к их серверу нет.

Sayland
13.12.2018, 20:14
Заработало частично. токен получаю. данные о приборах тоже только без токена. Как только подставляю заголовок токен к запросу https://api.owencloud.ru/v1/parameters/last-data опят ругается на CORS.

Sayland
13.12.2018, 20:40
Заработало частично. токен получаю. данные о приборах тоже только без токена. Как только подставляю заголовок Authorization к запросу https://api.owencloud.ru/v1/parameters/last-data опят ругается на CORS. Выкладываю пример с запросом токена, если в тексте снять комментарий с заголовка авторизации, браузер будет ругаться на CORS
40372

Scream
13.12.2018, 21:09
Если я правильно понял, то Sayland пытается из этой странички сделать запрос на овен, она сама располагается у него на web сервере (домене).
По факту post запрос на чужой домен из Js, но насколько мне известно это запрещено.
Вот нагуглил статью (http://javascript.ru/ajax/cross-domain-scripting)
Знаю что есть способ обойти, но это явно не тот случай.
Я считаю что этот код работать не должен или я не прав?

Sayland
14.12.2018, 00:09
Если я правильно понял, то Sayland пытается из этой странички сделать запрос на овен, она сама располагается у него на web сервере (домене).
По факту post запрос на чужой домен из Js, но насколько мне известно это запрещено.
Вот нагуглил статью (http://javascript.ru/ajax/cross-domain-scripting)
Знаю что есть способ обойти, но это явно не тот случай.
Я считаю что этот код работать не должен или я не прав?

Вы не правы. Это решает компания овен, разрешить браузеру опрашивать их их сервер или нет. И где страничка будет лежать, на сервере или на мобильном телефоне не имеет не какого значения. Это просто набор команд для браузера.
К тому же код работает.

dsyabitov
14.12.2018, 08:18
Здравствуйте.

Остальные запросы тоже должны работать.

Sayland
14.12.2018, 11:09
Здравствуйте.

Остальные запросы тоже должны работать.
Спасибо!!!!!!!!
Очень оперативно.
Все заработало!!!!!!!:)

Sayland
14.12.2018, 12:39
Господа!!! Кто может помочь? Нужен простенький пример обращения к api на HTML.
Выкладываю пример обращения к api.owencloud.ru.
Код примера получает токен из демо owencloud и получает значения 2х параметров.
Для начального понимания вопроса вполне достаточно. Следующем шагом думаю городить библиотеку для работы с api.owencloud.ru.
40382

Sayland
19.12.2018, 09:48
Неудобно что данные в ответе с https://api.owencloud.ru/v1/parameters/last-data приходят не в очередности запроса, а по возрастанию.

Sayland
20.12.2018, 01:35
Модераторам! По прочтению удалите. НЕ имеет отношения к теме.
Извиняюсь не предполагал что могу кого-то обидеть. Просто "не заметил" примера от 12 числа.
Веселые вы ребята!!!

Зарина
18.01.2019, 13:23
здравствуйте, токен получила, данные id своего прибора тоже, но запрос https://api.owencloud.ru/v1/parameters/last-data выдает
{"name": "Unauthorized",
"message": "Your request was made with invalid credentials.",
"code": 0,
"status": 401}
В чем может быть проблема?

dsyabitov
18.01.2019, 13:42
здравствуйте, токен получила, данные id своего прибора тоже, но запрос https://api.owencloud.ru/v1/parameters/last-data выдает
{"name": "Unauthorized",
"message": "Your request was made with invalid credentials.",
"code": 0,
"status": 401}
В чем может быть проблема?

Здравствуйте.
Authorization: Bearer XXX в отправляемых заголовках присутствует?

Зарина
18.01.2019, 14:15
Да, прописала токен что получила, могу прислать скрин
П.С. обновила токен, теперь приходит просто скобки []
ПРибор онлайн, на OwenCloud данные идут

dsyabitov
18.01.2019, 20:20
Да, прописала токен что получила, могу прислать скрин
П.С. обновила токен, теперь приходит просто скобки []
ПРибор онлайн, на OwenCloud данные идут

В теле запроса необходимо передавать идентификаторы параметров, а не идентификатор устройства. Вы, скорее всего, передаете именно id устройства.

Зарина
21.01.2019, 13:18
Здравствуйте, все разобралась, данные получила, спасибо. А не подскажите как называется параметр возвращающий время измерения, что-то пролистала пришедшие данные и не увидела

Sayland
26.01.2019, 09:32
А не подскажите как называется параметр возвращающий время измерения

https://api.owencloud.ru/#parameter

krollcbas
01.03.2019, 21:00
Вот что у нас получилось:
Управление умным домом посредством технологии OwenСloudhttp://lapshinvr.ru/smart-house.php

StanZelen
27.04.2019, 14:05
Добрый день!
Мы занимаемся созданием веб-скады на технологии owencloud(Мониторингом и дистанционным управлением).
42487
При реализации возникают следующие проблемы - посылаю запрос на получение данных
POST /v1/parameters/data HTTP/1.1
отправляю запрос в овенклауд - {"ids":[1454949],"start":"2019-04-27 00:00:00","end":"2019-04-27 13:00:00","step":1}
Дата начала - 2019-04-27 00:00:00
Дата окончания - 2019-04-27 13:00:00
В итоге owencloud возвращает мне некорректный диапазон дат
Начало - 2019-04-26 09:04:12
Окончание - 2019-04-27 10:04:00
Вот тут (http://lapshinvr.ru/title.php) можно посмотреть текст запроса и возвращаемые значения.

В чем может быть проблема? Совсем голову сломал уже.

StanZelen
27.04.2019, 14:58
С проблемой разобрался - неправильно конвертировал дату из unixtime.

krollcbas
17.06.2019, 10:29
Системы жизнеобеспечения зданий, диспетчеризация. Заканчиваем разработку проекта на контроллерах Овен ПЛК110 с собственной разработкой веб-сайта на основе сервиса Овенклауд. На шкафах установлены локальные панели управления СП307. Верхний Scada-уровень реализован на сайте.
Посмотреть как выглядит можно по ссылке (данные на сайт подгружаются не мгновенно):
http://golden.fast-it.ru/index.php
(https://vk.com/away.php?to=http%3A%2F%2Fgolden.fast-it.ru%2Findex.php&post=-34039206_145895&cc_key=)43197

Управление объектом закрыто паролем. Буду признателен за любую конструктивную критику. Спасибо.

https://youtu.be/oj5Pe_vg0_0 (https://vk.com/away.php?to=https%3A%2F%2Fyoutu.be%2Foj5Pe_vg0_0&post=-34039206_145895&cc_key=)

krollcbas
17.06.2019, 12:16
Все привязки сайта созданы данного сайта к облаку через обращения к API

ASo
17.06.2019, 13:37
А зачем здесь облако? Почему не установить банальную СКАДУ с вэб мордой?

krollcbas
17.06.2019, 14:06
ASo, а ведь хороший вопрос. Ответ скорее в финансовых соображениях
Лицензия скады любой примерно 40т, работа еще 150р точек на 500 (возможно кто-то и дешевле станет). ТЗ нет, все с полного нуля.
Далее, заказчик берет и говорит что именно этих денег - нет.
Мы согласились убрав эту часть работы в сторону Web.
Компьютера не надо, как и оператора у него. Тот минимум функций, который нужен для обслуживания здания - обеспечен.

Есть еще позитивные аспекты, но не распространяюсь

ASo
17.06.2019, 14:09
Так это, вэб морда к облаку бесплатно образовалась? Ее рисование, параметризация тоже бесплатны?
Если бы картинки были в овен облаке - вопросов бы не возникло, все понятно для такой нано задачи. А так...

StanZelen
17.06.2019, 14:12
Так это, вэб морда к облаку бесплатно образовалась? Ее рисование, параметризация тоже бесплатны?
Если бы картинки были в овен облаке - вопросов бы не возникло, все понятно для такой нано задачи. А так...

1. На скаду нужна лицензия - php бесплатен
2. Для скады нужно найти узкого программиста, веб программистов - хоть жопой жуй, на любой вкус и кошелек.
3. Веб скада ограничена функционалом, на php творим что хотим.
Итог: дешево и сердито. Скорость разработки в разы выше, делегировать можно людям абсолютно не знакомых с АСУ ТП.
Экономия по всем фронтам. За 15 тысяч нам сделали бэкенд+фронтэнд, за тысячу нарисовали картинки.
За 16 тысяч хоть одна скада сможет такое повторить? Да еще с масштабированием под мобильные устройства.

ASo
17.06.2019, 15:52
Если так, то назад, в будущее.

melky
17.06.2019, 16:46
StanZelen можно бесплатно повторить на Scada системе.

krollcbas
17.06.2019, 17:53
melky, "бесплатно на Scada" - Вы повторите? Скорее всего нет. Так как проект на Scada Вы станете делать с большими трудозатратами.

Каждый занимается своим делом. Каждый участник рынка вправе работать за хлеб когда пожелает и на чем пожелает.
Считать чужие деньги или злорадствовать? А какой Вам то с этого приплод? Мы поделились здесь как именно делаем.

capzap
17.06.2019, 18:32
1. На скаду нужна лицензия - php бесплатен
2. Для скады нужно найти узкого программиста, веб программистов - хоть жопой жуй, на любой вкус и кошелек.
3. Веб скада ограничена функционалом, на php творим что хотим.

1) сложно найти дешевый хостинг, поэтому денежный вопрос отличается лишь в сроках выплаты н-ной суммы
2) много ли на этом форуме тех, кто не знают какую либо скаду и тех кто знает Php
3) в умелых руках и член напильник
есть еще нормальные аргументы

Sayland
11.08.2019, 22:10
44027
Апи начал отправлять пустые ответы на запросы. Весной все было Ok.

Митрий
12.08.2019, 10:17
krollcbas .Буду признателен за любую конструктивную критику. Спасибо.



AHU-1 датчики приток вытяжка попутаны.
AHU-4 улица 17, рекуперация 0%, нагреватель 0%, охладитель 0%, приток 12.7. Холодный клапан проверить надо.

dsyabitov
13.08.2019, 09:36
44027
Апи начал отправлять пустые ответы на запросы. Весной все было Ok.

Здравствуйте!
Ваши приборы не присылают данные более 3-х месяцев и это более периода хранения данных. Т.е. по запрошенным параметрам скорее всего просто нет данных.

melky
13.08.2019, 10:06
krollcbas а заводить переменные в облако вы делаете без трудозатрат совсем ? смешно.

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

На счет Хостинга да, найти нужный и не дорогой это одно, а если достаточно установить машину в одной точке у заказчика где есть всего лишь один выделенный IP куда легче. Как правило IP стоит не дорого. я например на оптике плачу 250р в месяц и нисколько не жалею..

Sayland
15.08.2019, 14:09
krollcbas а заводить переменные в облако вы делаете без трудозатрат совсем ? смешно.

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

На счет Хостинга да, найти нужный и не дорогой это одно, а если достаточно установить машину в одной точке у заказчика где есть всего лишь один выделенный IP куда легче. Как правило IP стоит не дорого. я например на оптике плачу 250р в месяц и нисколько не жалею..

Да... Особенно привлекательна стоимость. Машина, скада, электроэнергия , IP.

melky
15.08.2019, 14:36
Sayland вас в гугле забанили ? Машина - можно и меньше 10т.р найти, скада - ядро бесплатное, свистоперделки за деньги, электроэнергия - 15Вт на указанную машину, IP - у многих заказчиков он реальных, так как у многих почтовые сервера собственные. Да и 250-300р для комфорта НЕ ДЕНЬГИ. Многие на звонках больше просирают...

А теперь посчитайте - мнемосхемы у Овен будут платными, СМС тут без вопросов платные. так что легко поместится в те же суммы.

krollcbas
15.08.2019, 14:47
melky, критика в данном случае имеет сложно определяемый предмет и почти не содержит контраргументов.
Вы говорите - это не нужно. Ну пусть так, Вам не нужно. Мир то больше, даже боюсь представить насколько.
Развивать нам данное направление никто не запретит и не запрещает. Овен - Друг)))
http://fast-it.ru/ (http://fast-it.ru/)

melky
15.08.2019, 21:17
Если у Вас уже есть система, на которой установлены контроллеры Овен, можно сделать систему дистанционного мониторинга и управления объектом (включения и отключения оборудования).

Вы не поверите, с какой только дрянью мне приходится работать. Ну нет у меня контроллеров ОВЕН.

ИБП с картами монироринга SNMP, ПЛК Allen Bradley с протоколом чудовее Modbus, счетчики Меркурий, приборы Логика - что тут сможет облако Овен ? да шишь с маслом из всего перечисленного... так что выбирать особо не приходится.

capzap
15.08.2019, 23:34
зашел сегодня в облако для добавления параметров с плк100 экспорт-импорт работает не корректно. Конфигурация контроллера из себя представляет два обезличенных регистра и после температура в виде флоат с именем. Импорт в облако сохранил только температуру, но присвоил первый по порядку адрес регистра т.е. ноль, соответственно не считывал актуальное значение температуры. И еще заметил особенность, на главной странице не срабатывает изменение статуса связи, у плк был выбран не правильный шлюз, связи не было, подправил local_addres.dat перегрузил контроллер, в облаке связь не появилась пока не перешел в настройки(управление прибором), на той странице сразу же горела галка связи

Sayland
16.08.2019, 18:00
Sayland вас в гугле забанили ? Машина - можно и меньше 10т.р найти, скада - ядро бесплатное, свистоперделки за деньги, электроэнергия - 15Вт на указанную машину, IP - у многих заказчиков он реальных, так как у многих почтовые сервера собственные. Да и 250-300р для комфорта НЕ ДЕНЬГИ. Многие на звонках больше просирают...

А теперь посчитайте - мнемосхемы у Овен будут платными, СМС тут без вопросов платные. так что легко поместится в те же суммы.

От части согласен с вами. В некоторых ситуациях это лучший выход. Все зависит от конкретного задания и заказчика.

dsyabitov
16.08.2019, 23:13
зашел сегодня в облако для добавления параметров с плк100 экспорт-импорт работает не корректно. Конфигурация контроллера из себя представляет два обезличенных регистра и после температура в виде флоат с именем. Импорт в облако сохранил только температуру, но присвоил первый по порядку адрес регистра т.е. ноль, соответственно не считывал актуальное значение температуры. И еще заметил особенность, на главной странице не срабатывает изменение статуса связи, у плк был выбран не правильный шлюз, связи не было, подправил local_addres.dat перегрузил контроллер, в облаке связь не появилась пока не перешел в настройки(управление прибором), на той странице сразу же горела галка связи

Здравствуйте.
Пришлите в личку или на почту файл, который пытались импортировать.

Станислав Рыцев
10.10.2019, 20:23
Добрый!

Делаю POST запрос - https://api.owencloud.ru/v1/auth/open с телом:
{
"login":"demo@owen.ru",
"password":"demo123"
}

получаю ответ:
{
"name": "Bad Request",
"message": "Syntax error",
"code": 0,
"status": 400
}

Далее в тело подставляю свои login и password личного кабинета OwenCloud, но ответ сервера точно такой же:
{
"name": "Bad Request",
"message": "Syntax error",
"code": 0,
"status": 400
}

Что не так то? В общем не получается получить токен ни в тестовом виде, ни для своего ЛК.

Login0
14.10.2019, 11:51
Подскажите, почему запрос POST /v1/parameters/last-data
возвращает параметры не в том порядке, в котором они запрашивались?
Причём это происходит только когда долго нет запросов, после этого первый запрос обязательно косячный.
Последующие нормальные, в том же порядке идут как и запрашивались.

Что это за глюк??

dsyabitov
14.10.2019, 12:49
Подскажите, почему запрос POST /v1/parameters/last-data
возвращает параметры не в том порядке, в котором они запрашивались?
Причём это происходит только когда долго нет запросов, после этого первый запрос обязательно косячный.
Последующие нормальные, в том же порядке идут как и запрашивались.

Что это за глюк??

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

dsyabitov
14.10.2019, 12:54
Добрый!

Делаю POST запрос - https://api.owencloud.ru/v1/auth/open с телом:
{
"login":"demo@owen.ru",
"password":"demo123"
}

получаю ответ:
{
"name": "Bad Request",
"message": "Syntax error",
"code": 0,
"status": 400
}

Далее в тело подставляю свои login и password личного кабинета OwenCloud, но ответ сервера точно такой же:
{
"name": "Bad Request",
"message": "Syntax error",
"code": 0,
"status": 400
}

Что не так то? В общем не получается получить токен ни в тестовом виде, ни для своего ЛК.

Здравствуйте.
Вероятно не указываете правильно хидеры запроса. В этой теме на первых страницах уже все есть.

Login0
14.10.2019, 13:34
Спасибо, команда sort исправила ситуацию.

Login0
24.10.2019, 12:30
Здравствуйте!

Почему такое происходит: все параметры сообщают, что обновляются периодически, а давление часы назад?
Причём это только по двум теплопунктам происходит!
Овен облако сообщает такие данные.

Сначала думал, что если параметр не меняется, то и не обновляется.
Но это не так, почему тогда по двум остальным ТП они обновляются?


45290

dsyabitov
24.10.2019, 14:37
Здравствуйте.
Проверьте часовой пояс прибора, а так-же типы параметров (оперативный/конфигурационный/управляемый) и периоды опроса.

Login0
24.10.2019, 16:16
Здравствуйте.
Проверьте часовой пояс прибора, а так-же типы параметров (оперативный/конфигурационный/управляемый) и периоды опроса.

Позвольте, а с каких пор возможно настроить период опроса для отдельного параметра?
Он для всего прибора настраивается. И параметры у меня по типам все одинаковые абсолютно.

Часовой пояс верный, иначе другие параметры были бы неверные. А они корректные.


45294 45295

dsyabitov
25.10.2019, 07:30
Позвольте, а с каких пор возможно настроить период опроса для отдельного параметра?
Он для всего прибора настраивается. И параметры у меня по типам все одинаковые абсолютно.

Часовой пояс верный, иначе другие параметры были бы неверные. А они корректные.


45294 45295

Пришлите в личку Ваш логин и идентификаторы приборов.

dsyabitov
25.10.2019, 14:36
Позвольте, а с каких пор возможно настроить период опроса для отдельного параметра?
Он для всего прибора настраивается. И параметры у меня по типам все одинаковые абсолютно.

Часовой пояс верный, иначе другие параметры были бы неверные. А они корректные.


45294 45295

Ошибку исправили, теперь время последнего чтения параметра по last-data отображается корректно.

4ster
20.12.2019, 16:23
Здравствуйте, подскажите, пожалуйста, в чем ошибка в моем запросе на скриншоте.
46299
55052, 43523 - это id приборов из тестового аккаунта.
Некоторые методы API срабатывают - я могу получить список приборов, иноформацию об приборе, список категорий и типов приборов, список событий... Но методы получения данных ( data, last-data...) не работают.

4ster
21.12.2019, 01:15
Удается получить данные для прибора с id=306631. Но зато информацию о приборе с этим id не удается получить.

capzap
21.12.2019, 07:35
Здравствуйте, подскажите, пожалуйста, в чем ошибка в моем запросе на скриншоте.
46299
55052, 43523 - это id приборов из тестового аккаунта.
Некоторые методы API срабатывают - я могу получить список приборов, иноформацию об приборе, список категорий и типов приборов, список событий... Но методы получения данных ( data, last-data...) не работают.


Система может отказать в выдаче архива если параметров слишком много или требуемый интервал слишком длинный. Такая ошибка возвращается как HTTP-код Bad Request.читали такое в документации?

4ster
21.12.2019, 12:54
Читал, но не соотнес с сообщением об ошибке "Некоторые параметры не найдены". Как вы догадались?!!
Я изменил тело запроса для метода data на такое: {"ids":[43539],"start":"2019-12-21 12:40:00","end":"2019-12-21 12:44:59","step":1}
С тем же результатом - Bad request, Некоторые параметры не найдены. В этом интервале меньше десятка событий, причина вряд ли в том, что интервал длинный или параметров много.

Методу last-data отправил такое тело: {"ids":[43539]}. Снова безрезультатно.

capzap
21.12.2019, 13:24
Если я указываю id прибора, то возвращается ошибка {"name":"Bad Request","message":"Некоторые параметры не найдены.","code":0,"status":400}, если id параметра, то возвратит как минимум [{"id":ххххххх,"values":[]}], делайте выводы

4ster
21.12.2019, 21:00
Если я указываю id прибора, то возвращается ошибка {"name":"Bad Request","message":"Некоторые параметры не найдены.","code":0,"status":400}, если id параметра, то возвратит как минимум [{"id":ххххххх,"values":[]}], делайте выводы

Ой, спасибо! Заработался...

Sayland
06.01.2020, 05:17
46552
Подскажите в чем дело? массив с данными получаю пустой.
при этом forward-data,backward-data работают как надо.

dsyabitov
06.01.2020, 10:34
46552
Подскажите в чем дело? массив с данными получаю пустой.
при этом forward-data,backward-data работают как надо.



Здравствуйте. Попробуйте указывать минуты без 0 в начале и проверьте часовой пояс прибора.

Sayland
07.01.2020, 03:07
Все это пробовал и без нулей и с нулями и пояс указывал. forward-data,backward-data работают как надо. а вот с data проблема.

dsyabitov
07.01.2020, 21:45
Все это пробовал и без нулей и с нулями и пояс указывал. forward-data,backward-data работают как надо. а вот с data проблема.

В личке ответил, и скрин приложил. Потом попробовал получить результат как у Вас (а именно - отсутствие результата) - проблема именно в том, что минуты у Вас начинаются с 0. (т.е. 010 минут и т.д.). Если убрать 0 в начале - все отрабатывает нормально.

capzap
07.01.2020, 21:58
В личке ответил, и скрин приложил. Потом попробовал получить результат как у Вас (а именно - отсутствие результата) - проблема именно в том, что минуты у Вас начинаются с 0. (т.е. 010 минут и т.д.). Если убрать 0 в начале - все отрабатывает нормально.

я когда в этом посте https://owen.ru/forum/showthread.php?t=28578&p=321593&viewfull=1#post321593 писал о том что возвращает как минимум пустой результат, я именно его и получил, не думаю что я так же ошибся с датами поставив третий ноль , скорее всего есть какие то проблемы. К примеру сегодня я на демо-режиме провел тест, данные возвращает, возможно разница в том, что на демку я токен получал через api, а свои данные через токен из личного кабинета

dsyabitov
07.01.2020, 23:20
http://joxi.net/DrlopJ8iVJpKBA
http://joxi.net/1A5xWD3sDZg4j2
http://joxi.net/Y2LYkN3c78KxZA

Я допускаю, что могли иметь место какие-то еще нюансы, но конкретно сейчас - проблема именно в этом, в скрине Sayland как раз есть нули, о которых я и писал.

Sayland
08.01.2020, 06:38
46581
Нет данных... пусто.

Sayland
08.01.2020, 07:09
46582
backward-data
есть данные...

Sayland
08.01.2020, 07:44
Прошу прощения все работает кроме шага . end указал 2010 год.
step игнорируется

dsyabitov
08.01.2020, 10:28
Ну вот и чудно! step тоже работает - это некий коэффициент прореживания данных, он используется как минимум в графиках в мобильном приложении.

Sayland
10.01.2020, 03:49
Ну вот и чудно! step тоже работает - это некий коэффициент прореживания данных, он используется как минимум в графиках в мобильном приложении.

Пожалуйста подскажете что не так. По идее чем больше шаг тем меньше ответ? у меня же ответ одинаков.
4662046621

krollcbas
08.02.2020, 14:15
Новый способ автоматического переноса переменных через символьную адресацию несет и некоторые неудобства.
Если перепрошить контроллер и залить вновь скомпилированный проект (состав переменных прежний), то ID переменных введенных в облако - изменится.
Соответственно приходится корректировать внешние связи проектов, которые связанны по номерам ID
47187

Andrei_Ekom
16.05.2020, 10:48
Добрый день!
При запросе на получение данных по Id параметра получаю следующее49111
С чем может это быть связано?
Спасибо

Andrei_Ekom
16.05.2020, 10:56
Разобрался, не указал https)

bbrylov
16.06.2020, 12:09
Добрый день!
Пытаюсь считать последние данные из облака49663
получаю 49658
При обращении к другим устройствам таже картина.
При запросе https://api.owencloud.ru/v1/device/138903 или аналогичных, все работает адекватно.
покажите где я на грабли наступил?

capzap
16.06.2020, 12:20
покажите где я на грабли наступил?

первое это удалите первый скрин, не стоит светить своими личными токенами
второе на обоих скринах разные ids поэтому вряд ли второй скрин это ответ на то что в первом скрине

bbrylov
16.06.2020, 12:42
первое это удалите первый скрин, не стоит светить своими личными токенами
второе на обоих скринах разные ids поэтому вряд ли второй скрин это ответ на то что в первом скрине

Спасибо за быстрый ответ, на первом скрине затер токен.
Но на втором скрине вообще нет ids ... это ответ сервера.

bbrylov
16.06.2020, 13:04
разобрался, в запросе о последних данных нужно указывать id параметра, а я указывал id устройства.
Просьба, можно ли сделать последние данные по устройству по аналогии https://api.owencloud.ru/v1/device/ХХХХХХ

Чили-Рома
13.07.2020, 12:21
Добрый день. Подскажите, пожалуйста, через API получать данные лучше(проще) из какой платформы: 1с - postgresql или my sql?

capzap
14.07.2020, 08:30
Добрый день. Подскажите, пожалуйста, через API получать данные лучше(проще) из какой платформы: 1с - postgresql или my sql?

тема про API для подключения к сервису OwenCloud, совершенно нет ни какой связи с тем в какую БД скачивать архивируемые данные с облака, в чем конкретно вопрос, что не получается?

Чили-Рома
14.07.2020, 09:22
в чем конкретно вопрос, что не получается?
Не знаю, вроде все получается, скачивается в 1С, но вдруг попросили уточнить этот вопрос именно в той формулировке, как я задал. Сам я этим не занимаюсь - я за хард, проекты Пр200 и отображение приборов в Облаке Овен отвечаю.

capzap
14.07.2020, 09:32
попросили уточнить этот вопрос именно в той формулировке, как я задал.

значит ответ ни какой разницы

krollcbas
24.11.2020, 13:31
Хотелось уточнить следующее:
Какая скорость опроса API является допустимой?

Есть ли возможность эту скорость как-то увеличить, хотя бы вдвое?
Эти ограничения выставлены умышленно или это следствие недостаточного быстродействия сервера?

1. При запросе parameters/last-data по массиву, состоящему всего из двух параметров с частотой запросов менее 1 секунды, API возвращает пустые объекты
2. Выполнение команды parameters/write-data занимает около 5 секунд

Очень некрасиво выглядят такие задержки, если делаешь систему управления чем бы то ни было через OwenCloud.

С чем сравниваю сервис:
Iridium Mobile Cloud
AZURE (Logic Machine)
И там и там есть задержки, но они сравнимо меньше.

Скорость посылки телеграммы до облака, от облака в ПЛК, статус ПЛК до облака, от облака к сайту может быть и 5 и более секунд, но работает.
http://lapshinvr.ru/smart-house.php

Или посмотрите это видео:

https://youtu.be/bDl9y6fOIFY

Евгений Кислов
24.11.2020, 13:44
Какая скорость опроса API является допустимой?

См. п. 8 в РП:
https://ftp.owen.ru/OwenCloud/01_Docs/rp_owencloud.pdf

В OwenCloud имеется ограничение на число запросов, которые могут быть обработаны за
определенный интервал времени (равный 10 секундам). Отсчет времени начинается с первого
запроса в новой последовательности запросов. В случае превышения ограничения возвращается
код состояния 429 (Too Many Requests). Ограничения описаны ниже:

• /v1/parameters/last-data – не более 10 запросов за 10 секунд;
• /v1/device/index – не более 10 запросов за 10 секунд;
• /v1/parameters/data – не более 10 запросов за 10 секунд;
• /v1/auth/open – не более 10 запросов за 10 секунд;
• все остальные запросы – не более 30 запросов за 10 секунд.

capzap
24.11.2020, 14:10
составил такой код


...
def test_read_param(ol_api, token):
tik = datetime.datetime.now()
headers = { 'Authorization' : 'Bearer ' + token }
data = "{\"ids\":[4337443]}"
response = ol_api.post("v1/parameters/last-data",headers=headers,data=data)
assert response.status_code == 200, f"Неверный код ответа, получен {response.status_code}"
response = response.json()
for unit in response:
refer = unit["values"]
for val in refer:
print("прочитали ",val["v"],"\n",tik,"\t",datetime.datetime.now())

def test_save_param(ol_api, token, result):
tik = datetime.datetime.now()
headers = { 'Authorization' : 'Bearer ' + token }
data = "{\"sms_tag\":\"\",\"sms_code\":\"\",\"timeout\":3,\"sync\":false,\"data\":[{\"id\":4337443,\"value\":" + str(result) +"}]}"
response = ol_api.post("v1/parameters/write-data",headers=headers,data=data)
assert response.status_code == 200, f"Неверный код ответа, получен {response.status_code}"
print("записали "+ str(result),"\n",tik,"\t",datetime.datetime.now())

k = 1
if __name__ == "__main__":
test_save_param(ol_api(),sec_token, 2)
time.sleep(k)
test_read_param(ol_api(),sec_token)
test_save_param(ol_api(),sec_token, 3)
time.sleep(k)
test_read_param(ol_api(),sec_token)
...

и получил такой вывод


записали 2
2020-11-24 12:10:10.726314 2020-11-24 12:10:11.973621
прочитали 2.000
2020-11-24 12:10:12.975249 2020-11-24 12:10:13.974617
записали 3
2020-11-24 12:10:13.974871 2020-11-24 12:10:15.260731
прочитали 3.000
2020-11-24 12:10:16.262514 2020-11-24 12:10:17.243913
записали 4
2020-11-24 12:10:17.244163 2020-11-24 12:10:18.692528
прочитали 4.000
2020-11-24 12:10:19.694127 2020-11-24 12:10:20.597240
записали 5
2020-11-24 12:10:20.598487 2020-11-24 12:10:21.841098
прочитали 5.000
2020-11-24 12:10:22.842777 2020-11-24 12:10:23.814789
записали 6
2020-11-24 12:10:23.815012 2020-11-24 12:10:25.181758
прочитали 6.000
2020-11-24 12:10:26.183501 2020-11-24 12:10:27.024241
записали 7
2020-11-24 12:10:27.024927 2020-11-24 12:10:28.148120
прочитали 7.000
2020-11-24 12:10:29.149575 2020-11-24 12:10:30.169654
записали 8
2020-11-24 12:10:30.169954 2020-11-24 12:10:31.445186
прочитали 8.000
2020-11-24 12:10:32.447018 2020-11-24 12:10:33.286865
записали 9
2020-11-24 12:10:33.287118 2020-11-24 12:10:35.116507
прочитали 9.000
2020-11-24 12:10:36.118333 2020-11-24 12:10:37.051470
записали 10
2020-11-24 12:10:37.051757 2020-11-24 12:10:38.239712
прочитали 10.000
2020-11-24 12:10:39.241460 2020-11-24 12:10:40.252901
записали 11
2020-11-24 12:10:40.253126 2020-11-24 12:10:41.374973
прочитали 11.000
2020-11-24 12:10:42.376776 2020-11-24 12:10:43.343120
записали 12
2020-11-24 12:10:43.343873 2020-11-24 12:10:44.548721
прочитали 12.000
2020-11-24 12:10:45.550539 2020-11-24 12:10:46.433549
записали 13
2020-11-24 12:10:46.434118 2020-11-24 12:10:47.660190
прочитали 13.000
2020-11-24 12:10:48.661878 2020-11-24 12:10:49.662488


без паузы между запросами картина следующая

записали 2
2020-11-24 12:17:41.360882 2020-11-24 12:17:42.587553
прочитали 13.000
2020-11-24 12:17:42.588379 2020-11-24 12:17:43.517711
записали 3
2020-11-24 12:17:43.518318 2020-11-24 12:17:44.878204
прочитали 2.000
2020-11-24 12:17:44.878757 2020-11-24 12:17:45.768300
записали 4
2020-11-24 12:17:45.769321 2020-11-24 12:17:46.972369
прочитали 3.000
2020-11-24 12:17:46.972947 2020-11-24 12:17:48.039915
записали 5
2020-11-24 12:17:48.040774 2020-11-24 12:17:49.753307
прочитали 4.000
2020-11-24 12:17:49.754082 2020-11-24 12:17:50.850080
записали 6
2020-11-24 12:17:50.850398 2020-11-24 12:17:52.231665
прочитали 5.000
2020-11-24 12:17:52.231941 2020-11-24 12:17:53.180357
записали 7
2020-11-24 12:17:53.180997 2020-11-24 12:17:54.479477
прочитали 6.000
2020-11-24 12:17:54.480108 2020-11-24 12:17:55.429537
записали 8
2020-11-24 12:17:55.429803 2020-11-24 12:17:56.666510
прочитали 7.000
2020-11-24 12:17:56.667233 2020-11-24 12:17:57.638818
записали 9
2020-11-24 12:17:57.639497 2020-11-24 12:17:58.834207
прочитали 8.000
2020-11-24 12:17:58.834456 2020-11-24 12:17:59.737217
записали 10
2020-11-24 12:17:59.737495 2020-11-24 12:18:00.843749
прочитали 9.000
2020-11-24 12:18:00.843975 2020-11-24 12:18:01.816344
записали 11
2020-11-24 12:18:01.816566 2020-11-24 12:18:03.000935
прочитали 10.000
2020-11-24 12:18:03.001583 2020-11-24 12:18:03.954371
записали 12
2020-11-24 12:18:03.954935 2020-11-24 12:18:05.199084
прочитали 11.000
2020-11-24 12:18:05.199405 2020-11-24 12:18:06.197832
записали 13
2020-11-24 12:18:06.198444 2020-11-24 12:18:07.341610
прочитали 12.000
2020-11-24 12:18:07.341865 2020-11-24 12:18:08.390938

e.filatov
24.11.2020, 16:38
Я вот не помню, как реализовано на самом сервере, но вроде как (емнип) посылка ещё на шлюз уходит, выполняется и возвращается ответ. Только на самой посылке Сервер->Шлюз->прибор->шлюз->сервер вы тратите около секунды. Не забываем, что команда на запись попадает в очередь, а шлюз, собственно, не закончил выполнение предыдущих 1к байт запросов (это максимум за 1 посылку от сервера)

dsyabitov
25.11.2020, 09:35
без паузы между запросами картина следующая



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

Записали X
Читаем из прибора и обрабатываем X...
Получили запрос на last-data - выдали то, что есть последнее прочитанное и обработанное ( X - 1 )
Дочитали-дообработали X
Записали Y
Читаем из прибора и обрабатываем Y...
Получили запрос на last-data - выдали то, что есть последнее прочитанное и обработанное ( X )
Дочитали-дообработали Y

capzap
25.11.2020, 11:42
ну претензия то не с моей стороны, там вопрос о том что в сравнении с платными облаками ваше время относительно велико на обработку. В чем то я согласен возможно, осталось понять очередь на обработку касается конкретной учетной записи или это очередь состоит из всех приходящих запросов в облачный сервис от всех пользователей

dsyabitov
25.11.2020, 11:54
ну претензия то не с моей стороны, там вопрос о том что в сравнении с платными облаками ваше время относительно велико на обработку. В чем то я согласен возможно, осталось понять очередь на обработку касается конкретной учетной записи или это очередь состоит из всех приходящих запросов в облачный сервис от всех пользователей

Очередь на обработку касается конкретного устройства или шлюза (если устройство подключено через шлюз)

capzap
25.11.2020, 13:30
сейчас подготовлю код, чтоб увеличить очередь, записывая два параметра, а пока что читая четыре параметра с нулевым временем ожидания, запись успевает выполнится раньше чем чтение

записали 2
2020-11-25 10:24:45.511589 2020-11-25 10:24:47.635697
прочитали 2.000
2020-11-25 10:24:47.635972 2020-11-25 10:24:49.247820
прочитали 42.856
2020-11-25 10:24:47.635972 2020-11-25 10:24:49.248489
прочитали 0.000
2020-11-25 10:24:47.635972 2020-11-25 10:24:49.248631
прочитали 81.810
2020-11-25 10:24:47.635972 2020-11-25 10:24:49.248788
записали 3
2020-11-25 10:24:49.248936 2020-11-25 10:24:51.407232
прочитали 3.000
2020-11-25 10:24:51.407927 2020-11-25 10:24:53.203358
прочитали 81.810
2020-11-25 10:24:51.407927 2020-11-25 10:24:53.204038
прочитали 0.000
2020-11-25 10:24:51.407927 2020-11-25 10:24:53.204625
прочитали 42.856
2020-11-25 10:24:51.407927 2020-11-25 10:24:53.204760
записали 4
2020-11-25 10:24:53.205002 2020-11-25 10:24:55.158607
прочитали 4.000
2020-11-25 10:24:55.158930 2020-11-25 10:24:56.706157
прочитали 81.810
2020-11-25 10:24:55.158930 2020-11-25 10:24:56.706411
прочитали 0.000
2020-11-25 10:24:55.158930 2020-11-25 10:24:56.706885
прочитали 42.856
2020-11-25 10:24:55.158930 2020-11-25 10:24:56.707111

Вы наверное что то сделали на серваке)

ЗЫ по сравнению со вчерашним днем значительно лучше передается и запись в два параметра

записали 2
2020-11-25 10:34:14.715562 2020-11-25 10:34:16.621293
записали 2
2020-11-25 10:34:16.622061 2020-11-25 10:34:18.549495
прочитали 2.000
2020-11-25 10:34:18.550072 2020-11-25 10:34:20.125390
записали 3
2020-11-25 10:34:20.125992 2020-11-25 10:34:21.976188
записали 3
2020-11-25 10:34:21.976779 2020-11-25 10:34:23.789865
прочитали 3.000
2020-11-25 10:34:23.790610 2020-11-25 10:34:26.271397
записали 4
2020-11-25 10:34:26.271999 2020-11-25 10:34:28.018407
записали 4
2020-11-25 10:34:28.019003 2020-11-25 10:34:29.914862
прочитали 4.000
2020-11-25 10:34:29.915641 2020-11-25 10:34:31.440763
записали 5
2020-11-25 10:34:31.441389 2020-11-25 10:34:33.232692
записали 5
2020-11-25 10:34:33.233511 2020-11-25 10:34:35.146629
прочитали 5.000
2020-11-25 10:34:35.147351 2020-11-25 10:34:36.793866
записали 6
2020-11-25 10:34:36.794555 2020-11-25 10:34:38.574172
записали 6
2020-11-25 10:34:38.575045 2020-11-25 10:34:40.492149
прочитали 6.000
2020-11-25 10:34:40.492959 2020-11-25 10:34:41.990423
записали 7
2020-11-25 10:34:41.991317 2020-11-25 10:34:43.749100
записали 7
2020-11-25 10:34:43.749806 2020-11-25 10:34:46.200438
прочитали 7.000
2020-11-25 10:34:46.201094 2020-11-25 10:34:47.791853

YuriBel
25.11.2020, 14:30
Документация и даже с примером здесь - https://api.owencloud.ru/

Извиняюсь, что привожу давнюю цитату, прошу подсказать, можно ли откуда-нибудь скачать документацию в PDF?

dsyabitov
25.11.2020, 14:44
Извиняюсь, что привожу давнюю цитату, прошу подсказать, можно ли откуда-нибудь скачать документацию в PDF?

Здравствуйте. Документации в pdf нету. Но по приведенной Вами ссылке всего одна страница - можете сохранить её.

dsyabitov
25.11.2020, 14:45
сейчас подготовлю код, чтоб увеличить очередь, записывая два параметра, а пока что читая четыре параметра с нулевым временем ожидания, запись успевает выполнится раньше чем чтение


Вы наверное что то сделали на серваке)

ЗЫ по сравнению со вчерашним днем значительно лучше передается и запись в два параметра

Нет, ничего не делали. Возможно были какие-то сетевые проблемы с Вашей или нашей стороны. Мониторинг сервиса никаких проблем не выявлял в последние несколько суток.

lomtik
28.11.2020, 17:22
См. п. 8 в РП:
https://ftp.owen.ru/OwenCloud/01_Docs/rp_owencloud.pdf

В OwenCloud имеется ограничение на число запросов, которые могут быть обработаны за
определенный интервал времени (равный 10 секундам). Отсчет времени начинается с первого
запроса в новой последовательности запросов. В случае превышения ограничения возвращается
код состояния 429 (Too Many Requests). Ограничения описаны ниже:

• /v1/parameters/last-data – не более 10 запросов за 10 секунд;
• /v1/device/index – не более 10 запросов за 10 секунд;
• /v1/parameters/data – не более 10 запросов за 10 секунд;
• /v1/auth/open – не более 10 запросов за 10 секунд;
• все остальные запросы – не более 30 запросов за 10 секунд.

• /v1/parameters/last-data – не более 10 запросов за 10 секунд;
т.е. 1 запрос в 1 сек. Скажите, я правильно понял, если я хочу получать состояние большого кол-ва переменных, например 1000 переменных с 300-т приборов, то реальное значение какой-либо переменной будет обновляться каждые 1000 сек, т.е. раз в 16,6 минут? Или это ограничение касается одного устройства?

Евгений Кислов
28.11.2020, 17:26
• /v1/parameters/last-data – не более 10 запросов за 10 секунд;
т.е. 1 запрос в 1 сек. Скажите, я правильно понял, если я хочу получать состояние большого кол-ва переменных, например 1000 переменных с 300-т приборов, то реальное значение какой-либо переменной будет обновляться каждые 1000 сек, т.е. раз в 16,6 минут?

Все параметры по одному прибору можно получить одним запросом.
И как выше написал dsyabitov:


Очередь на обработку касается конкретного устройства или шлюза (если устройство подключено через шлюз)

Junior Soprano
25.12.2020, 13:20
Добрый день!

Как через api добавлять, редактировать и удалять категории приборов? В документации нашел только запрос на получение списка категории category/index.

dsyabitov
25.12.2020, 22:41
Добрый день!

Как через api добавлять, редактировать и удалять категории приборов? В документации нашел только запрос на получение списка категории category/index.

Здравствуйте.
В данный момент такая функциональность не предусмотрена. Добавили в бэклог для дальнейшей реализации.

capzap
14.04.2022, 09:09
В соседней теме завел разговор об изменении ответа на запись, если объект находится не в сети, мне посоветовали делать проверки статуса отправленной команды. Что имеем: ответ на команду записи
{'writeGroupId': 391795101, 'writeParams': [{'paramId': 4337433, 'writeParamId': 877900647}]} чтоб проверить статус нужно формировать
{"writeGroupIds":[391795101], "writeParamIds":[877900647]}
а хотелось бы для ускорения процесса перенаправить ответ в запрос статуса, возможно ли или опять будут отговорки?

A.Simonov
14.04.2022, 14:02
В соседней теме завел разговор об изменении ответа на запись, если объект находится не в сети, мне посоветовали делать проверки статуса отправленной команды. Что имеем: ответ на команду записи чтоб проверить статус нужно формировать
а хотелось бы для ускорения процесса перенаправить ответ в запрос статуса, возможно ли или опять будут отговорки?

Спросил у dsyabitov (https://owen.ru/forum/member.php?u=78053), что он думает по этому поводу.

Говорит, что добавлять другой http код не станет, но для удобства, чтобы не работать с буквенным статусом, добавит в ответ цифровой статус (к запросу POST parameters/write-status)
Его будет легче обрабатывать, чем буквенный.

OWEN1VIKTOR
17.05.2022, 17:00
Не понимаю, форум живой или нет, продублирую свой вопрос тут:

Добрый день.
Начал пробовать api, авторизация, список приборов, это всё ок, но вот с POST parameters/data случился затык, отправляю:

60718

И апи ругается на синтаксис, чего только не пробовал, что не так отсылаю?

В данной теме на странице 4 вычитал, что надо передавать не айди прибора, а параметра ( в документации про это вообще ни слова, что за айди, где брать... )

Спасибо


UPD

вычитал про /v1/device/:id там вроде есть и айди параметров

Да, метод рабочий, получил все айди параметров и сами значения и кучу инфы, parameters/last-data и parameters/data пока побороть не смог

A.Simonov
17.05.2022, 17:15
Не понимаю, форум живой или нет, продублирую свой вопрос тут:

Добрый день.
Начал пробовать api, авторизация, список приборов, это всё ок, но вот с POST parameters/data случился затык, отправляю:

60718

И апи ругается на синтаксис, чего только не пробовал, что не так отсылаю?

В данной теме на странице 4 вычитал, что надо передавать не айди прибора, а параметра ( в документации про это вообще ни слова, что за айди, где брать... )

Спасибо


UPD

вычитал про /v1/device/:id там вроде есть и айди параметров

Да, метод рабочий, получил все айди параметров и сами значения и кучу инфы, parameters/last-data и parameters/data пока побороть не смог

Добрый день.

про id параметров, где их брать я писал в этом сообщении
https://owen.ru/forum/showthread.php?t=35505&p=367422&viewfull=1#post367422

OWEN1VIKTOR
17.05.2022, 17:27
Да, начал лапатить форум, стало яснее, в принципе с параметрами и дальше с POST parameters/data разобрался.
Мои трудности были связаны скорее с синтаксисом запроса, но понять, что надо отправлять с первого раза не удалось
спасибо