GithubHelp home page GithubHelp logo

krystiancharubin / idrac-ipmi-fan-controller Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jamiesage123/idrac-ipmi-fan-controller

0.0 0.0 0.0 14 KB

Automatically control Dell PowerEdge fans using IPMI

License: MIT License

Python 98.60% Dockerfile 1.40%

idrac-ipmi-fan-controller's Introduction


iDRAC IPMI Fan Controller

Automatically control Dell PowerEdge fans using IPMI

  1. About The Project
  2. Getting Started
  3. Usage (local)
  4. Usage (Docker)
  5. Contributing
  6. Acknowledgments

About The Project

This project allows you to automatically control your Dell PowerEdge fan speeds using IPMI tools determined by a customisable temperature range.

(back to top)

Built With

(back to top)

Getting Started

Prerequisites

Installation (local)

After installing the projects prerequisites, you will need to install the projects python dependencies using pip3

  1. Install Python dependencies using pip3
    pip3 install -r requirements.txt

(back to top)

Environment variables

This project depends on several environment variables being available to the script, these are described below

Variable Default Description
IDRAC_HOST null IP address of your iDRAC host
IDRAC_USERNAME null Username of your iDRAC host
IDRAC_PASSWORD null Password of your iDRAC host
TEMP_RANGES null Pipe-separated list of temperature ranges, see below for more details

(back to top)

Temperature ranges

The temperature ranges environment variable allows you to define a range of temperatures and your desired fan speed (as a percentage). This is set using a pipe-separated string provided as an environment variable (TEMP_RANGES).

Format:
[start of range], [end of range], [fan speed percentage]|[start of range], [end of range], [fan speed percentage]

For example:
30, 40, 5|40, 45, 8|45, 50, 10|50, 55, 20|55, 100, static

This will be parsed as:

Temperature Fan speed
30c to 40c 5%
40c to 45c 8%
45c to 50c 10%
50c to 55c 20%
55c to 100c static

static fan speed mode will turn off manual fan control and allow iDRAC to determine what speed the fans should be for the current temperature (default behaviour).

If there isn't a temperature range configured, this tool will use the closest temperature range based on the highest temperature sensor.

(back to top)

Usage (local)

To run the project locally, execute the controller.py file

python3 controller.py

Usage (Docker)

You can run this project using docker by pulling and running the pre-build image using the following command

docker run -d \
  --name iDRAC_IPMI_fan_controller \
  --restart=unless-stopped \
  -e IDRAC_HOST=<iDRAC host> \
  -e IDRAC_USERNAME=<iDRAC username> \
  -e IDRAC_PASSWORD=<iDRAC password> \
  -e TEMP_RANGES=<pipe seperated list of temp ranges> \
  jamiesage123/idrac_ipmi_fan_controller:latest

(back to top)

Contributing

Contributions make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion to improve this, please fork the repo and create a pull request. You can also open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Acknowledgments

Use this project at your own risk and responsibility. Overriding default behaviour may cause irreversible damage to hardware. Always monitor and ensure your hardware is running at safe temperatures.

This project is released under the MIT License.

(back to top)

idrac-ipmi-fan-controller's People

Contributors

jamiesage123 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.