Re: Поддержка Python в Majordomo
Добавлено: Вт мар 24, 2020 3:10 pm
PR в альфу, а ты в мастер отправил.
Код: Выделить всё
def yuser (us):
a=int(user.get(us))
if a==1:
mjdm.sg("Zokalo.TEST",1)
b = ( us +" Home")
else:
mjdm.sg("Zokalo.TEST",0)
b= ( us +" Not Home")
return b
Код: Выделить всё
This is Python script code Traceback (most recent call last):
File "/var/www/cms/python/9ade39b370461bce7ea5ac5a14394bab.py",
line 16, in mjdm.callMethod("XiRelay10.turnOn") File "/var/www/lib/python/mjdm.py",
line 41, in callMethod callAPI("/api/method/"+str(method_name),"GET",params)
TypeError: callAPI() takes from 1 to 2 positional arguments but 3 were given
Тоже самое. Параметры из mjdm.runScript не передаются.vitt76 писал(а): ↑Сб дек 28, 2019 8:02 pmУ меня проблема с передачей параметров между скриптами на php и python. В шапке написаноОпытным путем я установил, что параметры в этом словаре лежат под одноименным ключом - params.можно использовать через переменную params -- она имеет тип "словарь" и будет содержать передаваемые параметры
Я пытаюсь передавать параметр из php-скрипта в pyrhon-скрипт PlayYS, но такое впечатление, что обе следующих конструкцииничего не передают, по крайней мере черезКод: Выделить всё
runScript('PlayYS', $text); runScript('PlayYS',"{'params' : '".$text."'}");
ничего считать не удается, а из GET параметр считывается нормально.Код: Выделить всё
video_url = params['params']
И вторая проблема, когда из python-скрипта я передаю параметр дальше в phpв ответ просто тишина, даже если это просто текстовая строка.Код: Выделить всё
mjdm.runScript('sendAdminTelegram','привет')
Что я не так делаю?
Попробуйте так (вдруг поможет):
Код: Выделить всё
runScript('PlayYS',array('params'=>$text));
Код: Выделить всё
runScript("PlayYS","parameter=".$text);
Код: Выделить всё
import minimalmodbus
import serial
instrument = minimalmodbus.Instrument('/dev/ttyUSB0',1)
instrument.serial.baudrate= 9600
instrument.serial.bytesize = 8
instrument.serial.parity = serial.PARITY_NONE
instrument.serial.stopbits = 1
instrument.serial.timeout = 1 # seconds
instrument.address
instrument.mode = minimalmodbus.MODE_RTU
data = instrument.read_float(0,4,2)
self.setProperty("Voltage",data)
data = instrument.read_float(6,4,2)
self.setProperty("Current",data)
data = instrument.read_float(12,4,2)
self.setProperty("Power",data)
data = instrument.read_float(18,4,2)
self.setProperty("Active_apparent_power",data)
data = instrument.read_float(24,4,2)
self.setProperty("Reactive_apparent_power",data)
data = instrument.read_float(30,4,2)
self.setProperty("Power_factor",data)
data = instrument.read_float(36,4,2)
self.setProperty("Phase_angle",data)
data = instrument.read_float(70,4,2)
self.setProperty("Frequency",data)
data = instrument.read_float(72,4,2)
self.setProperty("Import_active_energy",data)
data = instrument.read_float(74,4,2)
self.setProperty("Export_active_energy",data)
data = instrument.read_float(76,4,2)
self.setProperty("Import_reactive_energy",data)
data = instrument.read_float(78,4,2)
self.setProperty("Export_reactive_energy",data)
data = instrument.read_float(342,4,2)
self.setProperty("Total_active_energy",data)
data = instrument.read_float(344,4,2)
self.setProperty("Total_reactive_energy",data)
Код: Выделить всё
/var/www/html/cms/python/f36b60f1435efb9465ea0a6db49cdcb4.py", line 52, in thisMethod self.setProperty("Voltage",data) File "/var/www/html/lib/python/mjdm.py", line 14, in setProperty setGlobal(self.object_name + "." + property_name, value) ^^^^^^^^^ NameError: name 'setGlobal' is not defined
Код: Выделить всё
Define('PYTHON_PATH','/usr/bin/python2');
Код: Выделить всё
#!/usr/bin/env python3