This repo contains the relevant Docker and OT-sim configuration files required to simulate a wind farm controller. The wind farm controller is configured to monitor and control up to 10 wind turbines deployed using the wind turbine model.
This project was designed to be deployed using Development Containers, such as GitHub Codespaces or locally in VS Code directly. Codespaces (free) is the recommended deployment system and is documented here.
In addition, one or more wind turbines will need to be deployed to make a deployment of this project interesting. To achieve this when using Codespaces, a Tailscale mesh network can be used to add this wind farm controller and the wind turbine(s) to the same network no matter where in Codespaces they end up being deployed. A Tailscale account can be created for free, and an authentication key can be generated for use by the OT-sim Tailscale modul 6AC5 e to add this wind farm controller and the wind turbine(s) to the Tailscale mesh network.
Important
Refer to the wind turbine project README for additional details on configuring and deploying wind turbines using Codespaces and Tailscale for use with this wind farm controller.
Once an authentication key has been generated, you can configure Codepsaces to automatically use it with each deployment of this wind farm controller project by adding it as a Codespace user secret for your GitHub user. Note that the name of the secret must be OTSIM_TAILSCALE_AUTHKEY.
After adding your Tailscale authentication key as a Codespaces user secret, click on the green <> Code button and then the Codespaces tab from the main GitHub page for this repo. From there, click Create codespace on main, which will deploy a new codespace in the browser based on the main branch of this repo (this may take several minutes).
Once the codespace is fully deployed, there should be one port automatically mapped in the browser instance of VS Code.
Tip
If you click on the Docker extension that's added to the browser instance of VS Code, you'll also be able to see when the controller container has started.
Note
If the codespace takes more than a few minutes to come up, it may be that the codespace was deployed in a region other than US East, which is the only region the prebuild is available in. You can select the region to deploy the codespace to when you create a new codespace by clicking the ... instead of Create codespace on main and then + New with options....
Or... just click here.
Warning
In some cases, the port does not automatically get mapped. When this happens, the port needed for this model (1880) can be manually added via the PORTS tab.
Once the codespace is deployed, you can access the wind farm UI by navigating to the PORTS tab, hovering over the Forwarded Address for the Farm HMI, and clicking on the Globe icon. This will open up the UI in a different browser tab.
Important
When opening the Farm HMI, you will need to manually add the /ui path onto the end of the URL of the newly opened tab.
As wind turbine models get deployed on the same Tailscale mesh network, they will start to show up as connected in the Wind Farm UI.
Important
The wind farm controller is configured to communicate with wind turbines with specific DNS names (wtg-1, wtg-2, ...). The wind turbine project has separate codespace configurations that configure each turbine with the appropriate DNS name in Tailscale. Refer to the wind turbine project README for additional details on deploying separate codespace configurations for use with this wind farm controller.




