Request for Beginner Support #151
Replies: 11 comments 21 replies
-
Hi, it really depends on what you're trying to do. The examples provide a short overview of how to use the eebus-go library for various use cases such as for writing/integrating with a home energy system or creating a controlbox etc. I think the better approach would be to look at what you're trying to accomplish and then guiding you on the right direction from there. Are you trying to connect to a device in your house to control it or retrieve data, or are you interested in integrating EEBus support into an existing or new device, or ...? |
Beta Was this translation helpful? Give feedback.
-
Hello, Thank you very much for the extremely quick response. Yes, you are certainly right. I should describe what I intend to do. I operate a self-written EMS with which I control and monitor all the consumption in the house and a wallbox. I would like to expand this with an EEBUS interface so that it can communicate with a control box from our network operator in the future, allowing individual consumers to be dimmed by the network operator when needed. Due to a recent change in legislation (§14a EnWG), this should significantly reduce our network fees as part of the electricity costs. To this end, I first wanted to create a kind of test setup to learn the details of EEBUS. Afterwards, my goal would be to write an interactive control box simulator and have my EMS communicate with it. The examples "hems" and "controlbox" seemed like a good foundation for this. Subsequently, I got the impression that the "remote" module is required as the central EEBUS ship node for their communication. And the devices-app seemed like an ideal way to control such a simple test system. I have worked my way into the Go language to the point where debugging the various code parts in Visual Studio Code and thereby gaining deeper understanding is also not a problem. But, as I said, I still lack an understanding of the big picture. Best regards, |
Beta Was this translation helpful? Give feedback.
-
First off, that should be possible to implement using the eebus-go stack so in that sense you're working in the correct direction. In such a system your EMS would act similarly to the examples/hems system by accepting LimitationOfPowerConsumption commands (using the usecase in github.com/enbility/eebus-go/usecases/cs/lpc) and then ensuring those limitations are applied to your wallbox (and other §14a systems in your house). In production your network operator would install a component similar to the examples/controlbox in your house and use that to send LPC commands to your EMS to "dim" your consumption. Now to try and clear up some misconceptions, the "remote" module is not required in any of these scenarios as long as your EMS is written in Go or you're using/expanding on the above mentioned examples. The remote module exists to allow EMS not written in Go to use the EEBus functionality provided by the eebus-go stack by exposing the API of eebus-go via JSON-RPC. While you're creating a simple test setup and getting to know the eebus-go stack I would recommend sticking with expanding the hems and controlbox examples, and then once you're more comfortable with the stack you can look into trying to connect your existing EMS with the remote (assuming your EMS is not written in Go) so that you can then migrate the functionality you need from the hems example to your EMS. If you have questions regarding how to integrate with the remote, we can have a chat when you get to that point. Regarding the devices-app, as far as I'm aware that just provides an overview of the available EEBus devices in the local network, and which EEBus usecases they support. This is mainly interesting if you're looking to e.g. integrate a device with your EMS and you want to know which usecases it supports etc. Regarding the controlbox and hems examples and how to use them. In the default configuration most of the examples take 4 arguments:
I hope this answers most of your questions, but feel free to ask if something is still unclear. |
Beta Was this translation helpful? Give feedback.
-
Hello Simon, Once again, thank you very much for your detailed response. That will definitely help me. So, I had misunderstood the role of the remote module. But I had already come to realize that hems and controlbox need to be paired. I see that there is a heartbeat every second. A good sign. What I am now wondering is how it will work with a control box from the network operator. Is it ensured that I can then communicate the SKI of my EMS (or that of the remote module as an interface to my EMS written in C#) to that control box and that this box will also trust my EMS? My network operator will hardly provide me with such a control box just for testing. When I look into the SHIP specifications, I find various verification modes in chapter 12.3. Will a hardware control box support all these modes? Including the one where you only pass the SKI of the own EMS? And most importantly, will such a control box be satisfied with my self-generated certificate? After all, this certificate will not be recognized as trustworthy by any known CA. Best regards, |
Beta Was this translation helpful? Give feedback.
-
Hi, Pairing will depend on your specific network operator, but it's generally expected that they will (somehow) provide you with the SKI of their controlbox and you will have to somehow provide them with the SKI of your EMS. Bilateral trust for an initial pairing will then be derived from both sides verifying the other side's SKI and then persisting some combination of the SKI, the public key/certificate and the ShipId. According to SHIP 12.1.1 interoperability should not depend on using a certain PKI, self-signed certificates are equally valid and I can't see any reason for a network operator to require certificates to be signed by any particular PKI. |
Beta Was this translation helpful? Give feedback.
-
That sounds really good. I hope it will turn out that way. It would of course be nice to get information about their control boxes from the network operator (here: Bayernwerk-Netz GmbH). However, they themselves do not seem to know which ones they might start delivering as early as April. I will get to work and will surely get back to you. But it will take a while. Until then, many thanks for the competent information. Best regards, |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Hi Klaus, |
Beta Was this translation helpful? Give feedback.
-
@jaroslawsky : Vielen Dank für deinen Simulator-Code. Leider habe ich keine Erfahrung mit Websockets. Kannst du in deinen Branch ggf. auch den Code für den Client veröffentlichen? Oder habe ich da etwas übersehen? |
Beta Was this translation helpful? Give feedback.
-
I executed the first call to create the certificate, key and SKI. I then copied the certificate and the key to separate files and called it once more:
What am I supposed to do next ? When trying to access https://:8888 I get the following error:
COuld you please advise on how to get this simulator working ? Thanks in advance !! |
Beta Was this translation helpful? Give feedback.
-
Hi @DerAndereAndi, @sthelen-enqs, I have been working with your EEBUS APIs for a few weeks now and have made some progress. The controlbox simulator now independently detects available EEBUS devices and connects to them after selection, without needing to provide an SKI value at startup. The evcc GUI displays the current limiting state, making the response to the controlbox simulator commands clearly visible. So, the initial steps look quite promising. However, I have some fundamental questions about EEBUS and your specific implementation. For the LPC use case, the interface Could you please give me some tips on this matter? If it is due to the implementation of your APIs still being incomplete, I would be happy to help change that. However, I would need a starting point from you. A personal conversation would probably be the most efficient way here. Overall, I fear that with the current state of the APIs, a truly functional system cannot be built. By functional, I mean a system that works reliably with a real control box of a network operator, ensuring that this network operator will definitely not cause any trouble. Best regards from Bavarian Forrest, PS: I'm glad that my small bug fixes in the controlbox and hems examples have already been merged into the master. I have also found a bug in evcc, which I should communicate there. The failsafe state is only exited after a heartbeat is received AND the time has expired. Of course, this has to be a || condition instead of a && condition. :-) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello,
Would it be possible to give me some tutoring to get the examples here up and running? I seem to be missing the overview. It’s not a problem for me to start the devices-app. I can also start the remote module with appropriate entries in the eebusConfiguration in its main function. I understand this module to be the central eebus. Is that correct? The modules hems and controlbox from the examples directory can also be started in principle and are displayed in the web interface of the devices-app, if not using the SKI of the eebus module.
And here are my questions: With what values should the parameters serverport, remoteski, crtfile, and keyfile be filled? serverport is apparently not the port of the eebus, but each ship node gets its own port? And what needs to be specified for remoteski? If I use the eebus (remote) SKI, I get the error message: "The remote service denied trust. Exiting." Previously, I had started the individual modules without parameters and made corresponding files from the generated cert and key data. I then specify their respective paths when calling each module. Is that correct?
Actually, I'm not surprised by the error message mentioned. How is a ship node supposed to know that it should trust the other one if the certificates were created completely independently of each other? I seem to have a misunderstanding here.
It would be nice if someone could help me out.
Best regards,
Klaus
Beta Was this translation helpful? Give feedback.
All reactions