Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Teddy

  1. I ran some tests on R54 and everything worked as expected. I suggest opening a support ticket here (https://seeq.atlassian.net/servicedesk/customer/portal/3) so someone can take a closer look at what is going on. I would attach a link to this post in the ticket.
  2. Are you creating new signals during your updating? If you are creating new signals you will need to create a new export from the export tab. I tested formula changes on an OData connection to excel and it worked fine for me. I don’t have a Power BI license to test with. What version are you on? I can run a test on the same version to check. Teddy
  3. Feng, Do you connect to Seeq through a VPN? I am guessing this is a firewall issue and you are trying to send the data outside the firewall but I cannot say for certain with out knowing more about the architecture. Teddy
  4. To change the text in a document you would need to alter the HTML. It could probably be automated with spy.workbooks but it would be a lot of work. Also, if you wanted to copy the report and reuse it you would need to create a new script or make an addition to the script to separately handle the HTML for the new topic since they won’t be the same. I am not sure what version you are on but in newer versions you have the ability to make a date range as a text label. This feature might be what you are looking for. See screenshot below.
  5. Please note that R Squared is a discrete calculation it would be better to write the formula as follows: $ym = $signal.toDiscrete().aggregate(average(), $days, startkey()).toStep() $total = (($signal.toDiscrete()-$ym)^2).aggregate(sum(), $days, startkey()) $residual = (($signal.toDiscrete()-$prediction)^2).aggregate(sum(), $days, startkey()) $r2 = (1-($residual/$total)).toStep() return $r2
  6. Dan, Currently there is no option to append items using the spy.push command. I recommend pushing to a new worksheet and then adding the items manually through the data tab in order to not overwrite your current work. To push to a new worksheet you can set the worksheet parameter to None. spy.push(data=CapsuleData, metadata=pd.DataFrame([{ 'Name': 'Capsules Times', 'Type': 'Condition', 'Maximum Duration': '1d' }]), workbook='Practice', worksheet=None) I will attach a copy of your post to the feature request. Regards, Teddy
  7. It might be worth trying out Seeq’s OData export. Excel supports an OData feed so you can send data to Excel from Seeq with OData. I believe the live updating OData feed may require additional licensing. Here is a link to the OData documentation. https://support.seeq.com/space/KB/112868662/OData Export
  8. Writing it like the following is only supported for scalars: max($a,$b,$c,$d) If you want to use signals you will need to write it this. $signalA.max($signalB).max($signalC)....
  9. It looks like Graphviz can only be installed through an OS apt package which is not supported in Seeq Data Lab. I am guessing what is on PyPI is just a python wrapper. You can try installing Graphviz on your local machine where you have access to make OS-level changes. Since you have a data lab license the SPy library will work for you on your local machine after you run the SPy.login command. You can run SPy from any python interpreter you would like if you are running it locally. There are a few things the local version can’t do that the data lab server can but for the most part, you won’t notice a difference.
  10. Siang, Looks like graphviz is available on pypi. I would try the following to install it. pip install graphviz You should not need the sudo command. Regards, Teddy
  11. Since the reported vulnerability in log4j we have responded to several customer tickets and emails inquiring about the presence of log4j in Seeq. No recent version of Seeq (back to and including R50) either includes or uses log4j, therefore the issue does not apply to Seeq customers using recent versions of the software (your version of Seeq can be found in the lower left corner of the Seeq user interface).
  12. Yes, an admin can delete the Odata exports from the export tab in the admin panel. See screenshot below for details.
  13. If the above doesn't get you what you are looking for can you attach a screenshot with a drawing of your goal? I didn't fully understand what you were doing with the sum() aggregate at the end so the periods formula I supplied might not help with that part.
  14. I think you are looking for this. periods(3min,3min)
  15. Nate, At this time there is no way for you to change the python version on Seeq’s learn server. Your best bet would be to run your scripts locally and use SPy.login to connect to the learn server. The other option would be to convert your scripts to run python 3.8. Regards, Teddy
  16. The rows in your table are ordered by your details pane by default. You should be able to order the details pane however you want by assigning lane numbers. Changing the lane numbers of your metrics and ordering your details pane by the lane numbers should allow you to achieve your desired row order. Hope this helps, Teddy
  17. Sam, What version of Seeq are you running? The past() function is not avaible until version R51.0.0+. Regards, Teddy
  18. Adam, We had some developers look at the API calls and it looks like you get a different unit depending on the endpoint you use. We are logging a bug for this. In the mean time you can overwrite the units in Seeq using the setUnits() function in formula. Thanks for reporting this. Teddy
  19. Recently we have gotten several requests to clear an item's cache in Seeq with Seeq Data Lab (SDL). The following python script creates a function that will clear an items cache when an item's ID is given as an input. Note: this script assumes you are using SDL. # imports from seeq import sdk # Setup Items API items_api = sdk.ItemsApi(spy._login.client) # Cache clearing function def ItemCacheClearingTool(itemID): try: clearCache = items_api.clear_cache(id=itemID) except: print('Error clearing cache for item ' + itemID) Screenshot of the Jupyter Notebook used to create the function: This function can be used in for loops or applied to columns in a dataframe to clear multiple items' caches at a time.
  20. Isaac, In your case you might be able to set the max interpolation to 1 second on your input signal. If that does not work, you can use a certain signal, such as Area A Temperature to create, a similar result to the past() operator. To create a similar condition to the past() condition you can use the following formula. $AreaATemp.isvalid() Once you have that you can use it the same way the past() function was used above. Teddy
  21. There are a couple options you can take for this. The first is to completely exclude the incomplete day and the second is to exclude the data in the signal until the day is complete. Exclude the Incomplete Day This is relatively easy with the past() function in formula. This function is relatively new so older versions of Seeq may not have it. On your condition that you are aggregating over you can remove all capsules past now and any incomplete ones with the following formula. (Example using daily condition) $Daily.inside(past()) Metric created with a normal daily condition: Metric created with the clipped daily condition: Exclude the Data in the Signal Until the Day is Complete This requires you to make the same clipped condition above and then apply it directly to the signal to limit the data in the signal until the last complete day. $signal.within($ClippedCondition) Results with the Clipped Signal and the Normal Signal:
  22. Sivaji, I am not 100% sure if this is what you are looking for, but you can create a time signal from a condition. This allows you to build a condition with the manual condition tool and apply the following formula to create the time counter. timesince($condition,1h) You can then just limit the training window to that condition. If you need to extend the time counter into the future you may want to apply growend() to the condition in the time since formula above. Teddy
  23. Ben, You can probably use a moving standard deviation to find that condition. Below is an example formula. Note: you can use signal from condition too, but you may want to create a condition with the periods function so you can have better control over the moving range: $signal.aggregate(stdDev(), periods(20min,5min), middleKey()) Hope this helps. Teddy
  • Create New...