# macOS

> Installiere evcc auf macOS mit Homebrew, starte es als launchd-Dienst und halte es aktuell, oder installiere es manuell, wenn du eine Nightly-Version ausprobieren möchtest.

Diese Anleitung beschreibt die Installation für macOS (10.12 und höher) mit dem [Homebrew](https://brew.sh) Paketmanager.

> **Hinweis**
>
> Wenn du evcc ohne Paketmanager installieren willst oder eine nightly Version testen möchtest schau dir den Abschnitt [Manuelle Installation](#manual) an.

## Erstinstallation

1. ### Installieren

   Öffne ein Terminal Fenster und installiere [Homebrew](https://brew.sh), falls es noch nicht installiert ist.

   ```sh
   brew trust --tap evcc-io/tap
   brew tap evcc-io/tap
   brew update
   brew install --cask evcc
   ```

2. ### Starten

   evcc wird als Homebrew Cask ausgeliefert. Casks lassen sich nicht mit `brew services` verwalten. Lege stattdessen einen launchd-Agent an. Er startet evcc beim Login und startet es neu, falls es beendet wird:

   ```sh
   mkdir -p "$(brew --prefix)/var/log"
   cat > ~/Library/LaunchAgents/io.evcc.plist <<EOF
   <?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   <plist version="1.0">
   <dict>
     <key>Label</key>
     <string>io.evcc</string>
     <key>ProgramArguments</key>
     <array>
       <string>$(brew --prefix)/bin/evcc</string>
     </array>
     <key>WorkingDirectory</key>
     <string>$(brew --prefix)</string>
     <key>RunAtLoad</key>
     <true/>
     <key>KeepAlive</key>
     <true/>
     <key>StandardOutPath</key>
     <string>$(brew --prefix)/var/log/evcc.log</string>
     <key>StandardErrorPath</key>
     <string>$(brew --prefix)/var/log/evcc.log</string>
   </dict>
   </plist>
   EOF
   launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/io.evcc.plist
   ```

3. ### Einrichten

   Öffne die evcc Oberfläche in deinem Browser: <http://localhost:7070>. Vergib ein Administrator-Passwort und richte deine Geräte direkt über die Weboberfläche ein.

## Konfiguration

> **Empfohlen**
>
> Richte evcc direkt im Browser ein.

Nach dem ersten Start kannst du evcc unter <http://localhost:7070> konfigurieren. Die Einstellungen werden automatisch in der Datenbank gespeichert.

Alternativ kannst du eine `evcc.yaml` Konfigurationsdatei unter `/etc/evcc.yaml` ablegen. Details findest du unter [Einrichtung](/de/installation/configuration).

## Aktualisierung

Um auf eine neue Version von evcc zu aktualisieren, führe folgende Schritte durch:

* Öffne ein Terminal Fenster

* Aktualisiere den Paketbestand:

  ```sh
  brew update
  ```

* Installiere evcc:

  ```sh
  brew upgrade --cask evcc
  ```

* Starte evcc neu:

  ```sh
  launchctl kickstart -k gui/$(id -u)/io.evcc
  ```

> **OCPP und die Firewall**
>
> Bei jedem Upgrade wird eine neue Programmdatei installiert, die die macOS-Firewall als neue Anwendung behandelt. Ist die Firewall aktiv, werden eingehende Verbindungen blockiert, bis die neue Version freigegeben wurde. OCPP-Wallboxen können sich dann nicht mehr verbinden, während alles andere weiter funktioniert. Auf einem Mac ohne Bildschirm bleibt der Freigabedialog unsichtbar. Gib die Programmdatei deshalb nach jedem Upgrade über das Terminal frei:
>
> ```sh
> sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add "$(brew --prefix)/bin/evcc"
> launchctl kickstart -k gui/$(id -u)/io.evcc
> ```

### Umstieg von der Homebrew Formula

Bis Version 0.314.5 wurde evcc als Homebrew Formula ausgeliefert und mit `brew services` gestartet. Homebrew aktualisiert eine installierte Formula nicht auf einen Cask, `brew upgrade` meldet die alte Version daher weiter als aktuell. Entferne die Formula einmalig und installiere den Cask:

```sh
brew services stop evcc
brew uninstall evcc
brew update
brew install --cask evcc
```

Lege anschließend den launchd-Agent wie unter [Starten](#starten) beschrieben an. Konfiguration und Datenbank bleiben erhalten.

## Weitere Befehle

* Prüfe den Status des evcc-Servers:

  ```sh
  launchctl print gui/$(id -u)/io.evcc
  ```

* Stoppe evcc und entferne den launchd-Agent:

  ```sh
  launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/io.evcc.plist
  ```

* Logs anzeigen:

  ```sh
  tail -f "$(brew --prefix)/var/log/evcc.log"
  ```

## Manuelle Installation

Hier findest du die Anleitung für die manuelle Installation von evcc auf macOS.

### Installation

* Lade die entsprechende Datei auf dein System herunter:
  * 64-Bit ARM oder Intel CPU: [evcc\_X.XX\_macOS\_all.tar.gz](https://github.com/evcc-io/evcc/releases/latest)

* Entpacke die heruntergeladene Datei (z. B. per Doppelklick auf die Datei)

* Es gibt nun einen neuen Ordner mit dem Programm `evcc`.

* Öffne ein Terminal und gehe in den Ordner mit dem Programm `evcc`

* Starte evcc mit folgendem Befehl:

  ```sh
  ./evcc -v
  ```

* Du solltest die aktuelle Version von evcc sehen (bspw. `evcc version 0.xxx.y`).

### Konfiguration

Nach dem ersten Start öffne <http://localhost:7070> im Browser und richte evcc über die Weboberfläche ein.

Alternativ kannst du eine `evcc.yaml` Konfigurationsdatei erstellen (siehe [Einrichtung](/de/installation/configuration)) und evcc damit starten:

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

### Aktualisierung/Downgrade

Führe die obigen Schritte aus und ersetze die evcc Programmdatei mit der neuen bzw. vorherigen Version. Die Konfiguration muss nicht erneut durchgeführt werden.