Библиотека ioControl для piton- описание функций

Установка библиотеки

Установка при помощи системной оболочки (SHELL):

pip3 install pyiocontrol

Установка в программе Thonny Python IDE:

Выберете пункт меню Tools -> Manage Packages

Введите pyiocontrol в поле ввода поиска

Нажмите кнопку Find package from PyPI

Нажмите кнопку Install. Библиотека установлена.

Подключение библиотеки

import pyiocontrol

Создание экземпляра класса

Obj = pyiocontrol.Panel("НАЗВАНИЕ_ПАНЕЛИ")

или, если панель использует ключ:

Obj = pyiocontrol.Panel("ИМЯ_ПАНЕЛИ", "КЛЮЧ");

После создания экземпляра класса к переменным панели можно обращаться через название экземпляра с точкой. Например, если панель называется myIoPanel, а переменная этой же панели myVar:

# Подключаем библиотеку
import pyiocontrol

# Создаём экземпляр класса
myPanel = pyiocontrol.Panel("myIoPanel")

# Выводим значение переменной панели
print(myPanel.myVar)

Описание функций и атрибутов библиотеки

Список

Функции

Атрибуты

Функция setDeviceCountOnIP()

  • Назначение: Установка множителя интервала запросов в случае использования нескольких устройств на одном IP адресе
  • Синтаксис: Obj.setDeviceCountOnIP( КОЛИЧЕСТВО )
  • Принимаемые параметры: КОЛИЧЕСТВО - количество устройств на одном IP адресе, использующих сервис iocontrol.ru
  • Возвращаемые значения: нет
  • Примечание:
    • Сервер iocontrol ведёт учёт количества запросов по IP адресу. Если Ваша локальная сеть работает через NAT, то для сервера все устройства в ней будут выглядеть как один IP адрес. Функции чтения и записи создают запросы через интервал, установленный сервером. В случае если у Вас в сети несколько устройств, использующих сервис, запросы на сервер будут поступать чаще во столько раз, сколько у Вас устройств. В таком случае, сервер может дать отказ в доступе из-за превышения лимита запросов. С помощью этой функции можно установить множитель, равный количеству устройств в локальной сети. Подробнее про лимиты сервиса можно узнать по ссылке.
  • Пример:
# В локальной сети два устройства
Obj.setDeviceCountOnIP(2)

Атрибут НАЗВАНИЕ_ПЕРЕМЕННОЙ

  • Назначение: чтение или запись значения из панели и в панель сервиса
  • Синтаксис:
    • Obj.название_переменной = ЗНАЧЕНИЕ
    • ПЕРЕМЕННАЯ = Obj.НАЗВАНИЕ_ПЕРЕМЕННОЙ
  • Пример:
# Запись переменной myVar (переменная с названием myVar должна быть создана в панели)
Obj.myVar = 42

# Чтение переменной myVar (переменная с названием myVar должна быть создана в панели)
myLocalVar = Obj.myVar

Атрибут localUpdated

  • Назначение: позволяет узнать были ли перезаписаны локальные переменные переменными с сервера
  • Возможные значения: True, False
  • Синтаксис:
  • Пример:
if Obj.localUpdated:
    print("переменные обновлены в памяти ПК")

Атрибут siteUpdated

  • Назначение: позволяет узнать были ли перезаписаны переменные на сервере локальными переменными
  • Возможные значения: True, False
  • Синтаксис:
  • Пример:
if Obj.siteUpdated:
    print("переменные обновлены на сервере")

Атрибут lastStatus

  • Назначение: позволяет узнать статус или код ошибки после обращения к серверу
  • Синтаксис: status = Obj.lastStatus
  • Пример:
Obj.myVar = 42

if Obj.lastStatus == intervalError:
    print("время ожидания не истекло")

Список статус кодов

Код Значение Константа
100-599 статус коды HTTP -
601 пустой JSON -
602 некорректный JSON -
603 программе не удалось прочитать тип переменной -
604 пустая панель iocontrol emptyBoard
606 нет изменений значений переменных после последнего запроса nothingToWrite
701 некорректный заголовок HTTP -
702 не истёк интервал между запросами intervalError
703 некорректный ответ от сервера ivalidResponse
801 не удалось подключиться к серверу -
1002 не указано имя панели или имя панели некорректной длины invalidNameReq
1003 панель с таким именем не существует или к ней возможен только по ключу invalidName
1004 не указано имя переменной -
1005 некорректное имя переменной -
1007 не указан параметр передаваемого значения -
1008 ошибка сохранения в базу данных -
О сервисе
Библиотека
    Для работы с Arduino, Piranha, ESP32 или ESP8266
  • Скачать: ZIP, GitHub