Установка библиотеки
Установка при помощи системной оболочки (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 | ошибка сохранения в базу данных | - |