Gastello007

<<< Back

Функции питона в альфа версии Мажордомо

Имеющиеся функции питона и параметры для их применения.

Всем привет. После долгих и мучительных совместных работ с Тарасом (@Tarasfrompir V) по добавлению функций мажордомо в питон решил набросать статью, что есть, а чего не в альфа версии мажора) Ну и заметка для себя любимого
Погнали!
Что надо чтобы питон работал на мажоре? Пройти по ссылке и все настроить https://mjdm.ru/forum/viewtopic.php?f=4&t=6831.
Затем проверить установлены следующие модули или нет

six
datetime
time
Urllib
urllib2
 json

Если нет установить pip install имя модуля.
1) Функция say(ph, level=0, member_id=0, source=1)
Работает аналогично функции saySafe на пхп, принимает значения в следующем виде
mjdm.say("Привет мажордомо от Питона",0)
mjdm.say(Тип параметра строка STR "", Тип параметра целое число INT, Тип параметра целое число INT)

2) Функция runScript(script_name, params={})
Принимает значения в следующем виде
mjdm.runScript ('action',{"status":"0", 'brightness':"5",'color':'#fffff2' }),
либо
mjdm.runScript ('action')

mjdm.runScript (Имя скрипта строка STR "", Тип значения Словарь все значения внутри словаря заполняются как строки STR ""{Праметр1:Значение 1, праметр2:значение2, и т.д)

3) Функция callMethod(method_name, params={})
Принимает значения в следующем виде
mjdm.callMethod('XiRgbgt02.action',{"status":"0", 'brightness':"5",'color':'#fffff2' }),
либо
mjdm.callMethod('XiRelay10.turnOff')

mjdm.callMethod (Имя метода строка STR "", Тип параметра Словарь все значения внутри словаря заполняются как строки STR ""{Праметр1:Значение 1, праметр2:значение2, и т.д)

4) Функция setGlobal(property, value)
Принимает значения в следующем виде mjdm.setGlobal('Zokalo2.TEST', '1')
Все принимаемые значения строка STR "".

5) Функция getGlobal(property)
Принимает значения в следующем виде mjdm.getGlobal('Zokalo2.TEST')
Все принимаемые значения строка STR "".

6) Функция getObjectsByClass(class_name)
Принимает значения в следующем виде mjdm.getObjectsByClass ('USERS')
Все принимаемые значения строка STR "".
Возвращает значения в виде списка [ "Admin ", "User1 ", "User2 ", и так далее], все значние в типе строка STR

7) Функция registerEvent(eventName, details, expire_in)
Принимает значения в следующем виде
mjdm.registerEvent("adminEvent4", "LOL" ,20)
либо с установкой значения объекту
mjdm.registerEvent("adminEvent4", {"rec":"","obj":"Zokalo2","prop":"TEST","value":"22"}, 20)
либо с запуском метода объекта с параметрами
mjdm.registerEvent("adminEvent4", {"rec":"","obj":"Zokalo2","meth":"checkBt","param":"{"status":"0", 'brightness':"5",'color':'#fffff2' "}, 20)
либо с запуском метода объекта без паметров
mjdm.registerEvent("adminEvent4", {"rec":"","obj":"Zokalo2","meth":"checkBt","param":"{}"}, 20)
либо с установкой значения объекту и запуском метода для объекта
mjdm.registerEvent("adminEvent4", {"rec":"","obj":"Zokalo2","prop":"TEST","value":"","meth":"checkBt","param":"{}"}, 20)

mjdm.registerEvent("Имя Эвента строка STR ", Детали (строка, целое значение, словарь) , время жизни в днях целое значение INT)
Запуск методов и установки значений свойств пока не работает так как надо код дорабатывается

obj - имя объекта
prop – имя свойства
value- значение свойства
meth – имя метода
param – параметры запускаемого метода
"rec":""– записать в бд, без просто исполнить.

8) Функция registeredEventTime(eventName)
Принимает значения в следующем виде mjdm.registeredEventTime("adminEvent4")
Все принимаемые значения строка STR "".
Возвращает время в секундах тип INT

9) Функция registeredEventDetails(eventName)
Принимает значения в следующем виде mjdm.registeredEventDetails ("adminEvent4")
Все принимаемые значения строка STR "".
Возвращает детати в формате списка

10) Функция timeBetween(tm1, tm2)
Принимает значения в следующем видеmjdm.timeBetween ("14:00","00:01")
Все принимаемые значения строка STR "".
Возвращает True или Folse

11) Функция clearScheduledJob(title)
Принимает значения в следующем виде mjdm.timeBetween ("JOB")
Все принимаемые значения строка STR "".

12) Функция clearTimeOut(title)
Принимает значения в следующем виде clearTimeOut ("JOB")
Все принимаемые значения строка STR "".

13) Функция addScheduledJob(title, commands, datetime, expire=1800):
Принимает значения в следующем виде addScheduledJob("OMYGOD", "(строка, целое значение, словарь)", '' 2020-19-10 12:24", 1800
Все принимаемые значения строки "". кроме expire тут целое число в секундах
datetime вводится исключительно в таком формате '' 2020-10-19 12:24:00" год-месяц-день час :минуты :секунды
Возравщает ID задачи в типе INT

14) Функция setTimeOut(title, commands, timeout):
Принимает значения в следующем виде setTimeOut("OMYGOD", "(строка, целое значение, словарь)", 1800
Все принимаемые значения строки "". кроме timeout тут целое число в секундах
Возравщает ID задачи в типе INT

15) Функция setTimeOut(title, commands, timeout):

        n_value
        может принимать значения: n (число, кол-во часов), day, week, month, year
        Пример 2day
        Возращает данные в виде словаря

16) Функция getHistoryexec (obj_prop, n_value, param):

  n_value
    может принимать значения: n (число, кол-во часов), day, week, month, year
    Пример 2day
    param
    может принимать значения:
    max -- максимальное значение за период
    min -- минимальное значение за период
    avg -- среднее значение за период
    sum -- сумма значений за период
    count -- количество значений за период

Из проблем.

Код пока сырой и требует доработки и оптимизации. Если кто пользоваться будет питоном пишите проблемы будем устранять)

Редактор кода в мажоре для питона подтупливает, попробуете выйти и зайти заново. Не помогло, то все значения присваиваем переменным и подставляем в функции переменные.
Код лучше писать в отдельном редакторе, Pycharm например.
p.s. Чукча не писатель

Discuss (8) (7)

See also:
2020-10-09 Функция getObjectsByClass для Phyton3 ver.2 Beta (обновил)
2019-10-24 Управление телевизором на Android TV (linux)
2019-10-01 Отключение и включение компьютера удаленно
2019-09-03 Устройства Онлайн пинг Синего зуба (LINUX/WIN)

Москва, Россия

На форуме: Gastello007