SmartConnector Forum
Schneider Electric support forum about SmartConnector applications for integration of other building management systems (BMS) into EcoStruxure Building Operation.
Link copied. Please paste this link to share this article on your social media post.
I'm working on a smart connector that invokes DataAdapter.ModifyValueItemValue several times per second, because is dealing with high changing rate values. The problem is that ModifyValueItemValue command stores each time the new value on the database till the point it can't handle it and the SQL Server process blows.
Is there any option to change the value of the item (in the process memory) but not update the database?
Thanks.
Link copied. Please paste this link to share this article on your social media post.
Hi Jorge,
I'm curious about how this is implemented, do you have EWS clients polling the Smartconnector EWS Server with the same frequency?
If you are changing a big number of Items, I suggest you turn off AutoCommit for the adapter before the operations, then CommitChanges manually, and depending on your use case, turning AutoCommit on again.
Adapter.AutoCommit = false;
....ModifyItems....
Adapter.CommitChanges();
Adapter.AutoCommit = true;
Hope this helps,
Armend
Link copied. Please paste this link to share this article on your social media post.
Hi @ardak, i have an EBO Enterprise Server polling the EWS at its highest speed (1 second). I would prefer a way of communication from the processor to the EBO that doesn't involve polling (for example, something based on events).
I've read some posts about another method called "CSP" but i'm not sure what it is or how it works, i've tried to found information about it, but no luck so far.
What i'm doing with this connector is reading an image from an IP camera, then i convert it to a base64 value and put it into a String value. That string value is binded with a tgml's image element and i can watch the camera inside a tgml. Problem is, refresh rate is very slow, and there's a big amount of data that is stored in database that i'm not interested on (i don't want to keep an historical log of images).
thats why i'm looking for a method that could allow me to have a refresh rate of at least two images per second without having to do any database transaction.
Thanks in advance
Link copied. Please paste this link to share this article on your social media post.
Hi Jorge,
That is a cool project!
CSP will unfortunately not help here.
I can't think of a way that this could be done using a DataAdapter in a processor and hosting an EWS object without causing a database transaction.
I think what I would try if I was in your situation would be to set up a REST endpoint and use a simple external client to write to a string value hosted in EBO. I'm not sure how EBO and the TGML viewer would handle this in your implementation, but I think it would be faster than doing it through a hosted object in a Smartconnector EWS server.
The only issue I can think of here off the bat is that a "PUT", apart from the EWS "SetValues" command, also triggers an EWS "GetItems", which in your case is costly(for EBO) and unnecessary.
Smartconnector is customizable and you can write a custom REST Provider for smartconnector that behaves the way you want to, but it's quite a bit of work.
I would try with the built in one first and see how it works for you.
BR
Armend
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.