Join the conversations to shape a safer, more efficient, and sustainable industrial future!
Recently active
CogniteAPIError when listing eventsI have observed an error raised when listing events that I have never seen before. Below is the full traceback 2024-10-28 03:35 : Traceback (most recent call last):2024-10-28 03:35 : File "/app/function/***/***/***.py", line 95, in get_events2024-10-28 03:35 : events = self.client.events.list(2024-10-28 03:35 : ^^^^^^^^^^^^^^^^^^^^^^^^2024-10-28 03:35 : File "/user_env/lib/python3.11/site-packages/cognite/client/_api/events.py", line 817, in list2024-10-28 03:35 : return self._list(2024-10-28 03:35 : ^^^^^^^^^^^2024-10-28 03:35 : File "/user_env/lib/python3.11/site-packages/cognite/client/_api_client.py", line 532, in _list2024-10-28 03:35 : for resource_list in self._list_generator(2024-10-28 03:35 : File "/user_env/lib/python3.11/site-packages/cognite/client/_api_client.py", line 463, in _list_generator2024-10-28 03:35 : res = self._post(2024-10-28 03:35 : ^^^^^^^^^^^2024-10-28 03:35 : File
I'm seeking help and guidance from customers who have tackled or enabled features to improve the LINES when connecting files and assets within Cognite Canvas.We seek to have our connected lines more accurately flow and follow P&IDs as they are added to the canvas. Making the lines conform and adjust vs. extending across the visuals on the canvas.This means these lines should follow the “path” on the connected P&ID where they begin on the document vs. connecting randomly into the side of the document.
When using Co-pilot to interrogate a document, it returns an answer and links to the page of the document from where Co-Pilot inferred the answer. If you click any of those links, the document jumps to that page, but Co-Pilot disappears. You cannot get back to the co-pilot pop-up to click the next link. If you ask the question again, you get a different answer. The original prompt, answer, and links need to remain visible and clickable until the user closes the window or asks another question.
Are there any way of using the javascript SDK without storing access tokens in local storage (or similar)? We would really like to store access tokens in a location where the browser’s JS runtime don’t have access (such as an http only cookie). If not, are there any plans of supporting that?
We have an OPCUA Server (Server) that sends an array (Array) of length 500 every second. We need an OPCUA Client (Client) to stream this array to cloud.First, we use UaExpert an open-source software as Client. Here we can see a node for Array which has values of Array[0], Array[1], Array[2], Array[3], … Array[499] Next, we use Cognite OpcUaExtractor as Client to stream data to cloud. But we result in only Array[0] being sent in each instant (second). I have tried to adjust different parameters in config file with no success.
Hello Cognite Community,I am working on a workflow that involves receiving a daily email with a consistent title in Outlook. Each email contains an attachment that I need to extract and process. I'm looking for a way to automate this extraction process using Jupyter Notebook.Has anyone implemented a similar solution or could guide me on how to approach this? Specifically, I’d like to:Identify emails by their subject line Download the attachment(s) automatically Work with these files within a Jupyter Notebook environment for further analysisAny suggestions, code samples, or libraries that could help with this integration would be greatly appreciated!Thank you in advance for your insights
Hello, We are unable to select version of workflow from the UI. for instance here we are at version 0.0.39 and in the UI the workflow is at version 0.0.1.I think this might be an UI issue. Thanks
Hello!I'm trying to develop a PowerBI dashboard but encontered some situations where it's impossible to not expand new columns or lists from the nodes (foreign key from dimension table is inside the node) and I understand this drops the performance considerably (sometimes even turns impossible to load the table) of the model in the dashboard.Is there a way to query the data straight from the connector? I know there's the possibility of making simple filter queries but I wasn't able to use other type of OData queries that exists. We need a solution that simplifies this since currently it's impossible to load more complex data models into PowerBI without expanding the nodes.Please understand that I want to keep this situation as low code as possible, so an API or SDK solution is not an option.Thanks!
Hey Everyone!Curious about how to boost your rank and unlock some amazing new abilities in the community? 🚀 If you haven’t checked it out yet, we’ve just shared an exciting update about the perks awaiting you when you reach Level 4 (Practitioner). From marking correct answers to unlimited post editing, these benefits are designed to empower you as a community leader.👉 Check out the full details here!👈Ready to take your engagement to the next level? Head over to the original post for all the details and start leveling up today!
Hello ! I am new to this community but would like to ask the following: Has anybody any experience extracting a list of DCS Process Alerts to Operators or Operator Overrides on an Hourly or Daily basis into CDF ? This data resides in the OT and is sometimes extracted and made available in reports in the IT domain, e.g., by Yokogawa. As I see it, this is an important indicator for stable and well managed production operations, and also a good predictor of upcoming threats to production.
dear all I was attempting to perform data aggregation based on the date. I am retrieving online data into CDF, which is updated every 2-3 minutes. I am trying to aggregate the data so that the date is updated every 24 hours instead of every 2-4 minutes.I used this code to obtain the list of columns in my data frame.# Check the structure of the DataFrame, including column names and the first few rowsprint(dp.columns) # This will show all column namesdp.head() # This will show the first few rows of the DataFrame however, I got only this after running the code I tried to use another code again the first column is not date column.
Dear developer community,The Cognite product team building the GraphQL API for our Data Modelling API is planning to upgrade third party libraries used in the implementation of the service. This is part of our normal product lifecyle and maintenance, and would not normally be something we make a dedicated announcement of. The upgrade brings improved validation, performance, and other fixes.However we have seen that this upgrade is liable to cause issues for some clients that make GraphQL requests that are not compliant with the GraphQL specification. Specifically, primitive types in field values will no longer be coerced into the correct type by the GraphQL server. So, for example, a client sending the string ”true” where the boolean value true would be correct will, after the upgrade, receive an error rather than the server quietly accepting and converting the value.This behavior change should not be an issue for anyone using one of the compliant third party GraphQL client libraries o
Hi Everyone,Have you heard about the Cognite Most Valuable Professional (MVP) Program? If not, it’s time to check it out and see how you can take your community engagement to the next level!Being an MVP is more than just a title. It’s a recognition of your skills, contributions, and leadership within the Cognite ecosystem. Whether you're answering questions, posting topics, sharing ideas, or leveling up your expertise through our comprehensive learning path offering – every step gets you closer to becoming a recognized leader.If you're already contributing, keep up the great work – you're closer to MVP than you think! And if you're just getting started, now is the perfect time to dive in. Check out the full post about our MVP program here to learn more about the program and see how you can start your MVP journey today!Let’s motivate each other, engage more, and climb the leaderboard together. Who will be our next MVP? 🌟
Hello All! As this is my first time writing, I will do a quick introduction. My name is Patrick Mishima, and I am one of the Cognite Product Specialists. My main specialization is data integration and governance. I've worked with data since 2011 with different roles, projects, and job titles all related to data management. I also have experience with various ETL and BI tools, mainly from Microsoft and SAP and a few others.I lead the Product Specialists team, and we'll soon have more articles to share our knowledge and experience with you.Today and in my following articles, I will focus on the different options that Microsoft Azure and Cognite offer on data integration between our platforms and tools. But first, let's talk about a few essential and fundamental points when working with cloud providers. Using a cloud provider, most of the time, we think about saving on infrastructure costs. That is indeed true, but it's not the only truth. When you decide to move to a cloud provider, you
Hello,I am trying to understand the difference between Sequences and Events to see what is pertinent for me in a specific use case. For me, both of them allow saving a native CDF object along with a timestamp, enriched with other data. I feel like we can also achieve the same goal by making a data model with timestamps in one column and all the properties we are interested in, in other columns; though this approach would be harder because it would necessitate using pygen for input output. In my company, we work on Industrial processing lines. At any given moment, a line is operating under a set of conditions, defined by a fixed set of set points, like ‘conveyor speed’ and various temperatures. Let us call the set points a, b, c etc. For set points a, b and c, we have measured values i, j and k.To assess whether the machine is operating normally, we want to compare the aggregated measurements (i-j-k) taken during a period when the set points are a-b-c with a previous instance when the
In some AI demos built on top of Cognite, our approach to real-time inference involves retrieving the latest time series values for the equipment. Since our machine learning models are deployed and running on a cluster outside Cognite, we leverage the SDK to handle real-time inference by retrieving the most recent data as follows:real_time_data_bomb_hfx = cdf_client.time_series.retrieve_latest(id="bomt_hfx_time_series_id")Is anyone working with a different approach to send new data for inference to their machine learning models? I'd be interested in hearing how others are managing this process.We are also exploring more resilient approaches, such as: Streaming Data for Real-Time Inference (Event-Driven Approach): We plan to test Cognite's Kafka extractor as soon as possible to enable more seamless streaming. On-Demand Inference via API: While this approach is synchronous, which has caused challenges for us in the past, we prefer to avoid this method and lean toward more asynchronous
I am making comparisons between time series data in CDF and PI. The reason is that in our tenants the CDF data is not 100% accurate compared to PI.However, from my testing I think that PI performs its aggregations with the timestamps “centered” at the aggregated time periods, while CDF puts the timestamps at the start of each aggregated period. Is it possible to specify how this is done with the Python API? From my study of the docs it appears not to be the case. The same applies to the PI Web API as well: I cannot specify how the timestamps are placed. The agreement with PI becomes significantly better if I place the CDF timestamps at the center of the aggregated time periods.My current workaround is the following:Fetch RAW data from CDF Shift the timestamps by 0.5x of the granularity Resample to the desired granularity Compute mean Interplate any missing valuesThe issue is that fetching raw data is a lot more time consuming than fetching aggregates. I have been playing with fetching
Hi all.We’re working on defining KPIs to track our digitalization journey, and think that a KPI on the use and adoption of CDF as opposed to “the old way of doing things” would be useful. I’m posting here in an attempt to hear if the CDF customer community can provide inspiration for how to ensure success and good adoption of CDF among users. Does anyone have thoughts to share on their own metrics for CDF usage?My thoughts so far are tracking the number of unique users logging in to Fusion/Charts, number of API calls against CDF, etc. Although I have not found any direct way as a customer to obtain this information. The Sessions API endpoint could possibly be a place to start?And as a follow-up question; CDF usage in itself is a quite indirect metric on the digital maturity of the business, and on acheived value. My ideal goal would be to find a more direct higher level metric for the entire company, which is not as indirect as user log-ins, and also not as narrow as value obtained for
Wondering how to create a faster and more reliable root cause analysis? Check our How-to post:
We're excited to announce the first bootcamp following a major update! This version now includes the powerful CDF Toolkit. About the CDF BootcampThe Cognite Data Fusion Bootcamp is an instructor-led, 4-5 days course that guides participants through a hands-on example to develop production-ready solutions with Cognite Data Fusion (CDF). While it is possible to grant access and ingest, transform, and contextualize data manually in CDF through the User Interface, creating a proper CI/CD pipeline that allows the development team to promote the project through different environments (e.g. test & prod) is essential in creating a production-ready solution. With the introduction of the CDF Toolkit, it is now possible to replace different types of CLIs with one command-line tool to configure and administer Cognite Data Fusion (CDF) projects. The Toolkit also includes pre-built templates to help you quickly start your CDF project.The Bootcamp has been developed by CDF and DataOps experts and
Hello Developers!In June, we launched the new Data Workflows service in Cognite Data Fusion. This service enables you to orchestrate Transformations, Functions, and more, bringing powerful capabilities to your data management processes.To help you get started, we've made some new content available:Cognite Learn: Check out our introductory video that covers the core concepts of data workflows. This is the first in a series of videos and guides we’ll be rolling out in the coming months. Jupyter Notebook in Fusion: Explore an example notebook in your CDF project, demonstrating how to leverage the features of the data workflows service. You can find it by navigating to Jupyter Notebook in the Data Management workspace in Fusion, and then go to the shared folder /Examples/data-workflows. We encourage you to try out Data Workflows and share your feedback with us either here or in the dedicated Hub group. We're continuously working to enhance the service with new features, so stay tuned for
We have a DM with many direct relations. A processing is directly liked to an asset with the name of the property being ‘equipment’. list shows the field as either just text or a dictionaryWe use the Cognite data modeling API to generate models and use pygen to run programs on it. I have noticed something strange while using pygen. Properties which are direct relations to other types sometimes are shown as text and other times are shown as NodeId objects.On close inspection, they appear as NodeId objectsIn the former case, while observing them in the Data Model view, the properties appear empty. Actually, they contain the external_id of the instance as a string which can be seen while querying with pygen. DM view showing seemingly empty cells Sometimes, instances spontaneously transition from one type to the ohter (NodeId → string or vice versa). In my pygen programs thus, I have to use the following function to keep the program running. from cognite.client.data_classes.data_modeling
In Cognite Data Fusion data models, instances (nodes and edges) are uniquely identified by their space and external ID.To simplify the user experience, Pygen includes a parameter called default_instance_space. You can set this parameter when generating a new SDK, allowing you to work with nodes and edges without specifying their space, as long as all nodes and edges share the same instance space.In earlier versions, if you didn’t specify the default_instance_space, Pygen would default to using the same space as the data model. Now, Pygen generates an SDK that requires users to specify the space when creating, retrieving, and deleting nodes and edges.The reason for this change is that having the schema (data model, views, containers) and data (nodes and edges) in the same space is considered an anti-pattern. Governance of a data model should be in a separate space, while data ingestion and consumption should occur in different spaces, typically one space per data source.
Hello Everyone! Exciting news! We're hosting Impact 2024, Cognite’s first User Conference, and we want YOUR use cases to shine. You can read more about Impact 2024 here. Why Share your Use Case?Your stories inspire. Share how your projects have driven real business impact, from boosting revenue to streamlining processes. We also welcome discussions on challenges you've faced and unresolved issues. This can spark meaningful conversations and potential solutions during the event.How to Get Involved:Submit your use case in this thread including it's impact. Based on the submissions, we will organize workshops to explore these use cases further. If your use case is selected, you will receive a free ticket to Impact 2024. We are committed to fostering a collaborative environment while respecting confidentiality and competition concerns, ensuring we all become better together. Mark Your Calendars:Submissions Open: April 25, 2024Submission Deadline: June 30, 2024Winners Announced: August 1, 2
pygen version v0.99.30has just been released with a new approach to creating queries. This is experimental and we are looking for feedback. Check the documentation for more information.