Note: Strom requires Python 3.12.8. Earlier or later versions are not supported. If you use mise, the correct Python is provisioned automatically.

  1. Clone the repository:
    git clone https://github.com/Bloodwing1/Strom.git
    cd Strom
    
  2. Create and activate a virtual environment:
    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  3. Install the package. All runtime dependencies are included:
    pip install .
    

    For development (tests, lint, type-check):

    pip install -e ".[dev]"
    
  4. Create a config folder in the project root. This is where all your personal settings live — API keys, plug credentials and (optionally) house parameters.

  5. Place your API keys in two files inside the config folder:
    • weather_api_key.txt — your OpenWeatherMap API key
    • price_api_key.txt — your ENTSO-E API key
  6. Place your smart plug credentials in a tapologin.env file in the config folder. All three lines are required:
    EMAIL=myemail@hotmail.com
    PASSWORD=myPassword12
    DEVICEIP=192.168.1.42
    
  7. Optionally, add your custom house heating parameters to a house_config.json file in the config folder. See Configuration for the full format and the defaults used when the file is missing.

That’s it. Run strom to start your first control cycle — see Usage.

Where Strom looks for the config folder

By default Strom looks for a config/ folder in your current directory or any parent of it. You can also point it elsewhere with the --config-dir flag or the STROM_CONFIG_DIR environment variable. Details on the Configuration page.