Skip to content

C# Cooling Grid Manager is a software solution designed to efficiently manage and optimize cooling grid systems.

License

Notifications You must be signed in to change notification settings

paulmuenzner/CoolingGridManager

Repository files navigation

Issues GNU License GitHub code size in bytes GitHub top language paulmuenzner github Contributors


C# Cooling Grid Manager

Billing - Ticket System - Consumption - Efficiency
EXPLORE DOCS

Plenty of features · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Usage
  3. Roadmap
  4. Contributing
  5. License
  6. Contact

About The Project

This Cooling Grid Manager is a software solution designed to efficiently manage and optimize cooling grid systems. This project leverages the power of C# programming language and .NET technologies to deliver a robust and user-friendly application tailored for the needs of cooling grid operators and managers. See it as a starting point and develop and extend it as per your needs.

Features

  • Ticket Management: Streamline ticket creation, tracking, and resolution processes for maintenance, repairs, billing, and other operational tasks.
  • Integration: Seamlessly integrate with existing data sources, IoT devices, and monitoring systems to centralize data management and enhance operational efficiency.
  • Parameter Logging: Track and log grid parameters for each cooling grid system, facilitating loss analysis, root cause identification, and remedial action implementation.
  • Billing: Efficiently manage billing processes for cooling grid services, including invoicing, payment tracking, and revenue management.
  • Consumer Management: Centralize consumer data and interactions, enabling effective communication, service provisioning, and account management.
  • Consumption Tracking: Monitor and analyze cooling grid consumption patterns to optimize resource allocation, identify inefficiencies, and implement cost-saving measures.

Technologies Used

  • C#: The primary programming language used for developing the Cooling Grid Manager, providing a powerful and versatile framework for application development.
  • ASP.NET Core: Utilized for building scalable and high-performance web applications, enabling cross-platform compatibility and modern web development practices.
  • Entity Framework Core: Facilitates object-relational mapping (ORM) for database interaction, simplifying data access and management.
  • FluentValidation: Integrated for comprehensive validation of input data, ensuring data integrity and application reliability.
  • Serilog: Employed for structured logging, enabling efficient monitoring and troubleshooting of application behavior and errors.
  • Cron Jobs: Implemented for automating tasks such as creating bills and calculating grid efficiency and energy transfer at the start of each month, enhancing efficiency and reducing manual intervention.
  • Swagger: Integrated Swagger for API documentation, offering a user-friendly interface to explore and interact with API endpoints, facilitating development and collaboration.

(back to top)

Usage

Run program

Run program by: dotnet run Build program by: dotnet build

(back to top)

Endpoints

This server exposes various endpoints to facilitate authentication, file management, and plant-related operations. Please review implemented swagger information for more details at: http://localhost:5286/index.html

Tickets

The files API '/tickets' provides functionality for creating and updating (eg. status "solved") support tickets. Currently available options for status are 'open', 'onhold' and 'solved'. For the purpose of Incident Management, support tickets can be submitted and managed to keep an eye on and solve adverse events.

Consumption

API '/consumptions' offers endpoints for managing consumption data of consumers.

Billing

API '/billing' offers endpoints for managing consumer bills.

Consumer

API '/consumers' offers endpoints for managing consumers, for example creation of a new consumer or retrieving consumer details connected to a grid section of a grid.

Grids

API '/grids' offers endpoints for managing cooling grid systems, for example creation of a new grid.

Grid Sections

Subdivide each grid into sections with API '/gridsections' for better overview and management.

Grid Parameters

API '/gridparameters' offers endpoints for managing cooling grid systems. For example, add new grid parameter log, such as mass flow rate (in kg/s), specific heat capacity of the heating fluid (in J/kg⋅K) as well as temperature inlet and outlet (K) which is needed to calculate the temperature difference ΔT = T_in - T_out. The following formula can be used to calculate the energy flow (cooling energy transfer rate) through the pipe: Energy Flow (Q) = Mass Flow Rate (m) * Specific Heat Capacity (Cp) * Temperature Difference (ΔT). Determine the appropriate frequency for data collection based on your monitoring needs. A higher frequency provides more detailed information but requires more storage and processing resources.

Grid Energy Transfer

API '/GridEnergyTransfer' offers endpoints for managing the transfered energy per month. Based on on the logged parameters of the grid, the entire energy transfer in kWh is calculated for each month based on E_month = (m_dot) * (cp) * (T_in - T_out) * (t) / (3600 * 1000). T_in represents the average flow temperature into the grid; T_out the return flow temperature. t reflects the time in seconds. The difference between energy transfer of the grid and total consumer consumption reflects grid losses.

Roadmap

  • ✅ Cron job implementation calculating and storing grid energy transfer
  • ✅ Cron job implementation calculating and storing grid efficiency
  • ⬜️ Implementing Authentication and Authorization
  • ⬜️ Providing statistical evaluation
  • ⬜️ Extend testing
  • ⬜️ Add email notifications

See the open issues to report bugs or request fatures.

(back to top)

Contributing

Contributions to the Cooling Grid Manager project are welcome! Whether you're interested in adding new features, fixing bugs, or improving documentation, your contributions are highly valued. To get started, fork the repository, make your changes, and submit a pull request.

See CONTRIBUTING.md for more info.

(back to top)

License

Distributed under the GNU General Public License v2.0. See LICENSE for more information.

(back to top)

Contact

Paul Münzner: https://paulmuenzner.com

Project Link: https://github.com/paulmuenzner/CoolingGridManager

(back to top)

Releases

No releases published

Packages

No packages published

Languages