Integrating MQTT and Siemens SCADA into Unity's 3D Worlds
Integrating MQTT with Siemens SCADA systems offers technical teams a robust solution for efficient and scalable communication in industrial environments. MQTT's lightweight protocol optimizes bandwidth usage and facilitates real-time data transmission, crucial for time-sensitive operations. With MQTT's support for Quality of Service levels ensuring reliable message delivery, SCADA systems can maintain data integrity even in challenging network conditions. Moreover, MQTT's widespread adoption and interoperability enable seamless integration with a variety of IoT devices, enhancing the SCADA system's capabilities for data collection and monitoring.
By integrating MQTT and Siemens SCADA into Unity's 3D worlds, you can create immersive and interactive industrial simulations. Developers can accurately replicate real-world industrial processes when connecting MQTT-enabled IoT devices and sensors to Siemens SCADA systems within Unity environments. This integration enables users to visualize and interact with SCADA data in a three-dimensional space, enhancing training, troubleshooting, and optimization efforts within Unity's dynamic virtual environments.
Touching upon this topic, HiveMQ Community team hosted a webinar titled Bridging Realms: Integrating MQTT and Siemens SCADA into Unity's 3D Worlds, where Andreas Vogler, Senior Key Expert at Siemens, discussed integrating MQTT and Siemens SCADA data into Unity's 3D worlds for gaming and industrial visualization.
During the webinar, Andreas demonstrated a simple Unity game he built combining MQTT for multiplayer, GraphQL for SCADA data, video streaming over MQTT, and a virtual robot model mirroring a real robot. He presented on the benefits of using MQTT for real-time multiplayer gaming and touched upon structuring topics with MQTT and planning payloads for games in Unity. He also showed how:
Players can connect and share game data via a central MQTT broker, HiveMQ.
Birth and Last Will messages can handle player joins/exits.
MQTT enables real-time updates, reliability, efficiency, and simplicity.
Siemens' WinCC Unified SCADA System supports GraphQL for querying live and historical data.
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.
Watch the Video
Transcript of the Video
Introduction
Scott Baldwin: 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. 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 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 for a long time. 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. 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, 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 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 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 in primary programming languages. And very cool thing about 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 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 So players are joining the game, and in the MQTT we have this very similar thing called 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 unintentionally? And that is the more interesting part. What happens when the player exits due to the internet getting broken, the connection to the MQTT getting broken, or the computer shuts down for what reason? Then the client is not able to send a ‘I will go away’ message. And for that, we have an this smart feature of MQTT 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, and then the broker sends the Last Will message to all the other players. That's very important because the local player in the 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 who 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, but 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 There's a conclusion for MQTT for gaming. So real-time updates are very important for gaming. Absolutely supported by MQTT. Reliability is 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 which is transported, of course, except of your own message. And simplicity, because 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 is 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 where multiple players can join together and they play 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 that has to be handled and which has to be distributed.
MQTT in Unity Demo
Andreas Vogler: 00:09:23 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 about 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, and assets and use them. 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 of time because my internet connection has a very, very high bandwidth. Let's start the cube.
So now a simple cube, which is connected to an MQTT broker in the cloud. And when I now move the sliders, the cube also moves. 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 So first I want to very roughly explain what GraphQL is. So GraphQL is 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 here, specifically for SCADA 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 REST API you have to do something more, create a WebSocket connection. The transport is mostly based on HTTP and WebSockets. Let me start my pointer again. Yeah, it was initially made by Facebook, Meta, 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, there's no overfetching anymore, this overfetching 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 afterward, 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 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 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 using, 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 that 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 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 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 plane. 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.
Andreas Vogler: 00:21:24 So we see the real world and also the model are in sync. I can even also ,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 Sounds great. That's really cool. I think it's a lot of fun.
Scott Baldwin: 00:22:37 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 Already got 100 times hit. Oh my God.
Potential Use Cases and Ideas
Scott Baldwin: 00:22:46 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 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 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 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 Yeah, I mean, time will tell, right? Like any technology, I guess.
Andreas Vogler: 00:26:09 Time will tell. Absolutely.
Scott Baldwin: 00:26:11 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 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. , of course, is very famous in that.
Scott Baldwin: 00:27:33 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 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 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 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 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 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 More of a sideline rather than many weeks, or?
Andreas Vogler: 00:29:33 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 Good question here – is the camera streaming over MQTT a HiveMQ specific solution?
Andreas Vogler: 00:30:22 No, not really. 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. 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.
Scott Baldwin: 00:30:51 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 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 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 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 absolutely meaningful 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 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 Thank you for having me.
Scott Baldwin: 00:33:21 All right. Take care.
Conclusion
Andreas' demo game effectively demonstrated how MQTT can be used to create interactive and dynamic multiplayer gaming experiences. Furthermore, the integration of Siemens' SCADA systems with GraphQL showcased how industrial data could be effectively visualized and manipulated in 3D environments, bridging the gap between IT and operational technology.
Join a vibrant community of people using MQTT across industries, including Smart Manufacturing, Connected Cars, Energy, and more. If you are on a digital transformation journey within your organization, read our Architecting a Unified Namespace for IIoT with MQTT eBook authored by Kudzai Manditereza.
HiveMQ Team
The HiveMQ team loves writing about MQTT, Sparkplug, Industrial IoT, protocols, how to deploy our platform, and more. We focus on industries ranging from energy, to transportation and logistics, to automotive manufacturing. Our experts are here to help, contact us with any questions.