Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Alexander Wellbrock
    @lionax_gitlab
    I can't seem to find measurementUnit as well in the swagger spec
    Alexander Wellbrock
    @lionax_gitlab
    I'd also like to introduce the EnumLiteralPropertyAttribute severity for Alerting type fields. EnumLiteralPropertyAttribute: 'measurementUnit' | 'severity' ':' [Enum::ID | QualifiedName]; What do you think?
    Kevin Olotu
    @kolotu
    @lionax_gitlab you are right the property attributes are missing in the Swagger specification. I have created the Github issue #2116 to address that - if there's anything to add, just add a comment to that issue.
    @lionax_gitlab I'm not sure, if I understand your second question completely - do you want to extend the DSL for this use case?
    Alexander Wellbrock
    @lionax_gitlab
    I'm basically requiring something like measurementUnit, but with a new / other context. I could use the measurementUnit and assign is an enum, but since "severity" is no "unit" it would be strange to do so. So to keep backwards compat I'd rather use a new enumliteralproperty which is more generic for these kinds of use-cases and deprecate measurementUnit, or simply introduce more of these types of properties and maybe make them all applicable at the same time, like metadata for a datapoint. Currently it is not possible to set something else as enumliteralproperty than measurementUnit - the editor will complain. I hope it's a bit clearer now.
    For the integration in the swagger docs I stumbled upon this while generating a vorto client sdk from the swagger yaml.
    Kevin Olotu
    @kolotu
    @lionax_gitlab Okay I now understand how you want to use it - could you please open a Github issue for your new EnumLiteralProperty, so we can share, discuss and track it easier?
    Julian
    @JulianFeinauer
    Hi Vorto Experts : )
    Alexander Edelmann
    @aedelmann
    Hello Julian. How can we help ?
    Julian
    @JulianFeinauer
    I came across vorto now for the third time, I think and wanted to give it a closer look
    And as it's a bit of a meta technology I struggle a bit to fully understand it
    Julian
    @JulianFeinauer
    So, one question in Short.. vortolang describes one „type“ of device, as I undertand it, not one specific devices. I sthere a possibility to pass not only attributes and ops but also technical metadata (like memory adresses, …)?
    Alexander Edelmann
    @aedelmann
    With the vortolang u can create a semantic abstraction of device functionality as so called Function Blocks. These can be used to define device types such as a Bosch XDK or CISS Sensor as Information Models. If I understand u correctly is that u want to assign static meta data values for a device type. This is not possible at this point but would be a good add on for vorto Lang 2.0 :smile:
    U can only define a function block say device Information which would merely define properties such as memory etc on meta level. To assign actual values to them is not possible.
    But it Anyway makes only sense on information model level as function blocks are device type agnostic
    Julian
    @JulianFeinauer
    Okay thanks @aedelmann. To give you a bit of content our "things" are usually big industrial machines
    And many of them are pretty similar but never the same. And my idea was to pass some configuration data via the vorto model
    Alexander Edelmann
    @aedelmann
    U might wanna check out the payload mapping stuff of Vorto that addresses mapping heterogenic payloads to a single semantic data model defined with Vorto.
    Coz I would assume that your industrial machines would either send the same semantic data in various formats
    When u mean configurations , what is that for example ?
    Julian
    @JulianFeinauer
    We use plc4x to fetch data from the machines plcs. So it would be nice for us to partially already pass plc address information with the model
    Then we could write a client that is totally agnostic and mostly configured via vorto
    Alexander Edelmann
    @aedelmann
    U can pass this kind of information in the mapping model of either function blocks or information models. At eg code generation time the PLC4X Mapping model and Vorto model are merged and passed to the generator for adapting Vorto Interface to the PLC4X api and vice versa
    Julian
    @JulianFeinauer
    @aedelmann thanks for the response although i do not yet fully get it. Do you have an example somewhere?
    Alexander Edelmann
    @aedelmann
    Take a look at the amazon Alexa skill set generator where there is a Colorlight functionblock defining pure functionality of a Colorlight
    And the amazon skill set specific meta data in a mapping file for the Color light
    In the Alexa skillet generator both the Vorto functionblock and the Alexa skill set specific meta data from the functionblock and it’s mapping is processed in order to generator source code
    Alexander Edelmann
    @aedelmann
    In your case u can put plc4x specific meta data in the mapping model for each functionblock to process them in your code generator or eventual other component
    Julian
    @JulianFeinauer
    Okay I will try to create an example thank you
    Alexander Edelmann
    @aedelmann
    👍
    Alexander Wellbrock
    @lionax_gitlab

    What are your thoughts about client libraries and clients? Of course I can implement or simply generate stubs from the OpenAPI documentation of Vorto, but with an official or at least reference client the community would benefit.

    My incentive to bring this up is the following problem I'd like to discuss with you.

    When building micro-services in a ditto-vorto environment I need the model-information at many different services. Each service requires other meta data but they all share the need for some kind of caching in order to minimize the executed queries against vorto. Actually I'd like to program against 'handles' like it's done in the ditto client with potentially a configurable cache of entries in the back so I can save the network usage.

    I've a service which is basically invoked for every message to a thing. If this service now calls out to vorto for each and every message this creates a huge amount of requests which then becomes an important scaling factor.

    Kevin Olotu
    @kolotu
    @lionax_gitlab we do have a Java client that you can use as library in your project for the calls to Vorto - so what you are suggesting is to introduce some caching in that client?
    Patrick Sernetz
    @patrickse

    @JulianFeinauer I am also using vorto (or start using it) to model big industrial machine with many subsystems. I am currently looking for examples of a more complex device then a Bosch XDK. At first I though it should be possible to create some relations between infomodels... for example

    Machine 1
      '--> Pump 1
      '--> Pump 2
      '--> Vessel 1

    But I could not find any hint on this.

    I could model it as InfoModel Machine 1 with different function blocks Pump 1, Pump 2, Vessel or with a more atomic approach like this:
    machine1.infomodel, pump1.infomodel, pump2.infomodel, vessel1.infomodel.

    Do you have any further experiences how well these approaches would scale?

    Julian
    @JulianFeinauer
    @patrickse hey! Indeed seems like you have similar situations as we have
    But sadly I did not get further yet
    But would be interesting to discuss the topic together with you
    Patrick Sernetz
    @patrickse
    :+1:
    Shan Desai
    @shantanoo-desai
    Hi all, quick question. Is it a possibility to host Vorto as a standalone instance and instead of sending data to a Cloud, the data is sent to a database on the server? I went through the videos of Vorto but couldn't wrap my head around a case where I can send the data to a database not on a cloud platform
    Kevin Olotu
    @kolotu

    Hi @shantanoo-desai , sure you can host your own Vorto Repository on your local machine or a server that's not in a cloud. You can either run the SpringBoot application directly, or use our Docker image to spin up your own instance. You can find a quickstart guide for using the Docker image here: https://github.com/eclipse/vorto/blob/master/docker/Readme.md

    If you have further questions feel free to reach out again.

    Shan Desai
    @shantanoo-desai
    Hi @kolotu I am now able to grasp the concept of Vorto. What I am unable to grasp is whether Vorto is compatible only with Bosch IoT Suite or similar platforms or can one use the examples such as MQTT python to send information to custom brokers.
    Are there some plans to provide some codes for Time Series Databases like InfluxDB? A lot of times it might be useful to observe the Things over a span of time and not just a generic overview
    Kevin Olotu
    @kolotu

    @shantanoo-desai Vorto is not restricted to any specific platform. I think for understanding how it works, it is important to distinguish the different components.

    The Vorto repository is a standalone application with a REST API that you can call from any application. There is a Java client that simplifies the integration for Java application.

    The Payload Mapping Engine (aka. Vorto Middleware) is a separate component that retrieves the mapping specifications from the repository and uses it to map telemetry data. To receive data the Middleware supports the AMQP protocol. The middleware can be easily extended to support multiple output types. AWS Kinesis is already implemented for time series data. (see here: https://github.com/eclipse/vorto-examples/tree/master/vorto-middleware/middleware-ext-kinesis)

    We currently are not planning to add InfluxDB or other similar DBs. If you would like to do the implementation, we are glad to accept your contribution.

    Julian
    @JulianFeinauer
    Hey Vorto Experts. I have a rather general question. Are there any no code approaches to vorto generated clients. If you assume that you have a specific transport on a device you could in theory just generate a complete client, e. G for ditto and just enter parameters like io addresses or something for the features.
    Do things like that exist?
    Kevin Olotu
    @kolotu
    Hey @JulianFeinauer, yes there are approaches for Vorto generated clients. We already have a generator for Eclipse Hono that supports Java, Python and Arduino. We don't have a Ditto client at the moment, since there's mostly Hono in between device and Ditto, but technically it would be possible to write one.
    In the code base, you can check generator-eclipsehono module. On the UI, you will find the generators on the right, when you view a model