Files
EMS/systemd/ems.service
Lutz Finsterle 99613c52ae Initial commit: EMS — Energie Management System
Complete self-consumption optimisation system for 7 kWp PV installation:
- Prometheus collector (grid power, SOC, PV, per-phase, compressor)
- Pure decision engine with SOC gates, hysteresis, priority ordering
- Shelly Gen1/Gen2 actuator (SHA-256 Digest auth, PM power readback)
- Viessmann OAuth2 client for DHW temperature control
- PV forecast integration (forecast.solar)
- Wallbox mutual exclusion (VX3 4.6 kW AC output constraint)
- Car-not-charging detection via Shelly PM
- Compressor idle → early SG-Ready release
- Per-phase grid power for single-phase wallbox decisions
- Manual override detection and web UI with override buttons
- Full unit test coverage for decision engine
- systemd service, Makefile, complete documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 10:02:16 +02:00

28 lines
551 B
Desktop File

[Unit]
Description=EMS — Energie Management System
Documentation=https://github.com/tb/ems
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ems -config /etc/ems/ems-config.yaml
Restart=on-failure
RestartSec=30s
# Creates /run/ems/ automatically (used for the heartbeat file)
RuntimeDirectory=ems
RuntimeDirectoryMode=0755
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=ems
# Basic hardening
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target