This result is correct, because you have marked all three properties as Logged. If you just want to display the OEEState, then go to the other two properties and uncheck the Logged checkbox. The timestamp is add to the query of the value stream by default.
Let me know if you need further clarifications.
What the device is doing is recording the state every 20 seconds whether it changes or not, so the start and end times are changed with every record.
Then if the state value changes, we get a pair of records that gives the time when the previous state ended and the next state began.
What I want to do is "boil" the stream down to just the records where the state value has actually changed.
Thanks, Costin. This makes sense but it is important to understand that the device is acting as a data concentrator/historian. It is accumulating state data all the time but sending to Thingworx only when it is idle and a connection is available. So, depending on when the data is received, the Thingworx timestamp could be minutes, hours or days after the actual time that the state change took place. We need the timestamps recorded by the device to get an accurate, fine grained trace of when the state changes actually took place.
Here is what I really want to have happen ...
As each record from the device is received, I want to compare the new state value to the state value of the last record in the Thingworx repository. If the state value HAS NOT changed, all I really want to do us update the LastOEEEndTime - because the device has remained in the same state for another 20 seconds (or however long). If the state value HAS changed, then I want to add a new record to the repository with the new OEEState, LastOEEStartTime and LastOEEEndTime.
I thought the Value Stream would essentially do this form me. That is, it didn't expect it would update the LastOEEndTime like I want, but it should always have an accurate LastOEEStartTime to mark every change of state.
I suppose I will have to write a custom service to do this filtering on the incoming data values before they hit the ValueStream.