Страница 14 из 17 ПерваяПервая ... 41213141516 ... ПоследняяПоследняя
Показано с 131 по 140 из 171

Тема: API для OwenCloud

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,632

    По умолчанию

    Цитата Сообщение от Чили-Рома Посмотреть сообщение
    попросили уточнить этот вопрос именно в той формулировке, как я задал.
    значит ответ ни какой разницы
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  2. #2

    По умолчанию Частота запросов к API OwenCloud

    Хотелось уточнить следующее:
    Какая скорость опроса 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

    Или посмотрите это видео:
    Последний раз редактировалось Евгений Кислов; 24.11.2020 в 13:46.
    +79104444236
    С уважением,
    Лапшин Вячеслав

  3. #3
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,768

    По умолчанию

    Какая скорость опроса 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 секунд.

  4. #4
    Пользователь
    Регистрация
    24.11.2011
    Адрес
    Москва
    Сообщений
    135

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    См. п. 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 минут? Или это ограничение касается одного устройства?
    Последний раз редактировалось lomtik; 28.11.2020 в 17:28.

  5. #5
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    13,768

    По умолчанию

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

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

  6. #6

    По умолчанию

    Добрый день!

    Как через api добавлять, редактировать и удалять категории приборов? В документации нашел только запрос на получение списка категории category/index.
    Последний раз редактировалось Junior Soprano; 25.12.2020 в 13:42.

  7. #7

    По умолчанию

    Цитата Сообщение от Junior Soprano Посмотреть сообщение
    Добрый день!

    Как через api добавлять, редактировать и удалять категории приборов? В документации нашел только запрос на получение списка категории category/index.
    Здравствуйте.
    В данный момент такая функциональность не предусмотрена. Добавили в бэклог для дальнейшей реализации.
    Начальник бюро разработки серверного программного обеспечения
    email: d.syabitov@owen.ru

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,632

    По умолчанию

    составил такой код
    Код:
    ...
    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
    Последний раз редактировалось capzap; 24.11.2020 в 15:19.
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение

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

    Записали X
    Читаем из прибора и обрабатываем X...
    Получили запрос на last-data - выдали то, что есть последнее прочитанное и обработанное ( X - 1 )
    Дочитали-дообработали X
    Записали Y
    Читаем из прибора и обрабатываем Y...
    Получили запрос на last-data - выдали то, что есть последнее прочитанное и обработанное ( X )
    Дочитали-дообработали Y
    Начальник бюро разработки серверного программного обеспечения
    email: d.syabitov@owen.ru

  10. #10

    По умолчанию

    Я вот не помню, как реализовано на самом сервере, но вроде как (емнип) посылка ещё на шлюз уходит, выполняется и возвращается ответ. Только на самой посылке Сервер->Шлюз->прибор->шлюз->сервер вы тратите около секунды. Не забываем, что команда на запись попадает в очередь, а шлюз, собственно, не закончил выполнение предыдущих 1к байт запросов (это максимум за 1 посылку от сервера)
    Ведущий инженер проектов
    Линейки шлюзов сетевых Пх210
    Линейки модулей ввода/вывода Мх210

Страница 14 из 17 ПерваяПервая ... 41213141516 ... ПоследняяПоследняя

Похожие темы

  1. OwenCloud. Что это и с чем его едят?
    от Кирилл Валюнин в разделе Облачный сервис OwenCloud
    Ответов: 1686
    Последнее сообщение: Вчера, 06:49
  2. Приложение OwenCloud для Android
    от Сергей Лысов в разделе Облачный сервис OwenCloud
    Ответов: 189
    Последнее сообщение: 17.12.2025, 10:41
  3. Отладка работы OwenCloud с приборами
    от philip.yef в разделе Облачный сервис OwenCloud
    Ответов: 149
    Последнее сообщение: 01.01.2022, 13:31
  4. owencloud+пм210+ас4+lectus
    от Vitamin в разделе ПМ210
    Ответов: 2
    Последнее сообщение: 01.02.2018, 16:33
  5. Как подключить МВА8 к OwenCloud
    от Баир в разделе ПМ210
    Ответов: 4
    Последнее сообщение: 26.12.2017, 18:22

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •