# Windows

> Install evcc on Windows by hand, run it from the command prompt or as a background service and update or downgrade it later.

Here you’ll find instructions for manually installing evcc on Windows.

> **Caution**
>
> This manual installation requires advanced PC knowledge, especially when working with the Command Prompt or PowerShell.
>
> Running evcc on Windows is possible. However, evcc is typically used in a Linux environment (e.g., Raspberry Pi).

## Installation

1. ### Install

   Download the appropriate file for your system and extract it (e.g., by double-clicking):

   * 64-Bit Intel CPU: [evcc\_X.XX\_windows\_amd64.zip](https://github.com/evcc-io/evcc/releases/latest)

   Open Command Prompt and navigate to the extracted folder. Verify the install:

   ```sh
   evcc -v
   ```

   You should see the current version of evcc (e.g., `evcc version 0.xxx.y`).

2. ### Start

   ```sh
   ./evcc
   ```

3. ### Set up

   Open the evcc interface in your browser: <http://localhost:7070>. Set an administrator password and configure your devices directly via the web interface.

## Configuration file (alternative)

Alternatively to the web interface, you can use an `evcc.yaml` configuration file. See [Configuration](/en/installation/configuration) for details.

Start evcc with:

```sh
./evcc -c evcc.yaml
```

## Update/Downgrade

Follow the steps above and replace the evcc program file with the new or previous version. The configuration does not need to be redone.

## Background Service

### Task Scheduler

> **Note**
>
> This documentation assumes that evcc is located in `c:\evcc`.
>
> These instructions were created using Windows 10.

* Open the start menu and search for “Task Scheduler”, then right-click it and choose “Run as administrator”:

![Windows 10 Task Scheduler](/_astro/win10-srv-1.BQfo4Mab_Z1atspj.webp)

* Once you’ve started Task Scheduler, choose whether to create the new service in its own folder or in the general Task Scheduler Library. In this example, we create a dedicated `evcc` folder. Select “Task Scheduler Library”, then right-click to open the context menu and choose “New Folder…”:

![Task Scheduling Library](/_astro/win10-srv-2.BvLQnUHf_1Pz5ad.webp)

* Now select the new `evcc` folder and open the context menu again. Choose “Create Task”:

![New Task window](/_astro/win10-srv-3.Bem2aFTu_1pt2Xc.webp)

* Give the task a name (e.g. “evcc”) and a short description. Since we need to run as a system service, open user management via “Change User or Group” and enter `SYSTEM` in the box. Click “Check Names” — the word “SYSTEM” should be underscored. Click OK to close the dialog:

![Task Window](/_astro/win10-srv-4.ZgX5SuZj_Z1mM5I1.webp) ![User Selection](/_astro/win10-srv-5.CBq4gGTQ_Z1G9HJx.webp)

* In the “Triggers” tab, click “New…”. Set the trigger to “At Startup” and check that the “Enabled” checkbox is ticked:

![Trigger](/_astro/win10-srv-6.BgO8lYz7_LBtTp.webp)

* In the “Actions” tab, click “New”. Make sure “Start a Program” is selected, then find your `evcc.exe` executable using the Browse option. It is recommended to also set the path in the “Start in” box so that the configuration file is found automatically:

![Actions](/_astro/win10-srv-7.Cg2QVdnZ_VTO1.webp)

* In the “Conditions” tab, the default settings can be left as-is.

  > **Note**
  >
  > SMA Home Manager can sometimes have issues when used with Wi-Fi — try enabling the “Network” condition and selecting the appropriate connection interface in the dropdown.

![Conditions](/_astro/win10-srv-8.Cq78wnDy_v434y.webp)

* In the “Settings” tab, make sure to select “Run task as soon as possible after a scheduled start is missed”. Also make sure “Stop the task if it runs longer than:” is **not** selected — otherwise evcc will randomly stop running.

![Settings](/_astro/win10-srv-9.BE4tMRSZ_2cT7c1.webp)

The task can now be started manually or tested with a reboot. To check it’s working, navigate to `http://localhost:7070` in your browser.

### NSSM

> **Note**
>
> This documentation assumes that evcc is located in `c:\Tools\evcc`.
>
> These instructions were created using Windows 11.

As an alternative to Task Scheduler, you can run evcc as a Windows service. A service runs without user login and offers better control over restart behaviour and error handling.

Since evcc does not natively support the Windows service interface, [*nssm*](https://nssm.cc/download) (*Non-Sucking Service Manager*) can be used as a service wrapper.

* Download *nssm* from [nssm.cc](https://nssm.cc/download) and extract the ZIP file to `C:\Tools\nssm\`.

* Open a command prompt (`cmd.exe`) and change to the `win64` folder:

  ```sh
  cd /D C:\Tools\nssm\nssm-2.24\win64
  ```

* Install the service:

  ```sh
  nssm install evcc
  ```

* Go through the tabs of the dialog. The following settings are recommendations.

  * **Application**:

    ![Application](/_astro/win11-nssm_01_Application.B5NNs8Ig_Z2vddbC.webp)

    * *Path*: Path to `evcc.exe`.
    * *Start directory*: Working directory for evcc.
    * *Arguments*: Parameters for evcc, e.g. `-c evcc.yaml`. Optional: `--database evcc.db` to explicitly set the database path. Without this option, the database is stored in the executing account’s user profile. Under the *System* account, that would be `%SystemRoot%\system32\config\systemprofile\.evcc\evcc.db` — a different location than when starting interactively. With `--database` you ensure the same database is always used. This is relevant when [resetting the password](/en/faq#password-reset).

  * **Details**:

    ![Details](/_astro/win11-nssm_02_Details.DtC1Cmo2_Z1ORQrT.webp)

    * *Display Name*: Name of the service in Windows Services (ideally the same as *Service Name*).
    * *Startup type*: *Automatic* for auto-start on boot.

  * **Log on**:

    ![Log on](/_astro/win11-nssm_03_Log_on.BFHa8030_1sHwsA.webp)

    Default: service runs under the *System* account. Details: [nssm documentation](https://nssm.cc/usage).

    The account chosen here determines where evcc stores its database `evcc.db` (see *Arguments* above).

  * **Dependencies**:

    ![Dependencies](/_astro/win11-nssm_04_Dependencies.BZrv15OJ_Z1rxi6E.webp)

    Adding `NlaSvc` as a dependency ensures the network is ready before evcc starts.

  * **Process**:

    ![Process](/_astro/win11-nssm_05_Process.BGFb9C9K_Z2Cazf.webp)

    Keep defaults.

  * **Shutdown**:

    ![Shutdown](/_astro/win11-nssm_06_Shutdown.o0dl9I5C_2urfKg.webp)

    Keep defaults. nssm first tries `Ctrl`+`C`, then `WM_CLOSE`/`WM_QUIT`, and forcefully terminates the process after timeout.

  * **Exit actions**:

    ![Exit actions](/_astro/win11-nssm_07_Exit_actions.BdjMC2_w_Z2g6OYu.webp)

    Recommendation: *Restart application* with 10 second delay, so evcc automatically restarts after a crash or restart via the web UI.

  * **I/O**:

    ![I/O](/_astro/win11-nssm_08_IO.CIj1ZSPm_Z24gUn5.webp)

    Optional: redirect `stdout` and `stderr` to log files. Keep evcc’s log level low to avoid the files growing too quickly.

  * **File rotation**:

    ![File rotation](/_astro/win11-nssm_09_File_rotation.BcePxhBw_Ztiexw.webp)

    Optional: enable log rotation to limit log file sizes.

  * **Environment**:

    ![Environment](/_astro/win11-nssm_10_Environment.-IB738iJ_Z14MXDB.webp)

    Keep defaults.

Click *Install Service* to set up the service. The service can then be started and stopped via the Windows Services management console. To verify, navigate to `http://localhost:7070` in your browser.