Help & Handleiding – Engie/Sonoff

Dit project haalt de ENGIE EPEX-prijzen op, bewaart ze lokaal, tekent grafieken en maakt Sonoff-vriendelijke exports (dag & laatste 2 dagen) voor je ESP-32 automatisering.

Inhoud

Overzicht & Datastroom

De workflow is als volgt:

  1. Ophalen – De pagina downloads.php?action=save (of cron_sonoff.php) downloadt de ENGIE XLSX en zet deze om naar CSV.
  2. Bewaren – De XLSX/CSV van vandaag komt in out/. Er wordt óók een dag-CSV bewaard in out/history/engie_YYYY-MM-DD.csv.
  3. Exporteer – Dagelijkse Sonoff-exports + bundel van de laatste 2 dagen worden gegenereerd in out/.
  4. Visualiserenindex.php en historiek.php laden de CSV’s voor grafieken en tabellen.
  5. Beherenstatus.php toont health & bestanden. cron_cleanup.php ruimt oude files op.

Bestanden & Functie

BestandFunctie
lib.php Basisconfig & helpers:
  • Padconstanten OUT_DIR/HIST_DIR, ENGIE_URL
  • http_get() – veilige download
  • parse_xlsx_rows() – XLSX → (uur, prijs) rijen + datum (B1)
  • save_csv_day(), load_dataset(), compute_highlights(), fetch_and_save_live()
index.php Hoofdpagina met grafiek “vandaag” & (optioneel) “gisteren”, tabelweergave, Top8/Blok8.
historiek.php Historiek-grafiek (meerdere dagen), datumselectie, aggregatie, Top8/Blok8-indicaties.
downloads.php Acties:
  • ?action=raw – download de ENGIE XLSX direct
  • ?action=saveophalen & bewaren (XLSX/CSV/history)
  • ?action=sonoff/sonoff_min/sonoff_json – dag-exports
  • ?action=sonoff2/sonoff2_json – laatste 2 dagen (vereist sonoff_export.php)
  • ?action=health – omgeving & directories check
sonoff_export.php gevonden Logica voor “laatste 2 dagen” Sonoff-exports:
  • engie_merge_last_days(2)
  • engie_output_sonoff2_csv() / engie_output_sonoff2_json()
  • engie_cron_generate_last2() – voor gebruik in cron_sonoff.php
cron_sonoff.php gevonden “Alles-in-één” cron-runner:
  • Haalt & bewaart vandaag
  • Maakt Sonoff dag-CSV/JSON
  • Maakt Sonoff “laatste 2 dagen” CSV/JSON
  • Schrijft bestandsnamen naar output (voor logging)
cron_cleanup.php gevonden Opruimen van oude bestanden met overzicht (HTML/JSON, dry-run):
  • ?keep=30 – bewaartermijn in dagen
  • ?dry=1 – geen delete, enkel simulatie
  • Rapporteert aantallen en vrijgemaakte ruimte
status.php Mini statusdashboard:
  • Toont aanwezigheids- & tijdstempelchecks
  • Knoppen: Health, Save nu, Run cron nu, Opruimen, JSON
assets/ CSS/JS (Chart.js loader, styles).
out/ & out/history/ Gegenereerde bestanden (XLSX/CSV/JSON) en historiek per dag.

Handige URL’s & knoppen

Extra’s:

Cronjobs instellen

Optie A — PHP CLI (aanrader)

# Dagelijks, net na middernacht (Europe/Brussels)
5 0 * * * /usr/local/bin/php /home/USER/domains/domein.be/public_html/engie/cron_sonoff.php >> /home/USER/cron_logs/engie_sonoff.log 2>&1

Optie B — via HTTP (curl)

5 0 * * * /usr/bin/curl -fsS "https://www.jouwdomein.be/engie/downloads.php?action=save" >/dev/null 2>&1 && \
/usr/bin/curl -fsS "https://www.jouwdomein.be/engie/downloads.php?action=sonoff" >/dev/null 2>&1 && \
/usr/bin/curl -fsS "https://www.jouwdomein.be/engie/downloads.php?action=sonoff_min" >/dev/null 2>&1 && \
/usr/bin/curl -fsS "https://www.jouwdomein.be/engie/downloads.php?action=sonoff_json" >/dev/null 2>&1 && \
/usr/bin/curl -fsS "https://www.jouwdomein.be/engie/downloads.php?action=sonoff2" >/dev/null 2>&1 && \
/usr/bin/curl -fsS "https://www.jouwdomein.be/engie/downloads.php?action=sonoff2_json" >/dev/null 2>&1

Tip: voeg ook een tweede run toe om 06:05 voor zekerheid (“vandaag + gisteren” compleet).

Sonoff exports & ESP-32

CSV-formaat (dag en 2 dagen):

date,time,price_eur_kwh,Top8,Blok8
2025-11-14,00:00,0.04361,X,-
…

ESP-32 kan op basis van Top8 of Blok8 schakelen. Voorbeeldcode is eerder meegeleverd (HTTP GET + CSV parser + GPIO-relais). Wil je eWeLink/LAN-mode aansturen, zeg het even.

Troubleshooting

Veiligheid & Tips

Snelle actieknoppen

Vandaag: 2026-02-23