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.
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)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"]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 |
- Zet
simulate_readers.pyuit (stop het proces) zodra je eigen readers draaien - anders overschrijft de simulatie (elkeSIM_INTERVALseconden) je echte data op dezelfde keys. - Controleer
WP_MAX_SETPOINTenLP_MIN_AMPinconfig.pytegen 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. - 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.