Skip to content

Latest commit

 

History

History
94 lines (72 loc) · 3.38 KB

File metadata and controls

94 lines (72 loc) · 3.38 KB

DATA_CONTRACT.md

Overzicht van welke JSON-bestanden welke keys bevatten, wie ze schrijft, en wie ze leest. Gebruik dit als naslag bij het bouwen/aanpassen van je eigen reader- en actuator-scripts (WP, LP, PV, sessie-registratie).

Alle bestanden staan in share/ en worden via shared_store.py (get_key/set_key, met een path=-argument) gelezen en geschreven - nooit rechtstreeks met open()/json.load(), om de file-locking en atomic writes te behouden.


reader_data.json

Externe reader-/meetscripts schrijven, E_manager.py leest.

key velden geschreven door
p1_reader levering, amps, timestamp p1_reader.py (in dit project)
WP_reader WPsetpoint, WPcoolpoint, WPpower, WPoutsideT eigen WP-reader (live, van de warmtepomp)
KNMI Tmin weersverwachting (bijv. via energietarieven.py's getTemp(), dagelijkse fetch)
LP_reader LPsetpoint, laadpower eigen laadpaal-reader
PV_reader production eigen PV-reader
laadsessie laden (bool) eigen sessie-registratie

Voorbeeld schrijven vanuit een eigen reader-script:

from shared_store import set_key
from config import READER_DATA_JSON

set_key("WP_reader", {
    "WPsetpoint": 20.0,
    "WPcoolpoint": 24.0,
    "WPpower": 1.8,
    "WPoutsideT": 12.5,
}, path=READER_DATA_JSON)

# KNMI: alleen de minimumtemperatuur-voorspelling (los van WP_reader's
# live WPoutsideT) - energietarieven.py's getTemp() doet dit al automatisch.
set_key("KNMI", {"Tmin": 3.5}, path=READER_DATA_JSON)

setpoints.json

E_manager.py schrijft, externe actuator-scripts lezen.

key velden gelezen door
WPnew (winter/overgang) of WPcool (zomer) setpoint eigen WP-actuator
LPnew setpoint eigen laadpaal-actuator
PV_reader limit eigen PV-actuator
laadpaal state ("active" / "pause") eigen laadpaal-actuator/sessie-script

Voorbeeld lezen vanuit een eigen actuator-script:

from shared_store import get_key
from config import SETPOINTS_JSON

setpoint = get_key("WPnew", path=SETPOINTS_JSON)["setpoint"]

energy.json

Gemengd - gevoed door zowel dit project als eigen readers, uitsluitend voor het webdashboard (webapp/).

key velden geschreven door
net verbruik, levering p1_reader.py (in dit project)
hourData price, price_sell, block, block_pv, max_lp, wp_sp E_manager.py (in dit project)
cost "1" / "24" -> use, sell, cost E_manager.py (in dit project)
pv levering eigen PV-reader
lp levering, verbruik eigen LP-reader
wp levering, verbruik eigen WP-reader

Praktisch bij het aansluiten van je eigen readers/actuators

  1. Zet simulate_readers.py uit (stop het proces) zodra je eigen readers draaien - anders overschrijft de simulatie (elke SIM_INTERVAL seconden) je echte data op dezelfde keys.
  2. Controleer WP_MAX_SETPOINT en LP_MIN_AMP in config.py tegen de waardes die je productiesysteem daadwerkelijk gebruikt - dit waren voorheen runtime-waardes (get_key("WPmax")/get_key("LPmin")), nu vaste config-waardes met een voorlopige placeholder.
  3. Herstart altijd het bijbehorende Python-proces na het aanpassen van een script - een gewijzigd bestand op schijf heeft geen effect op een reeds draaiend proces.