Skip to content

Bridging Realms: Integrating MQTT and Siemens SCADA into Unity's 3D Worlds

60 Minutes

Webinar Overview

This webinar will show an integration of MQTT with the Unity game engine and how MQTT can be used for Multiplayer Games and showcase the remarkable potential of using industrial data in Unity. Unity, primarily known for game development, emerges as a powerful platform for visualizing industrial data in 3D, making it a versatile tool for both gaming and industrial applications.

Additionally, we will show the integration of Siemens' WinCC Unified SCADA system with Unity, facilitated through the WinCC Unified GraphQL server. This segment demonstrates a streamlined method for transferring SCADA real-time and historical data into Unity's 3D space.Β 

By the end of this webinar, attendees will have an understanding of combining gaming elements with industrial data from MQTT and Siemens SCADA systems in Unity.

Key Takeaways

  • The webinar covered integrating MQTT and Siemens SCADA data into Unity's 3D worlds for gaming and industrial visualization.

  • Andreas Vogler, a Senior Key Expert at Siemens, presented on the benefits of using MQTT for real-time multiplayer gaming:

    • Players can connect and share game data via a central MQTT broker, HiveMQ.

    • Birth and Last Will messages handle player joins/exits.

    • MQTT enables real-time updates, reliability, efficiency, and simplicity.

  • Vogler discussed structuring topics with MQTT and planning payloads for games in Unity.

  • He demonstrated a simple Unity game using MQTT to sync a cube's position across players.

  • Vogler explained how Siemens' WinCC Unified SCADA System supports GraphQL for querying live and historical data.

  • GraphQL benefits include eliminating over/under-fetching, real-time updates, reliability, efficiency, and simplicity.

  • Vogler showed a game he built combining MQTT for multiplayer, GraphQL for SCADA data, video streaming over MQTT, and a virtual robot model mirroring a real robot.

  • In the demo, players could shoot each other, control the robot's joints, view live video, and see SCADA data history/live values in Unity.

Transcript

Introduction

Scott Baldwin: 00:00:05.995 Morning, everybody. Thanks for joining. See some familiar faces from our community. Welcome, everybody. All right, let's get started. My name is Scott Baldwin, and I'm the community leader here at HiveMQ, and thanks for joining us today at the first of our community-led webinars. Really excited about this one. Just a few housekeeping items. Feel free to utilize the chat throughout the session for any commentary as we go along. Q&A, if you have any questions for Andreas, we'd be happy to moderate those at the end of this. We will record today's session. So if you do have to leave earlier or want to share that with a colleague, we will make that available later on within our community, as well as on our YouTube channel. And if you're not already a member of our HiveMQ Community, come and join us, HiveMQ.com/community, and you can sign up for our Slack and get access. I'm really happy to have Andreas joining us today. Andreas Vogler is a Senior Key Expert at Siemens with a history of working in information technology and industry. He's an open-source enthusiast and skilled in many parts of the IoT technology stack, including SCADA, MQTT, Apache Kafka, and various programming languages. And he brings a wealth of experience from his consulting work as well. As a member of our HiveMQ Community, we're really excited to have Andreas sharing his knowledge today. And a little fun fact, Andreas also shares the name with a famous Swiss architect, designer, and artist. So if you try to Google them, keep in mind, you might find a few other people along the way. And with that, I'm going to pass over to Andreas and we'll get things started.

Speaker Overview

