-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggestions for the specification #33
Comments
Hi @bgusach ,
What do you think? |
@ameinhardt sounds pretty good. How do you want to proceed? are those points already discussed and agreed to a certain level of detail? or they rather need to be further discussed? |
Since the unide version 0.2.0 was finalized, we could use the current 0.3.0-SNAPSHOT to create a new ppmp-schema/src/main/resources/org/eclipse/iot/unide/ppmp/v3 with improvements.
@bgusach: where could you support? |
Hi, I'd like to suggest a field length change to We use the machine messages to send events, with structured codes in the form If this field is altered, the field |
@bgusach: I didn't understand your last point. Did you mean "program" vs "process"? |
Having a primary axis other than time is quite a conceptual shift from the current view of what measurement data is - as it is currently gathered in real time. We would be moving away from data gathering to a more general data transport format. The pressure/distance example sounds more like a rule set if there's no time component. Should we be looking at a new PPMP message type for such things? How would we deal with data split over multiple messages? At the moment, the time component is mandatory. Everything can be ordered correctly. Moving to an alternate (and therefore non-mandatory) axis could be a source of problems. Note that a system that measures both pressure and distance over time will use the current model; the receiving end can choose to ignore the time component. Do we have an explicit need to transport measurement data without a time component? Our use cases for collecting sensor data all require timestamps as part of the data qualification, but I would be interested to hear about other use cases. Steve |
I have created draft schemas for v3. You can find them at ppmp-schema.../v3 Note that
The website and diagrams are also updated, but only reachable via direct links: |
Hi @ameinhardt
No, I meant
That is true, but still feels unclear to me. Let's use the Bremen-Berlin example. Say:
How do we know that at the time of the 507th element, the limit I would find it more elegant if each
I agree with @bf-bryants , moving from time to another unit is a huge shift in the semantics. And the pressure-distance distribution still needs IMHO a time component in the context of machine performance management: that happened at a given moment and you most probably want to know when. On top of that, these distributions must be discrete, right? for instance you have 100 pressure sensors over your 100 meter pipe, you could still have 100 dimensions in the Does it make sense? :) |
Hi @ameinhardt , |
Hi @muelsen
Looks like |
Thanks for the input & active discussion, @bgusach, @bf-bryants, @muelsen! In that first v3 draft/proposal, I included the feedback of #17: there's no specific need for '$'. Before, '$' should have indicated an array of 'long' instead of 'float'. Yet, now we have the schema which clearly indicates the data type. A parser can treat the keyword 'time' in the same way he would deal with '$_time'. @bgusach: interesting point to merge classes with 1:1 relation! I always thought it's a good idea to keep the "shell" (*Payload) as universal as possible. An implementation could still merge all payload types of one device into one. Maybe "series" would be a candidate for merging into measurement instead?! measurements[].context.temperature.limits[507] applies to measurements[].series.temperature[507] in the same way as measurements[].series.time[507] applies to that as well. If for all context* changes a new measurement has to be created, representation of reference curves (continous increase of temperature in warm-up phase) would be much more redundant. You guys have a point: time would always be there with a measurement, although the later display of the correlations might not make use of it. @muelsen: do you agree? |
Hi @ameinhardt
I think that's good. And thus we can remove some exceptional name handling for the
What do you mean by "universal" in this context? I find it hard to think about some reuse cases, if that is what you mean. There is this rule of thumb that says that if
Could you provide an example of merging payload types? do you mean reusing the same code classes or something like that?
Uhmmm not sure about that one. The
Ah ok, I think I got it. If you don't use exactly zero or one limit, you need one limit object for each entry in the series right? If that is the case, uhm... it depends on the case, but in general looks to me a tad inefficient. Coming back to the Bremen-Berlin trip, if we measure the speed 10.000 times, but the speed limit changes only 10 times, we are sending something like As you say, If those limits change a lot, like in every single datapoint (or just a few of them), it is true that creating a |
Hi, I'm missing the location for custom data. In V2, we had Does anybody know why they are gone? Steve |
Hi @bf-bryants: I removed the dedicated metaData, but additionalProperties: false as well. |
Ooops.. I missed that, sorry. I assume that will work. Thanks. |
Hi everyone, Another suggestion is to change the name of the time-series to ts_offset in order to have a dedicated coupling with the ts of the measurements-object and to know directly that this means an absolute timestamp. "time" would be to not specific enough. |
I agree with @muelsen in both points. I'd just say that a key name like |
Hi @ameinhardt, I was thinking about what we discussed on this:
Just an idea here. I realized that |
Hi all,
|
@muelsen: with the current version , that should be addressed |
Hi there,
I think there are a few corners of the specification that could be improved or explained better. Maybe some of them have a documented explanation somewhere, but I could not find it. Well, there we go:
Machine Message
while others do asMachine Message Payload
orMessage Payload
(this last one is especially confusing, since "message" is used everywhere). Same goes for Measurement and Process messages.Measurement
, one part of theMeasurementPayload
and the other part ofProcessPayload
. Naming is confusing, and the classes are very overlapping. Maybe they could be combined and reused?Series
classes, one belonging toProcessPayload.Measurement
and the other one toMeasurementPayload.Measurement
. One requires offsets while the other one does not. Is this meant to be so? if so, could anybody give an example? I can't think of a meaningful series without a time offset...ProcessPayload.Measurement.Limits
to be understood? How can a physic dimension have multiple limits at the same point in time?ProcessPayload
class is too thin, and (at least in my limited understanding) conceptually pretty much the same thing as theProcessPayload.Process
. Maybe they could be conflated?The text was updated successfully, but these errors were encountered: