Передать данные из питон скрипта в МЖД

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Передать данные из питон скрипта в МЖД

Сообщение Gelezako » Сб сен 02, 2017 2:06 pm

Есть питоновский скрипт, результатом которого является число. Мне это число нужно передать в МЖД для обработки. Подскажите как это правильно сделать. Всё что приходит на ум это питоновский скрипт сохраняет число в файл, а потом на пхп читать этот файл. Но возможно есть более элегантное решение. Спасибо.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение skysilver » Сб сен 02, 2017 2:20 pm

Можно url дернуть:

Код: Выделить всё

import urllib
current_url = 'http://192.168.1.10/objects/?script=json_js&mac=%s&rssi=%s' % (list_beacon[0],list_beacon[1])
urllib.urlopen(current_url) 
В этом примере вызывается сценарий json_js и ему передаются два параметра. По аналогии можно сразу свойству объекта значение присваивать.

Либо в самом MJD запускать питоновский скрипт через exec():

Код: Выделить всё

$value = exec('sudo python путь_к_питоновскому_скрипту'); 
За это сообщение автора skysilver поблагодарил:
lanket (Чт сен 07, 2017 7:30 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение Gelezako » Сб сен 02, 2017 3:06 pm

вы не поняли, мне не надо запускать скрипт средствами МЖД, мне надо в МЖД передать результат работы скрипта.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение skysilver » Сб сен 02, 2017 3:07 pm

Ну а первый вариант чем тогда не устроил?
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение Gelezako » Вс сен 03, 2017 1:52 pm

пока так и сделал, я не опытный девелопер и мне почему-то показалось что это кривое решение
но если ни у кого не появилось другого решения, то наверно это норм :)
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение skysilver » Вс сен 03, 2017 2:42 pm

В чем кривость использования штатного api MJD? Или вы сделали по своему, через промежуточный файл? ))
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение Gelezako » Вс сен 03, 2017 3:28 pm

да, сделал через промежуточный файл и именно этот способ я назвал "кривым", а не api MJD. Втом то и дело, что я не знаю как использовать api MJD. На сколько я понял, вот в этом примере

Код: Выделить всё

import urllib
current_url = 'http://192.168.1.10/objects/?script=json_js&mac=%s&rssi=%s' % (list_beacon[0],list_beacon[1])
urllib.urlopen(current_url)
в питоноском скрипте вызывается сценарий из МЖД. Тут передаётся 2 параметра, и то что я хочу передать необходимо указать вместо переменной list_beacon ? Если да, то как мне обращаться к ней внутри сценария мжд?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение skysilver » Вс сен 03, 2017 3:55 pm

Все верно понимаете. Возможно, проще будет не сценарий вызывать, а сразу свойству объекта присваивать значение:

Код: Выделить всё

import urllib
current_url = 'http://192.168.1.10/objects/?object=ThisComputer&op=set&p=MyValue&v=%s' % (list_beacon[0])
urllib.urlopen(current_url)
ThisComputer это объект, MyValue это его свойство, list_beacon[0] это переменная в питоновском скрипта, которую и нужно передать в мажордомо. Поменяйте их на свои, ну и ip сервера свой подставить.
За это сообщение автора skysilver поблагодарил:
Gelezako (Вс сен 03, 2017 10:34 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Передать данные из питон скрипта в МЖД

Сообщение Gelezako » Вт сен 05, 2017 10:00 pm

skysilver ваш код отлично работает из под админа (у меня win 10), но пхп функция exec() не может запустить питоновский скрипт без админских прав. МЖД я запускаю под админом, но php.exe по какой-то причине запускается под моим локальным пользователем (это я вижу в диспетчере задач) и из-за этого функция exec() не хочет запускать мой скрипт. Подскажите как php.exe заставить запускаться под админом в момент старта всей системы МЖД либо по другому как-то решить эту проблему. Спасибо.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Sasha95
Сообщения: 57
Зарегистрирован: Ср авг 02, 2017 10:16 pm
Благодарил (а): 17 раз
Поблагодарили: 1 раз

Re: Передать данные из питон скрипта в МЖД

Сообщение Sasha95 » Ср сен 06, 2017 1:37 am

Gelezako писал(а):skysilver ваш код отлично работает из под админа (у меня win 10), но пхп функция exec() не может запустить питоновский скрипт без админских прав. МЖД я запускаю под админом, но php.exe по какой-то причине запускается под моим локальным пользователем (это я вижу в диспетчере задач) и из-за этого функция exec() не хочет запускать мой скрипт. Подскажите как php.exe заставить запускаться под админом в момент старта всей системы МЖД либо по другому как-то решить эту проблему. Спасибо.
shell_exec попробуйте так, у меня так получалось.
Ответить