Andreas Vogler: 00:01:33.119 Okay, thank you very much. Even though I didn't know that I have the same name as a famous architect. Very cool. So well, yeah. Thank you, Scott, for the introduction. So let's start with the webinar integrating MQTT and Siemens SCADA data into the 3D world of Unity. So just first, a safe harbor statement from my side. This just says that the views expressed in this presentation are my own and only my own safe harbor statement so everyone can see it. No one will read it, but it doesn't matter. So I have been an employee of Siemens and ETM already for a long time. As already, Scott also mentioned it. I'm a Senior Key Expert at Siemens. And I've been at ETM for a long time. At ETM, we make the SCADA system β€” WinCC is the open architecture. And ETM is fully part of Siemens. They are fully integrated. And so if you some time need a flexible and highly scalable SCADA system, then please think about this β€” it’s the open architecture. And on the right side you see β€” let me just add more points, you see some of the technologies which I like to work with. First of all, of course, Siemens, Unity. We will hear afterwards more about Unity, of course, and MQTT. And I really also still like to program. And mostly I try to program in Kotlin. So this is a GVM-based programming language. Let's say I personally say the next-generation Java, the better one. And GraphQL β€” I really like. So the agenda of this talk, the introduction β€” I think that one we have already done. I will talk then a little bit about MQTT for gaming and then also about GraphQL for industry and also GraphQL for gaming. And then we will go to the fun part. So I've made a little game by my own with Unity and with MQTT and GraphQL. So put all the things together.

The Power of MQTT for Gaming

Andreas Vogler: 00:03:27.407 And to be honest, I'm not really a game developer, I have to admit. So don't expect a very, very fancy game. It's simple, but it shows how the things work together. A little bit about Unity, for those who don't know it. Unity is a real-time 3D game engine. It means basically, or initially, it is mostly used by game developers to implement games in the 2D world, in the 3D world, and primary programming languages. And very cool on Unity is that it is multi-platform, so you can write it once for your game and then deploy it to desktop, mobile devices, AR, VR devices, headsets, and so on. It's really multi-platform. Unity comes from the gaming area. But Unity now also goes heavily into the direction of the industry to visualize machines and things in the 3D world. And now we will jump back to gaming, let's say, the power of MQTT for gaming. So [inaudible] MQTT must be a good fit for game developers and why MQTT is mostly used or very often used with the Internet of Things. And in our case, then we just replace the β€œthings” with a β€œplayer”. So that means we have the internet of players. So we connect multiple players together via the central MQTT broker, for example, with HiveMQ. And it is all about sharing information, of course. Because if you have a multiplayer game, then multiple players are joining the game, distributed maybe all over the world. And they have to exchange data. For example, the simplest thing is to exchange the position of a player in the virtual world space or in a room or whatever. But of course, also to exchange something like a healthy state or whatever is needed in a game.

Andreas Vogler: 00:05:22.881 So players are joining the game, and in the MQTT we have this very similar thing, well known, this birth message. So when a player joins the game, then he will initially publish the birth message so that all the other players know that a new player joined the game and maybe some additional information, of course, of the player. But also more important is how to handle player exits. So what if a player leaves the game intentionally or also unintentionally? And that is the more interesting part. What happens when the player β€” the internet gets broken, the connection to the MQTT gets broken or the computer shuts down for what reason? Then the client is not able to send β€” I will go away message. And for that, we have an MQTT, this smart feature of the Last Will message. So when the client joins the MQTT broker, then he can already put the testament β€” the Last Will message β€” to the broker. And when he leaves the game, the connection gets broken, then the broker will send the Last Will message to all the other players. That's very important because the local player β€” the game β€” then knows that one player has left the game and then it can remove the player from the virtual world. Otherwise, there would be a lot of bad players or players which are not active anymore. Yeah, those are central management. Like the big brother is watching you with HiveMQ. And with an MQTT broker, it is also very easy to write an additional program and then let this, for example, run in the cloud. And this will be the observer of the game. Not only the observer, maybe also the controller, which controls the game and sends specific messages from one user to another user or whatever is needed in the game. A big benefit here is also MQTT. In almost every programming language of your choice, there are MQTT clients available, so you can write this program in any language that you prefer. And I also think this is really a big benefit of it.

Andreas Vogler: 00:07:24.343 There's a conclusion for MQTT for gaming. So real-time updates are very important for gaming. Absolutely supported by MQTT. Reliability, also one big point of MQTT because MQTT was initially made for not-that-stable connections, so it can handle that well. The efficiency in MQTT typically has a small footprint. There's not a lot of data [inaudible] which is transported, of course, except of your own message. And simplicity β€” it's not really complicated to use MQTT. I personally think that this was one of the big, big pluses of MQTT and the reason why it's getting so highly used out in the world β€” because it is just simple. If you create a game based on Unity and with MQTT together, then we can also bring the concept of the UNS to the game. Why? For example, as we see here, you can specify on a very high level β€” which game is it? And then below the topic and the topic structure, you can say, okay, this is the Game-Instance-1. For example, if you have a game, multiple players can join together and they play together their own game. And then you have another group and they have a separate room or world where they are in. Then you can separate this with another. Then below, of course, you can do this one more time. For example, if a player is in Room1, then you can write the coordinates, for example, under this topic and why we want to do this. If you have a lot of players in the room or in the game, then you do not always need to know the current state or the current position of all the players in the game. Most important β€” for sure it depends on your game β€” but most important could be that you know which other players are in the same room as you are. And that, of course, will then reduce the amount of data which has to be handled and which has to be distributed.

MQTT in Unity Demo

Andreas Vogler: 00:09:23.835 And of course, topic structure. Plan your topic structure well. As I said, for example, with UNS, you have to think about which messages must have the retained flag. And for the payload, you have to think what kind of payload you want to use β€” JSON or Protobuf or whatever. But of course, all of these things apply to any kind of application you build based on MQTT. You have to think about that really well enough. And if you want to use MQTT in Unity, there's a Unity marketplace, let's say, asset store where you can buy, download utilities, assets and use it. And for MQTT there's an β€œMQTT for Unity” asset there. And that helps you. It is then easier to use MQTT out of the box in Unity. And also in the way how typically things are done in Unity. So yeah, let's come to the very first simple demo that I will show. So you can also try it out by yourself. It runs in the browser. I will try now to put that link into the chat. Now it is in the chat where you can start it. But I have to say this game is hosted here at my home. And yeah, if you all now try to download it, maybe the download will take a little bit time because my internet connection has a very, very high bandwidth. So then a simple cube, which is connected to a broken ground. I'm going to now move the sliders, then the cube also moves. Ah, I see already someone else is moving it. Great, thank you. And there you see already. Multiple people running the same game in different areas. And everyone can now move the cube and rotate it because it gets the data from the central MQTT. And now let's come to adding Siemens SCADA data to a game or maybe into a program, to a 3D program, Unity, based on GraphQL.

GraphQL for Industry

Andreas Vogler: 00:11:25.432 So first I want to very roughly explain what GraphQL is. So GraphQL is a descriptive language for any kind of APIs. So sometimes compared to a REST API, REST API is more well-known, let's say, than GraphQL. But GraphQL has a lot of features compared to a simple REST API. First of all, it is a descriptive language. So you can really describe what functions you call and also define exactly what you want to have back, but I will also come to that later. And also important specifically for scalar systems and also for gaming is this real-time notification. So GraphQL also supports subscriptions. What you typically do not have with a REST API. So with a REST API, you have to do something more to create a WebSocket connection. The transport is mostly based on HTTP and WebSockets. Yeah, it was initially made by Facebook, but they made it open source and now there's a foundation behind it. Yeah and I say very often β€” maybe some other people will say, "No, that's not true" β€” but I say, "Yeah, it's the better REST." Just as an example of [inaudible]. So there is not anymore β€” this over-fetching problem is, for example, when you have a REST API, you see this burger, cheeseburger API and you request the cheeseburger. Then you get the full-blown cheeseburger. And you get all of the data, and then afterwards, you have to select the pieces you want. With GraphQL, this is different. With GraphQL, and we see here an example query, descriptive language, you specify exactly what you want to have from the burger. And that means also the transported data is highly optimized because only the data that you really want is transported.

Andreas Vogler: 00:13:18.886 There's also no under-fetching. Under-fetching is the opposite of over-fetching, but it means, for example, with REST API, what happens when you need information of a person. Then you request on an endpoint, the person, you get data back of the person, also data that you don't need. And then, for example, you want to have the post, what the person has done on LinkedIn, for example, then you have to execute another call to another REST endpoint. And then you get the list of the posts. And then maybe you want to have details of one or all of the posts. Then you have to loop through all the posts to come back and then execute one more time and REST API call. And that leads to a lot of round trips. And of course, this is not really, really, very optimized. And with GraphQL, you can do all of this in one query because you can specify, okay, give me the person, and then I only want to have the name and the birth date, and then give me all of the posts, what the person has done on LinkedIn, and then also specify from every post what the person has done, the linked persons to it, or whatever. But the point is β€” you can specify it in one query and you execute one request, and you get back the data. And also the documentation is always included. This is really a big benefit, I think, because when you have a REST API, then you typically need some kind of documentation of the REST API. If you're happy and there exists, there is some documentation. If you're not, then you have to go into the documentation. And in the GraphQL server, the documentation is always included. So if you have a small little GraphQL client tool and you come to a server, you connect it, and you immediately get the documentation. And it also has the description of what kind of data types and so on are used or provided by this graphical server.

Andreas Vogler: 00:15:15.588 And that means it really helps also when you write the query, because then the client tool can support you with, for example, IntelliSense. But anyhow, it was a little bit much about GraphQL. The main point is with this Unified SCADA System from Siemens, we support GraphQL. So that means it has a GraphQL server with it out of the box, starting with version V18 and higher. And that means then you can query actual data. So for example, the tags of this data system, but also the history data can be read with GraphQL. And that is the benefit of that case combining MQTT with GraphQL, because with GraphQL, you can also query additional things β€” for example, the history data, which you typically don't have in an MQTT broker, because with MQTT broker, the topics typically have the current state and the history data. It's all about IT/OT convergence. So this kind of interface for SCADA systems should also help the IT guys to get data out of the SCADA system with the tools and things that they are used to use, like HTTP and similar tools. Yeah, and also, because it is based on HTTP, it can then also be easily integrated into Unity, and then we can also bring industrial data to the 3D world of Unity. Maybe not necessarily in the game, but maybe in the visualization of a machine conclusion. GraphQL also supports real-time updates by its nature, which is included in the specification. It's also reliable based on HTTP, so proven technology, efficiency. As I've said, GraphQL only transports the data which is requested. It eliminates this over- and under-fetching problem. And it is also simple, at least from my point of view. I mean, of course, we have to learn first a little bit about the syntax and how GraphQL queries are built. That's true.

Example Game with MQTT and GraphQL

Andreas Vogler: 00:17:08.923 But at least from the connectivity point of view, you can handle it in the same way as you handle a REST API point because you just post the query to the GraphQL server via an HTTP post request and you get back the data as a JSON token. Yeah, there's only one tip. In the Unity Asset tool, you will find a GraphQL for Unity asset. And with that one, it also gets easy to use GraphQL within Unity 3D. Yeah, and now we come to the game demo. I mean, maybe you can already download it because it will again take some time. You just post the link to the chat. Yeah, and what is the game about? We have on the top the MQTT broker. It's in the cloud. It's a HiveMQ instance. On the bottom, we have the Unified SCADA System where we also get data. I also have here a physical robot next to me, and we connect the robot to WinCC Unified. That can be done easily. SCADA systems are made for that. On top, we also have a camera, so we can also see the real robot. And the pictures are transmitted over the MQTT broker. And then on the right side, we see the virtual world, so the game basically. And there we will see, let's say, cyber physically, a 3D model of the real robot. And this one then really reflects the current state of the real robot. So we get the data from the robot to the SCADA to our virtual robot. The live video stream is also displayed in the game. And that one β€” we get from the MQTT broker. As initially said, all of the data related to the players, like the position and the scoring points. And so all of that is distributed and handled by the MQTT program. And also we can see here in the game Mind Turbine, and we have read a GraphQL from the SCADA system. So that gives the historical data and also the live data. So there's one tag, a simulated tag, which goes up and down.

Andreas Vogler: 00:19:09.274 And on the left side, there is also another tag where we also see the history. And in that case, that is really the power consumption, a power meter here at home, but it is only an average value, minute average value. This average value is calculated by the SCADA system. So yeah, I don't know if someone already has opened the game. When you have opened it, there is a first window where you can type in your name, and then you can rotate the rocket. You can move the rocket with q, w, e, a, s, d [keyboard letters], and you can shoot other ones by pressing the spacebar. And you will also see here how many times you got hit. And there you see an indicator how many times you hit another player. And there is also a small radar here so that you know how many other players are in the game. And this indication is just which direction you are currently looking at. Let's start it now. They are ready. I got shot. A lot of people are shooting. Okay, so that seems really good. To be honest, I have not yet really tested it out with a lot of players, but at least it seems to work. And you can see here the robot. I will turn on the robot. I am β€” I see one here lying around. If you got lost somehow in the space, yeah, if you have collided with something, then you can press R, the R button. And then yeah, the rocket got to reset it. So you're down on the [inaudible]. And I have to turn on the video stream, of course. Now we see the live video stream here of the robot where someone will shoot. And I can also now control the robot. But let's first start a test sequence. You can see how the robot moves. Now it starts.

[silence]

Andreas Vogler: 00:21:24.243 So we see the real world and also the model are in sync. I can even also β€” [inaudible] I see you. It's a colleague of mine. I can also control the robot. When I press when I see the robot in front of me, I can press Enter and then I can select with 1, 2, 3, 4, 5, 6. The numbers on the keyboard, I can select the joint to move. Now Dominic has taken over the control of the robot. I will try it again. Then you can move the joint queue on the keyboard. Then you can move it to your desired position. And then you press Space. The real robot will move to that position. So that means when you're in the control mode, you will see how you want to move the robot. And when you're not in the control mode, then you see the current state of the robot. Shooting around here. And here we see the live data from WinCC Unified from the SCADA system. As I said, here we have the historical data by power meter at home. So yeah, Scott, that's all.

Scott Baldwin: 00:22:32.196 Sounds great. That's really cool. I think it's a lot of fun.

Andreas Vogler: 00:22:35.715 Yeah, lots of people [crosstalk].

Scott Baldwin: 00:22:37.094 Lying around shooting. They dove right in right away, and they're really enjoying themselves here, which is great to see.

Andreas Vogler: 00:22:43.197 Already got 100 times hit. Oh my God.

Potential Use Cases and Ideas

Scott Baldwin: 00:22:46.890 Yeah, definitely. So we can open it up to Q&A a little bit. If everybody wants to use the Q&A, ask any questions that they've got around this. We'd be happy to take some time to answer them. But maybe before we get any questions there, I'm going to ask a question maybe just for you, Andreas. And obviously this is a β€” let's call it an experiment. It's you having some fun playing around with different technologies and stuff like that. What was the original underlying problem or thing you wanted to play with here and to gain kind of experience with? Was it beyond just connecting to a different tool set like Unity, but what were some of the maybe potential use cases or ideas or things that you wanted to kind of play around with?

Andreas Vogler: 00:23:25.508 Yeah. I mean, the graphical interface I have already built a long time ago, because with WinCC Unified, we have this graphical server. And so I thought, "Hey, it's a cool interface. And now we can connect IoT things with WinCC Unified." And then, I like to play with Unity, so I implemented it in Unity. And about MQTT, I was just curious. I don't know. At some point, not really in the night, but afternoon, it came into my mind. How are people creating multiplayer games? And to be honest, I still don't know. And for sure, there are also frameworks and things out there which are used for doing this. But I thought the same, I think, can be done with MQTT. And then I just tried it out. I've implemented this MQTT just for my own use. And this one, first of all, should also support other people. Have an easy way you can use this asset and then just drag-and-drop a game object into Unity. And then you have the MQTT client here, make this bigger, and then you can just configure your broker and set the birth message and so on. But that was more just for fun. But of course, currently also, I think in the real world, 3D is also gaining more and more traction, let's say, also in the industrial world. And for that, I think it could be, first of all, to get real-time data in. And secondly, the second part with, for example, GraphQL also to have the option to query historical data.

Q&A Time

Scott Baldwin: 00:24:57.357 Yeah, yeah, that's great. That's really interesting. Question here from Dominic. Do you see MQTT taking over OPC UA for OT/IT standard protocols? And what's that main trend that you kind of see around what's going on there?

Andreas Vogler: 00:25:10.693 That's a huge question, let's say. There are a lot of people out in the world who are, let's say, OPC UA-related and say this is that protocol. And on the other side, there's a currently big trend. A lot of things are moving to MQTT. And I mean, OPC UA has also a lot of benefits because it is well-defined. You have a well-defined structure. You have metadata in it. And on MQTT, for sure, you can also build all this, but basically it is data-agnostic. So you can use your own format. I mean, this is a big plus. On the one hand. On the other hand, it is also a drawback because everyone creates its own format and then no one can communicate together anymore. But we have Sparkplug B. Maybe this will help. At the end of the day, I would say both will be there and will stay there. So I don't think that one will eat the other one.

Scott Baldwin: 00:26:07.021 Yeah, I mean, time will tell, right? Like any technology, I guess.

Andreas Vogler: 00:26:09.910 Time will tell. Absolutely.

Scott Baldwin: 00:26:11.150 Time will tell. Yeah, where the market goes will sort of drive a lot of it. Another question here from β€” and I'm going to probably not get this Welsh name correct, but I'm going to say β€” Owen. What recommendations would you give to get more familiar with or understand GraphQL implementation? So just in general, how does one get better at understanding or working with that set of technology maybe versus a typical REST API?

Andreas Vogler: 00:26:33.020 If the question is really to get to build a GraphQL server, then I would say, yeah, just for Google, there is this GraphQL Foundation. And there are, I think, at least several examples of frameworks listed for the different programming languages, Node.js, Python, and so on. There are already a lot of libraries available where you can start more or less very quickly to build your own graphical server. But of course, before you do that, you have to learn a little bit how graphical servers are built generally. I mean, you describe your schema. It is well-defined and described. And then at the end of the day, you have to implement more or less only the fetcher functions. And that one is doing then behind the scenes the real data fetching and to put all the fetch data together to the right format. And so this is typically already done by these libraries. So it should not be a big deal. [inaudible], of course, is very famous in that.

Scott Baldwin: 00:27:33.284 So it's the good old β€” I guess, spend some time in Google and look for the pre-built libraries to get yourself a good head start.

Andreas Vogler: 00:27:40.500 Yeah. And I said at the GraphQL Foundation website β€” I don't know what is the exact URL, but there you will find everything.

Scott Baldwin: 00:27:50.562 Okay, that's great. Another question here. This was very interesting. What was the biggest challenge for you in implementing MQTT in Unity? Just the whole process of getting that off the ground.

Andreas Vogler: 00:28:01.980 To be honest, also, that was not really hard because to be honest, I also have used β€” I can't remember anymore, but there is a C# library for MQTT already. Of course, that one I have used, so I did not implement the very, very deep stuff by my own. I mean, it sounds a little bit tricky or where you have to take care about it. As I said, Unity can be deployed on Mac, on Windows. I mean, that's not the problem typically. But when you then move to GN, to the browser, to the web, then you have to implement this network stuff one more time again in JavaScript. Because browser, security, and so you're not allowed to directly create a TCP/IP connection to somewhere. You have to use WebSocket. You have to use HTTP and so on. But the rest, to be honest, it's not a big deal. In that case, it is more how to bring it in a way that it is a Unity way to do it β€” do it based on these game objects.

Scott Baldwin: 00:29:04.974 How long would you say you spent building this game? Was it a long time? Was it a weekend? Was it a β€”

Andreas Vogler: 00:29:11.182 Good question. Maybe I started with some hours, some late-night hours, let's say. And then I added a little bit more features and so on. And then I added GraphQL. I mean, as you can see, it's not a very fancy game. Maybe overall, I don't know, one or two days. I don't know.

Scott Baldwin: 00:29:29.672 More of a sideline rather than many weeks, or?

Andreas Vogler: 00:29:33.674 Unity also has the big advantage. There's a huge community out. You find tons of stuff on the web. And also you can also very, very good use GPT for programming Unity. And to be honest, I have used it very heavily because as I said, I'm not a Unity game developer. And for a lot of things like, how can I make this laser at the point in the space and so on? How can I detect if the laser hits another object? And so I had no clue about it. I just asked ChatGPT. I get some code snippets and then reused it. And of course, then you have to refine it. But yeah, it is really very helpful.

Scott Baldwin: 00:30:16.999 Good. Question here from β€” is the camera streaming over MQTT a HiveMQ specific solution?

Andreas Vogler: 00:30:22.315 No, not really. And also, to be honest, in that case, I made it very simple. So I just transmit every single picture as a JPEG. And you can already imagine this is not very efficient, let's say. And it transmits a lot of data. So it is not a real RT web stream or so, yeah. So you have to be careful, or maybe you have to bring a lot of money to [inaudible].

Scott Baldwin: 00:30:51.185 Yeah, or figure out a better solution or spend more time on it, really. Again, it's for demo purposes at this stage.

Andreas Vogler: 00:30:56.789 Absolutely. This was just to demonstrate that it works over MQTT and you can stream really a live video stream also over MQTT into the game. And for that, to be honest, I just did it. Transmit every single picture.

Scott Baldwin: 00:31:11.056 And then maybe a final question, not maybe completely related to the session, but from Dominic here β€” I see more and more MQTT connectors and brokers getting implemented in new OT technology. What do you see? And do you recommend using any data implementation standards like Sparkplug B or UNS?

Andreas Vogler: 00:31:29.709 UNS for sure. I mean, UNS is highly usable and you bring some context to your topics. And also if you're structured by this ESA 95 structure. So that is absolute meaning and helpful, I would say. About B, to be honest, I'm not really 100% sure because, I mean, it brings in a well-defined, cool data format. It's really good and also not really compressed, but it uses not a lot of data. But on the other hand, it has some drawbacks. I will not go into the details now, but maybe it's good to wait for Sparkplug C or so.

Wrap-up

Scott Baldwin: 00:32:09.310 Yeah, any protocol, it's going to go through revisions, it's going to go through changes and improve over time. Well, that's awesome. I think that's it for kind of the questions that we've got today. I'm just going to share quick closing slides to kind of wrap things up. A few things to let everybody know about. As you leave today's session, you will get prompted for a post-event survey. Do take a moment, share your feedback. We do like to share that with our speakers as well. Again, the conversation doesn't have to end, so come and join us in our community if you haven't yet. And if you do want to speak, maybe you've got something to share around the area of MQTT and the technologies that we all work with in IoT. You can find out more on our website at HiveMQ.com/community. It's under the Get Involved section there where you can sign up. Next up from an event perspective, we have Ege Korkan, also from Siemens. I'm not biased toward Siemens here, but we've ended up with a couple of people really close by together. But Ege's going to be talking about Context for MQTT with the Web of Things next Tuesday. So please come and join us if you're interested. And with that, I think we're all done and we're able to wrap up. Thank you again for the really interesting session, Andreas, and everybody else for attending. Really appreciate it.

Andreas Vogler: 00:33:19.901 Thank you for having me.

Scott Baldwin: 00:33:21.654 All right. Take care.

Andreas Vogler

Andreas Vogler is a Senior Key Expert at SIEMENS with a history of working in the information technology and industry. Open Source Enthusiast, OSS project "automation-gateway.com". Skilled in SCADA, MQTT, WinCC Open Architecture, WinCC Unified, Apache Kafka, Databases, Programming (Java/Kotlin/C#/C++/…) and a strong consulting professional with a Master of Science (MSc) focused in Business Process Engineering & Management.

  • Andreas Vogler on LinkedIn
HiveMQ logo
Review HiveMQ on G2